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