Gentoo Archives: gentoo-user-de

From: gentoo@×××××××××.de
To: gentoo-user-de@l.g.o
Subject: Re: [gentoo-user-de] IPv6 Routing Probleme
Date: Sun, 18 Jun 2017 10:12:37
Message-Id: 2601377.eh1VLiWm4q@clevo
In Reply to: [gentoo-user-de] Re: IPv6 Routing Probleme by Kai Krakow
1 Hallo,
2
3 ich habe meinen Fehler gefunden: Ich habe einfach vergessen auf R1 das
4 Gateway für die auf R2 gerouteten Netze noch festzulegen.
5
6 Nach dem ich dies nachgeholt habe geht alles.
7
8 Grüße und noch einen schönen Sonntag,
9 Stephan
10
11
12
13 Am Samstag, 17. Juni 2017, 20:30:18 schrieb Kai Krakow:
14 > Am Sat, 17 Jun 2017 17:35:38 +0200
15 >
16 > schrieb gentoo@×××××××××.de:
17 > > Hallo,
18 > >
19 > > ich habe das Gefühl, dass ich den Wald vor lauter Bäume nicht mehr
20 > > sehe und hoffe das mir jemand einen erhellenden Hinweis liefern kann.
21 > > Da der Tunnelbroker Sixxs den Dienst eingestellt hat, möchte ich nun
22 > > IPv6 von der Telekom nutzen. Dies funktioniert aber leider nur
23 > > halbwegs.
24 > >
25 > > Folgend mein Netzwerkaufbau
26 > >
27 > > Internet
28 > >
29 > > ^
30 > >
31 > > v
32 > >
33 > > ppp100
34 > >
35 > > Router (R1)
36 > >
37 > > eth0.103 eth0.102 eth0.104
38 > >
39 > > / | \
40 > >
41 > > / | \
42 > >
43 > > / eth1 \
44 > >
45 > > Gäste Gentoo (R2) DMZ
46 > >
47 > > eth0
48 > >
49 > > Lokales Lan --> Notebook
50 > >
51 > > Auf R1 erhalte ich von der Telekom fürs PPP-Device eine IPv6-Adresse.
52 > > Auch erhalte ich per DHCPv6 ein entsprechend geroutetes /56-Netz,
53 > > woraus ich mir ein /60 nehme.
54 >
55 > Müsstest du dir nicht für jedes VLAN ein 60er Subnetz auf dem 56er
56 > Subnetz nehmen? Oder geht es nur um das VLAN 102, das mit IPv6 versorgt
57 > werden soll?
58 >
59 > Ich bin mit IPv6 Subnetz-Routing noch nicht viel unterwegs, aber wenn
60 >
61 > ich das einigermaßen richtig verstanden habe, dann meine Gedanken dazu:
62 > > Auf R1 sind folgende IPv6 -Adressen und Routen vergeben:
63 > > IPs
64 > > ppp100 : 2003:d0:33bf:275b:36ee:995e:6dd7:1a2b/64
65 > > eth0.102 : 2003:d0:33f8:5000::1/60
66 > > eth0.102 : fe80::1/64
67 >
68 > ppp100 und eth0.102 befinden sich in verschiedenen Netzwerk-Segmenten
69 > (laut Präfix). Ich würde erwarten, dass die 60-Bit-Präfixe identisch
70 > sind, unterscheiden sich aber bereits bei 33bf vs. 33f8. Außerdem hat
71 > ppp100 ja bereits ein 64er-Subnetz, kein 56er...
72 >
73 > Deine unteren Netze (laut Schaubild) sollten also alle ein 64er-Präfix
74 > "2003:d0:33bf:275b" haben. Dann würdest du das Präfix weiter
75 > unterteilen, z.B. indem du ein Nibble (4 Bit) dazu nimmst und somit 16
76 > weitere Subnetze erhältst. Das Subnetz "3" wäre dann durch ppp0 bereits
77 > belegt. Die restlichen könntest du verteilen:
78 >
79 > eth0.102: 2003:d0:33f8:275b:4000::1/68
80 > ^
81 > +-- Subnetzkennung (64+4 = 68)
82 > [-----------------]
83 > ^
84 > +------- Präfix des Uplinks (64)
85 >
86 > > Routen
87 > > 2003:d0:33bf:275b::/64 dev ppp100
88 > > 2003:d0:33f8:5000::/60 dev eth0.102
89 > > default via fe80::100:100:3e9b:f606 dev ppp100
90 >
91 > Das Routing ergibt sich dann eigentlich von allein, da du Richtung
92 > Uplink in fremde Netze gehst und Richtung Downlink nur in kleinere
93 > Subnetze innerhalb des selben (übergeordneten) Präfix.
94 >
95 > Auch für die weiter unten angesiedelten Subnetze ist es dann das
96 > gleiche Bild: Übergeordnete Router befinden sich in fremden Subnetzen.
97 >
98 > IPv6 sollte eigentlich ein wenig zurückbringen, was Subnetze eigentlich
99 > wirklich bedeuten. Bei IPv4 hat man das inzwischen meist anders
100 > gehandhabt.
101 >
102 > Theoretisch zum Beispiel müsstest du auch mit IPv4 eine Konstellation
103 > wie diese aufbauen können:
104 >
105 > ppp0 = 192.168.0.1/16
106 > eth0.102 = 192.168.102.1/24
107 > eth0.103 = 192.168.103.1/24
108 > eth0.104 = 192.168.104.1/24
109 >
110 > Das stellt eigentlich keinen Konflikt dar. Die Interface-Routen für die
111 > eth0-Interfaces ist spezifischer und wiegt damit mehr und stellt keinen
112 > Routing-Konflikt mit 192.168.0.0/16 dar.
113 >
114 > Ich würde allerdings der Übersichtlichkeit halber vermeiden, auf einem
115 > Downlink "192.168.0.0/24" zu nutzen, so wie oben für IPv6 ja auch
116 > angedeutet.
117 >
118 > Die Default-Route (wenn kein Präfix passt) geht dann auf ppp0.
119 >
120 > Bei IPv6 hast du nun statt lokalen 192.168er Adressen eben öffentliche
121 > Präfixe - aber das ist nicht wirklich anders.
122 >
123 > Der unterschied ist hier nur das Scoping: Je nach Scope können Pakete
124 > einen Boundary passieren oder nicht. Es gibt link-local (quasi alles am
125 > gleichen Switch bzw. Subnetz), site-local (alles unterhalb von ppp0)
126 > sowie global. Die ersten Stellen der IPv6-Adresse unterscheiden das:
127 > 2003 ist z.B. global, fe80 ist link-local.
128 >
129 > Bei IPv6 haben Interfaces deshalb auch immer mehrere Adressen,
130 > mindestens eine pro Scope, jeweils ausgestattet mit einer
131 > Gültigkeitsdauer (die such überschneiden, so dass dynamische IP-Wechsel
132 > ohne Verbindungsabbrüche möglich sind).
133 >
134 > Deine Default-Routen kannst du jeweils immer auf die fe80-Adresse
135 > setzen, da du die gleich lassen kannst, während das RA dir neue Public
136 > Prefixes durch deine Subnetze schicken kann.
137 >
138 > Um site-local mit festen IPs zu adressieren, kannst du site scope
139 > Adressen verwenden und so zwischen deinen VLANs kommunizieren (aber
140 > natürlich auch mit den global scope Adressen, die aber je nach Provider
141 > nicht immer gleich bleiben müssen).
142 >
143 > > Auf R2 sind folgende IPv6-Adresse vergeben:
144 > > eth1 : 2003:d0:33f8:5000:280:c9ff:fe00:3ef/64
145 > > eth0 : 2003:d0:33f8:500e::1/64
146 > > eth0 : fe80::1/64
147 >
148 > ^^^^^^^^^
149 > Wieder andere Präfixes. Dies sind potentiell andere Rechner oberhalb
150 > des Uplinks.
151 >
152 > > Routen
153 > > 2003:d0:33f8:5000::/64 dev eth1
154 > > 2003:d0:33f8:500e::/64 dev eth0
155 > > default via fe80::1 dev eth1
156 >
157 > ^^^^^^^^^
158 > Wieder nicht dein global scope Subnetz.
159 >
160 > > Auf R2 wird per per dnsmasq das entsprechende IPv6 bekannt gemacht
161 >
162 > > und die Geräte erhalten auch entsprechende IPv6-Adressen:
163 > Du musst nach unten die größeren Prefixes verteilen, deren von oben
164 > geerbtes Prefix aber immer gleich sein muss (also der 64er Teil
165 > identisch, und nach unten ein 68er Subnetz verteilen).
166 >
167 > Leider ist ein 64er-Präfix vom Provider eigentlich schon zu klein, um
168 > stateless IP Vergabe zu nutzen, dafür wäre ein 48er-Subnetz besser, wie
169 > es das von SixXS gab. Denn der stateless Modus erstellt automatisch
170 > eine global scope IP aus dem vorgegebenen Präfix und nutzt die
171 > 48-Bit-MAC, um sich daraus eine 64-Bit-Host-Adresse zu basteln.
172 > Zusammen mit dem 64-Bit-Präfix sind das dann schon die 128 Bit. Du
173 > wirst also die Downlink-Subnetze mit DHCPv6 versorgen müssen.
174 >
175 > > z.B. Linux-Notebook
176 > > IPs
177 > > eth0 : 2003:d0:33f8:500e:11fc:60db:35f2:5582/64
178 > >
179 > > Routen:
180 > > 2003:d0:33f8:500e::/64 dev eth0
181 > > default via fe80::1 dev eth0
182 > >
183 > >
184 > > Von R1 und R2 komme ich ohne Probleme per IPv6 ins Internet,
185 > > z.B. per: ping6 heise.de
186 > > Ich kann auch die IPs von R1 und R2 von einem Server im Internet aus
187 > > erreichen:
188 > > ping6 2003:d0:33bf:275b:36ee:995e:6dd7:1a2b
189 > > ping6 2003:d0:33f8:5000::1
190 > > und
191 > > ping6 2003:d0:33f8:5000:280:c9ff:fe00:3ef
192 > > sind erfolgreich.
193 >
194 > Ja, nur erreichst du keinen öffentlichen Rechner mit dem Präfix
195 > 2003:d0:33f8:5000 mehr - das gehört ja nicht dir.
196 >
197 > > Was jetzt NICHT geht ist, dass ich die Adresse 2003:d0:33f8:500e::1
198 > > von R1 aus anpingen kann; auch kann ich aus dem lokalen LAN keine
199 > > IPv6-Adresse hinter eth1 (von R2) erreichen.
200 >
201 > So funktioniert das Routing bei IPv6 eigentlich auch nicht. Bzw. dir
202 > fehlen vermutlich Routen. Ich würde lieber erstmal echte Subnetze
203 > probieren (also größere Präfixe je weiter unten im Diagramm).
204 >
205 > > Es sieht so aus als würde kein Routing auf R2 gemacht werden, aber
206 > > in /proc ist es entsprechend aktiviert:
207 > > cat /proc/sys/net/ipv6/conf/{all,eth0,eth1}/forwarding --> 1, 1, 1
208 > >
209 > > Lasse ich während ich vom Notebook aus eine externe Adresse anpinge
210 > > ein tcpdump auf R1 laufen, sehe ich, dass dort versucht wird die
211 > > Adresse des Notebooks per neighbor solicitation zu ermitteln, was
212 > > aber ins leere zu laufen scheint. Ein ip -6 neigh zeigt an:
213 > > 2003:d0:33f8:500e:11fc:60db:35f2:5582 dev eth0.102 FAILED
214 > >
215 > > Firewall-Regeln sind auf R2 keine eingerichtet und auf R1 nur
216 > > rudimentär auf ppp100.
217 > >
218 > > Also irgendwie ist da er Wurm drin und ich würde mich freuen, wenn
219 > > mir jemand einen Tipp geben könnte ;)
220 >
221 > Wie eingangs erwähnt: Nur meine Gedanken dazu... Ich habe das bisher
222 > nur in der Theorie gemacht. ;-)
223 >
224 > Feedback und Gedanken dazu sind willkommen.