Доброго времени суток!
Проблема с перенаправлением трафика в определенный интерфейс.
Есть 3 интерфейса + 2 VPN канала на один и тот же vpn-сервер через порты 1194 и 1195:eth0 = LAN — ip 192.168.55.1
eth1 = WAN1 - 1.1.1.1(dhcp)
eth2 = WAN2 - 2.2.2.2(dhcp)
tun0 = VPN канал1 — ip(192.168.2.2 port 1194)
tun1 = VPN канал2 — ip(192.168.3.2 port 1195)
Надо
1. сделать так чтобы первый vpn тунель поднялся через eth1
1.1 сделать так чтобы все исходящие пакеты на порт 1194 шли через eth1
1.2 проверить на СЕРВЕРЕ что vpn подключился с клиентского ip eth1
2. сделать так чтобы второй vpn тунель поднялся через eth2
2.1 сделать так чтобы все исходящие пакеты на порт 1195 шли через eth2
2.2 проверить на СЕРВЕРЕ что vpn подключился с клиентского ip eth2
для этого Я делаю:
#сначала задаю таблицы в /etc/iproute2/rt_table
1194 vpn1194.out
1195 vpn1195.out
#добавляю роли
ip rule add fwmark 1194 table vpn1194.out
ip rule add fwmark 1195 table vpn1195.out
#Задаю маршрут
/sbin/ip route add default dev eth1 table vpn1194.out
/sbin/ip route add default dev eth2 table vpn1195.out
iptables -t mangle -A OUTPUT -p udp -m udp --dport 1194 -j MARK --set-mark 1194
iptables -t mangle -A OUTPUT -p udp -m udp --dport 1194 -j LOG --log-prefix «udp 1194 CONNMARK 1»
iptables -t mangle -A OUTPUT -p udp -m udp --dport 1195 -j MARK --set-mark 1195
iptables -t mangle -A OUTPUT -p udp -m udp --dport 1195 -j LOG --log-prefix «udp 1195 CONNMARK 2»
маркируются все отлично.
Chain OUTPUT (policy ACCEPT 7587 packets, 760053 bytes)
pkts bytes target prot opt in out source destination
686 110402 MARK udp — * * 0.0.0.0/0 0.0.0.0/0 udp dpt:1194 MARK set 0x4aa
686 110402 LOG udp — * * 0.0.0.0/0 0.0.0.0/0 udp dpt:1194 LOG flags 0 level 4 prefix `udp 1194 CONNMARK 1'
161 15776 MARK udp — * * 0.0.0.0/0 0.0.0.0/0 udp dpt:1195 MARK set 0x4ab
161 15776 LOG udp — * * 0.0.0.0/0 0.0.0.0/0 udp dpt:1195 LOG flags 0 level 4 prefix `udp 1195 CONNMARK 2'
В логах пишет что маркируется
Apr 1 16:28:07 gwital kernel: [ 3008.803488] udp 1194 CONNMARK 1IN= OUT=eth2 SRC=192.168.1.33 DST=109.195.86.203 LEN=89 TOS=0x00 PREC=0x00 TTL=64 ID=0 DF PROTO=UDP SPT=48533 DPT=1194 LEN=69 MARK=0x4aa
Apr 1 16:28:09 gwital kernel: [ 3010.330899] udp 1195 CONNMARK 2IN= OUT=eth2 SRC=192.168.1.33 DST=109.195.86.203 LEN=70 TOS=0x00 PREC=0x00 TTL=64 ID=0 DF PROTO=UDP SPT=57522 DPT=1195 LEN=50 MARK=0x4ab
далее делаю на POSTROUTE
iptables -t nat -A POSTROUTING -p udp -m udp --dport 1194 -j SNAT --to-source 192.168.1.33
iptables -t nat -A POSTROUTING -p udp -m udp --dport 1194 -j LOG --log-prefix «udp 1194 marking out 1»
iptables -t nat -A POSTROUTING -p udp -m udp --dport 1195 -j SNAT --to-source 10.0.0.10
iptables -t nat -A POSTROUTING -p udp -m udp --dport 1195 -j LOG --log-prefix «udp 1195 marking out 2»
ЛОГИ для POSTROUTING
Chain POSTROUTING (policy ACCEPT 1 packets, 60 bytes)
pkts bytes target prot opt in out source destination
0 0 SNAT udp — * * 0.0.0.0/0 0.0.0.0/0 udp dpt:1194 to:192.168.1.33
0 0 LOG udp — * * 0.0.0.0/0 0.0.0.0/0 udp dpt:1194 LOG flags 0 level 4 prefix `udp 1194 marking out 1'
но туннель не поднимается... Кто нибудь когда нибудь делал на подобие этого?
Может в POSTROUTING не так делаю?
Дайте мне совет что надо делать и что Я не так делаю?