BIRD - routovani na IP-aliased interface (trosku delsi)

Martin Edlman edlman na fortech.cz
Pátek Duben 13 10:20:20 CEST 2001


Zdravim,

	potreboval bych zvedet, zda se nesnazim marne, kdyz se snazim o
nasledujici:

	Mam hlavni router (0), ktery je gatewayi pro nekolik siti, ktery jsou k
tomuto routeru pripojeny jedinou sitovkou (eth1) a dal jsou vetveny
bezdratove WaveLANem.

Schema site:

                                      10.0.1.252/30
                   +---+   10.0.1.1 +---+       +---+
                   |   |------------| 3 |-------| 4 |
    +---------+    | W |            +---+       +---+   sit B
    |         |    | V |- - - - - - - - - - - - - - - - - - - 
    | gateway |eth1| L |   10.0.11.2+---+               sit A
    |    0    |----| A |  +---------| 2 |
    |         |    | N |  |         +---+
    +---------+    |   |--|
     eth0|         +---+  |10.0.11.1+---+
         |                +---------| 1 |
      Internet                      +---+

Sit A je pro jednu lokalitu a sklada se ze dvou siti, private a public:
10.0.0.0/23 (dve cecka) a 194.213.253.0/30 (malinka testovaci sit)

Sit B je na to obdobne, pro druhou lokalitu:
10.0.10.0/23 a 194.213.253.4/30

Takze na gatewayi mam na eth1 nasl. ip:
10.0.0.1, 194.213.253.1, 10.0.10.1 a 194.213.253.5

Routery 1,2,3,4 jsou linux routery (LRP), takze na nich setrim mistem,
proto jsem zvolil BIRD, ktery ma binar ze vsech nejmensi.
Routery jsou bud pripojeny ke gatewayi primo (1,2,3) nebo v kaskade (4).
Za kazdym routerem jsou verejne site.
Na routerech plati: eth0 jde do Internetu, ostatni od nej.

No a mym cilem je dostat vsechny site z routeru (1,2,3,4), pripojeny na
eth{1,n}, na gateway, abych na ni nemusel udrzovat spousty statickych
routu.

Pouzivam OSPF.
Pokud mam na gatewayi na eth1 vsechny aliasy, tak mi BIRD neprijima
routy a od routeru.
Pokud necham jen jednu IP adresu (10.0.10.1), tak dostava routy jen z
10.0.10.0/23 site.
Stejne se to chova i pokud necham alias na druhou desitkovou sit, ale z
ni nic neprijima.

Zkousel jsem na gatewayi konfigurovat BIRDa vselijak, ale bez uspechu,
zkousel jsem nasl:

protocol ospf ospfIN {
        export none;
        import all;
        area 0.0.0.0 { 
                tick 8;
                interface "eth1*" 10.0.0.0/23;
        };
} 

Misto interface, jsem zkousel i nasl. varianty:
                interface "eth1" 10.0.10.0/23;
                interface "eth1:1" 10.0.0.0/23;
Zkousel jsem udelat dve area v jednom ospf protokolu, zkousel jsem
udelat dva ospf protokoly, kazdej s jinou area, ... nic.
Kdyz uz jsem u tech area - muze mi nekdo rict, jak presne fungujou?
(Nahlizel jsem do RFC, ale chtel bych nejaky strucny a prehledny
vysvetleni). Mam mit vsechny routery v jedny area? V jaky? Nula?
Kdyz jsem zkousel menit area tak mi BIRD v logu misto zadanych vypisoval
uplne jiny cisla.

kdyz se do BIRDa napichnu pres birdc, tak mi "show ospf" vypise:
bird> show ospf 
ospfIN:
Number of areas: 1
        Area: 0.0.0.0 (0) [BACKBONE]
                Stub:   No
                RT scheduler tick:      8
                Number of interfaces:   1
                Number of LSAs in DB:   1
                Number of neighbors:    0
                Number of adjacent neighbors:   0
>>> device1: Scanning interfaces
>>> ospfIN: Received hello from 10.0.11.1 via eth1
>>> ospfIN: New neighbor found: 10.0.11.1 on eth1.
>>> ospfIN: Neighbor 10.0.11.1 changes state from "    down" to "    init".
>>> ospfIN: Neighbor 10.0.11.1 changes state from "    init" to "    2way".
>>> ospfIN: SM on iface eth1. Event is "neighbor change".
>>> ospfIN: Neighbor 10.0.11.1 changes state from "    2way" to " exstart".
>>> ospfIN: Scheduling RT lsa origination for area 0.0.0.0.
>>> ospfIN: DB_DES (I) sent to 10.0.11.1 via eth1.
>>> ospfIN: Hello sent via eth1
>>> ospfIN: DB_DES (I) sent to 10.0.11.1 via eth1.

To jsou hlasky ohledne routeru na aliasovany siti (10.0.10.0/23), porad
se opakuje DB_DES (I) sent... a stac se z "extstart" nezmeni na
"exchange" a "loading" jaku u routeru na primarni siti (10.0.0.0/23).

Z ospf se nauci routy jen z routeru 10.0.1.1:

bird> sh route 
10.0.10.0/23       dev eth1 [direct1 08:54] (240)
1.1.1.0/24         dev eth0 [direct1 08:54] (240)
10.0.0.0/23        dev eth1 [direct1 08:54] (240)
                   dev eth1 [ospfIN 10:06] I (150/10)
127.0.0.0/8        dev lo [direct1 08:54] (240)
194.213.253.232/29 via 10.0.1.1 on eth1 [ospfIN 10:06] E2 (150/10/10000)
10.0.255.0/24      dev eth0 [direct1 08:54] (240)
10.0.1.252/30      via 10.0.1.1 on eth1 [ospfIN 10:06] E2 (150/10/10000)

Jeste jsem se nepokousel o reseni kaskady (router 4), to az se mi podari
rozchodit popsany problem.

Takze muze mi nekdo rici, zda lze muj problem resit pomoci BIRDu (i
treba s RIPem) a jak? Popr. nejaky jiny routovaci daemon, ktery to umi.
Doufam, ze to pujde z BIRDem, libi se mi jeho velikost a moznosti
konfigurace a taky ze je to matfyzackej projekt.

Edas


Další informace o konferenci Linux