LINUX.ORG.RU
ФорумAdmin

маршрутизация на несколько провайдеров


0

2

День добрый, есть сервер в нём внешний канал (eth1), локальная сеть(eth0), ещё ходит OpenVPN (tun0) для связи с остальными филиалами.

Добавился ещё один внешний провайдер. для его подключение я сделал так.

в файл

 /etc/iproute2/rt_tables
Добавил 2 таблицы
201 T1
202 T2

Создал скрипт, что будет заведовать маршрутизацией.

#!/bin/sh
IP1=217.111.111.99
IP2=94.11.111.81
P1=217.111.111.97
P2=94.11.111.82
IF1=eth1
IF2=eth4
ip route add default via $P1 table T1
ip route add default via $P2 table T2
ip route add default via $P1
ip rule add from $IP1 table T1
ip rule add from $IP2 table T2

после этого сервер отвечает по обоим интерфейсам. также пинги/трацерты с сервера ходят через нужный интерфейс.

 ping -I eth4 ya.ru 

теперь мне нужно что нужные мне клиенты ходили через этот интерфейс наружу. в iptables.up.rules у меня есть правила НАТа

-A POSTROUTING -s 95.111.72.152 -o eth4 -j MASQUERADE
-A POSTROUTING -s 10.10.10.6 -o eth4 -j MASQUERADE
-A POSTROUTING -s 192.168.0.0/255.255.0.0 -o eth1 -j MASQUERADE
-A POSTROUTING -s 10.10.0.0/255.255.0.0 -o eth1 -j MASQUERADE

первыми 2мя строками я хочу чтоб вот 95.111.72.152 и 10.10.10.6 НАТились через нового провайдера, но не судьба, трацерты с них замирают на шлюзе.

таблица маршрутизации вот такая

# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
10.10.10.2      0.0.0.0         255.255.255.255 UH    0      0        0 tun0
94.73.221.80    0.0.0.0         255.255.255.252 U     0      0        0 eth4
217.111.111.96  0.0.0.0         255.255.255.240 U     0      0        0 eth1
192.168.100.0   10.10.10.2      255.255.255.0   UG    0      0        0 tun0
192.168.6.0     10.10.10.2      255.255.255.0   UG    0      0        0 tun0
192.168.5.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0
192.168.4.0     10.10.10.2      255.255.255.0   UG    0      0        0 tun0
192.168.3.0     10.10.10.2      255.255.255.0   UG    0      0        0 tun0
192.168.2.0     10.10.10.2      255.255.255.0   UG    0      0        0 tun0
192.168.1.0     10.10.10.2      255.255.255.0   UG    0      0        0 tun0
192.168.0.0     10.10.10.2      255.255.255.0   UG    0      0        0 tun0
10.10.10.0      10.10.10.2      255.255.255.0   UG    0      0        0 tun0
0.0.0.0         217.111.111.97  0.0.0.0         UG    0      0        0 eth1
0.0.0.0         217.111.111.97  0.0.0.0         UG    100    0        0 eth1
0.0.0.0         94.73.221.82    0.0.0.0         UG    100    0        0 eth4

ЧТо может быть не так?

ты сделал только NAT, а маркировать трафик и разбросать его по таблицам маршрутизации кто будет делать?

Pinkbyte ★★★★★
()
Ответ на: комментарий от Pinkbyte

95.111.72.152 и 10.10.10.6 НАТились через нового провайдера

Во-первых, добавь маршруты к ним(а лучше к подсетям данных клиентов) в новые таблицы маршрутизации
Во-вторых, (тут я предлагаю что таблица T2 - это новый провайдер)

ip rule from 95.111.72.152 table T2
ip rule from 10.10.10.6 table T2

И в-третьих, выруби rp_filter на интерфейсах

Pinkbyte ★★★★★
()
Ответ на: комментарий от Pinkbyte

по порядку

Во-первых, добавь маршруты к ним(а лучше к подсетям данных клиентов) в новые таблицы маршрутизации

тааак. к ним это в таблицу маршрутизацииТ2 я так понимаю пункт2 как раз относится к первому? тогда надо сделать как-то так?

 ip rule add from 10.10.10.6 table T2 
net.ipv4.conf.default.rp_filter = 0
net.ipv4.conf.all.rp_filter = 0

добавил.

ilovemicrosoft
() автор топика
Ответ на: комментарий от Pinkbyte

Немного не понимаю я суть процесса.

теперь у нас несколько таблиц маршрутизации, я гвоорю что пакет с компа 192.168.5.102 может ходить по обоим таблицам. так хорошо. потом делаю нат отдельно для него.

ip rule add from 192.168.5.102 table T1
ip rule add from 192.168.5.102 table T2

-A POSTROUTING -s 95.111.72.152 -o eth4 -j MASQUERADE

трафик на интерфейсе eth4 от 192.168.5.102 не появляется

ilovemicrosoft
() автор топика
Ответ на: комментарий от ilovemicrosoft

>что пакет с компа 192.168.5.102 может ходить по обоим таблицам

не по по обоим, только по одной

ip rule add from 192.168.5.102 table T1

ip rule add from 192.168.5.102 table T2



так трафик пойдет по первому правилу, до второго тупо не дойдет

трафик на интерфейсе eth4 от 192.168.5.102 не появляется


c компа 192.168.5.102 сделай ping 8.8.8.8, потом с роутера tcpdump -i any -n host 8.8.8.8 and ip proto ICMP. Если все пройдет успешно - сделай tcpdump -i eth4 -n host 8.8.8.8 and ip proto ICMP

Pinkbyte ★★★★★
()

Что делать вам уже написали. Добавлю, что SNAT/MASQUERADE не влияет на прохождение пакета. Если вы (с помощью ip rule/ip route) отправите трафик через другой интерфейс, то отсутствие SNAT-правила просто выпустит в сеть провайдера пакеты с оригинальным src-ip адресом (допустим 10.10.10.6).

Лучше NATить все пакеты, а ограничивать кому куда можно в цепочке FORWARD.

mky ★★★★★
()
Ответ на: комментарий от Pinkbyte

Спасибо за уточнения и наводки, при добавлении маршрута

ip rule add from 192.168.5.102 table T2

получаю при снифирении вот что...

Было до добавления маршрута

12:12:13.127463 IP 8.8.8.8 > 217.111.111.99: ICMP echo reply, id 512, seq 12801, length 40
12:12:13.127470 IP 8.8.8.8 > 192.168.5.102: ICMP echo reply, id 512, seq 12801, length 40

стало после.

12:12:14.005466 IP 192.168.5.102 > 8.8.8.8: ICMP echo request, id 512, seq 13057, length 40
12:12:14.016229 IP 192.168.5.102 > 8.8.8.8: ICMP echo request, id 512, seq 13057, length 40
12:12:19.203982 IP 192.168.5.102 > 8.8.8.8: ICMP echo request, id 512, seq 13313, length 40

тоесть всё уходит в одну сторону обратно не возвращается. в файрволе ничего криминального нету, запретов нету.

что я делаю не так?

ilovemicrosoft
() автор топика
Ответ на: комментарий от ilovemicrosoft

Правила сейчас такие

# ip rule
0:      from all lookup local
32763:  from 192.168.5.102 lookup T2
32764:  from 94.73.111.81 lookup T2
32765:  from 217.111.111.99 lookup T1
32766:  from all lookup main
32767:  from all lookup default
ilovemicrosoft
() автор топика
Ответ на: комментарий от ilovemicrosoft

Всем спасибо огромное, похоже получилось, у клиента получается «кэш» был т.к. на сервере делал неоднократно

ip route flush cache 

ilovemicrosoft
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.