Подскажите в чем может быть проблема, никак не могу понять в чем затык.
Общая схема:
1. Есть в локальной сети сервер FreeBSD у него один интерфейс: 192.168.11.17/24 шлюз 192.168.11.254, так же на нем поднят openvpn клиент до впн сервера в интернете. Адрес на интерфейсе vpn tun0 10.23.23.5, адрес на серверной стороне туннеля 10.23.23.1
Так же на нем включен форвардинг в rc.conf
gateway_enable="YES"
ifconfig
em0: flags=1008843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST,LOWER_UP> metric 0 mtu 1500
options=48525bb<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,JUMBO_MTU,VLAN_HWCSUM,TSO4,LRO,WOL_MAGIC,VLAN_HWFILTER,VLAN_HWTSO,HWSTATS,MEXTPG>
ether 6a:c8:76:e2:46:98
inet 192.168.11.17 netmask 0xffffff00 broadcast 192.168.11.255
media: Ethernet autoselect (1000baseT <full-duplex>)
status: active
nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
lo0: flags=1008049<UP,LOOPBACK,RUNNING,MULTICAST,LOWER_UP> metric 0 mtu 16384
options=680003<RXCSUM,TXCSUM,LINKSTATE,RXCSUM_IPV6,TXCSUM_IPV6>
inet 127.0.0.1 netmask 0xff000000
inet6 ::1 prefixlen 128
inet6 fe80::1%lo0 prefixlen 64 scopeid 0x2
groups: lo
nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>
tun0: flags=1008043<UP,BROADCAST,RUNNING,MULTICAST,LOWER_UP> metric 0 mtu 1500
options=80000<LINKSTATE>
inet 10.23.23.5 netmask 0xffffff00 broadcast 10.23.23.255
groups: tun
nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
Opened by PID 756
Для проверки адрес 8.8.8.8 завернул в туннель
netstat -nr
default 192.168.11.254 UGS em0
8.8.8.8 10.23.23.1 UGHS tun0
10.23.23.0/24 link#3 U tun0
10.23.23.5 link#2 UHS lo0
127.0.0.1 link#2 UH lo0
192.168.11.0/24 link#1 U em0
192.168.11.17 link#2 UHS lo0
2. Есть сервер в интернете ubuntu 22.04, на нем openvpn сервер, принимающий подключения. Задача приходящий трафик из туннеля отправлять в интернет через nat на внешний интерфейс
На этом сервере стоит iptables, все что можно уже открыл на нем:
iptables -S
-P INPUT ACCEPT
-P FORWARD ACCEPT
-P OUTPUT ACCEPT
-A INPUT -i ens3 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i ens3 -m conntrack --ctstate INVALID -j DROP
-A INPUT -i ens3 -p tcp -m tcp --dport 1194 -j ACCEPT
-A INPUT -i ens3 -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -i ens3 -p tcp -m tcp --dport 53 -j ACCEPT
-A INPUT -i ens3 -p udp -m udp --dport 53 -j ACCEPT
-A INPUT -i tun0 -j ACCEPT
-A INPUT -s 192.168.11.0/24 -i tun0 -j ACCEPT
-A INPUT -i ens3 -p udp -m udp --dport 500 -j ACCEPT
-A INPUT -i ens3 -p udp -m udp --dport 4500 -j ACCEPT
-A INPUT -i ens3 -p esp -j ACCEPT
-A INPUT -i ens3 -p ah -j ACCEPT
-A INPUT -i ens3 -p udp -m policy --dir in --pol ipsec -m udp --dport 1701 -j ACCEPT
-A INPUT -i ens3 -j DROP
-A FORWARD -i ens3 -o tun0 -j ACCEPT
-A FORWARD -i tun0 -o ens3 -j ACCEPT
-A FORWARD -i ens3 -o tun0 -m state --state RELATED,ESTABLISHED -j ACCEPT
Собственно задача маршрутизировать на сервере 1 в локальной сети, нужный трафик в туннель (для проверки прописал маршрут до 8.8.8.8 через туннель), на сервере 2 принимать из тунеля и через нат отправлять в интернет
Если я отправляю пакеты с сервера 1 на freebsd пакеты на адрес 8.8.8.8 все замечательно работает, пакеты идут через туннель и сервер в интернете. А вот если я с другого компьютера отправляю пакеты и в качестве шлюза указываю сервер 1, то те пакеты, которые должны идти по дефолтному маршруту просто в интернет идут без проблем, а те что должны идти через туннель не идут. Причет они на сервере 1 на интерфейсе туннеля появляются:
192.168.11.22 адрес компьютера с которого отправляю пакеты
tcpdump -host 192.168.11.22 -i tun0
tcpdump: verbose output suppressed, use -v[v]... for full protocol decode
listening on tun0, link-type NULL (BSD loopback), snapshot length 262144 bytes
19:47:36.781754 IP 192.168.11.22 > dns.google: ICMP echo request, id 1, seq 158, length 40
19:47:41.467940 IP 192.168.11.22 > dns.google: ICMP echo request, id 1, seq 159, length 40
19:47:46.481366 IP 192.168.11.22 > dns.google: ICMP echo request, id 1, seq 160, length 40
19:47:51.473760 IP 192.168.11.22 > dns.google: ICMP echo request, id 1, seq 161, length 40
А вот на сервере 2 в интерфейсе туннеля уже ничего нет.
Мне не нужен файервол на сервере 1 и нат там не нужен, нужно просто пересылать пакеты в туннель.
Подскажите что и где не так. Вроде задача то простая, но не идут пакеты.