Dateianhang 'routing_20140618.md'
Herunterladen 1 ---
2
3 author: Lars Kruse
4 title: Netzwerk-Routing - ein fortgeschrittener Einstieg
5
6 ---
7
8 Überblick
9 =========
10
11 Was ist Routing?
12 ----------------
13
14 * heutiges Thema ist IP-basiertes Routing
15 * Ziel: wie findet ein Paket den Weg vom Start zum Ziel
16 * Zusatzbonus: wie findet das Antwort-Paket seinen Rückweg
17
18 ---
19
20 Visualisierung des Alltäglichen
21 -------------------------------
22
23 lokale IP-Adressen:
24
25 root@erker:~# ifconfig
26 lo Link encap:Local Loopback
27 inet addr:127.0.0.1 Mask:255.0.0.0
28 inet6 addr: ::1/128 Scope:Host
29 ...
30
31 wlan0 Link encap:Ethernet HWaddr 00:1c:bf:af:05:da
32 inet addr:172.16.19.202 Bcast:172.16.19.255 Mask:255.255.255.0
33 inet6 addr: fe80::21c:bfff:feaf:5da/64 Scope:Link
34 ...
35
36 Routing:
37
38 root@erker:~# route -n
39 Kernel IP routing table
40 Destination Gateway Genmask Flags Metric Ref Use Iface
41 0.0.0.0 172.16.19.1 0.0.0.0 UG 0 0 0 wlan0
42 172.16.19.0 0.0.0.0 255.255.255.0 U 9 0 0 wlan0
43
44 ---
45
46 Neue Werkzeuge: iproute2 (seit ca. 1996)
47 ----------------------------------------
48
49 root@erker:~# ip addr
50 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default
51 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
52 inet 127.0.0.1/8 scope host lo
53 valid_lft forever preferred_lft forever
54 inet6 ::1/128 scope host
55 valid_lft forever preferred_lft forever
56 3: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
57 link/ether 00:1c:bf:af:05:da brd ff:ff:ff:ff:ff:ff
58 inet 172.16.19.202/24 brd 172.16.19.255 scope global wlan0
59 valid_lft forever preferred_lft forever
60 inet6 fe80::21c:bfff:feaf:5da/64 scope link
61 valid_lft forever preferred_lft forever
62
63 root@erker:~# ip route
64 default via 172.16.19.1 dev wlan0 proto static
65 172.16.19.0/24 dev wlan0 proto kernel scope link src 172.16.19.202 metric 9
66
67 ---
68
69 Ins Uhrwerk geschaut ...
70 ------------------------
71
72 lokale Ziele:
73
74 root@erker:~# ip route get 172.16.19.23
75 172.16.19.23 dev wlan0 src 172.16.19.202
76
77 entfernte Ziele:
78
79 root@erker:~# ip route get 1.1.1.1
80 1.1.1.1 via 172.16.19.1 dev wlan0 src 172.16.19.202
81
82 ---
83
84 Wegführung
85 ----------
86
87 * traditionell: traceroute
88 * modern und schick: mtr
89
90 traceroute-Ausgabe:
91
92 root@erker:~# traceroute -n 8.8.8.8
93 traceroute to 8.8.8.8 (8.8.8.8), 30 hops max, 60 byte packets
94 1 172.16.19.1 1.085 ms 1.101 ms 1.316 ms
95 2 172.16.23.9 2.083 ms 1.071 ms 1.124 ms
96 3 10.1.0.1 9.267 ms 9.255 ms 11.647 ms
97 4 139.30.241.4 14.816 ms 14.941 ms 24.938 ms
98 5 139.30.0.17 20.589 ms 22.277 ms 24.662 ms
99 ...
100 13 64.233.174.53 70.621 ms 216.239.48.53 23.692 ms 21.371 ms
101 14 * * *
102 15 8.8.8.8 23.502 ms 23.508 ms 29.182 ms
103
104 Die Erkennung der Zwischen-Hops erfolgt anhand von Anfragen mit steigendem TTL-Wert.
105
106 ---
107
108 Mehr Interna + Policy Routing
109 =============================
110
111 * komplexe Paket-Lenkung mit mehr Freiheitsgraden:
112 * basierend auf der Ziel-Adresse (gab es schon immer)
113 * basierend auf der Quell-Adresse (**neu**)
114 * basierend auf Markierungen durch die Firewall (**neu**)
115
116 ---
117
118 Policy: ohne Extras
119 -------------------
120
121 Grober Überblick:
122
123 lars@datenschleuder:~$ ip rule
124 0: from all lookup local
125 32766: from all lookup main
126 32767: from all lookup default
127
128 Details:
129
130 lars@datenschleuder:~$ ip route show table main
131 default via 172.16.42.1 dev eth0
132 172.16.42.0/24 dev eth0 proto kernel scope link src 172.16.42.3
133
134 Fazit: dieselben Informationen, wie zuvor (via *route -n*)
135
136 ---
137
138 Policy: lokale Adressen
139 -----------------------
140
141 lokale IP-Adressen werden in der *local* Tabelle als solche erkannt:
142
143 root@erker:# ip route show table local
144 local 127.0.0.0/8 dev lo proto kernel scope host src 127.0.0.1
145 local 127.0.0.1 dev lo proto kernel scope host src 127.0.0.1
146 broadcast 127.255.255.255 dev lo proto kernel scope link src 127.0.0.1
147 broadcast 172.16.19.0 dev wlan0 proto kernel scope link src 172.16.19.202
148 local 172.16.19.202 dev wlan0 proto kernel scope host src 172.16.19.202
149 broadcast 172.16.19.255 dev wlan0 proto kernel scope link src 172.16.19.202
150
151 ---
152
153 Policy: nach Opennet-Geschmack
154 ------------------------------
155
156 root@AP-2-68:~# ip rule
157 0: from all lookup local
158 32766: from 172.16.42.0/24 lookup main
159 32766: from all iif lo lookup main
160 32767: from all lookup default
161 32776: from 172.16.42.0/24 lookup tun
162 32776: from all iif lo lookup tun
163 65535: from all lookup olsrd
164 65545: from all lookup olsrd-default
165 65555: from all lookup main
166
167 ---
168
169 Policy: mehrere Uplinks
170 -----------------------
171
172 root@cerebrum:~# ip rule
173 0: from all lookup local
174 502: from 92.198.62.56/29 lookup uplink_qsc
175 502: from 80.153.252.42 lookup uplink_tkom
176 502: from 83.169.20.153 lookup uplink_exo
177 502: from 10.0.1.30 lookup uplink_tkom
178 32766: from all lookup main
179 32767: from all lookup default
180
181 root@cerebrum:~# ip route show table uplink_qsc
182 default via 172.16.23.13 dev backbone
183 throw 10.0.0.0/8
184 throw 172.16.0.0/12
185 throw 192.168.0.0/16
186
187 ---
188
189 Routing + Firewall
190 ==================
191
192 * wechselseitige Abarbeitung von Routing und Firewall-Regeln
193
194
195 ---
196
197 Einfach
198 -------
199
200 ![einfache Darstellung](http://www.sysresccd.org/images/dport-routing-02.png)
201
202 ---
203
204 Ausführlich
205 -----------
206
207 ![vollständige Darstellung](https://www.frozentux.net/iptables-tutorial/chunkyhtml/images/tables_traverse.jpg)
208
209 ---
210
211 OLSR
212 ====
213
214 * einfaches Routing-Protokoll
215 * Funktionen:
216 * Wegfindung
217 * sachgerechte Routen-Bewertung
218 * Informationsverteilung (Routen announcieren, DNS-Informationen)
219
220 ---
221
222 Qualitätsbewertung
223 ------------------
224
225 * jeder Host empfängt von Nachbarn im 3-Sekunden-Takt ein Hello-Signal
226 * die Anzahl der empfangenen im Vergleich zu den erwarteten Paketen bestimmt die Link-Qualität (LQ)
227 * dasselbe vom Nachbarn aus betrachtet: Neighbour Link Quality (NLQ)
228
229 ---
230
231 Rechnen, Rechnen
232 ----------------
233
234 * Erwartungswert der zu sendenden Pakete (Estimated Transmission Count): ETX = 1 / (LQ * NLQ)
235 * *Kosten* eines Pfades: Summe der ETX-Werte
236 * Fazit: nicht für alle Situationen optimal
237 * OLSR bietet alternative Bewertungsverfahren
238 * es gibt viele weitere Routing-Protokolle
239
240 ---
241
242 Verteilte Information
243 ---------------------
244
245 * kein Knoten im Netz hat die vollständige Übersicht der Routen
246 * Nachbarn tauschen regelmäßig untereinander ihre Routen aus
247 * örtliche Ausfälle verbreiten sich langsam im Netz
248
249 ---
250
251 Komplexe Systeme: das Internet
252 ==============================
253
254 Überblick (fragmentarisch)
255 --------------------------
256
257 * Teilnehmer am Routing heißen Autonome System (AS)
258 * AS tauschen untereinander Routing-Tabellen aus
259 * System basiert auf Vertrauen
260
261 ---
262
263 Testfeld
264 --------
265
266 * http://dn42.net/
Gespeicherte Dateianhänge
Um Dateianhänge in eine Seite einzufügen sollte unbedingt eine Angabe wie attachment:dateiname benutzt werden, wie sie auch in der folgenden Liste der Dateien erscheint. Es sollte niemals die URL des Verweises ("laden") kopiert werden, da sich diese jederzeit ändern kann und damit der Verweis auf die Datei brechen würde.Sie dürfen keine Anhänge an diese Seite anhängen!