Система с Debian как роутер с двумя интернет каналами


Вам необходимо настроить сервер как роутер для ваших сетей (192.168.1.0/24 & 192.168.0.0/24 с двумя выходами в интернет.

1. Открываем файл /etc/iproute2/rt_tables и дописываем в него:
100 localnets
101 first
102 second
First, 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 1000
ip rule add from <first_ip> lookup first pref 3000
ip rule add from <second_ip> lookup second pref 3010
3. Если хотим отправить трафик отдельных подсетей через разные каналы делаем так:
ip rule add from 192.168.1.10 lookup second pref 2000
ip rule add from 192.168.0.1/24 lookup second pref 2010
4. Добавим правила SNAT, чтобы пользователи могли ходить в тырнет.
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o  <first_interface>  -j SNAT --to-source <first_ip>
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>
 5. Извините, не скажу куда всё это правильно засовывать для восстановления конфигурации при загрузке системы, смотрите файлы /etc/network/interfaces и /etc/ppp/ip-up.d скрипты,
например для pppoe соединения, кроме других параметров, я указал следующие:
unit 0 # Чтобы имя интерфейса всегда было ppp0 (чтобы можно было использовать имя интерфейса ppp0 в разных правилах)
ipparam second # чтобы можно было идентифицировать соединение в скрипте ip-up.d
nodefaultroute # не добавлять маршрут по умолчанию ( я его сам добавил в скприпте ниже)
Сприпт в ip-up.d содержит следующие строки:
#!/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, моя признательность автору поста


Комментарии

Популярные сообщения