Система с Debian как роутер с двумя интернет каналами
Вам необходимо настроить сервер как роутер для ваших сетей (192.168.1.0/24 & 192.168.0.0/24 с двумя выходами в интернет.
1. Открываем файл /etc/iproute2/rt_tables и дописываем в него:
100 localnetsFirst, Second - названия ваших провайдеров
101 first
102 second
2. Добавим в первую таблицу наши сетки
ip route add 192.168.1.0/24 dev eth1 table localnets
ip route add 192.168.0.0/24 dev eth2 table localnets
ip route add <first_net> dev <first_interface> table first
ip route add default via <first_gw_ip> table first
ip route add <second_net> dev <second_interface> table second
ip route add default via <second_gw_ip> table second
ip rule add from all lookup localnets pref 10003. Если хотим отправить трафик отдельных подсетей через разные каналы делаем так:
ip rule add from <first_ip> lookup first pref 3000
ip rule add from <second_ip> lookup second pref 3010
ip rule add from 192.168.1.10 lookup second pref 20004. Добавим правила SNAT, чтобы пользователи могли ходить в тырнет.
ip rule add from 192.168.0.1/24 lookup second pref 2010
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o <first_interface> -j SNAT --to-source <first_ip>5. Извините, не скажу куда всё это правильно засовывать для восстановления конфигурации при загрузке системы, смотрите файлы /etc/network/interfaces и /etc/ppp/ip-up.d скрипты,
iptables -t nat -A POSTROUTING -s 192.168.0.1/24 -o <first_interface> -j SNAT --to-source <first_ip>
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o <second_interface> -j SNAT --to-source <second_ip>
iptables -t nat -A POSTROUTING -s 192.168.0.1/24 -o <second_interface> -j SNAT --to-source <second_ip>
например для pppoe соединения, кроме других параметров, я указал следующие:
unit 0 # Чтобы имя интерфейса всегда было ppp0 (чтобы можно было использовать имя интерфейса ppp0 в разных правилах)Сприпт в ip-up.d содержит следующие строки:
ipparam second # чтобы можно было идентифицировать соединение в скрипте ip-up.d
nodefaultroute # не добавлять маршрут по умолчанию ( я его сам добавил в скприпте ниже)
#!/bin/sh
if [ ${PPP_IPPARAM} = "second" ]; then
route add -net default gw <second_gw_ip> dev <second_interface>
ip route add <second_net> dev <second_interface> table second
ip route add default via <second_gw_ip> table second
fi
Стыбрено с opennet.ru, моя признательность автору поста
Комментарии
Отправить комментарий