URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID12
Нить номер: 7095
[ Назад ]

Исходное сообщение
"маршрутизация на iptables"

Отправлено millionaire_kg , 01-Апр-14 15:04 
Доброго времени суток!
проблема с перенаправлением трафика в определенный интерфейс.
есть 3 интерфейса + 2 VPN канала на один и тот же сервер:
eth0 = LAN -- ip 192.168.55.1
eth1 = WAN1(dhcp)
eth2 = WAN2(dhcp)
tun0 = VPN канал1 -- ip(192.168.3.2)
tun1 = VPN канал2 -- ip(192.168.2.2)
Надо
1. сделать так чтобы первый vpn тунель поднялся через eth1
1.1 сделать так чтобы все исходящие пакеты на порт 1194 шли через eth1
1.2 проверить на СЕРВЕРЕ что vpn подключился с клиентского ip eth1
2. сделать так чтобы второй vpn тунель поднялся через eth2
2.1 сделать так чтобы все исходящие пакеты на порт 1195 шли через eth2
2.2 проверить на СЕРВЕРЕ что vpn подключился с клиентского ip eth2
3. сделать двойной маршрут с помощью nexthop или bound

для этого Я делаю:

#сначала задаю таблицы в /etc/iproute2/rt_table
201 vpn1194.out
202 vpn1195.out

#добавляю роли
ip rule add fwmark 1 table vpn1194.out
ip rule add fwmark 2 table vpn1195.out

#Задаю маршрут
/sbin/ip route add default dev eth1 table vpn1194.out
/sbin/ip route add default dev eth2 table vpn1195.out

#маркирую в iptables и отправляю по eth1 и eth2
iptables -t mangle -A PREROUTING -i eth1 -p udp --dport 1194 -j MARK --set-mark 0x1
iptables -t mangle -A PREROUTING -i eth2 -p tcp --dport 1195 -j MARK --set-mark 0x2

#перенаправляю маркированные пакеты в определенные интерфейсы
iptables -t nat -A POSTROUTING -m mark --mark 0x1 -j SNAT --to-source 192.168.1.33(eth1)
iptables -t nat -A POSTROUTING -m mark --mark 0x2 -j SNAT --to-source 10.0.0.10(eth2)

в итоге пингую а там пакеты не учитываются а тупо проходят мимо только через интерфейс eth1.
Дайте мне совет что надо делать и что Я не так делаю?


Содержание

Сообщения в этом обсуждении
"маршрутизация на iptables"
Отправлено reader , 01-Апр-14 16:03 
>[оверквотинг удален]
> ip rule add fwmark 1 table vpn1194.out
> ip rule add fwmark 2 table vpn1195.out
> #Задаю маршрут
> /sbin/ip route add default dev eth1 table vpn1194.out
> /sbin/ip route add default dev eth2 table vpn1195.out
> #маркирую в iptables и отправляю по eth1 и eth2
> iptables -t mangle -A PREROUTING -i eth1 -p udp --dport 1194 -j
> MARK --set-mark 0x1
> iptables -t mangle -A PREROUTING -i eth2 -p tcp --dport 1195 -j
> MARK --set-mark 0x2

пакеты от локальной машины не проходят через -t mangle - PREROUTING

> #перенаправляю маркированные пакеты в определенные интерфейсы
> iptables -t nat -A POSTROUTING -m mark --mark 0x1 -j SNAT --to-source
> 192.168.1.33(eth1)
> iptables -t nat -A POSTROUTING -m mark --mark 0x2 -j SNAT --to-source
> 10.0.0.10(eth2)
> в итоге пингую а там пакеты не учитываются а тупо проходят мимо
> только через интерфейс eth1.
> Дайте мне совет что надо делать и что Я не так делаю?

а что пингуем то?
оба vpn поднимаются не через ваши таблицы table vpn1194.out, table vpn1195.out