Re[]: Plnohodnotná záložní konektivita - trochu delsi
Marek Coufal
Marek.Coufal na ntisk.cz
Úterý Leden 18 08:38:59 CET 2005
Popisu zpusob ktery jsem si odzkousel a v testovacich podminkach
chodi:
vse je na jednom stroji, ktery routuje a dela FW.
eth0 (vnitrni) 192.168.1.254
eth1 (vnejsi Primarni) 195.x.x.x
eth2 (vnejsi Sekundarni) jeste nevim
iptables -t mangle .... -j MARK --set-mark 1
(timto zpusobem muzu nastavovat i ktere podsite pujdou pres ktere eth)
v rt_tables je jenom 201 t-prim, 202 t-sec a 203 xxx
routovaci tabulka:
#! /bin/bash
NIC_prim='eth1'
IP_prim='x.x.x.x'
GW_prim='x.x.x.x'
NET_prim='x.x.x.x/29'
NIC_sec='eth2'
IP_sec='y.y.y.y'
GW_sec='y.y.y.y'
NET_XX='y.y.y.y/29'
NIC_LAN='eth0'
IP_LAN='192.168.1.254'
GW_LAN='192.168.1.1'
NET_LAN='192.168.1.0/24'
ip route flush cache
# vycisteni tabulky
ip rule del prio 32766
ip rule del prio 32767
# poradi tabulek je
# 0 local
# 100 main - routy na site a podsite
# 200 t-prim
# 250 t-sec
# 300 xxx - vsechno ostatni
# kdyz sem smazal vsechny tabulky, musim si je rucko udelat znovu...
ip rule add table main prio 100
# co je oznaceny ( od IPTables ) cislem 1 patri do T-Prim
ip rule add fwmark 1 table t-prim prio 200
# co je oznaceny cislem 2 patri do T-Sec
ip rule add fwmark 2 table t-sec prio 250
# posledni rule je pro vsechny co projdou tabulkama a nikde se nechytej
ip rule add table xxx prio 300
#default routa T-Prim
ip route append default table t-prim metric 1 nexthop via $GW_Prim dev
$NIC_Prim
#zalozni routa
ip route append default table t-prim metric 2 nexthop via $GW_Sec dev
$NIC_sec
#default routa T-Sec
ip route append default table t-sec metric 1 nexthop via $GW_Sec dev
$NIC_Sec
#zalozni routa
ip route append default table t-sec metric 2 nexthop via $GW_Prim dev
$NIC_Prim
# Standartni routovaci tabylka pro vsechny co nejsou v tabulkach
ip route add default via $GW_Prim table xxx
---------------
a nakonec kdyz spadne primarni spoj, eth1 jde down a routy se prepnou.
pro vraceni do puvodniho stavu poustim cron:
#! /bin/bash
NIC_NX='eth1'
IP_Prim='x.x.x.x'
GW_Prim='x.x.x.x'
NET_Prim='x.x.x.x/29'
NIC_Sec='eth2'
IP_Sec='y.y.y.y'
GW_Sec='y.y.y.y'
NET_Sec='y.y.y.y/29'
NIC_LAN='eth0'
IP_LAN='192.168.1.254'
GW_LAN='192.168.1.1'
NET_LAN='192.168.1.0/24'
#default routa T-Prim
ip route append default table t-prim metric 1 nexthop via $GW_Prim dev
$NIC_Prim > /dev/null 2>&1
#zalozni routa
ip route append default table t-prim metric 2 nexthop via $GW_Sec dev
$NIC_Sec > /dev/null 2>&1
#default routa T-Sec
ip route append default table t-sec metric 1 nexthop via $GW_Sec dev
$NIC_Sec > /dev/null 2>&1
#zalozni routa
ip route append default table t-sec metric 2 nexthop via $GW_Prim dev
$NIC_Prim > /dev/null 2>&1
---------
pokud je pred spoustenim cronu eth1 up, tak se tabulka zmeni, pokud ne
kernel hned smaze defaultni routy a necha pouze zalozni...
Pokud mam nekde chybu, budu rad kdyz me opravite.
Jakekoliv vylepseni je vitano...
Marek
Další informace o konferenci Linux