Наверняка многие сталкивались с задачей прикрутить на одну тачку 2 и более провайдеров за раз. По сути данная задача не сложная, поднимается несколько сетевых карт, назначаются параметры сети, если это ethernet или настраивается ppp, чтобы поднять PPPOE соединение. Но существует еще одна скрытая проблема - это пересечение IP адресов этих провайдеров. Обычно это внутренняя сеть 10.0.0.0/8, внешние сети не пересекаются и их можно разрулить обычными командами:
route add -net 217.66.16.0 netmask 255.255.240/0 dev eth1
route add -net 95.78.64.0 netmask 255.255.192.0 dev ppp0
route add -net 83.151.0.0 netmask 255.255.0.0 dev ppp1
А что же делать, если у всех трех провайдеров есть подсеть 10.0.0.0/8 - если мы простым route add попробуем прописать эту подсеть, то работать будет только у одного провайдера, абоненты двух других провайдеров попасть к вам на сервер не смогут.
Итак:
Дано: Железяка 1 Шт.
OS: Debian
Сеть: 4 интерфейса - 3 провайдера + 1 локалка.
PPP0 - Пров1
PPP1 - Пров2
Eth1 - Пров3
Eth2 - Lan
Задача: Заруливать на сервер абонентов трех провайдеров, при этом чтобы абоненты из одной подсети 10.0.0.0/8 могли одновременно каждый по своему интерфейсу заходить на сервер.
Карта сети:

Решение:
Берем в руки модуль conntrack. С помощью iptables маркируем все входящие пакеты на интерфейсе eth2 в зависимости от их оригинального адреса назначения:
iptables -t mangle -A PREROUTING -i eth2 -m conntrack --ctorigdst 217.23.xxx.xxx -j MARK --set-mark 1
iptables -t mangle -A PREROUTING -i eth2 -m conntrack --ctorigdst 89.251.xxx.xxx -j MARK --set-mark 2
iptables -t mangle -A PREROUTING -i eth2 -m conntrack --ctorigdst 91.144.xxx.xxx -j MARK --set-mark 3
Создаём три таблицы для iproute2
cat >> /etc/iproute2/rt_tables << EOF
100 ttk
101 tvt
102 dom
EOF
Заполняем таблицы маршрутами к провайдерам (в нашем случае это один маршрут через езернет и два через пэ-пэ-пэ)
ip route add 217.23.xxx.xxx/xx dev eth8 proto kernel scope link src 217.23.xxx.xxx table ttk
ip route add default via 217.23.xxx.xxx dev eth8 table ttk
ip ro add default dev ppp1 scope link ta tvt
ip ro add default dev ppp1 scope link ta dom
Добавляем правила, для каждой марки
ip rule add fwmark 1 table ttk
ip ru add fwmark 2 ta tvt
ip ru add fwmark 3 ta dom
Сбрасывем кэш
ip route flush cache
Вот и все. Радуемся жизни.
В приложенных файлах вы найдете правила для iptables (firewall.txt) и файл с разруливанием сетей двух самых популярных в Челнах провайдеров Таттелеком, ТВТ, Дом.ру (route.txt)
P.S. Не забудьте исправить ХХ.ХХ в ip адерсах, на ваши параметры.
| Вложение | Размер |
|---|---|
| firewall.txt | 4.62 кб |
| route.txt | 1.43 кб |





Респект за статью!
Респект за статью!
что будет, если в сетях
что будет, если в сетях нескольких провайдеров присутствуют одинаковые адреса?
Отправить комментарий