IPv6 ne probléma

 ( nightw | 2011. május 22., vasárnap - 22:22 )

Hello!

Van egy dd-wrt-s routerem és egy HE-s IPv6 tunnelem. A következő sorokat használtam a beállításokhoz (címek maszkolva):
ip tunnel add he-ipv6 mode sit remote 216.66.80.30 local $IPV4 ttl 255
ip link set he-ipv6 up
ip addr add 2001:470:xxxx:xxxx::2/64 dev he-ipv6
ip route add ::/0 dev he-ipv6
BR0_MAC=$(ifconfig br0 |sed -n -e 's,.*HWaddr \(..\):\(..\):\(..\):\(..\):\(..\):\(..\).*,\1\2:\3\4:\5\6,p')
ROUTED_ADDRESS=`sed -n -e 's,^ *prefix *\([^ ]*\) *{,\1,p' /tmp/radvd.conf`
ip -6 addr add $(echo "$ROUTED_ADDRESS"|sed "s,::/..,::$BR0_MAC/64,") dev br0
echo 1 > /proc/sys/net/ipv6/conf/all/forwarding
iptables -I FORWARD 2 -p ipv6 -j ACCEPT
iptables -I INPUT 2 -p ipv6 -j ACCEPT

Radvd config ez:
interface br0 {
MinRtrAdvInterval 3;
MaxRtrAdvInterval 10;
AdvLinkMTU 1480;
AdvSendAdvert on;
prefix 2001:470:xxxx:xxxx::/64 {
AdvOnLink on;
AdvAutonomous on;
AdvValidLifetime 43200;
AdvPreferredLifetime 43200;
};
};

Ennek hatására a ping6 ipv6.google.com helyesen megy a router ssh konzolján. Valamint "kapok" 2001: kezdetű IPv6 címet egy belső hálós Ubuntu 10.10-re. Ha viszont ping-elem az Ubuntu-s gépről a ipv6.google.com-ot akkor nem működik. Azonban ha előtte megpingelem a router belső interface-es IPv6 címet, akkor utána helyesen működik a google v6-os pingje is. Azt sejtem, hogy ne probléma van, mert a kliensen futtva az ip -6 ne parancsot ezt kapom alapból:
fe80::9afc:11ff:fe48:4507 dev eth2 lladdr 98:fc:11:48:45:07 router STALE
A router ping után pedig egy rövid ideig:
fe80::9afc:11ff:fe48:4507 dev eth2 lladdr 98:fc:11:48:45:07 router STALE
2001:470:xxxx:xxxx:0:98fc:1148:4507 dev eth2 lladdr 98:fc:11:48:45:07 router REACHABLE

Aztán a router reighbour eltűnik és megint ping-elni kell és akkor egy ideig megint jó. Mit csinálok rosszul?

Üdv: night[w]

Hozzászólás megjelenítési lehetőségek

A választott hozzászólás megjelenítési mód a „Beállítás” gombbal rögzíthető.

Tolj egy tcpdumpot a routeren, hatha latsz valamit.. A procfsben lehet allitani jo sok neighbor discovery-hez tartozo beallitast, erdemes vegignezni. Illetve nezd meg, hogy a konkret interfesztre tenyleg engedelyezett-e a forwarding (all es default nem mindig nyero).

Frissítés:
Windows 7 a beépített Teredo tunnellel alapból működik (megkapja a radvd-s IP-t, stb.), viszont az első IPv6 ping csomagot hosszabb IPv6 forgalom kihagyás után elveszíti. Szerintem a hiba nagyjából ugyanaz. Nem tudom elképzelni, hogy az hogyan lehetséges, hogy "elfelejtődik" a route útvonal vagy nem tudom és amikor "eszébe" jut, akkor utána egy darabig jó.

MinRtrAdvInterval 3;
MaxRtrAdvInterval 10;
AdvValidLifetime 43200;
AdvPreferredLifetime 43200;

Ezek miért ennyik? Az hogy ip -6 ne parancsnál nem mindig látszanak a gépek nem gond nálam is így megy, arp-ből is eltűnnek a gépek ha nincs forgalom.
Arra ügyelj, hogy ez az MTU ppp kapcsolatnál nem jó már.

MTU-t levettem 1410-de, de így sem jó. Igazából a belső iface ping után átmennek a csomagok, szóval nem hiszem, hogy ez volt a gond. A többi érték valamilyen netes gudie-ból van, de szerintem az, hogy sokáig érvényes a hirdetés nem akkora gond. Viszont most már nagyon unom ezt a black magic működést. Beraktam az rc.local-ba egy scriptet, ami pingeti időnként automatán azt az interface-t és így van IPv6, csodás.

Próbáld meg esetleg, hogy kézzel konfigurálsz egy címet, addig radvd-t kilövöd.

Hello!

Köszi szépen az eddigi tippeket. Mivel sehogy sem sikerült megoldani (IP cím kézi beadás nélkül) egy /64-el, hogy a router külső lába kapjon címet, a belsők pedig szintén ugyanebből, ezért az lett a megoldás, hogy kértem egy /48-at. Így most egy külön tartomány a külső és belső láb és nincsenek ne meg routing parák, hanem minden megy.

Üdv: night[w]