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