Назад | Перейти на главную страницу

Iproute2: маршрутизация с несколькими сетями и несколькими шлюзами

У меня есть Linux под управлением Ubuntu 10.04 с тремя интерфейсами: eth0, eth1 и eth2. Я планирую использовать его в качестве маршрутизатора WAN для 4 общедоступных подсетей, назначенных двумя разными интернет-провайдерами. Вот подсети (я преобразовал подсети, назначенные провайдером, в частные подсети класса C):

ISP 1   
WAN 192.168.0.176/30 gateway 192.168.0.177   
LAN 192.168.3.192/29

ISP 2   
WAN 192.168.6.208/30 gateway 192.168.6.209  
LAN 192.168.9.216/29

/30 подсети сталкиваются с соответствующими интернет-провайдерами и /29 подсети обращены к моему коммутатору LAN.

Вот как IP-адреса назначаются интерфейсам:

LAN interface 
eth0 192.168.3.193/29
eth0:0 192.168.9.217/29

ISP 1 interface
eth1 192.168.0.178/30

ISP 2 interface
eth2 192.168.6.210/30

Я хочу маршрутизировать трафик между соответствующими назначенными провайдерами /30 и /29 подсети отдельно. Если трафик идет от одного интернет-провайдера /30 сети, он должен быть направлен к этому интернет-провайдеру /29 сеть и наоборот. Я не против, если трафик исходил от одного провайдера /29 сеть, предназначенная для других интернет-провайдеров /29 сеть маршрутизируется в моем маршрутизаторе (без отправки одному интернет-провайдеру и возвращается по ссылке другого провайдера).

Моя цель - не покупать два роутера для двух интернет-провайдеров. Как я могу добиться этого, используя таблицы iproute2 и политику маршрутизации?

Сначала создайте таблицу маршрутизации для каждого провайдера (выполняется только один раз):

echo "11 isp1" >> /etc/iproute2/rt_tables
echo "12 isp2" >> /etc/iproute2/rt_tables

Затем добавьте в каждую таблицу маршрут по умолчанию, указывающий на соответствующий шлюз:

ip route add default via 192.168.0.177 table isp1
ip route add default via 192.168.6.209 table isp2

Затем добавьте правила для отправки трафика в эти таблицы на основе адреса источника:

ip rule add from 192.168.3.192/29 table isp1
ip rule add from 192.168.0.176/30 table isp1
ip rule add from 192.168.9.216/29 table isp2
ip rule add from 192.168.6.208/30 table isp2