diff options
author | Martin Mares <mj@ucw.cz> | 2001-01-19 20:30:08 +0000 |
---|---|---|
committer | Martin Mares <mj@ucw.cz> | 2001-01-19 20:30:08 +0000 |
commit | 4d04187465fdeb3fb755b4d01ec640bbe0e36eb9 (patch) | |
tree | 9b1206099940b42770890fc6917799272ccb8e7a /doc/slt2001 | |
parent | 0766e962e9a9539ceccd23090e5bb8e1301fce8c (diff) |
Added paper for my talk about BIRD at SLT 2001.
Diffstat (limited to 'doc/slt2001')
-rw-r--r-- | doc/slt2001/Makefile | 10 | ||||
-rw-r--r-- | doc/slt2001/slt.tex | 275 |
2 files changed, 285 insertions, 0 deletions
diff --git a/doc/slt2001/Makefile b/doc/slt2001/Makefile new file mode 100644 index 00000000..5979e1a0 --- /dev/null +++ b/doc/slt2001/Makefile @@ -0,0 +1,10 @@ +all: slt.dvi + +slt.dvi: slt.tex + csplain slt.tex + +slt.ps: slt.dvi + dvips -o slt.ps -D600 -ta4 slt.dvi + +clean: + rm -f *~ *.log *.tfm *.*pk *.*gf *.ps *.dvi diff --git a/doc/slt2001/slt.tex b/doc/slt2001/slt.tex new file mode 100644 index 00000000..fb948586 --- /dev/null +++ b/doc/slt2001/slt.tex @@ -0,0 +1,275 @@ +\magnification=\magstep1 +\input epsf.tex +\input mjmac.tex + +\language=\czech +\chyph + +\hsize=160truemm % A4 with 25mm margins +\vsize=247truemm +\parindent=2em +\nopagenumbers + +\def\hdr#1{\medskip\leftline{\bf #1}\smallskip} +\def\\{\hfil\break} +\def\BIRD{{\sc Bird}} + +\def\inititemize{\vskip 1pt\begingroup +\parskip=1pt plus 0.3pt minus 0.1pt +\advance\leftskip by 3em +\advance\rightskip by 3em +\parindent=0pt +} + +%%% �vod a historie projektu +\hdr{Na po��tku bylo vejce aneb �vodem} + +\noindent Internet i UNIX jsou na sv�t� ji� p�kn�ch p�r p�tk�. Po��ta�e pracuj�c� +pod nep�ebern�m mno�stv�m unixovsk�ch syst�m� od nepam�ti funguj� jako +internetov� po�tovn� servery, name-servery a men�� routery. Skoro by se zd�lo, �e +si tyto dva sv�ty u� nemaj� co nov�ho ��ci. V~posledn�ch letech ov�em +v�razn� vzrostl v�kon b�n�ch PC-�ek a objevily se pro n� karty podporuj�c� +nejr�zn�j�� s��ov� technologie, a~tak se tyto po��ta�e staly vhodn�mi +kandid�ty i~pro funkci router�. Na~mnoha m�stech tak star�� PC-�ko +s~voln� �i�iteln�m softwarem p�edstihlo sv�ho star��ho a dra���ho +komer�n�ho sourozence. A�koliv podpora routingu, firewallingu a inteligentn� +queue management v~j�drech t�chto~OS (a~zejm�na Linuxu) je ji� velice +vysp�l�, je�t� ned�vno byly notn� zanedb�v�ny protokoly pro dynamick� +routing, tradi�n� unixovskou koncepc� um�st�n� do~u�ivatelsk�ho prostoru +v~podob� routovac�ch daemon�. + +Tento nedostatek se pokou�ela mezi jin�mi napravit tak� skupina nad�enc� +na~pra�sk� Matematicko-fyzik�ln� fakult� UK, kter� se rozhodla jako sv�j +studijn� projekt vytvo�it nov�ho routovac�ho daemona, kter� by se stal +n���m v�c ne� jen d�stojn�m konkurentem komer�n�ch router� -- nejen +kop�roval u� zn�m� �e�en�, ale tak� p�isp�l n���m nov�m; na~jedn� stran� +b�t stabiln�m a efektivn�m programem pro praxi, na~stran� druh� ov�em +i~laborato�� pro snadn� experimentov�n� s~nov�mi my�lenkami. A~tak se +narodil projekt {\it BIRD Internet Routing Daemon} (zkr�cen� \BIRD\footnote{$^0$}{Projekt +si samoz�ejm� vyslou�il nejr�zn�j�� p�ezd�vky -- od Pt��ete a� po~Pt�kovinu.}). + +P�vodn� pl�ny byly sm�l� a rozhodn�: Vytvo�it nejlep��ho routovac�ho +daemona na sv�t�, kter� by fungoval na~v�ech platform�ch, vy�adoval +minimum strojov�ho �asu a pam�ti, podporoval v�echny routovac� protokoly +atd., zkr�tka sen, jak� m� b�t. P�esko�me nyn� dva roky v�voje\footnote{$^1$}{b�hem nich� +z~n�kter�ch po�adavk� samoz�ejm� se�lo -- nap��klad logem projektu +se nakonec nestal pt��ek nesouc� v~zob��ku sn�tku byliny �e�en� routa \dots} +a pod�vejme se, co z~toho vze�lo. + +%%% Sv�t routingu +%% v~ti�t�n� verzi p�esko��me + +%%% Co BIRD dok�e +\hdr{Kdy� pt��ka lapaj�, p�kn� mu zp�vaj� aneb Feature list} + +\noindent \BIRD\ dostal od sv�ch sudi�ek do~v�nku mnoh� dary: + +\def\icirc{\raise0.2ex\hbox{$\circ$}} % Signs frequently used for \itemize + +\itemize\ibull +\:Schopnost komunikovat protokoly IPv4 i IPv6. +\:Podporu v�ech z�kladn�ch routovac�ch protokol�: + \itemize\icirc + \:RIPv2 (Routing Information Protocol, viz RFC 1723 a 2080)\\ + Ur�en pro intern� routing, dnes v�znamu sp��e historick�ho.\\ + Algoritmus: distance vector (Bellman-Ford).\\ + Velmi pomal� konvergence, pou�itel� pouze pro mali�k� s�t�. + \:OSPFv2 (Open Shortest Path First, viz RFC 2328)\\ + Ur�en pro intern� routing, v~sou�asn� dob� asi nejb�n�j��.\\ + Algoritmus: link state (Dijkstra).\\ + Rychl� konvergence, ale velice komplikovan�.\\ + Zat�m podporujeme pouze pro IPv4. + \:BGP4 (Border Gateway Protocol, viz RFC 1771 a 2283)\\ + Standardn� protokol pro extern� routing mezi AS.\\ + Rychl� konvergence, mo�nost administrativn� filtrace.\\ + Algoritmus: path vector (upraven� Bellman-Ford). + \endlist +\:Propojov�n� protokol� a v�m�nu dat mezi nimi. +\:Schopnost uplat�ovat routing policy -- ur�ovat, kter� routovac� informace + budou od~kter�ch protokol� p�ij�m�ny a do~kter�ch protokol� vys�l�ny. +\:Snadnou konfiguraci a �dr�bu, ale o~tom a� pozd�ji. +\:Modul�rn� architekturu umo��uj�c� snadn� dopl�ov�n� nov�ch protokol�, + filtr� i jednoduch� portov�n� na~dal�� syst�my. (Interface k~routovac�m + slu�b�m j�dra je bohu�el i mezi jednotliv�mi unixovsk�mi syst�my natolik + r�znorod�, �e dokonce i~Linux 2.0 a Linux 2.2 jsou naprogramov�ny jako dva + odli�n� porty.) +\:A v~neposledn� �ad� kvalitn� dokumentaci jak u�ivatelskou, tak + program�torskou (to je v�tan� d�sledek byt� �koln�m projektem). +\endlist + +%%% A jak to v�echno propojit +\hdr{Sv�t z~pta�� perspektivy aneb Jak to v�echno d�t dohromady?} + +\noindent Hlavn�m probl�mem ov�em nen� ani tak v�echny tyto vymo�enosti naprogramovat +a popropojovat, n�br� ud�lat to tak, aby z~toho nevznikl neudr�ovateln� +a neefektivn� zmatek\footnote{$^2$}{N�dhern�m p��kladem je Mendel�v pes, +jak ho kdysi nakreslil pan Kantorek.}. Z~toho se zrodil modul�rn� pohled +na~sv�t routingu a n�sledn� i cel� modul�rn� architektura programu: + +\bigskip + +\centerline{\epsfxsize=0.9\hsize\epsfbox{../slides/obr5.eps}} + +\medskip + +Z�kladem pohledu na~Internet z~na�� \uv{pta�� perspektivy} je routovac� +tabulka. Na~n� jsou p�ipojeny jednotliv� routovac� protokoly -- jak +protokoly re�ln�, tak i n�kolik virtu�ln�ch, jako je nap��klad protokol +Kernel zaji��uj�c� synchronizaci tabulky s~tabulkou j�dra nebo protokol +Static generuj�c� podle sv� konfigurace statick� sm�rov�n�. Ka�d� z~protokol� +pos�l� do~tabulky polo�ky pro v�echny routy, kter� se na~z�klad� sv�ch informac� +o~topologii s�t� dozv�d�. Tabulka pro ka�dou s�� vyb�r� na z�klad� preferenc� +jednotliv�ch protokol� a jejich metrik optim�ln� sm�r a ten oznamuje +zp�t protokol�m. V~cest� ov�em v~obou sm�rech stoj� filtry, kter� mohou +tok dat regulovat -- n�kter� polo�ky odm�tat, jin� upravovat (nap��klad +jim p�enastavovat metriky �i tagy; to se dokonce vztahuje i~na +atributy dopl�ovan� c�lov�m protokolem, proto�e nejprve c�lov� protokol +nastav� implicitn� hodnoty sv�ch atribut�, pokud je ji� polo�ka neobsahovala, +a teprve pak dojde k~filtrov�n�). + +Routovac�ch tabulek m��e dokonce existovat v�cero a pomoc� protokolu Pipe +si mohou p�epos�lat vybran� polo�ky. T�m m��eme zajistit nap��klad +routing z�visl� na~zdrojov� adrese �i vstupn�m interfacu: u~Linuxu 2.2 +�i nov�j��ho nakonfigurujeme j�dru v�ce routovac�ch tabulek a ka�dou +z~nich p�ipoj�me na~jednu tabulku na�i. + +\hdr{Pta�� zp�v aneb User interface} +%%% User interface: konfigurace, logging a filtry. Remote control. + +\noindent S�� se m�n� a s~n� se mus� m�nit i konfigurace s��ov�ch +komponent. Ta se pozvolna stala tradi�n�m kamenem �razu v�t�iny router�. +U~tohoto kamene se toti� sch�zej� dva odv�c� nep��tel�: +snaha o~snadnost a flexibilitu konfigurace a snaha o~nep�etr�it� +provoz s�t�. A~jednou slev� ten, podruh� onen -- auto�i n�kter�ch +router� vsadili na~s�lu textov�ch konfigura�n�ch soubor� za~cenu +toho, �e se po~ka�d� zm�n� konfigurace mus� router restartovat +a po~n�jakou dobu neroutuje, jin� zase pod��dili non-stop provozu +v�e ostatn� a stvo�ili konfigurov�n� nep�ebern�m mno�stv�m online +p��kaz�, pomoc� nich� se n�kter� v�ci prov�d�j� snadno, jin�, +na~kter� auto�i speci�ln� p��kaz nevymysleli, u� obt��n�ji a je�t� jin� +vy�aduj� do~v�sledn�ho stavu dosp�t postupn�m proveden�m mnoha zm�n, +co� m� obvykle za~d�sledek daleko del�� v�padek ne� jak� by byl vznikl +reloadem cel�ho routeru. + +\BIRD\ se sna�� dos�hnout oboj�ho: pou��v� textov� konfigura�n� soubory, +u�ivateli tak d�v� mo�nost vytv��et konfiguraci v�cem�n� libovoln�m +zp�sobem -- a� ji� ru�n�m editov�n�m, interaktivn�mi programy �i +automatick�m generov�n�m pomoc� script�. Po~zm�n� konfigurace je +ov�em schopen si novou verzi souboru p�e��st, porovnat s~pr�v� +pou��vanou konfigurac� a zm�n�m se za b�hu p��zp�sobit (pokud +jsou zm�ny p��li� velk�, m��e to zp�sobit restart +n�kter�ho z~protokol�, ale provoz t�ch, kter�ch se zm�na +net�kala, to nijak neohroz�). + +Konfigurace ka�d�ho protokolu (l�pe �e�eno ka�d� jeho instance -- +protokoly mohou b�t spu�t�ny n�kolikr�t na~r�zn�ch rozhran�ch +�i nad r�zn�mi tabulkami) vypad� p�ibli�n� takto: + +\verbatim{ protocol bgp TestBGP { # instanci si m��eme nazvat + local as 65000; # n� AS + neighbor 195.39.3.64 as 5588; # sousedn� AS + export all; # pos�lat budeme v�echno + import filter { # na vstupu n�kter� odm�tneme + if !(bgp_path ~ / ? 5588 ? /) then reject; + if net ~ [ 10.0.0.0/8+, 192.168.0.0/16+ ] then reject; + preference = 101; # zbyl�m nastav�me preferenci + accept; # a p�ijmeme je + }; + }} +\noindent V�dy popisuje protokol, jeho parametry, p�ipojen� k~tabulk�m +(v~na�em p��pad� pou��v�me tabulku implicitn�) a nastaven� vstupn�ch +i~v�stupn�ch filtr�. + +Filtry jsou popisov�ny jednoduch�m procedur�ln�m programovac�m jazykem, +kter� m� k~dispozici v�echny informace o~pr�v� zpracov�van� polo�ce, m��e +se podle nich rozhodovat a libovoln� je m�nit. D�ky tomu je mo�n� jednodu�e +zad�vat i velice slo�it� pravidla, definovat si podprogramy sd�len� +filtry pat��c�mi k~v�ce protokol�m, i~po��tat metriky pro jeden protokol +na z�klad� metrik protokol� ostatn�ch. + +V�tan�m pomocn�kem p�i odhalov�n� probl�m� v~s�t�ch je rovn� voliteln� +logov�n� d�le�it�ch ud�lost� a trasov�n� �innosti protokol�: zde si je +mo�no pro ka�d� protokol vy��dat prakticky cokoliv po��naje z�kladn�mi informacemi o~b�hu +protokolu (p�ipojov�n� a odpojov�n� soused� apod.), p�es v�m�nu polo�ek +mezi protokolem, filtry a jeho tabulkou, a kon�e detailn�m v�pisem v�ech +p�ijat�ch i odeslan�ch paket�. + +Mimo to \BIRD\ disponuje \uv{d�lkov�m ovl�d�n�m} -- jednoduch�m p��kazov�m +rozhran�m, p�es kter� se mohou p�ipojovat r�zn� klienti a vyd�vat jak +n�kter� ��d�c� p��kazy (restarty protokol�, reload konfigurace, p�ep�n�n� +trasov�n�, \dots), tak po�adavky na~vypisov�n� stavu routovac�ch tabulek +a protokol�. U~t�chto p��kaz� je mo�no vyu��vat pln� s�ly filtrovac�ho +jazyka, tak�e chceme-li nap��klad zn�t v�echny routy sm�rovan� pomoc� +BGP na jednoho konkr�tn�ho souseda, sta�� polo�it dotaz typu + +\verbatim{ bird> show route where source=RTS_BGP && gw=62.168.0.1} + +\noindent a dozv�me se ihned v�e, co jsme pot�ebovali. Lad�n� filtr� +nav�c usnadn� i~to, �e se m��eme zeptat na~obsah routovac� tabulky +z~pohledu n�kter�ho z~b��c�ch protokol�. + +%%% BIRD uvnit� +%\hdr{Pta�� anatomie} +%% existuje progdoc + +%%% Netradicni pouziti +\hdr{Cesty ta�n�ch pt�k� aneb Za hranicemi v�edn�ch dn�} + +\noindent Hotov� modul�rn� implementace routovac�ho daemona samoz�ejm� +sv�d� i k~m�n� tradi�n�mu vyu�it�. Zde se fantazii meze nekladou, autory +sam� b�hem v�voje napadly nap��klad tyto triky: + +\itemize\ibull +\:{\I multirouter} -- \uv{schizofrenn�} za��zen� pracuj�c� na r�zn�ch + skupin�ch interfac� jako r�zn� routery ��d�c� se r�zn�mi pravidly, + le��c� t�eba i v~r�zn�ch autonomn�ch syst�mech. To je mo�no za��dit + pat�i�n�m nastaven�m j�dra a bu�to v�ce b��c�mi \BIRD{}y nebo dokonce + jedn�m pracuj�c�m s~n�kolika r�zn�mi routovac�mi tabulkami. Tak by + mohl nap��klad cel� pra�sk� NIX b�et na jedin�m routeru (pravda, + b�n� PC by na to nesta��lo), a p�esto by si ka�d� provider mohl s�m + ur�ovat a konfigurovat svou vlastn� routovac� politiku. +\:{\I �ed� eminence} -- \BIRD\ by ani nemusel b�et p��mo na~stroji, kter� + pakety routuje, mohl by tak� hotov� routovac� tabulky diktovat + n�jak�mu dedikovan�mu routeru disponuj�c�m v�konn�j��m hardwarem, + a tak skloubit �pi�kovou propustnost \uv{velk�ho �eleza} + s~flexibilitou routeru be��c�ho pod unixovsk�m syst�mem. +\:{\I inteligentn� mirror} -- aplikace se nemus� zastavovat u~routingu + jako takov�ho, mnohdy je mo�no informace z�skan� z~provozu routeru + vyu��vat k~dal��m ��el�m, nap��klad k~inteligentn�mu p�esm�rov�v�n� + klient� na~nejbli��� mirror va�eho archivu. +\endlist + +%%% A co dal? +\hdr{�as pt��at aneb Co d�l?} + +P�esto�e po~�sp�n�m obh�jen� projektu a prvn�ch n�kolika des�tk�ch +spokojen�ch u�ivatel� (a samoz�ejm� i~p�r opraven�ch chyb�ch) nyn� v�voj +sp��e stagnuje, auto�i ji� sp��daj� pl�ny do~budoucnosti, kter� +by m�ly \BIRD{}ovi p�in�st mimo jin� tak� routov�n� multicast�, agregaci +s��ov�ch prefix�, OSPFv3 pro IPv6, on-demand linky a porty na~dal�� syst�my. + +%%% Reference na n�s a ostatn� routery +\hdr{Sn��ka odkaz� na z�v�r} + +\noindent {\sc Bird Team} pod veden�m RNDr. Libora Forsta ({\I forst@cuni.cz}) tvo�ili: +$$\vbox{\halign{#\hfil & \quad \it # \hfil & \quad \it # \hfil\cr +Ond�ej Filip&feela@ipex.cz&http:/$\!$/feela.ipex.cz/\cr +Martin Mare�&mj@ucw.cz&http:/$\!$/atrey.karlin.mff.cuni.cz/\char126mj/\cr +Pavel Machek&pavel@ucw.cz&http:/$\!$/atrey.karlin.mff.cuni.cz/\char126pavel/\cr}}$$ +Dom�c� str�nku projektu najdete na {\it http:/$\!$/bird.network.cz/,} odtamtud ji� +vedou odkazy na~aktu�ln� verzi, online dokumentaci i mailing list +u�ivatel�. +V�echna zmi�ovan� RFC i mnoho dal��ch naleznete na {\it http:/$\!$/www.rfc-editor.org/}, +prvn� my�lenky o~vyu��v�n� ptactva v~Internetu sahaj� a� k~RFC~1149. +\BIRD\ nen� na~sv�t� s�m, m� i~p��buzn�; mezi nimi za zm�nku stoj� +daemoni {\sc GateD} ({\I http:/$\!$/www.gated.org/}), \hbox{\sc Zebra} ({\I http:/$\!$/www.zebra.org/}) +a {\sc Mrtd} ({\I http:/$\!$/www.mrtd.net/}). +O~IPv6 se bohu�el zat�m jen p��e, na~jeho celointernetov� nasazen� se st�le +�ek� a mezit�m p�ib�v� address-translator� a dal��ch zv�rstev. Snad jedin� +v�t�� s�� pou��vaj�c� tento protokol je experiment�ln� virtu�ln� s�� 6-bone +(viz {\it http:/$\!$/www.6bone.net/} a odkazy odtamtud). + +Dotazy a p�ipom�nky pos�lejte bu�to autorovi nebo cel�mu {\sc Bird Team}u na~adresu +{\I bird@bird.network.cz}. + +\bye |