LINUX.ORG.RU
решено ФорумAdmin

openvpn openwrt за nat`ом достучаться из подсети сервера до подсети клиента.

 , ,


0

1

есть сервер со внешним белым адресом 9.9.9.9, локальная сеть - 10.10.1.0.

есть вторая сеть с клиентом и адресом за nat, локальная сеть - 10.10.2.0

Внутри поднять tun0 туннель 172.18.10.1-172.18.10.2

На сервере прописаны пути до 172.18.10.0/24 и 10.10.2.0/24 через vtun0, также указан маскарадинг from 10.10.1.0 to tun0.

В сети с клиентом стоит роутер с openwrt, поднят клиент, разрешен маскарадинг для tun0, wan, lan. На tun0 и lan - ACCEPT для всего. Прописан маршрут 10.10.1.1.0/24 to tun0.

Из клиентской подсети до серверной я достучаться могу.

А вот из серверной до клиентской (10.10.2.0) нет. При этом клиентский интерфейс tun0 с адресом 172.18.10.2 с отвечает на ICMP запросы.

В чем может быть проблема?

Ответ на: комментарий от BOOBLIK

Server

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         static.9-9- 0.0.0.0         UG    0      0        0 eth2
10.10.1.0       *               255.255.255.0   U     0      0        0 eth1
10.10.2.0       *               255.255.255.0   U     0      0        0 vtun0
loopback        *               255.0.0.0       U     0      0        0 lo
172.18.10.0     *               255.255.255.0   U     0      0        0 vtun0
9.9.9.9 *               255.255.255.252 U     0      0        0 eth2
192.168.1.0     *               255.255.255.0   U     0      0        0 eth0

Client

route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         172.17.0.89     0.0.0.0         UG    0      0        0 eth0
10.10.1.0       172.18.10.1     255.255.255.0   UG    0      0        0 tun0
10.10.1.0       *               255.255.255.0   U     0      0        0 tun0
10.10.2.0       *               255.255.255.0   U     0      0        0 br-lan
172.17.0.0      *               255.255.0.0     U     0      0        0 eth0
172.18.10.0     *               255.255.255.0   U     0      0        0 tun0
steemandlinux ★★★★★ ()

есть сервер со внешним белым адресом 9.9.9.9

Жизнь почти удалась. Осталось только поднять свой днс с логами и плюшками.
Ну так все верно, теперь ты работаешь через туннель, если я правильно понял. Тебе нужно сделать форвардинг с lan на eth0 (описать его как wan, например).

config forwarding
	option src 'lan'
	option dest 'wan'
Ну и в option network wan'а описать все нужные тебе интерфейсы, при этом в lan у тебя должен быть везде accept. Ну и не забудь перезапускать firewall при каждом изменении, чтобы проверять что работает.

anonymous_sama ★★★★★ ()
Ответ на: комментарий от steemandlinux

iroute и route разные вещи. Направление для гугла для 100% решения твоей проблемы я дал.

BOOBLIK ★★ ()
Ответ на: комментарий от steemandlinux

Проверь sysctl, может у тебя не дефолтный. А openvpn-inbound или что-то подобное, в зависимости от протокола, ты разрешил? Да не забудь как-нибудь назвать интерфейс с tun0 в конфигурации сети и добавить его в option network для lan в настройках firewall'а.

anonymous_sama ★★★★★ ()
Последнее исправление: anonymous_sama (всего исправлений: 1)

Если у тебя используется маскарадинг, то у тебя это как нипель. В одну сторонй идёт, в другую нет. Не считая пакетов, которые возвращаются в ответ. В целом, что нужно, на клиенте прописать маршрут через транспортную сеть на подсеть локальную сервера. На сервере прописать маршрут через транспортную подсеть на подсеть локальную клиента. И будет ходить. Если хочешь чтобы не самому прописывать, а само работало, подымай OSPF между сервером и клиентом. Но, думаю, это лишне. Само собой, и сервер и клиент должны делать роутинг пакетов (ip_forward).

turtle_bazon ★★★★★ ()
Последнее исправление: turtle_bazon (всего исправлений: 1)
Ответ на: комментарий от turtle_bazon

С сервера на клиент прописан, но все равно не ходит:

10.10.2.0 * 255.255.255.0 U 0 0 0 vtun0

Еще пробовал iroute, но только при добавлении 10.10.2.0 в push, openwrt-клиент теряет свою подсеть, в общем поковыряюсь попозже на кролике.

steemandlinux ★★★★★ ()
Ответ на: комментарий от steemandlinux

Наверное, не через vtun0 надо указывать маршрут, а с использованием IP из транспортной подсети.

turtle_bazon ★★★★★ ()
Ответ на: комментарий от dhameoelin

Да я сделал уже, оказывается путь до iroute'а неправильно написал.

steemandlinux ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.