Mohl by nekdo poradit nejake blizsi informace (konkretni, jyxo a google znam). O implmentaci OSPF/quaggy,zebry - dynamickeho routovani? Jde mi o pochopeni principu, nasledne prakticke vyuziti.
Diky ;)
Printable View
Mohl by nekdo poradit nejake blizsi informace (konkretni, jyxo a google znam). O implmentaci OSPF/quaggy,zebry - dynamickeho routovani? Jde mi o pochopeni principu, nasledne prakticke vyuziti.
Diky ;)
Mám zkušenost s ripem v podání zebry, ospf už moc odlišný není.
RIP mám nasazen na všech asi 8 routerech v síti. Jednoduše zkompiluješ zebru, vytvoříš init skripty pro spouštění a spustíš démony zebrad a ripd. Pro fungování se na to není třeba připojovat, takže to v zebrad.conf a ripd.conf zakážeš. Do ripd.conf pak už jen přidáváš rozhraní / subnety, který chceš propagovat do sítě a o ostatní se stará démon sám. U ospf je to podobně, jen se u route nastavujou ještě costy, aby démon věděl, která cesta je výhodnější..
Dik, uz jsem neco nastudoval, snad zitra zkusime prejit na dyn. routovani :). Btw jak se identifikuji igw's ? Mam nejakou predstavu, ale chci si byt jist.Citace:
Původně odeslal KUBA
-- tohle by podle me melo propagovat konc. igatewaye (kdyz je jich vic, +jeste metriku). (???) :)Kód:router ospf
...
default-information originate always metric-type 1
Pridavam linky, ze kterych jsem ziskal potrebne informace:
http://www.zebra.org/
http://pilot.org.ua/zebra/ospf.html
http://www.repy.net/rfc/
http://www.root.cz/clanek/1738
http://www.abclinuxu.cz/forum/show/66360
http://www.abclinuxu.cz/forum/show/62554
Vzhledem k tomu ze to doma prave confim, tak neco malo:
Pouzivam quagga 0.96.5, tohle je jen pokusnej konfig, ale mezi dvema kompama na LAN to fucka.
zebra.conf:
Heslo se zakoduje, pokud ten conf ulozis z konzole zebry (natelnetis se na ten port a v enable modu das write file)Kód:!
! Zebra configuration saved from vty
! 2004/10/21 21:03:26
!
hostname jzvc_main_gw
password heslo
enable password heslo
log stdout
service advanced-vty
service password-encryption
!
interface dummy0
description router-ip
ip address 10.160.0.1/32
ipv6 nd suppress-ra
!
interface eth0
description inet-ronja
bandwidth 250
ip address 10.10.10.10/30
ipv6 nd suppress-ra
!
interface eth1
description lan
bandwidth 100000
ip address 192.168.0.1/24
ip address 10.160.1.1/26
ipv6 address 3ffe:80ee:f28:1::1/64
!
! z nejakyho zahadnyho duvodu to sice prideli IP i router, ale nefucka to
! ipv6 nd prefix-advertisement 3ffe:80ee:f28:1::/64
! ipv6 nd managed-config-flag
! ipv6 nd other-config-flag
! ipv6 nd ra-lifetime 900
ipv6 nd suppress-ra
!
interface eth2
description inet-proxim-backup
bandwidth 60
ip address 192.168.10.5/24
ipv6 nd suppress-ra
!
interface eth3
description wifi-ap
bandwidth 10000
ipv6 nd suppress-ra
!
interface ipng
ipv6 nd suppress-ra
!
interface lo
description loopback
ip address 127.0.0.1/8
ipv6 address ::1/128
!
interface sit0
ipv6 nd suppress-ra
!
interface tap0
ipv6 nd suppress-ra
!
ip route 0.0.0.0/0 10.10.10.10
ip route 192.168.2.0/24 192.168.3.2
ipv6 route 2000::/3 ipng
!
ip route 10.0.0.0/8 reject
!
access-list term permit 127.0.0.1/32
access-list term deny any
!
!
line vty
access-class term
!
Ke kazdymu interface si tu muzes napsat IPv4/IPv6 adresy dle libosti, pokud po startu zebry tu adresu uz ma, nic se nedeje, pokud ne, tak ji dostane.
Mimochodem interface dummy0 by pro dalsi ucely mel byt normalne videt pres ifconfig(= je treba ho nahodit), ale pro ucely sireni routy to netreba resit. Je to dulezity pro identifikaci konkretniho stroje.
Melo by to umet i totez co radvd demon, ale jak vidis, je to zakomentovany, paac to "funguje" nako divne.
ip route ... pridas si tu routy na site, ktery nejsou primo pripojeny (staticky routy). Ten reject jen zaridi, ze pokud router nezna cestu do site z toho rozsahu, tak nepouzije ani default a rejectne ten pozadavek. Sice blbe,ale prece - misto nedostupnosti site vrati nedostupnost stroje, ale budiz. Mozna ze to de nekde zmenit, ale k tomu sem se jeste nedostal.
ten zbytek jen omezi pristup na telnet z localhostu (+ je samo dory mit nahozenej FW)
Kdyz ted spustis zebru, normalne priradi ty IP adresy + prida ty staticky routy. Tot vse, nic vic se nestane.
ospfd.conf:
Takze opet popis interfaces (jinak v obou tech confech sou i veci, ktery sem tam nepsal, pridali se tam po write z konzole, takze sou default).Kód:!
! Zebra configuration saved from vty
! 2004/10/27 17:41:36
!
hostname jzvc_main_gw
password heslo
enable password heslo
log stdout
service advanced-vty
service password-encryption
!
!
!
interface eth0
!
interface eth1
!
interface eth2
!
interface eth3
!
interface ipng
ip ospf network point-to-point
!
interface lo
!
interface sit0
!
interface tap0
!
router ospf
ospf router-id 10.160.0.1
redistribute connected metric-type 1
network 10.160.0.1/32 area 0.0.0.0
! network 10.160.33.64/28 area 0.0.0.0
network 10.160.1.0/26 area 0.0.0.0
neighbor 10.160.0.2
!
line vty
!
Dulezita je ta cast za router ospf.
Jako router-id se pouzije IP dummyho. Jak vidis, distribuce je na conncted = router bude vytrubovat do sveta vsechny routy, ke kterym je primo pripojenej.
network jsou site kam se bude vytrubovat, v tomhle pripade jsou dve (= bude posilat routy na ty rozhrani, ktery maj IP z tehle rozsahu), na to se muzes podivat v konzoli ospf (show ip ospf interface).
neighbor je router-id souseda (= v nasem pripade i jeho dummy ip), ten musi mit ve svym konfiguraku neighbor 10.160.0.1. Jinak to nebude fungovat.
Pokud to ted pustis a na jedny ze siti ktery tu jsou uvedeny pustis dalsi ospfd, kde nechas konfiguraky vpodstate prazdny, krom toho neighbor, tak se ti prenesou routy.
Tot asi vsjo. Zatim sem neresil ohodnocovani tras, a varuju, na www.quagga.net je sice dokumentace, ale ne vzdy sedi (ten parametr se treba jmenuje trochu jinak :roll:, je tam misto mezery pomlcka ...)
EDIT: Jeste, malem bych zapomel, je treba FW povolit -d 224.0.0.0/24 (asi), tohle sem vycet na root.cz, ale nikde jinde na netu sem to nenasel, nejaka zminka je v RFC, ale taky takova neurcita. na root jsou jmenovany 3 tyhle adresy, ale pokud se k tomu pravidlu prida jeste -s a.b.c.d s IP kamose/u pro ktery tohle povolit, tak to neni problem ;).
EDIT 2: Tak uz sem zase o neco chytrejsi, viz dnesni clanek na lupe http://www.lupa.cz/clanek.php3?show=3732 . Je tam kde zjistit ty multicastovy adresy.
KOKOK :). Mel jsem ted cas, tak jsem prubnul konfiguraci s 5PC ;). No, zda se, ze se simulace (respektive nastaveni) povedla.
Zde jsou configy
zebra.conf
ospf.confKód:!
! All the same as zebra.conf
!
hostname router.nadrazi
!password router
!enable password router
!log file /var/log/zebra/zebra.log
!log record-priority
!service advanced-vty
! service password-encryption
!debug zebra events
!debug zebra kernel
interface dummy0
ip address 192.168.0.2/32
!
interface lo
ip address 127.0.0.1/8
!
interface wlan0
ip address 192.168.250.9/29
!
interface wlan1
ip address 192.168.3.97/27
!
interface eth1
ip address 192.168.3.5/27
!
interface eth0
ip address 192.168.1.25/24
!
!
! Ok, this bit is critical for *BSD machines.
!
! The way that the linux and BSD ip stacks handle multicast is different.
! The BSD's need a route to the multicast destinaton before they will send
! any packets.
!
! zebra dosn't know that it needs to add the routes it's self, so we add them as static routed
! pointing at5 the loopback interface (127.0.0.1)
!
!
! OSPF-ALL.MCAST.NET
ip route 224.0.0.5/32 127.0.0.1
!
! OSPF-DSIG.MCAST.NET
ip route 224.0.0.6/32 127.0.0.1
!
! RIP2-ROUTERS.MCAST.NET (ok, so we don't use rip, but we might as well have it here).
ip route 224.0.0.9/32 127.0.0.1
!
! Ok, this is important!
!
! The lines below define an access list called 'term' that only allows packets from
! 127.0.0.1 (i.e. the local machine), We use this to limit access to zebra it's self
! to the local machine.
!
! This means that zebra can only be reconfigured from the box it's running on.
!
! (i think the 'deny any' line is redundant - there is an explicit one at
! the end of any access-list)
!
access-list term permit 127.0.0.1/32
access-list term deny any
!
! Here we apply the access list we just defined to the 'vty line' - now we
! can only log in from the bpox zebra is running on.
!
line vty
access-class term
!
! Thats it!
!
atdatd. Je to parada a celkem to i ulehcuje spravu, kdyz napriklad jeden spoj vypadne.Kód:!
! Zebra configuration saved from vty
! 2002/08/03 13:50:05
!
hostname router.nadrazi
!password lIdicka
!enable password lIdicka
!log file /var/log/zebra/ospfd.log
!log record-priority
service advanced-vty
!
!
!
interface lo
!
interface dummy0
!
interface eth0
description nadrazi-hiam
ip ospf cost 10
!
interface eth1
description nadrazi-libusin
! ip ospf network point-to-multipoint
ip ospf cost 100
! ip ospf dead-interval 240
!
interface wlan0
description nadrazi-libusin
ip ospf cost 14
! ip ospf dead-interval 240
! ip ospf retransmit-interval 4
!
interface wlan1
description nadrazi-ap
ip ospf cost 14
!
router ospf
ospf router-id 192.168.0.2
redistribute static metric-type 1
redistribute connected metric-type 1
passive-interface wlan1
network 192.168.250.0/30 area 0
network 192.168.250.4/30 area 0
network 192.168.1.0/24 area 0
network 192.168.0.2/32 area 0
neighbor 192.168.0.1
neighbor 192.168.0.4
!
distribute-list confil out connected
access-list term permit 127.0.0.1/8
access-list term deny any
Kód:priloha A: staticke ocenovani OSPF linek
bit / sec byte/sec OSPF cost
eth 1G 100M 1
eth 100M 10M 10
eth 10M 1M 100
sbni 2M 200K 500
sbni 1M 100K 1000
sbni 500K 50K 2000
sbni 250K 25K 4000
Takze na to odnocovani pouzivam bandwidth v zebra.conf ("rychlost" v bit/s) u kazdyho interface a auto-cost reference-bandwidth 1000 ("rychlost" v Mbit/s)v ospfd.conf. Pri tomhle nastaveni je cena 1Gbit linky 1 (pocita se jako podil reference-bandwidth/bandwidth). Funguje to (zatim neni stejne zadna jina cesta).
Jeste jsem se snazil vyresit source routing, ale akosi mi vyslo, ze daleko efektivnejsi bude proste sirit default routu a kdo ji pripadne na svym routeru ode me chtit nebude, tak si nahodi filtr.
Ted bych potreboval jeste nejakej rozumne (!= to co je na connected v RFC) okomentovanej prikladek na sumarizaci ;).
2CompCrasher default routu lze sirit jen jednu ;) => pokud chces pouzit jinou nez defaultni iGW, tak nejjednodussi reseni je tunel. Jinak bys musel na vsech routerech v oblasti nastavit, ze tvoje pakety urceny do inetu se maj posilat "ke vsem certum" :D .
No, :) jasne - takhle je akorat urcena metrika u bran a kdyz jedna vypadne, pouzije se druha.. Tak jsem to myslel a pochopil..
Viz muj planovany ospd.conf
Podle vseho to tak musi fungovat, o weekendu testnu.Kód:! -*- ospf -*-
!
! OSPFd configuration file
!
!
hostname igw1.libusin
!password zebra
!enable password please-set-at-here
!
!log file /var/log/ospfd.log
!log stdout
!
!definice jednotlivych sitovek
!
interface dummy0
!
interface lo
!
interface eth0
description sit
bandwidth 100000000
!
interface eth1
description isp peering
bandwidth 100000000
!
interface wlan0
description backup lan peer
bandwidth 6000000
!
!nastaveni routeru
!
router ospf
ospf router-id 192.168.0.4
redistribute connected metric-type 1
redistribute static metric-type 1
passive-interface eth1
network 192.168.3.0/29 area 0
network ............... area 0
atd atp
default-information originate always metric 1
!
distribute-list confil out connected
access-list confil permit 192.168.0.0/8
access-list confil deny any
Pokud to tvuj kernel umi (jako ze asi jo) a zaonacis to tak, ze budes mit dve cesty se stejnou metrikou, tak se traffic bude delit mezi ne :idea: .
Ciste teoreticky, by tohle melo jit i kdyz stejnou metriku nemaj, a rozdelit to v tom pomeru. Rucne to udelat umim (ip + nexthop), ale jak k tomu dokopat zebru netusim.