Ключевые слова:ipchains, iptables, route, masquerade, nat, policy, linux, (найти похожие документы) From : Maxim Chirkov <mc@tyumen.ru>
Subj : policy routing для работы с двумя разными каналами наружу
-------------------------------------------------------------------------------
Описание как заставить работать policy routing в маршрутизаторе построенном под
ОС Linux. Конфигурация упрощена до минимума, для улучшения восприятия.
###########################################################
# Интерфейс 1, линк к провайдеру 1 и подсети работающие через этот линк.
ifconfig eth1 1.2.3.35 up # Link 1
ifconfig eth1:0 192.168.10.10 up # Commercial Office net
ifconfig eth1:1 192.168.6.10 up # Client 1 net
ifconfig eth1:2 192.168.7.10 up # Client 2 net
# Интерфейс 0, линк к провайдеру 2 и подсети работающие через этот линк.
ifconfig eth0 4.5.6.202 up # Link 2
ifconfig eth0:0 192.168.3.10 up # Misc Offices net
ifconfig eth0:1 192.168.4.10 up # Work Office net
ifconfig eth0:2 192.168.6.9 up # Client 1 bet
ifconfig eth0:3 192.168.7.9 up # Client 2 net
# Статический рутинг наших сетей лежащих ближе к link 1
# 1.2.3.33 - рутер у link 1
# 4.5.6.201 - рутер у link 2
# основной линк - link 2, link1 - backup если 2 упадет.
route add -net 190.6.8.0 netmask 255.255.255.0 gw 1.2.3.33 eth1
route add -net 190.6.9.0 netmask 255.255.255.0 gw 1.2.3.33 eth1
route add -net 190.6.10.0 netmask 255.255.255.0 gw 1.2.3.33 eth1
route add -net 190.6.16.0 netmask 255.255.255.0 gw 1.2.3.33 eth1
route add -net 190.6.19.0 netmask 255.255.255.0 gw 1.2.3.33 eth1
route add default gw 4.5.6.201 metric 0 eth0
route add default gw 1.2.3.33 metric 1 eth1
# Начинается настройка policy routing
# Распределяем кому через какой канал ходить.
# 192.168.3.0 и 192.168.4.0 - идут через link 2
# 192.168.6.0, 192.168.7.0 и 192.168.10.0 - через link 1
/sbin/ip rule add from 192.168.0.0/16 to 192.168.0.0/16 table main pref 100
/sbin/ip rule add from 192.168.3.0/24 to 0/0 table 101 pref 105
/sbin/ip rule add from 192.168.4.0/24 to 0/0 table 102 pref 105
/sbin/ip rule add from 192.168.6.0/24 to 0/0 table 103 pref 105
/sbin/ip rule add from 192.168.7.0/24 to 0/0 table 104 pref 105
/sbin/ip rule add from 192.168.10.0/24 to 0/0 table 105 pref 105
/sbin/ip route add table 101 via 4.5.6.201
/sbin/ip route add table 102 via 4.5.6.201
/sbin/ip route add table 103 via 1.2.3.33
/sbin/ip route add table 104 via 1.2.3.33
/sbin/ip route add table 105 via 1.2.3.33
# Дальше идет стандартная настройка трансляции пакетов для локальных сетей,
# приводится неполностью за ненадобностью.
echo "1" > /proc/sys/net/ipv4/ip_forward
echo "1" > /proc/sys/net/ipv4/ip_ip_always_defrag
/sbin/insmod ip_masq_ftp
/sbin/insmod ip_masq_raudio
/sbin/insmod ip_masq_irc
/sbin/insmod ip_masq_icq
/sbin/ipchains -M -S 7200 10 160
/sbin/ipchains -P forward DENY
/sbin/ipchains -A forward -s 192.168.3.0/24 -j MASQ
/sbin/ipchains -A forward -s 192.168.6.9 -d 0/0 -j MASQ
/sbin/ipchains -A forward -s 192.168.6.10 -d 0/0 -j MASQ
/sbin/ipchains -A forward -s 192.168.6.4 -d 0/0 -j MASQ
/sbin/ipchains -A forward -s 192.168.6.11 -d 0/0 -j MASQ
/sbin/ipchains -A forward -s 192.168.6.12 -d 0/0 -j MASQ
[....]
Два канала загружаются более-менее равномерно, при перегрузке одного из
каналов (хотел сказать, при приближении к перерасходу тарифного процента),
наиболее агрессивные сети перестраиваются на другой.
Любители ходить через "чужой" канал пользуются squid proxy.