Добрый день всем. Прошу помощи, уже две недели бьюсь, а продвинулся только на половину. Итак есть шлюз на Ubuntu 3.8.0. У него 4 физических сетевых интерфейса: eth0 - локальная сеть 192.168.1.0/24 и новая сеть 10.0.1.0/24 eth1 - DMZ сеть 10.0.10.0/24 и 192.168.10.0/24 eth2 - интерфейс провайдера 1 - обычно в down, используется как резерв eth3 - интерфейс провайдера 2 - IP от провайдера: 89.Х.Х.Х
Поднято два OpenVPN клиента: tun0 10.55.0.10 и tun2 10.57.0.10 Необходимо определенные машины из сети 192.168.1.0/24 выпускать в интернет через vpn канал tun0, а все машины из сети 10.0.1.0/24 через tun2. Раньше сети 10.0.1.0/24 и tun2 не было. Половину я настроил (а главное старое не поломал) - у меня пакеты из сети 10.0.1.0/24 уходят в tun2, ответ оттуда приходит - а дальше я пакеты нигде не могу найти.... Уже всю голову сломал. Логика была такая - для новой сети помечать пакеты и SNAT для них на другой интерфейс.
Приведу основные правила iptables и ip rule/route:
[15:08:06 root@k]:~# ip rule list
0: from all lookup local
73: from 192.168.1.106 to 10.0.10.0/24 lookup main
74: from 192.168.1.106 to 10.0.1.0/24 lookup main
76: from 192.168.1.106 lookup inet_tunel
83: from 192.168.1.102 to 192.168.10.0/24 lookup main
86: from 192.168.1.102 to 10.0.1.0/24 lookup main
88: from 192.168.1.102 lookup inet_tunel
95: from 10.0.1.0/24 to 192.168.1.0/24 lookup main
97: from 10.0.1.0/24 to 10.0.10.0/24 lookup main
98: from 10.0.1.0/24 to 10.0.1.0/24 lookup main
100: from all fwmark 0x4/0x4 lookup base1_tunel
32766: from all lookup main
32767: from all lookup default
Это таблицы маршрутизации:
[16:01:10 root@k]:~# ip route list table inet_tunel
default via 10.55.0.9 dev tun0
192.168.10.0/24 via 192.168.10.1 dev eth1
[16:06:55 root@k]:~# ip route list table base1_tunel[br]
default via 10.57.0.9 dev tun2[br]
10.0.1.0/24 via 10.0.1.1 dev eth0[br]
Таблица NAT - Пытаюсь по логам понять куда пропали пакеты:
[16:07:03 root@k]:~# iptables -t nat -vnL
Chain PREROUTING (policy ACCEPT 14762 packets, 885K bytes)
pkts bytes target prot opt in out source destination
0 0 LOG all -- tun2 * 0.0.0.0/0 0.0.0.0/0 LOG flags 0 level 4 prefix "NAT-PRE "
0 0 LOG all -- * * 10.57.0.10 0.0.0.0/0 LOG flags 0 level 4 prefix "NAT-PRE 1 "
0 0 LOG all -- * * 0.0.0.0/0 10.57.0.10 LOG flags 0 level 4 prefix "NAT-PRE 1 "
159 12084 DNAT udp -- * * 0.0.0.0/0 0.0.0.0/0 udp dpt:123 to:10.0.0.1
Chain INPUT (policy ACCEPT 4238 packets, 296K bytes)
pkts bytes target prot opt in out source destination
0 0 LOG all -- tun2 * 0.0.0.0/0 0.0.0.0/0 LOG flags 0 level 4 prefix "NAT-INPUT "
19 2766 LOG all -- eth0 * 10.0.1.11 0.0.0.0/0 LOG flags 0 level 4 prefix "NAT-INPUT "
Chain OUTPUT (policy ACCEPT 3621 packets, 252K bytes)
pkts bytes target prot opt in out source destination
0 0 LOG all -- * tun2 0.0.0.0/0 0.0.0.0/0 LOG flags 0 level 4 prefix "NAT-OUT "
0 0 LOG all -- * * 0.0.0.0/0 10.0.1.11 LOG flags 0 level 4 prefix "NAT-OUT 1 "
0 0 LOG all -- * * 0.0.0.0/0 10.57.0.0/24 LOG flags 0 level 4 prefix "NAT-OUT 1 "
Chain POSTROUTING (policy ACCEPT 194 packets, 26245 bytes)
pkts bytes target prot opt in out source destination
1 48 LOG all -- * tun2 0.0.0.0/0 0.0.0.0/0 LOG flags 0 level 4 prefix "NAT-POST "
0 0 LOG all -- * * 0.0.0.0/0 10.57.0.0/24 LOG flags 0 level 4 prefix "NAT-POST 1 "
36 1848 LOG all -- * * 0.0.0.0/0 10.0.1.0/24 LOG flags 0 level 4 prefix "NAT-POST 2 "
7590 472K SNAT all -- * eth3 0.0.0.0/0 0.0.0.0/0 to:89.XXX.XXX.XXX
1 48 SNAT all -- * tun2 0.0.0.0/0 0.0.0.0/0 to:10.57.0.10
158 8764 SNAT all -- * tun0 0.0.0.0/0 0.0.0.0/0 to:10.55.0.10
Таблица Mangle - тут маркирую пакеты:
[16:08:40 root@k]:~# iptables -t mangle -vnL
Chain PREROUTING (policy ACCEPT 2539K packets, 2008M bytes)
pkts bytes target prot opt in out source destination
7 336 LOG all -- tun2 * 0.0.0.0/0 0.0.0.0/0 LOG flags 0 level 4 prefix "MNG PRE "
3 144 MARK all -- * * 10.0.1.11 178.62.9.171 MARK set 0x4
7 336 MARK all -- * * 178.62.9.171 0.0.0.0/0 MARK set 0x4
Chain INPUT (policy ACCEPT 28510 packets, 5221K bytes)
pkts bytes target prot opt in out source destination
0 0 LOG all -- tun2 * 0.0.0.0/0 0.0.0.0/0 LOG flags 0 level 4 prefix "MSK INPUT "
30 3775 CONNMARK all -- eth0 * 10.0.1.0/24 0.0.0.0/0 CONNMARK set 0x4
Chain FORWARD (policy ACCEPT 2506K packets, 2002M bytes)
pkts bytes target prot opt in out source destination
0 0 LOG all -- tun2 * 0.0.0.0/0 0.0.0.0/0 LOG flags 0 level 4 prefix "MNG FORWARD "
3 144 LOG all -- * tun2 0.0.0.0/0 0.0.0.0/0 LOG flags 0 level 4 prefix "MNG FORWARD 2 "
Chain OUTPUT (policy ACCEPT 17408 packets, 2724K bytes)
pkts bytes target prot opt in out source destination
1761 254K CONNMARK all -- * eth0 0.0.0.0/0 0.0.0.0/0 CONNMARK restore
Chain POSTROUTING (policy ACCEPT 2520K packets, 2005M bytes)
pkts bytes target prot opt in out source destination
3 144 LOG all -- * tun2 0.0.0.0/0 0.0.0.0/0 LOG flags 0 level 4 prefix "MNG POST "
0 0 LOG all -- * * 0.0.0.0/0 10.57.0.10 LOG flags 0 level 4 prefix "MNG POST 2"
0 0 LOG all -- * * 10.57.0.10 0.0.0.0/0 LOG flags 0 level 4 prefix "MNG POST 3"
Судя по записям в syslog - пакеты уходят в tun2, появляются обратный пакет с ответом, но почему он НЕ пересылается клиенту понять не могу.
May 23 15:00:30 GW kernel: [882678.934026] NAT-INPUT IN=eth0 OUT= MAC=ff:ff:ff:ff:ff:ff:00:03:ff:20:3c:4c:08:00 SRC=10.0.1.11 DST=10.0.1.255 LEN=229 TOS=0x00 PREC=0x00 TTL=128 ID=273 PROTO=UDP SPT=138 DPT=138 LEN=209
May 23 15:02:16 GW kernel: [882785.235875] NAT-INPUT IN=eth0 OUT= MAC=00:21:97:c7:d2:79:00:03:ff:20:3c:4c:08:00 SRC=10.0.1.11 DST=10.0.1.1 LEN=58 TOS=0x00 PREC=0x00 TTL=128 ID=489 PROTO=UDP SPT=60382 DPT=53 LEN=38
May 23 15:02:16 GW kernel: [882785.271904] NAT-INPUT IN=eth0 OUT= MAC=ff:ff:ff:ff:ff:ff:00:03:ff:20:3c:4c:08:00 SRC=10.0.1.11 DST=10.0.1.255 LEN=78 TOS=0x00 PREC=0x00 TTL=128 ID=490 PROTO=UDP SPT=137 DPT=137 LEN=58
May 23 15:02:29 GW kernel: [882798.603455] MNG FORWARD 2 IN=eth0 OUT=tun2 MAC=00:21:97:c7:d2:79:00:03:ff:20:3c:4c:08:00 SRC=10.0.1.11 DST=178.62.9.171 LEN=48 TOS=0x00 PREC=0x00 TTL=127 ID=531 DF PROTO=TCP SPT=1053 DPT=80 WINDOW=65535 RES=0x00 SYN URGP=0 MARK=0x4
May 23 15:02:29 GW kernel: [882798.603509] LAN_BASE1 IN=eth0 OUT=tun2 MAC=00:21:97:c7:d2:79:00:03:ff:20:3c:4c:08:00 SRC=10.0.1.11 DST=178.62.9.171 LEN=48 TOS=0x00 PREC=0x00 TTL=127 ID=531 DF PROTO=TCP SPT=1053 DPT=80 WINDOW=65535 RES=0x00 SYN URGP=0 MARK=0x4
May 23 15:02:29 GW kernel: [882798.603540] MNG POST IN= OUT=tun2 SRC=10.0.1.11 DST=178.62.9.171 LEN=48 TOS=0x00 PREC=0x00 TTL=127 ID=531 DF PROTO=TCP SPT=1053 DPT=80 WINDOW=65535 RES=0x00 SYN URGP=0 MARK=0x4
May 23 15:02:29 GW kernel: [882798.603569] NAT-POST IN= OUT=tun2 SRC=10.0.1.11 DST=178.62.9.171 LEN=48 TOS=0x00 PREC=0x00 TTL=127 ID=531 DF PROTO=TCP SPT=1053 DPT=80 WINDOW=65535 RES=0x00 SYN URGP=0 MARK=0x4
May 23 15:02:31 GW kernel: [882799.762388] MNG PRE IN=tun2 OUT= MAC= SRC=178.62.9.171 DST=10.57.0.10 LEN=48 TOS=0x08 PREC=0x40 TTL=51 ID=0 DF PROTO=TCP SPT=80 DPT=1053 WINDOW=29200 RES=0x00 ACK SYN URGP=0
May 23 15:02:32 GW kernel: [882801.566077] MNG FORWARD 2 IN=eth0 OUT=tun2 MAC=00:21:97:c7:d2:79:00:03:ff:20:3c:4c:08:00 SRC=10.0.1.11 DST=178.62.9.171 LEN=48 TOS=0x00 PREC=0x00 TTL=127 ID=543 DF PROTO=TCP SPT=1053 DPT=80 WINDOW=65535 RES=0x00 SYN URGP=0 MARK=0x4
May 23 15:02:32 GW kernel: [882801.566129] LAN_BASE1 IN=eth0 OUT=tun2 MAC=00:21:97:c7:d2:79:00:03:ff:20:3c:4c:08:00 SRC=10.0.1.11 DST=178.62.9.171 LEN=48 TOS=0x00 PREC=0x00 TTL=127 ID=543 DF PROTO=TCP SPT=1053 DPT=80 WINDOW=65535 RES=0x00 SYN URGP=0 MARK=0x4
May 23 15:02:32 GW kernel: [882801.566159] MNG POST IN= OUT=tun2 SRC=10.0.1.11 DST=178.62.9.171 LEN=48 TOS=0x00 PREC=0x00 TTL=127 ID=543 DF PROTO=TCP SPT=1053 DPT=80 WINDOW=65535 RES=0x00 SYN URGP=0 MARK=0x4
May 23 15:02:32 GW kernel: [882801.651083] MNG PRE IN=tun2 OUT= MAC= SRC=178.62.9.171 DST=10.57.0.10 LEN=48 TOS=0x08 PREC=0x40 TTL=51 ID=0 DF PROTO=TCP SPT=80 DPT=1053 WINDOW=29200 RES=0x00 ACK SYN URGP=0
May 23 15:02:35 GW kernel: [882803.761998] MNG PRE IN=tun2 OUT= MAC= SRC=178.62.9.171 DST=10.57.0.10 LEN=48 TOS=0x08 PREC=0x40 TTL=51 ID=0 DF PROTO=TCP SPT=80 DPT=1053 WINDOW=29200 RES=0x00 ACK SYN URGP=0
May 23 15:02:38 GW kernel: [882807.570744] MNG FORWARD 2 IN=eth0 OUT=tun2 MAC=00:21:97:c7:d2:79:00:03:ff:20:3c:4c:08:00 SRC=10.0.1.11 DST=178.62.9.171 LEN=48 TOS=0x00 PREC=0x00 TTL=127 ID=556 DF PROTO=TCP SPT=1053 DPT=80 WINDOW=65535 RES=0x00 SYN URGP=0 MARK=0x4
May 23 15:02:38 GW kernel: [882807.570796] LAN_BASE1 IN=eth0 OUT=tun2 MAC=00:21:97:c7:d2:79:00:03:ff:20:3c:4c:08:00 SRC=10.0.1.11 DST=178.62.9.171 LEN=48 TOS=0x00 PREC=0x00 TTL=127 ID=556 DF PROTO=TCP SPT=1053 DPT=80 WINDOW=65535 RES=0x00 SYN URGP=0 MARK=0x4
May 23 15:02:38 GW kernel: [882807.570827] MNG POST IN= OUT=tun2 SRC=10.0.1.11 DST=178.62.9.171 LEN=48 TOS=0x00 PREC=0x00 TTL=127 ID=556 DF PROTO=TCP SPT=1053 DPT=80 WINDOW=65535 RES=0x00 SYN URGP=0 MARK=0x4
May 23 15:02:38 GW kernel: [882807.655691] MNG PRE IN=tun2 OUT= MAC= SRC=178.62.9.171 DST=10.57.0.10 LEN=48 TOS=0x08 PREC=0x40 TTL=51 ID=0 DF PROTO=TCP SPT=80 DPT=1053 WINDOW=29200 RES=0x00 ACK SYN URGP=0
May 23 15:02:43 GW kernel: [882811.762116] MNG PRE IN=tun2 OUT= MAC= SRC=178.62.9.171 DST=10.57.0.10 LEN=48 TOS=0x08 PREC=0x40 TTL=51 ID=0 DF PROTO=TCP SPT=80 DPT=1053 WINDOW=29200 RES=0x00 ACK SYN URGP=0
May 23 15:02:51 GW kernel: [882819.961945] MNG PRE IN=tun2 OUT= MAC= SRC=178.62.9.171 DST=10.57.0.10 LEN=48 TOS=0x08 PREC=0x40 TTL=51 ID=0 DF PROTO=TCP SPT=80 DPT=1053 WINDOW=29200 RES=0x00 ACK SYN URGP=0
Да, хотел сказать что в части тунеля через tun0 все работает и rp_filter на интерфейсах tun2 и eth0 установил в 0.
И где у меня кривые руки?