From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by finch.gentoo.org (Postfix) with ESMTPS id 179FD139694 for ; Sat, 17 Jun 2017 18:30:32 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 68F60E0CAB; Sat, 17 Jun 2017 18:30:31 +0000 (UTC) Received: from blaine.gmane.org (unknown [195.159.176.226]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id 30FFAE0CA7 for ; Sat, 17 Jun 2017 18:30:31 +0000 (UTC) Received: from list by blaine.gmane.org with local (Exim 4.84_2) (envelope-from ) id 1dMIUJ-0005Zj-Bj for gentoo-user-de@lists.gentoo.org; Sat, 17 Jun 2017 20:30:23 +0200 X-Injected-Via-Gmane: http://gmane.org/ To: gentoo-user-de@lists.gentoo.org From: Kai Krakow Subject: [gentoo-user-de] Re: IPv6 Routing Probleme Date: Sat, 17 Jun 2017 20:30:18 +0200 Message-ID: <20170617203018.35ed821a@jupiter.sol.kaishome.de> References: <7137540.lBvlheE4Yx@clevo> Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-user-de@lists.gentoo.org Reply-to: gentoo-user-de@lists.gentoo.org Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable X-Complaints-To: usenet@blaine.gmane.org X-Newsreader: Claws Mail 3.13.2 (GTK+ 2.24.31; x86_64-pc-linux-gnu) X-Archives-Salt: 6f7c20e3-6248-485a-821a-f0c02e96e667 X-Archives-Hash: ae0407142793c936fbac09d68f1107b2 Am Sat, 17 Jun 2017 17:35:38 +0200 schrieb gentoo@stekahelo.de: > Hallo, >=20 > ich habe das Gef=C3=BChl, dass ich den Wald vor lauter B=C3=A4ume nicht m= ehr > sehe und hoffe das mir jemand einen erhellenden Hinweis liefern kann. > Da der Tunnelbroker Sixxs den Dienst eingestellt hat, m=C3=B6chte ich nun > IPv6 von der Telekom nutzen. Dies funktioniert aber leider nur > halbwegs. >=20 > Folgend mein Netzwerkaufbau >=20 > Internet > ^ > | > v > ppp100 > Router (R1) > eth0.103 eth0.102 eth0.104 > / | \ > / | \ > / eth1 \ > G=C3=A4ste Gentoo (R2) DMZ > eth0 > | > |=20 > Lokales Lan --> Notebook >=20 > Auf R1 erhalte ich von der Telekom f=C3=BCrs PPP-Device eine IPv6-Adresse. > Auch erhalte ich per DHCPv6 ein entsprechend geroutetes /56-Netz, > woraus ich mir ein /60 nehme. M=C3=BCsstest du dir nicht f=C3=BCr jedes VLAN ein 60er Subnetz auf dem 56er Subnetz nehmen? Oder geht es nur um das VLAN 102, das mit IPv6 versorgt werden soll? Ich bin mit IPv6 Subnetz-Routing noch nicht viel unterwegs, aber wenn ich das einigerma=C3=9Fen richtig verstanden habe, dann meine Gedanken dazu: > Auf R1 sind folgende IPv6 -Adressen und Routen vergeben: > IPs > ppp100 : 2003:d0:33bf:275b:36ee:995e:6dd7:1a2b/64 > eth0.102 : 2003:d0:33f8:5000::1/60 > eth0.102 : fe80::1/64 ppp100 und eth0.102 befinden sich in verschiedenen Netzwerk-Segmenten (laut Pr=C3=A4fix). Ich w=C3=BCrde erwarten, dass die 60-Bit-Pr=C3=A4fixe i= dentisch sind, unterscheiden sich aber bereits bei 33bf vs. 33f8. Au=C3=9Ferdem hat ppp100 ja bereits ein 64er-Subnetz, kein 56er... Deine unteren Netze (laut Schaubild) sollten also alle ein 64er-Pr=C3=A4fix "2003:d0:33bf:275b" haben. Dann w=C3=BCrdest du das Pr=C3=A4fix weiter unterteilen, z.B. indem du ein Nibble (4 Bit) dazu nimmst und somit 16 weitere Subnetze erh=C3=A4ltst. Das Subnetz "3" w=C3=A4re dann durch ppp0 b= ereits belegt. Die restlichen k=C3=B6nntest du verteilen: eth0.102: 2003:d0:33f8:275b:4000::1/68 ^ +-- Subnetzkennung (64+4 =3D 68) [-----------------] ^ +------- Pr=C3=A4fix des Uplinks (64) > Routen > 2003:d0:33bf:275b::/64 dev ppp100 > 2003:d0:33f8:5000::/60 dev eth0.102 > default via fe80::100:100:3e9b:f606 dev ppp100 Das Routing ergibt sich dann eigentlich von allein, da du Richtung Uplink in fremde Netze gehst und Richtung Downlink nur in kleinere Subnetze innerhalb des selben (=C3=BCbergeordneten) Pr=C3=A4fix. Auch f=C3=BCr die weiter unten angesiedelten Subnetze ist es dann das gleiche Bild: =C3=9Cbergeordnete Router befinden sich in fremden Subnetzen. IPv6 sollte eigentlich ein wenig zur=C3=BCckbringen, was Subnetze eigentlich wirklich bedeuten. Bei IPv4 hat man das inzwischen meist anders gehandhabt. Theoretisch zum Beispiel m=C3=BCsstest du auch mit IPv4 eine Konstellation wie diese aufbauen k=C3=B6nnen: ppp0 =3D 192.168.0.1/16 =20 eth0.102 =3D 192.168.102.1/24 eth0.103 =3D 192.168.103.1/24 eth0.104 =3D 192.168.104.1/24 Das stellt eigentlich keinen Konflikt dar. Die Interface-Routen f=C3=BCr die eth0-Interfaces ist spezifischer und wiegt damit mehr und stellt keinen Routing-Konflikt mit 192.168.0.0/16 dar. Ich w=C3=BCrde allerdings der =C3=9Cbersichtlichkeit halber vermeiden, auf = einem Downlink "192.168.0.0/24" zu nutzen, so wie oben f=C3=BCr IPv6 ja auch angedeutet. Die Default-Route (wenn kein Pr=C3=A4fix passt) geht dann auf ppp0. Bei IPv6 hast du nun statt lokalen 192.168er Adressen eben =C3=B6ffentliche Pr=C3=A4fixe - aber das ist nicht wirklich anders. Der unterschied ist hier nur das Scoping: Je nach Scope k=C3=B6nnen Pakete einen Boundary passieren oder nicht. Es gibt link-local (quasi alles am gleichen Switch bzw. Subnetz), site-local (alles unterhalb von ppp0) sowie global. Die ersten Stellen der IPv6-Adresse unterscheiden das: 2003 ist z.B. global, fe80 ist link-local. Bei IPv6 haben Interfaces deshalb auch immer mehrere Adressen, mindestens eine pro Scope, jeweils ausgestattet mit einer G=C3=BCltigkeitsdauer (die such =C3=BCberschneiden, so dass dynamische IP-W= echsel ohne Verbindungsabbr=C3=BCche m=C3=B6glich sind). Deine Default-Routen kannst du jeweils immer auf die fe80-Adresse setzen, da du die gleich lassen kannst, w=C3=A4hrend das RA dir neue Public Prefixes durch deine Subnetze schicken kann. Um site-local mit festen IPs zu adressieren, kannst du site scope Adressen verwenden und so zwischen deinen VLANs kommunizieren (aber nat=C3=BCrlich auch mit den global scope Adressen, die aber je nach Provider nicht immer gleich bleiben m=C3=BCssen). > Auf R2 sind folgende IPv6-Adresse vergeben: > eth1 : 2003:d0:33f8:5000:280:c9ff:fe00:3ef/64 > eth0 : 2003:d0:33f8:500e::1/64 > eth0 : fe80::1/64 ^^^^^^^^^ Wieder andere Pr=C3=A4fixes. Dies sind potentiell andere Rechner oberhalb des Uplinks. > Routen > 2003:d0:33f8:5000::/64 dev eth1 > 2003:d0:33f8:500e::/64 dev eth0 > default via fe80::1 dev eth1 ^^^^^^^^^ Wieder nicht dein global scope Subnetz. > Auf R2 wird per per dnsmasq das entsprechende IPv6 bekannt gemacht > und die Ger=C3=A4te erhalten auch entsprechende IPv6-Adressen: Du musst nach unten die gr=C3=B6=C3=9Feren Prefixes verteilen, deren von ob= en geerbtes Prefix aber immer gleich sein muss (also der 64er Teil identisch, und nach unten ein 68er Subnetz verteilen). Leider ist ein 64er-Pr=C3=A4fix vom Provider eigentlich schon zu klein, um stateless IP Vergabe zu nutzen, daf=C3=BCr w=C3=A4re ein 48er-Subnetz besse= r, wie es das von SixXS gab. Denn der stateless Modus erstellt automatisch eine global scope IP aus dem vorgegebenen Pr=C3=A4fix und nutzt die 48-Bit-MAC, um sich daraus eine 64-Bit-Host-Adresse zu basteln. Zusammen mit dem 64-Bit-Pr=C3=A4fix sind das dann schon die 128 Bit. Du wirst also die Downlink-Subnetze mit DHCPv6 versorgen m=C3=BCssen. > z.B. Linux-Notebook > IPs > eth0 : 2003:d0:33f8:500e:11fc:60db:35f2:5582/64 >=20 > Routen: > 2003:d0:33f8:500e::/64 dev eth0 > default via fe80::1 dev eth0 >=20 >=20 > Von R1 und R2 komme ich ohne Probleme per IPv6 ins Internet, > z.B. per: ping6 heise.de > Ich kann auch die IPs von R1 und R2 von einem Server im Internet aus=20 > erreichen: > ping6 2003:d0:33bf:275b:36ee:995e:6dd7:1a2b > ping6 2003:d0:33f8:5000::1 > und > ping6 2003:d0:33f8:5000:280:c9ff:fe00:3ef > sind erfolgreich. Ja, nur erreichst du keinen =C3=B6ffentlichen Rechner mit dem Pr=C3=A4fix 2003:d0:33f8:5000 mehr - das geh=C3=B6rt ja nicht dir. > Was jetzt NICHT geht ist, dass ich die Adresse 2003:d0:33f8:500e::1 > von R1 aus anpingen kann; auch kann ich aus dem lokalen LAN keine > IPv6-Adresse hinter eth1 (von R2) erreichen. So funktioniert das Routing bei IPv6 eigentlich auch nicht. Bzw. dir fehlen vermutlich Routen. Ich w=C3=BCrde lieber erstmal echte Subnetze probieren (also gr=C3=B6=C3=9Fere Pr=C3=A4fixe je weiter unten im Diagramm). > Es sieht so aus als w=C3=BCrde kein Routing auf R2 gemacht werden, aber > in /proc ist es entsprechend aktiviert: > cat /proc/sys/net/ipv6/conf/{all,eth0,eth1}/forwarding --> 1, 1, 1 >=20 > Lasse ich w=C3=A4hrend ich vom Notebook aus eine externe Adresse anpinge > ein tcpdump auf R1 laufen, sehe ich, dass dort versucht wird die > Adresse des Notebooks per neighbor solicitation zu ermitteln, was > aber ins leere zu laufen scheint. Ein ip -6 neigh zeigt an: > 2003:d0:33f8:500e:11fc:60db:35f2:5582 dev eth0.102 FAILED >=20 > Firewall-Regeln sind auf R2 keine eingerichtet und auf R1 nur > rudiment=C3=A4r auf ppp100. >=20 > Also irgendwie ist da er Wurm drin und ich w=C3=BCrde mich freuen, wenn > mir jemand einen Tipp geben k=C3=B6nnte ;) Wie eingangs erw=C3=A4hnt: Nur meine Gedanken dazu... Ich habe das bisher nur in der Theorie gemacht. ;-) Feedback und Gedanken dazu sind willkommen. --=20 Regards, Kai Replies to list-only preferred.