Есть сервер 10.1.0.1/16 который является сервером OpenVPN. В сети сервера есть клиент с ip 10.1.0.10 который имеет tun0 (с этим ip адрессом) и enp1s0 с адрессом 10.0.2.1/16
На сервере прописаны роуты:
ip route
default via pub_ip_server dev eth0 proto static
10.0.0.0/16 via 10.1.0.10 dev tun0
10.1.0.0/24 dev tun0 proto kernel scope link src 10.1.0.1
pub_ip_server/24 dev eth0 proto kernel scope link src pub_ip_server
172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1
Но при пинге с сервера или клиента OpenVPN любого ip из сети 10.0.0.0/16 пакеты даже не доходят до 10.1.0.10 (Установлено через tcpdump -i tun0 на клиенте с ip 10.1.0.10)
В чём может быть причина такого поведения?
P.s. со стороны 10.0.0.0 с учётом маскарадинка ping до 10.1.0.1 доходит нормально и возвращается так-же корректно. Так-же такое поведение имеют все клиенты OpenVPN не смотря на client-to-client опцию и имеющим такой-же роут
P.s.s ipforward включен и у сервера и у клиента, разрешён через iptables, firewall временно отсутствует (в том числе был очищен iptables)
Когда Описываютс подряд две системы (клиент и сервер) использование: "уходят с него" слабо добавляет ясности.
Лучше опистать полностью конфигурацию клиента, сервера и теста: с какого ip кого пингуете, на клиенте или сервере запускаете tcpdump.
Не раскрыт вопрос использования и настроек firewall.
Не раскрыт вопрос, включён ли ip forward.
Если у Вас сеть 10.0.0.0 за Nat, то как Вы ожидаете что с 10.1.0.1 она будет доступна?
SunTechnik, поправил описание, спасибо. Что касаемо последнего вопроса: обе сети знают о существовании друг друга за шлюзом клиента (имеет ip адреса обоих сетей). Разве в такой конфигурации адреса не могут пинговать друг друга (с учётом маскарадинга)?
Just_Strelok, непонятно как именно у Вас настроен маскарадинг.
Если клиентах есть маршрут до сети 10.0.0.0 ?
Вы говорите, что не видите приходящего пакета на 10.1.0.10, а на 10.1.0.1 на tun0 в исходящих пакет видите ?
Допустим, клиент OpenVpn пингует кого-то из сети10.0.0.0, но обратный пакет пройдет маскарадинг, и придет с другим IP адресом, вследствии чего будет откинут, а ping не дождется ожидаемого пакета.
SunTechnik, допускаю, что настроено и вправду некорректно.
Клиент имеет 10.0.2.1 и 10.1.0.10, если пинговать с 10.0.0.2 то на нём видно приходящий пакет на интерфейс 10.0.2.1 и исходящий пакет в сеть tun0. Пинг в этом случае работае и соединение в целом корректно (веб сервера с 10.1.0.1 на 10.0.0.2 тоже открываются).
Не подскажете как в таком случае правильно настроить такую конфигурацию? Основная задача чтобы сети были доступны друг для друга. Соответственно машина, которая имеет оба интерфейса в обоих сетях присутствует. Работает на Debian (не уверен, важно ли это)
Just_Strelok,
“если пинговать с 10.0.0.2 то на нём видно приходящий пакет на интерфейс 10.0.2.1 и исходящий пакет в сеть tun0. Пинг в этом случае работае и соединение в целом корректно (веб сервера с 10.1.0.1 на 10.0.0.2 тоже открываются“
"Но при пинге с сервера или клиента OpenVPN любого ip из сети 10.0.0.0/16 пакеты даже не доходят до 10.1.0.10“
Вы здесь не видите противоречия?
Вы опирируете минимум тремя сетями, упоминаете Nat. При этом непонятна ни конечная цель, ни исходные настройки..
Говорите, что firewall отключён, но Nat — это часть firewall.
SunTechnik, прошу прощения, скорее всего, я действительно плох в такого рода настройках.
Постараюсь объяснить подробно и по порядку:
Есть сервер ND1 на котором поднята OpenVPN с сетью 10.1.0.0/24, его ip адрес 10.1.0.1
Есть сеть NR с сетью 10.0.0.0/16
Клиент ND-NR1 имеет адреса 10.0.2.1 за интерфейсом enp1s0 и 10.1.0.10 за интерфейсом tun0
Этому клиенту можно форвардить:
iptables -A FORWARD -i enp1s0 -o tun0 -j ACCEPT
iptables -A FORWARD -i tun0 -o enp1s0 -j ACCEPT
Так-же включено:
sysctl -w net.ipv4.ip_forward=1
У клиента в сети NR с ip 10.0.0.2 прописан route: 10.1.0.0/24 via 10.0.2.1 dev enp12
У сервера ND1 прописан route: 10.0.0.0/16 via 10.1.0.10 dev tun0
Сейчас выключен маскарад (дело не в нём).
10.0.0.2 может пинговать 10.1.0.1, пакеты приходят, через traceroute видно, что пакеты проходят через 10.0.2.1
10.1.0.1 не может пинговать 10.0.0.2, пакеты не видят 1 hope в traceroute, и tcpdump -i any icmp на ND-NR1 их в том числе не видно.
Конфигурации должны быть по умолчанию. На ND-NR1 и ND1 чистые Debian, на обоих установлены OpenVPN и поднят сервер. Ничего больше на них нет.
Конечная цель - пинг из одной сети в другую в обе стороны. Если я где-то путаюсь в показаниях - поправьте, пожалуйста.