Volitelné položky IP hlavičky

Obsah

Ukázka výsledků - linux
Zaznamenávej směrovače
Zaznamenávej čas
Explicitní směrování
Striktní explicitní směrování
Ukázka výsledků - CISCO
Zaznamenávej směrovače
Zaznamenávej čas
Explicitní směrování
Striktní explicitní směrování

Ukázky výsledků

Na této stránce předvedu jednotlivé výsledky z konkrétních pokusů na zapojení s linuxovými routery. Vždy se zmíním, jak daný datagram vygenerovat a uvedu odkaz na datagram s IP volbou zachycený Etherealem.

Zaznamenávej směrovače

Datagram s touto IP volbou můžeme vygenerovat buď pingem Microsoftu s parametrem -r pocet_alokovanych_slotu, kde pocet_alokovanych_slotu je počet slotů alokovaných v hlavičce datagramu. Na linuxu je pro ping parametr -R bez udání počtu alokovaných slotů. Linux pak vygeneruje datagram s maximálním počtem (8) slotů. Výsledek linuxového pingu je na dalším výpisu. Jsou v něm uvedeny jak adresy zdrojového PC tak vždy adresy odchozích rozhraní routerů.

Ping z 192.168.1.1 (N) na 192.168.2.1 (S):

# ping -R 192.168.2.1
PING 192.168.2.1 (192.168.2.1) 56(124) bytes of data.
64 bytes from 192.168.2.1: icmp_seq=1 ttl=63 time=1.04 ms
RR:     192.168.1.1
        192.168.2.2
        192.168.2.1 (*)
        192.168.2.1
        192.168.1.2
        192.168.1.1

64 bytes from 192.168.2.1: icmp_seq=2 ttl=63 time=0.998 ms      (same route)

* - tady končí cesta k cíli. Do odpovědi (echo reply) se kopírují nasbírané adresy.

Etherealem jsem odchytil tyto datagramy:

Zaznamenávej čas

Volbu record timestamps vygenerujeme v IP záhlaví pomocí pingu Microsoftu ( parametr -s pocet_alokovanych_slotu, počet počet alokovaných slotů musí být nejvýše 4 a vygeneruje se tak datagram se čtyřmi sloty pro dvojice adresa-čas) nebo pomocí linuxového pingu. U linuxového pingu se použije parametr -T a za ním se uvede typ časového razítka. Tyto typy mohou být tři:

Na následujícím výpisu je vidět, že na cestě datagram prošel dvěma routery, které už neměly kam zapsat časové razítka, protože datagram měl všechny sloty zaplněné. Použila se tedy 4-bitová položka OF, kterou inkrementovaly routery, které už neměly kam zapsat čas a adresu.

Ping z 192.168.1.1 (N) na 192.168.2.1 (S):

# ping -T tsandaddr 192.168.2.1
PING 192.168.2.1 (192.168.2.1) 56(124) bytes of data.
64 bytes from 192.168.2.1: icmp_seq=1 ttl=63 time=1.01 ms
TS:     192.168.1.1     64067783 absolute
        192.168.1.2     -10578635
        192.168.2.1     10691498
        192.168.2.1     0
Unrecorded hops: 2

Etherealem jsem odchytil tyto datagramy:

Na další ukázce je použita volba -T tsonly, která vygenerovala v záhlaví osm 4-bitových slotů pouze pro čas.

Ping z 192.168.1.1 (N) na 192.168.2.1 (S):

# ping -T tsonly 192.168.2.1
PING 192.168.2.1 (192.168.2.1) 56(124) bytes of data.
64 bytes from 192.168.2.1: icmp_seq=1 ttl=63 time=1.00 ms
TS:     64321132 absolute
        -10578590
        10691489
        0
        -10691488
        10578590

Etherealem jsem odchytil tyto datagramy:

Volné explicitní směrování

Pro správnou funkčnost explicitního směrování (loose source routing) je třeba toto povolit. Pro generování datagramu s volbou explicitní směrování můžeme použít ping od Microsoftu (volba -j smerovac1 smerovac2 ... smerovac9). V linuxu není třeba zadávat u pingu žádný parametr, stačí pouze uvést seznam routerů, přes které se má směrovat. Já jsem použil program sing. Pro explicitní směrování stačí uvést jako parametr seznam routerů oddělených zavináčem.

Pro demonstraci jsem vybral takovou cestu, aby se lišila od cesty vypočtené směrovacím protokolem RIP. RIP by použil nejkratší cestu pro směrování (N-S), ale já jsem požadoval směrování přes routery N-R-S. Ukázka volného explicitního směrování je na následujícím výpisu:

SING z 192.168.1.1 (N) na 192.168.3.1 (S):

# sing 192.168.1.2@192.168.3.1
SINGing to 192.168.1.2 (192.168.1.2): 16 data bytes
16 bytes from 192.168.3.1: seq=0 ttl=63 TOS=0 time=0.904 ms

Etherealem jsem odchytil tyto datagramy:

Striktní explicitní směrování

Striktní explicitní směrování (strict source route) se na MS Windows vygeneruje pingem s parametrem -k smerovac1 smerovac2 ... smerovac9. Na linuxu se mi nepodařilo zjistit, jak s linuxovým pingem vygenerovat datagram se striktním explicitním směrováním. Proto jsem opět použil program sing. Jako parametr se uvede seznam routerů oddělených symbolem procento, jak je vidět níže.

Nejprve jsem neuvedl všechny routery na cestě, takže se vrátil datagram s odpovědí Destination unreachable od routeru, který neměl jako svého souseda router, který byl uveden jako další v pořadí. Tím pádem se na cílový počítač datagram ani nedostal. Taková ukázka je na dalším výpisu:

SING z 192.168.1.1 (N) na 192.168.3.1 (S):

# sing 192.168.1.2%192.168.3.1
SINGing to 192.168.1.2 (192.168.1.2): 16 data bytes
Ouch!! 192.168.1.2 sings Source Routing Failed!!

Etherealem jsem odchytil tyto datagramy:

Při druhém pokusu jsem už uvedl seznam všech routerů na cestě a pak se mi vrátila i odpověď od cílové stanice.

Ping z 192.168.1.1 (N) na 192.168.3.1 (S):

# sing 192.168.1.2%192.168.2.1%192.168.3.1
SINGing to 192.168.1.2 (192.168.1.2): 16 data bytes
16 bytes from 192.168.3.1: seq=0 ttl=63 TOS=0 time=0.954 ms

Etherealem jsem odchytil tyto datagramy:

Obsah: Linux CISCO
Vypracoval: Dušan Jalůvka jako projekt do Směrovaných a přepínaných sítí.
Email: dusan.jaluvka<zavináč>gmail.com
Web: www.jaluvka.info