Страницы

Поиск по вопросам

среда, 25 декабря 2019 г.

Не работает NAT через GRE туннель

#ubuntu #сеть #debian #pfsense


На сервере 1 установлен pfsense. На 2ом сервере установлен debian.
Так создал GRE туннель:

GRE pfsense настройки:


  


Введённые команды на 2ом сервере:


  




Туннель работает:


  


и


  


Почему правило NAT не работает?(все порты работают, фильтр перезагружен)


  


ИП соединения передаваться должен
P.S жду обновления ответа от eri
    


Ответы

Ответ 1



Скорее всего тут проблема с марсианами. Так как пфсенс не является шлюзом по умолчанию для дебиана - дебиан пытается ответить напрямую. Клиент получает ответ от адреса который не запрашивал. Эта проблема решается добавлением правила src-nat на gre туннель со стороны pfsensa. Дебиан в этом случае отвечает пфсенсу, а тот отпрвляет ответ клиенту. Правило в pfsense называется Outbound NAT. Нужен маскарад или SNAT на айпишник gre тунеля. Со стороны дебиана это можно исправить через маркировку соединений и полиси роутинг (в разы сложнее). Как-то так. Возможно прийдется доработать. # один раз echo 101 tunnelgre0 >> /etc/iproute2/rt_tables # в скрипты PEERIP=10.0.2.1 LOCALIP=10.0.1.1 ip tunnel add gre0 mode gre local xxx.xxx.xxx.xxx \ remote xxx.xxx.xxx.xxx dev eth0 ttl 64 ip addr add $LOCALIP peer $PEERIP dev gre0 ip link set gre0 up ip route add default via $PEERIP table tunnelgre0 # ip route add 10.0.0.0/16 via $PEERIP # локальная сеть за пфсенсом, можно добавить так, но в случае если с пфсенс проброс - мало поможет. ip rule add from $LOCALIP table tunnelgre0 # на этом месте уже заработает часть сервисов ip rule add fwmark 20 table tunnelgre0 # ip rule add from $LOCALIP fwmark 20 table tunnelgre0 # или так iptables -t mangle -I PREROUTING -d $LOCALIP -j MARK --set-mark 20 iptables -t mangle -I PREROUTING -d $LOCALIP -j CONNMARK --save-mark iptables -t mangle -I OUTPUT -m state --state ESTABLISHED,RELATED -j CONNMARK --restore-mark

Комментариев нет:

Отправить комментарий