Simulaci protokolu RIP - zadání úlohy
Úkolem je v jazyce JAVA vytvořit virtuální router, který bude
demonstrovat tvorbu směrovacích tabulek a výměnu směrovacích informací
se sousedními routery pomocí protokolu RIP.
Pro komunikaci mezi routery (předávání směrovacích tabulek) budou použity UDP datagramy.
Virtuální router je proces (instance JVM), který bude simulovat chování
reálného routeru. Každý virtuální router bude mít zadaný počet (virtuálních) rozhraní
(označovaných I0 - In) kterými
je připojen k jiným virtuálním routerům nebo k lokálním sítím.
Pro výměnu informací se sousedícími routery bude virtuální router znát adresy a
porty, na nichž jednotlivá rozhraní sousedních routerů očekávají informace o
směrování.
Router sám přijímá informace od ostatních routerů na portech, které jsou jednoznačně přiřazeny každému jeho rozhraní.
Konfigurace routeru
Router načítá svou konfiguraci ze souboru, ve kterém jsou určeny jeho
rozhraní, názvy jimi připojených sítí spolu s IP adresou a portem protilehlého
sousedního routeru a portu, na kterém očekává z daného rozhraní
informace o směrování. Řádky konfiguračního souboru mají jeden ze dvou
následujících formátů:
název_rozhraní číslo_lokálního_portu název_spojovací_sítě reálná_IP_adresa_sousedního_routeru č_portu_sousedního_routeru
název_rozhraní číslo_lokálního_portu název_sítě_LAN
Konfigurační soubor má tolik řádků, kolik rozhraní má virtuální router.
Poznámka: Název sítě se předpokládá max.
15-písmenný!
Příklad konfigurace

Příklad konfiguračního souboru routeru R1
I0 10000 A 10.0.0.2 10000
I1 10001 Y
I2 10002 C 10.0.0.3 10002
Funkce
Každý virtuální směrovač si po spuštění vytvoří svou prvotní směrovací tabulku
na základě konfiguračního souboru. Ta bude obsahovat pouze přímo připojené sítě.
Tuto směrovací tabulku bude periodicky zasílat všem přímo připojeným směrovačům.
Perioda bude nastavitelná z příkazové řádky při spouštění procesu virtuálního směrovače. Při přijetí tabulky od sousedního směrovače virtuální směrovač doplní svou směrovací tabulku o cesty, které dosud nezná a přepíše cesty do sítí, k nimž se objevila cesta s menší metrikou. Pokud měl směrovač cestu do sítě X přes souseda S a tento soused mu začal cestu propagovat s horší metrikou, musí horší metriku přijmout.
Každý směrovač bude u každé položky své směrovací tabulky (s výjimkou přímo připojených sítí) evidovat čas, kdy byla položka naposled inzerována sousedním směrovačem. Pokud po dobu trojnásobku periody zasílání směrovací informace položka inzerována nebyla, ze směrovací tabulky se smaže.
Pro zabránění směrovacím smyčkám by měl směrovač implementovat techniku Split Horizon, tj. nezasílat informace o sítích, k nimž vede cesta přes některé rozhraní, na sousedy na tomto rozhraní.
Virtuální router bude vypisovat informace o veškerém svém dění, zejména
- informace, že vysílá směrovací tabulku sousedovi a její obsah
- informace, že přijal tabulku od souseda včetně jejího obsahu a novou
vlastní směrovací tabulku upravenou na základě nové informace
- informaci, že vlivem vypršení timeoutu odstraňuje ze směrovací tabulky cestu
Specifikace formátu směrovacích informací posílaných mezi routery
Datagram bude obsahovat pole záznamů s informacemi o dostupných sítích.
Každý záznam se skládá z:
- název_sítě (byte[15])
- počet_hopů (byte)
Datagram bude obsahovat jako první byte počet záznamů a pak jednotlivé záznamy ve výše uvedeném formátu. Název sítě bude vždy doplněn zprava na 15 znaků mezerami.