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