Často kladené otázky o OSPF

Z HKfree wiki
Přejít na: navigace, hledání

ČKD o OSPF pro HKfree.org
Autor: VojtaLhota
Wikizace: Pavkriz (původní dokument na brita.lhota.hkfree.org)

Kdy potřebuji OSPF? Musím tohle číst?

Vzhledem k řešení sítě HKfree je třeba se s OSPF zabývat, pokud:

  • jsi správcem AP (přístupového bodu)
  • máš doma 'na půdě' router, přes který je připojena domácí síť

Obecně vždy, když je na příslušném serveru více než jedno síťové rozhraní.

Co je to OSPF?

OSPF je síťový protokol 3. vrstvy modelu ISO-OSI; navazuje na IP (internet protocol). OSPF znamená Open Shortest Path First. Je to linkově-stavový routovací protokol, pracuje se stavem linek ohodnocených vahou (cost). Nahrazuje starší protokol RIP. Pro jemnější úvod do OSPF doporučuji http://www.cisco.com/univercd/cc/td/doc/cisintwk/ito_doc/ospf.htm

K čemu to je?

Pomocí OSPF si směrovače (routery) předávají informace o topologii a stavu sítě, a nastavují své směrovací tabulky. Není tedy třeba ručně (staticky) nastavovat směrování všech routerů v síti, když v jedné její části dojde k rozšíření, výpadku nebo rekonfiguraci sítě. To by při jejich velkém počtu bylo neúnosné, nehledě na to, že různé routery mají různé správce, kteří mají čas v různou dobu.

Co potřebuji k zprovoznění OSPF na mém routeru ?

Tento text pojednává o zprovoznění v Linuxu. Je nezávislý na konkrétní distribuci, neboť budeme kompilovat ze zdrojáků. Bude tedy potřeba stahnout soubor o velikosti 1,4 MB z Internetu. Pro překlad budeme potřebovat překladač (gcc) a pro nainstalování prístup na konto "root"a. Pro OSPF použijeme program Quagga. Bude třeba provést zhruba 3 kroky:

  1. stáhnout a nainstalovat Quaggu
  2. připravit si konfigurační soubor
  3. spustit Quaggu a zajistit její spuštění při každém bootu

Co je Zebra, Quagga, GateD?

OSPF je obecný protokol. Uvedené programy jsou jeho různými implementacemi (ztělesněními). Za GateD (http://www.gated.org ) se platí a proto jej nepoužijeme. Projekt Zebra (http://www.zebra.org ) je volně šiřitelný program, se kterým přišel pan Kunihiro Ishiguro z Japonska. V srpnu 2003 byla ze Zebry odvozena nová větev pod jménem Quagga (http://www.quagga.net/ ), na které by měl vývoj dále pokračovat. Nicméně pojem Quagga i Zebra je pro nás synonymem. Stáhneta quagga-x.y.tar.gz, rozbalíte, nainstalujete, a ejhle, ono to má konfigurační soubor zebra.conf... Quagga kromě OSPF zahrnuje i jiné routovací protokoly: OSPF pro IPv6, BGP, RIP a RIPng. Těmi se nebudeme zabývat.

Jak se nainstaluje Quagga?

Distribuce s balíčkovacím systémem

Pokud máme debian nebo jiný systém na něm postavený (Voyage linux, KLFree debian), můžeme použít jeho repozitáře a quaggu nainstalujeme pomocí

$ apt-get update
$ apt-get install quagga

V ostatních systémech (gentoo, centos) můžeme použít jejich balíčkovací systém a nebo quaggu nainstalovat staticky, podle následující podkapitoly.

Ostatní "druhy" linuxu

1. Stáhneme nejnovější verzi z http://www.quagga.net/download/. Tento návod byl psán pro verzi 0.96.2, ale měl by být dost obecný.

2. Rozbalíme soubor

$ tar xzf quagga-0.96.5.tar.gz

3. a přejdeme do nově vzniklého adresáře

$ cd quagga-0.96.5

4. Můžeme si prohlédnout soubor README a/nebo INSTALL (v angličtině). Prohlížení souboru se ukončí klávesou "q".

$ less README
$ less INSTALL

5. Vlastní překlad; zde nejsou uvedena žádná pokročilejší nastavení

$ ./configure --disable-bgpd --disable-ripd --disable-ripngd
$ make

6. Instalace. Nyní je třeba být přihlášen(a) jako root.

# make install

Poté, pokud se vše povedlo, přibyly ve vašem systému spustitelné soubory

-rwxr-xr-x    1 root    staff     1338493 Sep 11 00:32 /usr/local/sbin/ospfd
-rwxr-xr-x    1 root    staff      694944 Sep 11 00:32 /usr/local/sbin/zebra

a konfigurační soubory

-rw-------    1 root    root          182 Sep 11 00:32 /usr/local/etc/ospfd.conf
-rw-------    1 root    root          373 Sep 11 00:32 /usr/local/etc/zebra.conf

Jak se Quagga nakonfiguruje?

Quagga se sestává ze dvou programů: zebra a ospfd, každý má svůj konfigurační soubor: zebra.conf, resp. ospfd.conf.

Takto vypadá vzorový zebra.conf:

hostname oblast-jmenorouteru|zebra
password free
enable password extrafree

! 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

log syslog

Kromě hostname a enable password není třeba nic měnit. První heslo "free" je povinné v rámci HKfree pro všechny routery. Poskytuje ostatním správcům přístup (jen na čtení) do našeho routeru, stejně jako my můžeme pod tímto heslem "koukat" pod pokličku stávajícím routerům. Řádky "ip route ..." nebude třeba nikdy měnit.

Takto vypadá vzorový ospfd.conf:

hostname oblast-jmenorouteru|ospfd
password free
enable password extrafree

interface eth0
 description Moje domaci sit
 ip ospf cost 10
interface eth1
 description Moje druha domaci sit
 ip ospf cost 10
interface wlan0
 description Muj AP pro pripojeni ostatnich
 ip ospf cost 100
interface wlan1
 description Spoj bod-bod na vzdaleny node
 ip ospf cost 100

access-list net-10.107 permit 10.107.0.0/16

route-map just-hkfree permit 10
match ip address net-10.107

router ospf
 ospf router-id 10.107.99.1
 redistribute connected metric-type 1 route-map just-hkfree
 !passive-interface vypne komunikaci ospf na danem rozhrani. To je pro uzivatelske anteny dulezite, aby clenove nemohli rozborit celou sit.
 passive-interface eth0
 passive-interface eth1
 passive-interface wlan0
 network 10.107.99.0/28 area 0
 network 10.107.99.16/28 area 0
 network 10.107.99.32/28 area 0
 network 10.107.99.124/30 area 0

log syslog

Tento soubor je napsán pro modelovou situaci, kdy máme router se čtyřmi síťovými rozhraními. Jsme Access Point (pro připojení bezdrátových klientů), máme jeden směrový spoj (dvě směrové antény proti sobě) na mnoho kilometrů vzdálený nód a kromě toho ještě máme dvě domácí ethernetové sítě.

Náš router tedy vypadá takto
IP adresa rozhraní co je tam připojeno
10.107.99.1/28 wlan0 všesměrová anténa našeho AP
10.107.99.124/30 wlan1 směrová anténa do jiného nódu sítě HKfree
10.107.99.17/28 eth0 100BaseT síť po mém baráku
10.107.99.33/28 eth1 10Base2 síť do sousedního baráku

Jak se Quagga spustí?

# zebra -d
# ospfd -d

Jak se Quagga restartuje?

# killall zebra
# killall ospfd
# zebra -d
# ospfd -d

V případě že instalujete Quaggu z balíčků pro danou distribuci, je možné, že je vytvořen skript /etc/init.d/quagga takže ji můžete restartovat a startovat pomocí

/etc/init.d/quagga restart

Jak se zjistí, že to funguje?

Krom toho, že bude fungovat internet, je důrazně doporučeno zkouknout situaci na OSPF mapě.

Další užitečná věc je také mít na routeru nainstalovaný linuxový program tcpdump. Ten nám umožní se kouknout, co přesně za ospf provoz na daném interface běhá.

Spustíme ho příkazem (za nazev_rozhrani dosadíme název rozhraní, které zkoumáme)

 tcpdump -vvv -i nazev_rozhrani proto ospf

Pokud nám vyleze velká hromada dat a ne jenom HELLO packety (těmi ospf zkouší jestli na druhém konci není další ospf), tak to pravděpodobně funguje. Ve výpisu můžeme sledovat podrobnosti jako jméno routeru na druhém konci linky, ale hlavně tam můžeme vidět to, že máme linku opravdu zabezpečenou. V tom případě se tam vyskytuje něco jako

 Router-ID routerid.protistrany.hkfree.org, Backbone Area, Authentication Type: MD5 (2)

Tipy a triky pro OSPF

  • Nepoužívám redistribute kernel, pokud si nejsem na 100% jisty, ze to potrebuji
  • Ke konzolím se lze připojit na tyto porty (samozřejmně jen pokud nám běží):
zebrasrv      2600/tcp		  # zebra service
zebra         2601/tcp		  # zebra vty
ripd          2602/tcp		  # RIPd vty
ripngd        2603/tcp		  # RIPngd vty
ospfd         2604/tcp		  # OSPFd vty
bgpd          2605/tcp		  # BGPd vty
ospf6d        2606/tcp		  # OSPF6d vty
ospfapi       2607/tcp		  # ospfapi
isisd         2608/tcp		  # ISISd vty
  • Pro zjisteni, co muj router siri muzu zkusit napsat v ospfd konzoli - doporucuji zkontrolovat a v pripade, ze zde bude neco, co tam byt nema, tak zkonzultova s nekym zkusenejsim.
router> show ip ospf database self-orig

Dalsi veci souvisejici s OSPF

Jak OSPF funguje a stub/NSSA area

Zabezpečení OSPF linky pomocí MD5