Portál AbcLinuxu, 1. července 2025 08:21

Linux a IPv6: zvláštnosti výstupu ip -6 route

1.9.2011 02:25 | Přečteno: 1140× | linux/unix | poslední úprava: 1.9.2011 02:23

Objevil jsem zajímavou nesourodost výstupu ip route pro IPv4 a ip -6 route pro IPv6. Rád bych se s vámi o ni podělil získal inspiraci a názory, proč by se v tomto mělo IPv6 a IPv4 v linuxu vůbec lišit.

Začeneme základními parametry:
[pavlix@traveller ~]$ cat /etc/fedora-release 
Fedora release 15 (Lovelock)
[pavlix@traveller ~]$ uname -a
Linux traveller.pavlix.net 2.6.40.3-0.fc15.x86_64 #1 SMP Tue Aug 16 04:10:59 UTC 2011 x86_64 x86_64 x86_64 GNU/Linux
Cíl testu bude info.nix.cz:
[pavlix@traveller ~]$ host info.nix.cz
info.nix.cz has address 195.47.235.3
info.nix.cz has IPv6 address 2a02:38::1001
info.nix.cz mail is handled by 10 mail.nix.cz.
První přijde test IPv4 (smazání cache zahrnuju kvůli opakovatelnosti testu):
[pavlix@traveller ~]$ sudo ip -4 route flush cache
[pavlix@traveller ~]$ ip -4 route | grep 195.47.235.3 -A 1
[pavlix@traveller ~]$ ping 195.47.235.3
PING 195.47.235.3 (195.47.235.3) 56(84) bytes of data.
64 bytes from 195.47.235.3: icmp_req=1 ttl=90 time=4.47 ms
64 bytes from 195.47.235.3: icmp_req=2 ttl=90 time=3.46 ms
64 bytes from 195.47.235.3: icmp_req=3 ttl=90 time=3.69 ms
64 bytes from 195.47.235.3: icmp_req=4 ttl=90 time=6.66 ms
^C
--- 195.47.235.3 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3005ms
rtt min/avg/max/mdev = 3.465/4.575/6.667/1.267 ms
[pavlix@traveller ~]$ ip -4 route | grep 195.47.235.3 -A 1
Jak je vidět, nic neočekávaného se neděje, test vyznívá trochu podivně, aneb proč by se měla měnit routovací tabulka, že.

Přejdeme tedy na IPv6:
[pavlix@traveller ~]$ sudo ip -6 route flush cache
[pavlix@traveller ~]$ ip -6 route | grep 2a02:38::1001 -A 1
[pavlix@traveller ~]$ ping6 2a02:38::1001
PING 2a02:38::1001(2a02:38::1001) 56 data bytes
64 bytes from 2a02:38::1001: icmp_seq=1 ttl=56 time=6.27 ms
64 bytes from 2a02:38::1001: icmp_seq=2 ttl=56 time=6.06 ms
64 bytes from 2a02:38::1001: icmp_seq=3 ttl=56 time=8.66 ms
64 bytes from 2a02:38::1001: icmp_seq=4 ttl=56 time=5.89 ms
^C
--- 2a02:38::1001 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3003ms
rtt min/avg/max/mdev = 5.896/6.723/8.660/1.129 ms
[pavlix@traveller ~]$ ip -6 route | grep 2a02:38::1001 -A 1
2a02:38::1001 via fe80::20c:42ff:fe13:857b dev wlan0  metric 0 
    cache  hoplimit 255
A tady najednou takový záznam existuje!

Výstup testu je tedy takový, že ip route na mém systému vypisuje záznamy z routovací cache pro IPv6 a nevypisuje je pro IPv4. Očekával bych chování pro oba protokoly stejné a nejlépe takové, že se cache záznamy nevypisují (když je budu chtít, řeknu si o ně).        

Hodnocení: 100 %

        špatnédobré        

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

Komentáře

Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře. , Tisk

Vložit další komentář

1.9.2011 08:55 petr_p | skóre: 59 | blog: pb
Rozbalit Rozbalit vše Re: Linux a IPv6: zvláštnosti výstupu ip -6 route
Odpovědět | Sbalit | Link | Blokovat | Admin
To je tím, že směrovací tabulky pro IPv6 jsou v jádře udělány jinak než pro IPv4. Jsou prý lepší a výkonnější. Mám dojem, že to má něco společného s PMTU, automatickými záznamy (linkové rozsahy) a cachí.
pavlix avatar 2.9.2011 00:08 pavlix | skóre: 54 | blog: pavlix
Rozbalit Rozbalit vše Re: Linux a IPv6: zvláštnosti výstupu ip -6 route
To je tím, že směrovací tabulky pro IPv6 jsou v jádře udělány jinak než pro IPv4. Jsou prý lepší a výkonnější. Mám dojem, že to má něco společného s PMTU, automatickými záznamy (linkové rozsahy) a cachí.
To si nemyslím.
Já už tu vlastně ani nejsem. Abclinuxu umřelo.
Jendа avatar 1.9.2011 11:43 Jendа | skóre: 78 | blog: Jenda | JO70FB
Rozbalit Rozbalit vše Re: Linux a IPv6: zvláštnosti výstupu ip -6 route
Odpovědět | Sbalit | Link | Blokovat | Admin
Linux ee.hrach.eu 3.0.0-1-686-pae #1 SMP Wed Aug 17 04:28:34 UTC 2011 i686 GNU/Linux
ii iproute 20110629-1
Toto chování nepozoruji.
~ # ping6 2a02:38::1001
PING 2a02:38::1001(2a02:38::1001) 56 data bytes
64 bytes from 2a02:38::1001: icmp_seq=1 ttl=58 time=31.7 ms
^C
--- 2a02:38::1001 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 31.771/31.771/31.771/0.000 ms
~ # ip -6 route | grep 2a02:38::1001 -A 1
~ # 
1.9.2011 22:01 Ondrej 'SanTiago' Zajicek
Rozbalit Rozbalit vše Re: Linux a IPv6: zvláštnosti výstupu ip -6 route
Zvlastni, ja ho pozoruju na 2.6.32.5, ale ne na 2.6.23.16. Mozna to je nejaky docasny problem, ktery pozdeji opravili.
pavlix avatar 2.9.2011 00:10 pavlix | skóre: 54 | blog: pavlix
Rozbalit Rozbalit vše Re: Linux a IPv6: zvláštnosti výstupu ip -6 route
Tak doufám, že to zmizí i z Fedory.
Já už tu vlastně ani nejsem. Abclinuxu umřelo.
9.9.2011 10:00 i6
Rozbalit Rozbalit vše Re: Linux a IPv6: zvláštnosti výstupu ip -6 route
Odpovědět | Sbalit | Link | Blokovat | Admin
Taky mi to nedělá.

WARNING: heavy IMHO

u IPv4 žádné takové routy potřeba nejsou, tyhle věci se řeší na úrovni ARP cache. U každé cílové IP adresy je podle rout jasný, ke kterému interfacu patří (nebo se o to stará most)

na rozdíl od toho je u ipv6 rozsah fe80:: společný pro všechny interfacy, dává smysl, aby někde bylo poznačeno který interface je ten správný
pavlix avatar 9.9.2011 13:15 pavlix | skóre: 54 | blog: pavlix
Rozbalit Rozbalit vše Re: Linux a IPv6: zvláštnosti výstupu ip -6 route
u IPv4 žádné takové routy potřeba nejsou, tyhle věci se řeší na úrovni ARP cache. U každé cílové IP adresy je podle rout jasný, ke kterému interfacu patří (nebo se o to stará most)
IPv4 má v sobě úplně to samé, ale vypisuje se mi to správně, zkus ip route show table cache.
na rozdíl od toho je u ipv6 rozsah fe80:: společný pro všechny interfacy, dává smysl, aby někde bylo poznačeno který interface je ten správný
To v linuxu rozhodně smysl nedává, když odmítá jakýkoli ping bez udaného rozhraní, i kdybys to rozhraní měl v systému jedno jediné. Ta informace by tak jako tak zůstala nevyužitá.

Mimochodem, na Fedoře 15 to pro nejnovější jádra stále platí.
Já už tu vlastně ani nejsem. Abclinuxu umřelo.

Založit nové vláknoNahoru

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.