From 2684af99a440c9f61c2f659e7b1f865eaaf3ca3e Mon Sep 17 00:00:00 2001 From: pbldp <> Date: Fri, 9 May 2014 16:51:34 +0000 Subject: [PATCH] update nftables section --- .../Peter-Bieringer/Linux+IPv6-HOWTO.de.html | 563 +-- .../Peter-Bieringer/Linux+IPv6-HOWTO.de.lyx | 1710 +++++++- .../Peter-Bieringer/Linux+IPv6-HOWTO.de.pdf | Bin 520468 -> 522747 bytes .../Peter-Bieringer/Linux+IPv6-HOWTO.de.sgml | 98 +- .../Peter-Bieringer/Linux+IPv6-HOWTO.html | 619 +-- .../Peter-Bieringer/Linux+IPv6-HOWTO.lyx | 3530 ++++++++++++++++- .../Peter-Bieringer/Linux+IPv6-HOWTO.pdf | Bin 583943 -> 586774 bytes .../Peter-Bieringer/Linux+IPv6-HOWTO.sgml | 108 +- 8 files changed, 5814 insertions(+), 814 deletions(-) diff --git a/LDP/users/Peter-Bieringer/Linux+IPv6-HOWTO.de.html b/LDP/users/Peter-Bieringer/Linux+IPv6-HOWTO.de.html index 4a384509..7d44782c 100644 --- a/LDP/users/Peter-Bieringer/Linux+IPv6-HOWTO.de.html +++ b/LDP/users/Peter-Bieringer/Linux+IPv6-HOWTO.de.html @@ -627,12 +627,12 @@ HREF="#CHAPTER-SECURITY" >
19.1. Sicherheit des Knoten
19.2. Zugangsbeschränkungen
20.1. Nutzungsarten von Verschlüsselung und Authentifizierung
20.2. Unterstützung im Kernel (ESP und AH)
20.3. Automatischer Schlüssel-Austausch (IKE)
20.4. Anmerkungen:
21.1. General
21.2. Linux QoS mit “tc”
23.2. Andere Programmiersprachen
25.4. IPv6 Infrastruktur
26. Versions-Überblick / Danksagung / Zum Schluss
26.3. Zum Schluss
18.5.2. Basis-nftables Konfiguration

Laden der Kernel-Module

Laden der Kernel-Module:

Erzeugen der Filter-Tabellen

Löschen der Regeln in iptables and ip6tables um Interferenzen zu vermeiden:

# nft add table ip   filter
-# nft add table ip6  filter
-# nft add table inet filter 
# iptables -F +# ip6tables -F

Erzeugen einer input chain in jeder Filter-Tabelle

Erzeugen der Filter-Tabelle:

# nft add chain ip   filter input { type filter hook input priority 1 \; }
-# nft add chain ip6  filter input { type filter hook input priority 1 \; } 
-# nft add chain inet filter input { type filter hook input priority 0 \; }
# nft add table inet filter

Erzeugen einer input chain in der Filter-Tabelle:


18.5.3. Einfache Filter-Policy mit nftables

18.5.3.1. Konfiguration

# nft add rule ip filter input icmp type { echo-request } counter accept 
-# nft add rule ip6 filter input icmpv6 type echo-request counter accept 
# nft add rule inet filter input meta nfproto ipv4 icmp type { echo-request } counter accept +# nft add rule inet filter input meta nfproto ipv6 icmpv6 type echo-request counter accept
# nft add rule ip6 filter input icmpv6 type
-¬  { nd-neighbor-solicit, nd-router-advert, nd-neighbor-advert }
-¬  ip6 hoplimit 1 accept
-# nft add rule ip6 filter input icmpv6 type
-¬  { nd-neighbor-solicit, nd-router-advert, nd-neighbor-advert }
-¬  ip6 hoplimit 255 accept
# nft add rule inet filter input meta nfproto ipv6 +¬ icmpv6 type { nd-neighbor-advert, nd-neighbor-solicit, nd-router-advert} ip6 hoplimit 1 accept +# nft add rule inet filter input meta nfproto ipv6 +¬ icmpv6 type { nd-neighbor-advert, nd-neighbor-solicit, nd-router-advert} ip6 hoplimit 255 counter accept
# nft add chain inet filter input { type filter hook input priority 0 \; }

Erlauben von eingehenden SSH-Verbindungen für IPv4 und IPv6 unter Nutzung der IP-Version unabhängigen Tabelle “inet”

Erlauben von eingehenden SSH-Verbindungen für IPv4 und IPv6

Reject/drop anderer Pakete

# nft add rule inet filter input tcp dport 0-65535 reject
+# nft add rule inet filter input udp dport 0-65535 counter drop
+# nft add rule inet filter input counter drop

18.5.3.2. Ergebnis

Tabelle für IPv4 Filter

# nft list table ip filter
-table ip filter {
-	chain input {
-		 type filter hook input priority 1;
-		 icmp type { echo-request} counter packets 0 bytes 0 accept
-	}
-}

Tabelle für IPv6 Filter

# nft list table ip6 filter
-table ip6 filter {
-	chain input {
-		 type filter hook input priority 1;
-		 icmpv6 type echo-request counter packets 0 bytes 0 accept
-		 ip6 hoplimit 1 icmpv6 type
-¬		 { nd-neighbor-advert, nd-neighbor-solicit, nd-router-advert} accept
-		 ip6 hoplimit 255 icmpv6 type
-¬		 { nd-neighbor-advert, nd-neighbor-solicit, nd-router-advert} accept
-	}
-}

Tabelle für IP unabhängigen Filter

# nft list table inet filter
-table inet filter {
+>table inet filter {
 	chain input {
 		 type filter hook input priority 0;
-		 ct state established,related counter packets 44 bytes 2288 accept
+		 ct state established,related counter packets 0 bytes 0 accept
+		 ip protocol icmp icmp type { echo-request} counter packets 0 bytes 0 accept
+		 ip6 nexthdr ipv6-icmp icmpv6 type echo-request counter packets 0 bytes 0 accept
+		 ip6 nexthdr ipv6-icmp ip6 hoplimit 1 icmpv6 type { nd-neighbor-advert, nd-neighbor-solicit, nd-router-advert} accept
+		 ip6 nexthdr ipv6-icmp ip6 hoplimit 255 icmpv6 type { nd-neighbor-advert, nd-neighbor-solicit, nd-router-advert} accept
 		 tcp dport ssh ct state new tcp flags & (syn | ack) == syn counter packets 0 bytes 0 accept
+		 tcp dport >= 0 tcp dport <= 65535 counter packets 0 bytes 0 reject
+		 udp dport >= 0 udp dport <= 65535 counter packets 0 bytes 0 drop
+		 log prefix counter packets 0 bytes 0 drop
 	}
 } 

18.5.3.3. Tipps für's Loggen

Für Logging wird ein zusätzliches Kernelmodul benötigt:

# modprobe xt_LOG

ACHTUNG, MOMENTAN KANN DER LOG-LEVEL NICHT ANGEGEBEN WERDEN, dadurch werden nftables-Ereignisse mit Log-Level kern.emerg ausgegeben - ES BESTEHT DIE GEFAHR, DASS DIE KONSOLE DADURCH ÜBERFLUTET WIRD!

Für erste Tests mit der Log-Option kann es nützlich sein, das Loggens für emergency-Ereignisse in z.B. /etc/rsyslog.conf zu deaktivieren mit Hilfe eines “#” am Anfang der Zeile und Neustart des logging-Daemons

#*.emerg    :omusrmsg:* 

Regel von oben, welche SSH auf Port 22 erlaubt, nun mit Logging:

# nft add rule inet filter input tcp dport 22 ct state new tcp flags \& \(syn \| ack\) == syn log prefix \"inet/input/accept: \" counter accept

18.5.4. Filter-Policy mit nftables unter Benutzung der Tablellen “ip”, “ip6” und “inet”

Wie oben schon beschrieben, wenn die Regeln in den einzelnen Tabellen konfiguriert werden, muss gesichert sein, dass frühere “accepts” nicht aufgehoben werden. Eine einfache Lösung ist die Benutzung von Markierungen. Regeln, die Pakete erlauben, setzen die Marke mit “meta mark set xxxx”. Eine generische Regel erlaubt Pakete mit gesetzter Marke “mark xxxx”. Beispiel für ein resultierendes Filter-Regelwerk:

# for table in ip ip6 inet; do nft list table $table filter; done
+table ip filter {
+	chain input {
+		 type filter hook input priority 0;
+		 ct state established,related counter packets 241 bytes 25193 accept
+		 counter packets 2 bytes 120 mark 0x00000100 accept
+		 icmp type { echo-request} counter packets 0 bytes 0 meta mark set 0x00000100 accept
+	}
+}
+table ip6 filter {
+	chain input {
+		 type filter hook input priority 0;
+		 ct state established,related counter packets 14 bytes 4077 accept
+		 counter packets 4 bytes 408 mark 0x00000100 accept
+		 icmpv6 type echo-request counter packets 1 bytes 104 meta mark set 0x00000100
+		 icmpv6 type { nd-neighbor-advert, nd-neighbor-solicit, nd-router-advert} counter packets 2 bytes 224 meta mark set 0x00000100 accept
+	}
+}
+table inet filter {
+	chain input {
+		 type filter hook input priority 0;
+		 ct state established,related counter packets 307 bytes 31974 accept
+		 counter packets 6 bytes 528 mark 0x00000100 accept
+		 tcp dport ssh ct state new tcp flags & (syn | ack) == syn log prefix "inet/input/accept: " meta mark set 0x00000100 counter packets 3 bytes 200 accept
+		 log prefix "inet/input/reject: " counter packets 0 bytes 0 reject
+	}
+}

19.1. Sicherheit des Knoten


19.2. Zugangsbeschränkungen


19.3.1. Rechtsfragen


19.3.2. Sicherheitsüberwachung mit IPv6 fähigen netcat


19.3.3. Sicherheitsüberwachung mit IPv6 fähigen NMap


19.3.4. Sicherheitsüberprüfung IPv6 fähigen strobe


19.3.5. Sicherheitsüberprüfung mit Online-Werkzeugen


19.3.6. Überprüfungsergebnisse


20.1. Nutzungsarten von Verschlüsselung und Authentifizierung


20.1.1. Transport-Modus


20.1.2. Tunnel-Modus


20.2. Unterstützung im Kernel (ESP und AH)

20.2.1. Unterstützung im vanilla Linux Kernel 2.4.x


20.2.2. Unterstützung im vanilla Linux kernel 2.6.x


20.3. Automatischer Schlüssel-Austausch (IKE)


20.3.1. IKE-Daemon “racoon”


20.3.1.1. Manipulation der IPsec SA/SP Datenbank mit dem Werkzeug “setkey”


20.3.1.2. Konfiguration des IKE-Daemon “racoon”


20.3.1.3. IPsec mit IKE-Daemon “racoon” starten


20.3.2. IKE-Daemon “pluto”


20.3.2.1. Konfiguration des IKE-Daemon “pluto”


20.3.2.2. IPsec mit IKE daemon “pluto” starten


20.4. Anmerkungen:


21.1. General


21.2. Linux QoS mit “tc”


21.2.1. Beispiel für eine Warteschlange mit konstanter Bitrate


21.2.1.1. Root qdisc Definition


21.2.1.2. QoS class Definition


21.2.1.3. QoS filter Definition


21.2.1.4. Testen der Filterdefinition mit iperf


22.1.1. Auf IPv6 Adressen hören


22.1.1.1. BIND named konfigurieren, damit er auf IPv6 Adressen antwortet


22.1.1.2. BIND named konfigurieren, damit er auf IPv6 Adressen nicht antwortet


22.1.2. Access Control Lists (ACL) mit IPv6 Unterstützung


22.1.3. Anfragen mit festen IPv6 Adressen senden


22.1.4. Pro Zone definierte feste IPv6 Adressen


22.1.4.1. Transfer source Adresse


22.1.4.2. Notify source Adresse


22.1.5. IPv6 DNS zone files Beispiele


22.1.6. IPv6 bezogene DNS-Daten bereitstellen


22.1.6.1. Aktuell beste Praxis


22.1.7. IPv6 Verbindung überprüfen


22.1.7.1. IPv6 Verbindung durch ACL abgelehnt


22.1.7.2. Erfolgreiche IPv6 Verbindung


22.3.1. Auf IPv6 Adressen hören


22.3.1.1. Virtueller Host mit IPv6 Adresse


22.3.1.2. Virtueller Host mit IPv4 und IPv6 Adresse


22.3.1.3. Zusätzliche Anmerkungen


22.4.1. radvd konfigurieren

22.4.1.1. Einfache Konfiguration


22.4.1.2. Spezielle 6to4 Konfiguration


22.4.2. Fehlersuche


22.5.1. Konfiguration des DHCPv6-Servers (dhcp6s)

22.5.1.1. Einfache Konfiguration


22.5.2. Konfiguration des DHCPv6-Client (dhcp6s)

22.5.2.1. Einfache Konfiguration


22.5.3. Benutzung

22.5.3.1. dhcp6s


22.5.3.2. dhcp6c


22.5.4. Fehlersuche

22.5.4.1. dhcp6s


22.5.4.2. dhcp6c


22.6.1. Konfiguration des ISC DHCP Server für IPv6 (dhcpd)


22.6.1.1. Einfache Configuration


22.6.2. Benutzung

22.6.2.1. dhcpd


22.7.1. Konfiguration des Dibbler DHCP server für IPv6

22.7.1.1. Einfache Konfuration


22.7.2. Benutzung

22.7.2.1. dibbler-server


22.8.1. Filter-Funktionalität


22.8.2. Welches Programm benützt tcp_wrapper


22.8.3. Anwendung


22.8.3.1. Beispiel für /etc/hosts.allow


22.8.3.2. Beispiel für /etc/hosts.deny


22.8.4. Protokollierung


22.8.4.1. Abgelehnte Verbindung


22.8.4.2. Akzeptierte Verbindung

22.9.1. Auf IPv6-Adressen lauschen

22.10.1. Auf IPv6-Adressen lauschen


23.2. Andere Programmiersprachen

25.6.1. Test-Werkzeuge


25.6.2. Informationsbeschaffung


25.6.3. IPv6 Looking Glasses


25.6.4. Hilfsapplikationen


Kapitel 26. Versions-Überblick / Danksagung / Zum Schluss


26.1.1. Ausgabe 0.x

26.1.1.1. Englische Sprachversion (Peter Bieringer's Original)


26.1.1.2. Deutsche Sprachversion


26.2.2. Sonstiger Dank...

26.2.2.1. Verwaltung des Dokuments


26.3. Zum Schluss

\end_layout @@ -1270,6 +1272,7 @@ In Skripts oder an Ihrer Kommandozeile müssen Sie die < und > weglassen \end_layout \begin_layout Code + 1.2.3.4 \end_layout @@ -1283,6 +1286,7 @@ Kommandos, die nicht als Root-Benutzer ausgeführt werden, beginnen mit $, \end_layout \begin_layout Code + $ whoami \end_layout @@ -1291,6 +1295,7 @@ Befehle, die mit Root-Rechten ausgeführt werden, beginnen mit #, z.B. \end_layout \begin_layout Code + # whoami \end_layout @@ -1480,58 +1485,72 @@ Der erste IPv6 Netzwerk Code wurde dem Linux Kernel 2.1.8 im November 1996 \end_layout \begin_layout Code + diff -u --recursive --new-file v2.1.7/linux/include/linux/in6.h \end_layout \begin_layout Code + ¬ linux/include/linux/in6.h \end_layout \begin_layout Code + --- v2.1.7/linux/include/linux/in6.h Thu Jan 1 02:00:00 1970 \end_layout \begin_layout Code + +++ linux/include/linux/in6.h Sun Nov 3 11:04:42 1996 \end_layout \begin_layout Code + @@ -0,0 +1,99 @@ \end_layout \begin_layout Code + +/* \end_layout \begin_layout Code + + * Types and definitions for AF_INET6 \end_layout \begin_layout Code + + * Linux INET6 implementation \end_layout \begin_layout Code + + * + * Authors: \end_layout \begin_layout Code + + * Pedro Roque <******> \end_layout \begin_layout Code + + * \end_layout \begin_layout Code + + * Source: \end_layout \begin_layout Code + + * IPv6 Program Interfaces for BSD Systems \end_layout \begin_layout Code + + * \end_layout @@ -1653,6 +1672,7 @@ Wie gesagt, IPv6 Adressen sind 128 bit lang. \end_layout \begin_layout Code + 2^128-1: 340282366920938463463374607431768211455 \end_layout @@ -1676,6 +1696,7 @@ nibble \end_layout \begin_layout Code + 2^128-1: 0xffffffffffffffffffffffffffffffff \end_layout @@ -1698,6 +1719,7 @@ e Werte) entfernt: \end_layout \begin_layout Code + 2^128-1: ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff \end_layout @@ -1708,6 +1730,7 @@ Eine gültige Adresse (s.u. \end_layout \begin_layout Code + 2001:0db8:0100:f101:0210:a4ff:fee3:9566 \end_layout @@ -1718,10 +1741,12 @@ Der Vereinfachung halber können führende Nullen jedes 16 bit-Blocks weggelasse \end_layout \begin_layout Code + 2001:0db8:0100:f101:0210:a4ff:fee3:9566 -> \end_layout \begin_layout Code + ¬ 2001:0db8:100:f101:210:a4ff:fee3:9566 \end_layout @@ -1744,6 +1769,7 @@ Eine Sequenz von 16 bit-Blöcken, die nur Nullen enthaltet, kann durch ein \end_layout \begin_layout Code + 2001:0db8:100:f101:0:0:0:1 -> 2001:0db8:100:f101::1 \end_layout @@ -1753,6 +1779,7 @@ Die höchstmögliche Reduktion sieht man bei der IPv6 Localhost Adresse: \end_layout \begin_layout Code + 0000:0000:0000:0000:0000:0000:0000:0001 -> ::1 \end_layout @@ -1777,10 +1804,12 @@ h ein Aprilscherz. \end_layout \begin_layout Code + # ipv6calc --addr_to_base85 2001:0db8:0100:f101:0210:a4ff:fee3:9566 \end_layout \begin_layout Code + Itu&-ZQ82s>J%s99FJXT \end_layout @@ -1993,6 +2022,7 @@ Dies ist eine spezielle Adresse für das Loopback Interface, vergleichbar \end_layout \begin_layout Code + 0000:0000:0000:0000:0000:0000:0000:0001 \end_layout @@ -2002,6 +2032,7 @@ bzw. \end_layout \begin_layout Code + ::1 \end_layout @@ -2037,6 +2068,7 @@ any \end_layout \begin_layout Code + 0000:0000:0000:0000:0000:0000:0000:0000 \end_layout @@ -2045,6 +2077,7 @@ oder: \end_layout \begin_layout Code + :: \end_layout @@ -2090,6 +2123,7 @@ Diese Adressen sind mit einer speziellen Präfixlänge von 96 definiert (a.b.c.d \end_layout \begin_layout Code + 0:0:0:0:0:ffff:a.b.c.d/96 \end_layout @@ -2098,6 +2132,7 @@ oder in komprimiertem Format: \end_layout \begin_layout Code + ::ffff:a.b.c.d/96 \end_layout @@ -2108,6 +2143,7 @@ Die IPv4 Adresse 1.2.3.4. \end_layout \begin_layout Code + ::ffff:1.2.3.4 \end_layout @@ -2136,6 +2172,7 @@ reference "tunneling-6to4" \end_layout \begin_layout Code + 0:0:0:0:0:0:a.b.c.d/96 \end_layout @@ -2144,6 +2181,7 @@ oder in komprimierter Form: \end_layout \begin_layout Code + ::a.b.c.d/96 \end_layout @@ -2228,18 +2266,22 @@ x \end_layout \begin_layout Code + fe8x: <- zurzeit als einziger in Benutzung \end_layout \begin_layout Code + fe9x: \end_layout \begin_layout Code + feax: \end_layout \begin_layout Code + febx: \end_layout @@ -2279,18 +2321,22 @@ Die Adresse beginnt mit: \end_layout \begin_layout Code + fecx: <- meistens genutzt. \end_layout \begin_layout Code + fedx: \end_layout \begin_layout Code + feex: \end_layout \begin_layout Code + fefx: \end_layout @@ -2378,10 +2424,12 @@ Die Adresse beginnt mit: \end_layout \begin_layout Code + fcxx: \end_layout \begin_layout Code + fdxx: <- zurzeit als einziger in Benutzung \end_layout @@ -2409,6 +2457,7 @@ target "http://www.goebel-consult.de/ipv6/createLULA" \end_layout \begin_layout Code + fd0f:8b72:ac90::/48 \end_layout @@ -2437,10 +2486,12 @@ Die Adresse beginnt mit (x sind hexadezimale Zeichen) \end_layout \begin_layout Code + 2xxx: \end_layout \begin_layout Code + 3xxx: \end_layout @@ -2472,6 +2523,7 @@ Diese globalen Adressen waren die Ersten definierten und auch benutzen Adressen. \end_layout \begin_layout Code + 3ffe: \end_layout @@ -2480,6 +2532,7 @@ Beispiel: \end_layout \begin_layout Code + 3ffe:ffff:100:f102::1 \end_layout @@ -2489,6 +2542,7 @@ Eine spezielle 6bone Test-Adresse, die niemals weltweit einmalig ist, beginnt \end_layout \begin_layout Code + 3ffe:ffff: \end_layout @@ -2547,6 +2601,7 @@ target "http://www.faqs.org/rfcs/rfc2893.html" \end_layout \begin_layout Code + 2002: \end_layout @@ -2556,6 +2611,7 @@ z.B. \end_layout \begin_layout Code + 2002:c0a8:0101:5::1 \end_layout @@ -2564,10 +2620,12 @@ Ein kleines Shell-Kommando kann aus einer IPv4 eine 6to4 Adresse erstellen: \end_layout \begin_layout Code + ipv4="1.2.3.4"; sla="5"; printf "2002:%02x%02x:%02x%02x:%04x::1" `echo $ipv4 \end_layout \begin_layout Code + ¬ | tr "." " "` $sla \end_layout @@ -2601,6 +2659,7 @@ Diese Adressen werden an Internet Service Provider (ISP) delegiert und beginnen \end_layout \begin_layout Code + 2001: \end_layout @@ -2643,10 +2702,12 @@ target "http://www.faqs.org/rfcs/rfc3849.html" \end_layout \begin_layout Code + 3ffe:ffff::/32 \end_layout \begin_layout Code + 2001:0DB8::/32 EXAMPLENET-WF \end_layout @@ -2671,6 +2732,7 @@ Sie beginnen immer mit (xx ist hierbei der Wert der Reichweite) \end_layout \begin_layout Code + ffxy: \end_layout @@ -2766,6 +2828,7 @@ Ein Beispiel für diese Adresse könnte sein: \end_layout \begin_layout Code + ff02::1:ff00:1234 \end_layout @@ -2834,6 +2897,7 @@ Die Subnet-Router Anycast Adresse ist ein einfaches Beispiel für eine Anycast \end_layout \begin_layout Code + 2001:0db8:100:f101:210:a4ff:fee3:9566/64 <- Node's address \end_layout @@ -2843,6 +2907,7 @@ Die Subnet-Router Anycast Adresse wird durch komplette Streichung des Suffixes \end_layout \begin_layout Code + 2001:0db8:100:f101::/64 <- subnet-router anycast address \end_layout @@ -2882,6 +2947,7 @@ Als Beispiel hat hier ein NIC folgende MAC-Adresse (48 bit): \end_layout \begin_layout Code + 00:10:a4:01:23:45 \end_layout @@ -2901,6 +2967,7 @@ target "http://standards.ieee.org/regauth/oui/tutorials/EUI64.html" \end_layout \begin_layout Code + 0210:a4ff:fe01:2345 \end_layout @@ -2912,6 +2979,7 @@ Mit einem gegebenen Präfix wird daraus die schon oben gezeigte IPv6-Adresse: \end_layout \begin_layout Code + 2001:0db8:0100:f101:0210:a4ff:fe01:2345 \end_layout @@ -2969,6 +3037,7 @@ Bei Servern ist es wahrscheinlich leichter, sich einfachere Adressen zu \end_layout \begin_layout Code + 2001:0db8:100:f101::1 \end_layout @@ -3066,6 +3135,7 @@ Ein Beispiel: \end_layout \begin_layout Code + 2001:0db8:100:1:2:3:4:5/48 \end_layout @@ -3079,6 +3149,7 @@ Netzwerk: \end_layout \begin_layout Code + 2001:0db8:0100:0000:0000:0000:0000:0000 \end_layout @@ -3087,6 +3158,7 @@ Netzmaske: \end_layout \begin_layout Code + ffff:ffff:ffff:0000:0000:0000:0000:0000 \end_layout @@ -3106,10 +3178,12 @@ Wenn z.B. \end_layout \begin_layout Code + 2001:0db8:100::/48 :: U 1 0 0 sit1 \end_layout \begin_layout Code + 2000::/3 ::192.88.99.1 UG 1 0 0 tun6to4 \end_layout @@ -3119,10 +3193,12 @@ Die gezeigten Zieladressen der IPv6 Pakete werden über die entsprechenden \end_layout \begin_layout Code + 2001:0db8:100:1:2:3:4:5/48 -> routed through device sit1 \end_layout \begin_layout Code + 2001:0db8:200:1:2:3:4:5/48 -> routed through device tun6to4 \end_layout @@ -3182,6 +3258,7 @@ Um zu überprüfen, ob ihr aktueller Kernel IPv6 unterstützt, sollten sie \end_layout \begin_layout Code + /proc/net/if_inet6 \end_layout @@ -3191,6 +3268,7 @@ Einen kleinen automatischen Test können Sie wie folgt durchführen: \end_layout \begin_layout Code + # test -f /proc/net/if_inet6 && echo "Running kernel is IPv6 ready" \end_layout @@ -3210,6 +3288,7 @@ Mit folgenden Befehl können Sie versuchen, das Modul zu laden: \end_layout \begin_layout Code + # modprobe ipv6 \end_layout @@ -3220,6 +3299,7 @@ Wenn dieser Befehl positiv verläuft, dann sollten Sie das Modul mit folgendem \end_layout \begin_layout Code + # lsmod |grep -w 'ipv6' && echo "IPv6 module successfully loaded" \end_layout @@ -3245,6 +3325,7 @@ Es ist möglich das IPv6 Modul bei Bedarf automatisch zu laden. \end_layout \begin_layout Code + alias net-pf-10 ipv6 # automatically load IPv6 module on demand \end_layout @@ -3254,6 +3335,7 @@ Mit der folgenden Zeile ist es auch möglich, das automatische Laden des \end_layout \begin_layout Code + alias net-pf-10 off # disable automatically load of IPv6 module on demand \end_layout @@ -3511,10 +3593,12 @@ Automatische Überprüfung: \end_layout \begin_layout Code + # /sbin/ifconfig -? 2>& 1|grep -qw 'inet6' && echo "utility 'ifconfig' is \end_layout \begin_layout Code + ¬ IPv6-ready" \end_layout @@ -3528,6 +3612,7 @@ route \end_layout \begin_layout Code + # /sbin/route -? 2>& 1|grep -qw 'inet6' && echo "utility 'route' is IPv6-ready" \end_layout @@ -3546,6 +3631,7 @@ Alexey N.Kuznetsov (gegenwärtig ein Betreuer des Linux Network Codes) erstellte \end_layout \begin_layout Code + # /sbin/ip 2>&1 |grep -qw 'inet6' && echo "utility 'ip' is IPv6-ready" \end_layout @@ -3611,14 +3697,17 @@ Anwendung \end_layout \begin_layout Code + # ping6 \end_layout \begin_layout Code + # ping6 \end_layout \begin_layout Code + # ping6 [-I ] \end_layout @@ -3630,6 +3719,7 @@ Einige Implementierungen unterstützen auch % Definition zusätzlich \end_layout \begin_layout Code + # ping6 % \end_layout @@ -3638,14 +3728,17 @@ Beispiel \end_layout \begin_layout Code + # ping6 -c 1 ::1 \end_layout \begin_layout Code + PING ::1(::1) from ::1 : 56 data bytes \end_layout \begin_layout Code + 64 bytes from ::1: icmp_seq=0 hops=64 time=292 usec \end_layout @@ -3654,14 +3747,17 @@ PING ::1(::1) from ::1 : 56 data bytes \end_layout \begin_layout Code + --- ::1 ping statistics --- \end_layout \begin_layout Code + 1 packets transmitted, 1 packets received, 0% packet loss \end_layout \begin_layout Code + round-trip min/avg/max/mdev = 0.292/0.292/0.292/0.000 ms \end_layout @@ -3694,10 +3790,12 @@ Wenn link-lokale Adressen für ein IPv6 ping verwendet werden, dann hat der \end_layout \begin_layout Code + # ping6 fe80::212:34ff:fe12:3456 \end_layout \begin_layout Code + connect: Invalid argument \end_layout @@ -3706,18 +3804,22 @@ In diesem Fall müssen Sie das Interface zusätzlich spezifizieren: \end_layout \begin_layout Code + # ping6 -I eth0 -c 1 fe80::2e0:18ff:fe90:9205 \end_layout \begin_layout Code + PING fe80::212:23ff:fe12:3456(fe80::212:23ff:fe12:3456) from \end_layout \begin_layout Code + ¬ fe80::212:34ff:fe12:3478 eth0: 56 data bytes \end_layout \begin_layout Code + 64 bytes from fe80::212:23ff:fe12:3456: icmp_seq=0 hops=64 time=445 usec \end_layout @@ -3726,14 +3828,17 @@ PING fe80::212:23ff:fe12:3456(fe80::212:23ff:fe12:3456) from \end_layout \begin_layout Code + --- fe80::2e0:18ff:fe90:9205 ping statistics --- \end_layout \begin_layout Code + 1 packets transmitted, 1 packets received, 0% packet loss round-trip \end_layout \begin_layout Code + ¬ min/avg/max/mdev = 0.445/0.445/0.445/0.000 ms \end_layout @@ -3744,6 +3849,7 @@ Beispiel für % Notation: \end_layout \begin_layout Code + # ping6 -c 1 fe80::2e0:18ff:fe90:9205%eth0 \end_layout @@ -3757,18 +3863,22 @@ Ein interessanter Mechanismus zum Aufspüren eines IPv6 aktiven Hosts am \end_layout \begin_layout Code + # ping6 -I eth0 ff02::1 \end_layout \begin_layout Code + PING ff02::1(ff02::1) from fe80:::2ab:cdff:feef:0123 eth0: 56 data bytes \end_layout \begin_layout Code + 64 bytes from ::1: icmp_seq=1 ttl=64 time=0.104 ms \end_layout \begin_layout Code + 64 bytes from fe80::212:34ff:fe12:3450: icmp_seq=1 ttl=64 time=0.549 ms (DUP!) \end_layout @@ -3780,6 +3890,7 @@ Beispiel für % Notation: \end_layout \begin_layout Code + # ping6 ff02::1%eth0 \end_layout @@ -3807,42 +3918,51 @@ Dieses Programm ist normal im Paket iputils enthalten. \end_layout \begin_layout Code + # traceroute6 www.6bone.net \end_layout \begin_layout Code + traceroute to 6bone.net (3ffe:b00:c18:1::10) from 2001:0db8:0000:f101::2, 30 \end_layout \begin_layout Code + ¬ hops max, 16 byte packets \end_layout \begin_layout Code + 1 localipv6gateway (2001:0db8:0000:f101::1) 1.354 ms 1.566 ms 0.407 ms \end_layout \begin_layout Code + 2 swi6T1-T0.ipv6.switch.ch (3ffe:2000:0:400::1) 90.431 ms 91.956 ms 92.377 ms \end_layout \begin_layout Code + 3 3ffe:2000:0:1::132 (3ffe:2000:0:1::132) 118.945 ms 107.982 ms 114.557 ms \end_layout \begin_layout Code + 4 3ffe:c00:8023:2b::2 (3ffe:c00:8023:2b::2) 968.468 ms 993.392 ms 973.441 ms \end_layout \begin_layout Code + 5 3ffe:2e00:e:c::3 (3ffe:2e00:e:c::3) 507.784 ms 505.549 ms 508.928 ms \end_layout \begin_layout Code + 6 www.6bone.net (3ffe:b00:c18:1::10) 1265.85 ms * 1304.74 ms \end_layout @@ -3882,42 +4002,52 @@ iputils \end_layout \begin_layout Code + # tracepath6 www.6bone.net \end_layout \begin_layout Code + 1?: [LOCALHOST] pmtu 1480 \end_layout \begin_layout Code + 1: 3ffe:401::2c0:33ff:fe02:14 150.705ms \end_layout \begin_layout Code + 2: 3ffe:b00:c18::5 267.864ms \end_layout \begin_layout Code + 3: 3ffe:b00:c18::5 asymm 2 266.145ms pmtu 1280 \end_layout \begin_layout Code + 3: 3ffe:3900:5::2 asymm 4 346.632ms \end_layout \begin_layout Code + 4: 3ffe:28ff:ffff:4::3 asymm 5 365.965ms \end_layout \begin_layout Code + 5: 3ffe:1cff:0:ee::2 asymm 4 534.704ms \end_layout \begin_layout Code + 6: 3ffe:3800::1:1 asymm 4 578.126ms !N \end_layout \begin_layout Code + Resume: pmtu 1280 \end_layout @@ -4010,26 +4140,32 @@ IPv6 ping zur Adresse \end_layout \begin_layout Code + # tcpdump -t -n -i eth0 -s 512 -vv ip6 or proto ipv6 \end_layout \begin_layout Code + tcpdump: listening on eth0 \end_layout \begin_layout Code + 2001:0db8:100:f101:2e0:18ff:fe90:9205 > 2001:0db8:100:f101::1: icmp6: echo \end_layout \begin_layout Code + ¬ request (len 64, hlim 64) \end_layout \begin_layout Code + 2001:0db8:100:f101::1 > 2001:0db8:100:f101:2e0:18ff:fe90:9205: icmp6: echo \end_layout \begin_layout Code + ¬ reply (len 64, hlim 64) \end_layout @@ -4048,42 +4184,52 @@ IPv6 ping zur Adresse \end_layout \begin_layout Code + # tcpdump -t -n -i ppp0 -s 512 -vv ip6 or proto ipv6 \end_layout \begin_layout Code + tcpdump: listening on ppp0 \end_layout \begin_layout Code + 1.2.3.4 > 5.6.7.8: 2002:ffff:f5f8::1 > 2001:0db8:100::1: icmp6: echo request \end_layout \begin_layout Code + ¬ (len 64, hlim 64) (DF) (ttl 64, id 0, len 124) \end_layout \begin_layout Code + 5.6.7.8 > 1.2.3.4: 2001:0db8:100::1 > 2002:ffff:f5f8::1: icmp6: echo reply (len \end_layout \begin_layout Code + ¬ 64, hlim 61) (ttl 23, id 29887, len 124) \end_layout \begin_layout Code + 1.2.3.4 > 5.6.7.8: 2002:ffff:f5f8::1 > 2001:0db8:100::1: icmp6: echo request \end_layout \begin_layout Code + ¬ (len 64, hlim 64) (DF) (ttl 64, id 0, len 124) \end_layout \begin_layout Code + 5.6.7.8 > 1.2.3.4: 2001:0db8:100::1 > 2002:ffff:f5f8::1: icmp6: echo reply (len \end_layout \begin_layout Code + ¬ 64, hlim 61) (ttl 23, id 29919, len 124) \end_layout @@ -4169,6 +4315,7 @@ Jeder DNS-Server (Domain Name System) sollte aufgrund der Sicherheitsupdates \end_layout \begin_layout Code + # host -t AAAA www.join.uni-muenster.de \end_layout @@ -4177,17 +4324,20 @@ Die Ausgabe des Tests sollte etwa wie folgt sein: \end_layout \begin_layout Code + www.join.uni-muenster.de. is an alias for tolot.join.uni-muenster.de. \end_layout \begin_layout Code + tolot.join.uni-muenster.de. has AAAA address \end_layout \begin_layout Code + ¬ 2001:638:500:101:2e0:81ff:fe24:37c6 \end_layout @@ -4201,25 +4351,30 @@ IPv6 kompatible Clients sind verfügbar. \end_layout \begin_layout Code + $ telnet 3ffe:400:100::1 80 \end_layout \begin_layout Code + Trying 3ffe:400:100::1... \end_layout \begin_layout Code + Connected to 3ffe:400:100::1. \end_layout \begin_layout Code + Escape character is '^]'. \end_layout \begin_layout Code + HEAD / HTTP/1.0 \end_layout @@ -4228,38 +4383,47 @@ HEAD / HTTP/1.0 \end_layout \begin_layout Code + HTTP/1.1 200 OK \end_layout \begin_layout Code + Date: Sun, 16 Dec 2001 16:07:21 \end_layout \begin_layout Code + GMT Server: Apache/2.0.28 (Unix) \end_layout \begin_layout Code + Last-Modified: Wed, 01 Aug 2001 21:34:42 GMT \end_layout \begin_layout Code + ETag: "3f02-a4d-b1b3e080" \end_layout \begin_layout Code + Accept-Ranges: bytes \end_layout \begin_layout Code + Content-Length: 2637 \end_layout \begin_layout Code + Connection: close \end_layout \begin_layout Code + Content-Type: text/html; charset=ISO-8859-1 \end_layout @@ -4268,6 +4432,7 @@ Content-Type: text/html; charset=ISO-8859-1 \end_layout \begin_layout Code + Connection closed by foreign host. \end_layout @@ -4309,14 +4474,17 @@ he Verhaltensweisen: \end_layout \begin_layout Code + $ ssh -6 ::1 \end_layout \begin_layout Code + user@::1's password: ****** \end_layout \begin_layout Code + [user@ipv6host user]$ \end_layout @@ -4866,10 +5034,12 @@ Gebrauch: \end_layout \begin_layout Code + # ip link set dev up \end_layout \begin_layout Code + # ip link set dev down \end_layout @@ -4882,10 +5052,12 @@ Beispiel: \end_layout \begin_layout Code + # ip link set dev eth0 up \end_layout \begin_layout Code + # ip link set dev eth0 down \end_layout @@ -4899,10 +5071,12 @@ Gebrauch: \end_layout \begin_layout Code + # /sbin/ifconfig up \end_layout \begin_layout Code + # /sbin/ifconfig down \end_layout @@ -4911,10 +5085,12 @@ Beispiel: \end_layout \begin_layout Code + # /sbin/ifconfig eth0 up \end_layout \begin_layout Code + # /sbin/ifconfig eth0 down \end_layout @@ -4969,6 +5145,7 @@ Anwendung: \end_layout \begin_layout Code + # /sbin/ip -6 addr show dev \end_layout @@ -4977,22 +5154,27 @@ Beispiel für einen statisch konfigurierten Host: \end_layout \begin_layout Code + # /sbin/ip -6 addr show dev eth0 \end_layout \begin_layout Code + 2: eth0: \end_layout @@ -5070,18 +5261,22 @@ en (die Ausgabe wurde mit grep gefiltert) \end_layout \begin_layout Code + # /sbin/ifconfig eth0 |grep "inet6 addr:" \end_layout \begin_layout Code + inet6 addr: fe80::210:a4ff:fee3:9566/10 Scope:Link \end_layout \begin_layout Code + inet6 addr: 2001:0db8:0:f101::1/64 Scope:Global \end_layout \begin_layout Code + inet6 addr: fec0:0:0:f101::1/64 Scope:Site \end_layout @@ -5104,6 +5299,7 @@ Anwendung: \end_layout \begin_layout Code + # /sbin/ip -6 addr add / dev \end_layout @@ -5112,6 +5308,7 @@ Beispiel: \end_layout \begin_layout Code + # /sbin/ip -6 addr add 2001:0db8:0:f101::1/64 dev eth0 \end_layout @@ -5125,6 +5322,7 @@ Anwendung: \end_layout \begin_layout Code + # /sbin/ifconfig inet6 add / \end_layout @@ -5133,6 +5331,7 @@ Beispiel: \end_layout \begin_layout Code + # /sbin/ifconfig eth0 inet6 add 2001:0db8:0:f101::1/64 \end_layout @@ -5156,6 +5355,7 @@ Anwendung: \end_layout \begin_layout Code + # /sbin/ip -6 addr del / dev \end_layout @@ -5164,6 +5364,7 @@ Beispiel: \end_layout \begin_layout Code + # /sbin/ip -6 addr del 2001:0db8:0:f101::1/64 dev eth0 \end_layout @@ -5177,6 +5378,7 @@ Anwendung: \end_layout \begin_layout Code + # /sbin/ifconfig inet6 del / \end_layout @@ -5185,6 +5387,7 @@ Beispiel: \end_layout \begin_layout Code + # /sbin/ifconfig eth0 inet6 del 2001:0db8:0:f101::1/64 \end_layout @@ -5238,6 +5441,7 @@ Anwendung: \end_layout \begin_layout Code + # /sbin/ip -6 route show [dev ] \end_layout @@ -5247,22 +5451,27 @@ Beispiel: \end_layout \begin_layout Code + # /sbin/ip -6 route show dev eth0 \end_layout \begin_layout Code + 2001:0db8:0:f101::/64 proto kernel metric 256 mtu 1500 advmss 1440 \end_layout \begin_layout Code + fe80::/10 proto kernel metric 256 mtu 1500 advmss 1440 \end_layout \begin_layout Code + ff00::/8 proto kernel metric 256 mtu 1500 advmss 1440 \end_layout \begin_layout Code + default proto kernel metric 256 mtu 1500 advmss 1440 \end_layout @@ -5276,6 +5485,7 @@ Anwendung: \end_layout \begin_layout Code + # /sbin/route -A inet6 \end_layout @@ -5286,34 +5496,42 @@ Sie sehen hier mehrere IPv6 Routen mit unterschiedlichen Adressen eines \end_layout \begin_layout Code + # /sbin/route -A inet6 |grep -w "eth0" \end_layout \begin_layout Code + 2001:0db8:0:f101 ::/64 :: UA 256 0 0 eth0 <- Interface route for global \end_layout \begin_layout Code + ¬ address \end_layout \begin_layout Code + fe80::/10 :: UA 256 0 0 eth0 <- Interface route for link-local \end_layout \begin_layout Code + ¬ address \end_layout \begin_layout Code + ff00::/8 :: UA 256 0 0 eth0 <- Interface route for all multicast \end_layout \begin_layout Code + ¬ addresses \end_layout \begin_layout Code + ::/0 :: UDA 256 0 0 eth0 <- Automatic default route \end_layout @@ -5336,10 +5554,12 @@ Anwendung: \end_layout \begin_layout Code + # /sbin/ip -6 route add / via \end_layout \begin_layout Code + ¬ [dev ] \end_layout @@ -5348,6 +5568,7 @@ Beispiel: \end_layout \begin_layout Code + # /sbin/ip -6 route add default via 2001:0db8:0:f101::1 \end_layout @@ -5361,10 +5582,12 @@ Anwendung: \end_layout \begin_layout Code + # /sbin/route -A inet6 add / gw \end_layout \begin_layout Code + ¬ [dev ] \end_layout @@ -5383,6 +5606,7 @@ Im folgenden Beispiel wird eine Route für alle Adressen (default) über das \end_layout \begin_layout Code + # /sbin/route -A inet6 add default gw 2001:0db8:0:f101::1 \end_layout @@ -5407,10 +5631,12 @@ Anwendung: \end_layout \begin_layout Code + # /sbin/ip -6 route del / via \end_layout \begin_layout Code + ¬ [dev ] \end_layout @@ -5419,6 +5645,7 @@ Beispiel: \end_layout \begin_layout Code + # /sbin/ip -6 route del default via 2001:0db8:0:f101::1 \end_layout @@ -5432,11 +5659,13 @@ Anwendung: \end_layout \begin_layout Code + # /sbin/route -A inet6 del / gw [dev \end_layout \begin_layout Code + ¬ ] \end_layout @@ -5445,6 +5674,7 @@ Beispiel zum entfernen der im obigen Beispiel hinzugefügten Route: \end_layout \begin_layout Code + # /sbin/route -A inet6 del default gw 2001:0db8:0:f101::1 \end_layout @@ -5468,10 +5698,12 @@ Anwendung: \end_layout \begin_layout Code + # /sbin/ip -6 route add / dev \end_layout \begin_layout Code + ¬ metric 1 \end_layout @@ -5480,6 +5712,7 @@ Beispiel: \end_layout \begin_layout Code + # /sbin/ip -6 route add default dev eth0 metric 1 \end_layout @@ -5522,6 +5755,7 @@ Anwendung: \end_layout \begin_layout Code + # /sbin/route -A inet6 add / dev \end_layout @@ -5530,6 +5764,7 @@ Beispiel: \end_layout \begin_layout Code + # /sbin/route -A inet6 add default dev eth0 \end_layout @@ -5552,6 +5787,7 @@ Anwendung: \end_layout \begin_layout Code + # /sbin/ip -6 route del / dev \end_layout @@ -5560,6 +5796,7 @@ Beispiel: \end_layout \begin_layout Code + # /sbin/ip -6 route del default dev eth0 \end_layout @@ -5573,6 +5810,7 @@ Anwendung: \end_layout \begin_layout Code + # /sbin/route -A inet6 del / dev \end_layout @@ -5582,6 +5820,7 @@ Beispiel: \end_layout \begin_layout Code + # /sbin/route -A inet6 del default dev eth0 \end_layout @@ -5621,14 +5860,17 @@ Ein client kann eine Default Route (z.B. \end_layout \begin_layout Code + # ip -6 route show | grep ^default \end_layout \begin_layout Code + default via fe80::212:34ff:fe12:3450 dev eth0 proto kernel metric 1024 expires \end_layout \begin_layout Code + ¬ 29sec mtu 1500 advmss 1440 \end_layout @@ -5725,6 +5967,7 @@ Mit dem folgenden Befehl können Sie die gelernten oder konfigurierten IPv6 \end_layout \begin_layout Code + # ip -6 neigh show [dev ] \end_layout @@ -5733,10 +5976,12 @@ Das folgende Beispiel zeigt einen Nachbar, einen erreichbaren Router: \end_layout \begin_layout Code + # ip -6 neigh show \end_layout \begin_layout Code + fe80::201:23ff:fe45:6789 dev eth0 lladdr 00:01:23:45:67:89 router nud reachable \end_layout @@ -5761,6 +6006,7 @@ Mit folgendem Befehl können Sie einen Eintrag manuell hinzufügen: \end_layout \begin_layout Code + # ip -6 neigh add lladdr dev \end_layout @@ -5769,6 +6015,7 @@ Beispiel: \end_layout \begin_layout Code + # ip -6 neigh add fec0::1 lladdr 02:01:02:03:04:05 dev eth0 \end_layout @@ -5781,6 +6028,7 @@ Sie können einen Eintrag auch löschen: \end_layout \begin_layout Code + # ip -6 neigh del lladdr dev \end_layout @@ -5789,6 +6037,7 @@ Beispiel: \end_layout \begin_layout Code + # ip -6 neigh del fec0::1 lladdr 02:01:02:03:04:05 dev eth0 \end_layout @@ -5818,23 +6067,28 @@ help \end_layout \begin_layout Code + # ip -6 neigh help \end_layout \begin_layout Code + Usage: ip neigh { add | del | change | replace } { ADDR [ lladdr LLADDR ] \end_layout \begin_layout Code + [ nud { permanent | noarp | stale | reachable } ] \end_layout \begin_layout Code + | proxy ADDR } [ dev DEV ] \end_layout \begin_layout Code + ip neigh {show|flush} [ to PREFIX ] [ dev DEV ] [ nud STATE ] \end_layout @@ -6040,22 +6294,27 @@ target "http://www.faqs.org/rfcs/rfc3056.html" \end_layout \begin_layout Code + | 3+13 | 32 | 16 | 64 bits | \end_layout \begin_layout Code + +---+------+-----------+--------+--------------------------------+ \end_layout \begin_layout Code + | FP+TLA | V4ADDR | SLA ID | Interface ID | \end_layout \begin_layout Code + | 0x2002 | | | | \end_layout \begin_layout Code + +---+------+-----------+--------+--------------------------------+ \end_layout @@ -6287,6 +6546,7 @@ Anwendung: \end_layout \begin_layout Code + # /sbin/ip -6 tunnel show [] \end_layout @@ -6295,14 +6555,17 @@ Beispiel: \end_layout \begin_layout Code + # /sbin/ip -6 tunnel show \end_layout \begin_layout Code + sit0: ipv6/ip remote any local any ttl 64 nopmtudisc \end_layout \begin_layout Code + sit1: ipv6/ip remote 195.226.187.50 local any ttl 64 \end_layout @@ -6315,6 +6578,7 @@ Anwendung: \end_layout \begin_layout Code + # /sbin/route -A inet6 \end_layout @@ -6324,6 +6588,7 @@ Beispiel (Ausgabe wurde derart gefiltert, dass nur Tunnels über das virtuelle \end_layout \begin_layout Code + # /sbin/route -A inet6 | grep " \backslash Wsit0 @@ -6332,22 +6597,27 @@ W*$" \end_layout \begin_layout Code + ::/96 :: U 256 2 0 sit0 \end_layout \begin_layout Code + 2002::/16 :: UA 256 0 0 sit0 \end_layout \begin_layout Code + 2000::/3 ::193.113.58.75 UG 1 0 0 sit0 \end_layout \begin_layout Code + fe80::/10 :: UA 256 0 0 sit0 \end_layout \begin_layout Code + ff00::/8 :: UA 256 0 0 sit0 \end_layout @@ -6425,10 +6695,12 @@ ert 0 ist): \end_layout \begin_layout Code + # /sbin/ip tunnel add mode sit ttl remote \end_layout \begin_layout Code + ¬ local \end_layout @@ -6437,18 +6709,22 @@ Anwendung (drei allgemeine Beispiele): \end_layout \begin_layout Code + # /sbin/ip tunnel add sit1 mode sit ttl remote \end_layout \begin_layout Code + ¬ local \end_layout \begin_layout Code + # /sbin/ip link set dev sit1 up \end_layout \begin_layout Code + # /sbin/ip -6 route add dev sit1 metric 1 \end_layout @@ -6457,18 +6733,22 @@ Anwendung (drei allgemeine Beispiele): \end_layout \begin_layout Code + # /sbin/ip tunnel add sit2 mode sit ttl \end_layout \begin_layout Code + ¬ local \end_layout \begin_layout Code + # /sbin/ip link set dev sit2 up \end_layout \begin_layout Code + # /sbin/ip -6 route add dev sit2 metric 1 \end_layout @@ -6477,18 +6757,22 @@ Anwendung (drei allgemeine Beispiele): \end_layout \begin_layout Code + # /sbin/ip tunnel add sit3 mode sit ttl \end_layout \begin_layout Code + ¬ local \end_layout \begin_layout Code + # /sbin/ip link set dev sit3 up \end_layout \begin_layout Code + # /sbin/ip -6 route add dev sit3 metric 1 \end_layout @@ -6511,6 +6795,7 @@ Anwendung (drei allgemeine Beispiele): \end_layout \begin_layout Code + # /sbin/ifconfig sit0 up \end_layout @@ -6519,14 +6804,17 @@ Anwendung (drei allgemeine Beispiele): \end_layout \begin_layout Code + # /sbin/ifconfig sit0 tunnel \end_layout \begin_layout Code + # /sbin/ifconfig sit1 up \end_layout \begin_layout Code + # /sbin/route -A inet6 add dev sit1 \end_layout @@ -6535,14 +6823,17 @@ Anwendung (drei allgemeine Beispiele): \end_layout \begin_layout Code + # /sbin/ifconfig sit0 tunnel \end_layout \begin_layout Code + # /sbin/ifconfig sit2 up \end_layout \begin_layout Code + # /sbin/route -A inet6 add dev sit2 \end_layout @@ -6551,14 +6842,17 @@ Anwendung (drei allgemeine Beispiele): \end_layout \begin_layout Code + # /sbin/ifconfig sit0 tunnel \end_layout \begin_layout Code + # /sbin/ifconfig sit3 up \end_layout \begin_layout Code + # /sbin/route -A inet6 add dev sit3 \end_layout @@ -6587,6 +6881,7 @@ Anwendung (drei allgemeine Beispiele): \end_layout \begin_layout Code + # /sbin/ifconfig sit0 up \end_layout @@ -6595,26 +6890,32 @@ Anwendung (drei allgemeine Beispiele): \end_layout \begin_layout Code + # /sbin/route -A inet6 add gw \end_layout \begin_layout Code + ¬ :: dev sit0 \end_layout \begin_layout Code + # /sbin/route -A inet6 add gw \end_layout \begin_layout Code + ¬ :: dev sit0 \end_layout \begin_layout Code + # /sbin/route -A inet6 add gw \end_layout \begin_layout Code + ¬ :: dev sit0 \end_layout @@ -6644,6 +6945,7 @@ Entfernen eines Tunnel-Devices: \end_layout \begin_layout Code + # /sbin/ip tunnel del \end_layout @@ -6652,14 +6954,17 @@ Anwendung (drei allgemeine Beispiele): \end_layout \begin_layout Code + # /sbin/ip -6 route del dev sit1 \end_layout \begin_layout Code + # /sbin/ip link set sit1 down \end_layout \begin_layout Code + # /sbin/ip tunnel del sit1 \end_layout @@ -6668,14 +6973,17 @@ Anwendung (drei allgemeine Beispiele): \end_layout \begin_layout Code + # /sbin/ip -6 route del dev sit2 \end_layout \begin_layout Code + # /sbin/ip link set sit2 down \end_layout \begin_layout Code + # /sbin/ip tunnel del sit2 \end_layout @@ -6684,14 +6992,17 @@ Anwendung (drei allgemeine Beispiele): \end_layout \begin_layout Code + # /sbin/ip -6 route del dev sit3 \end_layout \begin_layout Code + # /sbin/ip link set sit3 down \end_layout \begin_layout Code + # /sbin/ip tunnel del sit3 \end_layout @@ -6712,10 +7023,12 @@ Anwendung (drei allgemeine Beispiele): \end_layout \begin_layout Code + # /sbin/route -A inet6 del dev sit3 \end_layout \begin_layout Code + # /sbin/ifconfig sit3 down \end_layout @@ -6724,10 +7037,12 @@ Anwendung (drei allgemeine Beispiele): \end_layout \begin_layout Code + # /sbin/route -A inet6 del dev sit2 \end_layout \begin_layout Code + # /sbin/ifconfig sit2 down \end_layout @@ -6736,10 +7051,12 @@ Anwendung (drei allgemeine Beispiele): \end_layout \begin_layout Code + # /sbin/route -A inet6 add dev sit1 \end_layout \begin_layout Code + # /sbin/ifconfig sit1 down \end_layout @@ -6748,6 +7065,7 @@ Anwendung (drei allgemeine Beispiele): \end_layout \begin_layout Code + # /sbin/ifconfig sit0 down \end_layout @@ -6769,26 +7087,32 @@ Anwendung (drei allgemeine Beispiele): \end_layout \begin_layout Code + # /sbin/route -A inet6 del gw \end_layout \begin_layout Code + ¬ :: dev sit0 \end_layout \begin_layout Code + # /sbin/route -A inet6 del gw \end_layout \begin_layout Code + ¬ :: dev sit0 \end_layout \begin_layout Code + # /sbin/route -A inet6 del gw \end_layout \begin_layout Code + ¬ :: dev sit0 \end_layout @@ -6797,6 +7121,7 @@ Anwendung (drei allgemeine Beispiele): \end_layout \begin_layout Code + # /sbin/ifconfig sit0 down \end_layout @@ -6857,6 +7182,7 @@ Angenommen, Ihre IPv4 Adresse ist: \end_layout \begin_layout Code + 1.2.3.4 \end_layout @@ -6865,6 +7191,7 @@ Dann ist das daraus resultierende 6to4 Präfix: \end_layout \begin_layout Code + 2002:0102:0304:: \end_layout @@ -6883,6 +7210,7 @@ pe Suffix kann benutzt werden) das Suffix \end_layout \begin_layout Code + 2002:0102:0304::1 \end_layout @@ -6891,6 +7219,7 @@ Zum automatischen Erstellen der Adresse können Sie folgenden Befehl nutzen: \end_layout \begin_layout Code + ipv4="1.2.3.4"; printf "2002:%02x%02x:%02x%02x::1" `echo $ipv4 | tr "." " "` \end_layout @@ -6912,10 +7241,12 @@ Erstellen eines neues Tunnel-Device: \end_layout \begin_layout Code + # /sbin/ip tunnel add tun6to4 mode sit ttl remote any local \end_layout \begin_layout Code + ¬ \end_layout @@ -6924,6 +7255,7 @@ Interface aktivieren: \end_layout \begin_layout Code + # /sbin/ip link set dev tun6to4 up \end_layout @@ -6933,6 +7265,7 @@ Eine lokale 6to4 Adresse am Interface hinzufügen (Hinweis: Präfix-Länge \end_layout \begin_layout Code + # /sbin/ip -6 addr add /16 dev tun6to4 \end_layout @@ -6942,6 +7275,7 @@ Hinzufügen der (Standard-) Route zum globalen IPv6 Netz unter Verwendung \end_layout \begin_layout Code + # /sbin/ip -6 route add default via ::192.88.99.1 dev tun6to4 metric 1 \end_layout @@ -6962,6 +7296,7 @@ ip \end_layout \begin_layout Code + # /sbin/ip -6 route add default via 2002:c058:6301::1 dev tun6to4 metric 1 \end_layout @@ -6981,6 +7316,7 @@ Das allgemeine Tunnel Interface sit0 aktivieren: \end_layout \begin_layout Code + # /sbin/ifconfig sit0 up \end_layout @@ -6989,6 +7325,7 @@ Dem Interface eine lokale 6to4 Adresse hinzufügen: \end_layout \begin_layout Code + # /sbin/ifconfig sit0 add /16 \end_layout @@ -6998,6 +7335,7 @@ Hinzufügen der (Standard-) Route zum globalen IPv6 Netz unter Verwendung \end_layout \begin_layout Code + # /sbin/route -A inet6 add default gw ::192.88.99.1 dev sit0 \end_layout @@ -7014,6 +7352,7 @@ Entfernen aller Routen über dieses bestimmten Tunnel Devices: \end_layout \begin_layout Code + # /sbin/ip -6 route flush dev tun6to4 \end_layout @@ -7022,6 +7361,7 @@ Interface deaktivieren: \end_layout \begin_layout Code + # /sbin/ip link set dev tun6to4 down \end_layout @@ -7030,6 +7370,7 @@ Ein erstelltes Tunnel Device entfernen: \end_layout \begin_layout Code + # /sbin/ip tunnel del tun6to4 \end_layout @@ -7043,6 +7384,7 @@ Entfernen der (Standard-) Route über ein 6to4 Tunnel Device: \end_layout \begin_layout Code + # /sbin/route -A inet6 del default gw ::192.88.99.1 dev sit0 \end_layout @@ -7051,6 +7393,7 @@ Eine 6to4 Adresse des Interfaces entfernen: \end_layout \begin_layout Code + # /sbin/ifconfig sit0 del /16 \end_layout @@ -7060,6 +7403,7 @@ Ein allgemeines Tunnel Device deaktivieren (aber Achtung, eventuell ist \end_layout \begin_layout Code + # /sbin/ifconfig sit0 down \end_layout @@ -7107,6 +7451,7 @@ Anwendung: \end_layout \begin_layout Code + # /sbin/ip -6 tunnel show [] \end_layout @@ -7117,15 +7462,18 @@ Beispiel: \end_layout \begin_layout Code + # /sbin/ip -6 tunnel show mode any \end_layout \begin_layout Code + ip6tnl0: ipv6/ipv6 remote :: local :: encaplimit 0 hoplimit 0 tclass 0x00 flowlabel 0x00000 (flowinfo 0x00000000) \end_layout \begin_layout Code + ip6tnl1: ip/ipv6 remote fd00:0:0:2::a local fd00:0:0:2::1 dev eth1 encaplimit 4 hoplimit 64 tclass 0x00 flowlabel 0x00000 (flowinfo 0x00000000) \end_layout @@ -7151,6 +7499,7 @@ Anwendung für die Erzeugung einer 4over6 Tunnel-Schnittstelle (welche danach \end_layout \begin_layout Code + # /sbin/ip tunnel add mode ip4ip6 remote local \end_layout @@ -7162,15 +7511,18 @@ Anwendung (allgemeines Beispiel für drei Tunnels): \end_layout \begin_layout Code + # /sbin/ip -6 tunnel add ip6tnl1 mode ip4ip6 remote local \end_layout \begin_layout Code + # /sbin/ip link set dev ip6tnl1 up \end_layout \begin_layout Code + # /sbin/ip -6 route add dev ip6tnl1 metric 1 \end_layout @@ -7179,15 +7531,18 @@ Anwendung (allgemeines Beispiel für drei Tunnels): \end_layout \begin_layout Code + # /sbin/ip -6 tunnel add ip6tnl2 mode ip4ip6 remote local \end_layout \begin_layout Code + # /sbin/ip link set dev ip6tnl2 up \end_layout \begin_layout Code + # /sbin/ip -6 route add dev ip6tnl2 metric 1 \end_layout @@ -7196,15 +7551,18 @@ Anwendung (allgemeines Beispiel für drei Tunnels): \end_layout \begin_layout Code + # /sbin/ip -6 tunnel add ip6tnl3 mode ip4ip6 remote local \end_layout \begin_layout Code + # /sbin/ip link set dev ip6tnl3 up \end_layout \begin_layout Code + # /sbin/ip -6 route add dev ip6tnl3 metric 1 \end_layout @@ -7221,6 +7579,7 @@ Anwendung für das Löschen einer Tunnel-Schnittstelle: \end_layout \begin_layout Code + # /sbin/ip -6 tunnel del \end_layout @@ -7231,14 +7590,17 @@ Anwendung (allgemeines Beispiel für drei Tunnels): \end_layout \begin_layout Code + # /sbin/ip -6 route del dev ip6tnl1 \end_layout \begin_layout Code + # /sbin/ip link set ip6tnl1 down \end_layout \begin_layout Code + # /sbin/ip -6 tunnel del ip6tnl1 \end_layout @@ -7247,14 +7609,17 @@ Anwendung (allgemeines Beispiel für drei Tunnels): \end_layout \begin_layout Code + # /sbin/ip -6 route del dev ip6tnl2 \end_layout \begin_layout Code + # /sbin/ip link set ip6tnl2 down \end_layout \begin_layout Code + # /sbin/ip -6 tunnel del ip6tnl2 \end_layout @@ -7263,14 +7628,17 @@ Anwendung (allgemeines Beispiel für drei Tunnels): \end_layout \begin_layout Code + # /sbin/ip -6 route del dev ip6tnl3 \end_layout \begin_layout Code + # /sbin/ip link set ip6tnl3 down \end_layout \begin_layout Code + # /sbin/ip -6 tunnel del ip6tnl3 \end_layout @@ -7350,6 +7718,7 @@ Das /proc-Dateisystem muss im Kernel aktiviert sein. \end_layout \begin_layout Code + CONFIG_PROC_FS=y \end_layout @@ -7359,10 +7728,12 @@ Das /proc-Dateisystem muss zuerst gemountet sein. \end_layout \begin_layout Code + # mount | grep "type proc" \end_layout \begin_layout Code + none on /proc type proc (rw) \end_layout @@ -7394,10 +7765,12 @@ cat \end_layout \begin_layout Code + # cat /proc/sys/net/ipv6/conf/all/forwarding \end_layout \begin_layout Code + 0 \end_layout @@ -7419,6 +7792,7 @@ echo \end_layout \begin_layout Code + # echo "1" >/proc/sys/net/ipv6/conf/all/forwarding \end_layout @@ -7467,6 +7841,7 @@ Das sysctl-Interface muss im Kernel aktiviert sein. \end_layout \begin_layout Code + CONFIG_SYSCTL=y \end_layout @@ -7479,10 +7854,12 @@ Der Wert eines Eintrags kann nun angezeigt werden: \end_layout \begin_layout Code + # sysctl net.ipv6.conf.all.forwarding \end_layout \begin_layout Code + net.ipv6.conf.all.forwarding = 0 \end_layout @@ -7496,10 +7873,12 @@ Ein neuer Wert kann wie folgt zugewiesen werden (wenn der Eintrag beschreibbar \end_layout \begin_layout Code + # sysctl -w net.ipv6.conf.all.forwarding=1 \end_layout \begin_layout Code + net.ipv6.conf.all.forwarding = 1 \end_layout @@ -7519,10 +7898,12 @@ Anmerkung: Verwenden Sie beim setzen eines Wertes keine Leerzeichen vor \end_layout \begin_layout Code + # sysctl -w net.ipv4.ip_local_port_range="32768 61000" \end_layout \begin_layout Code + net.ipv4.ip_local_port_range = 32768 61000 \end_layout @@ -8005,10 +8386,12 @@ target "http://www.zebra.org/" \end_layout \begin_layout Code + ZEBRA: netlink-listen error: No buffer space available, type=RTM_NEWROUTE(24), \end_layout \begin_layout Code + ¬ seq=426, pid=0 \end_layout @@ -8484,22 +8867,27 @@ net/ipv6/addrconf.c \end_layout \begin_layout Code + # cat /proc/net/if_inet6 \end_layout \begin_layout Code + 00000000000000000000000000000001 01 80 10 80 lo \end_layout \begin_layout Code + +------------------------------+ ++ ++ ++ ++ ++ \end_layout \begin_layout Code + | | | | | | \end_layout \begin_layout Code + 1 2 3 4 5 6 \end_layout @@ -8593,22 +8981,27 @@ net/ipv6/route.c \end_layout \begin_layout Code + # cat /proc/net/ipv6_route \end_layout \begin_layout Code + 00000000000000000000000000000000 00 00000000000000000000000000000000 00 \end_layout \begin_layout Code + +------------------------------+ ++ +------------------------------+ ++ \end_layout \begin_layout Code + | | | | \end_layout \begin_layout Code + 1 2 3 4 \end_layout @@ -8617,18 +9010,22 @@ net/ipv6/route.c \end_layout \begin_layout Code + ¬ 00000000000000000000000000000000 ffffffff 00000001 00000001 00200200 lo \end_layout \begin_layout Code + ¬ +------------------------------+ +------+ +------+ +------+ +------+ ++ \end_layout \begin_layout Code + ¬ | | | | | | \end_layout \begin_layout Code + ¬ 5 6 7 8 9 10 \end_layout @@ -8688,22 +9085,27 @@ Statistiken über verwendete IPv6 Sockets. \end_layout \begin_layout Code + # cat /proc/net/sockstat6 \end_layout \begin_layout Code + TCP6: inuse 7 \end_layout \begin_layout Code + UDP6: inuse 2 \end_layout \begin_layout Code + RAW6: inuse 1 \end_layout \begin_layout Code + FRAG6: inuse 0 memory 0 \end_layout @@ -8897,307 +9299,375 @@ Beispiel: \end_layout \begin_layout Code + # netstat -nlptu \end_layout \begin_layout Code + Active Internet connections (only servers) \end_layout \begin_layout Code + Proto Recv-Q Send-Q Local Address Foreign Address State \end_layout \begin_layout Code + ¬ PID/Program name \end_layout \begin_layout Code + tcp 0 0 0.0.0.0:32768 0.0.0.0:* LISTEN \end_layout \begin_layout Code + ¬ 1258/rpc.statd \end_layout \begin_layout Code + tcp 0 0 0.0.0.0:32769 0.0.0.0:* LISTEN \end_layout \begin_layout Code + ¬ 1502/rpc.mountd \end_layout \begin_layout Code + tcp 0 0 0.0.0.0:515 0.0.0.0:* LISTEN \end_layout \begin_layout Code + ¬ 22433/lpd Waiting \end_layout \begin_layout Code + tcp 0 0 1.2.3.1:139 0.0.0.0:* LISTEN \end_layout \begin_layout Code + ¬ 1746/smbd \end_layout \begin_layout Code + tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN \end_layout \begin_layout Code + ¬ 1230/portmap \end_layout \begin_layout Code + tcp 0 0 0.0.0.0:6000 0.0.0.0:* LISTEN \end_layout \begin_layout Code + ¬ 3551/X \end_layout \begin_layout Code + tcp 0 0 1.2.3.1:8081 0.0.0.0:* LISTEN \end_layout \begin_layout Code + ¬ 18735/junkbuster \end_layout \begin_layout Code + tcp 0 0 1.2.3.1:3128 0.0.0.0:* LISTEN \end_layout \begin_layout Code + ¬ 18822/(squid) \end_layout \begin_layout Code + tcp 0 0 127.0.0.1:953 0.0.0.0:* LISTEN \end_layout \begin_layout Code + ¬ 30734/named \end_layout \begin_layout Code + tcp 0 0 ::ffff:1.2.3.1:993 :::* LISTEN \end_layout \begin_layout Code + ¬ 6742/xinetd-ipv6 \end_layout \begin_layout Code + tcp 0 0 :::13 :::* LISTEN \end_layout \begin_layout Code + ¬ 6742/xinetd-ipv6 \end_layout \begin_layout Code + tcp 0 0 ::ffff:1.2.3.1:143 :::* LISTEN \end_layout \begin_layout Code + ¬ 6742/xinetd-ipv6 \end_layout \begin_layout Code + tcp 0 0 :::53 :::* LISTEN \end_layout \begin_layout Code + ¬ 30734/named \end_layout \begin_layout Code + tcp 0 0 :::22 :::* LISTEN \end_layout \begin_layout Code + ¬ 1410/sshd \end_layout \begin_layout Code + tcp 0 0 :::6010 :::* LISTEN \end_layout \begin_layout Code + ¬ 13237/sshd \end_layout \begin_layout Code + udp 0 0 0.0.0.0:32768 0.0.0.0:* \end_layout \begin_layout Code + ¬ 1258/rpc.statd \end_layout \begin_layout Code + udp 0 0 0.0.0.0:2049 0.0.0.0:* \end_layout \begin_layout Code + ¬ - \end_layout \begin_layout Code + udp 0 0 0.0.0.0:32770 0.0.0.0:* \end_layout \begin_layout Code + ¬ 1502/rpc.mountd \end_layout \begin_layout Code + udp 0 0 0.0.0.0:32771 0.0.0.0:* \end_layout \begin_layout Code + ¬ - \end_layout \begin_layout Code + udp 0 0 1.2.3.1:137 0.0.0.0:* \end_layout \begin_layout Code + ¬ 1751/nmbd \end_layout \begin_layout Code + udp 0 0 0.0.0.0:137 0.0.0.0:* \end_layout \begin_layout Code + ¬ 1751/nmbd \end_layout \begin_layout Code + udp 0 0 1.2.3.1:138 0.0.0.0:* \end_layout \begin_layout Code + ¬ 1751/nmbd \end_layout \begin_layout Code + udp 0 0 0.0.0.0:138 0.0.0.0:* \end_layout \begin_layout Code + ¬ 1751/nmbd \end_layout \begin_layout Code + udp 0 0 0.0.0.0:33044 0.0.0.0:* \end_layout \begin_layout Code + ¬ 30734/named \end_layout \begin_layout Code + udp 0 0 1.2.3.1:53 0.0.0.0:* \end_layout \begin_layout Code + ¬ 30734/named \end_layout \begin_layout Code + udp 0 0 127.0.0.1:53 0.0.0.0:* \end_layout \begin_layout Code + ¬ 30734/named \end_layout \begin_layout Code + udp 0 0 0.0.0.0:67 0.0.0.0:* \end_layout \begin_layout Code + ¬ 1530/dhcpd \end_layout \begin_layout Code + udp 0 0 0.0.0.0:67 0.0.0.0:* \end_layout \begin_layout Code + ¬ 1530/dhcpd \end_layout \begin_layout Code + udp 0 0 0.0.0.0:32858 0.0.0.0:* \end_layout \begin_layout Code + ¬ 18822/(squid) \end_layout \begin_layout Code + udp 0 0 0.0.0.0:4827 0.0.0.0:* \end_layout \begin_layout Code + ¬ 18822/(squid) \end_layout \begin_layout Code + udp 0 0 0.0.0.0:111 0.0.0.0:* \end_layout \begin_layout Code + ¬ 1230/portmap \end_layout \begin_layout Code + udp 0 0 :::53 :::* \end_layout \begin_layout Code + ¬ 30734/named \end_layout @@ -9230,26 +9700,32 @@ Router Advertisement \end_layout \begin_layout Code + 15:43:49.484751 fe80::212:34ff:fe12:3450 > ff02::1: icmp6: router \end_layout \begin_layout Code + ¬ advertisement(chlim=64, router_ltime=30, reachable_time=0, \end_layout \begin_layout Code + ¬ retrans_time=0)(prefix info: AR valid_ltime=30, preffered_ltime=20, \end_layout \begin_layout Code + ¬ prefix=2002:0102:0304:1::/64)(prefix info: LAR valid_ltime=2592000, \end_layout \begin_layout Code + ¬ preffered_ltime=604800, prefix=2001:0db8:0:1::/64)(src lladdr: \end_layout \begin_layout Code + ¬ 0:12:34:12:34:50) (len 88, hlim 255) \end_layout @@ -9302,10 +9778,12 @@ Router Anfrage \end_layout \begin_layout Code + 15:44:21.152646 fe80::212:34ff:fe12:3456 > ff02::2: icmp6: router solicitation \end_layout \begin_layout Code + ¬ (src lladdr: 0:12:34:12:34:56) (len 16, hlim 255) \end_layout @@ -9374,10 +9852,12 @@ fe80:212:34ff:fe12:3456 \end_layout \begin_layout Code + 15:44:17.712338 :: > ff02::1:ff12:3456: icmp6: neighbor sol: who has \end_layout \begin_layout Code + ¬ fe80::212:34ff:fe12:3456(src lladdr: 0:12:34:12:34:56) (len 32, hlim 255) \end_layout @@ -9395,15 +9875,18 @@ Der Knoten will seine globale Adresse \end_layout \begin_layout Code + 15:44:21.905596 :: > ff02::1:ff12:3456: icmp6: neighbor sol: who has \end_layout \begin_layout Code + ¬ 2002:0102:0304:1:212:34ff:fe12:3456(src lladdr: 0:12:34:12:34:56) (len 32, \end_layout \begin_layout Code + ¬ hlim 255) \end_layout @@ -9421,15 +9904,18 @@ Der Knoten will seine globale Adresse \end_layout \begin_layout Code + 15:44:22.304028 :: > ff02::1:ff12:3456: icmp6: neighbor sol: who has \end_layout \begin_layout Code + ¬ 2001:0db8:0:1:212:34ff:fe12:3456(src lladdr: 0:12:34:12:34:56) (len 32, hlim \end_layout \begin_layout Code + ¬ 255) \end_layout @@ -9451,15 +9937,18 @@ Der Knoten möchte Pakete an die Adresse \end_layout \begin_layout Code + 13:07:47.664538 2002:0102:0304:1:2e0:18ff:fe90:9205 > ff02::1:ff00:10: icmp6: \end_layout \begin_layout Code + ¬ neighbor sol: who has 2001:0db8:0:1::10(src lladdr: 0:e0:18:90:92:5) (len 32, \end_layout \begin_layout Code + ¬ hlim 255) \end_layout @@ -9476,10 +9965,12 @@ fe80::10 \end_layout \begin_layout Code + 13:11:20.870070 fe80::2e0:18ff:fe90:9205 > ff02::1:ff00:10: icmp6: neighbor \end_layout \begin_layout Code + ¬ sol: who has fe80::10(src lladdr: 0:e0:18:90:92:5) (len 32, hlim 255) \end_layout @@ -9607,6 +10098,7 @@ Sie können überprüfen, ob Ihre Distribution eine permanente IPv6 Konfiguratio \end_layout \begin_layout Code + /etc/sysconfig/network-scripts/network-functions-ipv6 \end_layout @@ -9615,11 +10107,13 @@ Automatischer Test: \end_layout \begin_layout Code + # test -f /etc/sysconfig/network-scripts/network-functions-ipv6 && echo "Main \end_layout \begin_layout Code + ¬ IPv6 script library exists" \end_layout @@ -9631,14 +10125,17 @@ Die Versionsnummer der Library ist von Interesse, wenn Sie Features vermissen \end_layout \begin_layout Code + # source /etc/sysconfig/network-scripts/network-functions-ipv6 && \end_layout \begin_layout Code + ¬ getversion_ipv6_functions \end_layout \begin_layout Code + 20011124 \end_layout @@ -9682,10 +10179,12 @@ Kurze Anleitung zum aktivieren von IPv6 bei RHL 7.1, 7.2, 7.3, ... \end_layout \begin_layout Code + # modprobe -c | grep net-pf-10 \end_layout \begin_layout Code + alias net-pf-10 off \end_layout @@ -9703,6 +10202,7 @@ twork \end_layout \begin_layout Code + NETWORKING_IPV6=yes \end_layout @@ -9712,6 +10212,7 @@ Rebooten bzw. \end_layout \begin_layout Code + # service network restart \end_layout @@ -9720,10 +10221,12 @@ Nun sollte das IPv6 Modul geladen sein \end_layout \begin_layout Code + # modprobe -c | grep ipv6 \end_layout \begin_layout Code + alias net-pf-10 ipv6 \end_layout @@ -9792,6 +10295,7 @@ Editiere Datei /etc/sysconfig/network/ifcfg- und setze folgende \end_layout \begin_layout Code + IP6ADDR="/" \end_layout @@ -9827,6 +10331,7 @@ Editiere Datei /etc/sysconfig/network/ifcfg- und setze folgende \end_layout \begin_layout Code + IPADDR="/" \end_layout @@ -9881,44 +10386,54 @@ Konfiguriere die Schnittstelle (hier im Beispiel: eth0). \end_layout \begin_layout Code + iface eth0 inet6 static \end_layout \begin_layout Code + pre-up modprobe ipv6 \end_layout \begin_layout Code + address 2001:0db8:1234:5::1:1 \end_layout \begin_layout Code + # To suppress completely autoconfiguration: \end_layout \begin_layout Code + # up echo 0 > /proc/sys/net/ipv6/conf/all/autoconf \end_layout \begin_layout Code + netmask 64 \end_layout \begin_layout Code + # The router is autoconfigured and has no fixed address. \end_layout \begin_layout Code + # It is magically \end_layout \begin_layout Code + # found. (/proc/sys/net/ipv6/conf/all/accept_ra). Otherwise: \end_layout \begin_layout Code + #gateway 2001:0db8:1234:5::1 \end_layout @@ -9929,6 +10444,7 @@ Danach rebooten oder folgendes Kommando ausführen \end_layout \begin_layout Code + # ifup --force eth0 \end_layout @@ -10005,18 +10521,22 @@ Beispiel: \end_layout \begin_layout Code + # ip -6 addr show dev eth0 scope link \end_layout \begin_layout Code + 2: eth0: mtu 1500 qlen1000 \end_layout \begin_layout Code + inet6 fe80::211:d8ff:fe6b:f0f5/64 scope link \end_layout \begin_layout Code + valid_lft forever preferred_lft forever \end_layout @@ -10592,6 +11112,7 @@ Wechseln Sie in das Source-Verzeichnis: \end_layout \begin_layout Code + # cd /path/to/src \end_layout @@ -10600,10 +11121,12 @@ Entpacken sie die Kernel-Quellen und vergeben diesen einen neuen Namen \end_layout \begin_layout Code + # tar z|jxf kernel-version.tar.gz|bz2 \end_layout \begin_layout Code + # mv linux linux-version-iptables-version+IPv6 \end_layout @@ -10612,6 +11135,7 @@ Entpacken Sie die iptables Quellen \end_layout \begin_layout Code + # tar z|jxf iptables-version.tar.gz|bz2 \end_layout @@ -10624,6 +11148,7 @@ Wechseln Sie in das iptables Verzeichnis \end_layout \begin_layout Code + # cd iptables-version \end_layout @@ -10632,6 +11157,7 @@ Fügen Sie relevante Patches hinzu \end_layout \begin_layout Code + # make pending-patches KERNEL_DIR=/path/to/src/linux-version-iptables-version/ \end_layout @@ -10642,6 +11168,7 @@ Fügen Sie zusätzliche IPv6 relevante IPv6 Patches hinzu (die nach wie vor \end_layout \begin_layout Code + # make patch-o-matic KERNEL_DIR=/path/to/src/linux-version-iptables-version/ \end_layout @@ -10680,10 +11207,12 @@ REJECT.patch.ipv6 \end_layout \begin_layout Code + # make print-extensions \end_layout \begin_layout Code + Extensions found: IPv6:owner IPv6:limit IPv6:mac IPv6:multiport \end_layout @@ -10696,6 +11225,7 @@ Wechseln Sie zu den Kernel-Quellen \end_layout \begin_layout Code + # cd /path/to/src/linux-version-iptables-version/ \end_layout @@ -10704,10 +11234,12 @@ Editieren Sie das Makefile \end_layout \begin_layout Code + - EXTRAVERSION = \end_layout \begin_layout Code + + EXTRAVERSION = -iptables-version+IPv6-try \end_layout @@ -10716,80 +11248,99 @@ Starten Sie configure und aktivieren Sie IPv6 relevante Optionen \end_layout \begin_layout Code + Code maturity level options \end_layout \begin_layout Code + Prompt for development and/or incomplete code/drivers : yes \end_layout \begin_layout Code + Networking options \end_layout \begin_layout Code + Network packet filtering: yes \end_layout \begin_layout Code + The IPv6 protocol: module \end_layout \begin_layout Code + IPv6: Netfilter Configuration \end_layout \begin_layout Code + IP6 tables support: module \end_layout \begin_layout Code + All new options like following: \end_layout \begin_layout Code + limit match support: module \end_layout \begin_layout Code + MAC address match support: module \end_layout \begin_layout Code + Multiple port match support: module \end_layout \begin_layout Code + Owner match support: module \end_layout \begin_layout Code + netfilter MARK match support: module \end_layout \begin_layout Code + Aggregated address check: module \end_layout \begin_layout Code + Packet filtering: module \end_layout \begin_layout Code + REJECT target support: module \end_layout \begin_layout Code + LOG target support: module \end_layout \begin_layout Code + Packet mangling: module \end_layout \begin_layout Code + MARK target support: module \end_layout @@ -10815,6 +11366,7 @@ Benennen sie das ältere Verzeichnis um \end_layout \begin_layout Code + # mv /usr/src/linux /usr/src/linux.old \end_layout @@ -10823,6 +11375,7 @@ Erstellen Sie einen neuen symbolischen Link \end_layout \begin_layout Code + # ln -s /path/to/src/linux-version-iptables-version /usr/src/linux \end_layout @@ -10831,6 +11384,7 @@ Erstellen Sie ein neues SRPMS \end_layout \begin_layout Code + # rpm --rebuild /path/to/SRPMS/iptables-version-release.src.rpm \end_layout @@ -10852,6 +11406,7 @@ Freshen \end_layout \begin_layout Code + # rpm -Fhv /path/to/RPMS/cpu/iptables*-version-release.cpu.rpm \end_layout @@ -10868,6 +11423,7 @@ install \end_layout \begin_layout Code + # rpm -ihv /path/to/RPMS/cpu/iptables*-version-release.cpu.rpm \end_layout @@ -10886,6 +11442,7 @@ nodeps \end_layout \begin_layout Code + # rpm -ihv --nodeps /path/to/RPMS/cpu/iptables*-version-release.cpu.rpm \end_layout @@ -10895,6 +11452,7 @@ Damit iptables die Libraries finden kann, ist es eventuell notwendig, einen \end_layout \begin_layout Code + # ln -s /lib/iptables/ /usr/lib/iptables \end_layout @@ -10911,6 +11469,7 @@ Laden Sie das Modul (falls dies im Kernel so kompiliert wurde): \end_layout \begin_layout Code + # modprobe ip6_tables \end_layout @@ -10919,10 +11478,12 @@ Laden Sie das Modul (falls dies im Kernel so kompiliert wurde): \end_layout \begin_layout Code + # [ ! -f /proc/net/ip6_tables_names ] && echo "Current kernel doesn't support \end_layout \begin_layout Code + ¬ 'ip6tables' firewalling (IPv6)!" \end_layout @@ -10939,6 +11500,7 @@ Kurze Auflistung: \end_layout \begin_layout Code + # ip6tables -L \end_layout @@ -10947,6 +11509,7 @@ Erweiterte Auflistung: \end_layout \begin_layout Code + # ip6tables -n -v --line-numbers -L \end_layout @@ -10955,6 +11518,7 @@ Auflistung angegebener Filter \end_layout \begin_layout Code + # ip6tables -n -v --line-numbers -L INPUT \end_layout @@ -10963,10 +11527,12 @@ Hinzufügen einer Log-Regel zum Input-Filter mit Optionen \end_layout \begin_layout Code + # ip6tables --table filter --append INPUT -j LOG --log-prefix "INPUT:" \end_layout \begin_layout Code + ¬ --log-level 7 \end_layout @@ -10975,6 +11541,7 @@ Hinzufügen einer Drop-Regel zum Input-Filter \end_layout \begin_layout Code + # ip6tables --table filter --append INPUT -j DROP \end_layout @@ -10983,6 +11550,7 @@ Löschen einer Regel mit Hilfe der Regelnummer \end_layout \begin_layout Code + # ip6tables --table filter --delete INPUT 1 \end_layout @@ -11001,6 +11569,7 @@ Seit Kernel-Version 2.6.20 ist die Auswertung des IPv6-Verbindungsstatus gut \end_layout \begin_layout Code + # ip6tables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT \end_layout @@ -11018,6 +11587,7 @@ Eingehender ICMPv6 Verkehr durch Tunnel erlauben \end_layout \begin_layout Code + # ip6tables -A INPUT -i sit+ -p icmpv6 -j ACCEPT \end_layout @@ -11026,6 +11596,7 @@ Ausgehenden ICMPv6 Verkehr durch Tunnel erlauben \end_layout \begin_layout Code + # ip6tables -A OUTPUT -o sit+ -p icmpv6 -j ACCEPT \end_layout @@ -11034,6 +11605,7 @@ Neuere Kernel erlauben das Spezifizieren des ICMPv6-Typs: \end_layout \begin_layout Code + # ip6tables -A INPUT -p icmpv6 --icmpv6-type echo-request -j ACCEPT \end_layout @@ -11052,10 +11624,12 @@ n Patitionen entgegenzuwirken. \end_layout \begin_layout Code + # ip6tables -A INPUT --protocol icmpv6 --icmpv6-type echo-request \end_layout \begin_layout Code + ¬ -j ACCEPT --match limit --limit 30/minute \end_layout @@ -11074,10 +11648,12 @@ Eingehende SSH Verbindungen werden von der Adresse 2001:0db8:100::1/128 \end_layout \begin_layout Code + # ip6tables -A INPUT -i sit+ -p tcp -s 2001:0db8:100::1/128 --sport 512:65535 \end_layout \begin_layout Code + ¬ --dport 22 -j ACCEPT \end_layout @@ -11092,10 +11668,12 @@ nicht mehr notwendig, wenn der IPv6-Verbindungsstatus ausgewertet wird! \end_layout \begin_layout Code + # ip6tables -A OUTPUT -o sit+ -p tcp -d 2001:0db8:100::1/128 --dport 512:65535 \end_layout \begin_layout Code + ¬ --sport 22 ! --syn -j ACCEPT \end_layout @@ -11113,6 +11691,7 @@ Akzeptiere eingehende IPv6-in-IPv4 Daten am interface ppp0 \end_layout \begin_layout Code + # iptables -A INPUT -i ppp0 -p ipv6 -j ACCEPT \end_layout @@ -11121,6 +11700,7 @@ Akzeptiere ausgehende IPv6-in-IPv4 Daten am interface ppp0 \end_layout \begin_layout Code + # iptables -A OUTPUT -o ppp0 -p ipv6 -j ACCEPT \end_layout @@ -11135,6 +11715,7 @@ Akzeptiere eingehende IPv6-in-IPv4 Daten vom Tunnel-Endpunkt 192.0.2.2 am interf \end_layout \begin_layout Code + # iptables -A INPUT -i ppp0 -p ipv6 -s 192.0.2.2 -j ACCEPT \end_layout @@ -11144,6 +11725,7 @@ Akzeptiere ausgehende IPv6-in-IPv4 Daten vom Tunnel-Endpunkt 192.0.2.2 am interf \end_layout \begin_layout Code + # iptables -A OUTPUT -o ppp0 -p ipv6 -d 192.0.2.2 -j ACCEPT \end_layout @@ -11167,6 +11749,7 @@ Blockiere eingehende TCP-Verbindungs-Anfragen zu diesem Host \end_layout \begin_layout Code + # ip6tables -I INPUT -i sit+ -p tcp --syn -j DROP \end_layout @@ -11175,6 +11758,7 @@ Blockiere eingehende TCP-Verbindungs-Anfragen zu Hosts hinter diesem Router \end_layout \begin_layout Code + # ip6tables -I FORWARD -i sit+ -p tcp --syn -j DROP \end_layout @@ -11207,6 +11791,7 @@ Blockiere eingehende UDP-Pakete, die nicht Antworten ausgehender Anfragen \end_layout \begin_layout Code + # ip6tables -I INPUT -i sit+ -p udp ! --dport 32768:60999 -j DROP \end_layout @@ -11216,6 +11801,7 @@ Blockiere eingehende UDP-Pakete, die nicht Antworten auf Anfragen von hinter \end_layout \begin_layout Code + # ip6tables -I FORWARD -i sit+ -p udp ! --dport 32768:60999 -j DROP \end_layout @@ -11244,6 +11830,7 @@ system-config-firewall \end_layout \begin_layout Code + Datei: /etc/sysconfig/ip6tables \end_layout @@ -11252,70 +11839,87 @@ Datei: /etc/sysconfig/ip6tables \end_layout \begin_layout Code + *filter :INPUT ACCEPT [0:0] \end_layout \begin_layout Code + :FORWARD ACCEPT [0:0] \end_layout \begin_layout Code + :OUTPUT ACCEPT [0:0] \end_layout \begin_layout Code + :RH-Firewall-1-INPUT - [0:0] \end_layout \begin_layout Code + -A INPUT -j RH-Firewall-1-INPUT \end_layout \begin_layout Code + -A FORWARD -j RH-Firewall-1-INPUT \end_layout \begin_layout Code + -A RH-Firewall-1-INPUT -i lo -j ACCEPT \end_layout \begin_layout Code + -A RH-Firewall-1-INPUT -p icmpv6 -j ACCEPT \end_layout \begin_layout Code + -A RH-Firewall-1-INPUT -p 50 -j ACCEPT \end_layout \begin_layout Code + -A RH-Firewall-1-INPUT -p 51 -j ACCEPT \end_layout \begin_layout Code + -A RH-Firewall-1-INPUT -p udp --dport 5353 -d ff02::fb -j ACCEPT \end_layout \begin_layout Code + -A RH-Firewall-1-INPUT -p udp -m udp --dport 631 -j ACCEPT \end_layout \begin_layout Code + -A RH-Firewall-1-INPUT -p tcp -m tcp --dport 631 -j ACCEPT \end_layout \begin_layout Code + -A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT \end_layout \begin_layout Code + -A RH-Firewall-1-INPUT -m state --state NEW -p tcp --dport 22 -j ACCEPT \end_layout \begin_layout Code + -A RH-Firewall-1-INPUT -j REJECT --reject-with icmp6-adm-prohibited \end_layout \begin_layout Code + COMMIT \end_layout @@ -11327,6 +11931,7 @@ Zwecks der Vollständigkeit ist hier auch die entsprechende Konfiguration \end_layout \begin_layout Code + Datei: /etc/sysconfig/iptables \end_layout @@ -11335,71 +11940,88 @@ Datei: /etc/sysconfig/iptables \end_layout \begin_layout Code + *filter :INPUT ACCEPT [0:0] \end_layout \begin_layout Code + :FORWARD ACCEPT [0:0] \end_layout \begin_layout Code + :OUTPUT ACCEPT [0:0] \end_layout \begin_layout Code + :RH-Firewall-1-INPUT - [0:0] \end_layout \begin_layout Code + -A INPUT -j RH-Firewall-1-INPUT \end_layout \begin_layout Code + -A FORWARD -j RH-Firewall-1-INPUT \end_layout \begin_layout Code + -A RH-Firewall-1-INPUT -i lo -j ACCEPT \end_layout \begin_layout Code + -A RH-Firewall-1-INPUT -p icmp --icmp-type any -j ACCEPT \end_layout \begin_layout Code + -A RH-Firewall-1-INPUT -p 50 -j ACCEPT \end_layout \begin_layout Code + -A RH-Firewall-1-INPUT -p 51 -j ACCEPT \end_layout \begin_layout Code + -A RH-Firewall-1-INPUT -p udp --dport 5353 -d 224.0.0.251 -j ACCEPT \end_layout \begin_layout Code + -A RH-Firewall-1-INPUT -p udp -m udp --dport 631 -j ACCEPT \end_layout \begin_layout Code + -A RH-Firewall-1-INPUT -p tcp -m tcp --dport 631 -j ACCEPT \end_layout \begin_layout Code + -A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT \end_layout \begin_layout Code + -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT \end_layout \begin_layout Code + -A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited \end_layout \begin_layout Code + COMMIT \end_layout @@ -11422,10 +12044,12 @@ Aktivieren von IPv4 & IPv6 Firewalling \end_layout \begin_layout Code + # service iptables start \end_layout \begin_layout Code + # service ip6tables start \end_layout @@ -11436,10 +12060,12 @@ Aktivieren des automatischen Starts nach dem Reboot \end_layout \begin_layout Code + # chkconfig iptables on \end_layout \begin_layout Code + # chkconfig ip6tables on \end_layout @@ -11453,472 +12079,578 @@ Folgende Zeilen zeigen ein umfangreicheres Setup. \end_layout \begin_layout Code + # ip6tables -n -v -L \end_layout \begin_layout Code + Chain INPUT (policy DROP 0 packets, 0 bytes) \end_layout \begin_layout Code + pkts bytes target prot opt in out source destination \end_layout \begin_layout Code + 0 0 extIN all sit+ * ::/0 ::/0 \end_layout \begin_layout Code + 4 384 intIN all eth0 * ::/0 ::/0 \end_layout \begin_layout Code + 0 0 ACCEPT all * * ::1/128 ::1/128 \end_layout \begin_layout Code + 0 0 ACCEPT all lo * ::/0 ::/0 \end_layout \begin_layout Code + 0 0 LOG all * * ::/0 ::/0 \end_layout \begin_layout Code + ¬ LOG flags 0 level 7 prefix `INPUT-default:' \end_layout \begin_layout Code + 0 0 DROP all * * ::/0 ::/0 \end_layout \begin_layout Code + \end_layout \begin_layout Code + Chain FORWARD (policy DROP 0 packets, 0 bytes) \end_layout \begin_layout Code + pkts bytes target prot opt in out source destination \end_layout \begin_layout Code + ¬ \end_layout \begin_layout Code + 0 0 int2ext all eth0 sit+ ::/0 ::/0 \end_layout \begin_layout Code + 0 0 ext2int all sit+ eth0 ::/0 ::/0 \end_layout \begin_layout Code + 0 0 LOG all * * ::/0 ::/0 \end_layout \begin_layout Code + ¬ LOG flags 0 level 7 prefix `FORWARD-default:' \end_layout \begin_layout Code + 0 0 DROP all * * ::/0 ::/0 \end_layout \begin_layout Code + \end_layout \begin_layout Code + Chain OUTPUT (policy DROP 0 packets, 0 bytes) \end_layout \begin_layout Code + pkts bytes target prot opt in out source destination \end_layout \begin_layout Code + ¬ \end_layout \begin_layout Code + 0 0 extOUT all * sit+ ::/0 ::/0 \end_layout \begin_layout Code + 4 384 intOUT all * eth0 ::/0 ::/0 \end_layout \begin_layout Code + 0 0 ACCEPT all * * ::1/128 ::1/128 \end_layout \begin_layout Code + 0 0 ACCEPT all * lo ::/0 ::/0 \end_layout \begin_layout Code + 0 0 LOG all * * ::/0 ::/0 \end_layout \begin_layout Code + ¬ LOG flags 0 level 7 prefix `OUTPUT-default:' \end_layout \begin_layout Code + 0 0 DROP all * * ::/0 ::/0 \end_layout \begin_layout Code + \end_layout \begin_layout Code + Chain ext2int (1 references) \end_layout \begin_layout Code + pkts bytes target prot opt in out source destination \end_layout \begin_layout Code + ¬ \end_layout \begin_layout Code + 0 0 ACCEPT icmpv6 * * ::/0 ::/0 \end_layout \begin_layout Code + 0 0 ACCEPT tcp * * ::/0 ::/0 \end_layout \begin_layout Code + ¬ tcp spts:1:65535 dpts:1024:65535 flags:!0x16/0x02 \end_layout \begin_layout Code + 0 0 LOG all * * ::/0 ::/0 \end_layout \begin_layout Code + ¬ LOG flags 0 level 7 prefix `ext2int-default:' \end_layout \begin_layout Code + 0 0 DROP tcp * * ::/0 ::/0 \end_layout \begin_layout Code + 0 0 DROP udp * * ::/0 ::/0 \end_layout \begin_layout Code + 0 0 DROP all * * ::/0 ::/0 \end_layout \begin_layout Code + \end_layout \begin_layout Code + Chain extIN (1 references) \end_layout \begin_layout Code + pkts bytes target prot opt in out source destination \end_layout \begin_layout Code + ¬ \end_layout \begin_layout Code + 0 0 ACCEPT tcp * * 3ffe:400:100::1/128 ::/0 \end_layout \begin_layout Code + ¬ tcp spts:512:65535 dpt:22 \end_layout \begin_layout Code + 0 0 ACCEPT tcp * * 3ffe:400:100::2/128 ::/0 \end_layout \begin_layout Code + ¬ tcp spts:512:65535 dpt:22 \end_layout \begin_layout Code + 0 0 ACCEPT icmpv6 * * ::/0 ::/0 \end_layout \begin_layout Code + 0 0 ACCEPT tcp * * ::/0 ::/0 \end_layout \begin_layout Code + ¬ tcp spts:1:65535 dpts:1024:65535 flags:!0x16/0x02 \end_layout \begin_layout Code + 0 0 ACCEPT udp * * ::/0 ::/0 \end_layout \begin_layout Code + ¬ udp spts:1:65535 dpts:1024:65535 \end_layout \begin_layout Code + 0 0 LOG all * * ::/0 ::/0 \end_layout \begin_layout Code + ¬ limit: avg 5/min burst 5 LOG flags 0 level 7 prefix `extIN-default:' \end_layout \begin_layout Code + 0 0 DROP all * * ::/0 ::/0 \end_layout \begin_layout Code + \end_layout \begin_layout Code + Chain extOUT (1 references) \end_layout \begin_layout Code + pkts bytes target prot opt in out source destination \end_layout \begin_layout Code + ¬ \end_layout \begin_layout Code + 0 0 ACCEPT tcp * * ::/0 \end_layout \begin_layout Code + ¬ 2001:0db8:100::1/128tcp spt:22 dpts:512:65535 flags:!0x16/0x02 \end_layout \begin_layout Code + 0 0 ACCEPT tcp * * ::/0 \end_layout \begin_layout Code + ¬ 2001:0db8:100::2/128tcp spt:22 dpts:512:65535 flags:!0x16/0x02 \end_layout \begin_layout Code + 0 0 ACCEPT icmpv6 * * ::/0 ::/0 \end_layout \begin_layout Code + 0 0 ACCEPT tcp * * ::/0 ::/0 \end_layout \begin_layout Code + ¬ tcp spts:1024:65535 dpts:1:65535 \end_layout \begin_layout Code + 0 0 ACCEPT udp * * ::/0 ::/0 \end_layout \begin_layout Code + ¬ udp spts:1024:65535 dpts:1:65535 \end_layout \begin_layout Code + 0 0 LOG all * * ::/0 ::/0 \end_layout \begin_layout Code + ¬ LOG flags 0 level 7 prefix `extOUT-default:' \end_layout \begin_layout Code + 0 0 DROP all * * ::/0 ::/0 \end_layout \begin_layout Code + \end_layout \begin_layout Code + Chain int2ext (1 references) \end_layout \begin_layout Code + pkts bytes target prot opt in out source destination \end_layout \begin_layout Code + ¬ \end_layout \begin_layout Code + 0 0 ACCEPT icmpv6 * * ::/0 ::/0 \end_layout \begin_layout Code + 0 0 ACCEPT tcp * * ::/0 ::/0 \end_layout \begin_layout Code + ¬ tcp spts:1024:65535 dpts:1:65535 \end_layout \begin_layout Code + 0 0 LOG all * * ::/0 ::/0 \end_layout \begin_layout Code + ¬ LOG flags 0 level 7 prefix `int2ext:' \end_layout \begin_layout Code + 0 0 DROP all * * ::/0 ::/0 \end_layout \begin_layout Code + 0 0 LOG all * * ::/0 ::/0 \end_layout \begin_layout Code + ¬ LOG flags 0 level 7 prefix `int2ext-default:' \end_layout \begin_layout Code + 0 0 DROP tcp * * ::/0 ::/0 \end_layout \begin_layout Code + 0 0 DROP udp * * ::/0 ::/0 \end_layout \begin_layout Code + 0 0 DROP all * * ::/0 ::/0 \end_layout \begin_layout Code + \end_layout \begin_layout Code + Chain intIN (1 references) \end_layout \begin_layout Code + pkts bytes target prot opt in out source destination \end_layout \begin_layout Code + ¬ \end_layout \begin_layout Code + 0 0 ACCEPT all * * ::/0 \end_layout \begin_layout Code + ¬ fe80::/ffc0:: \end_layout \begin_layout Code + 4 384 ACCEPT all * * ::/0 ff02::/16 \end_layout \begin_layout Code + \end_layout \begin_layout Code + Chain intOUT (1 references) \end_layout \begin_layout Code + pkts bytes target prot opt in out source destination \end_layout \begin_layout Code + ¬ \end_layout \begin_layout Code + 0 0 ACCEPT all * * ::/0 \end_layout \begin_layout Code + ¬ fe80::/ffc0:: \end_layout \begin_layout Code + 4 384 ACCEPT all * * ::/0 ff02::/16 \end_layout \begin_layout Code + 0 0 LOG all * * ::/0 ::/0 \end_layout \begin_layout Code + ¬ LOG flags 0 level 7 prefix `intOUT-default:' \end_layout \begin_layout Code + 0 0 DROP all * * ::/0 ::/0 \end_layout @@ -11956,6 +12688,7 @@ Wie bei IPv4 können Systeme hinter einem Router versteckt werden mit Hilfe \end_layout \begin_layout Code + # ip6tables -t nat -A POSTROUTING -o sixxs -s fec0::/64 -j MASQUERADE \end_layout @@ -11973,6 +12706,7 @@ Eine dedizierte öffentliche IPv6-Adresse kann zu einer internen IPv6-Adresse \end_layout \begin_layout Code + # ip6tables -t nat -A PREROUTING -d 2001:db8:0:1:5054:ff:fe01:2345 -i sixxs -j DNAT --to-destination fec0::5054:ff:fe01:2345 \end_layout @@ -11991,6 +12725,7 @@ Ein dedizierter Port kann zu einem internen System weitergeleitet werden, \end_layout \begin_layout Code + # ip6tables -t nat -A PREROUTING -i sixxs -p tcp --dport 8080 -j DNAT --to-desti nation [fec0::1234]:80 \end_layout @@ -12040,62 +12775,64 @@ Basis-nftables Konfiguration \begin_layout Standard \lang english -Laden der Kernel-Module +Laden der Kernel-Module: \end_layout \begin_layout Code + # modprobe nf_tables \end_layout \begin_layout Code + # modprobe nf_tables_ipv4 \end_layout \begin_layout Code + # modprobe nf_tables_ipv6 \end_layout \begin_layout Code + # modprobe nf_tables_inet \end_layout \begin_layout Standard \lang english -Erzeugen der Filter-Tabellen +Löschen der Regeln in iptables and ip6tables um Interferenzen zu vermeiden: \end_layout \begin_layout Code -# nft add table ip filter + +# iptables -F \end_layout \begin_layout Code -# nft add table ip6 filter + +# ip6tables -F +\end_layout + +\begin_layout Standard + +\lang english +Erzeugen der Filter-Tabelle: \end_layout \begin_layout Code + # nft add table inet filter \end_layout \begin_layout Standard \lang english -Erzeugen einer input chain in jeder Filter-Tabelle +Erzeugen einer input chain in der Filter-Tabelle: \end_layout \begin_layout Code -# nft add chain ip filter input { type filter hook input priority 1 -\backslash -; } -\end_layout -\begin_layout Code -# nft add chain ip6 filter input { type filter hook input priority 1 -\backslash -; } -\end_layout - -\begin_layout Code # nft add chain inet filter input { type filter hook input priority 0 \backslash ; } @@ -12121,6 +12858,7 @@ Tabelle gehören \end_layout \begin_layout Code + # nft add rule inet filter input ct state established,related counter accept \end_layout @@ -12132,13 +12870,15 @@ Erlauben von IPv4 und IPv6 ICMP echo-request (aka ping) \end_layout \begin_layout Code -# nft add rule ip filter input icmp type { echo-request } counter accept - + +# nft add rule inet filter input meta nfproto ipv4 icmp type { echo-request + } counter accept \end_layout \begin_layout Code -# nft add rule ip6 filter input icmpv6 type echo-request counter accept - + +# nft add rule inet filter input meta nfproto ipv6 icmpv6 type echo-request + counter accept \end_layout \begin_layout Standard @@ -12149,45 +12889,35 @@ Erlauben einiger wichtiger IPv6 ICMP Pakete, ohne Zähler, dafür mit Hop-Limit- \end_layout \begin_layout Code -# nft add rule ip6 filter input icmpv6 type + +# nft add rule inet filter input meta nfproto ipv6 \end_layout \begin_layout Code -¬ { nd-neighbor-solicit, nd-router-advert, nd-neighbor-advert } + +¬ icmpv6 type { nd-neighbor-advert, nd-neighbor-solicit, nd-router-advert} + ip6 hoplimit 1 accept \end_layout \begin_layout Code -¬ ip6 hoplimit 1 accept + +# nft add rule inet filter input meta nfproto ipv6 \end_layout \begin_layout Code -# nft add rule ip6 filter input icmpv6 type -\end_layout -\begin_layout Code -¬ { nd-neighbor-solicit, nd-router-advert, nd-neighbor-advert } -\end_layout - -\begin_layout Code -¬ ip6 hoplimit 255 accept +¬ icmpv6 type { nd-neighbor-advert, nd-neighbor-solicit, nd-router-advert} + ip6 hoplimit 255 counter accept \end_layout \begin_layout Standard \lang english -Erlauben von eingehenden SSH-Verbindungen für IPv4 und IPv6 unter Nutzung - der IP-Version unabhängigen Tabelle -\begin_inset Quotes sld -\end_inset - -inet -\begin_inset Quotes srd -\end_inset - - +Erlauben von eingehenden SSH-Verbindungen für IPv4 und IPv6 \end_layout \begin_layout Code + # nft add rule inet filter input tcp dport 22 ct state new tcp flags \backslash & @@ -12199,6 +12929,27 @@ inet ) == syn counter accept \end_layout +\begin_layout Standard + +\lang english +Reject/drop anderer Pakete +\end_layout + +\begin_layout Code + +# nft add rule inet filter input tcp dport 0-65535 reject +\end_layout + +\begin_layout Code + +# nft add rule inet filter input udp dport 0-65535 counter drop +\end_layout + +\begin_layout Code + +# nft add rule inet filter input counter drop +\end_layout + \begin_layout Subsubsection \lang english @@ -12207,127 +12958,358 @@ Ergebnis \begin_layout Standard -\lang english -Tabelle für IPv4 Filter -\end_layout - -\begin_layout Code -# nft list table ip filter -\end_layout - -\begin_layout Code -table ip filter { -\end_layout - -\begin_layout Code - chain input { -\end_layout - -\begin_layout Code - type filter hook input priority 1; -\end_layout - -\begin_layout Code - icmp type { echo-request} counter packets 0 bytes 0 accept -\end_layout - -\begin_layout Code - } -\end_layout - -\begin_layout Code -} -\end_layout - -\begin_layout Standard - -\lang english -Tabelle für IPv6 Filter -\end_layout - -\begin_layout Code -# nft list table ip6 filter -\end_layout - -\begin_layout Code -table ip6 filter { -\end_layout - -\begin_layout Code - chain input { -\end_layout - -\begin_layout Code - type filter hook input priority 1; -\end_layout - -\begin_layout Code - icmpv6 type echo-request counter packets 0 bytes 0 accept -\end_layout - -\begin_layout Code - ip6 hoplimit 1 icmpv6 type -\end_layout - -\begin_layout Code -¬ { nd-neighbor-advert, nd-neighbor-solicit, nd-router-advert} accept -\end_layout - -\begin_layout Code - ip6 hoplimit 255 icmpv6 type -\end_layout - -\begin_layout Code -¬ { nd-neighbor-advert, nd-neighbor-solicit, nd-router-advert} accept -\end_layout - -\begin_layout Code - } -\end_layout - -\begin_layout Code -} -\end_layout - -\begin_layout Standard - \lang english Tabelle für IP unabhängigen Filter \end_layout \begin_layout Code -# nft list table inet filter -\end_layout -\begin_layout Code table inet filter { \end_layout \begin_layout Code + chain input { \end_layout \begin_layout Code + type filter hook input priority 0; \end_layout \begin_layout Code - ct state established,related counter packets 44 bytes 2288 accept + + ct state established,related counter packets 0 bytes 0 accept \end_layout \begin_layout Code + + ip protocol icmp icmp type { echo-request} counter packets 0 bytes 0 + accept +\end_layout + +\begin_layout Code + + ip6 nexthdr ipv6-icmp icmpv6 type echo-request counter packets 0 bytes + 0 accept +\end_layout + +\begin_layout Code + + ip6 nexthdr ipv6-icmp ip6 hoplimit 1 icmpv6 type { nd-neighbor-advert, + nd-neighbor-solicit, nd-router-advert} accept +\end_layout + +\begin_layout Code + + ip6 nexthdr ipv6-icmp ip6 hoplimit 255 icmpv6 type { nd-neighbor-advert, + nd-neighbor-solicit, nd-router-advert} accept +\end_layout + +\begin_layout Code + tcp dport ssh ct state new tcp flags & (syn | ack) == syn counter packets 0 bytes 0 accept \end_layout \begin_layout Code + + tcp dport >= 0 tcp dport <= 65535 counter packets 0 bytes 0 reject +\end_layout + +\begin_layout Code + + udp dport >= 0 udp dport <= 65535 counter packets 0 bytes 0 drop +\end_layout + +\begin_layout Code + + log prefix counter packets 0 bytes 0 drop +\end_layout + +\begin_layout Code + } \end_layout \begin_layout Code + } \end_layout +\begin_layout Subsubsection + +\lang english +Tipps für's Loggen +\end_layout + +\begin_layout Standard + +\lang english +Für Logging wird ein zusätzliches Kernelmodul benötigt: +\end_layout + +\begin_layout Code + +# modprobe xt_LOG +\end_layout + +\begin_layout Standard + +\lang english +ACHTUNG, MOMENTAN KANN DER LOG-LEVEL NICHT ANGEGEBEN WERDEN, dadurch werden + nftables-Ereignisse mit Log-Level kern.emerg ausgegeben - ES BESTEHT DIE + GEFAHR, DASS DIE KONSOLE DADURCH ÜBERFLUTET WIRD! +\end_layout + +\begin_layout Standard + +\lang english +Für erste Tests mit der Log-Option kann es nützlich sein, das Loggens für + emergency-Ereignisse in z.B. + /etc/rsyslog.conf zu deaktivieren mit Hilfe eines +\begin_inset Quotes sld +\end_inset + +# +\begin_inset Quotes srd +\end_inset + + am Anfang der Zeile und Neustart des logging-Daemons +\end_layout + +\begin_layout Code + +#*.emerg :omusrmsg:* +\end_layout + +\begin_layout Standard + +\lang english +Regel von oben, welche SSH auf Port 22 erlaubt, nun mit Logging: +\end_layout + +\begin_layout Code + +# nft add rule inet filter input tcp dport 22 ct state new tcp flags +\backslash +& +\backslash +(syn +\backslash +| ack +\backslash +) == syn log prefix +\backslash +"inet/input/accept: +\backslash +" counter accept +\end_layout + +\begin_layout Subsection + +\lang english +Filter-Policy mit nftables unter Benutzung der Tablellen +\begin_inset Quotes sld +\end_inset + +ip +\begin_inset Quotes srd +\end_inset + +, +\begin_inset Quotes sld +\end_inset + +ip6 +\begin_inset Quotes srd +\end_inset + + und +\begin_inset Quotes sld +\end_inset + +inet +\begin_inset Quotes srd +\end_inset + + +\end_layout + +\begin_layout Standard + +\lang english +Wie oben schon beschrieben, wenn die Regeln in den einzelnen Tabellen konfigurie +rt werden, muss gesichert sein, dass frühere +\begin_inset Quotes sld +\end_inset + +accepts +\begin_inset Quotes srd +\end_inset + + nicht aufgehoben werden. + Eine einfache Lösung ist die Benutzung von Markierungen. + Regeln, die Pakete erlauben, setzen die Marke mit +\begin_inset Quotes sld +\end_inset + +meta mark set xxxx +\begin_inset Quotes srd +\end_inset + +. + Eine generische Regel erlaubt Pakete mit gesetzter Marke +\begin_inset Quotes sld +\end_inset + +mark xxxx +\begin_inset Quotes srd +\end_inset + +. + Beispiel für ein resultierendes Filter-Regelwerk: +\end_layout + +\begin_layout Code + +# for table in ip ip6 inet; do nft list table $table filter; done +\end_layout + +\begin_layout Code + +table ip filter { +\end_layout + +\begin_layout Code + + chain input { +\end_layout + +\begin_layout Code + + type filter hook input priority 0; +\end_layout + +\begin_layout Code + + ct state established,related counter packets 241 bytes 25193 accept +\end_layout + +\begin_layout Code + + counter packets 2 bytes 120 mark 0x00000100 accept +\end_layout + +\begin_layout Code + + icmp type { echo-request} counter packets 0 bytes 0 meta mark set 0x00000100 + accept +\end_layout + +\begin_layout Code + + } +\end_layout + +\begin_layout Code + +} +\end_layout + +\begin_layout Code + +table ip6 filter { +\end_layout + +\begin_layout Code + + chain input { +\end_layout + +\begin_layout Code + + type filter hook input priority 0; +\end_layout + +\begin_layout Code + + ct state established,related counter packets 14 bytes 4077 accept +\end_layout + +\begin_layout Code + + counter packets 4 bytes 408 mark 0x00000100 accept +\end_layout + +\begin_layout Code + + icmpv6 type echo-request counter packets 1 bytes 104 meta mark set 0x00000100 +\end_layout + +\begin_layout Code + + icmpv6 type { nd-neighbor-advert, nd-neighbor-solicit, nd-router-advert} + counter packets 2 bytes 224 meta mark set 0x00000100 accept +\end_layout + +\begin_layout Code + + } +\end_layout + +\begin_layout Code + +} +\end_layout + +\begin_layout Code + +table inet filter { +\end_layout + +\begin_layout Code + + chain input { +\end_layout + +\begin_layout Code + + type filter hook input priority 0; +\end_layout + +\begin_layout Code + + ct state established,related counter packets 307 bytes 31974 accept +\end_layout + +\begin_layout Code + + counter packets 6 bytes 528 mark 0x00000100 accept +\end_layout + +\begin_layout Code + + tcp dport ssh ct state new tcp flags & (syn | ack) == syn log prefix + "inet/input/accept: " meta mark set 0x00000100 counter packets 3 bytes + 200 accept +\end_layout + +\begin_layout Code + + log prefix "inet/input/reject: " counter packets 0 bytes 0 reject +\end_layout + +\begin_layout Code + + } +\end_layout + +\begin_layout Code + +} +\end_layout + \begin_layout Chapter \begin_inset CommandInset label LatexCommand label @@ -12436,10 +13418,12 @@ target "http://www.bieringer.de/linux/IPv6/status/IPv6+Linux-status-apps.html#se \end_layout \begin_layout Code + # nc6 ::1 daytime \end_layout \begin_layout Code + 13 JUL 2002 11:22:22 CEST \end_layout @@ -12461,43 +13445,53 @@ target "http://www.insecure.org/nmap/" \end_layout \begin_layout Code + # nmap -6 -sT ::1 \end_layout \begin_layout Code + Starting nmap V. 3.10ALPHA3 ( www.insecure.org/nmap/ ) \end_layout \begin_layout Code + Interesting ports on localhost6 (::1): \end_layout \begin_layout Code + (The 1600 ports scanned but not shown below are in state: closed) \end_layout \begin_layout Code + Port State Service \end_layout \begin_layout Code + 22/tcp open ssh \end_layout \begin_layout Code + 53/tcp open domain \end_layout \begin_layout Code + 515/tcp open printer \end_layout \begin_layout Code + 2401/tcp open cvspserver \end_layout \begin_layout Code + Nmap run completed -- 1 IP address (1 host up) scanned in 0.525 seconds \end_layout @@ -12520,26 +13514,32 @@ target "http://www.bieringer.de/linux/IPv6/status/IPv6+Linux-status-apps.html#se \end_layout \begin_layout Code + # ./strobe ::1 strobe 1.05 (c) 1995-1999 Julian Assange . \end_layout \begin_layout Code + ::1 2401 unassigned unknown \end_layout \begin_layout Code + ::1 22 ssh Secure Shell - RSA encrypted rsh \end_layout \begin_layout Code + ::1 515 printer spooler (lpd) \end_layout \begin_layout Code + ::1 6010 unassigned unknown \end_layout \begin_layout Code + ::1 53 domain Domain Name Server \end_layout @@ -12910,22 +13910,27 @@ Beispiel für eine Ende-zu-Ende verschlüsselte Verbindung im Transport-Modus \end_layout \begin_layout Code + #!/sbin/setkey -f \end_layout \begin_layout Code + flush; \end_layout \begin_layout Code + spdflush; \end_layout \begin_layout Code + spdadd 2001:db8:1:1::1 2001:db8:2:2::2 any -P out ipsec esp/transport//require; \end_layout \begin_layout Code + spdadd 2001:db8:2:2::2 2001:db8:1:1::1 any -P in ipsec esp/transport//require; \end_layout @@ -12940,30 +13945,37 @@ Beispiel für eine Ende-zu-Ende verschlüsselte Verbindung im Tunnel-Modus \end_layout \begin_layout Code + #!/sbin/setkey -f \end_layout \begin_layout Code + flush; \end_layout \begin_layout Code + spdflush; \end_layout \begin_layout Code + spdadd 2001:db8:1:1::1 2001:db8:2:2::2 any -P out ipsec \end_layout \begin_layout Code + ¬ esp/tunnel/2001:db8:1:1::1-2001:db8:2:2::2/require; \end_layout \begin_layout Code + spdadd 2001:db8:2:2::2 2001:db8:1:1::1 any -P in ipsec \end_layout \begin_layout Code + ¬ esp/tunnel/2001:db8:2:2::2-2001:db8:1:1::1/require; \end_layout @@ -13033,18 +14045,22 @@ Datei: /etc/racoon/racoon.conf \end_layout \begin_layout Code + # Racoon IKE daemon configuration file. \end_layout \begin_layout Code + # See 'man racoon.conf' for a description of the format and entries. \end_layout \begin_layout Code + path include "/etc/racoon"; \end_layout \begin_layout Code + path pre_shared_key "/etc/racoon/psk.txt"; \end_layout @@ -13053,18 +14069,22 @@ path pre_shared_key "/etc/racoon/psk.txt"; \end_layout \begin_layout Code + listen \end_layout \begin_layout Code + { \end_layout \begin_layout Code + isakmp 2001:db8:1:1::1; \end_layout \begin_layout Code + } \end_layout @@ -13073,50 +14093,62 @@ listen \end_layout \begin_layout Code + remote 2001:db8:2:2::2 \end_layout \begin_layout Code + { \end_layout \begin_layout Code + exchange_mode main; \end_layout \begin_layout Code + lifetime time 24 hour; \end_layout \begin_layout Code + proposal \end_layout \begin_layout Code + { \end_layout \begin_layout Code + encryption_algorithm 3des; \end_layout \begin_layout Code + hash_algorithm md5; \end_layout \begin_layout Code + authentication_method pre_shared_key; \end_layout \begin_layout Code + dh_group 2; \end_layout \begin_layout Code + } \end_layout \begin_layout Code + } \end_layout @@ -13125,34 +14157,42 @@ remote 2001:db8:2:2::2 \end_layout \begin_layout Code + # gateway-to-gateway \end_layout \begin_layout Code + sainfo address 2001:db8:1:1::1 any address 2001:db8:2:2::2 any \end_layout \begin_layout Code + { \end_layout \begin_layout Code + lifetime time 1 hour; \end_layout \begin_layout Code + encryption_algorithm 3des; \end_layout \begin_layout Code + authentication_algorithm hmac_md5; \end_layout \begin_layout Code + compression_algorithm deflate; \end_layout \begin_layout Code + } \end_layout @@ -13161,30 +14201,37 @@ sainfo address 2001:db8:1:1::1 any address 2001:db8:2:2::2 any \end_layout \begin_layout Code + sainfo address 2001:db8:2:2::2 any address 2001:db8:1:1::1 any \end_layout \begin_layout Code + { \end_layout \begin_layout Code + lifetime time 1 hour; \end_layout \begin_layout Code + encryption_algorithm 3des; \end_layout \begin_layout Code + authentication_algorithm hmac_md5; \end_layout \begin_layout Code + compression_algorithm deflate; \end_layout \begin_layout Code + } \end_layout @@ -13201,10 +14248,12 @@ Datei: /etc/racoon/psk.txt \end_layout \begin_layout Code + # file for pre-shared keys used for IKE authentication \end_layout \begin_layout Code + # format is: 'identifier' 'key' \end_layout @@ -13213,6 +14262,7 @@ Datei: /etc/racoon/psk.txt \end_layout \begin_layout Code + 2001:db8:2:2::2 verysecret \end_layout @@ -13240,81 +14290,100 @@ Zum Schluss muss der Daemon gestartet werden. \end_layout \begin_layout Code + # racoon -F -v -f /etc/racoon/racoon.conf \end_layout \begin_layout Code + Foreground mode. \end_layout \begin_layout Code + 2005-01-01 20:30:15: INFO: @(#)ipsec-tools 0.3.3 (http://ipsec-tools.sourceforge.net ) \end_layout \begin_layout Code + 2005-01-01 20:30:15: INFO: @(#)This product linked \end_layout \begin_layout Code + ¬ OpenSSL 0.9.7a Feb 19 2003 (http://www.openssl.org/) \end_layout \begin_layout Code + 2005-01-01 20:30:15: INFO: 2001:db8:1:1::1[500] used as isakmp port (fd=7) \end_layout \begin_layout Code + 2005-01-01 20:31:06: INFO: IPsec-SA request for 2001:db8:2:2::2 \end_layout \begin_layout Code + ¬ queued due to no phase1 found. \end_layout \begin_layout Code + 2005-01-01 20:31:06: INFO: initiate new phase 1 negotiation: \end_layout \begin_layout Code + ¬ 2001:db8:1:1::1[500]<=>2001:db8:2:2::2[500] \end_layout \begin_layout Code + 2005-01-01 20:31:06: INFO: begin Identity Protection mode. \end_layout \begin_layout Code + 2005-01-01 20:31:09: INFO: ISAKMP-SA established \end_layout \begin_layout Code + ¬ 2001:db8:1:1::1[500]-2001:db8:2:2::2[500] spi:da3d3693289c9698:ac039a402b2db40 1 \end_layout \begin_layout Code + 2005-01-01 20:31:09: INFO: initiate new phase 2 negotiation: \end_layout \begin_layout Code + ¬ 2001:6f8:900:94::2[0]<=>2001:db8:2:2::2[0] \end_layout \begin_layout Code + 2005-01-01 20:31:10: INFO: IPsec-SA established: \end_layout \begin_layout Code + ¬ ESP/Tunnel 2001:db8:2:2::2->2001:db8:1:1::1 spi=253935531(0xf22bfab) \end_layout \begin_layout Code + 2005-01-01 20:31:10: INFO: IPsec-SA established: \end_layout \begin_layout Code + ¬ ESP/Tunnel 2001:db8:1:1::1->2001:db8:2:2::2 spi=175002564(0xa6e53c4) \end_layout @@ -13335,10 +14404,12 @@ tcpdump \end_layout \begin_layout Code + 20:35:55.305707 2001:db8:1:1::1 > 2001:db8:2:2::2: ESP(spi=0x0a6e53c4,seq=0x3) \end_layout \begin_layout Code + 20:35:55.537522 2001:db8:2:2::2 > 2001:db8:1:1::1: ESP(spi=0x0f22bfab,seq=0x3) \end_layout @@ -13363,94 +14434,117 @@ setkey \end_layout \begin_layout Code + # setkey -D \end_layout \begin_layout Code + 2001:db8:1:1::1 2001:db8:2:2::2 \end_layout \begin_layout Code + esp mode=tunnel spi=175002564(0x0a6e53c4) reqid=0(0x00000000) \end_layout \begin_layout Code + E: 3des-cbc bd26bc45 aea0d249 ef9c6b89 7056080f 5d9fa49c 924e2edd \end_layout \begin_layout Code + A: hmac-md5 60c2c505 517dd8b7 c9609128 a5efc2db \end_layout \begin_layout Code + seq=0x00000000 replay=4 flags=0x00000000 state=mature \end_layout \begin_layout Code + created: Jan 1 20:31:10 2005 current: Jan 1 20:40:47 2005 \end_layout \begin_layout Code + diff: 577(s) hard: 3600(s) soft: 2880(s) \end_layout \begin_layout Code + last: Jan 1 20:35:05 2005 hard: 0(s) soft: 0(s) \end_layout \begin_layout Code + current: 540(bytes) hard: 0(bytes) soft: 0(bytes) \end_layout \begin_layout Code + allocated: 3 hard: 0 soft: 0 \end_layout \begin_layout Code + sadb_seq=1 pid=22358 refcnt=0 \end_layout \begin_layout Code + 2001:db8:2:2::2 2001:db8:1:1::1 \end_layout \begin_layout Code + esp mode=tunnel spi=253935531(0x0f22bfab) reqid=0(0x00000000) \end_layout \begin_layout Code + E: 3des-cbc c1ddba65 83debd62 3f6683c1 20e747ac 933d203f 4777a7ce \end_layout \begin_layout Code + A: hmac-md5 3f957db9 9adddc8c 44e5739d 3f53ca0e \end_layout \begin_layout Code + seq=0x00000000 replay=4 flags=0x00000000 state=mature \end_layout \begin_layout Code + created: Jan 1 20:31:10 2005 current: Jan 1 20:40:47 2005 \end_layout \begin_layout Code + diff: 577(s) hard: 3600(s) soft: 2880(s) \end_layout \begin_layout Code + last: Jan 1 20:35:05 2005 hard: 0(s) soft: 0(s) \end_layout \begin_layout Code + current: 312(bytes) hard: 0(bytes) soft: 0(bytes) \end_layout \begin_layout Code + allocated: 3 hard: 0 soft: 0 \end_layout \begin_layout Code + sadb_seq=0 pid=22358 refcnt=0 \end_layout @@ -13555,18 +14649,22 @@ Datei: /etc/ipsec.conf \end_layout \begin_layout Code + # /etc/ipsec.conf - Openswan IPsec configuration file \end_layout \begin_layout Code + # \end_layout \begin_layout Code + # Manual: ipsec.conf.5 \end_layout \begin_layout Code + version 2.0 # conforms to second version of ipsec.conf specification \end_layout @@ -13575,22 +14673,27 @@ version 2.0 # conforms to second version of ipsec.conf specification \end_layout \begin_layout Code + # basic configuration \end_layout \begin_layout Code + config setup \end_layout \begin_layout Code + # Debug-logging controls: "none" for (almost) none, "all" for lots. \end_layout \begin_layout Code + # klipsdebug=none \end_layout \begin_layout Code + # plutodebug="control parsing" \end_layout @@ -13599,10 +14702,12 @@ config setup \end_layout \begin_layout Code + #Disable Opportunistic Encryption \end_layout \begin_layout Code + include /etc/ipsec.d/examples/no_oe.conf \end_layout @@ -13611,55 +14716,68 @@ include /etc/ipsec.d/examples/no_oe.conf \end_layout \begin_layout Code + conn ipv6-p1-p2 \end_layout \begin_layout Code + connaddrfamily=ipv6 # Important for IPv6, but no longer needed since StrongSwan 4 \end_layout \begin_layout Code + left=2001:db8:1:1::1 \end_layout \begin_layout Code + right=2001:db8:2:2::2 \end_layout \begin_layout Code + authby=secret \end_layout \begin_layout Code + esp=aes128-sha1 \end_layout \begin_layout Code + ike=aes128-sha-modp1024 \end_layout \begin_layout Code + type=transport \end_layout \begin_layout Code + #type=tunnel \end_layout \begin_layout Code + compress=no \end_layout \begin_layout Code + #compress=yes \end_layout \begin_layout Code + auto=add \end_layout \begin_layout Code + #auto=up \end_layout @@ -13680,6 +14798,7 @@ Datei: /etc/ipsec.secrets \end_layout \begin_layout Code + 2001:db8:1:1::1 2001:db8:2:2::2 : PSK "verysecret" \end_layout @@ -13706,6 +14825,7 @@ Wenn die Installation von Openswan erfolgreich war, sollte ein initscript \end_layout \begin_layout Code + # /etc/rc.d/init.d/ipsec start \end_layout @@ -13725,34 +14845,42 @@ IPsec SA established \end_layout \begin_layout Code + # ipsec auto --up ipv6-peer1-peer2 \end_layout \begin_layout Code + 104 "ipv6-p1-p2" #1: STATE_MAIN_I1: initiate \end_layout \begin_layout Code + 106 "ipv6-p1-p2" #1: STATE_MAIN_I2: sent MI2, expecting MR2 \end_layout \begin_layout Code + 108 "ipv6-p1-p2" #1: STATE_MAIN_I3: sent MI3, expecting MR3 \end_layout \begin_layout Code + 004 "ipv6-p1-p2" #1: STATE_MAIN_I4: ISAKMP SA established \end_layout \begin_layout Code + 112 "ipv6-p1-p2" #2: STATE_QUICK_I1: initiate \end_layout \begin_layout Code + 004 "ipv6-p1-p2" #2: STATE_QUICK_I2: sent QI2, \end_layout \begin_layout Code + ¬ IPsec SA established {ESP=>0xa98b7710 <0xa51e1f22} \end_layout @@ -13772,94 +14900,117 @@ setkey \end_layout \begin_layout Code + # setkey -D \end_layout \begin_layout Code + 2001:db8:1:1::1 2001:db8:2:2::2 \end_layout \begin_layout Code + esp mode=transport spi=2844489488(0xa98b7710) reqid=16385(0x00004001) \end_layout \begin_layout Code + E: aes-cbc 082ee274 2744bae5 7451da37 1162b483 \end_layout \begin_layout Code + A: hmac-sha1 b7803753 757417da 477b1c1a 64070455 ab79082c \end_layout \begin_layout Code + seq=0x00000000 replay=64 flags=0x00000000 state=mature \end_layout \begin_layout Code + created: Jan 1 21:16:32 2005 current: Jan 1 21:22:20 2005 \end_layout \begin_layout Code + diff: 348(s) hard: 0(s) soft: 0(s) \end_layout \begin_layout Code + last: hard: 0(s) soft: 0(s) \end_layout \begin_layout Code + current: 0(bytes) hard: 0(bytes) soft: 0(bytes) \end_layout \begin_layout Code + allocated: 0 hard: 0 soft: 0 \end_layout \begin_layout Code + sadb_seq=1 pid=23825 refcnt=0 \end_layout \begin_layout Code + 2001:db8:2:2::2 2001:db8:1:1::1 \end_layout \begin_layout Code + esp mode=transport spi=2770214690(0xa51e1f22) reqid=16385(0x00004001) \end_layout \begin_layout Code + E: aes-cbc 6f59cc30 8d856056 65e07b76 552cac18 \end_layout \begin_layout Code + A: hmac-sha1 c7c7d82b abfca8b1 5440021f e0c3b335 975b508b \end_layout \begin_layout Code + seq=0x00000000 replay=64 flags=0x00000000 state=mature \end_layout \begin_layout Code + created: Jan 1 21:16:31 2005 current: Jan 1 21:22:20 2005 \end_layout \begin_layout Code + diff: 349(s) hard: 0(s) soft: 0(s) \end_layout \begin_layout Code + last: hard: 0(s) soft: 0(s) \end_layout \begin_layout Code + current: 0(bytes) hard: 0(bytes) soft: 0(bytes) \end_layout \begin_layout Code + allocated: 0 hard: 0 soft: 0 \end_layout \begin_layout Code + sadb_seq=0 pid=23825 refcnt=0 \end_layout @@ -13884,10 +15035,12 @@ ip \end_layout \begin_layout Code + # ip xfrm policy \end_layout \begin_layout Code + ... \end_layout @@ -13896,10 +15049,12 @@ ip \end_layout \begin_layout Code + # ip xfrm state \end_layout \begin_layout Code + ... \end_layout @@ -13949,32 +15104,39 @@ Vernünftig funktionierendes QoS ist nur an der ausgehenden Schnittstelle \end_layout \begin_layout Code + ------------------->------- \end_layout \begin_layout Code + Queue 1 \backslash \end_layout \begin_layout Code + --->--- ---->--------->--------->------------------- \end_layout \begin_layout Code + Dicke Leitung Queue 2 Queue 1 / Queue 2 / Queue 3 Dünne Leitung \end_layout \begin_layout Code + --->---- ---->--------->--------->------------------- \end_layout \begin_layout Code + Queue 3 / \end_layout \begin_layout Code + ------------------->------- \end_layout @@ -14056,6 +15218,7 @@ Definition einer root qdisc mit einer Bandbreite von 1000 MBit/s an eth1 \end_layout \begin_layout Code + # tc qdisc add dev eth1 root handle 1: cbq avpkt 1000 bandwidth 1000Mbit \end_layout @@ -14072,6 +15235,7 @@ Definition einer Klasse 1:1 mit 1 MBit/s \end_layout \begin_layout Code + # tc class add dev eth1 parent 1: classid 1:1 cbq rate 1Mbit allot 1500 bounded \end_layout @@ -14083,6 +15247,7 @@ Definition einer Klasse 1:2 mit 50 MBit/s \end_layout \begin_layout Code + # tc class add dev eth1 parent 1: classid 1:2 cbq rate 50Mbit allot 1500 bounded \end_layout @@ -14094,6 +15259,7 @@ Definition einer Klasse 1:3 mit 10 MBit/s \end_layout \begin_layout Code + # tc class add dev eth1 parent 1: classid 1:3 cbq rate 10Mbit allot 1500 bounded \end_layout @@ -14105,6 +15271,7 @@ Definition einer Klasse 1:4 mit 200 kBit/s \end_layout \begin_layout Code + # tc class add dev eth1 parent 1: classid 1:4 cbq rate 200kbit allot 1500 bounded \end_layout @@ -14134,6 +15301,7 @@ match ip dport 5001 0xffff \end_layout \begin_layout Code + # tc filter add dev eth1 parent 1: protocol ip u32 match ip protocol 6 0xff match ip dport 5001 0xffff flowid 1:1 \end_layout @@ -14153,6 +15321,7 @@ match ip6 protocol 6 0xff \end_layout \begin_layout Code + # tc filter add dev eth1 parent 1: protocol ipv6 u32 match ip6 protocol 6 0xff match ip6 dport 5001 0xffff flowid 1:2 \end_layout @@ -14168,6 +15337,7 @@ match ip6 flowlabel 0x12345 0x3ffff \end_layout \begin_layout Code + # tc filter add dev eth1 parent 1: protocol ipv6 u32 match ip6 flowlabel 12345 0x3ffff flowid 1:3 \end_layout @@ -14184,6 +15354,7 @@ handle 32 fw \end_layout \begin_layout Code + # tc filter add dev eth1 parent 1: protocol ipv6 handle 32 fw flowid 1:4 \end_layout @@ -14195,6 +15366,7 @@ Die letzte Filterdefinition benötigt auch einen Eintrag in ip6tables um \end_layout \begin_layout Code + # ip6tables -A POSTROUTING -t mangle -p tcp --dport 5003 -j MARK --set-mark 32 \end_layout @@ -14212,14 +15384,17 @@ Starten auf Serverseite in separaten Konsolen: \end_layout \begin_layout Code + # iperf -V -s -p 5001 \end_layout \begin_layout Code + # iperf -V -s -p 5002 \end_layout \begin_layout Code + # iperf -V -s -p 5003 \end_layout @@ -14230,29 +15405,35 @@ Starten auf Clientseite und Vergleichen der Ergebnisse: \end_layout \begin_layout Code + # iperf -V -c SERVER-IPv4 -p 5001 (erwartet: 1 MBit/s) \end_layout \begin_layout Code + # iperf -V -c SERVER-IPv6 -p 5001 (erwartet: 50 MBit/s) \end_layout \begin_layout Code + # iperf -V -c SERVER-IPv4 -p 5002 (erwartet: >> 50 MBit/s && <= 1000 MBit/s) \end_layout \begin_layout Code + # iperf -V -c SERVER-IPv6 -p 5002 (erwartet: >> 50 MBit/s && <= 1000 MBit/s) \end_layout \begin_layout Code + # iperf -V -c SERVER-IPv4 -p 5003 (erwartet: >> 50 MBit/s && <= 1000 MBit/s) \end_layout \begin_layout Code + # iperf -V -c SERVER-IPv6 -p 5003 (erwartet: 200 kBit/s) \end_layout @@ -14336,18 +15517,22 @@ Folgende Optionen müssen geändert werden, damit IPv6 aktiviert wird \end_layout \begin_layout Code + options { \end_layout \begin_layout Code + # sure other options here, too \end_layout \begin_layout Code + listen-on-v6 { any; }; \end_layout \begin_layout Code + }; \end_layout @@ -14357,48 +15542,59 @@ Nach einem Neustart (des Dienstes) sollte z.B. \end_layout \begin_layout Code + # netstat -lnptu |grep "named \backslash W*$" \end_layout \begin_layout Code + tcp 0 0 :::53 :::* LISTEN 1234/named \end_layout \begin_layout Code + ¬ # incoming TCP requests \end_layout \begin_layout Code + udp 0 0 1.2.3.4:53 0.0.0.0:* 1234/named \end_layout \begin_layout Code + ¬ # incoming UDP requests to IPv4 1.2.3.4 \end_layout \begin_layout Code + udp 0 0 127.0.0.1:53 0.0.0.0:* 1234/named \end_layout \begin_layout Code + ¬ # incoming UDP requests to IPv4 localhost \end_layout \begin_layout Code + udp 0 0 0.0.0.0:32868 0.0.0.0:* 1234/named \end_layout \begin_layout Code + ¬ # dynamic chosen port for outgoing queries \end_layout \begin_layout Code + udp 0 0 :::53 :::* 1234/named \end_layout \begin_layout Code + ¬ # incoming UDP request to any IPv6 \end_layout @@ -14407,6 +15603,7 @@ Ein kleiner Test sieht wie folgt aus: \end_layout \begin_layout Code + # dig localhost @::1 \end_layout @@ -14423,18 +15620,22 @@ Folgende Optionen müssen geändert werden, damit IPv6 deaktiviert wird: \end_layout \begin_layout Code + options { \end_layout \begin_layout Code + # sure other options here, too \end_layout \begin_layout Code + listen-on-v6 { none; }; \end_layout \begin_layout Code + }; \end_layout @@ -14449,54 +15650,67 @@ ACLs mit IPv6 Adressen sind realisierbar und sollten wann immer möglich \end_layout \begin_layout Code + acl internal-net { \end_layout \begin_layout Code + 127.0.0.1; \end_layout \begin_layout Code + 1.2.3.0/24; \end_layout \begin_layout Code + 2001:0db8:100::/56; \end_layout \begin_layout Code + ::1/128; \end_layout \begin_layout Code + ::ffff:1.2.3.4/128; \end_layout \begin_layout Code + }; \end_layout \begin_layout Code + acl ns-internal-net { \end_layout \begin_layout Code + 1.2.3.4; \end_layout \begin_layout Code + 1.2.3.5; \end_layout \begin_layout Code + 2001:0db8:100::4/128; \end_layout \begin_layout Code + 2001:0db8:100::5/128; \end_layout \begin_layout Code + }; \end_layout @@ -14508,26 +15722,32 @@ Diese ACLs können für Client-Anfragen und Zonentransfers zu Secondary Nameserv \end_layout \begin_layout Code + options { \end_layout \begin_layout Code + # sure other options here, too \end_layout \begin_layout Code + listen-on-v6 { none; }; \end_layout \begin_layout Code + allow-query { internal-net; }; \end_layout \begin_layout Code + allow-transfer { ns-internal-net; }; \end_layout \begin_layout Code + }; \end_layout @@ -14553,6 +15773,7 @@ Diese Option ist nicht verpflichtend, ev. \end_layout \begin_layout Code + query-source-v6 address port ; \end_layout @@ -14573,6 +15794,7 @@ Die Transfer source Adresse wird für ausgehende Zonentransfers verwendet: \end_layout \begin_layout Code + transfer-source-v6 [port port]; \end_layout @@ -14585,6 +15807,7 @@ Die Notify source Adresse wird für ausgehende notify Mitteilungen verwendet: \end_layout \begin_layout Code + notify-source-v6 [port port]; \end_layout @@ -14741,22 +15964,27 @@ Eine IPv6 Verbindung kann durch Angabe eines dedizierten Server, der abgefragt \end_layout \begin_layout Code + $ host -t aaaa www.6bone.net 2001:0db8:200:f101::1 \end_layout \begin_layout Code + Using domain server: \end_layout \begin_layout Code + Name: 2001:0db8:200:f101::1 \end_layout \begin_layout Code + Address: 2001:0db8:200:f101::1#53 \end_layout \begin_layout Code + Aliases: \end_layout @@ -14765,6 +15993,7 @@ Aliases: \end_layout \begin_layout Code + Host www.6bone.net. not found: 5(REFUSED) \end_layout @@ -14774,14 +16003,17 @@ Ein entsprechender Log-Eintrag sieht wie folgt aus: \end_layout \begin_layout Code + Jan 3 12:43:32 gate named[12347]: client \end_layout \begin_layout Code + ¬ 2001:0db8:200:f101:212:34ff:fe12:3456#32770: \end_layout \begin_layout Code + query denied \end_layout @@ -14800,22 +16032,27 @@ Eine erfolgreiche IPv6 Verbindung sieht wie folgt aus: \end_layout \begin_layout Code + $ host -t aaaa www.6bone.net 2001:0db8:200:f101::1 \end_layout \begin_layout Code + Using domain server: \end_layout \begin_layout Code + Name: 2001:0db8:200:f101::1 \end_layout \begin_layout Code + Address: 2001:0db8:200:f101::1#53 \end_layout \begin_layout Code + Aliases: \end_layout @@ -14824,12 +16061,14 @@ Aliases: \end_layout \begin_layout Code + www.6bone.net. is an alias for 6bone.net. \end_layout \begin_layout Code + 6bone.net. has AAAA address 3ffe:b00:c18:1::10 \end_layout @@ -14874,42 +16113,52 @@ Wenn Sie nun einen "eingebauten" Service wie z.B. \end_layout \begin_layout Code + # diff -u /etc/xinetd.d/daytime.orig /etc/xinetd.d/daytime \end_layout \begin_layout Code + --- /etc/xinetd.d/daytime.orig Sun Dec 16 19:00:14 2001 \end_layout \begin_layout Code + +++ /etc/xinetd.d/daytime Sun Dec 16 19:00:22 2001 \end_layout \begin_layout Code + @@ -10,5 +10,5 @@ \end_layout \begin_layout Code + protocol = tcp \end_layout \begin_layout Code + user = root \end_layout \begin_layout Code + wait = no \end_layout \begin_layout Code + - disable = yes \end_layout \begin_layout Code + + disable = no \end_layout \begin_layout Code + } \end_layout @@ -14919,22 +16168,27 @@ dann sollten Sie nach einem Neustart des xinetd-Dienstes z.B. \end_layout \begin_layout Code + # netstat -lnptu -A inet6 |grep "xinetd*" \end_layout \begin_layout Code + tcp 0 0 ::ffff:192.168.1.1:993 :::* LISTEN 12345/xinetd-ipv6 \end_layout \begin_layout Code + tcp 0 0 :::13 :::* LISTEN 12345/xinetd-ipv6 <- service \end_layout \begin_layout Code + ¬ daytime/tcp \end_layout \begin_layout Code + tcp 0 0 ::ffff:192.168.1.1:143 :::* LISTEN 12345/xinetd-ipv6 \end_layout @@ -14995,22 +16249,27 @@ Virtueller Host mit IPv6 Adresse \end_layout \begin_layout Code + Listen [2001:0db8:100::1]:80 \end_layout \begin_layout Code + \end_layout \begin_layout Code + ServerName ipv6only.yourdomain.yourtopleveldomain \end_layout \begin_layout Code + # ...sure more config lines \end_layout \begin_layout Code + \end_layout @@ -15019,26 +16278,32 @@ Virtueller Host mit IPv4 und IPv6 Adresse \end_layout \begin_layout Code + Listen [2001:0db8:100::2]:80 \end_layout \begin_layout Code + Listen 1.2.3.4:80 \end_layout \begin_layout Code + \end_layout \begin_layout Code + ServerName ipv6andipv4.yourdomain.yourtopleveldomain \end_layout \begin_layout Code + # ...sure more config lines \end_layout \begin_layout Code + \end_layout @@ -15047,20 +16312,24 @@ Das Ergebnis sollten nach einen Neustart des Dienstes etwa Folgendes sein: \end_layout \begin_layout Code + # netstat -lnptu |grep "httpd2 \backslash W*$" \end_layout \begin_layout Code + tcp 0 0 1.2.3.4:80 0.0.0.0:* LISTEN 12345/httpd2 \end_layout \begin_layout Code + tcp 0 0 2001:0db8:100::1:80 :::* LISTEN 12345/httpd2 \end_layout \begin_layout Code + tcp 0 0 2001:0db8:100::2:80 :::* LISTEN 12345/httpd2 \end_layout @@ -15167,42 +16436,52 @@ Die Konfigurationsdatei des radvd ist normalerweise die Datei /etc/radvd.conf. \end_layout \begin_layout Code + interface eth0 { \end_layout \begin_layout Code + AdvSendAdvert on; \end_layout \begin_layout Code + MinRtrAdvInterval 3; \end_layout \begin_layout Code + MaxRtrAdvInterval 10; \end_layout \begin_layout Code + prefix 2001:0db8:0100:f101::/64 { \end_layout \begin_layout Code + AdvOnLink on; \end_layout \begin_layout Code + AdvAutonomous on; \end_layout \begin_layout Code + AdvRouterAddr on; \end_layout \begin_layout Code + }; \end_layout \begin_layout Code + }; \end_layout @@ -15211,23 +16490,28 @@ Als Ergebnis auf der Client-Seite ergibt sich hieraus: \end_layout \begin_layout Code + # ip -6 addr show eth0 \end_layout \begin_layout Code + 3: eth0: mtu 1500 qdisc pfifo_fast qlen 100 \end_layout \begin_layout Code + inet6 2001:0db8:100:f101:2e0:12ff:fe34:1234/64 scope global dynamic \end_layout \begin_layout Code + valid_lft 2591992sec preferred_lft 604792sec \end_layout \begin_layout Code + inet6 fe80::2e0:12ff:fe34:1234/10 scope link \end_layout @@ -15254,54 +16538,67 @@ Seit der Version 0.6.2pl3 wird die automatische (Neu)-Erstellung des Präfixes \end_layout \begin_layout Code + interface eth0 { \end_layout \begin_layout Code + AdvSendAdvert on; \end_layout \begin_layout Code + MinRtrAdvInterval 3; \end_layout \begin_layout Code + MaxRtrAdvInterval 10; \end_layout \begin_layout Code + prefix 0:0:0:f101::/64 { \end_layout \begin_layout Code + AdvOnLink off; \end_layout \begin_layout Code + AdvAutonomous on; \end_layout \begin_layout Code + AdvRouterAddr on; \end_layout \begin_layout Code + Base6to4Interface ppp0; \end_layout \begin_layout Code + AdvPreferredLifetime 20; \end_layout \begin_layout Code + AdvValidLifetime 30; \end_layout \begin_layout Code + }; \end_layout \begin_layout Code + }; \end_layout @@ -15311,23 +16608,28 @@ Das Ergebnis auf Clientseite ist (unter der Annahme, dass ppp0 die lokale \end_layout \begin_layout Code + # /sbin/ip -6 addr show eth0 \end_layout \begin_layout Code + 3: eth0: mtu 1500 qdisc pfifo_fast qlen 100 \end_layout \begin_layout Code + inet6 2002:0102:0304:f101:2e0:12ff:fe34:1234/64 scope global dynamic \end_layout \begin_layout Code + valid_lft 22sec preferred_lft 12sec \end_layout \begin_layout Code + inet6 fe80::2e0:12ff:fe34:1234/10 scope link \end_layout @@ -15346,6 +16648,7 @@ Achtung: wenn keine spezielle 6to4-Unterstützung der initscripts benutzt \end_layout \begin_layout Code + # /sbin/ip -6 route add 2002:0102:0304:f101::/64 dev eth0 metric 1 \end_layout @@ -15375,86 +16678,107 @@ radvdump \end_layout \begin_layout Code + # radvdump \end_layout \begin_layout Code + Router advertisement from fe80::280:c8ff:feb9:cef9 (hoplimit 255) \end_layout \begin_layout Code + AdvCurHopLimit: 64 \end_layout \begin_layout Code + AdvManagedFlag: off \end_layout \begin_layout Code + AdvOtherConfigFlag: off \end_layout \begin_layout Code + AdvHomeAgentFlag: off \end_layout \begin_layout Code + AdvReachableTime: 0 \end_layout \begin_layout Code + AdvRetransTimer: 0 \end_layout \begin_layout Code + Prefix 2002:0102:0304:f101::/64 \end_layout \begin_layout Code + AdvValidLifetime: 30 \end_layout \begin_layout Code + AdvPreferredLifetime: 20 \end_layout \begin_layout Code + AdvOnLink: off \end_layout \begin_layout Code + AdvAutonomous: on \end_layout \begin_layout Code + AdvRouterAddr: on \end_layout \begin_layout Code + Prefix 2001:0db8:100:f101::/64 \end_layout \begin_layout Code + AdvValidLifetime: 2592000 \end_layout \begin_layout Code + AdvPreferredLifetime: 604800 \end_layout \begin_layout Code + AdvOnLink: on \end_layout \begin_layout Code + AdvAutonomous: on \end_layout \begin_layout Code + AdvRouterAddr: on \end_layout \begin_layout Code + AdvSourceLLAddress: 00 80 12 34 56 78 \end_layout @@ -15520,54 +16844,67 @@ Die Konfigurationsdatei des dhcp6s ist normalerweise /etc/dhcp6s.conf. \end_layout \begin_layout Code + interface eth0 { \end_layout \begin_layout Code + server-preference 255; \end_layout \begin_layout Code + renew-time 60; \end_layout \begin_layout Code + rebind-time 90; \end_layout \begin_layout Code + prefer-life-time 130; \end_layout \begin_layout Code + valid-life-time 200; \end_layout \begin_layout Code + allow rapid-commit; \end_layout \begin_layout Code + option dns_servers 2001:db8:0:f101::1 sub.domain.example; \end_layout \begin_layout Code + link AAA { \end_layout \begin_layout Code + range 2001:db8:0:f101::1000 to 2001:db8:0:f101::ffff/64; \end_layout \begin_layout Code + prefix 2001:db8:0:f101::/64; \end_layout \begin_layout Code + }; \end_layout \begin_layout Code + }; \end_layout @@ -15591,18 +16928,22 @@ Die Konfigurationsdatei von dhcp6c ist normalerweise /etc/dhcp6c.conf. \end_layout \begin_layout Code + interface eth0 { \end_layout \begin_layout Code + send rapid-commit; \end_layout \begin_layout Code + request domain-name-servers; \end_layout \begin_layout Code + }; \end_layout @@ -15626,6 +16967,7 @@ Starten des Servers, z.B. \end_layout \begin_layout Code + # service dhcp6s start \end_layout @@ -15643,10 +16985,12 @@ Starten des Clients im Vordergrund, z.B. \end_layout \begin_layout Code + # dhcp6c -f eth0 \end_layout \begin_layout Code + ... \end_layout @@ -15670,6 +17014,7 @@ Der Server hat einen Vordergrund und zwei Debug-Schalter (von denen beide \end_layout \begin_layout Code + # dhcp6c -d -D -f eth0 \end_layout @@ -15687,6 +17032,7 @@ Mit einem IPv6 Ping an die DHCP Multicast-Adresse kann getestet werden, \end_layout \begin_layout Code + # ping6 -I eth0 ff02::1:2 \end_layout @@ -15697,47 +17043,58 @@ Der Client hat einen Vordergrund und zwei Debug-Schalter, hier ein Beispiel: \end_layout \begin_layout Code + # dhcp6c -d -f eth0 \end_layout \begin_layout Code + Oct/03/2005 17:18:16 dhcpv6 doesn't support hardware type 776 \end_layout \begin_layout Code + Oct/03/2005 17:18:16 doesn't support sit0 address family 0 \end_layout \begin_layout Code + Oct/03/2005 17:18:16 netlink_recv_rtgenmsg error \end_layout \begin_layout Code + Oct/03/2005 17:18:16 netlink_recv_rtgenmsg error \end_layout \begin_layout Code + Oct/03/2005 17:18:17 status code for this address is: success \end_layout \begin_layout Code + Oct/03/2005 17:18:17 status code: success \end_layout \begin_layout Code + Oct/03/2005 17:18:17 netlink_recv_rtgenmsg error \end_layout \begin_layout Code + Oct/03/2005 17:18:17 netlink_recv_rtgenmsg error \end_layout \begin_layout Code + Oct/03/2005 17:18:17 assigned address 2001:db8:0:f101::1002 prefix len is not in any RAs prefix length using 64 bit instead \end_layout \begin_layout Code + Oct/03/2005 17:18:17 renew time 60, rebind time 9 \end_layout @@ -15804,26 +17161,32 @@ Erstellen einer eigenen Konfigurationsdatei /etc/dhcp/dhcpd6.conf für den \end_layout \begin_layout Code + default-lease-time 600; \end_layout \begin_layout Code + max-lease-time 7200; \end_layout \begin_layout Code + log-facility local7; \end_layout \begin_layout Code + subnet6 2001:db8:0:1::/64 { \end_layout \begin_layout Code + # Range for clients \end_layout \begin_layout Code + range6 2001:db8:0:1::129 2001:db8:0:1::254; \end_layout @@ -15832,10 +17195,12 @@ subnet6 2001:db8:0:1::/64 { \end_layout \begin_layout Code + # Range for clients requesting a temporary address \end_layout \begin_layout Code + range6 2001:db8:0:1::/64 temporary; \end_layout @@ -15844,14 +17209,17 @@ subnet6 2001:db8:0:1::/64 { \end_layout \begin_layout Code + # Additional options \end_layout \begin_layout Code + option dhcp6.name-servers fec0:0:0:1::1; \end_layout \begin_layout Code + option dhcp6.domain-search "domain.example"; \end_layout @@ -15860,10 +17228,12 @@ subnet6 2001:db8:0:1::/64 { \end_layout \begin_layout Code + # Prefix range for delegation to sub-routers \end_layout \begin_layout Code + prefix6 2001:db8:0:100:: 2001:db8:0:f00:: /56; \end_layout @@ -15872,27 +17242,33 @@ subnet6 2001:db8:0:1::/64 { \end_layout \begin_layout Code + # Example for a fixed host address \end_layout \begin_layout Code + host specialclient { \end_layout \begin_layout Code + host-identifier option dhcp6.client-id 00:01:00:01:4a:1f:ba:e3:60:b9:1f:01: 23:45; \end_layout \begin_layout Code + fixed-address6 2001:db8:0:1::127; \end_layout \begin_layout Code + } \end_layout \begin_layout Code + } \end_layout @@ -15931,6 +17307,7 @@ dhcp6c \end_layout \begin_layout Code + # hexdump -e '"%07.7_ax " 1/2 "%04x" " " 14/1 "%02x:" " \backslash n"' /var/lib/dhcpv6/dhcp6c_duid 0000000 000e 00:01:00:01:4a:1f:ba:e3:60:b9:1f:01 @@ -15956,46 +17333,56 @@ Starte den Server im Vordergrund: \end_layout \begin_layout Code + # /usr/sbin/dhcpd -6 -d -cf /etc/dhcp/dhcpd6.conf eth1 \end_layout \begin_layout Code + Internet Systems Consortium DHCP Server 4.1.0 \end_layout \begin_layout Code + Copyright 2004-2008 Internet Systems Consortium. \end_layout \begin_layout Code + All rights reserved. \end_layout \begin_layout Code + For info, please visit http://www.isc.org/sw/dhcp/ \end_layout \begin_layout Code + Not searching LDAP since ldap-server, ldap-port and ldap-base-dn were not specified in the config file \end_layout \begin_layout Code + Wrote 0 leases to leases file. \end_layout \begin_layout Code + Bound to *:547 \end_layout \begin_layout Code + Listening on Socket/5/eth1/2001:db8:0:1::/64 \end_layout \begin_layout Code + Sending on Socket/5/eth1/2001:db8:0:1::/64 \end_layout @@ -16038,50 +17425,62 @@ Erstellen der Konfigurationsdatei /etc/dibbler/server.conf . \end_layout \begin_layout Code + log-level 8 \end_layout \begin_layout Code + log-mode short \end_layout \begin_layout Code + preference 0 \end_layout \begin_layout Code + iface "eth1" { \end_layout \begin_layout Code + prefered-lifetime 3600 \end_layout \begin_layout Code + valid-lifetime 7200 \end_layout \begin_layout Code + class { \end_layout \begin_layout Code + pool 2001:db8:0:1::/64 \end_layout \begin_layout Code + } \end_layout \begin_layout Code + option dns-server fec0:0:0:1::1 \end_layout \begin_layout Code + option domain domain.example \end_layout \begin_layout Code + } \end_layout @@ -16104,124 +17503,148 @@ Start Server im Vorgergrund: \end_layout \begin_layout Code + # dibbler-server run \end_layout \begin_layout Code + | Dibbler - a portable DHCPv6, version 0.7.3 (SERVER, Linux port) \end_layout \begin_layout Code + | Authors : Tomasz Mrugalski,Marek Senderski \end_layout \begin_layout Code + | Licence : GNU GPL v2 only. Developed at Gdansk University of Technology. \end_layout \begin_layout Code + | Homepage: http://klub.com.pl/dhcpv6/ \end_layout \begin_layout Code + 2009.05.28 10:18:48 Server Notice My pid (1789) is stored in /var/lib/dibbler/s erver.pid \end_layout \begin_layout Code + 2009.05.28 10:18:48 Server Notice Detected iface eth0/3, MAC=54:52:00:01:23:45. \end_layout \begin_layout Code + 2009.05.28 10:18:48 Server Notice Detected iface eth1/2, MAC=54:52:00:67:89:ab. \end_layout \begin_layout Code + 2009.05.28 10:18:48 Server Notice Detected iface lo/1, MAC=00:00:00:00:00:00. \end_layout \begin_layout Code + 2009.05.28 10:18:48 Server Debug Skipping database loading. \end_layout \begin_layout Code + 2009.05.28 10:18:48 Server Debug Cache:server-cache.xml file: parsing started, expecting 0 entries. \end_layout \begin_layout Code + 2009.05.28 10:18:48 Server Notice Parsing /etc/dibbler/server.conf config file... \end_layout \begin_layout Code + 18:48 Server Debug Setting 0 generic option(s). \end_layout \begin_layout Code + 18:48 Server Debug 0 per-client configurations (exceptions) added. \end_layout \begin_layout Code + 18:48 Server Debug Parsing /etc/dibbler/server.conf done. \end_layout \begin_layout Code + 18:48 Server Info 0 client class(es) defined. \end_layout \begin_layout Code + 18:48 Server Debug 1 interface(s) specified in /etc/dibbler/server.conf \end_layout \begin_layout Code + 18:48 Server Info Mapping allow, deny list to class 0:0 allow/deny entries in total. \end_layout \begin_layout Code + 18:48 Server Info Interface eth1/2 configuration has been loaded. \end_layout \begin_layout Code + 18:48 Server Notice Running in stateful mode. \end_layout \begin_layout Code + 18:48 Server Info My DUID is 00:01:00:01:11:aa:6d:a7:54:52:00:67:89:ab. \end_layout \begin_layout Code + 18:48 Server Notice Creating multicast (ff02::1:2) socket on eth1/2 (eth1/2) interface. \end_layout \begin_layout Code + 18:48 Server Debug Cache: size set to 1048576 bytes, 1 cache entry size is 87 bytes, so maximum 12052 address-client pair(s) may be cached. \end_layout \begin_layout Code + 18:48 Server Notice Accepting connections. Next event in 4294967295 second(s). \end_layout @@ -16286,6 +17709,7 @@ s.allow sowie /etc/hosts.deny. \end_layout \begin_layout Code + $ man hosts.allow \end_layout @@ -16300,11 +17724,13 @@ In dieser Datei wird ein Dienst pro Zeile eingetragen, der positiv gefiltert \end_layout \begin_layout Code + sshd: 1.2.3. [2001:0db8:100:200::]/64 \end_layout \begin_layout Code + daytime-stream: 1.2.3. [2001:0db8:100:200::]/64 \end_layout @@ -16325,6 +17751,7 @@ In dieser Datei werden alle Einträge negativ gefiltert. \end_layout \begin_layout Code + ALL: ALL \end_layout @@ -16336,10 +17763,12 @@ Sie können bei Bedarf obige Standardzeile auch durch Folgende ersetzen, \end_layout \begin_layout Code + ALL: ALL: spawn (echo "Attempt from %h %a to %d at `date`" \end_layout \begin_layout Code + | tee -a /var/log/tcp.deny.log | mail root@localhost) \end_layout @@ -16362,18 +17791,22 @@ Das Logging einer abgelehnten IPv4-Verbindung zu einem durch den xinetd \end_layout \begin_layout Code + Jan 2 20:40:44 gate xinetd-ipv6[12346]: FAIL: daytime-stream libwrap \end_layout \begin_layout Code + ¬ from=::ffff:1.2.3.4 \end_layout \begin_layout Code + Jan 2 20:32:06 gate xinetd-ipv6[12346]: FAIL: daytime-stream libwrap \end_layout \begin_layout Code + from=2001:0db8:100:200::212:34ff:fe12:3456 \end_layout @@ -16384,22 +17817,27 @@ Das Logging einer abgelehnten IPv4-Verbindung zu einem durch den xinetd \end_layout \begin_layout Code + Jan 2 20:24:17 gate sshd[12345]: refused connect from ::ffff:1.2.3.4 \end_layout \begin_layout Code + ¬ (::ffff:1.2.3.4) \end_layout \begin_layout Code + Jan 2 20:39:33 gate sshd[12345]: refused connect \end_layout \begin_layout Code + from 2001:0db8:100:200::212:34ff:fe12:3456 \end_layout \begin_layout Code + ¬ (2001:0db8:100:200::212:34ff:fe12:3456) \end_layout @@ -16413,18 +17851,22 @@ Das Logging einer akzeptierten IPv4-Verbindung zu einem durch den xinetd \end_layout \begin_layout Code + Jan 2 20:37:50 gate xinetd-ipv6[12346]: START: daytime-stream pid=0 \end_layout \begin_layout Code + ¬ from=::ffff:1.2.3.4 \end_layout \begin_layout Code + Jan 2 20:37:56 gate xinetd-ipv6[12346]: START: daytime-stream pid=0 \end_layout \begin_layout Code + from=2001:0db8:100:200::212:34ff:fe12:3456 \end_layout @@ -16434,18 +17876,22 @@ Das Logging einer akzeptierten IPv4-Verbindung zu einem auf zwei Ports hörenden \end_layout \begin_layout Code + Jan 2 20:43:10 gate sshd[21975]: Accepted password for user from ::ffff:1.2.3.4 \end_layout \begin_layout Code + ¬ port 33381 ssh2 \end_layout \begin_layout Code + Jan 2 20:42:19 gate sshd[12345]: Accepted password for user \end_layout \begin_layout Code + from 2001:0db8:100:200::212:34ff:fe12:3456 port 33380 ssh2 \end_layout @@ -16481,6 +17927,7 @@ listen \end_layout \begin_layout Code + listen_ipv6=yes \end_layout @@ -16515,22 +17962,27 @@ Editiere die Konfigurationsdatei, üblicherweise /etc/proftpd.conf, allerdings \end_layout \begin_layout Code + \end_layout \begin_layout Code + ... \end_layout \begin_layout Code + Bind 2001:0DB8::1 \end_layout \begin_layout Code + ... \end_layout \begin_layout Code + \end_layout diff --git a/LDP/users/Peter-Bieringer/Linux+IPv6-HOWTO.de.pdf b/LDP/users/Peter-Bieringer/Linux+IPv6-HOWTO.de.pdf index 10c6fb448ab7bcda0ff94e9c7c0be82cc6296544..07eff8508b1a8af867d40a3d9aabef9c1bbebfdd 100644 GIT binary patch delta 186838 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%0DhQ}p9w;h@Y_^sURmXHXDWl~ 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%0D6obmrW0u4tSE+RpS6 zCy3yEh+a+P=nw5|qtr%yBSyjnV%H5|s|41$;f@ip1b=43{9{Ug0;-VdYU zG5k;7rIQEnE))|G96{HOy)}1r`{V1W_R<>&j#s=p?c8GSB4>#_o)Z~w zo(^HT+K|$XrT7+m{>38+=Ui* zWzM%XDTTlb1@&uOvEy?1*fpci*HmJr-^qpUD=srKDl0pwwn7KK)jD5uqp%vL*H!<+ z0OqTBFT~4N8)Q_d0RR03z~!2G_NS0PaM%L@i_;=CXE+bj&TvVgL4Yk!Mc&*Xs1 z%<}V0+#}oP!v=eXA6tP}n`|uau(OsgfNPgfCY7VoeUF|a>Y28oO&vAKi#k#jkRDk*^O#E&sEQpXm9L9qd=jH(byS38SC8d6zDv~IXKt-GeRiEHRf2C zB#?Dw5EPc86VK>zMCr&T=a;^Cqrrk_6!+z@AX< zhkv(Vg<7$JnG=}jz+%(}pWS@SeDZiqs2!|LT$~aTIVni>Tt|truxFUBtvwg*r?d46 zCwk4^@6A?um4i1EUWrdAG@^qp2sK0~8b97*E?7V_A(%0f*C(G+#>n~nx_<;#*A+8d zoH=Jha#!Xjw@!A5n+IZ~|5Q>;0qaP&a~XJ=O<(HxlO>W3EO&|jhAcO_ zPu-ZHt-;Nb4WzQZsz)-X{#n7P@9yRc zpWDT+{kt|l@In;EvXqk%GLWLBk5&9l+>68%lbA&uU^Smveg9zS4K! zzHZGgn^QuoS0Xi(_V)NM3}bp6UxK)dRObyi{GI-WJojWMs=x13wVsuO@_0&vdc_&6*UpYQE zI+wCJ4@0s(%=IIy_8%7;h+k?sRue)$XWKmtgHUma))aLxhI5AzzE}L-O}S!<@FhvL zjZg<(SEHT#ptTDvz_o%PRdUs0WVpv-Hsyj{brF9#D+K1;wwvSR{w6MFa@AwZtOAtm zzY_K*=iC8m5iXhkxdbL`ymOest{z7Qo zf-x$+AjIhH{%&#i6@M2mB312bl`_Haf!Y25PZzN-kXUC`HKQTd{)_&_ztSwwpIlkz zP9v^IP8xdN2766|&mBXYRaa^;D^V_0xK#%06{^^_UZ`D)@}&2>T-5jhbOwvdv3@Vl zdw919$`8ZV0L%>fGs?j}!+a;30Rfx~;^j@xSlz=reKe#gnI!$G;A-UIzsV} zuqO9AkocVNEVViRW{IB9i^Q979T46mtGHB0M;kr4p=VQ5t^Zt39=Eu*|9*yJ69l<_ z*97tZ2^gPMhKiYI%+X7>W-vECPv?D4FrYU()ty zr{2mad$?m;?q2MZJ~41aqxW9RWS3%*81X`*=|jJOJW=g0T}mALC0yZ^n-hoY)?P`i z#(}{RXwM}MB4kp?Pz`A3RLqDDZ1>7H-q=G87Ip8n@F2)?-`>jwt;RhuM%7dQ0I^=d zNXDCZSGPyhNMd`Z<)sSkSO_iV&Im2ni}KE{6h^kWrO z0UP$2W9zsVn7H4VXD)^Ve!$nRkg0Mf{WK=y)vGlptX$fSq?6+#O@_Jos*RW0@>zOx zhI8{-nK`mMey}L&G;D7d4{?guOX&bze5|XMjI4fRQ za9tDW^d@jj%eP#u{Zl%u6)tY7w^R1A&fo}1Iviek+Rmk-l4@c4tDQ`b!KI~SADhiG zu%cS1bpCDdN84)RPrcfy&df>mCb;E{1s~Z;zB23mplb16r(j#mn;#u3_0(JiSVw86 z6%-r2j3Gs-hz5AWDS22TO$7iH#2!T$D_qq3fj-*qV8$Iqw9}c$ zo{F={##Xrc*4HHBdUIphN06CVpO(DAanF3FxBS}6eUZErv!^ahw@=}7lAzY~@znM& zD(E-T+NOpSdC1=dPIRWz{2kiWiD0J6h%K6yq-_tRl*6~)CMt|A;4gqtsem^(r;UpP z_jg~drGLTwy$Q^#1X=~qF2DP`Ox1)@*S3!PpN)x0Ly&vb!WGtGgAqcMzPU^PbyD2n zfSaiOu?t?eDKA7G%w!Mk;_LjCqnjn0R2_fDR~>;zjWMLf0&UB)Z|uKWfv*eEZnVTyqWI;gZ1f^T)rMaa62a3<_9W@g&S2nVl^jm4=t~XsuxkKOiCbT;i z60G}7MFNNdiPnsNS+x0+2PzTonc7HBl%wU5d^MyQi{aPDzkc~)F$0p&&HiGun}pr4 z>Opt_Hv!c(@S(~=Z=WC$Y0fsSp0*D_;q|gI!yD2b8j@d=2NHKk!_{cv*@nLx4@6$kozP&(w+x|OO zGpnP3I7j;UX%{)F6aHZ!6z}X!I#Eu8QxzeqHBo|wy22`J_^r<~xqPweGKWa#N0T&J za6a6O>}`o6)NoAHvzay3BNQ%-k7bCdfT@eAig{LKcn3tP2$z$$NME5bV<-*YOP>No z7pFxD@So*CxsmQO?+tV~6Vb-C+P6g9%_BkOMesXNGjv6c1QT9ExIw4-&4iPr*Z-CQ zKk>INmYbD$k~9gXHz(3565~K&It{gh%(~k;q@(Yp55In1XbFTH zDiljto4=o+W&N_?iPYSOd>TeK&>w}rJ07ILtTy^9PhJpJ;?87m84%Nl)|ipzbTyUXoNAB_Y+2#cPY%zR2ToU!Is@P;a zL&Rj!O?7HvesRx*a~XK3uR@gm~33Af{_jn3cQj(7fR<}Z<>7oJUt-irH)3}Y4fbcxXQuETdH z%0@lji_VD|6PyW6`_+Wg&CT&QLp|yaVP4gpLiDWRJSJ|15q&jQ+*Lw=jY#%q3ymrv z2HrGs=RSWT`^JN?_ofRolt`eNAx3SZ`s`yr3BSJe{_2W|a>_<=SILl(S^{4eY=^xT z5$d+{wMjJ)`1Ehg{mt^pg#g~MhZy>i{*L%I>N-`ga4R}b(2*(l^s4{<=2C0nJ~nbf zQbOYQUYTn+yqFreSgQrb{S#@UH*P)YoC9T^L{0doBk#M0g9^((GNkhzQ+X||w_tpc zdd61BZ2~Q4*mn`WAP!Xeg(1>40CmuL%X0uvSac+OgGt|q@rLuYbc8Y1oL>;m+khWZ znoMzVpx2hZ22j7C@+xh87PdrMW;p**$-m%oy;-v!O>?^{z7i{7qp>Z~XDawW@27zN zOE#P&g~Z64q()5>63_kj-Jbd)Y?*69cA0g7bgL!6xq2v3r~J^mmO(z3^h{-k1%c~{oTZ0SY!Rw3?t9R1PIna* zx%g@xQ6h-3%gp|@%}lhY>>opM1lYJExy{1RvBk_H+h(j2ek%!(u~A zLLP2Cyik6$z56&fyGOQY?0MLPRfA~|T&Bqu9I}biZfSJGjF@`*F5Rc(&kY4ShO&B6 z4x2P{Zud|Ho^{6M!B*r!YZHc7-3!xF>#%aTwkmA}F9 zm-N!h@1Q{$`?@@yKoG)&Fe)L8N6sngX7dJPqZ9kT9!o;8Y)+wHW|3bexYctT|KOnz zedwgYBMtCof4@wTh&29Cq;sFbVcG;akgDsaFXM#57Z}4HpIO-p9fFCr^uT@Di% z++d0iuYfMCei##dHA)vQz1nl67NtD$cp?>9E*x%s+MB>*OU!BxukJ zHVv@!$?J!P(SrrAj{-R{AT+qjg-T42jkn#7?9B$t=CZgT{6e9DHX2x*A`te(1X@A< zaYTv>g}F*@9?cinb&=|}f-2huu|Qzn9(y^I8V*!IekK$JJZuje@4 zw{E~+NzHuM0>kznjY0nz!(K^Qn>SW>g}lb4!AW}4N^=mWh{kHqT51(Q{15aC*!d|6nl!x+fAQHLs$1_Tp@J==I)L+8d?u%DSuY zAFOc|%~Nb8S5v1o|t4x;4c4*zwsYrPWg!3N)ANehe$iM zVI1o=iql@{Dks=szfC-)rwy{(CYIJiHF1;eFngz~3=&w-@Rx@tMw?E!%TMxq{p;H# zSP%-Ny$;`JJ!qrd4$rZ7+)_^O!VC7&&dX`37`@<*?Vl1D;F7zHGF|%SF8iDP;&eT2aSW=1 zGAn4cyuE?*R*-(tl~Ho&V?+OdU&5>FkbQE%ukF=N$Pc5#_5PHxyWPKncxs^gdI>Q} z$jxLU-Vwy_;_jq0bR0on@Z|JJu72Fe!=+!|vRmw47nNCA)c5D7XM2T$Ah9-Y@cr)2 z*>(Sx&(nxP!OA5G;Oz8va$XP*)D8|;UTO!DVe2nKEML%lHb)I1(5FK3&-}~jlnrE4 zcYOVHcYAmXn_O=-J3WKVk5dQEu9rV2$1Qtd#I1nV!;3v$CC0*bqYwUZb#!rmwVE(G zkJDq09m=inw1*FS@>q;#At0C{{X!zTM+kRa1vlDGs9@FGwP{tC=i^JYelv<7mreA3 zF$&nRnB;;pI++4Tyd_`sgiz3z;Vj@Jg&)3ijmSS1I@*sFy($#4{vz5^XiRK1?S-23 zf(DUro{Pnql58 zPTBJ$6J74Ax%gSddQr*Vwb9BgV zHQc}R%5|0!`6o2iQgJMD)f&8gjnr|UdwRt&hlA|o+BSH?V7qW^c-I*^)QU$#`Q0^g zh?}LqC}XxK9lVV)u&AgOts|`aS3l8GXYAi-~wE+9&ZAc0GQN;$cuZ@qd-`L(R$J1Evta0B^GPH}p^zVQwLQ zZf-7CE*?fME=Fcd&Ua2$a^~*VG)!_LJY3v-T>M=BYm$r>iyn{6&liuBM)`stlT*RY z)y#V~5c}3~to~EE06z)*Ow-&~9YrHdCh|+b z9RJ%#lmwKmW!n<_Icd48A8EvmpyFh(g`k7cT+0qrAxo0o;Wx2#!vgjzr+go#^fdHE z6>+HUuvC!|VPthfJ+~+CzjC~;MBye&*Ub3%HF+HY0;C_CsY;8BONYRDN2WwZW21>; zTJRmz<{O5vOjr&9_Nsp);O!$OK6(vG_YU-FT!SVIA^Znoj@A%UqKYDgnhkv@dpCU48OTxA_E|7W}5%=BqvyiwP|hOV<{ zGx36|BT8fZeCNT20Ads8|K04r!VeG~a9F{0C2tB^z&)gC3=$nUKx~TsKbupD(#}r) z`q|5e=y})2D6@3%faBHQZ+_s-DA4*h2|b7ROvUO0W=&$x$+4ZP%J|#5eor4iRW|A& zf1}^a`lTVxOMf#h@wU!5uC4EMhV7v6Z~TUMQlE`O@`kI@DZ{XJZBurVUYysn@6EqA zS|{6-^+)R&R{2TOzswptJa=?!ehVEvV^|d=&G@ov?D9O?ZE&zAqiNI1Th-WIv%6}^ zx>?oO6R7#fSb@krMM#>(wjRc+mIUj~XB_rfn~VP|?s787lihS>)vRXhU$f6xAvtl} z?q%?lNH2#CJshF5(fatAhJ)5<6Rc%ih=*Kro3O2C)r~`Iz)VAcduasgiN8NHwBye8 z<{#|3aB@q{h~wref)nc=`G?BJ+5h|;9^xy4|HsksCGTgU(*gqgCYYRBc0SfL2{m4}9lMiZ0st)q?8!zSuY1Xhdy{i3h>B9Jk20s9+A z-kkl-nS-8D52HEm8@X^Z=q++H=vnh^Swr6kqWWMF)%^U)2*cU6u`5>jluSy|^|GCj zLuy@H%7$n*z6ucT(u^ApM~ z(Vhi7^h?zfer~+(R}f`zVXBAvxL4E>5sZuPcyYzviYnkcn4lwm#L_wA2xZ9V=Kce zv&dvjfX(@C(!!UtpufYXlokqs##_TM`4rk_$J6$8(ay+THtYTA=3h)QVDv-8lp6E> z9|L^Bp_ejQ*TZ!@Sg-G{KFo=9SrpL|pQOqxwF*B(PsU*r z?Dt8<&<+9E+q*Wg+Y)F83H*I3(1Yk4=Yxsj9$_;5>lQHHVZm}Ftcor;?yj&%T|N$}qy+WGZv zA!h@3{g+mLEFAD zWXNsn*8`-5#A}J#i%YH1M;yFg?t2S$VFYoSzv)r(EtdZ+=YwB;=@?CxBFipyxC2OP zDOfIXVT)F}-7h8d`fqSH4fXrCFq1pRjPb}XjYm&sQgo_fIaRM%+z3BzYGuG#N7$

g&Q8xrRs5}^uN97LywDp78?1%()^XC)g-~>`1lK8=4Qt(r_$HPebvGR(8Qhv0 zv-&I>ZvgzGPwUgqEe@t^TZvFjmcsc(gH5`8({5JCJFvl~{ihyM(z!SNo}Y$E`SpAD zKYM{)xWl#m@u)9>h58LI9?5P-1Wt!?{#6W#DD`FCMKFV$eN&ga9tKG*1Ds}nOAJni zH}JBW<769+-3UC4kyoe_tDE@8l?WO~bKNclNRy9~jbq>_*yRkD7vjwdG9DG+Sr1k^ zqPcYg2lnNzy*pfS^UYfBd>A4ZjjxT>SRXFe@_?%7)Bv_@wJmUl48kjF;M=FvSEX}u zV7grS=5)?<>UAw(U0K;M6-<1 z0T>0-xpm`ybK?kB4m8=XWn(UtRJxk8HFK=p+!VPF!uHIqGF49sVfnmi%3T>?0didP z9c)7i_cJhd|s4$aNDF*-yc2jcnW){y;kOkSl-n(9;yh8ZPAh3(!t0i;^ugK=s5&S#CY|$O#FFz9a{)QsP%{%rKts{QJ5%yaB z=hjf#1Ce1u-c+QIDCzfXc||QeVvF>dS7tMnz_GkpC3k5Kpxq*RWqjtUmzr+Io2^#0 z@W^Fbglzwj8S~h}Ynzvz$IXjF#HmwN@tkpcv~Hw-j+uLnd3jL`B;=D@J4d9mI5GFd zYDqj{@~)YdhXKgh5k`k>Zk+q;ZlQ7iu~}Y9S_=9qem0iDAzv-7QXj-pAbjV6(12rj z-8er_Os9qfY0bjhO>UvF#-JlqUgtQ@HP;L>bfLbjNg7f~63(Sw(rS_a@P)~Z;Iu0- zP;W^98It{GgiK^3c^Aj2{LOCat3TF|fheIVd^iip_!BNSopc3Ee&T`9lnnGtjv7S0 zK9hxcr*p-6RtpX#KUb>P58B7_m_a`LtA z6Xy7(%(56vI6*U~g_R>IR+Dp;81z2%k=J4`9(irN(61t77U}464H>`qhDzdi>g2%6 z|BD*jSa%zk~?c@n6bT z-|P32GPWlcLjeTLSaYv#a}h_3mHW8kEZZPBqB@lmQ*`8VvmER{I^baS6U$*MLaO%> zX%SK%%|wQ&Md7sgCjxTYiZ~!t3ra0_zzRl}USq~zOwewMwj%Tq@91wS7MGRi(Z3UL z*YcK(K7}vxU56Ea04TQHyyElWczt*4^x103`{;#rAav|S(nVa}J zrWWiNR_l5Yir5Wgsh!#`^B{~i5?*))-dBiTGo3c44?_@qM4b#L^3;vKM;u&n8m4nj ztW|yAG*$?$-CaixH}2qezwZJQVzF>hKHx}*jW!3@df)Q4weif?rc8_ z?Gw-#wfUF|@LS5*9xJ(yZgb(vM(eihpF;5!MY+WKP>?*=o>_6cVbN z#MxMC=SaNBCn0Kg*6Zc+_{*no=g}q0kS9l%S+G94;7`<-;BPiZJhGRF0amDaAUW-u zdd+HTefIo6W72reHI4A+OzW`E%)Sv1KGe~?RxmZODrEe~X_kDXzAAbgaF9P2d32-k zke_9NQDDcZn*U)jYX3hhYSH;V3d?2|TTbrDs-W>gg@#9>!({V~ZAN%eBK?Nc)POjM zDCw=?xAq4-j%O;KKLQfIF_QIwND%#RgH2OtKWUhINHaC=aq|o7^hZDfY6bgtHk5y0 z&7Z8)xbb9BvX{wgqekeQ6FA4#>0vJtx*?_f&u@c?akNSSm4TEu<9-cZn%K24x zkg?T=6w2dh&JV1baB=WT#6?>?93YT5>GO@|VJcRK7b^GpZ-5HHUF^P|=!kFte5alC zj(0dWa6JCczUN~oP&)p|eHRJ;<385kBsRn!HzG>MZ8jO0ZYv9z!#N%i>F82Jo_ZoP z56|0PQ$JzwI+mYsFw^Z(g}e#*MBbVc!pUK^mqIph3dra6GjGt0lLj}17+|%+Z~U{O zCYMprB=GWTh)3G1VmJdSbLSE90Ik3ENRabaPKjIEeMCG!n(fcLY5pFejZ=ReU{L&p zt?YU6uc0pE)rqpN3OSpBN;7v_++lPu>Y0RCkCpPbxK*!&M_I5umKP-~tXT6l!og0%HoolF}Z zm>~I)^FSL450qzrm>7Qhr$Y%YLqFgEK~>sGv5Q_=ut<_c%Qh+)`7d-^Sum>z_5jDy z%%tv_qh!zj9N~W$FE{xiW9tX8A^{xm>ZKT&v1WJ7+j8(Wc6mbHd{Z9b+h2iMiE3FP z227$ap?P2djUOD&Joym6jh9<(KIlma((fbQHthSGFuO$I{sn}z9S3{bCI}Bd=oQ+h zwkg-EPqNjnRR|vh3v4G&c(g3Y2f`GmHPZ8|leGH7V-&~11EfC2apMPOn~xZa+xrh= znHmiKY^H5toEAQh7|X`eX7~?eAZwn-KrXwrMCCD(J0bu*3QJPb^8bjh_YR-;`G!cg zXpIU&SC%Gtq;g8U=0#75O=*PFGSWRrOVGx~qq2knd*%!q&3Jg1H-Blh%o=3Kv+-h8 z9;pwGKe+!0u|q1JSQ52Wvh3DSl`J@g=`lP)mEkd_gN-o7|G(tN>0bH})Jcp>^E?K1 z*<0ADk5S!trC};lkmk>dcgf+m-RFp~?(}FyS*jX10X{Rw+av{9+&|ZgI2ch<-v`Mg zIE>WiKszoMS!xrTsfez@Uu%L5(8B$ej`mYWN8aT?w-!Tex+9%*_hBy9ivy9Qn)|S< z_cjkOBff5%-xzsn!_Rc?-C<7-FYUOy@C9ot&4;1e()!NeE{d!O zU-&%*wx9}H2XkQZQ>QYn&}Uy5!vbb83NOW~E4;_WaNdC>2<#DflPZSR-eMLO1bO3* z!J7Y;c@MWe83l7#@gIytr~?~rdOENW?`IsaW}_1C(Kci~IKA`ee~>ef9#!7NX&T%L z)Px0kV<8lt@?dG&f1op6M}Y3|r1{N^nDtWV?_5`jV9yyb^M?`a`1421M&gSinBxh5 zOv*_xBRIUB0rDF6DstSx>)n4!6Hmte5q7|(%rN>0MlZR&e3 z%b?2Id)>LUX5^Mk)(xz|y7UNN#qupH_4)UixQ*4@d5t&CRE|5279(U{r zN%~J{ED|MS4M9_nAz#D=_&;!p#-x236xx9yBuBBGnL=k89Beq%J0E363SWqw`ok+* zGz^X{b18Xsssnj5Ej#k&+aCB3^8>9)EMP2%z$6|Q9k&wEO>Wl6YG ze$Uo5t(q(q@!0_q0?uj3TKxX@>k$@sb~>kxieQ4$MMR$uo`HHR(ID-_v)@%)l+E>dtN6xq*tMa zU0>NV`TlqoMEoNldZP3F5fBk$f1jXl&N$2|LZse0_1Zr~M3&gaz)Son*{yE1q1460 zO`K-(z`~K(qlci#^SoPb3r%3q?b)gr7wJ0w6zQ+K9B-10HB4TB@qK3Mx8AWXL4m`} z%=KptsJd%r;N~-?_A78r9}$O8mCt<(^4vP|mk9|Yw zPMu11C%FyWZSSD3@*;`v(vXRWmV{f$VfYTE7;>yLHRu*Neg2h^*Z9M3lauRs(>3f+ zf|@q?+j?%%Uc!ynyz4N|_3zmFbw}p5!*XutO0v5Bxa-N0oomLxc2-x``JrG9zb8h4 z=5>2gJJN^s$6rDTKcXD7W9Jbpu2BmI^&cU^Zq2+NbFR_12F)EIFRrt@bqaZ5Q?Ajz z4bq5vEszofAP(jIZ@TBd*E^$7?~ji@J3onXCa9L619tZ=f91;JY@U2E_d=gIxibPh z(D|YKWyrB3XTXcp?~R0WtARSOr@Qs492>DE!^i$j1|6QBj^JN-9k|8<$V6+%5Gd;< zh_g=ijG25}Q@_7-&xBoi&K1Hd_u7S*!gu-o9FE_o%{;wE_2;(VDCV)ToYA9jV*BH% z^#jFFd)z<5JzppM5+>wKq`yW18^{?)cRa$OfSP;3t5U2#6%Hpl!Zm{0dm$Vg5x!U> zZw>ddr(DOAzkAahn~MDrMLiYg1Bw!GN&gX3SDZbjBJ>SSJf633NC&v+uJE3(z}FD( zRDT|E0xvtzM*yB^op7LJWjinOZ2@|d1fO(`EAO*8=mg!F@h!c`8eTtCoqovBl;1g%KjCC6Pb=+5BtgtT>`nx+hAmaEvpXttWVL|3K2td}`e)6jM z7XB6d=i-BA>7`AlYfUe#37XralsScQuYKfax2_PBLlq6+jgdJdvlAlJ3L*Uj@%;$N zY=X4ZK$hwuz6lV6SV&6@Br_7?8+KZcz-FImWQ36sl!_fRySzEI#xxvPPgYeLzfKPc zMt^x%mi^3!lTV$0C(Hr%H-PhbVs#RQrcwj0*gv`vY(n|HP~+FQg#$~EFmt*w{=PU| z9KnfpF(w?0)+@w2&(u2@ryQs>|55b(rM(zjkz#rMn;owA(`(`!KDS(GXIo1BPe|aO zRfXVSt7&!Fhdng3*#ERYW6)*C*oI9@X}w$7DE}9i7L}9buNwc}#A($e7#u2HW z=-g9lAnH7}YD--x9k0&TxHf7tYWBf$K5L%+(ycuw$FoE3g;~=`Ci~i)mrh551dw#~ zu1PCD4S*fCucdbJZHt}W3g_^(rFRG0;f%pM*`spH!49^ocgBAfZysv}$R4rK>piG` z(t;zsmqf>93U(V{$o=bxSs}6lNTvB`qn&yJDBJ7syxlTPT@R=4 z8q2HT@6HHLu-?If-GvJW=-32@uT6e<%L%&usU$x^^OV=bV>e@ea&Nv^tWFW-O)A-5 z6xpvb$_8A12}q$r(ZuBD{cDeb+6kL)ZprF$Pu>3j09Kr77An{EoIcjMnO6|B$v2$9 zXemf^qi?3RJdQ%%e5W(+)cO;j7rRFKWJ`|Rf3udN+?2>dTv0#Tzkv|TioLmCKVywe zy7Q0A(tmVS!ajN;D#5(@oLpG~-cs!`ff|~<343MmSuI>SU_$E<^tl$Psf&O9vF$wE zOf8;=1eOIAhTwn{`+k^+T0mPZHf#V_05v@C@!mQYZ|4&M^!_!0tbn9()Y3IxUg%Q+ zjO{hyR{>TZQDr_NrmmyE3bl78cj{FB_>Z`9u}&=<#1woD+M5GHC?+mQK9_T@w>=)T zS*Qd;+tg6{*XXjscwj+I`F?dmNT>n$U)Vlp4^6 zf($=FoI2KqBK8l4;5Q9KiZV>}Kio(Jwo)ctm`hX8{v=N9FOXjZPhZX?Y{yv$AcL(W zr1raHKEnHG5II4m#(#V|qVQMHxVMNkswiQRm*TU?BRrQpMWjF`_g2>bo^jgFXZyn5 z2VH+4<20Pl_RendVCLI^2tn-=H~Dh`oA?!Ij?G52N{darFD8&N>QkV}_M-DO{Yo9iC>dYfAQDX_^k$7}*lm%j1z;5QsLYHe%&})g#q5cAoVB^5k5+VRu7_tDo z+&VE?IG!^u$vS>k7=r+U^*UKrIL0_8Q9f$w+Ot=I70y`I-B=&dVB-y60$ax6FV;kb zL*#J0SHVSA0Q+ggXg?3tx)nzd$4EM10w>Qz0`YPfr91Rpw|<0dyChhDZ_04Ga<%e` zcL&{m_UBCHT)7^t_6aOB90C%Blh#;Lx#XKC9P`){NS>Gly6hwq1t)BaLk00{89n;2 zO(A0G=91sJLR9J3vi*-$I=u2Z4XChY5&}hV%3-6zNBB8VS1&l&C~#}o^YO>8^AT2{ zzL$@F2XA_)5%@+C41j)eg6`-CYZy&Wz#GPYQvm&72i;XFU58cZ=fBlpR3p2?zgYg( zx(9E}jn#Vp>Fh7+Pj_i4bg=fneA@@lw>~)jC+hbe{2LK^w?;I&WTki?XN!gn>h`14%H1mtCIl9#UfTCNw8`hRrb|L!=8 zH&%bHmQn>iV+uzv3*oCJoQ3+#Khmy!!Vd+k=HU%YNgcv@_XF(a(OUA5pCyEnZR8Vr zbW<>O8qK4?#&5_%q|{K(oQX-+P{~5goyk->K{g?p&JPa`S)s1Z6dd9_uR>^E1r0kR zRd?}yeEfWk;Y$!KIR22t_!4}5^w4J%U9?`9s%y-`!P`ghMv_9Up*VN8V0}M4K)?N` z_)a;S;A3TH1br%>9|hhV&1(wU>Ib$)PV#qHGAFvobYBueNWsoh?#?9Do$TY~+qmhj zyThNlHeU_6R0|3cMP)6Hfj+i!Kk;^@{)zm2L)mhGv?k#>BlYVwiIt6@R&{)D`}-5Z zGem8&+SgulFMPpJII@Aqco@atV? z_GP#G*Tb(M!5*9zg@_4vdurs_s|s&i^Szs0;mCEjOe)z)$3SA~4_Ib5uShVn70aQ< z-ARTfov*-f=9{6_bVsXK7Ob8~VU8mUS$Sb{3)Q9djZBVDp zr(8<8nyDCkt@#|e>i}}&4-u{b7yZ!v=58F^A;XAVO|SnH*L)TnpLa!_sO6ox zL}%>}T+%5UC{ZQzI&yoeO+tDtB+w=a8xZK_4U{mGsT{fS)Sf|lr#q%_TyG(XkX~M~ zH%?Qr6SI$rl8P=_kHKcE4Ev55N{fgs%C$={XaQw%`#1(IGtB>6fd7u*0@yDt(S16m z?6;3_%G_y6*PmnPxosb>5x9P5(UGC-zp z&U=R}LiI0p4l@&Njk&_N8*jGjwB;^l{Uy)v%5&9jL-rW8#PWZk&8U|7Yfsc9l^KK1 zGgap)zrK(1*Mntz|2lhmHdQ6&21K`06>}3wAsO0izp~l35iEVRl{`$QyW$hyfa9C@Xb9aHiyqOY6oD!9W_pIbv?e%nmEsCKOPrMziwG&FufgWwwlk}pSf z>4a3VYq6*-e+uIu=V#f&5u-9Ca1KCXg=sfEph5ZV>6{d%Wn~a???)uFc{38Ttgjpq zfss$S80th(!T{QguXR-`@;$#q@?uX~ex&`fuZ6{llm6qc*U(ET9?_;5QlFPK4J9jO z-M_j`I!$k%aLtZ?iFZ5;dpeu@s1WV*?Yz!wD$`rR@dVA9_|lal=&xv#R+C!-F0I-- zidU*&v6JWD9Ct2`iAo)1gB>d7x-?e{P8b;sR#d^pJ2Aka?<4H>C&I8OihGKFB{jn@ zCD}Cdp<5`Tz4+ly6V9@E7#8$i%N{-@J`&DWUZYz>IaxeftS zV3psWycrrIn&s9ohBu>NB6%+zR-Mi$n8j}_DdUr=VzyIOw~x}-d}ggstdwXSC9KI} z$`{LTM^m)So*#ic$E?~f#1^Erwnnl(TY^@MdqM&he zo*Na6YZpbKd74(xpZvI)dGnb}I`fc{y47D?S9(D|zDUUqx21=rIpQ|#%s3qT%IE)e zs&G0jU^hAToyna=VN;o`CL`%wuwGKEPY#K4n!_~bj7_!0H^OnjnX;$l6RiWX>}0k-(DoeQhS~=HDc^pmplB+J!2WeciCpufUY@zK6TS zKOd>cVK@1A3zU(%_Q=^UV_(#f)O2cpMD~G_yzW#U|2gAD`a^u=g=1ivvk#?N*sfH> zV6iH-RgxX9eN1E#C$&{vQ@4RPaCp?#I5K$%hq3*&stu(bPF^u96zvkz!OG0I5elw@jwb-(SZ$e};li@FWm){>InfPp`nK?&Gd|PSUubm}B(w6kMv?ZwaF!Cl!;83Qlp0by)$cLt83UPH&&VDVWOO zxGx;j6l+9VD!6{A@R;9b`nR2I1%LrQ8^LC^5ettHo$#sM2M zDGd)7`I?;A8tY04)$n)S2tjJJ9Tu9}1vJ+2?@h>x z2_Z##*qKcf{Eh?;i!Aey#+qHXm^2Y&ZZ4fegBP-0Il;t7<%6S(18%?UG&~&n<0`X1 z(@eO%u&QekcZ(AZNlPl1;~<|>&kepRO))BAZ&NaGPIro*+LIr0%8m;rakb;KY!=yi z$AE(e%6{!TLQRl*o+jE%0hn!-iO!s-v6QPeidaQDDGsfO#T44?+H=xRd?PoFGH%hC z^~i5{A+YR(ZqxG8dm!^X;kl!rbF<;}qD+-xrSPJ%@2|`zE`ft5&IcDeLcEdK8Rs0IC9w$TAo2l{ABjaW^o^_McrZ=)F&Je2DXWNn(Js+Pq^JOFOTIi4ko+c;#y zrf8>@9}DL@;xXb7ddmZ$Z)!9v)rC!l^GirABFN)=+z#<|4Nvxo*_PnARdiNOTSg7+ z-6m&uimE0+_pcI@ZwEVY{1Ul8yE$r{U*C0bg)U2GL-=0U{;4zqGKf#Q6WnTu`Z31+ zPCM$3%vHDd3fN9-Vi^_d7uKF=L}s`>ffntr-Y6_>>_O%l!)u~&i&UM4lU(B7WBE854t{VY(1tZr{NIXhicMFTRB0XId_ITC;t zqY@zmw6?6WlR7a)Rd^r+MsSk~onyBA;$Fh(*fH}{KrXRTtV40A`Ng-;p6M5fr!HCj zrA7Pk_a1L04(zj)9wbf4KIwlOw5JJh#DH%6msL2%!>=<2=Sz7{5)D1J_eX{^L^x zezFv)iK?ei!HneFpS=Q|+~dg$CMDM0wp@b^66Th{df8abtfWdi4j&P%ocX2Y%9t~; zxHZr9HO_(5dmXYv*aUJw`XEctYUyz@0!yCAey;GYbSc4+E={t*Exe_M;)_2P1q+pgM;Wd zRnm1)UUHP|x9q0jNIgQoFpUrF5j9Q|3*zzpwgd3}igswlS9^>0p98FqU#r*|v#mKC zi$Ql;4P)+RXD(SjT}OP)zm99aBrG`HO+N5_w6RO8O6mP;U`j4W^yg_}X}qxC1n|{< z+Sxcl@^V4oe*d_y|VB z>QQ>+Jq^>j+87OHVikl|Xk3Z`3mWV z+Ci!L-9-beQ|GPC%h^9!_X7U>$cs_84l$K8XTqdXw(p=0F$LPl4cq}b5!Rcxm3=!4 z#B8L8r%oE@*moYSM0L3Y*LqKK36B2>EV(K$tz_Qn^jH)0R0gHR{;;7LD-VDvXu~yh ziC!no&2ZY`y|WwJD*x^t=d-74Si?Po_sLFmqg*5rs5qCdUi_<8(R5d}7{@x3^I6-M zU)NFaRU^4>xkz!vd2;pQ-bXv3YOT4{y>G@hP_Jd;+)U-6yM<9MSCbdz+wLvq~X={G<3>Dhj@)o`4`w`a4n{k5>Umf=~1W;^Vi^6!NQ zukNd}jmkyxD$WC{7yn@Ys5G-OY=cW#w>Du=vH>myShv=|1=0A1MLRSyM9j@i6_>uC zg${25zwgZfE#*n|z?qOKZn5HpuP$;-<-uF!W zB+|SyArsHx<2F$kO<~CWEFA_+4}ksvj~?JW4ZU#UUDYeuU2cVVb)OgwQ?0}p7BH;D z0-i{dRf?ZD0C``%?uA3;(#Ks}y$$9vPjgnnX6UpT!GwVl`a=o+q4WrNDBjY;is$s5 zOmMPjTnYi|@G-b1$&U&ViT@8M);E*%a5})DFzSD1NwBXDHG1;(-B6LRXlaG+^yyG@ z(Ocm5maErWCPKI9CJLuU{)&LPN8Cn5)TEKM|9o}uz0@hv^N59cH7D|3Po$RSD{H-&q@jlSJDSdytJOBdZdw6 z#|30xs_f)Le-bgPH7CW#F~E@H1nWvcRf|lfmm)Ru>Kxu`DbOlY;W;e9HQcm`3h6p7 zYW;E1dy)NUd6T_VJlcEM`}d^kY5IqM9q|fGyZ-{ueI{u3OWdvS*bu=-(Llq$l6Iv} zifi3_yysgABj_p;;W)Gu=Ub++6sC<+IPvfoIDk7waMrZvqvi5p@C0eDxRN%9>Ja7a z?U7zM_e&P=@Gh5m%1`|Ww4qsN%)S^4AIv_B2M~S$d<(y`VD9UeuD2#i!n3Ag#IAAd zx5T{5UI}W!AtZF)^4|9bUk5%5PJRk`VKIKQ5A6nBeHPf2u*1@@PY{OD!YIkW)1rPV z0_68x@}Uwem>Q-D=)qdVtw>tLkRg*J6^)gj&mOBLOB7%#gh_Nap`dXQ!>d`1n;b~g zQQ}`qu;L@5amfetM)aK&-9Y06C`6EBJ1B~}s0avq{S#B7!GL-eQLi@)Xh)HqIrWcg z%PE_>O_7`?G@Y6jux6SEO_9m(i^iFqRJUNc%86LniQ{niE>w7voY;b>_+ zx}gFWJuQytjRzRAOjL^w(WjfH$tOf>lrNK!WXH8rM`vTnk^uwklQxO6(dgFdpV{mJ zU&n@$6?g5vBnqTjfGJ0|UXsz&PU~Yf4m6a#B78Ue+X1oU?M5C0{s;ZM2|JEA_JS|J zPw1l&zJ*jHC50PQbdto)vYXJ$e}_#0&4xgJ1Z0D*fS=gk2DslfGcey{bB5aX%G(pN zk=j;;E}OssAbYq<8e5S+rvv_&4S?bX%@X(e!J9qur0tnMn8N998WWG17e(QIx#Sb9 zV_s;$Nxuo$JXGdR@e^%ga@cmj9Mq=P=NvS1JF@u z3)ha>4~5h`c%_FX8LMM7<2|O zh_Vgz`U9r*%M^$1!-?K_p>vc)g@zT~a2ldgJ|!CXDBgz<25 z2MILxamPS?jA_`4FZY|pIwojreNH>pE8c^PO_%% z`_zwKPyAISJ(PI)0p=fI>h8&im6Jjq8}t3@ok}I{B0K@;s^<2J3${AtW#JU$A@yJ$ zk(=3%v}fe73UprV|mI?x71QAcmqQm{`Cc(X8l_J0gF*%9)1w z{`}`C*%ji zca@Bh9j9jO+0s*KOod#!j3u5=0PLI)GYVlY5$Rf>%@WZOKSQ;~Ch+O0=?|)+K-l!HT-@W9ZI@H>?Sb^uR8!D? z^OgP}=k^Dj4-tL;;1kkd4QSk9OU_V4xA{B{n!kwfi--OYFtI6xAcyT#@&5uWUd#Q&f_x(f~61BlsUEf zm~WmscC3{RujXT1zc31()3n4D807cI^g8mum}fk@MP}QaeI)!7Y0Q2A$4!edT9Pae zZ$|zIrll1VkGbiW80hUoeIlmUlV{RQmVHFc3TBp^o<9;(o>s^EI!u?H) zNQt)C{FBy5s#vyG^1Xg5k<2rx|nx+g|c}q%48H}AuBdNM1JlqmFk9hiIpZ9y;Bx^Y=JW>1r z&wag|@op>ahts-(>&WX5KE;9z5Ch2>GS`I<5=!PD3d#koY7KN|$dcyRx9#G*zw7An z^(UW^^*EgAM?~(W81rSOuQ(j&Hh^|Nqd?Kqw_emLm0URk8gKTzTS4|68S!)kS7PKP z#XO&NqWLldRvZRZ8r;o4TX%k~+j2EQQawScjj6oCO%q#j&{l2eHUIn^9Od`=TOQ#R z?<%}`U*=)J`q$61S$qb!Qx5BT4f*Szb#nPgF;*P7$G0QKhl>i<$9nTeZk(J@FhVkf zI@u1b6n90hft0b7azDcBF+waq{(x&90#VKNhE4litff1p_%UwMpCFCn{jt6=^sn1h zpx&z`Q`}7+by2*3K+;zpX3;;v6*GP{N$XWRg1#6ap z2cFb&!k=$)q0SS*UDKEt(|sp;az6=sn_Kitzr@Ois`@pJ-NWbLFM6FKLlBGqeMgKZ zRhF@nxKdYYfw9?L8~!aW-Vd3diX)Aw1t-Vm#Ur~nGnd9$vx*UQr#dSBk<=$oMv2*t zn}u)E%j&(ap5@XJ0Km;*IJ4e1{Z?yF7E$w6+Ahb{wmG;(ezd>R>qcn>vz*Ped=xwWi%!}JRglfKOuZFs<`J(6!joJBU9!%6ek={PoDYSG0K7d zNDcX?iPpfzpclIJFgf@~5?F1C+O`5P8vv;sefJ>CfepX3>kqik?o2d}6#=1@ckAc3 z$6*3x9ZIP=+rZ0d6225dJmM*J>9{KmUoTZ&N|x) z|BzYn>Pq&Y2A`Mp{}2Xu%d;K}_i77A(yWQvXaegofL~Iwn2R@Fkd(Ck}B=6Vtq=g1v}@Uz7e>w zmCoK9H2V`=xk<0rpweKKZFRkCDgv7I0au>U>3s*)&n8(^F%Ighf*Yd%I(q_8lh{VS z9Kc4_*fh-ouGFT}tB|kPNwlb<8Pu17={%^+{%%;fo97Ggx~%VeY;`-aMrvbV8*d;5a<(-w+ z(+suGxEqn!9F_FcGM{}GwbXVT0{3e1rM=2sMB17uWeZf&8-~64u=b`gleUUuLJj_?_??Xqm!1%&+-R znSdcFu+$J(d;KMkJ63gYZ|?g{lLadl57iC>J(}N$_zWCVIfUy=pDxU zev@^ZJ?43P>NB$a+5{goo#Yb0D0mrPZ2>tg1&g0`@G2wQ);7k zl7iP5oBJ%u4HasmMz9L<=8xVN_Rkh+nXJX~vd94!kDI}TZARSt4F89xH)5xh7YXi1F9TthKW9@l&be=$ zX=v?gv?Ghwv>Mwb!8tWxN(o+&s{0UvgWVg4D=CbBEgx~BwogGlDphCQlTrkGMZFbS z?-Kc9j+RniAEDHco&0{d87FETWfVD;^jrC!@V}wQTRtlse=vdODef_~%(Ei-upWPy zHVm9FnPaJ;6dEK_G@^80{|UYV!gQlj=w|W~Y`rZk%bR!EpO1gYyp?CiM7vJVC)U7_ z>Jp{fmtrxIN5Xt!!Zgj;i31m=)tP`!Ow)_Q945~#9Yw8ynP?V)57QYiyQeNllT73Z zrLjhr8O4vvV#XJ2V05ukg)M&@NEb=u@ujgommb}Z%!`XN~!7Q%BH?T?= z$%@Pp#1ovNcPUZaP)Z$0=Sbu+q_J+69(9Y%+Qt2k8k8cl(s2cO=v}N7Hb#;M(gEf~ z1N1@sND!`I5}gYJXhR7+kWQD#1ETqWk1_Qw8pb2gx`fGZr0iJLN{^aEX2GEgBH+6q zGi_k14Lr?D;1Q>`4v-vu6#93A&{uqg=WF*pn&)rjIx|imw+Ogt1@%slYnw2J#VMQI zhsLp+%!NL-pA*_|1jbEw-NKjgU;IvcF~!C=;oJ`nHfi*ggC(6miBMLElWiy)VBlGsOc zK`~>*QS21jKbtTm_X;N$eL)c{BK#sJC|l?S8^>X-v0Oi(SW7D>Cp7O`NGppxuiedm ze%0>P!hisK!P(Py)h)%or!&A)<0FRaS$cx|*XC(;42JWcKaMQD6s?KodJs>pRcj%P zZq5@DqLXvjYe0!d{uI2C?`$I%Xf1@$R#3V(>G(Du#@2O+VYG>nxyj1fNUP)aiCfEDDE_%b5gO-VwiXNJL9-3xAC_PpTlETcjN%dYDgsMYd2i-xITRv>( zM8SjQMfE>bL!Sb_d#)}pLMtc6QA*nL89xU1JJWh(X-^F|MwthQwNLwk^;MX8G|3|C zORAR6?KdwhXb%292%3|8kW}xdG0&*%od!`Jql07Eye(?YrR$|*W&m-6qCgr-U^6g& z(w3ysqMbFEDM>n=Zir5uK`Oam0r5>rYSIun0I;s$STdN;2BN1GP0+60RNWGbBTcAc^~}gtpS%#%*zD zAH6$49?M<~X_*1WcM}l@d6w_@3U5#R=aaR5+!=SBc9uJ_Iv`-#yTh_Wb%y2+LI6V? zgBA-aez*6b^Yxb4J+kaMWpfKTo7al>Cn)L72%yb&(qlUms1>WbT<0vad(Ox#U*MUD zyEQb2(7j3eeaoYBnfDF7GKLWa@l71(;-BFES_|O>b^M6nnUC}X>NhT{F=zKkCTpa- z=%<=->y+FPaZab^QAnPO0ie2!5rM~RTl|BsHPEA$Fs~W`bE_))2{CMO!pn3+xmGw% zUK9SlfW~433o@#2kDj6o2#EK=J$sz+#sq;lf!oA915Wc9GLt}FziB|sztj1X3g9M1 zxGMU2V;uc_V+6&6@m)V@7u~@lTNHUfNPH1akk`ca=8*)-$O&;-@VtQ>>Gh*Tln7yy z@%{jJZiEs)%&bRU*f{=FVZg^oiUfEB4HI#6O!+`KW-clun4lO9{^7Ol=4-X z8{Zf2TW^@(a?b<}tVZ65P{iS02_<$Y9v<4A2}yMH+udA#*PUj0+L3e&2qAU!OCqwo zjgL(nxD;uUirQ4}Pa66T&>8)d)>t^sJnl#WSzh#A8k=ieEzKNvXbxsw9VcSO-wW-5u}enicOk{2R6lc>uVo`V^{opA}6FZzSxvXY2MI&s!87fe|8awtC-EPYHXUTY|PiLYP+y=G}pE-{G{KKIkV{2G)vgp$iG(6 zxM@|jTy1}_tZfe)w`d8NTdb>?_0VnfSgQ2HXcDRLLplFZ-gpeNC$V>2(zaK9Z?;=? z0Q>h#{fQ<+nQIe*14&~Df&K(xpA6|20>?FN$h%i>MCQe-ZL9%Efe3$e(@&N~!bY2^ z%7V{o(M@kS7MZGShCde^Y(|}TvM!EQ*jS$xuunxbz2I29tg*=)E+B7;I=^9E6s~%x zz-&Bj*%#OAZ7wn0n@-hyn+X#Qf(#rM@VjGG0wmr|sLlu*}e9{$<;~#QF8$wBagZlr7 z0{&lbG7)^_JDVKRQBLYImVr0~{NG&mgvQZL@DY7(?ZuaXOlJ(IZt{;9?9SN#vM>es zb7cxz&Dz5S&Ju5O--tC73G`AOF_ z_pA_C_>lZZ=s_W@Unst^+kJ&6!CZTNHRW)XVQajGKzZ4TB6<{v{r10BTn#Xug}Xn# zFq#FOyCf85ZLl@G+F*J9X;>=fXU5hA|9N}IGNtZ4JZf?3_ahWCEIux7egR%|dU_dE HS@iz}K)8Y6 delta 184444 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 z

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 QPzS9G;IXhMYAE6T2XEh+^#A|> diff --git a/LDP/users/Peter-Bieringer/Linux+IPv6-HOWTO.de.sgml b/LDP/users/Peter-Bieringer/Linux+IPv6-HOWTO.de.sgml index 768a347e..108988c3 100644 --- a/LDP/users/Peter-Bieringer/Linux+IPv6-HOWTO.de.sgml +++ b/LDP/users/Peter-Bieringer/Linux+IPv6-HOWTO.de.sgml @@ -1980,19 +1980,18 @@ Chain intOUT (1 references) Präparation zur Nutzung von nftables Installieren einer Linux-Distribution, welche die Unterstützung für nftables bereits eingebaut hat. Beim Schreiben dieses Absatzes (Mai 2014) war mindestens Fedora Rawhide (Vorläufer der Version 21) mit entsprechendem Support und nftables version 0.2.0 versehen. Basis-nftables Konfiguration -Laden der Kernel-Module +Laden der Kernel-Module: Erzeugen der Filter-Tabellen -Erzeugen einer input chain in jeder Filter-Tabelle -Löschen der Regeln in iptables and ip6tables um Interferenzen zu vermeiden: +Erzeugen der Filter-Tabelle: +Erzeugen einer input chain in der Filter-Tabelle: + Einfache Filter-Policy mit nftables @@ -2000,49 +1999,76 @@ Chain intOUT (1 references) Erlauben von Paketen, die zu existierenden Einträgen in der Connection-Tracking-Tabelle gehören Erlauben von IPv4 und IPv6 ICMP echo-request (aka ping) -Erlauben einiger wichtiger IPv6 ICMP Pakete, ohne Zähler, dafür mit Hop-Limit-Prüfung (erhöht die Sicherheit) -Erlauben von eingehenden SSH-Verbindungen für IPv4 und IPv6 unter Nutzung der IP-Version unabhängigen Tabelle “inet” +Erlauben von eingehenden SSH-Verbindungen für IPv4 und IPv6 Reject/drop anderer Pakete + Ergebnis -Tabelle für IPv4 Filter -Tabelle für IP unabhängigen Filter += 0 tcp dport <= 65535 counter packets 0 bytes 0 reject + udp dport >= 0 udp dport <= 65535 counter packets 0 bytes 0 drop + log prefix counter packets 0 bytes 0 drop + } +} +]]> +Tipps für's Loggen +Für Logging wird ein zusätzliches Kernelmodul benötigt: +ACHTUNG, MOMENTAN KANN DER LOG-LEVEL NICHT ANGEGEBEN WERDEN, dadurch werden nftables-Ereignisse mit Log-Level kern.emerg ausgegeben - ES BESTEHT DIE GEFAHR, DASS DIE KONSOLE DADURCH ÜBERFLUTET WIRD! +Für erste Tests mit der Log-Option kann es nützlich sein, das Loggens für emergency-Ereignisse in z.B. /etc/rsyslog.conf zu deaktivieren mit Hilfe eines “#” am Anfang der Zeile und Neustart des logging-Daemons +Regel von oben, welche SSH auf Port 22 erlaubt, nun mit Logging: + +Filter-Policy mit nftables unter Benutzung der Tablellen “ip”, “ip6” und “inet” +Wie oben schon beschrieben, wenn die Regeln in den einzelnen Tabellen konfiguriert werden, muss gesichert sein, dass frühere “accepts” nicht aufgehoben werden. Eine einfache Lösung ist die Benutzung von Markierungen. Regeln, die Pakete erlauben, setzen die Marke mit “meta mark set xxxx”. Eine generische Regel erlaubt Pakete mit gesetzter Marke “mark xxxx”. Beispiel für ein resultierendes Filter-Regelwerk: +Tabelle für IPv6 Filter -Tabelle für IP unabhängigen Filter - +} +]]> <!-- anchor id="chapter-security" -->Sicherheit Sicherheit des Knoten diff --git a/LDP/users/Peter-Bieringer/Linux+IPv6-HOWTO.html b/LDP/users/Peter-Bieringer/Linux+IPv6-HOWTO.html index f62cbedc..6f4b510c 100644 --- a/LDP/users/Peter-Bieringer/Linux+IPv6-HOWTO.html +++ b/LDP/users/Peter-Bieringer/Linux+IPv6-HOWTO.html @@ -644,12 +644,12 @@ HREF="#CHAPTER-SECURITY" >

19.1. Node security
19.2. Access limitations
20.1. Modes of using encryption and authentication
20.2. Support in kernel (ESP and AH)
20.3. Automatic key exchange (IKE)
20.4. Additional informations:
21.1. General
21.2. Linux QoS using “tc”
23.2. Other programming languages
25.4. IPv6 Infrastructure
26. Revision history / Credits / The End
26.3. The End
18.5. Firewalling using nftables

nftables adds support for a IPv4/IPv6 aware table named “inet”, here only one rule matches both protocols

nftables adds in addition to protocol specific tables “ip” (IPv4) and “ip6” (IPv6) support for a IPv4/IPv6 aware table named “inet”. Using this table it's possible to add only one rule and match both protocols (in case of UDP and TCP).

Take care if rules are contained in more than one table, because the tables are checked in sequence:

IPv4-Packet --> table "ip"  --> table "inet" --> further checks
+IPv6-Packet --> table "ip6" --> table "inet" --> further checks

If table “ip6” accepts the packet, also table “inet” must accept the packet, otherwise it can be dropped by a later drop rule.


18.5.1. Preparation for nftables usage


18.5.2. Basic nftables configuration

Load kernel modules

Load kernel modules:

Create filter tables

Flush iptables and ip6tables to avoid interferences:

# nft add table ip   filter
-# nft add table ip6  filter
-# nft add table inet filter 
# iptables -F +# ip6tables -F

Create input chain in each filter table

Create filter table:

# nft add chain ip   filter input { type filter hook input priority 1 \; }
-# nft add chain ip6  filter input { type filter hook input priority 1 \; } 
-# nft add chain inet filter input { type filter hook input priority 0 \; }
# nft add table inet filter

Create input chain:


18.5.3. Simple filter policy with nftables18.5.3. Simple filter policy with nftables using only table “inet”

18.5.3.1. Configuration

# nft add rule inet filter input ct state established,related counter accept 
# nft add rule inet filter input ct state established,related counter accept
# nft add rule ip filter input icmp type { echo-request } counter accept 
-# nft add rule ip6 filter input icmpv6 type echo-request counter accept 
# nft add rule inet filter input meta nfproto ipv4 icmp type { echo-request } counter accept +# nft add rule inet filter input meta nfproto ipv6 icmpv6 type echo-request counter accept
# nft add rule ip6 filter input icmpv6 type
-¬  { nd-neighbor-solicit, nd-router-advert, nd-neighbor-advert }
-¬  ip6 hoplimit 1 accept
-# nft add rule ip6 filter input icmpv6 type
-¬  { nd-neighbor-solicit, nd-router-advert, nd-neighbor-advert }
-¬  ip6 hoplimit 255 accept
# nft add rule inet filter input meta nfproto ipv6 +¬ icmpv6 type { nd-neighbor-advert, nd-neighbor-solicit, nd-router-advert} ip6 hoplimit 1 accept +# nft add rule inet filter input meta nfproto ipv6 +¬ icmpv6 type { nd-neighbor-advert, nd-neighbor-solicit, nd-router-advert} ip6 hoplimit 255 counter accept
# nft add chain inet filter input { type filter hook input priority 0 \; }

Allow incoming SSH for IPv4 and IPv6, using therefore the IP version aware table “inet”

Allow incoming SSH for IPv4 and IPv6

Reject/drop others

# nft add rule inet filter input tcp dport 0-65535 reject
+# nft add rule inet filter input udp dport 0-65535 counter drop
+# nft add rule inet filter input counter drop

18.5.3.2. Result

Table for IPv4 filter

# nft list table ip filter
-table ip filter {
-	chain input {
-		 type filter hook input priority 1;
-		 icmp type { echo-request} counter packets 0 bytes 0 accept
-	}
-}

Table for IPv6 filter

# nft list table ip6 filter
-table ip6 filter {
-	chain input {
-		 type filter hook input priority 1;
-		 icmpv6 type echo-request counter packets 0 bytes 0 accept
-		 ip6 hoplimit 1 icmpv6 type
-¬		 { nd-neighbor-advert, nd-neighbor-solicit, nd-router-advert} accept
-		 ip6 hoplimit 255 icmpv6 type
-¬		 { nd-neighbor-advert, nd-neighbor-solicit, nd-router-advert} accept
-	}
-}

Table for IP version aware filter

# nft list table inet filter
-table inet filter {
+>table inet filter {
 	chain input {
 		 type filter hook input priority 0;
-		 ct state established,related counter packets 44 bytes 2288 accept
+		 ct state established,related counter packets 0 bytes 0 accept
+		 ip protocol icmp icmp type { echo-request} counter packets 0 bytes 0 accept
+		 ip6 nexthdr ipv6-icmp icmpv6 type echo-request counter packets 0 bytes 0 accept
+		 ip6 nexthdr ipv6-icmp ip6 hoplimit 1 icmpv6 type { nd-neighbor-advert, nd-neighbor-solicit, nd-router-advert} accept
+		 ip6 nexthdr ipv6-icmp ip6 hoplimit 255 icmpv6 type { nd-neighbor-advert, nd-neighbor-solicit, nd-router-advert} accept
 		 tcp dport ssh ct state new tcp flags & (syn | ack) == syn counter packets 0 bytes 0 accept
+		 tcp dport >= 0 tcp dport <= 65535 counter packets 0 bytes 0 reject
+		 udp dport >= 0 udp dport <= 65535 counter packets 0 bytes 0 drop
+		 log prefix counter packets 0 bytes 0 drop
 	}
-} 

18.5.3.3. Hints for logging

To enable logging, an additonal kernel module must be loaded

# modprobe xt_LOG

BUT TAKE CARE, IT LOOKS LIKE THAT NO LOG LEVEL CAN BE SPEFICIED CURRENTLY IN nftables, resulting that events are logged with kern.emerg - POSSIBILITY OF FLODDING THE CONSOLE WITH LOG ENTRIES!

Fir initial test with logging it can be useful to disable kernel console logging in e.g. /etc/rsyslog.conf by putting a “#” in front of the related entry and restart logging daemon

#*.emerg    :omusrmsg:* 

Rule from above accepting SSH on port 22, but now with logging:

# nft add rule inet filter input tcp dport 22 ct state new tcp flags \& \(syn \| ack\) == syn log prefix \"inet/input/accept: \" counter accept

18.5.4. Filter policy with nftables using tables “ip”, “ip6” and “inet”

As written above, if rules should be stored in related tables, it must be assured that earlier accepts are not discarded in the further table. This can be done using “meta mark set xxxx” on every accept rule and generic rules which accepts packets with “mark xxxx”. A resulting filter set would look like the following:

# for table in ip ip6 inet; do nft list table $table filter; done
+table ip filter {
+	chain input {
+		 type filter hook input priority 0;
+		 ct state established,related counter packets 241 bytes 25193 accept
+		 counter packets 2 bytes 120 mark 0x00000100 accept
+		 icmp type { echo-request} counter packets 0 bytes 0 meta mark set 0x00000100 accept
+	}
+}
+table ip6 filter {
+	chain input {
+		 type filter hook input priority 0;
+		 ct state established,related counter packets 14 bytes 4077 accept
+		 counter packets 4 bytes 408 mark 0x00000100 accept
+		 icmpv6 type echo-request counter packets 1 bytes 104 meta mark set 0x00000100
+		 icmpv6 type { nd-neighbor-advert, nd-neighbor-solicit, nd-router-advert} counter packets 2 bytes 224 meta mark set 0x00000100 accept
+	}
+}
+table inet filter {
+	chain input {
+		 type filter hook input priority 0;
+		 ct state established,related counter packets 307 bytes 31974 accept
+		 counter packets 6 bytes 528 mark 0x00000100 accept
+		 tcp dport ssh ct state new tcp flags & (syn | ack) == syn log prefix "inet/input/accept: " meta mark set 0x00000100 counter packets 3 bytes 200 accept
+		 log prefix "inet/input/reject: " counter packets 0 bytes 0 reject
+	}
+}

19.1. Node security


19.2. Access limitations


19.3.1. Legal issues


19.3.2. Security auditing using IPv6-enabled netcat


19.3.3. Security auditing using IPv6-enabled nmap


19.3.4. Security auditing using IPv6-enabled strobe


19.3.5. Security auditing using online tools


19.3.6. Audit results


20.1. Modes of using encryption and authentication


20.1.1. Transport mode


20.1.2. Tunnel mode


20.2. Support in kernel (ESP and AH)

20.2.1. Support in vanilla Linux kernel 2.4.x


20.2.2. Support in vanilla Linux kernel 2.6.x


20.3. Automatic key exchange (IKE)


20.3.1. IKE daemon “racoon”


20.3.1.1. Manipulation of the IPsec SA/SP database with the tool “setkey”


20.3.1.2. Configuration of the IKE daemon “racoon”


20.3.1.3. Running IPsec with IKE daemon “racoon”


20.3.2. IKE daemon “pluto”


20.3.2.1. Configuration of the IKE daemon “pluto”


20.3.2.2. Running IPsec with IKE daemon “pluto”


20.4. Additional informations:


21.1. General


21.2. Linux QoS using “tc”


21.2.1. Example for a constant bitrate queuing


21.2.1.1. Root qdisc definition


21.2.1.2. QoS class definition


21.2.1.3. QoS filter definition


21.2.1.4. Testing filter definitions using iperf


22.1.1. Listening on IPv6 addresses


22.1.1.1. Enable BIND named for listening on IPv6 address


22.1.1.2. Disable BIND named for listening on IPv6 address


22.1.2. IPv6 enabled Access Control Lists (ACL)


22.1.3. Sending queries with dedicated IPv6 address


22.1.4. Per zone defined dedicated IPv6 addresses


22.1.4.1. Transfer source address


22.1.4.2. Notify source address


22.1.5. IPv6 DNS zone files examples


22.1.6. Serving IPv6 related DNS data


22.1.6.1. Current best practice


22.1.7. Checking IPv6-enabled connect


22.1.7.1. IPv6 connect, but denied by ACL


22.1.7.2. Successful IPv6 connect


22.3.1. Listening on IPv6 addresses


22.3.1.1. Virtual host listen on an IPv6 address only


22.3.1.2. Virtual host listen on an IPv6 and on an IPv4 address


22.3.1.3. Additional notes


22.4.1. Configuring radvd

22.4.1.1. Simple configuration


22.4.1.2. Special 6to4 configuration


22.4.2. Debugging


22.5.1. Configuration of the DHCPv6 server (dhcp6s)

22.5.1.1. Simple configuration


22.5.2. Configuration of the DHCPv6 client (dhcp6c)

22.5.2.1. Simple configuration


22.5.3. Usage

22.5.3.1. dhcpv6_server


22.5.3.2. dhcpv6_client


22.5.4. Debugging

22.5.4.1. dhcpv6_server


22.5.4.2. dhcpv6_client


22.6.1. Configuration of the ISC DHCP server for IPv6 (dhcpd)


22.6.1.1. Simple configuration


22.6.2. Usage

22.6.2.1. dhcpd


22.7.1. Configuration of the Dibbler DHCP server for IPv6

22.7.1.1. Simple configuration


22.7.2. Usage

22.7.2.1. dibbler-server


22.8.1. Filtering capabilities


22.8.2. Which program uses tcp_wrapper


22.8.3. Usage


22.8.3.1. Example for /etc/hosts.allow


22.8.3.2. Example for /etc/hosts.deny


22.8.4. Logging


22.8.4.1. Refused connection


22.8.4.2. Permitted connection

22.9.1. Listening on IPv6 addresses

22.10.1. Listening on IPv6 addresses


23.1.1. Address Structures


23.1.1.1. IPv4 sockaddr_in


23.1.1.2. IPv6 sockaddr_in6


23.1.1.3. Generic Addresses


23.1.2. Lookup Functions


23.1.3. Quirks Encountered


23.1.3.1. IPv4 Mapped Addresses


23.1.3.2. Cannot Specify the Scope Identifier in /etc/hosts


23.1.3.3. Client & Server Residing on the Same Machine


23.1.4. Putting It All Together (A Client-Server Programming Example)

Porting applications to IPv6 HowTo. For the record, the source code presented here is original, developed from scratch, and any similarity between it and any other publicly available 'daytime' example is purely coincidental.]. The source code presented in this section was developed and tested on a RedHat Linux release using the 2.6 kernel (2.6.9 to be specific). Readers may use the source code freely, so long as proper credit is attributed; but of course the standard disclaimer must be given first:


23.1.4.1. 'Daytime' Server Code


23.1.4.2. 'Daytime' TCP Client Code


23.1.4.3. 'Daytime' UDP Client Code


23.2. Other programming languages

25.6.1. Testing tools


25.6.2. Information retrievement


25.6.3. IPv6 Looking Glasses


25.6.4. Helper applications


Chapter 26. Revision history / Credits / The End


26.1.1. Releases 0.x


26.2.2. Other credits

26.2.2.1. Document technique related


26.3. The End

\end_layout @@ -1296,6 +1298,7 @@ For real use on your system command line or in scripts this has to be replaced \end_layout \begin_layout Code + 1.2.3.4 \end_layout @@ -1308,6 +1311,7 @@ Commands executable as non-root user begin with $, e.g. \end_layout \begin_layout Code + $ whoami \end_layout @@ -1316,6 +1320,7 @@ Commands executable as root user begin with #, e.g. \end_layout \begin_layout Code + # whoami \end_layout @@ -1510,58 +1515,72 @@ The first IPv6 related network code was added to the Linux kernel 2.1.8 in \end_layout \begin_layout Code + diff -u --recursive --new-file v2.1.7/linux/include/linux/in6.h \end_layout \begin_layout Code + ¬ linux/include/linux/in6.h \end_layout \begin_layout Code + --- v2.1.7/linux/include/linux/in6.h Thu Jan 1 02:00:00 1970 \end_layout \begin_layout Code + +++ linux/include/linux/in6.h Sun Nov 3 11:04:42 1996 \end_layout \begin_layout Code + @@ -0,0 +1,99 @@ \end_layout \begin_layout Code + +/* \end_layout \begin_layout Code + + * Types and definitions for AF_INET6 \end_layout \begin_layout Code + + * Linux INET6 implementation \end_layout \begin_layout Code + + * + * Authors: \end_layout \begin_layout Code + + * Pedro Roque <******> \end_layout \begin_layout Code + + * \end_layout \begin_layout Code + + * Source: \end_layout \begin_layout Code + + * IPv6 Program Interfaces for BSD Systems \end_layout \begin_layout Code + + * \end_layout @@ -1670,6 +1689,7 @@ As previously mentioned, IPv6 addresses are 128 bits long. \end_layout \begin_layout Code + 2^128-1: 340282366920938463463374607431768211455 \end_layout @@ -1692,6 +1712,7 @@ nibble \end_layout \begin_layout Code + 2^128-1: 0xffffffffffffffffffffffffffffffff \end_layout @@ -1709,6 +1730,7 @@ This representation is still not very convenient (possible mix-up or loss \end_layout \begin_layout Code + 2^128-1: ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff \end_layout @@ -1718,6 +1740,7 @@ A usable address (see address types later) is e.g.: \end_layout \begin_layout Code + 2001:0db8:0100:f101:0210:a4ff:fee3:9566 \end_layout @@ -1728,10 +1751,12 @@ For simplifications, leading zeros of each 16 bit block can be omitted: \end_layout \begin_layout Code + 2001:0db8:0100:f101:0210:a4ff:fee3:9566 -> \end_layout \begin_layout Code + ¬ 2001:db8:100:f101:210:a4ff:fee3:9566 \end_layout @@ -1757,6 +1782,7 @@ ion. \end_layout \begin_layout Code + 2001:0db8:100:f101:0:0:0:1 -> 2001:db8:100:f101::1 \end_layout @@ -1766,6 +1792,7 @@ The biggest reduction is seen by the IPv6 localhost address: \end_layout \begin_layout Code + 0000:0000:0000:0000:0000:0000:0000:0001 -> ::1 \end_layout @@ -1789,10 +1816,12 @@ target "http://www.faqs.org/rfcs/rfc1924.html" \end_layout \begin_layout Code + # ipv6calc --addr_to_base85 2001:0db8:0100:f101:0210:a4ff:fee3:9566 \end_layout \begin_layout Code + 9R}vSQZ1W=9A_Q74Lz&R \end_layout @@ -2003,6 +2032,7 @@ This is a special address for the loopback interface, similiar to IPv4 with \end_layout \begin_layout Code + 0000:0000:0000:0000:0000:0000:0000:0001 \end_layout @@ -2011,6 +2041,7 @@ or compressed: \end_layout \begin_layout Code + ::1 \end_layout @@ -2046,6 +2077,7 @@ any \end_layout \begin_layout Code + 0000:0000:0000:0000:0000:0000:0000:0000 \end_layout @@ -2054,6 +2086,7 @@ or: \end_layout \begin_layout Code + :: \end_layout @@ -2089,6 +2122,7 @@ These addresses are defined with a special prefix of length 96 (a.b.c.d is \end_layout \begin_layout Code + 0:0:0:0:0:ffff:a.b.c.d/96 \end_layout @@ -2097,6 +2131,7 @@ or in compressed format \end_layout \begin_layout Code + ::ffff:a.b.c.d/96 \end_layout @@ -2105,6 +2140,7 @@ For example, the IPv4 address 1.2.3.4 looks like this: \end_layout \begin_layout Code + ::ffff:1.2.3.4 \end_layout @@ -2133,6 +2169,7 @@ reference "tunneling-6to4" \end_layout \begin_layout Code + 0:0:0:0:0:0:a.b.c.d/96 \end_layout @@ -2141,6 +2178,7 @@ or in compressed format \end_layout \begin_layout Code + ::a.b.c.d/96 \end_layout @@ -2221,18 +2259,22 @@ x \end_layout \begin_layout Code + fe8x: <- currently the only one in use \end_layout \begin_layout Code + fe9x: \end_layout \begin_layout Code + feax: \end_layout \begin_layout Code + febx: \end_layout @@ -2278,18 +2320,22 @@ It begins with: \end_layout \begin_layout Code + fecx: <- most commonly used \end_layout \begin_layout Code + fedx: \end_layout \begin_layout Code + feex: \end_layout \begin_layout Code + fefx: \end_layout @@ -2364,10 +2410,12 @@ It begins with: \end_layout \begin_layout Code + fcxx: \end_layout \begin_layout Code + fdxx: <- currently the only one in use \end_layout @@ -2390,6 +2438,7 @@ target "http://www.goebel-consult.de/ipv6/createLULA" \end_layout \begin_layout Code + fd0f:8b72:ac90::/48 \end_layout @@ -2421,10 +2470,12 @@ x \end_layout \begin_layout Code + 2xxx: \end_layout \begin_layout Code + 3xxx: \end_layout @@ -2455,6 +2506,7 @@ These were the first global addresses which were defined and in use. \end_layout \begin_layout Code + 3ffe: \end_layout @@ -2463,6 +2515,7 @@ Example: \end_layout \begin_layout Code + 3ffe:ffff:100:f102::1 \end_layout @@ -2472,6 +2525,7 @@ A special 6bone test address which will never be globally unique begins \end_layout \begin_layout Code + 3ffe:ffff: \end_layout @@ -2523,6 +2577,7 @@ target "http://www.faqs.org/rfcs/rfc2893.html" \end_layout \begin_layout Code + 2002: \end_layout @@ -2531,6 +2586,7 @@ For example, representing 192.168.1.1/5: \end_layout \begin_layout Code + 2002:c0a8:0101:5::1 \end_layout @@ -2540,10 +2596,12 @@ A small shell command line can help you generating such address out of a \end_layout \begin_layout Code + ipv4="1.2.3.4"; sla="5"; printf "2002:%02x%02x:%02x%02x:%04x::1" `echo $ipv4 \end_layout \begin_layout Code + ¬ | tr "." " "` $sla \end_layout @@ -2577,6 +2635,7 @@ These addresses are delegated to Internet service providers (ISP) and begin \end_layout \begin_layout Code + 2001: \end_layout @@ -2615,10 +2674,12 @@ target "http://www.faqs.org/rfcs/rfc3849.html" \end_layout \begin_layout Code + 3fff:ffff::/32 \end_layout \begin_layout Code + 2001:0DB8::/32 EXAMPLENET-WF \end_layout @@ -2647,6 +2708,7 @@ xx \end_layout \begin_layout Code + ffxy: \end_layout @@ -2735,6 +2797,7 @@ An example of this address looks like \end_layout \begin_layout Code + ff02::1:ff00:1234 \end_layout @@ -2791,6 +2854,7 @@ A simple example for an anycast address is the subnet-router anycast address. \end_layout \begin_layout Code + 2001:db8:100:f101:210:a4ff:fee3:9566/64 <- Node's address \end_layout @@ -2800,6 +2864,7 @@ The subnet-router anycast address will be created blanking the suffix (least \end_layout \begin_layout Code + 2001:db8:100:f101::/64 <- subnet-router anycast address \end_layout @@ -2839,6 +2904,7 @@ E.g. \end_layout \begin_layout Code + 00:10:a4:01:23:45 \end_layout @@ -2856,6 +2922,7 @@ target "http://standards.ieee.org/regauth/oui/tutorials/EUI64.html" \end_layout \begin_layout Code + 0210:a4ff:fe01:2345 \end_layout @@ -2865,6 +2932,7 @@ With a given prefix, the result is the IPv6 address shown in example above: \end_layout \begin_layout Code + 2001:0db8:0100:f101:0210:a4ff:fe01:2345 \end_layout @@ -2917,6 +2985,7 @@ For servers, it's probably easier to remember simpler addresses, this can \end_layout \begin_layout Code + 2001:0db8:100:f101::1 \end_layout @@ -3008,6 +3077,7 @@ An example: \end_layout \begin_layout Code + 2001:0db8:100:1:2:3:4:5/48 \end_layout @@ -3021,6 +3091,7 @@ Network: \end_layout \begin_layout Code + 2001:0db8:0100:0000:0000:0000:0000:0000 \end_layout @@ -3029,6 +3100,7 @@ Netmask: \end_layout \begin_layout Code + ffff:ffff:ffff:0000:0000:0000:0000:0000 \end_layout @@ -3047,10 +3119,12 @@ For example if a routing table shows following entries (list is not complete): \end_layout \begin_layout Code + 2001:0db8:100::/48 :: U 1 0 0 sit1 \end_layout \begin_layout Code + 2000::/3 ::192.88.99.1 UG 1 0 0 tun6to4 \end_layout @@ -3060,10 +3134,12 @@ Shown destination addresses of IPv6 packets will be routed through shown \end_layout \begin_layout Code + 2001:0db8:100:1:2:3:4:5/48 -> routed through device sit1 \end_layout \begin_layout Code + 2001:0db8:200:1:2:3:4:5/48 -> routed through device tun6to4 \end_layout @@ -3127,6 +3203,7 @@ To check, whether your current running kernel supports IPv6, take a look \end_layout \begin_layout Code + /proc/net/if_inet6 \end_layout @@ -3136,6 +3213,7 @@ A short automatical test looks like: \end_layout \begin_layout Code + # test -f /proc/net/if_inet6 && echo "Running kernel is IPv6 ready" \end_layout @@ -3154,6 +3232,7 @@ You can try to load the IPv6 module executing \end_layout \begin_layout Code + # modprobe ipv6 \end_layout @@ -3164,6 +3243,7 @@ If this is successful, this module should be listed, testable with following \end_layout \begin_layout Code + # lsmod |grep -w 'ipv6' && echo "IPv6 module successfully loaded" \end_layout @@ -3188,6 +3268,7 @@ Its possible to automatically load the IPv6 module on demand. \end_layout \begin_layout Code + alias net-pf-10 ipv6 # automatically load IPv6 module on demand \end_layout @@ -3197,6 +3278,7 @@ It's also possible to disable automatically loading of the IPv6 module using \end_layout \begin_layout Code + alias net-pf-10 off # disable automatically load of IPv6 module on demand \end_layout @@ -3454,10 +3536,12 @@ Auto-magically check: \end_layout \begin_layout Code + # /sbin/ifconfig -? 2>& 1|grep -qw 'inet6' && echo "utility 'ifconfig' is \end_layout \begin_layout Code + ¬ IPv6-ready" \end_layout @@ -3471,6 +3555,7 @@ route \end_layout \begin_layout Code + # /sbin/route -? 2>& 1|grep -qw 'inet6' && echo "utility 'route' is IPv6-ready" \end_layout @@ -3489,6 +3574,7 @@ Alexey N. \end_layout \begin_layout Code + # /sbin/ip 2>&1 |grep -qw 'inet6' && echo "utility 'ip' is IPv6-ready" \end_layout @@ -3552,14 +3638,17 @@ Usage \end_layout \begin_layout Code + # ping6 \end_layout \begin_layout Code + # ping6 \end_layout \begin_layout Code + # ping6 [-I ] \end_layout @@ -3569,6 +3658,7 @@ Some implementation also support % suffix instead of using -I , \end_layout \begin_layout Code + # ping6 % \end_layout @@ -3577,14 +3667,17 @@ Example \end_layout \begin_layout Code + # ping6 -c 1 ::1 \end_layout \begin_layout Code + PING ::1(::1) from ::1 : 56 data bytes \end_layout \begin_layout Code + 64 bytes from ::1: icmp_seq=0 hops=64 time=292 usec \end_layout @@ -3593,14 +3686,17 @@ PING ::1(::1) from ::1 : 56 data bytes \end_layout \begin_layout Code + --- ::1 ping statistics --- \end_layout \begin_layout Code + 1 packets transmitted, 1 packets received, 0% packet loss \end_layout \begin_layout Code + round-trip min/avg/max/mdev = 0.292/0.292/0.292/0.000 ms \end_layout @@ -3631,10 +3727,12 @@ Using link-local addresses for an IPv6 ping, the kernel does not know through \end_layout \begin_layout Code + # ping6 fe80::212:34ff:fe12:3456 \end_layout \begin_layout Code + connect: Invalid argument \end_layout @@ -3643,18 +3741,22 @@ In this case you have to specify the interface additionally like shown here: \end_layout \begin_layout Code + # ping6 -I eth0 -c 1 fe80::2e0:18ff:fe90:9205 \end_layout \begin_layout Code + PING fe80::212:23ff:fe12:3456(fe80::212:23ff:fe12:3456) from \end_layout \begin_layout Code + ¬ fe80::212:34ff:fe12:3478 eth0: 56 data bytes \end_layout \begin_layout Code + 64 bytes from fe80::212:23ff:fe12:3456: icmp_seq=0 hops=64 time=445 usec \end_layout @@ -3663,14 +3765,17 @@ PING fe80::212:23ff:fe12:3456(fe80::212:23ff:fe12:3456) from \end_layout \begin_layout Code + --- fe80::2e0:18ff:fe90:9205 ping statistics --- \end_layout \begin_layout Code + 1 packets transmitted, 1 packets received, 0% packet loss round-trip \end_layout \begin_layout Code + ¬ min/avg/max/mdev = 0.445/0.445/0.445/0.000 ms \end_layout @@ -3679,6 +3784,7 @@ Example for % notation: \end_layout \begin_layout Code + # ping6 -c 1 fe80::2e0:18ff:fe90:9205%eth0 \end_layout @@ -3692,18 +3798,22 @@ An interesting mechanism to detect IPv6-active hosts on a link is to ping6 \end_layout \begin_layout Code + # ping6 -I eth0 ff02::1 \end_layout \begin_layout Code + PING ff02::1(ff02::1) from fe80:::2ab:cdff:feef:0123 eth0: 56 data bytes \end_layout \begin_layout Code + 64 bytes from ::1: icmp_seq=1 ttl=64 time=0.104 ms \end_layout \begin_layout Code + 64 bytes from fe80::212:34ff:fe12:3450: icmp_seq=1 ttl=64 time=0.549 ms (DUP!) \end_layout @@ -3713,6 +3823,7 @@ Example for % notation: \end_layout \begin_layout Code + # ping6 ff02::1%eth0 \end_layout @@ -3743,42 +3854,51 @@ iputils \end_layout \begin_layout Code + # traceroute6 www.6bone.net \end_layout \begin_layout Code + traceroute to 6bone.net (3ffe:b00:c18:1::10) from 2001:0db8:0000:f101::2, 30 \end_layout \begin_layout Code + ¬ hops max, 16 byte packets \end_layout \begin_layout Code + 1 localipv6gateway (2001:0db8:0000:f101::1) 1.354 ms 1.566 ms 0.407 ms \end_layout \begin_layout Code + 2 swi6T1-T0.ipv6.switch.ch (3ffe:2000:0:400::1) 90.431 ms 91.956 ms 92.377 ms \end_layout \begin_layout Code + 3 3ffe:2000:0:1::132 (3ffe:2000:0:1::132) 118.945 ms 107.982 ms 114.557 ms \end_layout \begin_layout Code + 4 3ffe:c00:8023:2b::2 (3ffe:c00:8023:2b::2) 968.468 ms 993.392 ms 973.441 ms \end_layout \begin_layout Code + 5 3ffe:2e00:e:c::3 (3ffe:2e00:e:c::3) 507.784 ms 505.549 ms 508.928 ms \end_layout \begin_layout Code + 6 www.6bone.net (3ffe:b00:c18:1::10) 1265.85 ms * 1304.74 ms \end_layout @@ -3820,42 +3940,52 @@ iputils \end_layout \begin_layout Code + # tracepath6 www.6bone.net \end_layout \begin_layout Code + 1?: [LOCALHOST] pmtu 1480 \end_layout \begin_layout Code + 1: 3ffe:401::2c0:33ff:fe02:14 150.705ms \end_layout \begin_layout Code + 2: 3ffe:b00:c18::5 267.864ms \end_layout \begin_layout Code + 3: 3ffe:b00:c18::5 asymm 2 266.145ms pmtu 1280 \end_layout \begin_layout Code + 3: 3ffe:3900:5::2 asymm 4 346.632ms \end_layout \begin_layout Code + 4: 3ffe:28ff:ffff:4::3 asymm 5 365.965ms \end_layout \begin_layout Code + 5: 3ffe:1cff:0:ee::2 asymm 4 534.704ms \end_layout \begin_layout Code + 6: 3ffe:3800::1:1 asymm 4 578.126ms !N \end_layout \begin_layout Code + Resume: pmtu 1280 \end_layout @@ -3944,26 +4074,32 @@ IPv6 ping to \end_layout \begin_layout Code + # tcpdump -t -n -i eth0 -s 512 -vv ip6 or proto ipv6 \end_layout \begin_layout Code + tcpdump: listening on eth0 \end_layout \begin_layout Code + 2001:0db8:100:f101:2e0:18ff:fe90:9205 > 2001:0db8:100:f101::1: icmp6: echo \end_layout \begin_layout Code + ¬ request (len 64, hlim 64) \end_layout \begin_layout Code + 2001:0db8:100:f101::1 > 2001:0db8:100:f101:2e0:18ff:fe90:9205: icmp6: echo \end_layout \begin_layout Code + ¬ reply (len 64, hlim 64) \end_layout @@ -3980,42 +4116,52 @@ IPv6 ping to \end_layout \begin_layout Code + # tcpdump -t -n -i ppp0 -s 512 -vv ip6 or proto ipv6 \end_layout \begin_layout Code + tcpdump: listening on ppp0 \end_layout \begin_layout Code + 1.2.3.4 > 5.6.7.8: 2002:ffff:f5f8::1 > 2001:0db8:100::1: icmp6: echo request \end_layout \begin_layout Code + ¬ (len 64, hlim 64) (DF) (ttl 64, id 0, len 124) \end_layout \begin_layout Code + 5.6.7.8 > 1.2.3.4: 2001:0db8:100::1 > 2002:ffff:f5f8::1: icmp6: echo reply (len \end_layout \begin_layout Code + ¬ 64, hlim 61) (ttl 23, id 29887, len 124) \end_layout \begin_layout Code + 1.2.3.4 > 5.6.7.8: 2002:ffff:f5f8::1 > 2001:0db8:100::1: icmp6: echo request \end_layout \begin_layout Code + ¬ (len 64, hlim 64) (DF) (ttl 64, id 0, len 124) \end_layout \begin_layout Code + 5.6.7.8 > 1.2.3.4: 2001:0db8:100::1 > 2002:ffff:f5f8::1: icmp6: echo reply (len \end_layout \begin_layout Code + ¬ 64, hlim 61) (ttl 23, id 29919, len 124) \end_layout @@ -4099,6 +4245,7 @@ Because of security updates in the last years every Domain Name System (DNS) \end_layout \begin_layout Code + # host -t AAAA www.join.uni-muenster.de \end_layout @@ -4107,17 +4254,20 @@ and should show something like following: \end_layout \begin_layout Code + www.join.uni-muenster.de. is an alias for tolot.join.uni-muenster.de. \end_layout \begin_layout Code + tolot.join.uni-muenster.de. has AAAA address \end_layout \begin_layout Code + ¬ 2001:638:500:101:2e0:81ff:fe24:37c6 \end_layout @@ -4131,25 +4281,30 @@ IPv6-ready telnet clients are available. \end_layout \begin_layout Code + $ telnet 3ffe:400:100::1 80 \end_layout \begin_layout Code + Trying 3ffe:400:100::1... \end_layout \begin_layout Code + Connected to 3ffe:400:100::1. \end_layout \begin_layout Code + Escape character is '^]'. \end_layout \begin_layout Code + HEAD / HTTP/1.0 \end_layout @@ -4158,38 +4313,47 @@ HEAD / HTTP/1.0 \end_layout \begin_layout Code + HTTP/1.1 200 OK \end_layout \begin_layout Code + Date: Sun, 16 Dec 2001 16:07:21 \end_layout \begin_layout Code + GMT Server: Apache/2.0.28 (Unix) \end_layout \begin_layout Code + Last-Modified: Wed, 01 Aug 2001 21:34:42 GMT \end_layout \begin_layout Code + ETag: "3f02-a4d-b1b3e080" \end_layout \begin_layout Code + Accept-Ranges: bytes \end_layout \begin_layout Code + Content-Length: 2637 \end_layout \begin_layout Code + Connection: close \end_layout \begin_layout Code + Content-Type: text/html; charset=ISO-8859-1 \end_layout @@ -4198,6 +4362,7 @@ Content-Type: text/html; charset=ISO-8859-1 \end_layout \begin_layout Code + Connection closed by foreign host. \end_layout @@ -4238,14 +4403,17 @@ Current versions of openssh are IPv6-ready. \end_layout \begin_layout Code + $ ssh -6 ::1 \end_layout \begin_layout Code + user@::1's password: ****** \end_layout \begin_layout Code + [user@ipv6host user]$ \end_layout @@ -4792,10 +4960,12 @@ Usage: \end_layout \begin_layout Code + # ip link set dev up \end_layout \begin_layout Code + # ip link set dev down \end_layout @@ -4808,10 +4978,12 @@ Example: \end_layout \begin_layout Code + # ip link set dev eth0 up \end_layout \begin_layout Code + # ip link set dev eth0 down \end_layout @@ -4825,10 +4997,12 @@ Usage: \end_layout \begin_layout Code + # /sbin/ifconfig up \end_layout \begin_layout Code + # /sbin/ifconfig down \end_layout @@ -4837,10 +5011,12 @@ Example: \end_layout \begin_layout Code + # /sbin/ifconfig eth0 up \end_layout \begin_layout Code + # /sbin/ifconfig eth0 down \end_layout @@ -4891,6 +5067,7 @@ Usage: \end_layout \begin_layout Code + # /sbin/ip -6 addr show dev \end_layout @@ -4899,22 +5076,27 @@ Example for a static configured host: \end_layout \begin_layout Code + # /sbin/ip -6 addr show dev eth0 \end_layout \begin_layout Code + 2: eth0: \end_layout @@ -4977,18 +5168,22 @@ Example (output filtered with grep to display only IPv6 addresses). \end_layout \begin_layout Code + # /sbin/ifconfig eth0 |grep "inet6 addr:" \end_layout \begin_layout Code + inet6 addr: fe80::210:a4ff:fee3:9566/10 Scope:Link \end_layout \begin_layout Code + inet6 addr: 2001:0db8:0:f101::1/64 Scope:Global \end_layout \begin_layout Code + inet6 addr: fec0:0:0:f101::1/64 Scope:Site \end_layout @@ -5010,6 +5205,7 @@ Usage: \end_layout \begin_layout Code + # /sbin/ip -6 addr add / dev \end_layout @@ -5018,6 +5214,7 @@ Example: \end_layout \begin_layout Code + # /sbin/ip -6 addr add 2001:0db8:0:f101::1/64 dev eth0 \end_layout @@ -5031,6 +5228,7 @@ Usage: \end_layout \begin_layout Code + # /sbin/ifconfig inet6 add / \end_layout @@ -5039,6 +5237,7 @@ Example: \end_layout \begin_layout Code + # /sbin/ifconfig eth0 inet6 add 2001:0db8:0:f101::1/64 \end_layout @@ -5061,6 +5260,7 @@ Usage: \end_layout \begin_layout Code + # /sbin/ip -6 addr del / dev \end_layout @@ -5069,6 +5269,7 @@ Example: \end_layout \begin_layout Code + # /sbin/ip -6 addr del 2001:0db8:0:f101::1/64 dev eth0 \end_layout @@ -5082,6 +5283,7 @@ Usage: \end_layout \begin_layout Code + # /sbin/ifconfig inet6 del / \end_layout @@ -5090,6 +5292,7 @@ Example: \end_layout \begin_layout Code + # /sbin/ifconfig eth0 inet6 del 2001:0db8:0:f101::1/64 \end_layout @@ -5142,6 +5345,7 @@ Usage: \end_layout \begin_layout Code + # /sbin/ip -6 route show [dev ] \end_layout @@ -5151,22 +5355,27 @@ Example: \end_layout \begin_layout Code + # /sbin/ip -6 route show dev eth0 \end_layout \begin_layout Code + 2001:0db8:0:f101::/64 proto kernel metric 256 mtu 1500 advmss 1440 \end_layout \begin_layout Code + fe80::/10 proto kernel metric 256 mtu 1500 advmss 1440 \end_layout \begin_layout Code + ff00::/8 proto kernel metric 256 mtu 1500 advmss 1440 \end_layout \begin_layout Code + default proto kernel metric 256 mtu 1500 advmss 1440 \end_layout @@ -5180,6 +5389,7 @@ Usage: \end_layout \begin_layout Code + # /sbin/route -A inet6 \end_layout @@ -5191,34 +5401,42 @@ Example (output is filtered for interface eth0). \end_layout \begin_layout Code + # /sbin/route -A inet6 |grep -w "eth0" \end_layout \begin_layout Code + 2001:0db8:0:f101 ::/64 :: UA 256 0 0 eth0 <- Interface route for global \end_layout \begin_layout Code + ¬ address \end_layout \begin_layout Code + fe80::/10 :: UA 256 0 0 eth0 <- Interface route for link-local \end_layout \begin_layout Code + ¬ address \end_layout \begin_layout Code + ff00::/8 :: UA 256 0 0 eth0 <- Interface route for all multicast \end_layout \begin_layout Code + ¬ addresses \end_layout \begin_layout Code + ::/0 :: UDA 256 0 0 eth0 <- Automatic default route \end_layout @@ -5241,10 +5459,12 @@ Usage: \end_layout \begin_layout Code + # /sbin/ip -6 route add / via \end_layout \begin_layout Code + ¬ [dev ] \end_layout @@ -5253,6 +5473,7 @@ Example: \end_layout \begin_layout Code + # /sbin/ip -6 route add default via 2001:0db8:0:f101::1 \end_layout @@ -5266,10 +5487,12 @@ Usage: \end_layout \begin_layout Code + # /sbin/route -A inet6 add / gw \end_layout \begin_layout Code + ¬ [dev ] \end_layout @@ -5287,6 +5510,7 @@ Following shown example adds a default route through gateway \end_layout \begin_layout Code + # /sbin/route -A inet6 add default gw 2001:0db8:0:f101::1 \end_layout @@ -5310,10 +5534,12 @@ Usage: \end_layout \begin_layout Code + # /sbin/ip -6 route del / via \end_layout \begin_layout Code + ¬ [dev ] \end_layout @@ -5322,6 +5548,7 @@ Example: \end_layout \begin_layout Code + # /sbin/ip -6 route del default via 2001:0db8:0:f101::1 \end_layout @@ -5335,10 +5562,12 @@ Usage: \end_layout \begin_layout Code + # /sbin/route -A inet6 del / gw [dev \end_layout \begin_layout Code + ¬ ] \end_layout @@ -5347,6 +5576,7 @@ Example for removing upper added route again: \end_layout \begin_layout Code + # /sbin/route -A inet6 del default gw 2001:0db8:0:f101::1 \end_layout @@ -5369,10 +5599,12 @@ Usage: \end_layout \begin_layout Code + # /sbin/ip -6 route add / dev \end_layout \begin_layout Code + ¬ metric 1 \end_layout @@ -5381,6 +5613,7 @@ Example: \end_layout \begin_layout Code + # /sbin/ip -6 route add default dev eth0 metric 1 \end_layout @@ -5423,6 +5656,7 @@ Usage: \end_layout \begin_layout Code + # /sbin/route -A inet6 add / dev \end_layout @@ -5431,6 +5665,7 @@ Example: \end_layout \begin_layout Code + # /sbin/route -A inet6 add default dev eth0 \end_layout @@ -5453,6 +5688,7 @@ Usage: \end_layout \begin_layout Code + # /sbin/ip -6 route del / dev \end_layout @@ -5461,6 +5697,7 @@ Example: \end_layout \begin_layout Code + # /sbin/ip -6 route del default dev eth0 \end_layout @@ -5474,6 +5711,7 @@ Usage: \end_layout \begin_layout Code + # /sbin/route -A inet6 del / dev \end_layout @@ -5483,6 +5721,7 @@ Example: \end_layout \begin_layout Code + # /sbin/route -A inet6 del default dev eth0 \end_layout @@ -5521,14 +5760,17 @@ Client can setup a default route like prefix \end_layout \begin_layout Code + # ip -6 route show | grep ^default \end_layout \begin_layout Code + default via fe80::212:34ff:fe12:3450 dev eth0 proto kernel metric 1024 expires \end_layout \begin_layout Code + ¬ 29sec mtu 1500 advmss 1440 \end_layout @@ -5610,6 +5852,7 @@ With following command you can display the learnt or configured IPv6 neighbors \end_layout \begin_layout Code + # ip -6 neigh show [dev ] \end_layout @@ -5618,10 +5861,12 @@ The following example shows one neighbor, which is a reachable router \end_layout \begin_layout Code + # ip -6 neigh show \end_layout \begin_layout Code + fe80::201:23ff:fe45:6789 dev eth0 lladdr 00:01:23:45:67:89 router nud reachable \end_layout @@ -5646,6 +5891,7 @@ With following command you are able to manually add an entry \end_layout \begin_layout Code + # ip -6 neigh add lladdr dev \end_layout @@ -5654,6 +5900,7 @@ Example: \end_layout \begin_layout Code + # ip -6 neigh add fec0::1 lladdr 02:01:02:03:04:05 dev eth0 \end_layout @@ -5666,6 +5913,7 @@ Like adding also an entry can be deleted: \end_layout \begin_layout Code + # ip -6 neigh del lladdr dev \end_layout @@ -5674,6 +5922,7 @@ Example: \end_layout \begin_layout Code + # ip -6 neigh del fec0::1 lladdr 02:01:02:03:04:05 dev eth0 \end_layout @@ -5703,23 +5952,28 @@ help \end_layout \begin_layout Code + # ip -6 neigh help \end_layout \begin_layout Code + Usage: ip neigh { add | del | change | replace } { ADDR [ lladdr LLADDR ] \end_layout \begin_layout Code + [ nud { permanent | noarp | stale | reachable } ] \end_layout \begin_layout Code + | proxy ADDR } [ dev DEV ] \end_layout \begin_layout Code + ip neigh {show|flush} [ to PREFIX ] [ dev DEV ] [ nud STATE ] \end_layout @@ -5909,22 +6163,27 @@ target "http://www.faqs.org/rfcs/rfc3056.html" \end_layout \begin_layout Code + | 3+13 | 32 | 16 | 64 bits | \end_layout \begin_layout Code + +---+------+-----------+--------+--------------------------------+ \end_layout \begin_layout Code + | FP+TLA | V4ADDR | SLA ID | Interface ID | \end_layout \begin_layout Code + | 0x2002 | | | | \end_layout \begin_layout Code + +---+------+-----------+--------+--------------------------------+ \end_layout @@ -6135,6 +6394,7 @@ Usage: \end_layout \begin_layout Code + # /sbin/ip -6 tunnel show [] \end_layout @@ -6143,14 +6403,17 @@ Example: \end_layout \begin_layout Code + # /sbin/ip -6 tunnel show \end_layout \begin_layout Code + sit0: ipv6/ip remote any local any ttl 64 nopmtudisc \end_layout \begin_layout Code + sit1: ipv6/ip remote 195.226.187.50 local any ttl 64 \end_layout @@ -6163,6 +6426,7 @@ Usage: \end_layout \begin_layout Code + # /sbin/route -A inet6 \end_layout @@ -6172,6 +6436,7 @@ Example (output is filtered to display only tunnels through virtual interface \end_layout \begin_layout Code + # /sbin/route -A inet6 | grep " \backslash Wsit0 @@ -6180,22 +6445,27 @@ W*$" \end_layout \begin_layout Code + ::/96 :: U 256 2 0 sit0 \end_layout \begin_layout Code + 2002::/16 :: UA 256 0 0 sit0 \end_layout \begin_layout Code + 2000::/3 ::193.113.58.75 UG 1 0 0 sit0 \end_layout \begin_layout Code + fe80::/10 :: UA 256 0 0 sit0 \end_layout \begin_layout Code + ff00::/8 :: UA 256 0 0 sit0 \end_layout @@ -6261,10 +6531,12 @@ Usage for creating a tunnel device (but it's not up afterward, also a TTL \end_layout \begin_layout Code + # /sbin/ip tunnel add mode sit ttl remote \end_layout \begin_layout Code + ¬ local \end_layout @@ -6273,18 +6545,22 @@ Usage (generic example for three tunnels): \end_layout \begin_layout Code + # /sbin/ip tunnel add sit1 mode sit ttl remote \end_layout \begin_layout Code + ¬ local \end_layout \begin_layout Code + # /sbin/ip link set dev sit1 up \end_layout \begin_layout Code + # /sbin/ip -6 route add dev sit1 metric 1 \end_layout @@ -6293,18 +6569,22 @@ Usage (generic example for three tunnels): \end_layout \begin_layout Code + # /sbin/ip tunnel add sit2 mode sit ttl \end_layout \begin_layout Code + ¬ local \end_layout \begin_layout Code + # /sbin/ip link set dev sit2 up \end_layout \begin_layout Code + # /sbin/ip -6 route add dev sit2 metric 1 \end_layout @@ -6313,18 +6593,22 @@ Usage (generic example for three tunnels): \end_layout \begin_layout Code + # /sbin/ip tunnel add sit3 mode sit ttl \end_layout \begin_layout Code + ¬ local \end_layout \begin_layout Code + # /sbin/ip link set dev sit3 up \end_layout \begin_layout Code + # /sbin/ip -6 route add dev sit3 metric 1 \end_layout @@ -6345,6 +6629,7 @@ Usage (generic example for three tunnels): \end_layout \begin_layout Code + # /sbin/ifconfig sit0 up \end_layout @@ -6353,14 +6638,17 @@ Usage (generic example for three tunnels): \end_layout \begin_layout Code + # /sbin/ifconfig sit0 tunnel \end_layout \begin_layout Code + # /sbin/ifconfig sit1 up \end_layout \begin_layout Code + # /sbin/route -A inet6 add dev sit1 \end_layout @@ -6369,14 +6657,17 @@ Usage (generic example for three tunnels): \end_layout \begin_layout Code + # /sbin/ifconfig sit0 tunnel \end_layout \begin_layout Code + # /sbin/ifconfig sit2 up \end_layout \begin_layout Code + # /sbin/route -A inet6 add dev sit2 \end_layout @@ -6385,14 +6676,17 @@ Usage (generic example for three tunnels): \end_layout \begin_layout Code + # /sbin/ifconfig sit0 tunnel \end_layout \begin_layout Code + # /sbin/ifconfig sit3 up \end_layout \begin_layout Code + # /sbin/route -A inet6 add dev sit3 \end_layout @@ -6418,6 +6712,7 @@ Usage (generic example for three tunnels): \end_layout \begin_layout Code + # /sbin/ifconfig sit0 up \end_layout @@ -6426,26 +6721,32 @@ Usage (generic example for three tunnels): \end_layout \begin_layout Code + # /sbin/route -A inet6 add gw \end_layout \begin_layout Code + ¬ :: dev sit0 \end_layout \begin_layout Code + # /sbin/route -A inet6 add gw \end_layout \begin_layout Code + ¬ :: dev sit0 \end_layout \begin_layout Code + # /sbin/route -A inet6 add gw \end_layout \begin_layout Code + ¬ :: dev sit0 \end_layout @@ -6474,6 +6775,7 @@ Usage for removing a tunnel device: \end_layout \begin_layout Code + # /sbin/ip tunnel del \end_layout @@ -6482,14 +6784,17 @@ Usage (generic example for three tunnels): \end_layout \begin_layout Code + # /sbin/ip -6 route del dev sit1 \end_layout \begin_layout Code + # /sbin/ip link set sit1 down \end_layout \begin_layout Code + # /sbin/ip tunnel del sit1 \end_layout @@ -6498,14 +6803,17 @@ Usage (generic example for three tunnels): \end_layout \begin_layout Code + # /sbin/ip -6 route del dev sit2 \end_layout \begin_layout Code + # /sbin/ip link set sit2 down \end_layout \begin_layout Code + # /sbin/ip tunnel del sit2 \end_layout @@ -6514,14 +6822,17 @@ Usage (generic example for three tunnels): \end_layout \begin_layout Code + # /sbin/ip -6 route del dev sit3 \end_layout \begin_layout Code + # /sbin/ip link set sit3 down \end_layout \begin_layout Code + # /sbin/ip tunnel del sit3 \end_layout @@ -6540,10 +6851,12 @@ Usage (generic example for three tunnels): \end_layout \begin_layout Code + # /sbin/route -A inet6 del dev sit3 \end_layout \begin_layout Code + # /sbin/ifconfig sit3 down \end_layout @@ -6552,10 +6865,12 @@ Usage (generic example for three tunnels): \end_layout \begin_layout Code + # /sbin/route -A inet6 del dev sit2 \end_layout \begin_layout Code + # /sbin/ifconfig sit2 down \end_layout @@ -6564,10 +6879,12 @@ Usage (generic example for three tunnels): \end_layout \begin_layout Code + # /sbin/route -A inet6 add dev sit1 \end_layout \begin_layout Code + # /sbin/ifconfig sit1 down \end_layout @@ -6576,6 +6893,7 @@ Usage (generic example for three tunnels): \end_layout \begin_layout Code + # /sbin/ifconfig sit0 down \end_layout @@ -6597,26 +6915,32 @@ Usage (generic example for three tunnels): \end_layout \begin_layout Code + # /sbin/route -A inet6 del gw \end_layout \begin_layout Code + ¬ :: dev sit0 \end_layout \begin_layout Code + # /sbin/route -A inet6 del gw \end_layout \begin_layout Code + ¬ :: dev sit0 \end_layout \begin_layout Code + # /sbin/route -A inet6 del gw \end_layout \begin_layout Code + ¬ :: dev sit0 \end_layout @@ -6625,6 +6949,7 @@ Usage (generic example for three tunnels): \end_layout \begin_layout Code + # /sbin/ifconfig sit0 down \end_layout @@ -6683,6 +7008,7 @@ Assuming your IPv4 address is \end_layout \begin_layout Code + 1.2.3.4 \end_layout @@ -6691,6 +7017,7 @@ the generated 6to4 prefix will be \end_layout \begin_layout Code + 2002:0102:0304:: \end_layout @@ -6709,6 +7036,7 @@ Local 6to4 gateways should (but it's not a must, you can choose an arbitrary \end_layout \begin_layout Code + 2002:0102:0304::1 \end_layout @@ -6718,6 +7046,7 @@ Use e.g. \end_layout \begin_layout Code + ipv4="1.2.3.4"; printf "2002:%02x%02x:%02x%02x::1" `echo $ipv4 | tr "." " "` \end_layout @@ -6739,10 +7068,12 @@ Create a new tunnel device \end_layout \begin_layout Code + # /sbin/ip tunnel add tun6to4 mode sit ttl remote any local \end_layout \begin_layout Code + ¬ \end_layout @@ -6751,6 +7082,7 @@ Bring interface up \end_layout \begin_layout Code + # /sbin/ip link set dev tun6to4 up \end_layout @@ -6759,6 +7091,7 @@ Add local 6to4 address to interface (note: prefix length 16 is important!) \end_layout \begin_layout Code + # /sbin/ip -6 addr add /16 dev tun6to4 \end_layout @@ -6768,6 +7101,7 @@ Add (default) route to the global IPv6 network using the all-6to4-routers \end_layout \begin_layout Code + # /sbin/ip -6 route add default via ::192.88.99.1 dev tun6to4 metric 1 \end_layout @@ -6786,6 +7120,7 @@ ip \end_layout \begin_layout Code + # /sbin/ip -6 route add default via 2002:c058:6301::1 dev tun6to4 metric 1 \end_layout @@ -6812,6 +7147,7 @@ Bring generic tunnel interface sit0 up \end_layout \begin_layout Code + # /sbin/ifconfig sit0 up \end_layout @@ -6820,6 +7156,7 @@ Add local 6to4 address to interface \end_layout \begin_layout Code + # /sbin/ifconfig sit0 add /16 \end_layout @@ -6829,6 +7166,7 @@ Add (default) route to the global IPv6 network using the all-6to4-relays \end_layout \begin_layout Code + # /sbin/route -A inet6 add default gw ::192.88.99.1 dev sit0 \end_layout @@ -6845,6 +7183,7 @@ Remove all routes through this dedicated tunnel device \end_layout \begin_layout Code + # /sbin/ip -6 route flush dev tun6to4 \end_layout @@ -6853,6 +7192,7 @@ Shut down interface \end_layout \begin_layout Code + # /sbin/ip link set dev tun6to4 down \end_layout @@ -6861,6 +7201,7 @@ Remove created tunnel device \end_layout \begin_layout Code + # /sbin/ip tunnel del tun6to4 \end_layout @@ -6897,6 +7238,7 @@ Remove (default) route through the 6to4 tunnel interface \end_layout \begin_layout Code + # /sbin/route -A inet6 del default gw ::192.88.99.1 dev sit0 \end_layout @@ -6905,6 +7247,7 @@ Remove local 6to4 address to interface \end_layout \begin_layout Code + # /sbin/ifconfig sit0 del /16 \end_layout @@ -6914,6 +7257,7 @@ Shut down generic tunnel device (take care about this, perhaps it's still \end_layout \begin_layout Code + # /sbin/ifconfig sit0 down \end_layout @@ -6953,6 +7297,7 @@ Usage: \end_layout \begin_layout Code + # /sbin/ip -6 tunnel show [] \end_layout @@ -6961,23 +7306,28 @@ Example: \end_layout \begin_layout Code + # /sbin/ip -6 tunnel show mode any \end_layout \begin_layout Code + ip6tnl0: ipv6/ipv6 remote :: local :: encaplimit 0 hoplimit 0 tclass 0x00 \end_layout \begin_layout Code + ¬ flowlabel 0x00000 (flowinfo 0x00000000) \end_layout \begin_layout Code + ip6tnl1: ip/ipv6 remote fd00:0:0:2::a local fd00:0:0:2::1 dev eth1 encaplimit 4 \end_layout \begin_layout Code + ¬ hoplimit 64 tclass 0x00 flowlabel 0x00000 (flowinfo 0x00000000) \end_layout @@ -6994,10 +7344,12 @@ Usage for creating a 4over6 tunnel device (but it's not up afterward) \end_layout \begin_layout Code + # /sbin/ip tunnel add mode ip4ip6 remote \end_layout \begin_layout Code + ¬ local \end_layout @@ -7006,18 +7358,22 @@ Usage (generic example for three tunnels): \end_layout \begin_layout Code + # /sbin/ip -6 tunnel add ip6tnl1 mode ip4ip6 remote \end_layout \begin_layout Code + ¬ local \end_layout \begin_layout Code + # /sbin/ip link set dev ip6tnl1 up \end_layout \begin_layout Code + # /sbin/ip -6 route add dev ip6tnl1 metric 1 \end_layout @@ -7026,18 +7382,22 @@ Usage (generic example for three tunnels): \end_layout \begin_layout Code + # /sbin/ip -6 tunnel add ip6tnl2 mode ip4ip6 remote \end_layout \begin_layout Code + ¬ local \end_layout \begin_layout Code + # /sbin/ip link set dev ip6tnl2 up \end_layout \begin_layout Code + # /sbin/ip -6 route add dev ip6tnl2 metric 1 \end_layout @@ -7046,18 +7406,22 @@ Usage (generic example for three tunnels): \end_layout \begin_layout Code + # /sbin/ip -6 tunnel add ip6tnl3 mode ip4ip6 remote \end_layout \begin_layout Code + ¬ local \end_layout \begin_layout Code + # /sbin/ip link set dev ip6tnl3 up \end_layout \begin_layout Code + # /sbin/ip -6 route add dev ip6tnl3 metric 1 \end_layout @@ -7070,6 +7434,7 @@ Usage for removing a tunnel device: \end_layout \begin_layout Code + # /sbin/ip -6 tunnel del \end_layout @@ -7078,14 +7443,17 @@ Usage (generic example for three tunnels): \end_layout \begin_layout Code + # /sbin/ip -6 route del dev ip6tnl1 \end_layout \begin_layout Code + # /sbin/ip link set ip6tnl1 down \end_layout \begin_layout Code + # /sbin/ip -6 tunnel del ip6tnl1 \end_layout @@ -7094,14 +7462,17 @@ Usage (generic example for three tunnels): \end_layout \begin_layout Code + # /sbin/ip -6 route del dev ip6tnl2 \end_layout \begin_layout Code + # /sbin/ip link set ip6tnl2 down \end_layout \begin_layout Code + # /sbin/ip -6 tunnel del ip6tnl2 \end_layout @@ -7110,14 +7481,17 @@ Usage (generic example for three tunnels): \end_layout \begin_layout Code + # /sbin/ip -6 route del dev ip6tnl3 \end_layout \begin_layout Code + # /sbin/ip link set ip6tnl3 down \end_layout \begin_layout Code + # /sbin/ip -6 tunnel del ip6tnl3 \end_layout @@ -7210,6 +7584,7 @@ The /proc-filesystem had to be enabled in kernel, means on compiling following \end_layout \begin_layout Code + CONFIG_PROC_FS=y \end_layout @@ -7218,10 +7593,12 @@ The /proc-filesystem was mounted before, which can be tested using \end_layout \begin_layout Code + # mount | grep "type proc" \end_layout \begin_layout Code + none on /proc type proc (rw) \end_layout @@ -7252,10 +7629,12 @@ cat \end_layout \begin_layout Code + # cat /proc/sys/net/ipv6/conf/all/forwarding \end_layout \begin_layout Code + 0 \end_layout @@ -7276,6 +7655,7 @@ echo \end_layout \begin_layout Code + # echo "1" >/proc/sys/net/ipv6/conf/all/forwarding \end_layout @@ -7331,6 +7711,7 @@ The sysctl-interface had to be enabled in kernel, means on compiling following \end_layout \begin_layout Code + CONFIG_SYSCTL=y \end_layout @@ -7343,10 +7724,12 @@ The value of an entry can be retrieved now: \end_layout \begin_layout Code + # sysctl net.ipv6.conf.all.forwarding \end_layout \begin_layout Code + net.ipv6.conf.all.forwarding = 0 \end_layout @@ -7359,10 +7742,12 @@ A new value can be set (if entry is writable): \end_layout \begin_layout Code + # sysctl -w net.ipv6.conf.all.forwarding=1 \end_layout \begin_layout Code + net.ipv6.conf.all.forwarding = 1 \end_layout @@ -7380,10 +7765,12 @@ Note: Don't use spaces around the \end_layout \begin_layout Code + # sysctl -w net.ipv4.ip_local_port_range="32768 61000" \end_layout \begin_layout Code + net.ipv4.ip_local_port_range = 32768 61000 \end_layout @@ -7851,10 +8238,12 @@ target "http://www.zebra.org/" \end_layout \begin_layout Code + ZEBRA: netlink-listen error: No buffer space available, type=RTM_NEWROUTE(24), \end_layout \begin_layout Code + ¬ seq=426, pid=0 \end_layout @@ -8326,22 +8715,27 @@ net/ipv6/addrconf.c \end_layout \begin_layout Code + # cat /proc/net/if_inet6 \end_layout \begin_layout Code + 00000000000000000000000000000001 01 80 10 80 lo \end_layout \begin_layout Code + +------------------------------+ ++ ++ ++ ++ ++ \end_layout \begin_layout Code + | | | | | | \end_layout \begin_layout Code + 1 2 3 4 5 6 \end_layout @@ -8432,22 +8826,27 @@ net/ipv6/route.c \end_layout \begin_layout Code + # cat /proc/net/ipv6_route \end_layout \begin_layout Code + 00000000000000000000000000000000 00 00000000000000000000000000000000 00 \end_layout \begin_layout Code + +------------------------------+ ++ +------------------------------+ ++ \end_layout \begin_layout Code + | | | | \end_layout \begin_layout Code + 1 2 3 4 \end_layout @@ -8456,18 +8855,22 @@ net/ipv6/route.c \end_layout \begin_layout Code + ¬ 00000000000000000000000000000000 ffffffff 00000001 00000001 00200200 lo \end_layout \begin_layout Code + ¬ +------------------------------+ +------+ +------+ +------+ +------+ ++ \end_layout \begin_layout Code + ¬ | | | | | | \end_layout \begin_layout Code + ¬ 5 6 7 8 9 10 \end_layout @@ -8527,22 +8930,27 @@ Statistics about used IPv6 sockets. \end_layout \begin_layout Code + # cat /proc/net/sockstat6 \end_layout \begin_layout Code + TCP6: inuse 7 \end_layout \begin_layout Code + UDP6: inuse 2 \end_layout \begin_layout Code + RAW6: inuse 1 \end_layout \begin_layout Code + FRAG6: inuse 0 memory 0 \end_layout @@ -8724,307 +9132,375 @@ Example: \end_layout \begin_layout Code + # netstat -nlptu \end_layout \begin_layout Code + Active Internet connections (only servers) \end_layout \begin_layout Code + Proto Recv-Q Send-Q Local Address Foreign Address State \end_layout \begin_layout Code + ¬ PID/Program name \end_layout \begin_layout Code + tcp 0 0 0.0.0.0:32768 0.0.0.0:* LISTEN \end_layout \begin_layout Code + ¬ 1258/rpc.statd \end_layout \begin_layout Code + tcp 0 0 0.0.0.0:32769 0.0.0.0:* LISTEN \end_layout \begin_layout Code + ¬ 1502/rpc.mountd \end_layout \begin_layout Code + tcp 0 0 0.0.0.0:515 0.0.0.0:* LISTEN \end_layout \begin_layout Code + ¬ 22433/lpd Waiting \end_layout \begin_layout Code + tcp 0 0 1.2.3.1:139 0.0.0.0:* LISTEN \end_layout \begin_layout Code + ¬ 1746/smbd \end_layout \begin_layout Code + tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN \end_layout \begin_layout Code + ¬ 1230/portmap \end_layout \begin_layout Code + tcp 0 0 0.0.0.0:6000 0.0.0.0:* LISTEN \end_layout \begin_layout Code + ¬ 3551/X \end_layout \begin_layout Code + tcp 0 0 1.2.3.1:8081 0.0.0.0:* LISTEN \end_layout \begin_layout Code + ¬ 18735/junkbuster \end_layout \begin_layout Code + tcp 0 0 1.2.3.1:3128 0.0.0.0:* LISTEN \end_layout \begin_layout Code + ¬ 18822/(squid) \end_layout \begin_layout Code + tcp 0 0 127.0.0.1:953 0.0.0.0:* LISTEN \end_layout \begin_layout Code + ¬ 30734/named \end_layout \begin_layout Code + tcp 0 0 ::ffff:1.2.3.1:993 :::* LISTEN \end_layout \begin_layout Code + ¬ 6742/xinetd-ipv6 \end_layout \begin_layout Code + tcp 0 0 :::13 :::* LISTEN \end_layout \begin_layout Code + ¬ 6742/xinetd-ipv6 \end_layout \begin_layout Code + tcp 0 0 ::ffff:1.2.3.1:143 :::* LISTEN \end_layout \begin_layout Code + ¬ 6742/xinetd-ipv6 \end_layout \begin_layout Code + tcp 0 0 :::53 :::* LISTEN \end_layout \begin_layout Code + ¬ 30734/named \end_layout \begin_layout Code + tcp 0 0 :::22 :::* LISTEN \end_layout \begin_layout Code + ¬ 1410/sshd \end_layout \begin_layout Code + tcp 0 0 :::6010 :::* LISTEN \end_layout \begin_layout Code + ¬ 13237/sshd \end_layout \begin_layout Code + udp 0 0 0.0.0.0:32768 0.0.0.0:* \end_layout \begin_layout Code + ¬ 1258/rpc.statd \end_layout \begin_layout Code + udp 0 0 0.0.0.0:2049 0.0.0.0:* \end_layout \begin_layout Code + ¬ - \end_layout \begin_layout Code + udp 0 0 0.0.0.0:32770 0.0.0.0:* \end_layout \begin_layout Code + ¬ 1502/rpc.mountd \end_layout \begin_layout Code + udp 0 0 0.0.0.0:32771 0.0.0.0:* \end_layout \begin_layout Code + ¬ - \end_layout \begin_layout Code + udp 0 0 1.2.3.1:137 0.0.0.0:* \end_layout \begin_layout Code + ¬ 1751/nmbd \end_layout \begin_layout Code + udp 0 0 0.0.0.0:137 0.0.0.0:* \end_layout \begin_layout Code + ¬ 1751/nmbd \end_layout \begin_layout Code + udp 0 0 1.2.3.1:138 0.0.0.0:* \end_layout \begin_layout Code + ¬ 1751/nmbd \end_layout \begin_layout Code + udp 0 0 0.0.0.0:138 0.0.0.0:* \end_layout \begin_layout Code + ¬ 1751/nmbd \end_layout \begin_layout Code + udp 0 0 0.0.0.0:33044 0.0.0.0:* \end_layout \begin_layout Code + ¬ 30734/named \end_layout \begin_layout Code + udp 0 0 1.2.3.1:53 0.0.0.0:* \end_layout \begin_layout Code + ¬ 30734/named \end_layout \begin_layout Code + udp 0 0 127.0.0.1:53 0.0.0.0:* \end_layout \begin_layout Code + ¬ 30734/named \end_layout \begin_layout Code + udp 0 0 0.0.0.0:67 0.0.0.0:* \end_layout \begin_layout Code + ¬ 1530/dhcpd \end_layout \begin_layout Code + udp 0 0 0.0.0.0:67 0.0.0.0:* \end_layout \begin_layout Code + ¬ 1530/dhcpd \end_layout \begin_layout Code + udp 0 0 0.0.0.0:32858 0.0.0.0:* \end_layout \begin_layout Code + ¬ 18822/(squid) \end_layout \begin_layout Code + udp 0 0 0.0.0.0:4827 0.0.0.0:* \end_layout \begin_layout Code + ¬ 18822/(squid) \end_layout \begin_layout Code + udp 0 0 0.0.0.0:111 0.0.0.0:* \end_layout \begin_layout Code + ¬ 1230/portmap \end_layout \begin_layout Code + udp 0 0 :::53 :::* \end_layout \begin_layout Code + ¬ 30734/named \end_layout @@ -9056,26 +9532,32 @@ Router advertisement \end_layout \begin_layout Code + 15:43:49.484751 fe80::212:34ff:fe12:3450 > ff02::1: icmp6: router \end_layout \begin_layout Code + ¬ advertisement(chlim=64, router_ltime=30, reachable_time=0, \end_layout \begin_layout Code + ¬ retrans_time=0)(prefix info: AR valid_ltime=30, preffered_ltime=20, \end_layout \begin_layout Code + ¬ prefix=2002:0102:0304:1::/64)(prefix info: LAR valid_ltime=2592000, \end_layout \begin_layout Code + ¬ preffered_ltime=604800, prefix=2001:0db8:0:1::/64)(src lladdr: \end_layout \begin_layout Code + ¬ 0:12:34:12:34:50) (len 88, hlim 255) \end_layout @@ -9128,10 +9610,12 @@ Router solicitation \end_layout \begin_layout Code + 15:44:21.152646 fe80::212:34ff:fe12:3456 > ff02::2: icmp6: router solicitation \end_layout \begin_layout Code + ¬ (src lladdr: 0:12:34:12:34:56) (len 16, hlim 255) \end_layout @@ -9199,10 +9683,12 @@ fe80::212:34ff:fe12:3456 \end_layout \begin_layout Code + 15:44:17.712338 :: > ff02::1:ff12:3456: icmp6: neighbor sol: who has \end_layout \begin_layout Code + ¬ fe80::212:34ff:fe12:3456(src lladdr: 0:12:34:12:34:56) (len 32, hlim 255) \end_layout @@ -9219,15 +9705,18 @@ Node wants to configure its global address \end_layout \begin_layout Code + 15:44:21.905596 :: > ff02::1:ff12:3456: icmp6: neighbor sol: who has \end_layout \begin_layout Code + ¬ 2002:0102:0304:1:212:34ff:fe12:3456(src lladdr: 0:12:34:12:34:56) (len 32, \end_layout \begin_layout Code + ¬ hlim 255) \end_layout @@ -9244,15 +9733,18 @@ Node wants to configure its global address \end_layout \begin_layout Code + 15:44:22.304028 :: > ff02::1:ff12:3456: icmp6: neighbor sol: who has \end_layout \begin_layout Code + ¬ 2001:0db8:0:1:212:34ff:fe12:3456(src lladdr: 0:12:34:12:34:56) (len 32, hlim \end_layout \begin_layout Code + ¬ 255) \end_layout @@ -9273,15 +9765,18 @@ Node wants to send packages to \end_layout \begin_layout Code + 13:07:47.664538 2002:0102:0304:1:2e0:18ff:fe90:9205 > ff02::1:ff00:10: icmp6: \end_layout \begin_layout Code + ¬ neighbor sol: who has 2001:0db8:0:1::10(src lladdr: 0:e0:18:90:92:5) (len 32, \end_layout \begin_layout Code + ¬ hlim 255) \end_layout @@ -9298,10 +9793,12 @@ fe80::10 \end_layout \begin_layout Code + 13:11:20.870070 fe80::2e0:18ff:fe90:9205 > ff02::1:ff00:10: icmp6: neighbor \end_layout \begin_layout Code + ¬ sol: who has fe80::10(src lladdr: 0:e0:18:90:92:5) (len 32, hlim 255) \end_layout @@ -9423,6 +9920,7 @@ You can test, whether your Linux distribution contain support for persistent \end_layout \begin_layout Code + /etc/sysconfig/network-scripts/network-functions-ipv6 \end_layout @@ -9431,11 +9929,13 @@ Auto-magically test: \end_layout \begin_layout Code + # test -f /etc/sysconfig/network-scripts/network-functions-ipv6 && echo "Main \end_layout \begin_layout Code + ¬ IPv6 script library exists" \end_layout @@ -9445,14 +9945,17 @@ The version of the library is important if you miss some features. \end_layout \begin_layout Code + # source /etc/sysconfig/network-scripts/network-functions-ipv6 && \end_layout \begin_layout Code + ¬ getversion_ipv6_functions \end_layout \begin_layout Code + 20011124 \end_layout @@ -9491,10 +9994,12 @@ Check whether running system has already IPv6 module loaded \end_layout \begin_layout Code + # modprobe -c | grep net-pf-10 \end_layout \begin_layout Code + alias net-pf-10 off \end_layout @@ -9512,6 +10017,7 @@ off \end_layout \begin_layout Code + NETWORKING_IPV6=yes \end_layout @@ -9520,6 +10026,7 @@ Reboot or restart networking using \end_layout \begin_layout Code + # service network restart \end_layout @@ -9528,10 +10035,12 @@ Now IPv6 module should be loaded \end_layout \begin_layout Code + # modprobe -c | grep ipv6 \end_layout \begin_layout Code + alias net-pf-10 ipv6 \end_layout @@ -9591,6 +10100,7 @@ Edit file /etc/sysconfig/network/ifcfg- and setup following \end_layout \begin_layout Code + IP6ADDR="/" \end_layout @@ -9616,6 +10126,7 @@ Edit file /etc/sysconfig/network/ifcfg- and setup following \end_layout \begin_layout Code + IPADDR="/" \end_layout @@ -9656,44 +10167,54 @@ Configure your interface. \end_layout \begin_layout Code + iface eth0 inet6 static \end_layout \begin_layout Code + pre-up modprobe ipv6 \end_layout \begin_layout Code + address 2001:0db8:1234:5::1:1 \end_layout \begin_layout Code + # To suppress completely autoconfiguration: \end_layout \begin_layout Code + # up echo 0 > /proc/sys/net/ipv6/conf/all/autoconf \end_layout \begin_layout Code + netmask 64 \end_layout \begin_layout Code + # The router is autoconfigured and has no fixed address. \end_layout \begin_layout Code + # It is magically \end_layout \begin_layout Code + # found. (/proc/sys/net/ipv6/conf/all/accept_ra). Otherwise: \end_layout \begin_layout Code + #gateway 2001:0db8:1234:5::1 \end_layout @@ -9702,6 +10223,7 @@ And you reboot or you just \end_layout \begin_layout Code + # ifup --force eth0 \end_layout @@ -9772,18 +10294,22 @@ Example: \end_layout \begin_layout Code + # ip -6 addr show dev eth0 scope link \end_layout \begin_layout Code + 2: eth0: mtu 1500 qlen1000 \end_layout \begin_layout Code + inet6 fe80::211:d8ff:fe6b:f0f5/64 scope link \end_layout \begin_layout Code + valid_lft forever preferred_lft forever \end_layout @@ -10294,6 +10820,7 @@ Change to source directory: \end_layout \begin_layout Code + # cd /path/to/src \end_layout @@ -10302,10 +10829,12 @@ Unpack and rename kernel sources \end_layout \begin_layout Code + # tar z|jxf kernel-version.tar.gz|bz2 \end_layout \begin_layout Code + # mv linux linux-version-iptables-version+IPv6 \end_layout @@ -10314,6 +10843,7 @@ Unpack iptables sources \end_layout \begin_layout Code + # tar z|jxf iptables-version.tar.gz|bz2 \end_layout @@ -10326,6 +10856,7 @@ Change to iptables directory \end_layout \begin_layout Code + # cd iptables-version \end_layout @@ -10334,6 +10865,7 @@ Apply pending patches \end_layout \begin_layout Code + # make pending-patches KERNEL_DIR=/path/to/src/linux-version-iptables-version/ \end_layout @@ -10344,6 +10876,7 @@ Apply additional IPv6 related patches (still not in the vanilla kernel included) \end_layout \begin_layout Code + # make patch-o-matic KERNEL_DIR=/path/to/src/linux-version-iptables-version/ \end_layout @@ -10382,10 +10915,12 @@ Check IPv6 extensions \end_layout \begin_layout Code + # make print-extensions \end_layout \begin_layout Code + Extensions found: IPv6:owner IPv6:limit IPv6:mac IPv6:multiport \end_layout @@ -10398,6 +10933,7 @@ Change to kernel sources \end_layout \begin_layout Code + # cd /path/to/src/linux-version-iptables-version/ \end_layout @@ -10406,10 +10942,12 @@ Edit Makefile \end_layout \begin_layout Code + - EXTRAVERSION = \end_layout \begin_layout Code + + EXTRAVERSION = -iptables-version+IPv6-try \end_layout @@ -10418,80 +10956,99 @@ Run configure, enable IPv6 related \end_layout \begin_layout Code + Code maturity level options \end_layout \begin_layout Code + Prompt for development and/or incomplete code/drivers : yes \end_layout \begin_layout Code + Networking options \end_layout \begin_layout Code + Network packet filtering: yes \end_layout \begin_layout Code + The IPv6 protocol: module \end_layout \begin_layout Code + IPv6: Netfilter Configuration \end_layout \begin_layout Code + IP6 tables support: module \end_layout \begin_layout Code + All new options like following: \end_layout \begin_layout Code + limit match support: module \end_layout \begin_layout Code + MAC address match support: module \end_layout \begin_layout Code + Multiple port match support: module \end_layout \begin_layout Code + Owner match support: module \end_layout \begin_layout Code + netfilter MARK match support: module \end_layout \begin_layout Code + Aggregated address check: module \end_layout \begin_layout Code + Packet filtering: module \end_layout \begin_layout Code + REJECT target support: module \end_layout \begin_layout Code + LOG target support: module \end_layout \begin_layout Code + Packet mangling: module \end_layout \begin_layout Code + MARK target support: module \end_layout @@ -10518,6 +11075,7 @@ Rename older directory \end_layout \begin_layout Code + # mv /usr/src/linux /usr/src/linux.old \end_layout @@ -10526,6 +11084,7 @@ Create a new softlink \end_layout \begin_layout Code + # ln -s /path/to/src/linux-version-iptables-version /usr/src/linux \end_layout @@ -10534,6 +11093,7 @@ Rebuild SRPMS \end_layout \begin_layout Code + # rpm --rebuild /path/to/SRPMS/iptables-version-release.src.rpm \end_layout @@ -10547,6 +11107,7 @@ On RH 7.1 systems, normally, already an older version is installed, therefore \end_layout \begin_layout Code + # rpm -Fhv /path/to/RPMS/cpu/iptables*-version-release.cpu.rpm \end_layout @@ -10555,6 +11116,7 @@ If not already installed, use "install" \end_layout \begin_layout Code + # rpm -ihv /path/to/RPMS/cpu/iptables*-version-release.cpu.rpm \end_layout @@ -10565,6 +11127,7 @@ ts don't fit. \end_layout \begin_layout Code + # rpm -ihv --nodeps /path/to/RPMS/cpu/iptables*-version-release.cpu.rpm \end_layout @@ -10574,6 +11137,7 @@ Perhaps it's necessary to create a softlink for iptables libraries where \end_layout \begin_layout Code + # ln -s /lib/iptables/ /usr/lib/iptables \end_layout @@ -10590,6 +11154,7 @@ Load module, if so compiled \end_layout \begin_layout Code + # modprobe ip6_tables \end_layout @@ -10598,10 +11163,12 @@ Check for capability \end_layout \begin_layout Code + # [ ! -f /proc/net/ip6_tables_names ] && echo "Current kernel doesn't support \end_layout \begin_layout Code + ¬ 'ip6tables' firewalling (IPv6)!" \end_layout @@ -10618,6 +11185,7 @@ Short \end_layout \begin_layout Code + # ip6tables -L \end_layout @@ -10626,6 +11194,7 @@ Extended \end_layout \begin_layout Code + # ip6tables -n -v --line-numbers -L \end_layout @@ -10634,6 +11203,7 @@ List specified filter \end_layout \begin_layout Code + # ip6tables -n -v --line-numbers -L INPUT \end_layout @@ -10642,10 +11212,12 @@ Insert a log rule at the input filter with options \end_layout \begin_layout Code + # ip6tables --table filter --append INPUT -j LOG --log-prefix "INPUT:" \end_layout \begin_layout Code + ¬ --log-level 7 \end_layout @@ -10654,6 +11226,7 @@ Insert a drop rule at the input filter \end_layout \begin_layout Code + # ip6tables --table filter --append INPUT -j DROP \end_layout @@ -10662,6 +11235,7 @@ Delete a rule by number \end_layout \begin_layout Code + # ip6tables --table filter --delete INPUT 1 \end_layout @@ -10675,6 +11249,7 @@ Since kernel version 2.6.20 IPv6 connection tracking is well supported and \end_layout \begin_layout Code + # ip6tables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT \end_layout @@ -10692,6 +11267,7 @@ Accept incoming ICMPv6 through tunnels \end_layout \begin_layout Code + # ip6tables -A INPUT -i sit+ -p icmpv6 -j ACCEPT \end_layout @@ -10700,6 +11276,7 @@ Allow outgoing ICMPv6 through tunnels \end_layout \begin_layout Code + # ip6tables -A OUTPUT -o sit+ -p icmpv6 -j ACCEPT \end_layout @@ -10708,6 +11285,7 @@ Newer kernels allow specifying of ICMPv6 types: \end_layout \begin_layout Code + # ip6tables -A INPUT -p icmpv6 --icmpv6-type echo-request -j ACCEPT \end_layout @@ -10725,10 +11303,12 @@ Because it can happen (author already saw it to times) that an ICMPv6 storm \end_layout \begin_layout Code + # ip6tables -A INPUT --protocol icmpv6 --icmpv6-type echo-request \end_layout \begin_layout Code + ¬ -j ACCEPT --match limit --limit 30/minute \end_layout @@ -10746,10 +11326,12 @@ Allow incoming SSH from 2001:0db8:100::1/128 \end_layout \begin_layout Code + # ip6tables -A INPUT -i sit+ -p tcp -s 2001:0db8:100::1/128 --sport 512:65535 \end_layout \begin_layout Code + ¬ --dport 22 -j ACCEPT \end_layout @@ -10762,10 +11344,12 @@ no longer needed if connection tracking is used! \end_layout \begin_layout Code + # ip6tables -A OUTPUT -o sit+ -p tcp -d 2001:0db8:100::1/128 --dport 512:65535 \end_layout \begin_layout Code + ¬ --sport 22 ! --syn -j ACCEPT \end_layout @@ -10787,6 +11371,7 @@ Accept incoming IPv6-in-IPv4 on interface ppp0 \end_layout \begin_layout Code + # iptables -A INPUT -i ppp0 -p ipv6 -j ACCEPT \end_layout @@ -10795,6 +11380,7 @@ Allow outgoing IPv6-in-IPv4 to interface ppp0 \end_layout \begin_layout Code + # iptables -A OUTPUT -o ppp0 -p ipv6 -j ACCEPT \end_layout @@ -10808,6 +11394,7 @@ Accept incoming IPv6-in-IPv4 on interface ppp0 from tunnel endpoint 192.0.2.2 \end_layout \begin_layout Code + # iptables -A INPUT -i ppp0 -p ipv6 -s 192.0.2.2 -j ACCEPT \end_layout @@ -10816,6 +11403,7 @@ Allow outgoing IPv6-in-IPv4 to interface ppp0 to tunnel endpoint 192.0.2.2 \end_layout \begin_layout Code + # iptables -A OUTPUT -o ppp0 -p ipv6 -d 192.0.2.2 -j ACCEPT \end_layout @@ -10838,6 +11426,7 @@ Block incoming TCP connection requests to this host \end_layout \begin_layout Code + # ip6tables -I INPUT -i sit+ -p tcp --syn -j DROP \end_layout @@ -10846,6 +11435,7 @@ Block incoming TCP connection requests to hosts behind this router \end_layout \begin_layout Code + # ip6tables -I FORWARD -i sit+ -p tcp --syn -j DROP \end_layout @@ -10878,6 +11468,7 @@ Block incoming UDP packets which cannot be responses of outgoing requests \end_layout \begin_layout Code + # ip6tables -I INPUT -i sit+ -p udp ! --dport 32768:60999 -j DROP \end_layout @@ -10887,6 +11478,7 @@ Block incoming UDP packets which cannot be responses of forwarded requests \end_layout \begin_layout Code + # ip6tables -I FORWARD -i sit+ -p udp ! --dport 32768:60999 -j DROP \end_layout @@ -10914,6 +11506,7 @@ tracking \end_layout \begin_layout Code + File: /etc/sysconfig/ip6tables \end_layout @@ -10922,70 +11515,87 @@ File: /etc/sysconfig/ip6tables \end_layout \begin_layout Code + *filter :INPUT ACCEPT [0:0] \end_layout \begin_layout Code + :FORWARD ACCEPT [0:0] \end_layout \begin_layout Code + :OUTPUT ACCEPT [0:0] \end_layout \begin_layout Code + :RH-Firewall-1-INPUT - [0:0] \end_layout \begin_layout Code + -A INPUT -j RH-Firewall-1-INPUT \end_layout \begin_layout Code + -A FORWARD -j RH-Firewall-1-INPUT \end_layout \begin_layout Code + -A RH-Firewall-1-INPUT -i lo -j ACCEPT \end_layout \begin_layout Code + -A RH-Firewall-1-INPUT -p icmpv6 -j ACCEPT \end_layout \begin_layout Code + -A RH-Firewall-1-INPUT -p 50 -j ACCEPT \end_layout \begin_layout Code + -A RH-Firewall-1-INPUT -p 51 -j ACCEPT \end_layout \begin_layout Code + -A RH-Firewall-1-INPUT -p udp --dport 5353 -d ff02::fb -j ACCEPT \end_layout \begin_layout Code + -A RH-Firewall-1-INPUT -p udp -m udp --dport 631 -j ACCEPT \end_layout \begin_layout Code + -A RH-Firewall-1-INPUT -p tcp -m tcp --dport 631 -j ACCEPT \end_layout \begin_layout Code + -A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT \end_layout \begin_layout Code + -A RH-Firewall-1-INPUT -m state --state NEW -p tcp --dport 22 -j ACCEPT \end_layout \begin_layout Code + -A RH-Firewall-1-INPUT -j REJECT --reject-with icmp6-adm-prohibited \end_layout \begin_layout Code + COMMIT \end_layout @@ -10994,6 +11604,7 @@ For completeness also the IPv4 configuration is shown here: \end_layout \begin_layout Code + File: /etc/sysconfig/iptables \end_layout @@ -11002,71 +11613,88 @@ File: /etc/sysconfig/iptables \end_layout \begin_layout Code + *filter :INPUT ACCEPT [0:0] \end_layout \begin_layout Code + :FORWARD ACCEPT [0:0] \end_layout \begin_layout Code + :OUTPUT ACCEPT [0:0] \end_layout \begin_layout Code + :RH-Firewall-1-INPUT - [0:0] \end_layout \begin_layout Code + -A INPUT -j RH-Firewall-1-INPUT \end_layout \begin_layout Code + -A FORWARD -j RH-Firewall-1-INPUT \end_layout \begin_layout Code + -A RH-Firewall-1-INPUT -i lo -j ACCEPT \end_layout \begin_layout Code + -A RH-Firewall-1-INPUT -p icmp --icmp-type any -j ACCEPT \end_layout \begin_layout Code + -A RH-Firewall-1-INPUT -p 50 -j ACCEPT \end_layout \begin_layout Code + -A RH-Firewall-1-INPUT -p 51 -j ACCEPT \end_layout \begin_layout Code + -A RH-Firewall-1-INPUT -p udp --dport 5353 -d 224.0.0.251 -j ACCEPT \end_layout \begin_layout Code + -A RH-Firewall-1-INPUT -p udp -m udp --dport 631 -j ACCEPT \end_layout \begin_layout Code + -A RH-Firewall-1-INPUT -p tcp -m tcp --dport 631 -j ACCEPT \end_layout \begin_layout Code + -A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT \end_layout \begin_layout Code + -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT \end_layout \begin_layout Code + -A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited \end_layout \begin_layout Code + COMMIT \end_layout @@ -11083,10 +11711,12 @@ Activate IPv4 & IPv6 firewalling \end_layout \begin_layout Code + # service iptables start \end_layout \begin_layout Code + # service ip6tables start \end_layout @@ -11095,10 +11725,12 @@ Enable automatic start after reboot \end_layout \begin_layout Code + # chkconfig iptables on \end_layout \begin_layout Code + # chkconfig ip6tables on \end_layout @@ -11117,472 +11749,578 @@ but still stateless filter \end_layout \begin_layout Code + # ip6tables -n -v -L \end_layout \begin_layout Code + Chain INPUT (policy DROP 0 packets, 0 bytes) \end_layout \begin_layout Code + pkts bytes target prot opt in out source destination \end_layout \begin_layout Code + 0 0 extIN all sit+ * ::/0 ::/0 \end_layout \begin_layout Code + 4 384 intIN all eth0 * ::/0 ::/0 \end_layout \begin_layout Code + 0 0 ACCEPT all * * ::1/128 ::1/128 \end_layout \begin_layout Code + 0 0 ACCEPT all lo * ::/0 ::/0 \end_layout \begin_layout Code + 0 0 LOG all * * ::/0 ::/0 \end_layout \begin_layout Code + ¬ LOG flags 0 level 7 prefix `INPUT-default:' \end_layout \begin_layout Code + 0 0 DROP all * * ::/0 ::/0 \end_layout \begin_layout Code + \end_layout \begin_layout Code + Chain FORWARD (policy DROP 0 packets, 0 bytes) \end_layout \begin_layout Code + pkts bytes target prot opt in out source destination \end_layout \begin_layout Code + ¬ \end_layout \begin_layout Code + 0 0 int2ext all eth0 sit+ ::/0 ::/0 \end_layout \begin_layout Code + 0 0 ext2int all sit+ eth0 ::/0 ::/0 \end_layout \begin_layout Code + 0 0 LOG all * * ::/0 ::/0 \end_layout \begin_layout Code + ¬ LOG flags 0 level 7 prefix `FORWARD-default:' \end_layout \begin_layout Code + 0 0 DROP all * * ::/0 ::/0 \end_layout \begin_layout Code + \end_layout \begin_layout Code + Chain OUTPUT (policy DROP 0 packets, 0 bytes) \end_layout \begin_layout Code + pkts bytes target prot opt in out source destination \end_layout \begin_layout Code + ¬ \end_layout \begin_layout Code + 0 0 extOUT all * sit+ ::/0 ::/0 \end_layout \begin_layout Code + 4 384 intOUT all * eth0 ::/0 ::/0 \end_layout \begin_layout Code + 0 0 ACCEPT all * * ::1/128 ::1/128 \end_layout \begin_layout Code + 0 0 ACCEPT all * lo ::/0 ::/0 \end_layout \begin_layout Code + 0 0 LOG all * * ::/0 ::/0 \end_layout \begin_layout Code + ¬ LOG flags 0 level 7 prefix `OUTPUT-default:' \end_layout \begin_layout Code + 0 0 DROP all * * ::/0 ::/0 \end_layout \begin_layout Code + \end_layout \begin_layout Code + Chain ext2int (1 references) \end_layout \begin_layout Code + pkts bytes target prot opt in out source destination \end_layout \begin_layout Code + ¬ \end_layout \begin_layout Code + 0 0 ACCEPT icmpv6 * * ::/0 ::/0 \end_layout \begin_layout Code + 0 0 ACCEPT tcp * * ::/0 ::/0 \end_layout \begin_layout Code + ¬ tcp spts:1:65535 dpts:1024:65535 flags:!0x16/0x02 \end_layout \begin_layout Code + 0 0 LOG all * * ::/0 ::/0 \end_layout \begin_layout Code + ¬ LOG flags 0 level 7 prefix `ext2int-default:' \end_layout \begin_layout Code + 0 0 DROP tcp * * ::/0 ::/0 \end_layout \begin_layout Code + 0 0 DROP udp * * ::/0 ::/0 \end_layout \begin_layout Code + 0 0 DROP all * * ::/0 ::/0 \end_layout \begin_layout Code + \end_layout \begin_layout Code + Chain extIN (1 references) \end_layout \begin_layout Code + pkts bytes target prot opt in out source destination \end_layout \begin_layout Code + ¬ \end_layout \begin_layout Code + 0 0 ACCEPT tcp * * 3ffe:400:100::1/128 ::/0 \end_layout \begin_layout Code + ¬ tcp spts:512:65535 dpt:22 \end_layout \begin_layout Code + 0 0 ACCEPT tcp * * 3ffe:400:100::2/128 ::/0 \end_layout \begin_layout Code + ¬ tcp spts:512:65535 dpt:22 \end_layout \begin_layout Code + 0 0 ACCEPT icmpv6 * * ::/0 ::/0 \end_layout \begin_layout Code + 0 0 ACCEPT tcp * * ::/0 ::/0 \end_layout \begin_layout Code + ¬ tcp spts:1:65535 dpts:1024:65535 flags:!0x16/0x02 \end_layout \begin_layout Code + 0 0 ACCEPT udp * * ::/0 ::/0 \end_layout \begin_layout Code + ¬ udp spts:1:65535 dpts:1024:65535 \end_layout \begin_layout Code + 0 0 LOG all * * ::/0 ::/0 \end_layout \begin_layout Code + ¬ limit: avg 5/min burst 5 LOG flags 0 level 7 prefix `extIN-default:' \end_layout \begin_layout Code + 0 0 DROP all * * ::/0 ::/0 \end_layout \begin_layout Code + \end_layout \begin_layout Code + Chain extOUT (1 references) \end_layout \begin_layout Code + pkts bytes target prot opt in out source destination \end_layout \begin_layout Code + ¬ \end_layout \begin_layout Code + 0 0 ACCEPT tcp * * ::/0 \end_layout \begin_layout Code + ¬ 2001:0db8:100::1/128tcp spt:22 dpts:512:65535 flags:!0x16/0x02 \end_layout \begin_layout Code + 0 0 ACCEPT tcp * * ::/0 \end_layout \begin_layout Code + ¬ 2001:0db8:100::2/128tcp spt:22 dpts:512:65535 flags:!0x16/0x02 \end_layout \begin_layout Code + 0 0 ACCEPT icmpv6 * * ::/0 ::/0 \end_layout \begin_layout Code + 0 0 ACCEPT tcp * * ::/0 ::/0 \end_layout \begin_layout Code + ¬ tcp spts:1024:65535 dpts:1:65535 \end_layout \begin_layout Code + 0 0 ACCEPT udp * * ::/0 ::/0 \end_layout \begin_layout Code + ¬ udp spts:1024:65535 dpts:1:65535 \end_layout \begin_layout Code + 0 0 LOG all * * ::/0 ::/0 \end_layout \begin_layout Code + ¬ LOG flags 0 level 7 prefix `extOUT-default:' \end_layout \begin_layout Code + 0 0 DROP all * * ::/0 ::/0 \end_layout \begin_layout Code + \end_layout \begin_layout Code + Chain int2ext (1 references) \end_layout \begin_layout Code + pkts bytes target prot opt in out source destination \end_layout \begin_layout Code + ¬ \end_layout \begin_layout Code + 0 0 ACCEPT icmpv6 * * ::/0 ::/0 \end_layout \begin_layout Code + 0 0 ACCEPT tcp * * ::/0 ::/0 \end_layout \begin_layout Code + ¬ tcp spts:1024:65535 dpts:1:65535 \end_layout \begin_layout Code + 0 0 LOG all * * ::/0 ::/0 \end_layout \begin_layout Code + ¬ LOG flags 0 level 7 prefix `int2ext:' \end_layout \begin_layout Code + 0 0 DROP all * * ::/0 ::/0 \end_layout \begin_layout Code + 0 0 LOG all * * ::/0 ::/0 \end_layout \begin_layout Code + ¬ LOG flags 0 level 7 prefix `int2ext-default:' \end_layout \begin_layout Code + 0 0 DROP tcp * * ::/0 ::/0 \end_layout \begin_layout Code + 0 0 DROP udp * * ::/0 ::/0 \end_layout \begin_layout Code + 0 0 DROP all * * ::/0 ::/0 \end_layout \begin_layout Code + \end_layout \begin_layout Code + Chain intIN (1 references) \end_layout \begin_layout Code + pkts bytes target prot opt in out source destination \end_layout \begin_layout Code + ¬ \end_layout \begin_layout Code + 0 0 ACCEPT all * * ::/0 \end_layout \begin_layout Code + ¬ fe80::/ffc0:: \end_layout \begin_layout Code + 4 384 ACCEPT all * * ::/0 ff02::/16 \end_layout \begin_layout Code + \end_layout \begin_layout Code + Chain intOUT (1 references) \end_layout \begin_layout Code + pkts bytes target prot opt in out source destination \end_layout \begin_layout Code + ¬ \end_layout \begin_layout Code + 0 0 ACCEPT all * * ::/0 \end_layout \begin_layout Code + ¬ fe80::/ffc0:: \end_layout \begin_layout Code + 4 384 ACCEPT all * * ::/0 ff02::/16 \end_layout \begin_layout Code + 0 0 LOG all * * ::/0 ::/0 \end_layout \begin_layout Code + ¬ LOG flags 0 level 7 prefix `intOUT-default:' \end_layout \begin_layout Code + 0 0 DROP all * * ::/0 ::/0 \end_layout @@ -11612,6 +12350,7 @@ Like in IPv4 clients behind a router can be hided by using IPv6 masquerading \end_layout \begin_layout Code + # ip6tables -t nat -A POSTROUTING -o sixxs -s fec0::/64 -j MASQUERADE \end_layout @@ -11625,6 +12364,7 @@ A dedicated public IPv6 address can be forwarded to an internal IPv6 address, \end_layout \begin_layout Code + # ip6tables -t nat -A PREROUTING -d 2001:db8:0:1:5054:ff:fe01:2345 -i sixxs -j DNAT --to-destination fec0::5054:ff:fe01:2345 \end_layout @@ -11638,6 +12378,7 @@ A dedicated specified port can be forwarded to an internal system, e.g. \end_layout \begin_layout Code + # ip6tables -t nat -A PREROUTING -i sixxs -p tcp --dport 8080 -j DNAT --to-desti nation [fec0::1234]:80 \end_layout @@ -11647,7 +12388,23 @@ Firewalling using nftables \end_layout \begin_layout Standard -nftables adds support for a IPv4/IPv6 aware table named +nftables adds in addition to protocol specific tables +\begin_inset Quotes sld +\end_inset + +ip +\begin_inset Quotes srd +\end_inset + + (IPv4) and +\begin_inset Quotes sld +\end_inset + +ip6 +\begin_inset Quotes srd +\end_inset + + (IPv6) support for a IPv4/IPv6 aware table named \begin_inset Quotes sld \end_inset @@ -11655,7 +12412,45 @@ inet \begin_inset Quotes srd \end_inset -, here only one rule matches both protocols +. + Using this table it's possible to add only one rule and match both protocols + (in case of UDP and TCP). +\end_layout + +\begin_layout Standard +Take care if rules are contained in more than one table, because the tables + are checked in sequence: +\end_layout + +\begin_layout Code + +IPv4-Packet --> table "ip" --> table "inet" --> further checks +\end_layout + +\begin_layout Code + +IPv6-Packet --> table "ip6" --> table "inet" --> further checks +\end_layout + +\begin_layout Standard + +If table +\begin_inset Quotes sld +\end_inset + +ip6 +\begin_inset Quotes srd +\end_inset + + accepts the packet, also table +\begin_inset Quotes sld +\end_inset + +inet +\begin_inset Quotes srd +\end_inset + + must accept the packet, otherwise it can be dropped by a later drop rule. \end_layout \begin_layout Subsection @@ -11673,65 +12468,73 @@ Basic nftables configuration \end_layout \begin_layout Standard -Load kernel modules +Load kernel modules: \end_layout \begin_layout Code + # modprobe nf_tables \end_layout \begin_layout Code + # modprobe nf_tables_ipv4 \end_layout \begin_layout Code + # modprobe nf_tables_ipv6 \end_layout \begin_layout Code + # modprobe nf_tables_inet \end_layout \begin_layout Standard -Create filter tables +Flush iptables and ip6tables to avoid interferences: \end_layout \begin_layout Code -# nft add table ip filter + +# iptables -F \end_layout \begin_layout Code -# nft add table ip6 filter + +# ip6tables -F +\end_layout + +\begin_layout Standard +Create filter table: \end_layout \begin_layout Code + # nft add table inet filter \end_layout \begin_layout Standard -Create input chain in each filter table +Create input chain: \end_layout \begin_layout Code -# nft add chain ip filter input { type filter hook input priority 1 -\backslash -; } -\end_layout -\begin_layout Code -# nft add chain ip6 filter input { type filter hook input priority 1 -\backslash -; } -\end_layout - -\begin_layout Code # nft add chain inet filter input { type filter hook input priority 0 \backslash ; } \end_layout \begin_layout Subsection -Simple filter policy with nftables +Simple filter policy with nftables using only table +\begin_inset Quotes sld +\end_inset + +inet +\begin_inset Quotes srd +\end_inset + + \end_layout \begin_layout Subsubsection @@ -11743,8 +12546,8 @@ Allow packets which are related to existing connection tracking entries \end_layout \begin_layout Code + # nft add rule inet filter input ct state established,related counter accept - \end_layout \begin_layout Standard @@ -11752,13 +12555,15 @@ Allow IPv4 and IPv6 ICMP echo-request (aka ping) \end_layout \begin_layout Code -# nft add rule ip filter input icmp type { echo-request } counter accept - + +# nft add rule inet filter input meta nfproto ipv4 icmp type { echo-request + } counter accept \end_layout \begin_layout Code -# nft add rule ip6 filter input icmpv6 type echo-request counter accept - + +# nft add rule inet filter input meta nfproto ipv6 icmpv6 type echo-request + counter accept \end_layout \begin_layout Standard @@ -11767,43 +12572,33 @@ Allow some important IPv6 ICMP traffic, without counter, but checking hop-limit \end_layout \begin_layout Code -# nft add rule ip6 filter input icmpv6 type + +# nft add rule inet filter input meta nfproto ipv6 \end_layout \begin_layout Code -¬ { nd-neighbor-solicit, nd-router-advert, nd-neighbor-advert } + +¬ icmpv6 type { nd-neighbor-advert, nd-neighbor-solicit, nd-router-advert} + ip6 hoplimit 1 accept \end_layout \begin_layout Code -¬ ip6 hoplimit 1 accept + +# nft add rule inet filter input meta nfproto ipv6 \end_layout \begin_layout Code -# nft add rule ip6 filter input icmpv6 type -\end_layout -\begin_layout Code -¬ { nd-neighbor-solicit, nd-router-advert, nd-neighbor-advert } -\end_layout - -\begin_layout Code -¬ ip6 hoplimit 255 accept +¬ icmpv6 type { nd-neighbor-advert, nd-neighbor-solicit, nd-router-advert} + ip6 hoplimit 255 counter accept \end_layout \begin_layout Standard -Allow incoming SSH for IPv4 and IPv6, using therefore the IP version aware - table -\begin_inset Quotes sld -\end_inset - -inet -\begin_inset Quotes srd -\end_inset - - +Allow incoming SSH for IPv4 and IPv6 \end_layout \begin_layout Code + # nft add rule inet filter input tcp dport 22 ct state new tcp flags \backslash & @@ -11815,125 +12610,355 @@ inet ) == syn counter accept \end_layout +\begin_layout Standard +Reject/drop others +\end_layout + +\begin_layout Code + +# nft add rule inet filter input tcp dport 0-65535 reject +\end_layout + +\begin_layout Code + +# nft add rule inet filter input udp dport 0-65535 counter drop +\end_layout + +\begin_layout Code + +# nft add rule inet filter input counter drop +\end_layout + \begin_layout Subsubsection Result \end_layout -\begin_layout Standard -Table for IPv4 filter -\end_layout - -\begin_layout Code -# nft list table ip filter -\end_layout - -\begin_layout Code -table ip filter { -\end_layout - -\begin_layout Code - chain input { -\end_layout - -\begin_layout Code - type filter hook input priority 1; -\end_layout - -\begin_layout Code - icmp type { echo-request} counter packets 0 bytes 0 accept -\end_layout - -\begin_layout Code - } -\end_layout - -\begin_layout Code -} -\end_layout - -\begin_layout Standard -Table for IPv6 filter -\end_layout - -\begin_layout Code -# nft list table ip6 filter -\end_layout - -\begin_layout Code -table ip6 filter { -\end_layout - -\begin_layout Code - chain input { -\end_layout - -\begin_layout Code - type filter hook input priority 1; -\end_layout - -\begin_layout Code - icmpv6 type echo-request counter packets 0 bytes 0 accept -\end_layout - -\begin_layout Code - ip6 hoplimit 1 icmpv6 type -\end_layout - -\begin_layout Code -¬ { nd-neighbor-advert, nd-neighbor-solicit, nd-router-advert} accept -\end_layout - -\begin_layout Code - ip6 hoplimit 255 icmpv6 type -\end_layout - -\begin_layout Code -¬ { nd-neighbor-advert, nd-neighbor-solicit, nd-router-advert} accept -\end_layout - -\begin_layout Code - } -\end_layout - -\begin_layout Code -} -\end_layout - \begin_layout Standard Table for IP version aware filter \end_layout \begin_layout Code -# nft list table inet filter -\end_layout -\begin_layout Code table inet filter { \end_layout \begin_layout Code + chain input { \end_layout \begin_layout Code + type filter hook input priority 0; \end_layout \begin_layout Code - ct state established,related counter packets 44 bytes 2288 accept + + ct state established,related counter packets 0 bytes 0 accept \end_layout \begin_layout Code + + ip protocol icmp icmp type { echo-request} counter packets 0 bytes 0 + accept +\end_layout + +\begin_layout Code + + ip6 nexthdr ipv6-icmp icmpv6 type echo-request counter packets 0 bytes + 0 accept +\end_layout + +\begin_layout Code + + ip6 nexthdr ipv6-icmp ip6 hoplimit 1 icmpv6 type { nd-neighbor-advert, + nd-neighbor-solicit, nd-router-advert} accept +\end_layout + +\begin_layout Code + + ip6 nexthdr ipv6-icmp ip6 hoplimit 255 icmpv6 type { nd-neighbor-advert, + nd-neighbor-solicit, nd-router-advert} accept +\end_layout + +\begin_layout Code + tcp dport ssh ct state new tcp flags & (syn | ack) == syn counter packets 0 bytes 0 accept \end_layout \begin_layout Code + + tcp dport >= 0 tcp dport <= 65535 counter packets 0 bytes 0 reject +\end_layout + +\begin_layout Code + + udp dport >= 0 udp dport <= 65535 counter packets 0 bytes 0 drop +\end_layout + +\begin_layout Code + + log prefix counter packets 0 bytes 0 drop +\end_layout + +\begin_layout Code + } \end_layout \begin_layout Code -} + +} +\end_layout + +\begin_layout Subsubsection +Hints for logging +\end_layout + +\begin_layout Standard +To enable logging, an additonal kernel module must be loaded +\end_layout + +\begin_layout Code + +# modprobe xt_LOG +\end_layout + +\begin_layout Standard +BUT TAKE CARE, IT LOOKS LIKE THAT NO LOG LEVEL CAN BE SPEFICIED CURRENTLY + IN nftables, resulting that events are logged with kern.emerg - POSSIBILITY + OF FLODDING THE CONSOLE WITH LOG ENTRIES! +\end_layout + +\begin_layout Standard +Fir initial test with logging it can be useful to disable kernel console + logging in e.g. + /etc/rsyslog.conf by putting a +\begin_inset Quotes sld +\end_inset + +# +\begin_inset Quotes srd +\end_inset + + in front of the related entry and restart logging daemon +\end_layout + +\begin_layout Code + +#*.emerg :omusrmsg:* +\end_layout + +\begin_layout Standard +Rule from above accepting SSH on port 22, but now with logging: +\end_layout + +\begin_layout Code + +# nft add rule inet filter input tcp dport 22 ct state new tcp flags +\backslash +& +\backslash +(syn +\backslash +| ack +\backslash +) == syn log prefix +\backslash +"inet/input/accept: +\backslash +" counter accept +\end_layout + +\begin_layout Subsection +Filter policy with nftables using tables +\begin_inset Quotes sld +\end_inset + +ip +\begin_inset Quotes srd +\end_inset + +, +\begin_inset Quotes sld +\end_inset + +ip6 +\begin_inset Quotes srd +\end_inset + + and +\begin_inset Quotes sld +\end_inset + +inet +\begin_inset Quotes srd +\end_inset + + +\end_layout + +\begin_layout Standard +As written above, if rules should be stored in related tables, it must be + assured that earlier accepts are not discarded in the further table. + This can be done using +\begin_inset Quotes sld +\end_inset + +meta mark set xxxx +\begin_inset Quotes srd +\end_inset + + on every accept rule and generic rules which accepts packets with +\begin_inset Quotes sld +\end_inset + +mark xxxx +\begin_inset Quotes srd +\end_inset + +. + A resulting filter set would look like the following: +\end_layout + +\begin_layout Code + +# for table in ip ip6 inet; do nft list table $table filter; done +\end_layout + +\begin_layout Code + +table ip filter { +\end_layout + +\begin_layout Code + + chain input { +\end_layout + +\begin_layout Code + + type filter hook input priority 0; +\end_layout + +\begin_layout Code + + ct state established,related counter packets 241 bytes 25193 accept +\end_layout + +\begin_layout Code + + counter packets 2 bytes 120 mark 0x00000100 accept +\end_layout + +\begin_layout Code + + icmp type { echo-request} counter packets 0 bytes 0 meta mark set 0x00000100 + accept +\end_layout + +\begin_layout Code + + } +\end_layout + +\begin_layout Code + +} +\end_layout + +\begin_layout Code + +table ip6 filter { +\end_layout + +\begin_layout Code + + chain input { +\end_layout + +\begin_layout Code + + type filter hook input priority 0; +\end_layout + +\begin_layout Code + + ct state established,related counter packets 14 bytes 4077 accept +\end_layout + +\begin_layout Code + + counter packets 4 bytes 408 mark 0x00000100 accept +\end_layout + +\begin_layout Code + + icmpv6 type echo-request counter packets 1 bytes 104 meta mark set 0x00000100 +\end_layout + +\begin_layout Code + + icmpv6 type { nd-neighbor-advert, nd-neighbor-solicit, nd-router-advert} + counter packets 2 bytes 224 meta mark set 0x00000100 accept +\end_layout + +\begin_layout Code + + } +\end_layout + +\begin_layout Code + +} +\end_layout + +\begin_layout Code + +table inet filter { +\end_layout + +\begin_layout Code + + chain input { +\end_layout + +\begin_layout Code + + type filter hook input priority 0; +\end_layout + +\begin_layout Code + + ct state established,related counter packets 307 bytes 31974 accept +\end_layout + +\begin_layout Code + + counter packets 6 bytes 528 mark 0x00000100 accept +\end_layout + +\begin_layout Code + + tcp dport ssh ct state new tcp flags & (syn | ack) == syn log prefix + "inet/input/accept: " meta mark set 0x00000100 counter packets 3 bytes + 200 accept +\end_layout + +\begin_layout Code + + log prefix "inet/input/reject: " counter packets 0 bytes 0 reject +\end_layout + +\begin_layout Code + + } +\end_layout + +\begin_layout Code + +} \end_layout \begin_layout Chapter @@ -12040,10 +13065,12 @@ target "http://www.bieringer.de/linux/IPv6/status/IPv6+Linux-status-apps.html#se \end_layout \begin_layout Code + # nc6 ::1 daytime \end_layout \begin_layout Code + 13 JUL 2002 11:22:22 CEST \end_layout @@ -12065,43 +13092,53 @@ target "http://www.insecure.org/nmap/" \end_layout \begin_layout Code + # nmap -6 -sT ::1 \end_layout \begin_layout Code + Starting nmap V. 3.10ALPHA3 ( www.insecure.org/nmap/ ) \end_layout \begin_layout Code + Interesting ports on localhost6 (::1): \end_layout \begin_layout Code + (The 1600 ports scanned but not shown below are in state: closed) \end_layout \begin_layout Code + Port State Service \end_layout \begin_layout Code + 22/tcp open ssh \end_layout \begin_layout Code + 53/tcp open domain \end_layout \begin_layout Code + 515/tcp open printer \end_layout \begin_layout Code + 2401/tcp open cvspserver \end_layout \begin_layout Code + Nmap run completed -- 1 IP address (1 host up) scanned in 0.525 seconds \end_layout @@ -12124,26 +13161,32 @@ target "http://www.bieringer.de/linux/IPv6/status/IPv6+Linux-status-apps.html#se \end_layout \begin_layout Code + # ./strobe ::1 strobe 1.05 (c) 1995-1999 Julian Assange . \end_layout \begin_layout Code + ::1 2401 unassigned unknown \end_layout \begin_layout Code + ::1 22 ssh Secure Shell - RSA encrypted rsh \end_layout \begin_layout Code + ::1 515 printer spooler (lpd) \end_layout \begin_layout Code + ::1 6010 unassigned unknown \end_layout \begin_layout Code + ::1 53 domain Domain Name Server \end_layout @@ -12438,22 +13481,27 @@ Example for an end-to-end encrypted connection in transport mode \end_layout \begin_layout Code + #!/sbin/setkey -f \end_layout \begin_layout Code + flush; \end_layout \begin_layout Code + spdflush; \end_layout \begin_layout Code + spdadd 2001:db8:1:1::1 2001:db8:2:2::2 any -P out ipsec esp/transport//require; \end_layout \begin_layout Code + spdadd 2001:db8:2:2::2 2001:db8:1:1::1 any -P in ipsec esp/transport//require; \end_layout @@ -12466,30 +13514,37 @@ Example for a end-to-end encrypted connection in tunnel mode \end_layout \begin_layout Code + #!/sbin/setkey -f \end_layout \begin_layout Code + flush; \end_layout \begin_layout Code + spdflush; \end_layout \begin_layout Code + spdadd 2001:db8:1:1::1 2001:db8:2:2::2 any -P out ipsec \end_layout \begin_layout Code + ¬ esp/tunnel/2001:db8:1:1::1-2001:db8:2:2::2/require; \end_layout \begin_layout Code + spdadd 2001:db8:2:2::2 2001:db8:1:1::1 any -P in ipsec \end_layout \begin_layout Code + ¬ esp/tunnel/2001:db8:2:2::2-2001:db8:1:1::1/require; \end_layout @@ -12551,18 +13606,22 @@ File: /etc/racoon/racoon.conf \end_layout \begin_layout Code + # Racoon IKE daemon configuration file. \end_layout \begin_layout Code + # See 'man racoon.conf' for a description of the format and entries. \end_layout \begin_layout Code + path include "/etc/racoon"; \end_layout \begin_layout Code + path pre_shared_key "/etc/racoon/psk.txt"; \end_layout @@ -12571,18 +13630,22 @@ path pre_shared_key "/etc/racoon/psk.txt"; \end_layout \begin_layout Code + listen \end_layout \begin_layout Code + { \end_layout \begin_layout Code + isakmp 2001:db8:1:1::1; \end_layout \begin_layout Code + } \end_layout @@ -12591,50 +13654,62 @@ listen \end_layout \begin_layout Code + remote 2001:db8:2:2::2 \end_layout \begin_layout Code + { \end_layout \begin_layout Code + exchange_mode main; \end_layout \begin_layout Code + lifetime time 24 hour; \end_layout \begin_layout Code + proposal \end_layout \begin_layout Code + { \end_layout \begin_layout Code + encryption_algorithm 3des; \end_layout \begin_layout Code + hash_algorithm md5; \end_layout \begin_layout Code + authentication_method pre_shared_key; \end_layout \begin_layout Code + dh_group 2; \end_layout \begin_layout Code + } \end_layout \begin_layout Code + } \end_layout @@ -12643,34 +13718,42 @@ remote 2001:db8:2:2::2 \end_layout \begin_layout Code + # gateway-to-gateway \end_layout \begin_layout Code + sainfo address 2001:db8:1:1::1 any address 2001:db8:2:2::2 any \end_layout \begin_layout Code + { \end_layout \begin_layout Code + lifetime time 1 hour; \end_layout \begin_layout Code + encryption_algorithm 3des; \end_layout \begin_layout Code + authentication_algorithm hmac_md5; \end_layout \begin_layout Code + compression_algorithm deflate; \end_layout \begin_layout Code + } \end_layout @@ -12679,30 +13762,37 @@ sainfo address 2001:db8:1:1::1 any address 2001:db8:2:2::2 any \end_layout \begin_layout Code + sainfo address 2001:db8:2:2::2 any address 2001:db8:1:1::1 any \end_layout \begin_layout Code + { \end_layout \begin_layout Code + lifetime time 1 hour; \end_layout \begin_layout Code + encryption_algorithm 3des; \end_layout \begin_layout Code + authentication_algorithm hmac_md5; \end_layout \begin_layout Code + compression_algorithm deflate; \end_layout \begin_layout Code + } \end_layout @@ -12715,10 +13805,12 @@ File: /etc/racoon/psk.txt \end_layout \begin_layout Code + # file for pre-shared keys used for IKE authentication \end_layout \begin_layout Code + # format is: 'identifier' 'key' \end_layout @@ -12727,6 +13819,7 @@ File: /etc/racoon/psk.txt \end_layout \begin_layout Code + 2001:db8:2:2::2 verysecret \end_layout @@ -12750,84 +13843,104 @@ At least the daemon needs to be started. \end_layout \begin_layout Code + # racoon -F -v -f /etc/racoon/racoon.conf \end_layout \begin_layout Code + Foreground mode. \end_layout \begin_layout Code + 2005-01-01 20:30:15: INFO: @(#)ipsec-tools 0.3.3 \end_layout \begin_layout Code + ¬ (http://ipsec-tools.sourceforge.net) \end_layout \begin_layout Code + 2005-01-01 20:30:15: INFO: @(#)This product linked \end_layout \begin_layout Code + ¬ OpenSSL 0.9.7a Feb 19 2003 (http://www.openssl.org/) \end_layout \begin_layout Code + 2005-01-01 20:30:15: INFO: 2001:db8:1:1::1[500] used as isakmp port (fd=7) \end_layout \begin_layout Code + 2005-01-01 20:31:06: INFO: IPsec-SA request for 2001:db8:2:2::2 \end_layout \begin_layout Code + ¬ queued due to no phase1 found. \end_layout \begin_layout Code + 2005-01-01 20:31:06: INFO: initiate new phase 1 negotiation: \end_layout \begin_layout Code + ¬ 2001:db8:1:1::1[500]<=>2001:db8:2:2::2[500] \end_layout \begin_layout Code + 2005-01-01 20:31:06: INFO: begin Identity Protection mode. \end_layout \begin_layout Code + 2005-01-01 20:31:09: INFO: ISAKMP-SA established \end_layout \begin_layout Code + ¬ 2001:db8:1:1::1[500]-2001:db8:2:2::2[500] spi:da3d3693289c9698:ac039a402b2db40 1 \end_layout \begin_layout Code + 2005-01-01 20:31:09: INFO: initiate new phase 2 negotiation: \end_layout \begin_layout Code + ¬ 2001:6f8:900:94::2[0]<=>2001:db8:2:2::2[0] \end_layout \begin_layout Code + 2005-01-01 20:31:10: INFO: IPsec-SA established: \end_layout \begin_layout Code + ¬ ESP/Tunnel 2001:db8:2:2::2->2001:db8:1:1::1 spi=253935531(0xf22bfab) \end_layout \begin_layout Code + 2005-01-01 20:31:10: INFO: IPsec-SA established: \end_layout \begin_layout Code + ¬ ESP/Tunnel 2001:db8:1:1::1->2001:db8:2:2::2 spi=175002564(0xa6e53c4) \end_layout @@ -12845,10 +13958,12 @@ tcpdump \end_layout \begin_layout Code + 20:35:55.305707 2001:db8:1:1::1 > 2001:db8:2:2::2: ESP(spi=0x0a6e53c4,seq=0x3) \end_layout \begin_layout Code + 20:35:55.537522 2001:db8:2:2::2 > 2001:db8:1:1::1: ESP(spi=0x0f22bfab,seq=0x3) \end_layout @@ -12869,94 +13984,117 @@ setkey \end_layout \begin_layout Code + # setkey -D \end_layout \begin_layout Code + 2001:db8:1:1::1 2001:db8:2:2::2 \end_layout \begin_layout Code + esp mode=tunnel spi=175002564(0x0a6e53c4) reqid=0(0x00000000) \end_layout \begin_layout Code + E: 3des-cbc bd26bc45 aea0d249 ef9c6b89 7056080f 5d9fa49c 924e2edd \end_layout \begin_layout Code + A: hmac-md5 60c2c505 517dd8b7 c9609128 a5efc2db \end_layout \begin_layout Code + seq=0x00000000 replay=4 flags=0x00000000 state=mature \end_layout \begin_layout Code + created: Jan 1 20:31:10 2005 current: Jan 1 20:40:47 2005 \end_layout \begin_layout Code + diff: 577(s) hard: 3600(s) soft: 2880(s) \end_layout \begin_layout Code + last: Jan 1 20:35:05 2005 hard: 0(s) soft: 0(s) \end_layout \begin_layout Code + current: 540(bytes) hard: 0(bytes) soft: 0(bytes) \end_layout \begin_layout Code + allocated: 3 hard: 0 soft: 0 \end_layout \begin_layout Code + sadb_seq=1 pid=22358 refcnt=0 \end_layout \begin_layout Code + 2001:db8:2:2::2 2001:db8:1:1::1 \end_layout \begin_layout Code + esp mode=tunnel spi=253935531(0x0f22bfab) reqid=0(0x00000000) \end_layout \begin_layout Code + E: 3des-cbc c1ddba65 83debd62 3f6683c1 20e747ac 933d203f 4777a7ce \end_layout \begin_layout Code + A: hmac-md5 3f957db9 9adddc8c 44e5739d 3f53ca0e \end_layout \begin_layout Code + seq=0x00000000 replay=4 flags=0x00000000 state=mature \end_layout \begin_layout Code + created: Jan 1 20:31:10 2005 current: Jan 1 20:40:47 2005 \end_layout \begin_layout Code + diff: 577(s) hard: 3600(s) soft: 2880(s) \end_layout \begin_layout Code + last: Jan 1 20:35:05 2005 hard: 0(s) soft: 0(s) \end_layout \begin_layout Code + current: 312(bytes) hard: 0(bytes) soft: 0(bytes) \end_layout \begin_layout Code + allocated: 3 hard: 0 soft: 0 \end_layout \begin_layout Code + sadb_seq=0 pid=22358 refcnt=0 \end_layout @@ -13049,18 +14187,22 @@ File: /etc/ipsec.conf \end_layout \begin_layout Code + # /etc/ipsec.conf - Openswan IPsec configuration file \end_layout \begin_layout Code + # \end_layout \begin_layout Code + # Manual: ipsec.conf.5 \end_layout \begin_layout Code + version 2.0 # conforms to second version of ipsec.conf specification \end_layout @@ -13069,22 +14211,27 @@ version 2.0 # conforms to second version of ipsec.conf specification \end_layout \begin_layout Code + # basic configuration \end_layout \begin_layout Code + config setup \end_layout \begin_layout Code + # Debug-logging controls: "none" for (almost) none, "all" for lots. \end_layout \begin_layout Code + # klipsdebug=none \end_layout \begin_layout Code + # plutodebug="control parsing" \end_layout @@ -13093,10 +14240,12 @@ config setup \end_layout \begin_layout Code + #Disable Opportunistic Encryption \end_layout \begin_layout Code + include /etc/ipsec.d/examples/no_oe.conf \end_layout @@ -13105,55 +14254,68 @@ include /etc/ipsec.d/examples/no_oe.conf \end_layout \begin_layout Code + conn ipv6-p1-p2 \end_layout \begin_layout Code + connaddrfamily=ipv6 # Important for IPv6, but no longer needed since StrongSwan 4 \end_layout \begin_layout Code + left=2001:db8:1:1::1 \end_layout \begin_layout Code + right=2001:db8:2:2::2 \end_layout \begin_layout Code + authby=secret \end_layout \begin_layout Code + esp=aes128-sha1 \end_layout \begin_layout Code + ike=aes128-sha-modp1024 \end_layout \begin_layout Code + type=transport \end_layout \begin_layout Code + #type=tunnel \end_layout \begin_layout Code + compress=no \end_layout \begin_layout Code + #compress=yes \end_layout \begin_layout Code + auto=add \end_layout \begin_layout Code + #auto=up \end_layout @@ -13170,6 +14332,7 @@ File: /etc/ipsec.secrets \end_layout \begin_layout Code + 2001:db8:1:1::1 2001:db8:2:2::2 : PSK "verysecret" \end_layout @@ -13191,6 +14354,7 @@ If installation of Openswan was successfully, an initscript should exist \end_layout \begin_layout Code + # /etc/rc.d/init.d/ipsec start \end_layout @@ -13208,34 +14372,42 @@ IPsec SA established \end_layout \begin_layout Code + # ipsec auto --up ipv6-peer1-peer2 \end_layout \begin_layout Code + 104 "ipv6-p1-p2" #1: STATE_MAIN_I1: initiate \end_layout \begin_layout Code + 106 "ipv6-p1-p2" #1: STATE_MAIN_I2: sent MI2, expecting MR2 \end_layout \begin_layout Code + 108 "ipv6-p1-p2" #1: STATE_MAIN_I3: sent MI3, expecting MR3 \end_layout \begin_layout Code + 004 "ipv6-p1-p2" #1: STATE_MAIN_I4: ISAKMP SA established \end_layout \begin_layout Code + 112 "ipv6-p1-p2" #2: STATE_QUICK_I1: initiate \end_layout \begin_layout Code + 004 "ipv6-p1-p2" #2: STATE_QUICK_I2: sent QI2, \end_layout \begin_layout Code + ¬ IPsec SA established {ESP=>0xa98b7710 <0xa51e1f22} \end_layout @@ -13253,94 +14425,117 @@ setkey \end_layout \begin_layout Code + # setkey -D \end_layout \begin_layout Code + 2001:db8:1:1::1 2001:db8:2:2::2 \end_layout \begin_layout Code + esp mode=transport spi=2844489488(0xa98b7710) reqid=16385(0x00004001) \end_layout \begin_layout Code + E: aes-cbc 082ee274 2744bae5 7451da37 1162b483 \end_layout \begin_layout Code + A: hmac-sha1 b7803753 757417da 477b1c1a 64070455 ab79082c \end_layout \begin_layout Code + seq=0x00000000 replay=64 flags=0x00000000 state=mature \end_layout \begin_layout Code + created: Jan 1 21:16:32 2005 current: Jan 1 21:22:20 2005 \end_layout \begin_layout Code + diff: 348(s) hard: 0(s) soft: 0(s) \end_layout \begin_layout Code + last: hard: 0(s) soft: 0(s) \end_layout \begin_layout Code + current: 0(bytes) hard: 0(bytes) soft: 0(bytes) \end_layout \begin_layout Code + allocated: 0 hard: 0 soft: 0 \end_layout \begin_layout Code + sadb_seq=1 pid=23825 refcnt=0 \end_layout \begin_layout Code + 2001:db8:2:2::2 2001:db8:1:1::1 \end_layout \begin_layout Code + esp mode=transport spi=2770214690(0xa51e1f22) reqid=16385(0x00004001) \end_layout \begin_layout Code + E: aes-cbc 6f59cc30 8d856056 65e07b76 552cac18 \end_layout \begin_layout Code + A: hmac-sha1 c7c7d82b abfca8b1 5440021f e0c3b335 975b508b \end_layout \begin_layout Code + seq=0x00000000 replay=64 flags=0x00000000 state=mature \end_layout \begin_layout Code + created: Jan 1 21:16:31 2005 current: Jan 1 21:22:20 2005 \end_layout \begin_layout Code + diff: 349(s) hard: 0(s) soft: 0(s) \end_layout \begin_layout Code + last: hard: 0(s) soft: 0(s) \end_layout \begin_layout Code + current: 0(bytes) hard: 0(bytes) soft: 0(bytes) \end_layout \begin_layout Code + allocated: 0 hard: 0 soft: 0 \end_layout \begin_layout Code + sadb_seq=0 pid=23825 refcnt=0 \end_layout @@ -13362,10 +14557,12 @@ ip \end_layout \begin_layout Code + # ip xfrm policy \end_layout \begin_layout Code + ... \end_layout @@ -13374,10 +14571,12 @@ ip \end_layout \begin_layout Code + # ip xfrm state \end_layout \begin_layout Code + ... \end_layout @@ -13424,32 +14623,39 @@ Proper working QoS is only possible on the outgoing interface of a router \end_layout \begin_layout Code + -------------->------- \end_layout \begin_layout Code + Queue 1 \backslash \end_layout \begin_layout Code + --->--- ---->--------->--------->--------------- \end_layout \begin_layout Code + Big pipe Queue 2 Queue 1 / Queue 2 / Queue 3 Thin Pipe \end_layout \begin_layout Code + --->---- ---->--------->--------->--------------- \end_layout \begin_layout Code + Queue 3 / \end_layout \begin_layout Code + -------------->------- \end_layout @@ -13518,6 +14724,7 @@ Define root qdisc with a bandwidth of 1000 MBit/s on eth1 \end_layout \begin_layout Code + # tc qdisc add dev eth1 root handle 1: cbq avpkt 1000 bandwidth 1000Mbit \end_layout @@ -13530,6 +14737,7 @@ Define a class 1:1 with 1 MBit/s \end_layout \begin_layout Code + # tc class add dev eth1 parent 1: classid 1:1 cbq rate 1Mbit allot 1500 bounded \end_layout @@ -13539,6 +14747,7 @@ Define a class 1:2 with 50 MBit/s \end_layout \begin_layout Code + # tc class add dev eth1 parent 1: classid 1:2 cbq rate 50Mbit allot 1500 bounded \end_layout @@ -13548,6 +14757,7 @@ Define a class 1:3 with 10 MBit/s \end_layout \begin_layout Code + # tc class add dev eth1 parent 1: classid 1:3 cbq rate 10Mbit allot 1500 bounded \end_layout @@ -13557,6 +14767,7 @@ Define a class 1:4 with 200 kBit/s \end_layout \begin_layout Code + # tc class add dev eth1 parent 1: classid 1:4 cbq rate 200kbit allot 1500 bounded \end_layout @@ -13582,6 +14793,7 @@ match ip dport 5001 0xffff \end_layout \begin_layout Code + # tc filter add dev eth1 parent 1: protocol ip u32 match ip protocol 6 0xff match ip dport 5001 0xffff flowid 1:1 \end_layout @@ -13599,6 +14811,7 @@ match ip6 protocol 6 0xff \end_layout \begin_layout Code + # tc filter add dev eth1 parent 1: protocol ipv6 u32 match ip6 protocol 6 0xff match ip6 dport 5001 0xffff flowid 1:2 \end_layout @@ -13612,6 +14825,7 @@ match ip6 flowlabel 12345 0x3ffff \end_layout \begin_layout Code + # tc filter add dev eth1 parent 1: protocol ipv6 u32 match ip6 flowlabel 12345 0x3ffff flowid 1:3 \end_layout @@ -13625,6 +14839,7 @@ handle 32 fw \end_layout \begin_layout Code + # tc filter add dev eth1 parent 1: protocol ipv6 handle 32 fw flowid 1:4 \end_layout @@ -13634,6 +14849,7 @@ The last filter definition requires an entry in the ip6tables to mark a \end_layout \begin_layout Code + # ip6tables -A POSTROUTING -t mangle -p tcp --dport 5003 -j MARK --set-mark 32 \end_layout @@ -13647,14 +14863,17 @@ Start on server side each one one separate console: \end_layout \begin_layout Code + # iperf -V -s -p 5001 \end_layout \begin_layout Code + # iperf -V -s -p 5002 \end_layout \begin_layout Code + # iperf -V -s -p 5003 \end_layout @@ -13663,29 +14882,35 @@ Start on client side and compare results: \end_layout \begin_layout Code + # iperf -V -c SERVER-IPv4 -p 5001 (expected: 1 MBit/s) \end_layout \begin_layout Code + # iperf -V -c SERVER-IPv6 -p 5001 (expected: 50 MBit/s) \end_layout \begin_layout Code + # iperf -V -c SERVER-IPv4 -p 5002 (expected: >> 50 MBit/s && <= 1000 MBit/s) \end_layout \begin_layout Code + # iperf -V -c SERVER-IPv6 -p 5002 (expected: >> 50 MBit/s && <= 1000 MBit/s) \end_layout \begin_layout Code + # iperf -V -c SERVER-IPv4 -p 5003 (expected: >> 50 MBit/s && <= 1000 MBit/s) \end_layout \begin_layout Code + # iperf -V -c SERVER-IPv6 -p 5003 (expected: 200 kBit/s) \end_layout @@ -13761,18 +14986,22 @@ To enable IPv6 for listening, following options are requested to change \end_layout \begin_layout Code + options { \end_layout \begin_layout Code + # sure other options here, too \end_layout \begin_layout Code + listen-on-v6 { any; }; \end_layout \begin_layout Code + }; \end_layout @@ -13781,48 +15010,59 @@ This should result after restart in e.g. \end_layout \begin_layout Code + # netstat -lnptu |grep "named \backslash W*$" \end_layout \begin_layout Code + tcp 0 0 :::53 :::* LISTEN 1234/named \end_layout \begin_layout Code + ¬ # incoming TCP requests \end_layout \begin_layout Code + udp 0 0 1.2.3.4:53 0.0.0.0:* 1234/named \end_layout \begin_layout Code + ¬ # incoming UDP requests to IPv4 1.2.3.4 \end_layout \begin_layout Code + udp 0 0 127.0.0.1:53 0.0.0.0:* 1234/named \end_layout \begin_layout Code + ¬ # incoming UDP requests to IPv4 localhost \end_layout \begin_layout Code + udp 0 0 0.0.0.0:32868 0.0.0.0:* 1234/named \end_layout \begin_layout Code + ¬ # dynamic chosen port for outgoing queries \end_layout \begin_layout Code + udp 0 0 :::53 :::* 1234/named \end_layout \begin_layout Code + ¬ # incoming UDP request to any IPv6 \end_layout @@ -13831,6 +15071,7 @@ And a simple test looks like \end_layout \begin_layout Code + # dig localhost @::1 \end_layout @@ -13847,18 +15088,22 @@ To disable IPv6 for listening, following options are requested to change \end_layout \begin_layout Code + options { \end_layout \begin_layout Code + # sure other options here, too \end_layout \begin_layout Code + listen-on-v6 { none; }; \end_layout \begin_layout Code + }; \end_layout @@ -13872,54 +15117,67 @@ IPv6 enabled ACLs are possible and should be used whenever it's possible. \end_layout \begin_layout Code + acl internal-net { \end_layout \begin_layout Code + 127.0.0.1; \end_layout \begin_layout Code + 1.2.3.0/24; \end_layout \begin_layout Code + 2001:0db8:100::/56; \end_layout \begin_layout Code + ::1/128; \end_layout \begin_layout Code + ::ffff:1.2.3.4/128; \end_layout \begin_layout Code + }; \end_layout \begin_layout Code + acl ns-internal-net { \end_layout \begin_layout Code + 1.2.3.4; \end_layout \begin_layout Code + 1.2.3.5; \end_layout \begin_layout Code + 2001:0db8:100::4/128; \end_layout \begin_layout Code + 2001:0db8:100::5/128; \end_layout \begin_layout Code + }; \end_layout @@ -13931,26 +15189,32 @@ This ACLs can be used e.g. \end_layout \begin_layout Code + options { \end_layout \begin_layout Code + # sure other options here, too \end_layout \begin_layout Code + listen-on-v6 { none; }; \end_layout \begin_layout Code + allow-query { internal-net; }; \end_layout \begin_layout Code + allow-transfer { ns-internal-net; }; \end_layout \begin_layout Code + }; \end_layout @@ -13975,6 +15239,7 @@ This option is not required, but perhaps needed: \end_layout \begin_layout Code + query-source-v6 address port ; \end_layout @@ -13995,6 +15260,7 @@ Transfer source address is used for outgoing zone transfers: \end_layout \begin_layout Code + transfer-source-v6 [port port]; \end_layout @@ -14007,6 +15273,7 @@ Notify source address is used for outgoing notify messages: \end_layout \begin_layout Code + notify-source-v6 [port port]; \end_layout @@ -14159,22 +15426,27 @@ Specifying a dedicated server for the query, an IPv6 connect can be forced: \end_layout \begin_layout Code + $ host -t aaaa www.6bone.net 2001:0db8:200:f101::1 \end_layout \begin_layout Code + Using domain server: \end_layout \begin_layout Code + Name: 2001:0db8:200:f101::1 \end_layout \begin_layout Code + Address: 2001:0db8:200:f101::1#53 \end_layout \begin_layout Code + Aliases: \end_layout @@ -14183,6 +15455,7 @@ Aliases: \end_layout \begin_layout Code + Host www.6bone.net. not found: 5(REFUSED) \end_layout @@ -14192,14 +15465,17 @@ Related log entry looks like following: \end_layout \begin_layout Code + Jan 3 12:43:32 gate named[12347]: client \end_layout \begin_layout Code + ¬ 2001:0db8:200:f101:212:34ff:fe12:3456#32770: \end_layout \begin_layout Code + query denied \end_layout @@ -14217,22 +15493,27 @@ A successful IPv6 connect looks like following: \end_layout \begin_layout Code + $ host -t aaaa www.6bone.net 2001:0db8:200:f101::1 \end_layout \begin_layout Code + Using domain server: \end_layout \begin_layout Code + Name: 2001:0db8:200:f101::1 \end_layout \begin_layout Code + Address: 2001:0db8:200:f101::1#53 \end_layout \begin_layout Code + Aliases: \end_layout @@ -14241,12 +15522,14 @@ Aliases: \end_layout \begin_layout Code + www.6bone.net. is an alias for 6bone.net. \end_layout \begin_layout Code + 6bone.net. has AAAA address 3ffe:b00:c18:1::10 \end_layout @@ -14290,42 +15573,52 @@ If you enable a built-in service like e.g. \end_layout \begin_layout Code + # diff -u /etc/xinetd.d/daytime.orig /etc/xinetd.d/daytime \end_layout \begin_layout Code + --- /etc/xinetd.d/daytime.orig Sun Dec 16 19:00:14 2001 \end_layout \begin_layout Code + +++ /etc/xinetd.d/daytime Sun Dec 16 19:00:22 2001 \end_layout \begin_layout Code + @@ -10,5 +10,5 @@ \end_layout \begin_layout Code + protocol = tcp \end_layout \begin_layout Code + user = root \end_layout \begin_layout Code + wait = no \end_layout \begin_layout Code + - disable = yes \end_layout \begin_layout Code + + disable = no \end_layout \begin_layout Code + } \end_layout @@ -14334,22 +15627,27 @@ After restarting the xinetd you should get a positive result like: \end_layout \begin_layout Code + # netstat -lnptu -A inet6 |grep "xinetd*" \end_layout \begin_layout Code + tcp 0 0 ::ffff:192.168.1.1:993 :::* LISTEN 12345/xinetd-ipv6 \end_layout \begin_layout Code + tcp 0 0 :::13 :::* LISTEN 12345/xinetd-ipv6 <- service \end_layout \begin_layout Code + ¬ daytime/tcp \end_layout \begin_layout Code + tcp 0 0 ::ffff:192.168.1.1:143 :::* LISTEN 12345/xinetd-ipv6 \end_layout @@ -14404,22 +15702,27 @@ Virtual host listen on an IPv6 address only \end_layout \begin_layout Code + Listen [2001:0db8:100::1]:80 \end_layout \begin_layout Code + \end_layout \begin_layout Code + ServerName ipv6only.yourdomain.yourtopleveldomain \end_layout \begin_layout Code + # ...sure more config lines \end_layout \begin_layout Code + \end_layout @@ -14428,26 +15731,32 @@ Virtual host listen on an IPv6 and on an IPv4 address \end_layout \begin_layout Code + Listen [2001:0db8:100::2]:80 \end_layout \begin_layout Code + Listen 1.2.3.4:80 \end_layout \begin_layout Code + \end_layout \begin_layout Code + ServerName ipv6andipv4.yourdomain.yourtopleveldomain \end_layout \begin_layout Code + # ...sure more config lines \end_layout \begin_layout Code + \end_layout @@ -14456,20 +15765,24 @@ This should result after restart in e.g. \end_layout \begin_layout Code + # netstat -lnptu |grep "httpd2 \backslash W*$" \end_layout \begin_layout Code + tcp 0 0 1.2.3.4:80 0.0.0.0:* LISTEN 12345/httpd2 \end_layout \begin_layout Code + tcp 0 0 2001:0db8:100::1:80 :::* LISTEN 12345/httpd2 \end_layout \begin_layout Code + tcp 0 0 2001:0db8:100::2:80 :::* LISTEN 12345/httpd2 \end_layout @@ -14569,42 +15882,52 @@ Radvd's config file is normally /etc/radvd.conf. \end_layout \begin_layout Code + interface eth0 { \end_layout \begin_layout Code + AdvSendAdvert on; \end_layout \begin_layout Code + MinRtrAdvInterval 3; \end_layout \begin_layout Code + MaxRtrAdvInterval 10; \end_layout \begin_layout Code + prefix 2001:0db8:0100:f101::/64 { \end_layout \begin_layout Code + AdvOnLink on; \end_layout \begin_layout Code + AdvAutonomous on; \end_layout \begin_layout Code + AdvRouterAddr on; \end_layout \begin_layout Code + }; \end_layout \begin_layout Code + }; \end_layout @@ -14613,23 +15936,28 @@ This results on client side in \end_layout \begin_layout Code + # ip -6 addr show eth0 \end_layout \begin_layout Code + 3: eth0: mtu 1500 qdisc pfifo_fast qlen 100 \end_layout \begin_layout Code + inet6 2001:0db8:100:f101:2e0:12ff:fe34:1234/64 scope global dynamic \end_layout \begin_layout Code + valid_lft 2591992sec preferred_lft 604792sec \end_layout \begin_layout Code + inet6 fe80::2e0:12ff:fe34:1234/10 scope link \end_layout @@ -14652,54 +15980,67 @@ Version since 0.6.2pl3 support the automatic (re)-generation of the prefix \end_layout \begin_layout Code + interface eth0 { \end_layout \begin_layout Code + AdvSendAdvert on; \end_layout \begin_layout Code + MinRtrAdvInterval 3; \end_layout \begin_layout Code + MaxRtrAdvInterval 10; \end_layout \begin_layout Code + prefix 0:0:0:f101::/64 { \end_layout \begin_layout Code + AdvOnLink off; \end_layout \begin_layout Code + AdvAutonomous on; \end_layout \begin_layout Code + AdvRouterAddr on; \end_layout \begin_layout Code + Base6to4Interface ppp0; \end_layout \begin_layout Code + AdvPreferredLifetime 20; \end_layout \begin_layout Code + AdvValidLifetime 30; \end_layout \begin_layout Code + }; \end_layout \begin_layout Code + }; \end_layout @@ -14709,23 +16050,28 @@ This results on client side in (assuming, ppp0 has currently 1.2.3.4 as local \end_layout \begin_layout Code + # /sbin/ip -6 addr show eth0 \end_layout \begin_layout Code + 3: eth0: mtu 1500 qdisc pfifo_fast qlen 100 \end_layout \begin_layout Code + inet6 2002:0102:0304:f101:2e0:12ff:fe34:1234/64 scope global dynamic \end_layout \begin_layout Code + valid_lft 22sec preferred_lft 12sec \end_layout \begin_layout Code + inet6 fe80::2e0:12ff:fe34:1234/10 scope link \end_layout @@ -14742,6 +16088,7 @@ Additional note: if you do not used special 6to4 support in initscripts, \end_layout \begin_layout Code + # /sbin/ip -6 route add 2002:0102:0304:f101::/64 dev eth0 metric 1 \end_layout @@ -14768,86 +16115,107 @@ radvdump \end_layout \begin_layout Code + # radvdump \end_layout \begin_layout Code + Router advertisement from fe80::280:c8ff:feb9:cef9 (hoplimit 255) \end_layout \begin_layout Code + AdvCurHopLimit: 64 \end_layout \begin_layout Code + AdvManagedFlag: off \end_layout \begin_layout Code + AdvOtherConfigFlag: off \end_layout \begin_layout Code + AdvHomeAgentFlag: off \end_layout \begin_layout Code + AdvReachableTime: 0 \end_layout \begin_layout Code + AdvRetransTimer: 0 \end_layout \begin_layout Code + Prefix 2002:0102:0304:f101::/64 \end_layout \begin_layout Code + AdvValidLifetime: 30 \end_layout \begin_layout Code + AdvPreferredLifetime: 20 \end_layout \begin_layout Code + AdvOnLink: off \end_layout \begin_layout Code + AdvAutonomous: on \end_layout \begin_layout Code + AdvRouterAddr: on \end_layout \begin_layout Code + Prefix 2001:0db8:100:f101::/64 \end_layout \begin_layout Code + AdvValidLifetime: 2592000 \end_layout \begin_layout Code + AdvPreferredLifetime: 604800 \end_layout \begin_layout Code + AdvOnLink: on \end_layout \begin_layout Code + AdvAutonomous: on \end_layout \begin_layout Code + AdvRouterAddr: on \end_layout \begin_layout Code + AdvSourceLLAddress: 00 80 12 34 56 78 \end_layout @@ -14899,54 +16267,67 @@ dhcp6s's config file is normally /etc/dhcp6s.conf. \end_layout \begin_layout Code + interface eth0 { \end_layout \begin_layout Code + server-preference 255; \end_layout \begin_layout Code + renew-time 60; \end_layout \begin_layout Code + rebind-time 90; \end_layout \begin_layout Code + prefer-life-time 130; \end_layout \begin_layout Code + valid-life-time 200; \end_layout \begin_layout Code + allow rapid-commit; \end_layout \begin_layout Code + option dns_servers 2001:db8:0:f101::1 sub.domain.example; \end_layout \begin_layout Code + link AAA { \end_layout \begin_layout Code + range 2001:db8:0:f101::1000 to 2001:db8:0:f101::ffff/64; \end_layout \begin_layout Code + prefix 2001:db8:0:f101::/64; \end_layout \begin_layout Code + }; \end_layout \begin_layout Code + }; \end_layout @@ -14964,18 +16345,22 @@ dhcp6c's config file is normally /etc/dhcp6c.conf. \end_layout \begin_layout Code + interface eth0 { \end_layout \begin_layout Code + send rapid-commit; \end_layout \begin_layout Code + request domain-name-servers; \end_layout \begin_layout Code + }; \end_layout @@ -14992,6 +16377,7 @@ Start server, e.g. \end_layout \begin_layout Code + # service dhcp6s start \end_layout @@ -15004,6 +16390,7 @@ Start client in foreground, e.g. \end_layout \begin_layout Code + # dhcp6c -f eth0 \end_layout @@ -15021,6 +16408,7 @@ The server has one foreground and two debug toggles (both should be used \end_layout \begin_layout Code + # dhcp6s -d -D -f eth0 \end_layout @@ -15034,6 +16422,7 @@ As general debugging for test whether the IPv6 DHCP server is reable on \end_layout \begin_layout Code + # ping6 -I eth0 ff02::1:2 \end_layout @@ -15042,51 +16431,63 @@ The client has one foreground and two debug toggles, here is an example: \end_layout \begin_layout Code + # dhcp6c -d -f eth0 \end_layout \begin_layout Code + Oct/03/2005 17:18:16 dhcpv6 doesn't support hardware type 776 \end_layout \begin_layout Code + Oct/03/2005 17:18:16 doesn't support sit0 address family 0 \end_layout \begin_layout Code + Oct/03/2005 17:18:16 netlink_recv_rtgenmsg error \end_layout \begin_layout Code + Oct/03/2005 17:18:16 netlink_recv_rtgenmsg error \end_layout \begin_layout Code + Oct/03/2005 17:18:17 status code for this address is: success \end_layout \begin_layout Code + Oct/03/2005 17:18:17 status code: success \end_layout \begin_layout Code + Oct/03/2005 17:18:17 netlink_recv_rtgenmsg error \end_layout \begin_layout Code + Oct/03/2005 17:18:17 netlink_recv_rtgenmsg error \end_layout \begin_layout Code + Oct/03/2005 17:18:17 assigned address 2001:db8:0:f101::1002 prefix len is not \end_layout \begin_layout Code + ¬ in any RAs prefix length using 64 bit instead \end_layout \begin_layout Code + Oct/03/2005 17:18:17 renew time 60, rebind time 9 \end_layout @@ -15137,26 +16538,32 @@ Create a dedicated configuration file /etc/dhcp/dhcpd6.conf for the IPv6 \end_layout \begin_layout Code + default-lease-time 600; \end_layout \begin_layout Code + max-lease-time 7200; \end_layout \begin_layout Code + log-facility local7; \end_layout \begin_layout Code + subnet6 2001:db8:0:1::/64 { \end_layout \begin_layout Code + # Range for clients \end_layout \begin_layout Code + range6 2001:db8:0:1::129 2001:db8:0:1::254; \end_layout @@ -15165,10 +16572,12 @@ subnet6 2001:db8:0:1::/64 { \end_layout \begin_layout Code + # Range for clients requesting a temporary address \end_layout \begin_layout Code + range6 2001:db8:0:1::/64 temporary; \end_layout @@ -15177,14 +16586,17 @@ subnet6 2001:db8:0:1::/64 { \end_layout \begin_layout Code + # Additional options \end_layout \begin_layout Code + option dhcp6.name-servers fec0:0:0:1::1; \end_layout \begin_layout Code + option dhcp6.domain-search "domain.example"; \end_layout @@ -15193,10 +16605,12 @@ subnet6 2001:db8:0:1::/64 { \end_layout \begin_layout Code + # Prefix range for delegation to sub-routers \end_layout \begin_layout Code + prefix6 2001:db8:0:100:: 2001:db8:0:f00:: /56; \end_layout @@ -15205,27 +16619,33 @@ subnet6 2001:db8:0:1::/64 { \end_layout \begin_layout Code + # Example for a fixed host address \end_layout \begin_layout Code + host specialclient { \end_layout \begin_layout Code + host-identifier option dhcp6.client-id 00:01:00:01:4a:1f:ba:e3:60:b9:1f:01: 23:45; \end_layout \begin_layout Code + fixed-address6 2001:db8:0:1::127; \end_layout \begin_layout Code + } \end_layout \begin_layout Code + } \end_layout @@ -15261,6 +16681,7 @@ dhcp6c \end_layout \begin_layout Code + # hexdump -e '"%07.7_ax " 1/2 "%04x" " " 14/1 "%02x:" " \backslash n"' /var/lib/dhcpv6/dhcp6c_duid 0000000 000e 00:01:00:01:4a:1f:ba:e3:60:b9:1f:01 @@ -15280,46 +16701,56 @@ Start server in foreground: \end_layout \begin_layout Code + # /usr/sbin/dhcpd -6 -d -cf /etc/dhcp/dhcpd6.conf eth1 \end_layout \begin_layout Code + Internet Systems Consortium DHCP Server 4.1.0 \end_layout \begin_layout Code + Copyright 2004-2008 Internet Systems Consortium. \end_layout \begin_layout Code + All rights reserved. \end_layout \begin_layout Code + For info, please visit http://www.isc.org/sw/dhcp/ \end_layout \begin_layout Code + Not searching LDAP since ldap-server, ldap-port and ldap-base-dn were not specified in the config file \end_layout \begin_layout Code + Wrote 0 leases to leases file. \end_layout \begin_layout Code + Bound to *:547 \end_layout \begin_layout Code + Listening on Socket/5/eth1/2001:db8:0:1::/64 \end_layout \begin_layout Code + Sending on Socket/5/eth1/2001:db8:0:1::/64 \end_layout @@ -15352,55 +16783,68 @@ Create a dedicated configuration file /etc/dibbler/server.conf . \end_layout \begin_layout Code + log-level 8 \end_layout \begin_layout Code + log-mode short \end_layout \begin_layout Code + preference 0 \end_layout \begin_layout Code + iface "eth1" { \end_layout \begin_layout Code + // also ranges can be defines, instead of exact values t1 1800-2000 t2 2700-3000 \end_layout \begin_layout Code + prefered-lifetime 3600 \end_layout \begin_layout Code + valid-lifetime 7200 \end_layout \begin_layout Code + class { \end_layout \begin_layout Code + pool 2001:6f8:12d8:1::/64 \end_layout \begin_layout Code + } \end_layout \begin_layout Code + option dns-server fec0:0:0:1::1 \end_layout \begin_layout Code + option domain domain.example \end_layout \begin_layout Code + } \end_layout @@ -15417,124 +16861,148 @@ Start server in foreground: \end_layout \begin_layout Code + # dibbler-server run \end_layout \begin_layout Code + | Dibbler - a portable DHCPv6, version 0.7.3 (SERVER, Linux port) \end_layout \begin_layout Code + | Authors : Tomasz Mrugalski,Marek Senderski \end_layout \begin_layout Code + | Licence : GNU GPL v2 only. Developed at Gdansk University of Technology. \end_layout \begin_layout Code + | Homepage: http://klub.com.pl/dhcpv6/ \end_layout \begin_layout Code + 2009.05.28 10:18:48 Server Notice My pid (1789) is stored in /var/lib/dibbler/s erver.pid \end_layout \begin_layout Code + 2009.05.28 10:18:48 Server Notice Detected iface eth0/3, MAC=54:52:00:01:23:45. \end_layout \begin_layout Code + 2009.05.28 10:18:48 Server Notice Detected iface eth1/2, MAC=54:52:00:67:89:ab. \end_layout \begin_layout Code + 2009.05.28 10:18:48 Server Notice Detected iface lo/1, MAC=00:00:00:00:00:00. \end_layout \begin_layout Code + 2009.05.28 10:18:48 Server Debug Skipping database loading. \end_layout \begin_layout Code + 2009.05.28 10:18:48 Server Debug Cache:server-cache.xml file: parsing started, expecting 0 entries. \end_layout \begin_layout Code + 2009.05.28 10:18:48 Server Notice Parsing /etc/dibbler/server.conf config file... \end_layout \begin_layout Code + 18:48 Server Debug Setting 0 generic option(s). \end_layout \begin_layout Code + 18:48 Server Debug 0 per-client configurations (exceptions) added. \end_layout \begin_layout Code + 18:48 Server Debug Parsing /etc/dibbler/server.conf done. \end_layout \begin_layout Code + 18:48 Server Info 0 client class(es) defined. \end_layout \begin_layout Code + 18:48 Server Debug 1 interface(s) specified in /etc/dibbler/server.conf \end_layout \begin_layout Code + 18:48 Server Info Mapping allow, deny list to class 0:0 allow/deny entries in total. \end_layout \begin_layout Code + 18:48 Server Info Interface eth1/2 configuration has been loaded. \end_layout \begin_layout Code + 18:48 Server Notice Running in stateful mode. \end_layout \begin_layout Code + 18:48 Server Info My DUID is 00:01:00:01:11:aa:6d:a7:54:52:00:67:89:ab. \end_layout \begin_layout Code + 18:48 Server Notice Creating multicast (ff02::1:2) socket on eth1/2 (eth1/2) interface. \end_layout \begin_layout Code + 18:48 Server Debug Cache: size set to 1048576 bytes, 1 cache entry size is 87 bytes, so maximum 12052 address-client pair(s) may be cached. \end_layout \begin_layout Code + 18:48 Server Notice Accepting connections. Next event in 4294967295 second(s). \end_layout @@ -15596,6 +17064,7 @@ tcp_wrapper is controlled by two files name /etc/hosts.allow and /etc/hosts.deny \end_layout \begin_layout Code + $ man hosts.allow \end_layout @@ -15609,11 +17078,13 @@ In this file, each service which should be positive filtered (means connects \end_layout \begin_layout Code + sshd: 1.2.3. [2001:0db8:100:200::]/64 \end_layout \begin_layout Code + daytime-stream: 1.2.3. [2001:0db8:100:200::]/64 \end_layout @@ -15634,6 +17105,7 @@ This file contains all negative filter entries and should normally deny \end_layout \begin_layout Code + ALL: ALL \end_layout @@ -15645,10 +17117,12 @@ If this node is a more sensible one you can replace the standard line above \end_layout \begin_layout Code + ALL: ALL: spawn (echo "Attempt from %h %a to %d at `date`" \end_layout \begin_layout Code + | tee -a /var/log/tcp.deny.log | mail root@localhost) \end_layout @@ -15671,18 +17145,22 @@ A refused connection via IPv4 to an xinetd covered daytime service produces \end_layout \begin_layout Code + Jan 2 20:40:44 gate xinetd-ipv6[12346]: FAIL: daytime-stream libwrap \end_layout \begin_layout Code + ¬ from=::ffff:1.2.3.4 \end_layout \begin_layout Code + Jan 2 20:32:06 gate xinetd-ipv6[12346]: FAIL: daytime-stream libwrap \end_layout \begin_layout Code + from=2001:0db8:100:200::212:34ff:fe12:3456 \end_layout @@ -15692,22 +17170,27 @@ A refused connection via IPv4 to an dual-listen sshd produces a line like \end_layout \begin_layout Code + Jan 2 20:24:17 gate sshd[12345]: refused connect from ::ffff:1.2.3.4 \end_layout \begin_layout Code + ¬ (::ffff:1.2.3.4) \end_layout \begin_layout Code + Jan 2 20:39:33 gate sshd[12345]: refused connect \end_layout \begin_layout Code + from 2001:0db8:100:200::212:34ff:fe12:3456 \end_layout \begin_layout Code + ¬ (2001:0db8:100:200::212:34ff:fe12:3456) \end_layout @@ -15721,18 +17204,22 @@ A permitted connection via IPv4 to an xinetd covered daytime service produces \end_layout \begin_layout Code + Jan 2 20:37:50 gate xinetd-ipv6[12346]: START: daytime-stream pid=0 \end_layout \begin_layout Code + ¬ from=::ffff:1.2.3.4 \end_layout \begin_layout Code + Jan 2 20:37:56 gate xinetd-ipv6[12346]: START: daytime-stream pid=0 \end_layout \begin_layout Code + from=2001:0db8:100:200::212:34ff:fe12:3456 \end_layout @@ -15742,18 +17229,22 @@ A permitted connection via IPv4 to an dual-listen sshd produces a line like \end_layout \begin_layout Code + Jan 2 20:43:10 gate sshd[21975]: Accepted password for user from ::ffff:1.2.3.4 \end_layout \begin_layout Code + ¬ port 33381 ssh2 \end_layout \begin_layout Code + Jan 2 20:42:19 gate sshd[12345]: Accepted password for user \end_layout \begin_layout Code + from 2001:0db8:100:200::212:34ff:fe12:3456 port 33380 ssh2 \end_layout @@ -15777,6 +17268,7 @@ Edit the configuration file, ususally /etc/vsftpd/vsftpd.conf, and adjust \end_layout \begin_layout Code + listen_ipv6=yes \end_layout @@ -15804,22 +17296,27 @@ Edit the configuration file, ususally /etc/proftpd.conf, but take care, not \end_layout \begin_layout Code + \end_layout \begin_layout Code + ... \end_layout \begin_layout Code + Bind 2001:0DB8::1 \end_layout \begin_layout Code + ... \end_layout \begin_layout Code + \end_layout @@ -16019,30 +17516,37 @@ struct sockaddr_in \end_layout \begin_layout Code + struct sockaddr_in \end_layout \begin_layout Code + { \end_layout \begin_layout Code + sa_family_t sin_family; \end_layout \begin_layout Code + in_port_t sin_port; \end_layout \begin_layout Code + struct in_addr sin_addr; \end_layout \begin_layout Code + /* Plus some padding for alignment */ \end_layout \begin_layout Code + }; \end_layout @@ -16094,34 +17598,42 @@ struct sockaddr_in6 \end_layout \begin_layout Code + struct sockaddr_in6 \end_layout \begin_layout Code + { \end_layout \begin_layout Code + sa_family_t sin6_family; \end_layout \begin_layout Code + in_port_t sin6_port; \end_layout \begin_layout Code + uint32_t sin6_flowinfo; \end_layout \begin_layout Code + struct in6_addr sin6_addr; \end_layout \begin_layout Code + uint32_t sin6_scope_id; \end_layout \begin_layout Code + }; \end_layout @@ -16235,6 +17747,7 @@ fe80::1%eth1 \end_layout \begin_layout Code + Host A (fe80::1) ---- eth0 ---- Host B ---- eth1 ---- Host C (fe80::1) \end_layout @@ -16343,26 +17856,32 @@ recvfrom(2) \end_layout \begin_layout Code + ssize_t recvfrom( int s, \end_layout \begin_layout Code + void *buf, \end_layout \begin_layout Code + size_t len, \end_layout \begin_layout Code + int flags, \end_layout \begin_layout Code + struct sockaddr *from, \end_layout \begin_layout Code + socklen_t *fromlen ); \end_layout @@ -16388,84 +17907,104 @@ struct sockaddr_storage \end_layout \begin_layout Code + /* \end_layout \begin_layout Code + ** Read a message from a remote peer, and return a buffer pointer to \end_layout \begin_layout Code + ** the caller. \end_layout \begin_layout Code + ** \end_layout \begin_layout Code + ** 's' is the file descriptor for the socket. \end_layout \begin_layout Code + */ \end_layout \begin_layout Code + char *rcvMsg( int s ) \end_layout \begin_layout Code + { \end_layout \begin_layout Code + static char bfr[ 1025 ]; /* Where the msg is stored. */ \end_layout \begin_layout Code + ssize_t count; \end_layout \begin_layout Code + struct sockaddr_storage ss; /* Where the peer adr goes. */ \end_layout \begin_layout Code + socklen_t sslen; \end_layout \begin_layout Code + sslen = sizeof( ss ); \end_layout \begin_layout Code + count = recvfrom( s, \end_layout \begin_layout Code + bfr, \end_layout \begin_layout Code + sizeof( bfr ) - 1, \end_layout \begin_layout Code + 0, \end_layout \begin_layout Code + (struct sockaddr*) &ss, \end_layout \begin_layout Code + &sslen ); \end_layout \begin_layout Code + bfr[ count ] = ' \backslash 0'; /* Null-terminates the message. @@ -16473,10 +18012,12 @@ char *rcvMsg( int s ) \end_layout \begin_layout Code + return bfr; \end_layout \begin_layout Code + } /* End rcvMsg() */ \end_layout @@ -16543,18 +18084,22 @@ getaddrinfo(3) \end_layout \begin_layout Code + int getaddrinfo( const char *node, \end_layout \begin_layout Code + const char *service, \end_layout \begin_layout Code + const struct addrinfo *hints, \end_layout \begin_layout Code + struct addrinfo **res ); \end_layout @@ -16613,46 +18158,57 @@ struct addrinfo \end_layout \begin_layout Code + struct addrinfo \end_layout \begin_layout Code + { \end_layout \begin_layout Code + int ai_flags; \end_layout \begin_layout Code + int ai_family; \end_layout \begin_layout Code + int ai_socktype; \end_layout \begin_layout Code + int ai_protocol; \end_layout \begin_layout Code + socklen_t ai_addrlen; \end_layout \begin_layout Code + struct sockaddr *ai_addr; \end_layout \begin_layout Code + char *ai_canonname; \end_layout \begin_layout Code + struct addrinfo *ai_next; \end_layout \begin_layout Code + }; \end_layout @@ -17061,30 +18617,37 @@ struct sockaddr \end_layout \begin_layout Code + int getnameinfo( const struct sockaddr *sa, \end_layout \begin_layout Code + socklen_t salen, \end_layout \begin_layout Code + char *host, \end_layout \begin_layout Code + size_t hostlen, \end_layout \begin_layout Code + char *serv, \end_layout \begin_layout Code + size_t servlen, \end_layout \begin_layout Code + int flags ); \end_layout @@ -17183,6 +18746,7 @@ For security reasons that this author won't pretend to understand, "IPv4 \end_layout \begin_layout Code + ::ffff:192.0.2.1 \end_layout @@ -17253,18 +18817,22 @@ It is possible to assign a hostname to an IPv6 network address in \end_layout \begin_layout Code + ::1 localhost \end_layout \begin_layout Code + 127.0.0.1 localhost \end_layout \begin_layout Code + fe80::2c0:8cff:fe01:2345 pt141 \end_layout \begin_layout Code + 192.0.2.1 pt141 \end_layout @@ -17369,6 +18937,7 @@ The server code is found in file tod6d.c (time-of-day IPv6 daemon). \end_layout \begin_layout Code + tod6d [-v] [service] \end_layout @@ -17395,257 +18964,314 @@ The server handles both TCP and UDP requests on the network. \end_layout \begin_layout Code + /****************************************************************************** \end_layout \begin_layout Code + * File: tod6d.c \end_layout \begin_layout Code + * Description: Contains source code for an IPv6-capable 'daytime' server. \end_layout \begin_layout Code + * Author: John Wenker, Sr. Software Engineer, \end_layout \begin_layout Code + * Performance Technologies, San Diego, USA \end_layout \begin_layout Code + ******************************************************************************/ \end_layout \begin_layout Code + /* \end_layout \begin_layout Code + ** System header files. \end_layout \begin_layout Code + */ \end_layout \begin_layout Code + #include /* errno declaration & error codes. */ \end_layout \begin_layout Code + #include /* getaddrinfo(3) et al. */ \end_layout \begin_layout Code + #include /* sockaddr_in & sockaddr_in6 definition. */ \end_layout \begin_layout Code + #include /* printf(3) et al. */ \end_layout \begin_layout Code + #include /* exit(2). */ \end_layout \begin_layout Code + #include /* String manipulation & memory functions. */ \end_layout \begin_layout Code + #include /* poll(2) and related definitions. */ \end_layout \begin_layout Code + #include /* Socket functions (socket(2), bind(2), etc). */ \end_layout \begin_layout Code + #include /* time(2) & ctime(3). */ \end_layout \begin_layout Code + #include /* getopt(3), read(2), etc. */ \end_layout \begin_layout Code + /* \end_layout \begin_layout Code + ** Constants. \end_layout \begin_layout Code + */ \end_layout \begin_layout Code + #define DFLT_SERVICE "daytime" /* Default service name. */ \end_layout \begin_layout Code + #define INVALID_DESC -1 /* Invalid file descriptor. */ \end_layout \begin_layout Code + #define MAXCONNQLEN 3 /* Max nbr of connection requests to queue. */ \end_layout \begin_layout Code + #define MAXTCPSCKTS 2 /* One TCP socket for IPv4 & one for IPv6. */ \end_layout \begin_layout Code + #define MAXUDPSCKTS 2 /* One UDP socket for IPv4 & one for IPv6. */ \end_layout \begin_layout Code + #define VALIDOPTS "v" /* Valid command options. */ \end_layout \begin_layout Code + /* \end_layout \begin_layout Code + ** Simple boolean type definition. \end_layout \begin_layout Code + */ \end_layout \begin_layout Code + typedef enum { false = 0, true } boolean; \end_layout \begin_layout Code + /* \end_layout \begin_layout Code + ** Prototypes for internal helper functions. \end_layout \begin_layout Code + */ \end_layout \begin_layout Code + static int openSckt( const char *service, \end_layout \begin_layout Code + const char *protocol, \end_layout \begin_layout Code + int desc[ ], \end_layout \begin_layout Code + size_t *descSize ); \end_layout \begin_layout Code + static void tod( int tSckt[ ], \end_layout \begin_layout Code + size_t tScktSize, \end_layout \begin_layout Code + int uSckt[ ], \end_layout \begin_layout Code + size_t uScktSize ); \end_layout \begin_layout Code + /* \end_layout \begin_layout Code + ** Global (within this file only) data objects. \end_layout \begin_layout Code + */ \end_layout \begin_layout Code + static char hostBfr[ NI_MAXHOST ]; /* For use w/getnameinfo(3). */ \end_layout \begin_layout Code + static const char *pgmName; /* Program name w/o dir prefix. */ \end_layout \begin_layout Code + static char servBfr[ NI_MAXSERV ]; /* For use w/getnameinfo(3). */ \end_layout \begin_layout Code + static boolean verbose = false; /* Verbose mode indication. */ \end_layout \begin_layout Code + /* \end_layout \begin_layout Code + ** Usage macro for command syntax violations. \end_layout \begin_layout Code + */ \end_layout \begin_layout Code + #define USAGE \backslash \end_layout \begin_layout Code + { \backslash \end_layout \begin_layout Code + fprintf( stderr, \backslash \end_layout \begin_layout Code + "Usage: %s [-v] [service] \backslash n", @@ -17654,37 +19280,44 @@ n", \end_layout \begin_layout Code + pgmName ); \backslash \end_layout \begin_layout Code + exit( 127 ); \backslash \end_layout \begin_layout Code + } /* End USAGE macro. */ \end_layout \begin_layout Code + /* \end_layout \begin_layout Code + ** Macro to terminate the program if a system call error occurs. The system \end_layout \begin_layout Code + ** call must be one of the usual type that returns -1 on error. This macro is \end_layout \begin_layout Code + ** a modified version of a macro authored by Dr. V. Vinge, SDSU Dept. @@ -17692,56 +19325,66 @@ n", \end_layout \begin_layout Code + ** Computer Science (retired)... best professor I ever had. I hear he writes \end_layout \begin_layout Code + ** great science fiction in addition to robust code, too. \end_layout \begin_layout Code + */ \end_layout \begin_layout Code + #define CHK(expr) \backslash \end_layout \begin_layout Code + do \backslash \end_layout \begin_layout Code + { \backslash \end_layout \begin_layout Code + if ( (expr) == -1 ) \backslash \end_layout \begin_layout Code + { \backslash \end_layout \begin_layout Code + fprintf( stderr, \backslash \end_layout \begin_layout Code + "%s (line %d): System call ERROR - %s. \backslash n", @@ -17750,30 +19393,35 @@ n", \end_layout \begin_layout Code + pgmName, \backslash \end_layout \begin_layout Code + __LINE__, \backslash \end_layout \begin_layout Code + strerror( errno ) ); \backslash \end_layout \begin_layout Code + exit( 1 ); \backslash \end_layout \begin_layout Code + } /* End IF system call failed. */ \backslash @@ -17781,352 +19429,436 @@ n", \end_layout \begin_layout Code + } while ( false ) \end_layout \begin_layout Code + /****************************************************************************** \end_layout \begin_layout Code + * Function: main \end_layout \begin_layout Code + * \end_layout \begin_layout Code + * Description: \end_layout \begin_layout Code + * Set up a time-of-day server and handle network requests. This server \end_layout \begin_layout Code + * handles both TCP and UDP requests. \end_layout \begin_layout Code + * \end_layout \begin_layout Code + * Parameters: \end_layout \begin_layout Code + * The usual argc and argv parameters to a main() function. \end_layout \begin_layout Code + * \end_layout \begin_layout Code + * Return Value: \end_layout \begin_layout Code + * This is a daemon program and never returns. However, in the degenerate \end_layout \begin_layout Code + * case where no sockets are created, the function returns zero. \end_layout \begin_layout Code + ******************************************************************************/ \end_layout \begin_layout Code + int main( int argc, \end_layout \begin_layout Code + char *argv[ ] ) \end_layout \begin_layout Code + { \end_layout \begin_layout Code + int opt; \end_layout \begin_layout Code + const char *service = DFLT_SERVICE; \end_layout \begin_layout Code + int tSckt[ MAXTCPSCKTS ]; /* Array of TCP socket descriptors. */ \end_layout \begin_layout Code + size_t tScktSize = MAXTCPSCKTS; /* Size of uSckt (# of elements). */ \end_layout \begin_layout Code + int uSckt[ MAXUDPSCKTS ]; /* Array of UDP socket descriptors. */ \end_layout \begin_layout Code + size_t uScktSize = MAXUDPSCKTS; /* Size of uSckt (# of elements). */ \end_layout \begin_layout Code + /* \end_layout \begin_layout Code + ** Set the program name (w/o directory prefix). \end_layout \begin_layout Code + */ \end_layout \begin_layout Code + pgmName = strrchr( argv[ 0 ], '/' ); \end_layout \begin_layout Code + pgmName = pgmName == NULL ? argv[ 0 ] : pgmName + 1; \end_layout \begin_layout Code + /* \end_layout \begin_layout Code + ** Process command options. \end_layout \begin_layout Code + */ \end_layout \begin_layout Code + opterr = 0; /* Turns off "invalid option" error messages. */ \end_layout \begin_layout Code + while ( ( opt = getopt( argc, argv, VALIDOPTS ) ) >= 0 ) \end_layout \begin_layout Code + { \end_layout \begin_layout Code + switch ( opt ) \end_layout \begin_layout Code + { \end_layout \begin_layout Code + case 'v': /* Verbose mode. */ \end_layout \begin_layout Code + { \end_layout \begin_layout Code + verbose = true; \end_layout \begin_layout Code + break; \end_layout \begin_layout Code + } \end_layout \begin_layout Code + default: \end_layout \begin_layout Code + { \end_layout \begin_layout Code + USAGE; \end_layout \begin_layout Code + } \end_layout \begin_layout Code + } /* End SWITCH on command option. */ \end_layout \begin_layout Code + } /* End WHILE processing options. */ \end_layout \begin_layout Code + /* \end_layout \begin_layout Code + ** Process command line arguments. \end_layout \begin_layout Code + */ \end_layout \begin_layout Code + switch ( argc - optind ) \end_layout \begin_layout Code + { \end_layout \begin_layout Code + case 0: break; \end_layout \begin_layout Code + case 1: service = argv[ optind ]; break; \end_layout \begin_layout Code + default: USAGE; \end_layout \begin_layout Code + } /* End SWITCH on number of command line arguments. */ \end_layout \begin_layout Code + /* \end_layout \begin_layout Code + ** Open both a TCP and UDP socket, for both IPv4 & IPv6, on which to receive \end_layout \begin_layout Code + ** service requests. \end_layout \begin_layout Code + */ \end_layout \begin_layout Code + if ( ( openSckt( service, "tcp", tSckt, &tScktSize ) < 0 ) || \end_layout \begin_layout Code + ( openSckt( service, "udp", uSckt, &uScktSize ) < 0 ) ) \end_layout \begin_layout Code + { \end_layout \begin_layout Code + exit( 1 ); \end_layout \begin_layout Code + } \end_layout \begin_layout Code + /* \end_layout \begin_layout Code + ** Run the time-of-day server. \end_layout \begin_layout Code + */ \end_layout \begin_layout Code + if ( ( tScktSize > 0 ) || ( uScktSize > 0 ) ) \end_layout \begin_layout Code + { \end_layout \begin_layout Code + tod( tSckt, /* tod() never returns. */ \end_layout \begin_layout Code + tScktSize, \end_layout \begin_layout Code + uSckt, \end_layout \begin_layout Code + uScktSize ); \end_layout \begin_layout Code + } \end_layout \begin_layout Code + /* \end_layout \begin_layout Code + ** Since tod() never returns, execution only gets here if no sockets were \end_layout \begin_layout Code + ** created. \end_layout \begin_layout Code + */ \end_layout \begin_layout Code + if ( verbose ) \end_layout \begin_layout Code + { \end_layout \begin_layout Code + fprintf( stderr, \end_layout \begin_layout Code + "%s: No sockets opened... terminating. \backslash @@ -18134,286 +19866,354 @@ n", \end_layout \begin_layout Code + pgmName ); \end_layout \begin_layout Code + } \end_layout \begin_layout Code + return 0; \end_layout \begin_layout Code + } /* End main() */ \end_layout \begin_layout Code + /****************************************************************************** \end_layout \begin_layout Code + * Function: openSckt \end_layout \begin_layout Code + * \end_layout \begin_layout Code + * Description: \end_layout \begin_layout Code + * Open passive (server) sockets for the indicated inet service & protocol. \end_layout \begin_layout Code + * Notice in the last sentence that "sockets" is plural. During the interim \end_layout \begin_layout Code + * transition period while everyone is switching over to IPv6, the server \end_layout \begin_layout Code + * application has to open two sockets on which to listen for connections... \end_layout \begin_layout Code + * one for IPv4 traffic and one for IPv6 traffic. \end_layout \begin_layout Code + * \end_layout \begin_layout Code + * Parameters: \end_layout \begin_layout Code + * service - Pointer to a character string representing the well-known port \end_layout \begin_layout Code + * on which to listen (can be a service name or a decimal number). \end_layout \begin_layout Code + * protocol - Pointer to a character string representing the transport layer \end_layout \begin_layout Code + * protocol (only "tcp" or "udp" are valid). \end_layout \begin_layout Code + * desc - Pointer to an array into which the socket descriptors are \end_layout \begin_layout Code + * placed when opened. \end_layout \begin_layout Code + * descSize - This is a value-result parameter. On input, it contains the \end_layout \begin_layout Code + * max number of descriptors that can be put into 'desc' (i.e. the \end_layout \begin_layout Code + * number of elements in the array). Upon return, it will contain \end_layout \begin_layout Code + * the number of descriptors actually opened. Any unused slots in \end_layout \begin_layout Code + * 'desc' are set to INVALID_DESC. \end_layout \begin_layout Code + * \end_layout \begin_layout Code + * Return Value: \end_layout \begin_layout Code + * 0 on success, -1 on error. \end_layout \begin_layout Code + ******************************************************************************/ \end_layout \begin_layout Code + static int openSckt( const char *service, \end_layout \begin_layout Code + const char *protocol, \end_layout \begin_layout Code + int desc[ ], \end_layout \begin_layout Code + size_t *descSize ) \end_layout \begin_layout Code + { \end_layout \begin_layout Code + struct addrinfo *ai; \end_layout \begin_layout Code + int aiErr; \end_layout \begin_layout Code + struct addrinfo *aiHead; \end_layout \begin_layout Code + struct addrinfo hints = { .ai_flags = AI_PASSIVE, /* Server mode. \end_layout \begin_layout Code + ¬ */ \end_layout \begin_layout Code + .ai_family = PF_UNSPEC }; /* IPv4 or IPv6. \end_layout \begin_layout Code + ¬ */ \end_layout \begin_layout Code + size_t maxDescs = *descSize; \end_layout \begin_layout Code + /* \end_layout \begin_layout Code + ** Initialize output parameters. When the loop completes, *descSize is 0. \end_layout \begin_layout Code + */ \end_layout \begin_layout Code + while ( *descSize > 0 ) \end_layout \begin_layout Code + { \end_layout \begin_layout Code + desc[ --( *descSize ) ] = INVALID_DESC; \end_layout \begin_layout Code + } \end_layout \begin_layout Code + /* \end_layout \begin_layout Code + ** Check which protocol is selected (only TCP and UDP are valid). \end_layout \begin_layout Code + */ \end_layout \begin_layout Code + if ( strcmp( protocol, "tcp" ) == 0 ) /* TCP protocol. */ \end_layout \begin_layout Code + { \end_layout \begin_layout Code + hints.ai_socktype = SOCK_STREAM; \end_layout \begin_layout Code + hints.ai_protocol = IPPROTO_TCP; \end_layout \begin_layout Code + } \end_layout \begin_layout Code + else if ( strcmp( protocol, "udp" ) == 0 ) /* UDP protocol. */ \end_layout \begin_layout Code + { \end_layout \begin_layout Code + hints.ai_socktype = SOCK_DGRAM; \end_layout \begin_layout Code + hints.ai_protocol = IPPROTO_UDP; \end_layout \begin_layout Code + } \end_layout \begin_layout Code + else /* Invalid protocol. */ \end_layout \begin_layout Code + { \end_layout \begin_layout Code + fprintf( stderr, \end_layout \begin_layout Code + "%s (line %d): ERROR - Unknown transport " \end_layout \begin_layout Code + "layer protocol \backslash "%s @@ -18424,191 +20224,235 @@ n", \end_layout \begin_layout Code + pgmName, \end_layout \begin_layout Code + __LINE__, \end_layout \begin_layout Code + protocol ); \end_layout \begin_layout Code + return -1; \end_layout \begin_layout Code + } \end_layout \begin_layout Code + /* \end_layout \begin_layout Code + ** Look up the service's well-known port number. Notice that NULL is being \end_layout \begin_layout Code + ** passed for the 'node' parameter, and that the AI_PASSIVE flag is set in \end_layout \begin_layout Code + ** 'hints'. Thus, the program is requesting passive address information. \end_layout \begin_layout Code + ** The network address is initialized to :: (all zeros) for IPv6 records, or \end_layout \begin_layout Code + ** 0.0.0.0 for IPv4 records. \end_layout \begin_layout Code + */ \end_layout \begin_layout Code + if ( ( aiErr = getaddrinfo( NULL, \end_layout \begin_layout Code + service, \end_layout \begin_layout Code + &hints, \end_layout \begin_layout Code + &aiHead ) ) != 0 ) \end_layout \begin_layout Code + { \end_layout \begin_layout Code + fprintf( stderr, \end_layout \begin_layout Code + "%s (line %d): ERROR - %s. \backslash n", \end_layout \begin_layout Code + pgmName, \end_layout \begin_layout Code + __LINE__, \end_layout \begin_layout Code + gai_strerror( aiErr ) ); \end_layout \begin_layout Code + return -1; \end_layout \begin_layout Code + } \end_layout \begin_layout Code + /* \end_layout \begin_layout Code + ** For each of the address records returned, attempt to set up a passive \end_layout \begin_layout Code + ** socket. \end_layout \begin_layout Code + */ \end_layout \begin_layout Code + for ( ai = aiHead; \end_layout \begin_layout Code + ( ai != NULL ) && ( *descSize < maxDescs ); \end_layout \begin_layout Code + ai = ai->ai_next ) \end_layout \begin_layout Code + { \end_layout \begin_layout Code + if ( verbose ) \end_layout \begin_layout Code + { \end_layout \begin_layout Code + /* \end_layout \begin_layout Code + ** Display the current address info. Start with the protocol- \end_layout \begin_layout Code + ** independent fields first. \end_layout \begin_layout Code + */ \end_layout \begin_layout Code + fprintf( stderr, \end_layout \begin_layout Code + "Setting up a passive socket based on the " \end_layout \begin_layout Code + "following address info: \backslash n" \end_layout \begin_layout Code + " ai_flags = 0x%02X \backslash n" \end_layout \begin_layout Code + " ai_family = %d (PF_INET = %d, PF_INET6 = %d) \backslash n" \end_layout \begin_layout Code + " ai_socktype = %d (SOCK_STREAM = %d, SOCK_DGRAM = %d) \backslash @@ -18616,6 +20460,7 @@ n" \end_layout \begin_layout Code + " ai_protocol = %d (IPPROTO_TCP = %d, IPPROTO_UDP = %d) \backslash @@ -18623,512 +20468,629 @@ n" \end_layout \begin_layout Code + " ai_addrlen = %d (sockaddr_in = %d, " \end_layout \begin_layout Code + "sockaddr_in6 = %d) \backslash n", \end_layout \begin_layout Code + ai->ai_flags, \end_layout \begin_layout Code + ai->ai_family, \end_layout \begin_layout Code + PF_INET, \end_layout \begin_layout Code + PF_INET6, \end_layout \begin_layout Code + ai->ai_socktype, \end_layout \begin_layout Code + SOCK_STREAM, \end_layout \begin_layout Code + SOCK_DGRAM, \end_layout \begin_layout Code + ai->ai_protocol, \end_layout \begin_layout Code + IPPROTO_TCP, \end_layout \begin_layout Code + IPPROTO_UDP, \end_layout \begin_layout Code + ai->ai_addrlen, \end_layout \begin_layout Code + sizeof( struct sockaddr_in ), \end_layout \begin_layout Code + sizeof( struct sockaddr_in6 ) ); \end_layout \begin_layout Code + /* \end_layout \begin_layout Code + ** Now display the protocol-specific formatted socket address. Note \end_layout \begin_layout Code + ** that the program is requesting that getnameinfo(3) convert the \end_layout \begin_layout Code + ** host & service into numeric strings. \end_layout \begin_layout Code + */ \end_layout \begin_layout Code + getnameinfo( ai->ai_addr, \end_layout \begin_layout Code + ai->ai_addrlen, \end_layout \begin_layout Code + hostBfr, \end_layout \begin_layout Code + sizeof( hostBfr ), \end_layout \begin_layout Code + servBfr, \end_layout \begin_layout Code + sizeof( servBfr ), \end_layout \begin_layout Code + NI_NUMERICHOST | NI_NUMERICSERV ); \end_layout \begin_layout Code + switch ( ai->ai_family ) \end_layout \begin_layout Code + { \end_layout \begin_layout Code + case PF_INET: /* IPv4 address record. */ \end_layout \begin_layout Code + { \end_layout \begin_layout Code + struct sockaddr_in *p = (struct sockaddr_in*) ai->ai_addr; \end_layout \begin_layout Code + fprintf( stderr, \end_layout \begin_layout Code + " ai_addr = sin_family: %d (AF_INET = %d, " \end_layout \begin_layout Code + "AF_INET6 = %d) \backslash n" \end_layout \begin_layout Code + " sin_addr: %s \backslash n" \end_layout \begin_layout Code + " sin_port: %s \backslash n", \end_layout \begin_layout Code + p->sin_family, \end_layout \begin_layout Code + AF_INET, \end_layout \begin_layout Code + AF_INET6, \end_layout \begin_layout Code + hostBfr, \end_layout \begin_layout Code + servBfr ); \end_layout \begin_layout Code + break; \end_layout \begin_layout Code + } /* End CASE of IPv4. */ \end_layout \begin_layout Code + case PF_INET6: /* IPv6 address record. */ \end_layout \begin_layout Code + { \end_layout \begin_layout Code + struct sockaddr_in6 *p = (struct sockaddr_in6*) ai->ai_addr; \end_layout \begin_layout Code + fprintf( stderr, \end_layout \begin_layout Code + " ai_addr = sin6_family: %d (AF_INET = %d, " \end_layout \begin_layout Code + "AF_INET6 = %d) \backslash n" \end_layout \begin_layout Code + " sin6_addr: %s \backslash n" \end_layout \begin_layout Code + " sin6_port: %s \backslash n" \end_layout \begin_layout Code + " sin6_flowinfo: %d \backslash n" \end_layout \begin_layout Code + " sin6_scope_id: %d \backslash n", \end_layout \begin_layout Code + p->sin6_family, \end_layout \begin_layout Code + AF_INET, \end_layout \begin_layout Code + AF_INET6, \end_layout \begin_layout Code + hostBfr, \end_layout \begin_layout Code + servBfr, \end_layout \begin_layout Code + p->sin6_flowinfo, \end_layout \begin_layout Code + p->sin6_scope_id ); \end_layout \begin_layout Code + break; \end_layout \begin_layout Code + } /* End CASE of IPv6. */ \end_layout \begin_layout Code + default: /* Can never get here, but just for completeness. */ \end_layout \begin_layout Code + { \end_layout \begin_layout Code + fprintf( stderr, \end_layout \begin_layout Code + "%s (line %d): ERROR - Unknown protocol family (%d). \backslash n", \end_layout \begin_layout Code + pgmName, \end_layout \begin_layout Code + __LINE__, \end_layout \begin_layout Code + ai->ai_family ); \end_layout \begin_layout Code + freeaddrinfo( aiHead ); \end_layout \begin_layout Code + return -1; \end_layout \begin_layout Code + } /* End DEFAULT case (unknown protocol family). */ \end_layout \begin_layout Code + } /* End SWITCH on protocol family. */ \end_layout \begin_layout Code + } /* End IF verbose mode. */ \end_layout \begin_layout Code + /* \end_layout \begin_layout Code + ** Create a socket using the info in the addrinfo structure. \end_layout \begin_layout Code + */ \end_layout \begin_layout Code + CHK( desc[ *descSize ] = socket( ai->ai_family, \end_layout \begin_layout Code + ai->ai_socktype, \end_layout \begin_layout Code + ai->ai_protocol ) ); \end_layout \begin_layout Code + /* \end_layout \begin_layout Code + ** Here is the code that prevents "IPv4 mapped addresses", as discussed \end_layout \begin_layout Code + ** in Section 22.1.3.1. If an IPv6 socket was just created, then set the \end_layout \begin_layout Code + ** IPV6_V6ONLY socket option. \end_layout \begin_layout Code + */ \end_layout \begin_layout Code + if ( ai->ai_family == PF_INET6 ) \end_layout \begin_layout Code + { \end_layout \begin_layout Code + #if defined( IPV6_V6ONLY ) \end_layout \begin_layout Code + /* \end_layout \begin_layout Code + ** Disable IPv4 mapped addresses. \end_layout \begin_layout Code + */ \end_layout \begin_layout Code + int v6Only = 1; \end_layout \begin_layout Code + CHK( setsockopt( desc[ *descSize ], \end_layout \begin_layout Code + IPPROTO_IPV6, \end_layout \begin_layout Code + IPV6_V6ONLY, \end_layout \begin_layout Code + &v6Only, \end_layout \begin_layout Code + sizeof( v6Only ) ) ); \end_layout \begin_layout Code + #else \end_layout \begin_layout Code + /* \end_layout \begin_layout Code + ** IPV6_V6ONLY is not defined, so the socket option can't be set and \end_layout \begin_layout Code + ** thus IPv4 mapped addresses can't be disabled. Print a warning \end_layout \begin_layout Code + ** message and close the socket. Design note: If the \end_layout \begin_layout Code + ** #if...#else...#endif construct were removed, then this program \end_layout \begin_layout Code + ** would not compile (because IPV6_V6ONLY isn't defined). That's an \end_layout \begin_layout Code + ** acceptable approach; IPv4 mapped addresses are certainly disabled \end_layout \begin_layout Code + ** if the program can't build! However, since this program is also \end_layout \begin_layout Code + ** designed to work for IPv4 sockets as well as IPv6, I decided to \end_layout \begin_layout Code + ** allow the program to compile when IPV6_V6ONLY is not defined, and \end_layout \begin_layout Code + ** turn it into a run-time warning rather than a compile-time error. \end_layout \begin_layout Code + ** IPv4 mapped addresses are still disabled because _all_ IPv6 traffic \end_layout \begin_layout Code + ** is disabled (all IPv6 sockets are closed here), but at least this \end_layout \begin_layout Code + ** way the server can still service IPv4 network traffic. \end_layout \begin_layout Code + */ \end_layout \begin_layout Code + fprintf( stderr, \end_layout \begin_layout Code + "%s (line %d): WARNING - Cannot set IPV6_V6ONLY socket " \end_layout \begin_layout Code + "option. Closing IPv6 %s socket. \backslash @@ -19136,556 +21098,690 @@ n", \end_layout \begin_layout Code + pgmName, \end_layout \begin_layout Code + __LINE__, \end_layout \begin_layout Code + ai->ai_protocol == IPPROTO_TCP ? "TCP" : "UDP" ); \end_layout \begin_layout Code + CHK( close( desc[ *descSize ] ) ); \end_layout \begin_layout Code + continue; /* Go to top of FOR loop w/o updating *descSize! */ \end_layout \begin_layout Code + #endif /* IPV6_V6ONLY */ \end_layout \begin_layout Code + } /* End IF this is an IPv6 socket. */ \end_layout \begin_layout Code + /* \end_layout \begin_layout Code + ** Bind the socket. Again, the info from the addrinfo structure is used. \end_layout \begin_layout Code + */ \end_layout \begin_layout Code + CHK( bind( desc[ *descSize ], \end_layout \begin_layout Code + ai->ai_addr, \end_layout \begin_layout Code + ai->ai_addrlen ) ); \end_layout \begin_layout Code + /* \end_layout \begin_layout Code + ** If this is a TCP socket, put the socket into passive listening mode \end_layout \begin_layout Code + ** (listen is only valid on connection-oriented sockets). \end_layout \begin_layout Code + */ \end_layout \begin_layout Code + if ( ai->ai_socktype == SOCK_STREAM ) \end_layout \begin_layout Code + { \end_layout \begin_layout Code + CHK( listen( desc[ *descSize ], \end_layout \begin_layout Code + MAXCONNQLEN ) ); \end_layout \begin_layout Code + } \end_layout \begin_layout Code + /* \end_layout \begin_layout Code + ** Socket set up okay. Bump index to next descriptor array element. \end_layout \begin_layout Code + */ \end_layout \begin_layout Code + *descSize += 1; \end_layout \begin_layout Code + } /* End FOR each address info structure returned. */ \end_layout \begin_layout Code + /* \end_layout \begin_layout Code + ** Dummy check for unused address records. \end_layout \begin_layout Code + */ \end_layout \begin_layout Code + if ( verbose && ( ai != NULL ) ) \end_layout \begin_layout Code + { \end_layout \begin_layout Code + fprintf( stderr, \end_layout \begin_layout Code + "%s (line %d): WARNING - Some address records were " \end_layout \begin_layout Code + "not processed due to insufficient array space. \backslash n", \end_layout \begin_layout Code + pgmName, \end_layout \begin_layout Code + __LINE__ ); \end_layout \begin_layout Code + } /* End IF verbose and some address records remain unprocessed. */ \end_layout \begin_layout Code + /* \end_layout \begin_layout Code + ** Clean up. \end_layout \begin_layout Code + */ \end_layout \begin_layout Code + freeaddrinfo( aiHead ); \end_layout \begin_layout Code + return 0; \end_layout \begin_layout Code + } /* End openSckt() */ \end_layout \begin_layout Code + /****************************************************************************** \end_layout \begin_layout Code + * Function: tod \end_layout \begin_layout Code + * \end_layout \begin_layout Code + * Description: \end_layout \begin_layout Code + * Listen on a set of sockets and send the current time-of-day to any \end_layout \begin_layout Code + * clients. This function never returns. \end_layout \begin_layout Code + * \end_layout \begin_layout Code + * Parameters: \end_layout \begin_layout Code + * tSckt - Array of TCP socket descriptors on which to listen. \end_layout \begin_layout Code + * tScktSize - Size of the tSckt array (nbr of elements). \end_layout \begin_layout Code + * uSckt - Array of UDP socket descriptors on which to listen. \end_layout \begin_layout Code + * uScktSize - Size of the uSckt array (nbr of elements). \end_layout \begin_layout Code + * \end_layout \begin_layout Code + * Return Value: None. \end_layout \begin_layout Code + ******************************************************************************/ \end_layout \begin_layout Code + static void tod( int tSckt[ ], \end_layout \begin_layout Code + size_t tScktSize, \end_layout \begin_layout Code + int uSckt[ ], \end_layout \begin_layout Code + size_t uScktSize ) \end_layout \begin_layout Code + { \end_layout \begin_layout Code + char bfr[ 256 ]; \end_layout \begin_layout Code + ssize_t count; \end_layout \begin_layout Code + struct pollfd *desc; \end_layout \begin_layout Code + size_t descSize = tScktSize + uScktSize; \end_layout \begin_layout Code + int idx; \end_layout \begin_layout Code + int newSckt; \end_layout \begin_layout Code + struct sockaddr *sadr; \end_layout \begin_layout Code + socklen_t sadrLen; \end_layout \begin_layout Code + struct sockaddr_storage sockStor; \end_layout \begin_layout Code + int status; \end_layout \begin_layout Code + size_t timeLen; \end_layout \begin_layout Code + char *timeStr; \end_layout \begin_layout Code + time_t timeVal; \end_layout \begin_layout Code + ssize_t wBytes; \end_layout \begin_layout Code + /* \end_layout \begin_layout Code + ** Allocate memory for the poll(2) array. \end_layout \begin_layout Code + */ \end_layout \begin_layout Code + desc = malloc( descSize * sizeof( struct pollfd ) ); \end_layout \begin_layout Code + if ( desc == NULL ) \end_layout \begin_layout Code + { \end_layout \begin_layout Code + fprintf( stderr, \end_layout \begin_layout Code + "%s (line %d): ERROR - %s. \backslash n", \end_layout \begin_layout Code + pgmName, \end_layout \begin_layout Code + __LINE__, \end_layout \begin_layout Code + strerror( ENOMEM ) ); \end_layout \begin_layout Code + exit( 1 ); \end_layout \begin_layout Code + } \end_layout \begin_layout Code + /* \end_layout \begin_layout Code + ** Initialize the poll(2) array. \end_layout \begin_layout Code + */ \end_layout \begin_layout Code + for ( idx = 0; idx < descSize; idx++ ) \end_layout \begin_layout Code + { \end_layout \begin_layout Code + desc[ idx ].fd = idx < tScktSize ? tSckt[ idx ] \end_layout \begin_layout Code + : uSckt[ idx - tScktSize ]; \end_layout \begin_layout Code + desc[ idx ].events = POLLIN; \end_layout \begin_layout Code + desc[ idx ].revents = 0; \end_layout \begin_layout Code + } \end_layout \begin_layout Code + /* \end_layout \begin_layout Code + ** Main time-of-day server loop. Handles both TCP & UDP requests. This is \end_layout \begin_layout Code + ** an interative server, and all requests are handled directly within the \end_layout \begin_layout Code + ** main loop. \end_layout \begin_layout Code + */ \end_layout \begin_layout Code + while ( true ) /* Do forever. */ \end_layout \begin_layout Code + { \end_layout \begin_layout Code + /* \end_layout \begin_layout Code + ** Wait for activity on one of the sockets. The DO..WHILE construct is \end_layout \begin_layout Code + ** used to restart the system call in the event the process is \end_layout \begin_layout Code + ** interrupted by a signal. \end_layout \begin_layout Code + */ \end_layout \begin_layout Code + do \end_layout \begin_layout Code + { \end_layout \begin_layout Code + status = poll( desc, \end_layout \begin_layout Code + descSize, \end_layout \begin_layout Code + -1 /* Wait indefinitely for input. */ ); \end_layout \begin_layout Code + } while ( ( status < 0 ) && ( errno == EINTR ) ); \end_layout \begin_layout Code + CHK( status ); /* Check for a bona fide system call error. */ \end_layout \begin_layout Code + /* \end_layout \begin_layout Code + ** Get the current time. \end_layout \begin_layout Code + */ \end_layout \begin_layout Code + timeVal = time( NULL ); \end_layout \begin_layout Code + timeStr = ctime( &timeVal ); \end_layout \begin_layout Code + timeLen = strlen( timeStr ); \end_layout \begin_layout Code + /* \end_layout \begin_layout Code + ** Indicate that there is new network activity. \end_layout \begin_layout Code + */ \end_layout \begin_layout Code + if ( verbose ) \end_layout \begin_layout Code + { \end_layout \begin_layout Code + char *s = malloc( timeLen+1 ); \end_layout \begin_layout Code + strcpy( s, timeStr ); \end_layout \begin_layout Code + s[ timeLen-1 ] = ' \backslash 0'; /* Overwrite ' @@ -19695,743 +21791,913 @@ n' in date string. \end_layout \begin_layout Code + fprintf( stderr, \end_layout \begin_layout Code + "%s: New network activity on %s. \backslash n", \end_layout \begin_layout Code + pgmName, \end_layout \begin_layout Code + s ); \end_layout \begin_layout Code + free( s ); \end_layout \begin_layout Code + } /* End IF verbose. */ \end_layout \begin_layout Code + /* \end_layout \begin_layout Code + ** Process sockets with input available. \end_layout \begin_layout Code + */ \end_layout \begin_layout Code + for ( idx = 0; idx < descSize; idx++ ) \end_layout \begin_layout Code + { \end_layout \begin_layout Code + switch ( desc[ idx ].revents ) \end_layout \begin_layout Code + { \end_layout \begin_layout Code + case 0: /* No activity on this socket; try the next. */ \end_layout \begin_layout Code + continue; \end_layout \begin_layout Code + case POLLIN: /* Network activity. Go process it. */ \end_layout \begin_layout Code + break; \end_layout \begin_layout Code + default: /* Invalid poll events. */ \end_layout \begin_layout Code + { \end_layout \begin_layout Code + fprintf( stderr, \end_layout \begin_layout Code + "%s (line %d): ERROR - Invalid poll event (0x%02X). \backslash n", \end_layout \begin_layout Code + pgmName, \end_layout \begin_layout Code + __LINE__, \end_layout \begin_layout Code + desc[ idx ].revents ); \end_layout \begin_layout Code + exit( 1 ); \end_layout \begin_layout Code + } \end_layout \begin_layout Code + } /* End SWITCH on returned poll events. */ \end_layout \begin_layout Code + /* \end_layout \begin_layout Code + ** Determine if this is a TCP request or UDP request. \end_layout \begin_layout Code + */ \end_layout \begin_layout Code + if ( idx < tScktSize ) \end_layout \begin_layout Code + { \end_layout \begin_layout Code + /* \end_layout \begin_layout Code + ** TCP connection requested. Accept it. Notice the use of \end_layout \begin_layout Code + ** the sockaddr_storage data type. \end_layout \begin_layout Code + */ \end_layout \begin_layout Code + sadrLen = sizeof( sockStor ); \end_layout \begin_layout Code + sadr = (struct sockaddr*) &sockStor; \end_layout \begin_layout Code + CHK( newSckt = accept( desc[ idx ].fd, \end_layout \begin_layout Code + sadr, \end_layout \begin_layout Code + &sadrLen ) ); \end_layout \begin_layout Code + CHK( shutdown( newSckt, /* Server never recv's anything. */ \end_layout \begin_layout Code + SHUT_RD ) ); \end_layout \begin_layout Code + if ( verbose ) \end_layout \begin_layout Code + { \end_layout \begin_layout Code + /* \end_layout \begin_layout Code + ** Display the socket address of the remote client. Begin with \end_layout \begin_layout Code + ** the address-independent fields. \end_layout \begin_layout Code + */ \end_layout \begin_layout Code + fprintf( stderr, \end_layout \begin_layout Code + "Sockaddr info for new TCP client: \backslash n" \end_layout \begin_layout Code + " sa_family = %d (AF_INET = %d, AF_INET6 = %d) \backslash n" \end_layout \begin_layout Code + " addr len = %d (sockaddr_in = %d, " \end_layout \begin_layout Code + "sockaddr_in6 = %d) \backslash n", \end_layout \begin_layout Code + sadr->sa_family, \end_layout \begin_layout Code + AF_INET, \end_layout \begin_layout Code + AF_INET6, \end_layout \begin_layout Code + sadrLen, \end_layout \begin_layout Code + sizeof( struct sockaddr_in ), \end_layout \begin_layout Code + sizeof( struct sockaddr_in6 ) ); \end_layout \begin_layout Code + /* \end_layout \begin_layout Code + ** Display the address-specific fields. \end_layout \begin_layout Code + */ \end_layout \begin_layout Code + getnameinfo( sadr, \end_layout \begin_layout Code + sadrLen, \end_layout \begin_layout Code + hostBfr, \end_layout \begin_layout Code + sizeof( hostBfr ), \end_layout \begin_layout Code + servBfr, \end_layout \begin_layout Code + sizeof( servBfr ), \end_layout \begin_layout Code + NI_NUMERICHOST | NI_NUMERICSERV ); \end_layout \begin_layout Code + /* \end_layout \begin_layout Code + ** Notice that we're switching on an address family now, not a \end_layout \begin_layout Code + ** protocol family. \end_layout \begin_layout Code + */ \end_layout \begin_layout Code + switch ( sadr->sa_family ) \end_layout \begin_layout Code + { \end_layout \begin_layout Code + case AF_INET: /* IPv4 address. */ \end_layout \begin_layout Code + { \end_layout \begin_layout Code + struct sockaddr_in *p = (struct sockaddr_in*) sadr; \end_layout \begin_layout Code + fprintf( stderr, \end_layout \begin_layout Code + " sin_addr = sin_family: %d \backslash n" \end_layout \begin_layout Code + " sin_addr: %s \backslash n" \end_layout \begin_layout Code + " sin_port: %s \backslash n", \end_layout \begin_layout Code + p->sin_family, \end_layout \begin_layout Code + hostBfr, \end_layout \begin_layout Code + servBfr ); \end_layout \begin_layout Code + break; \end_layout \begin_layout Code + } /* End CASE of IPv4. */ \end_layout \begin_layout Code + case AF_INET6: /* IPv6 address. */ \end_layout \begin_layout Code + { \end_layout \begin_layout Code + struct sockaddr_in6 *p = (struct sockaddr_in6*) sadr; \end_layout \begin_layout Code + fprintf( stderr, \end_layout \begin_layout Code + " sin6_addr = sin6_family: %d \backslash n" \end_layout \begin_layout Code + " sin6_addr: %s \backslash n" \end_layout \begin_layout Code + " sin6_port: %s \backslash n" \end_layout \begin_layout Code + " sin6_flowinfo: %d \backslash n" \end_layout \begin_layout Code + " sin6_scope_id: %d \backslash n", \end_layout \begin_layout Code + p->sin6_family, \end_layout \begin_layout Code + hostBfr, \end_layout \begin_layout Code + servBfr, \end_layout \begin_layout Code + p->sin6_flowinfo, \end_layout \begin_layout Code + p->sin6_scope_id ); \end_layout \begin_layout Code + break; \end_layout \begin_layout Code + } /* End CASE of IPv6. */ \end_layout \begin_layout Code + default: /* Can never get here, but for completeness. */ \end_layout \begin_layout Code + { \end_layout \begin_layout Code + fprintf( stderr, \end_layout \begin_layout Code + "%s (line %d): ERROR - Unknown address " \end_layout \begin_layout Code + "family (%d). \backslash n", \end_layout \begin_layout Code + pgmName, \end_layout \begin_layout Code + __LINE__, \end_layout \begin_layout Code + sadr->sa_family ); \end_layout \begin_layout Code + break; \end_layout \begin_layout Code + } /* End DEFAULT case (unknown address family). */ \end_layout \begin_layout Code + } /* End SWITCH on address family. */ \end_layout \begin_layout Code + } /* End IF verbose mode. */ \end_layout \begin_layout Code + /* \end_layout \begin_layout Code + ** Send the TOD to the client. \end_layout \begin_layout Code + */ \end_layout \begin_layout Code + wBytes = timeLen; \end_layout \begin_layout Code + while ( wBytes > 0 ) \end_layout \begin_layout Code + { \end_layout \begin_layout Code + do \end_layout \begin_layout Code + { \end_layout \begin_layout Code + count = write( newSckt, \end_layout \begin_layout Code + timeStr, \end_layout \begin_layout Code + wBytes ); \end_layout \begin_layout Code + } while ( ( count < 0 ) && ( errno == EINTR ) ); \end_layout \begin_layout Code + CHK( count ); /* Check for a bona fide error. */ \end_layout \begin_layout Code + wBytes -= count; \end_layout \begin_layout Code + } /* End WHILE there is data to send. */ \end_layout \begin_layout Code + CHK( close( newSckt ) ); \end_layout \begin_layout Code + } /* End IF this was a TCP connection request. */ \end_layout \begin_layout Code + else \end_layout \begin_layout Code + { \end_layout \begin_layout Code + /* \end_layout \begin_layout Code + ** This is a UDP socket, and a datagram is available. The funny \end_layout \begin_layout Code + ** thing about UDP requests is that this server doesn't require any \end_layout \begin_layout Code + ** client input; but it can't send the TOD unless it knows a client \end_layout \begin_layout Code + ** wants the data, and the only way that can occur with UDP is if \end_layout \begin_layout Code + ** the server receives a datagram from the client. Thus, the \end_layout \begin_layout Code + ** server must receive _something_, but the content of the datagram \end_layout \begin_layout Code + ** is irrelevant. Read in the datagram. Again note the use of \end_layout \begin_layout Code + ** sockaddr_storage to receive the address. \end_layout \begin_layout Code + */ \end_layout \begin_layout Code + sadrLen = sizeof( sockStor ); \end_layout \begin_layout Code + sadr = (struct sockaddr*) &sockStor; \end_layout \begin_layout Code + CHK( count = recvfrom( desc[ idx ].fd, \end_layout \begin_layout Code + bfr, \end_layout \begin_layout Code + sizeof( bfr ), \end_layout \begin_layout Code + 0, \end_layout \begin_layout Code + sadr, \end_layout \begin_layout Code + &sadrLen ) ); \end_layout \begin_layout Code + /* \end_layout \begin_layout Code + ** Display whatever was received on stdout. \end_layout \begin_layout Code + */ \end_layout \begin_layout Code + if ( verbose ) \end_layout \begin_layout Code + { \end_layout \begin_layout Code + ssize_t rBytes = count; \end_layout \begin_layout Code + fprintf( stderr, \end_layout \begin_layout Code + "%s: UDP datagram received (%d bytes). \backslash n", \end_layout \begin_layout Code + pgmName, \end_layout \begin_layout Code + count ); \end_layout \begin_layout Code + while ( count > 0 ) \end_layout \begin_layout Code + { \end_layout \begin_layout Code + fputc( bfr[ rBytes - count-- ], \end_layout \begin_layout Code + stdout ); \end_layout \begin_layout Code + } \end_layout \begin_layout Code + if ( bfr[ rBytes-1 ] != ' \backslash n' ) \end_layout \begin_layout Code + fputc( ' \backslash n', stdout ); /* Newline also flushes stdout. @@ -20439,403 +22705,493 @@ n', stdout ); /* Newline also flushes stdout. \end_layout \begin_layout Code + /* \end_layout \begin_layout Code + ** Display the socket address of the remote client. Address- \end_layout \begin_layout Code + ** independent fields first. \end_layout \begin_layout Code + */ \end_layout \begin_layout Code + fprintf( stderr, \end_layout \begin_layout Code + "Remote client's sockaddr info: \backslash n" \end_layout \begin_layout Code + " sa_family = %d (AF_INET = %d, AF_INET6 = %d) \backslash n" \end_layout \begin_layout Code + " addr len = %d (sockaddr_in = %d, " \end_layout \begin_layout Code + "sockaddr_in6 = %d) \backslash n", \end_layout \begin_layout Code + sadr->sa_family, \end_layout \begin_layout Code + AF_INET, \end_layout \begin_layout Code + AF_INET6, \end_layout \begin_layout Code + sadrLen, \end_layout \begin_layout Code + sizeof( struct sockaddr_in ), \end_layout \begin_layout Code + sizeof( struct sockaddr_in6 ) ); \end_layout \begin_layout Code + /* \end_layout \begin_layout Code + ** Display the address-specific information. \end_layout \begin_layout Code + */ \end_layout \begin_layout Code + getnameinfo( sadr, \end_layout \begin_layout Code + sadrLen, \end_layout \begin_layout Code + hostBfr, \end_layout \begin_layout Code + sizeof( hostBfr ), \end_layout \begin_layout Code + servBfr, \end_layout \begin_layout Code + sizeof( servBfr ), \end_layout \begin_layout Code + NI_NUMERICHOST | NI_NUMERICSERV ); \end_layout \begin_layout Code + switch ( sadr->sa_family ) \end_layout \begin_layout Code + { \end_layout \begin_layout Code + case AF_INET: /* IPv4 address. */ \end_layout \begin_layout Code + { \end_layout \begin_layout Code + struct sockaddr_in *p = (struct sockaddr_in*) sadr; \end_layout \begin_layout Code + fprintf( stderr, \end_layout \begin_layout Code + " sin_addr = sin_family: %d \backslash n" \end_layout \begin_layout Code + " sin_addr: %s \backslash n" \end_layout \begin_layout Code + " sin_port: %s \backslash n", \end_layout \begin_layout Code + p->sin_family, \end_layout \begin_layout Code + hostBfr, \end_layout \begin_layout Code + servBfr ); \end_layout \begin_layout Code + break; \end_layout \begin_layout Code + } /* End CASE of IPv4 address. */ \end_layout \begin_layout Code + case AF_INET6: /* IPv6 address. */ \end_layout \begin_layout Code + { \end_layout \begin_layout Code + struct sockaddr_in6 *p = (struct sockaddr_in6*) sadr; \end_layout \begin_layout Code + fprintf( stderr, \end_layout \begin_layout Code + " sin6_addr = sin6_family: %d \backslash n" \end_layout \begin_layout Code + " sin6_addr: %s \backslash n" \end_layout \begin_layout Code + " sin6_port: %s \backslash n" \end_layout \begin_layout Code + " sin6_flowinfo: %d \backslash n" \end_layout \begin_layout Code + " sin6_scope_id: %d \backslash n", \end_layout \begin_layout Code + p->sin6_family, \end_layout \begin_layout Code + hostBfr, \end_layout \begin_layout Code + servBfr, \end_layout \begin_layout Code + p->sin6_flowinfo, \end_layout \begin_layout Code + p->sin6_scope_id ); \end_layout \begin_layout Code + break; \end_layout \begin_layout Code + } /* End CASE of IPv6 address. */ \end_layout \begin_layout Code + default: /* Can never get here, but for completeness. */ \end_layout \begin_layout Code + { \end_layout \begin_layout Code + fprintf( stderr, \end_layout \begin_layout Code + "%s (line %d): ERROR - Unknown address " \end_layout \begin_layout Code + "family (%d). \backslash n", \end_layout \begin_layout Code + pgmName, \end_layout \begin_layout Code + __LINE__, \end_layout \begin_layout Code + sadr->sa_family ); \end_layout \begin_layout Code + break; \end_layout \begin_layout Code + } /* End DEFAULT case (unknown address family). */ \end_layout \begin_layout Code + } /* End SWITCH on address family. */ \end_layout \begin_layout Code + } /* End IF verbose mode. */ \end_layout \begin_layout Code + /* \end_layout \begin_layout Code + ** Send the time-of-day to the client. \end_layout \begin_layout Code + */ \end_layout \begin_layout Code + wBytes = timeLen; \end_layout \begin_layout Code + while ( wBytes > 0 ) \end_layout \begin_layout Code + { \end_layout \begin_layout Code + do \end_layout \begin_layout Code + { \end_layout \begin_layout Code + count = sendto( desc[ idx ].fd, \end_layout \begin_layout Code + timeStr, \end_layout \begin_layout Code + wBytes, \end_layout \begin_layout Code + 0, \end_layout \begin_layout Code + sadr, /* Address & address length */ \end_layout \begin_layout Code + sadrLen ); /* received in recvfrom(). */ \end_layout \begin_layout Code + } while ( ( count < 0 ) && ( errno == EINTR ) ); \end_layout \begin_layout Code + CHK( count ); /* Check for a bona fide error. */ \end_layout \begin_layout Code + wBytes -= count; \end_layout \begin_layout Code + } /* End WHILE there is data to send. */ \end_layout \begin_layout Code + } /* End ELSE a UDP datagram is available. */ \end_layout \begin_layout Code + desc[ idx ].revents = 0; /* Clear the returned poll events. */ \end_layout \begin_layout Code + } /* End FOR each socket descriptor. */ \end_layout \begin_layout Code + } /* End WHILE forever. */ \end_layout \begin_layout Code + } /* End tod() */ \end_layout @@ -20850,6 +23206,7 @@ The TCP client code is found in file tod6tc.c (time-of-day IPv6 TCP client). \end_layout \begin_layout Code + tod6tc [-v] [-s scope_id] [host [service]] \end_layout @@ -20890,216 +23247,265 @@ The TCP client source code contained in tod6tc.c follows: \end_layout \begin_layout Code + /****************************************************************************** \end_layout \begin_layout Code + * File: tod6tc.c \end_layout \begin_layout Code + * Description: Contains source code for an IPv6-capable 'daytime' TCP client. \end_layout \begin_layout Code + * Author: John Wenker, Sr. Software Engineer \end_layout \begin_layout Code + * Performance Technologies, San Diego, USA \end_layout \begin_layout Code + ******************************************************************************/ \end_layout \begin_layout Code + /* \end_layout \begin_layout Code + ** System header files. \end_layout \begin_layout Code + */ \end_layout \begin_layout Code + #include /* errno declaration and error codes. */ \end_layout \begin_layout Code + #include /* if_nametoindex(3). */ \end_layout \begin_layout Code + #include /* getaddrinfo(3) and associated definitions. */ \end_layout \begin_layout Code + #include /* sockaddr_in and sockaddr_in6 definitions. */ \end_layout \begin_layout Code + #include /* printf(3) et al. */ \end_layout \begin_layout Code + #include /* exit(2). */ \end_layout \begin_layout Code + #include /* String manipulation and memory functions. */ \end_layout \begin_layout Code + #include /* Socket functions (socket(2), connect(2), etc). */ \end_layout \begin_layout Code + #include /* getopt(3), read(2), etc. */ \end_layout \begin_layout Code + /* \end_layout \begin_layout Code + ** Constants & macros. \end_layout \begin_layout Code + */ \end_layout \begin_layout Code + #define DFLT_HOST "localhost" /* Default server name. */ \end_layout \begin_layout Code + #define DFLT_SCOPE_ID "eth0" /* Default scope identifier. */ \end_layout \begin_layout Code + #define DFLT_SERVICE "daytime" /* Default service name. */ \end_layout \begin_layout Code + #define INVALID_DESC -1 /* Invalid file (socket) descriptor. */ \end_layout \begin_layout Code + #define MAXBFRSIZE 256 /* Max bfr sz to read remote TOD. */ \end_layout \begin_layout Code + #define VALIDOPTS "s:v" /* Valid command options. */ \end_layout \begin_layout Code + /* \end_layout \begin_layout Code + ** Type definitions (for convenience). \end_layout \begin_layout Code + */ \end_layout \begin_layout Code + typedef enum { false = 0, true } boolean; \end_layout \begin_layout Code + typedef struct sockaddr_in sockaddr_in_t; \end_layout \begin_layout Code + typedef struct sockaddr_in6 sockaddr_in6_t; \end_layout \begin_layout Code + /* \end_layout \begin_layout Code + ** Prototypes for internal helper functions. \end_layout \begin_layout Code + */ \end_layout \begin_layout Code + static int openSckt( const char *host, \end_layout \begin_layout Code + const char *service, \end_layout \begin_layout Code + unsigned int scopeId ); \end_layout \begin_layout Code + static void tod( int sckt ); \end_layout \begin_layout Code + /* \end_layout \begin_layout Code + ** Global (within this file only) data objects. \end_layout \begin_layout Code + */ \end_layout \begin_layout Code + static const char *pgmName; /* Program name (w/o directory). */ \end_layout \begin_layout Code + static boolean verbose = false; /* Verbose mode. */ \end_layout \begin_layout Code + /* \end_layout \begin_layout Code + ** Usage macro. \end_layout \begin_layout Code + */ \end_layout \begin_layout Code + #define USAGE \backslash @@ -21107,6 +23513,7 @@ static boolean verbose = false; /* Verbose mode. \end_layout \begin_layout Code + { \backslash @@ -21114,6 +23521,7 @@ static boolean verbose = false; /* Verbose mode. \end_layout \begin_layout Code + fprintf( stderr, \backslash @@ -21121,6 +23529,7 @@ static boolean verbose = false; /* Verbose mode. \end_layout \begin_layout Code + "Usage: %s [-v] [-s scope_id] [host [service]] \backslash n", @@ -21129,6 +23538,7 @@ n", \end_layout \begin_layout Code + pgmName ); \backslash @@ -21136,6 +23546,7 @@ n", \end_layout \begin_layout Code + exit( 127 ); \backslash @@ -21143,20 +23554,24 @@ n", \end_layout \begin_layout Code + } /* End USAGE macro. */ \end_layout \begin_layout Code + /* \end_layout \begin_layout Code + ** This "macro" (even though it's really a function) is loosely based on the \end_layout \begin_layout Code + ** CHK() macro by Dr. V. Vinge (see server code). @@ -21164,540 +23579,669 @@ n", \end_layout \begin_layout Code + ** a boolean expression indicating the return code from one of the usual system \end_layout \begin_layout Code + ** calls that returns -1 on error. If a system call error occurred, an alert \end_layout \begin_layout Code + ** is written to stderr. It returns a boolean value indicating success/failure \end_layout \begin_layout Code + ** of the system call. \end_layout \begin_layout Code + ** \end_layout \begin_layout Code + ** Example: if ( !SYSCALL( "write", \end_layout \begin_layout Code + ** count = write( fd, bfr, size ) ) ) \end_layout \begin_layout Code + ** { \end_layout \begin_layout Code + ** // Error processing... but SYSCALL() will have already taken \end_layout \begin_layout Code + ** // care of dumping an error alert to stderr. \end_layout \begin_layout Code + ** } \end_layout \begin_layout Code + */ \end_layout \begin_layout Code + static __inline boolean SYSCALL( const char *syscallName, \end_layout \begin_layout Code + int lineNbr, \end_layout \begin_layout Code + int status ) \end_layout \begin_layout Code + { \end_layout \begin_layout Code + if ( ( status == -1 ) && verbose ) \end_layout \begin_layout Code + { \end_layout \begin_layout Code + fprintf( stderr, \end_layout \begin_layout Code + "%s (line %d): System call failed ('%s') - %s. \backslash n", \end_layout \begin_layout Code + pgmName, \end_layout \begin_layout Code + lineNbr, \end_layout \begin_layout Code + syscallName, \end_layout \begin_layout Code + strerror( errno ) ); \end_layout \begin_layout Code + } \end_layout \begin_layout Code + return status != -1; /* True if the system call was successful. */ \end_layout \begin_layout Code + } /* End SYSCALL() */ \end_layout \begin_layout Code + /****************************************************************************** \end_layout \begin_layout Code + * Function: main \end_layout \begin_layout Code + * \end_layout \begin_layout Code + * Description: \end_layout \begin_layout Code + * Connect to a remote time-of-day service and write the remote host's TOD to \end_layout \begin_layout Code + * stdout. \end_layout \begin_layout Code + * \end_layout \begin_layout Code + * Parameters: \end_layout \begin_layout Code + * The usual argc & argv parameters to a main() program. \end_layout \begin_layout Code + * \end_layout \begin_layout Code + * Return Value: \end_layout \begin_layout Code + * This function always returns zero. \end_layout \begin_layout Code + ******************************************************************************/ \end_layout \begin_layout Code + int main( int argc, \end_layout \begin_layout Code + char *argv[ ] ) \end_layout \begin_layout Code + { \end_layout \begin_layout Code + const char *host = DFLT_HOST; \end_layout \begin_layout Code + int opt; \end_layout \begin_layout Code + int sckt; \end_layout \begin_layout Code + unsigned int scopeId = if_nametoindex( DFLT_SCOPE_ID ); \end_layout \begin_layout Code + const char *service = DFLT_SERVICE; \end_layout \begin_layout Code + /* \end_layout \begin_layout Code + ** Determine the program name (w/o directory prefix). \end_layout \begin_layout Code + */ \end_layout \begin_layout Code + pgmName = (const char*) strrchr( argv[ 0 ], '/' ); \end_layout \begin_layout Code + pgmName = pgmName == NULL ? argv[ 0 ] : pgmName+1; \end_layout \begin_layout Code + /* \end_layout \begin_layout Code + ** Process command line options. \end_layout \begin_layout Code + */ \end_layout \begin_layout Code + opterr = 0; /* Turns off "invalid option" error messages. */ \end_layout \begin_layout Code + while ( ( opt = getopt( argc, argv, VALIDOPTS ) ) != -1 ) \end_layout \begin_layout Code + { \end_layout \begin_layout Code + switch ( opt ) \end_layout \begin_layout Code + { \end_layout \begin_layout Code + case 's': /* Scope identifier (IPv6 kluge). */ \end_layout \begin_layout Code + { \end_layout \begin_layout Code + scopeId = if_nametoindex( optarg ); \end_layout \begin_layout Code + if ( scopeId == 0 ) \end_layout \begin_layout Code + { \end_layout \begin_layout Code + fprintf( stderr, \end_layout \begin_layout Code + "%s: Unknown network interface (%s). \backslash n", \end_layout \begin_layout Code + pgmName, \end_layout \begin_layout Code + optarg ); \end_layout \begin_layout Code + USAGE; \end_layout \begin_layout Code + } \end_layout \begin_layout Code + break; \end_layout \begin_layout Code + } \end_layout \begin_layout Code + case 'v': /* Verbose mode. */ \end_layout \begin_layout Code + { \end_layout \begin_layout Code + verbose = true; \end_layout \begin_layout Code + break; \end_layout \begin_layout Code + } \end_layout \begin_layout Code + default: \end_layout \begin_layout Code + { \end_layout \begin_layout Code + USAGE; \end_layout \begin_layout Code + } \end_layout \begin_layout Code + } /* End SWITCH on command option. */ \end_layout \begin_layout Code + } /* End WHILE processing command options. */ \end_layout \begin_layout Code + /* \end_layout \begin_layout Code + ** Process command arguments. At the end of the above loop, optind is the \end_layout \begin_layout Code + ** index of the first NON-option argv element. \end_layout \begin_layout Code + */ \end_layout \begin_layout Code + switch ( argc - optind ) \end_layout \begin_layout Code + { \end_layout \begin_layout Code + case 2: /* Both host & service are specified on the command line. */ \end_layout \begin_layout Code + { \end_layout \begin_layout Code + service = argv[ optind + 1 ]; \end_layout \begin_layout Code + /***** Fall through *****/ \end_layout \begin_layout Code + } \end_layout \begin_layout Code + case 1: /* Host is specified on the command line. */ \end_layout \begin_layout Code + { \end_layout \begin_layout Code + host = argv[ optind ]; \end_layout \begin_layout Code + /***** Fall through *****/ \end_layout \begin_layout Code + } \end_layout \begin_layout Code + case 0: /* Use default host & service. */ \end_layout \begin_layout Code + { \end_layout \begin_layout Code + break; \end_layout \begin_layout Code + } \end_layout \begin_layout Code + default: \end_layout \begin_layout Code + { \end_layout \begin_layout Code + USAGE; \end_layout \begin_layout Code + } \end_layout \begin_layout Code + } /* End SWITCH on number of command arguments. */ \end_layout \begin_layout Code + /* \end_layout \begin_layout Code + ** Open a connection to the indicated host/service. \end_layout \begin_layout Code + ** \end_layout \begin_layout Code + ** Note that if all three of the following conditions are met, then the \end_layout \begin_layout Code + ** scope identifier remains unresolved at this point. \end_layout \begin_layout Code + ** 1) The default network interface is unknown for some reason. \end_layout \begin_layout Code + ** 2) The -s option was not used on the command line. \end_layout \begin_layout Code + ** 3) An IPv6 "scoped address" was not specified for the hostname on the \end_layout \begin_layout Code + ** command line. \end_layout \begin_layout Code + ** If the above three conditions are met, then only an IPv4 socket can be \end_layout \begin_layout Code + ** opened (connect(2) fails without the scope ID properly set for IPv6 \end_layout \begin_layout Code + ** sockets). \end_layout \begin_layout Code + */ \end_layout \begin_layout Code + if ( ( sckt = openSckt( host, \end_layout \begin_layout Code + service, \end_layout \begin_layout Code + scopeId ) ) == INVALID_DESC ) \end_layout \begin_layout Code + { \end_layout \begin_layout Code + fprintf( stderr, \end_layout \begin_layout Code + "%s: Sorry... a connection could not be established. \backslash @@ -21705,524 +24249,646 @@ n", \end_layout \begin_layout Code + pgmName ); \end_layout \begin_layout Code + exit( 1 ); \end_layout \begin_layout Code + } \end_layout \begin_layout Code + /* \end_layout \begin_layout Code + ** Get the remote time-of-day. \end_layout \begin_layout Code + */ \end_layout \begin_layout Code + tod( sckt ); \end_layout \begin_layout Code + /* \end_layout \begin_layout Code + ** Close the connection and terminate. \end_layout \begin_layout Code + */ \end_layout \begin_layout Code + (void) SYSCALL( "close", \end_layout \begin_layout Code + __LINE__, \end_layout \begin_layout Code + close( sckt ) ); \end_layout \begin_layout Code + return 0; \end_layout \begin_layout Code + } /* End main() */ \end_layout \begin_layout Code + /****************************************************************************** \end_layout \begin_layout Code + * Function: openSckt \end_layout \begin_layout Code + * \end_layout \begin_layout Code + * Description: \end_layout \begin_layout Code + * Sets up a TCP connection to a remote server. Getaddrinfo(3) is used to \end_layout \begin_layout Code + * perform lookup functions and can return multiple address records (i.e. a \end_layout \begin_layout Code + * list of 'struct addrinfo' records). This function traverses the list and \end_layout \begin_layout Code + * tries to establish a connection to the remote server. The function ends \end_layout \begin_layout Code + * when either a connection has been established or all records in the list \end_layout \begin_layout Code + * have been processed. \end_layout \begin_layout Code + * \end_layout \begin_layout Code + * Parameters: \end_layout \begin_layout Code + * host - A pointer to a character string representing the hostname or IP \end_layout \begin_layout Code + * address (IPv4 or IPv6) of the remote server. \end_layout \begin_layout Code + * service - A pointer to a character string representing the service name or \end_layout \begin_layout Code + * well-known port number. \end_layout \begin_layout Code + * scopeId - For IPv6 sockets only. This is the index corresponding to the \end_layout \begin_layout Code + * network interface on which to set up the connection. This \end_layout \begin_layout Code + * parameter is ignored for IPv4 sockets or when an IPv6 "scoped \end_layout \begin_layout Code + * address" is specified in 'host' (i.e. where the colon-hex \end_layout \begin_layout Code + * network address is augmented with the scope ID). \end_layout \begin_layout Code + * \end_layout \begin_layout Code + * Return Value: \end_layout \begin_layout Code + * Returns the socket descriptor for the connection, or INVALID_DESC if all \end_layout \begin_layout Code + * address records have been processed and a connection could not be \end_layout \begin_layout Code + * established. \end_layout \begin_layout Code + ******************************************************************************/ \end_layout \begin_layout Code + static int openSckt( const char *host, \end_layout \begin_layout Code + const char *service, \end_layout \begin_layout Code + unsigned int scopeId ) \end_layout \begin_layout Code + { \end_layout \begin_layout Code + struct addrinfo *ai; \end_layout \begin_layout Code + int aiErr; \end_layout \begin_layout Code + struct addrinfo *aiHead; \end_layout \begin_layout Code + struct addrinfo hints; \end_layout \begin_layout Code + sockaddr_in6_t *pSadrIn6; \end_layout \begin_layout Code + int sckt; \end_layout \begin_layout Code + /* \end_layout \begin_layout Code + ** Initialize the 'hints' structure for getaddrinfo(3). \end_layout \begin_layout Code + ** \end_layout \begin_layout Code + ** Notice that the 'ai_family' field is set to PF_UNSPEC, indicating to \end_layout \begin_layout Code + ** return both IPv4 and IPv6 address records for the host/service. Most of \end_layout \begin_layout Code + ** the time, the user isn't going to care whether an IPv4 connection or an \end_layout \begin_layout Code + ** IPv6 connection is established; the user simply wants to exchange data \end_layout \begin_layout Code + ** with the remote host and doesn't care how it's done. Sometimes, however, \end_layout \begin_layout Code + ** the user might want to explicitly specify the type of underlying socket. \end_layout \begin_layout Code + ** It is left as an exercise for the motivated reader to add a command line \end_layout \begin_layout Code + ** option allowing the user to specify the IP protocol, and then process the \end_layout \begin_layout Code + ** list of addresses accordingly (it's not that difficult). \end_layout \begin_layout Code + */ \end_layout \begin_layout Code + memset( &hints, 0, sizeof( hints ) ); \end_layout \begin_layout Code + hints.ai_family = PF_UNSPEC; /* IPv4 or IPv6 records (don't care). */ \end_layout \begin_layout Code + hints.ai_socktype = SOCK_STREAM; /* Connection-oriented byte stream. */ \end_layout \begin_layout Code + hints.ai_protocol = IPPROTO_TCP; /* TCP transport layer protocol only. */ \end_layout \begin_layout Code + /* \end_layout \begin_layout Code + ** Look up the host/service information. \end_layout \begin_layout Code + */ \end_layout \begin_layout Code + if ( ( aiErr = getaddrinfo( host, \end_layout \begin_layout Code + service, \end_layout \begin_layout Code + &hints, \end_layout \begin_layout Code + &aiHead ) ) != 0 ) \end_layout \begin_layout Code + { \end_layout \begin_layout Code + fprintf( stderr, \end_layout \begin_layout Code + "%s (line %d): ERROR - %s. \backslash n", \end_layout \begin_layout Code + pgmName, \end_layout \begin_layout Code + __LINE__, \end_layout \begin_layout Code + gai_strerror( aiErr ) ); \end_layout \begin_layout Code + return INVALID_DESC; \end_layout \begin_layout Code + } \end_layout \begin_layout Code + /* \end_layout \begin_layout Code + ** Go through the list and try to open a connection. Continue until either \end_layout \begin_layout Code + ** a connection is established or the entire list is exhausted. \end_layout \begin_layout Code + */ \end_layout \begin_layout Code + for ( ai = aiHead, sckt = INVALID_DESC; \end_layout \begin_layout Code + ( ai != NULL ) && ( sckt == INVALID_DESC ); \end_layout \begin_layout Code + ai = ai->ai_next ) \end_layout \begin_layout Code + { \end_layout \begin_layout Code + /* \end_layout \begin_layout Code + ** IPv6 kluge. Make sure the scope ID is set. \end_layout \begin_layout Code + */ \end_layout \begin_layout Code + if ( ai->ai_family == PF_INET6 ) \end_layout \begin_layout Code + { \end_layout \begin_layout Code + pSadrIn6 = (sockaddr_in6_t*) ai->ai_addr; \end_layout \begin_layout Code + if ( pSadrIn6->sin6_scope_id == 0 ) \end_layout \begin_layout Code + { \end_layout \begin_layout Code + pSadrIn6->sin6_scope_id = scopeId; \end_layout \begin_layout Code + } /* End IF the scope ID wasn't set. */ \end_layout \begin_layout Code + } /* End IPv6 kluge. */ \end_layout \begin_layout Code + /* \end_layout \begin_layout Code + ** Display the address info for the remote host. \end_layout \begin_layout Code + */ \end_layout \begin_layout Code + if ( verbose ) \end_layout \begin_layout Code + { \end_layout \begin_layout Code + /* \end_layout \begin_layout Code + ** Temporary character string buffers for host & service. \end_layout \begin_layout Code + */ \end_layout \begin_layout Code + char hostBfr[ NI_MAXHOST ]; \end_layout \begin_layout Code + char servBfr[ NI_MAXSERV ]; \end_layout \begin_layout Code + /* \end_layout \begin_layout Code + ** Display the address information just fetched. Start with the \end_layout \begin_layout Code + ** common (protocol-independent) stuff first. \end_layout \begin_layout Code + */ \end_layout \begin_layout Code + fprintf( stderr, \end_layout \begin_layout Code + "Address info: \backslash n" \end_layout \begin_layout Code + " ai_flags = 0x%02X \backslash n" \end_layout \begin_layout Code + " ai_family = %d (PF_INET = %d, PF_INET6 = %d) \backslash n" \end_layout \begin_layout Code + " ai_socktype = %d (SOCK_STREAM = %d, SOCK_DGRAM = %d) \backslash @@ -22230,6 +24896,7 @@ n" \end_layout \begin_layout Code + " ai_protocol = %d (IPPROTO_TCP = %d, IPPROTO_UDP = %d) \backslash @@ -22237,608 +24904,751 @@ n" \end_layout \begin_layout Code + " ai_addrlen = %d (sockaddr_in = %d, " \end_layout \begin_layout Code + "sockaddr_in6 = %d) \backslash n", \end_layout \begin_layout Code + ai->ai_flags, \end_layout \begin_layout Code + ai->ai_family, \end_layout \begin_layout Code + PF_INET, \end_layout \begin_layout Code + PF_INET6, \end_layout \begin_layout Code + ai->ai_socktype, \end_layout \begin_layout Code + SOCK_STREAM, \end_layout \begin_layout Code + SOCK_DGRAM, \end_layout \begin_layout Code + ai->ai_protocol, \end_layout \begin_layout Code + IPPROTO_TCP, \end_layout \begin_layout Code + IPPROTO_UDP, \end_layout \begin_layout Code + ai->ai_addrlen, \end_layout \begin_layout Code + sizeof( struct sockaddr_in ), \end_layout \begin_layout Code + sizeof( struct sockaddr_in6 ) ); \end_layout \begin_layout Code + /* \end_layout \begin_layout Code + ** Display the protocol-specific formatted address. \end_layout \begin_layout Code + */ \end_layout \begin_layout Code + getnameinfo( ai->ai_addr, \end_layout \begin_layout Code + ai->ai_addrlen, \end_layout \begin_layout Code + hostBfr, \end_layout \begin_layout Code + sizeof( hostBfr ), \end_layout \begin_layout Code + servBfr, \end_layout \begin_layout Code + sizeof( servBfr ), \end_layout \begin_layout Code + NI_NUMERICHOST | NI_NUMERICSERV ); \end_layout \begin_layout Code + switch ( ai->ai_family ) \end_layout \begin_layout Code + { \end_layout \begin_layout Code + case PF_INET: /* IPv4 address record. */ \end_layout \begin_layout Code + { \end_layout \begin_layout Code + sockaddr_in_t *pSadrIn = (sockaddr_in_t*) ai->ai_addr; \end_layout \begin_layout Code + fprintf( stderr, \end_layout \begin_layout Code + " ai_addr = sin_family: %d (AF_INET = %d, " \end_layout \begin_layout Code + "AF_INET6 = %d) \backslash n" \end_layout \begin_layout Code + " sin_addr: %s \backslash n" \end_layout \begin_layout Code + " sin_port: %s \backslash n", \end_layout \begin_layout Code + pSadrIn->sin_family, \end_layout \begin_layout Code + AF_INET, \end_layout \begin_layout Code + AF_INET6, \end_layout \begin_layout Code + hostBfr, \end_layout \begin_layout Code + servBfr ); \end_layout \begin_layout Code + break; \end_layout \begin_layout Code + } /* End CASE of IPv4 record. */ \end_layout \begin_layout Code + case PF_INET6: /* IPv6 address record. */ \end_layout \begin_layout Code + { \end_layout \begin_layout Code + pSadrIn6 = (sockaddr_in6_t*) ai->ai_addr; \end_layout \begin_layout Code + fprintf( stderr, \end_layout \begin_layout Code + " ai_addr = sin6_family: %d (AF_INET = %d, " \end_layout \begin_layout Code + "AF_INET6 = %d) \backslash n" \end_layout \begin_layout Code + " sin6_addr: %s \backslash n" \end_layout \begin_layout Code + " sin6_port: %s \backslash n" \end_layout \begin_layout Code + " sin6_flowinfo: %d \backslash n" \end_layout \begin_layout Code + " sin6_scope_id: %d \backslash n", \end_layout \begin_layout Code + pSadrIn6->sin6_family, \end_layout \begin_layout Code + AF_INET, \end_layout \begin_layout Code + AF_INET6, \end_layout \begin_layout Code + hostBfr, \end_layout \begin_layout Code + servBfr, \end_layout \begin_layout Code + pSadrIn6->sin6_flowinfo, \end_layout \begin_layout Code + pSadrIn6->sin6_scope_id ); \end_layout \begin_layout Code + break; \end_layout \begin_layout Code + } /* End CASE of IPv6 record. */ \end_layout \begin_layout Code + default: /* Can never get here, but just for completeness. */ \end_layout \begin_layout Code + { \end_layout \begin_layout Code + fprintf( stderr, \end_layout \begin_layout Code + "%s (line %d): ERROR - Unknown protocol family (%d). \backslash n", \end_layout \begin_layout Code + pgmName, \end_layout \begin_layout Code + __LINE__, \end_layout \begin_layout Code + ai->ai_family ); \end_layout \begin_layout Code + break; \end_layout \begin_layout Code + } /* End DEFAULT case (unknown protocol family). */ \end_layout \begin_layout Code + } /* End SWITCH on protocol family. */ \end_layout \begin_layout Code + } /* End IF verbose mode. */ \end_layout \begin_layout Code + /* \end_layout \begin_layout Code + ** Create a socket. \end_layout \begin_layout Code + */ \end_layout \begin_layout Code + if ( !SYSCALL( "socket", \end_layout \begin_layout Code + __LINE__, \end_layout \begin_layout Code + sckt = socket( ai->ai_family, \end_layout \begin_layout Code + ai->ai_socktype, \end_layout \begin_layout Code + ai->ai_protocol ) ) ) \end_layout \begin_layout Code + { \end_layout \begin_layout Code + sckt = INVALID_DESC; \end_layout \begin_layout Code + continue; /* Try the next address record in the list. */ \end_layout \begin_layout Code + } \end_layout \begin_layout Code + /* \end_layout \begin_layout Code + ** Connect to the remote host. \end_layout \begin_layout Code + */ \end_layout \begin_layout Code + if ( !SYSCALL( "connect", \end_layout \begin_layout Code + __LINE__, \end_layout \begin_layout Code + connect( sckt, \end_layout \begin_layout Code + ai->ai_addr, \end_layout \begin_layout Code + ai->ai_addrlen ) ) ) \end_layout \begin_layout Code + { \end_layout \begin_layout Code + (void) close( sckt ); /* Could use SYSCALL() again here, but why? */ \end_layout \begin_layout Code + sckt = INVALID_DESC; \end_layout \begin_layout Code + continue; /* Try the next address record in the list. */ \end_layout \begin_layout Code + } \end_layout \begin_layout Code + } /* End FOR each address record returned by getaddrinfo(3). */ \end_layout \begin_layout Code + /* \end_layout \begin_layout Code + ** Clean up & return. \end_layout \begin_layout Code + */ \end_layout \begin_layout Code + freeaddrinfo( aiHead ); \end_layout \begin_layout Code + return sckt; \end_layout \begin_layout Code + } /* End openSckt() */ \end_layout \begin_layout Code + /****************************************************************************** \end_layout \begin_layout Code + * Function: tod \end_layout \begin_layout Code + * \end_layout \begin_layout Code + * Description: \end_layout \begin_layout Code + * Receive the time-of-day from the remote server and write it to stdout. \end_layout \begin_layout Code + * \end_layout \begin_layout Code + * Parameters: \end_layout \begin_layout Code + * sckt - The socket descriptor for the connection. \end_layout \begin_layout Code + * \end_layout \begin_layout Code + * Return Value: None. \end_layout \begin_layout Code + ******************************************************************************/ \end_layout \begin_layout Code + static void tod( int sckt ) \end_layout \begin_layout Code + { \end_layout \begin_layout Code + char bfr[ MAXBFRSIZE+1 ]; \end_layout \begin_layout Code + int inBytes; \end_layout \begin_layout Code + /* \end_layout \begin_layout Code + ** The client never sends anything, so shut down the write side of the \end_layout \begin_layout Code + ** connection. \end_layout \begin_layout Code + */ \end_layout \begin_layout Code + if ( !SYSCALL( "shutdown", \end_layout \begin_layout Code + __LINE__, \end_layout \begin_layout Code + shutdown( sckt, SHUT_WR ) ) ) \end_layout \begin_layout Code + { \end_layout \begin_layout Code + return; \end_layout \begin_layout Code + } \end_layout \begin_layout Code + /* \end_layout \begin_layout Code + ** Read the time-of-day from the remote host. \end_layout \begin_layout Code + */ \end_layout \begin_layout Code + do \end_layout \begin_layout Code + { \end_layout \begin_layout Code + if ( !SYSCALL( "read", \end_layout \begin_layout Code + __LINE__, \end_layout \begin_layout Code + inBytes = read( sckt, \end_layout \begin_layout Code + bfr, \end_layout \begin_layout Code + MAXBFRSIZE ) ) ) \end_layout \begin_layout Code + { \end_layout \begin_layout Code + return; \end_layout \begin_layout Code + } \end_layout \begin_layout Code + bfr[ inBytes ] = ' \backslash 0'; /* Null-terminate the received string. @@ -22846,19 +25656,23 @@ static void tod( int sckt ) \end_layout \begin_layout Code + fputs( bfr, stdout ); /* Null string if EOF (inBytes == 0). */ \end_layout \begin_layout Code + } while ( inBytes > 0 ); \end_layout \begin_layout Code + fflush( stdout ); \end_layout \begin_layout Code + } /* End tod() */ \end_layout @@ -22875,6 +25689,7 @@ The UDP client code is found in file tod6uc.c (time-of-day IPv6 UDP client). \end_layout \begin_layout Code + tod6uc [-v] [-s scope_id] [host [service]] \end_layout @@ -22915,216 +25730,265 @@ The UDP client source code contained in tod6uc.c follows: \end_layout \begin_layout Code + /****************************************************************************** \end_layout \begin_layout Code + * File: tod6uc.c \end_layout \begin_layout Code + * Description: Contains source code for an IPv6-capable 'daytime' UDP client. \end_layout \begin_layout Code + * Author: John Wenker, Sr. Software Engineer \end_layout \begin_layout Code + * Performance Technologies, San Diego, USA \end_layout \begin_layout Code + ******************************************************************************/ \end_layout \begin_layout Code + /* \end_layout \begin_layout Code + ** System header files. \end_layout \begin_layout Code + */ \end_layout \begin_layout Code + #include /* errno declaration and error codes. */ \end_layout \begin_layout Code + #include /* if_nametoindex(3). */ \end_layout \begin_layout Code + #include /* getaddrinfo(3) and associated definitions. */ \end_layout \begin_layout Code + #include /* sockaddr_in and sockaddr_in6 definitions. */ \end_layout \begin_layout Code + #include /* printf(3) et al. */ \end_layout \begin_layout Code + #include /* exit(2). */ \end_layout \begin_layout Code + #include /* String manipulation and memory functions. */ \end_layout \begin_layout Code + #include /* Socket functions (socket(2), connect(2), etc). */ \end_layout \begin_layout Code + #include /* getopt(3), recvfrom(2), sendto(2), etc. */ \end_layout \begin_layout Code + /* \end_layout \begin_layout Code + ** Constants & macros. \end_layout \begin_layout Code + */ \end_layout \begin_layout Code + #define DFLT_HOST "localhost" /* Default server name. */ \end_layout \begin_layout Code + #define DFLT_SCOPE_ID "eth0" /* Default scope identifier. */ \end_layout \begin_layout Code + #define DFLT_SERVICE "daytime" /* Default service name. */ \end_layout \begin_layout Code + #define INVALID_DESC -1 /* Invalid file (socket) descriptor. */ \end_layout \begin_layout Code + #define MAXBFRSIZE 256 /* Max bfr sz to read remote TOD. */ \end_layout \begin_layout Code + #define VALIDOPTS "s:v" /* Valid command options. */ \end_layout \begin_layout Code + /* \end_layout \begin_layout Code + ** Type definitions (for convenience). \end_layout \begin_layout Code + */ \end_layout \begin_layout Code + typedef enum { false = 0, true } boolean; \end_layout \begin_layout Code + typedef struct sockaddr_in sockaddr_in_t; \end_layout \begin_layout Code + typedef struct sockaddr_in6 sockaddr_in6_t; \end_layout \begin_layout Code + /* \end_layout \begin_layout Code + ** Prototypes for internal helper functions. \end_layout \begin_layout Code + */ \end_layout \begin_layout Code + static int openSckt( const char *host, \end_layout \begin_layout Code + const char *service, \end_layout \begin_layout Code + unsigned int scopeId ); \end_layout \begin_layout Code + static void tod( int sckt ); \end_layout \begin_layout Code + /* \end_layout \begin_layout Code + ** Global (within this file only) data objects. \end_layout \begin_layout Code + */ \end_layout \begin_layout Code + static const char *pgmName; /* Program name (w/o directory). */ \end_layout \begin_layout Code + static boolean verbose = false; /* Verbose mode. */ \end_layout \begin_layout Code + /* \end_layout \begin_layout Code + ** Usage macro. \end_layout \begin_layout Code + */ \end_layout \begin_layout Code + #define USAGE \backslash @@ -23132,6 +25996,7 @@ static boolean verbose = false; /* Verbose mode. \end_layout \begin_layout Code + { \backslash @@ -23139,6 +26004,7 @@ static boolean verbose = false; /* Verbose mode. \end_layout \begin_layout Code + fprintf( stderr, \backslash @@ -23146,6 +26012,7 @@ static boolean verbose = false; /* Verbose mode. \end_layout \begin_layout Code + "Usage: %s [-v] [-s scope_id] [host [service]] \backslash n", @@ -23154,6 +26021,7 @@ n", \end_layout \begin_layout Code + pgmName ); \backslash @@ -23161,6 +26029,7 @@ n", \end_layout \begin_layout Code + exit( 127 ); \backslash @@ -23168,20 +26037,24 @@ n", \end_layout \begin_layout Code + } /* End USAGE macro. */ \end_layout \begin_layout Code + /* \end_layout \begin_layout Code + ** This "macro" (even though it's really a function) is loosely based on the \end_layout \begin_layout Code + ** CHK() macro by Dr. V. Vinge (see server code). @@ -23189,1065 +26062,1316 @@ n", \end_layout \begin_layout Code + ** a boolean expression indicating the return code from one of the usual system \end_layout \begin_layout Code + ** calls that returns -1 on error. If a system call error occurred, an alert \end_layout \begin_layout Code + ** is written to stderr. It returns a boolean value indicating success/failure \end_layout \begin_layout Code + ** of the system call. \end_layout \begin_layout Code + ** \end_layout \begin_layout Code + ** Example: if ( !SYSCALL( "write", \end_layout \begin_layout Code + ** count = write( fd, bfr, size ) ) ) \end_layout \begin_layout Code + ** { \end_layout \begin_layout Code + ** // Error processing... but SYSCALL() will have already taken \end_layout \begin_layout Code + ** // care of dumping an error alert to stderr. \end_layout \begin_layout Code + ** } \end_layout \begin_layout Code + */ \end_layout \begin_layout Code + static __inline boolean SYSCALL( const char *syscallName, \end_layout \begin_layout Code + int lineNbr, \end_layout \begin_layout Code + int status ) \end_layout \begin_layout Code + { \end_layout \begin_layout Code + if ( ( status == -1 ) && verbose ) \end_layout \begin_layout Code + { \end_layout \begin_layout Code + fprintf( stderr, \end_layout \begin_layout Code + "%s (line %d): System call failed ('%s') - %s. \backslash n", \end_layout \begin_layout Code + pgmName, \end_layout \begin_layout Code + lineNbr, \end_layout \begin_layout Code + syscallName, \end_layout \begin_layout Code + strerror( errno ) ); \end_layout \begin_layout Code + } \end_layout \begin_layout Code + return status != -1; /* True if the system call was successful. */ \end_layout \begin_layout Code + } /* End SYSCALL() */ \end_layout \begin_layout Code + /****************************************************************************** \end_layout \begin_layout Code + * Function: main \end_layout \begin_layout Code + * \end_layout \begin_layout Code + * Description: \end_layout \begin_layout Code + * Connect to a remote time-of-day service and write the remote host's TOD to \end_layout \begin_layout Code + * stdout. \end_layout \begin_layout Code + * \end_layout \begin_layout Code + * Parameters: \end_layout \begin_layout Code + * The usual argc & argv parameters to a main() program. \end_layout \begin_layout Code + * \end_layout \begin_layout Code + * Return Value: \end_layout \begin_layout Code + * This function always returns zero. \end_layout \begin_layout Code + ******************************************************************************/ \end_layout \begin_layout Code + int main( int argc, \end_layout \begin_layout Code + char *argv[ ] ) \end_layout \begin_layout Code + { \end_layout \begin_layout Code + const char *host = DFLT_HOST; \end_layout \begin_layout Code + int opt; \end_layout \begin_layout Code + int sckt; \end_layout \begin_layout Code + unsigned int scopeId = if_nametoindex( DFLT_SCOPE_ID ); \end_layout \begin_layout Code + const char *service = DFLT_SERVICE; \end_layout \begin_layout Code + /* \end_layout \begin_layout Code + ** Determine the program name (w/o directory prefix). \end_layout \begin_layout Code + */ \end_layout \begin_layout Code + pgmName = (const char*) strrchr( argv[ 0 ], '/' ); \end_layout \begin_layout Code + pgmName = pgmName == NULL ? argv[ 0 ] : pgmName+1; \end_layout \begin_layout Code + /* \end_layout \begin_layout Code + ** Process command line options. \end_layout \begin_layout Code + */ \end_layout \begin_layout Code + opterr = 0; /* Turns off "invalid option" error messages. */ \end_layout \begin_layout Code + while ( ( opt = getopt( argc, argv, VALIDOPTS ) ) != -1 ) \end_layout \begin_layout Code + { \end_layout \begin_layout Code + switch ( opt ) \end_layout \begin_layout Code + { \end_layout \begin_layout Code + case 's': /* Scope identifier (IPv6 kluge). */ \end_layout \begin_layout Code + { \end_layout \begin_layout Code + scopeId = if_nametoindex( optarg ); \end_layout \begin_layout Code + if ( scopeId == 0 ) \end_layout \begin_layout Code + { \end_layout \begin_layout Code + fprintf( stderr, \end_layout \begin_layout Code + "%s: Unknown network interface (%s). \backslash n", \end_layout \begin_layout Code + pgmName, \end_layout \begin_layout Code + optarg ); \end_layout \begin_layout Code + USAGE; \end_layout \begin_layout Code + } \end_layout \begin_layout Code + break; \end_layout \begin_layout Code + } \end_layout \begin_layout Code + case 'v': /* Verbose mode. */ \end_layout \begin_layout Code + { \end_layout \begin_layout Code + verbose = true; \end_layout \begin_layout Code + break; \end_layout \begin_layout Code + } \end_layout \begin_layout Code + default: \end_layout \begin_layout Code + { \end_layout \begin_layout Code + USAGE; \end_layout \begin_layout Code + } \end_layout \begin_layout Code + } /* End SWITCH on command option. */ \end_layout \begin_layout Code + } /* End WHILE processing command options. */ \end_layout \begin_layout Code + /* \end_layout \begin_layout Code + ** Process command arguments. At the end of the above loop, optind is the \end_layout \begin_layout Code + ** index of the first NON-option argv element. \end_layout \begin_layout Code + */ \end_layout \begin_layout Code + switch ( argc - optind ) \end_layout \begin_layout Code + { \end_layout \begin_layout Code + case 2: /* Both host & service are specified on the command line. */ \end_layout \begin_layout Code + { \end_layout \begin_layout Code + service = argv[ optind + 1 ]; \end_layout \begin_layout Code + /***** Fall through *****/ \end_layout \begin_layout Code + } \end_layout \begin_layout Code + case 1: /* Host is specified on the command line. */ \end_layout \begin_layout Code + { \end_layout \begin_layout Code + host = argv[ optind ]; \end_layout \begin_layout Code + /***** Fall through *****/ \end_layout \begin_layout Code + } \end_layout \begin_layout Code + case 0: /* Use default host & service. */ \end_layout \begin_layout Code + { \end_layout \begin_layout Code + break; \end_layout \begin_layout Code + } \end_layout \begin_layout Code + default: \end_layout \begin_layout Code + { \end_layout \begin_layout Code + USAGE; \end_layout \begin_layout Code + } \end_layout \begin_layout Code + } /* End SWITCH on number of command arguments. */ \end_layout \begin_layout Code + /* \end_layout \begin_layout Code + ** Open a connection to the indicated host/service. \end_layout \begin_layout Code + ** \end_layout \begin_layout Code + ** Note that if all three of the following conditions are met, then the \end_layout \begin_layout Code + ** scope identifier remains unresolved at this point. \end_layout \begin_layout Code + ** 1) The default network interface is unknown for some reason. \end_layout \begin_layout Code + ** 2) The -s option was not used on the command line. \end_layout \begin_layout Code + ** 3) An IPv6 "scoped address" was not specified for the hostname on the \end_layout \begin_layout Code + ** command line. \end_layout \begin_layout Code + ** If the above three conditions are met, then only an IPv4 socket can be \end_layout \begin_layout Code + ** opened (connect(2) fails without the scope ID properly set for IPv6 \end_layout \begin_layout Code + ** sockets). \end_layout \begin_layout Code + */ \end_layout \begin_layout Code + if ( ( sckt = openSckt( host, \end_layout \begin_layout Code + service, \end_layout \begin_layout Code + scopeId ) ) == INVALID_DESC ) \end_layout \begin_layout Code + { \end_layout \begin_layout Code + fprintf( stderr, \end_layout \begin_layout Code + "%s: Sorry... a connectionless socket could " \end_layout \begin_layout Code + "not be set up. \backslash n", \end_layout \begin_layout Code + pgmName ); \end_layout \begin_layout Code + exit( 1 ); \end_layout \begin_layout Code + } \end_layout \begin_layout Code + /* \end_layout \begin_layout Code + ** Get the remote time-of-day. \end_layout \begin_layout Code + */ \end_layout \begin_layout Code + tod( sckt ); \end_layout \begin_layout Code + /* \end_layout \begin_layout Code + ** Close the connection and terminate. \end_layout \begin_layout Code + */ \end_layout \begin_layout Code + (void) SYSCALL( "close", \end_layout \begin_layout Code + __LINE__, \end_layout \begin_layout Code + close( sckt ) ); \end_layout \begin_layout Code + return 0; \end_layout \begin_layout Code + } /* End main() */ \end_layout \begin_layout Code + /****************************************************************************** \end_layout \begin_layout Code + * Function: openSckt \end_layout \begin_layout Code + * \end_layout \begin_layout Code + * Description: \end_layout \begin_layout Code + * Sets up a UDP socket to a remote server. Getaddrinfo(3) is used to \end_layout \begin_layout Code + * perform lookup functions and can return multiple address records (i.e. a \end_layout \begin_layout Code + * list of 'struct addrinfo' records). This function traverses the list and \end_layout \begin_layout Code + * tries to establish a connection to the remote server. The function ends \end_layout \begin_layout Code + * when either a connection has been established or all records in the list \end_layout \begin_layout Code + * have been processed. \end_layout \begin_layout Code + * \end_layout \begin_layout Code + * Parameters: \end_layout \begin_layout Code + * host - A pointer to a character string representing the hostname or IP \end_layout \begin_layout Code + * address (IPv4 or IPv6) of the remote server. \end_layout \begin_layout Code + * service - A pointer to a character string representing the service name or \end_layout \begin_layout Code + * well-known port number. \end_layout \begin_layout Code + * scopeId - For IPv6 sockets only. This is the index corresponding to the \end_layout \begin_layout Code + * network interface on which to exchange datagrams. This \end_layout \begin_layout Code + * parameter is ignored for IPv4 sockets or when an IPv6 "scoped \end_layout \begin_layout Code + * address" is specified in 'host' (i.e. where the colon-hex \end_layout \begin_layout Code + * network address is augmented with the scope ID). \end_layout \begin_layout Code + * \end_layout \begin_layout Code + * Return Value: \end_layout \begin_layout Code + * Returns the socket descriptor for the connection, or INVALID_DESC if all \end_layout \begin_layout Code + * address records have been processed and a socket could not be initialized. \end_layout \begin_layout Code + ******************************************************************************/ \end_layout \begin_layout Code + static int openSckt( const char *host, \end_layout \begin_layout Code + const char *service, \end_layout \begin_layout Code + unsigned int scopeId ) \end_layout \begin_layout Code + { \end_layout \begin_layout Code + struct addrinfo *ai; \end_layout \begin_layout Code + int aiErr; \end_layout \begin_layout Code + struct addrinfo *aiHead; \end_layout \begin_layout Code + struct addrinfo hints; \end_layout \begin_layout Code + sockaddr_in6_t *pSadrIn6; \end_layout \begin_layout Code + int sckt; \end_layout \begin_layout Code + /* \end_layout \begin_layout Code + ** Initialize the 'hints' structure for getaddrinfo(3). \end_layout \begin_layout Code + ** \end_layout \begin_layout Code + ** Notice that the 'ai_family' field is set to PF_UNSPEC, indicating to \end_layout \begin_layout Code + ** return both IPv4 and IPv6 address records for the host/service. Most of \end_layout \begin_layout Code + ** the time, the user isn't going to care whether an IPv4 connection or an \end_layout \begin_layout Code + ** IPv6 connection is established; the user simply wants to exchange data \end_layout \begin_layout Code + ** with the remote host and doesn't care how it's done. Sometimes, however, \end_layout \begin_layout Code + ** the user might want to explicitly specify the type of underlying socket. \end_layout \begin_layout Code + ** It is left as an exercise for the motivated reader to add a command line \end_layout \begin_layout Code + ** option allowing the user to specify the IP protocol, and then process the \end_layout \begin_layout Code + ** list of addresses accordingly (it's not that difficult). \end_layout \begin_layout Code + */ \end_layout \begin_layout Code + memset( &hints, 0, sizeof( hints ) ); \end_layout \begin_layout Code + hints.ai_family = PF_UNSPEC; /* IPv4 or IPv6 records (don't care). */ \end_layout \begin_layout Code + hints.ai_socktype = SOCK_DGRAM; /* Connectionless communication. */ \end_layout \begin_layout Code + hints.ai_protocol = IPPROTO_UDP; /* UDP transport layer protocol only. */ \end_layout \begin_layout Code + /* \end_layout \begin_layout Code + ** Look up the host/service information. \end_layout \begin_layout Code + */ \end_layout \begin_layout Code + if ( ( aiErr = getaddrinfo( host, \end_layout \begin_layout Code + service, \end_layout \begin_layout Code + &hints, \end_layout \begin_layout Code + &aiHead ) ) != 0 ) \end_layout \begin_layout Code + { \end_layout \begin_layout Code + fprintf( stderr, \end_layout \begin_layout Code + "%s (line %d): ERROR - %s. \backslash n", \end_layout \begin_layout Code + pgmName, \end_layout \begin_layout Code + __LINE__, \end_layout \begin_layout Code + gai_strerror( aiErr ) ); \end_layout \begin_layout Code + return INVALID_DESC; \end_layout \begin_layout Code + } \end_layout \begin_layout Code + /* \end_layout \begin_layout Code + ** Go through the list and try to open a connection. Continue until either \end_layout \begin_layout Code + ** a connection is established or the entire list is exhausted. \end_layout \begin_layout Code + */ \end_layout \begin_layout Code + for ( ai = aiHead, sckt = INVALID_DESC; \end_layout \begin_layout Code + ( ai != NULL ) && ( sckt == INVALID_DESC ); \end_layout \begin_layout Code + ai = ai->ai_next ) \end_layout \begin_layout Code + { \end_layout \begin_layout Code + /* \end_layout \begin_layout Code + ** IPv6 kluge. Make sure the scope ID is set. \end_layout \begin_layout Code + */ \end_layout \begin_layout Code + if ( ai->ai_family == PF_INET6 ) \end_layout \begin_layout Code + { \end_layout \begin_layout Code + pSadrIn6 = (sockaddr_in6_t*) ai->ai_addr; \end_layout \begin_layout Code + if ( pSadrIn6->sin6_scope_id == 0 ) \end_layout \begin_layout Code + { \end_layout \begin_layout Code + pSadrIn6->sin6_scope_id = scopeId; \end_layout \begin_layout Code + } /* End IF the scope ID wasn't set. */ \end_layout \begin_layout Code + } /* End IPv6 kluge. */ \end_layout \begin_layout Code + /* \end_layout \begin_layout Code + ** Display the address info for the remote host. \end_layout \begin_layout Code + */ \end_layout \begin_layout Code + if ( verbose ) \end_layout \begin_layout Code + { \end_layout \begin_layout Code + /* \end_layout \begin_layout Code + ** Temporary character string buffers for host & service. \end_layout \begin_layout Code + */ \end_layout \begin_layout Code + char hostBfr[ NI_MAXHOST ]; \end_layout \begin_layout Code + char servBfr[ NI_MAXSERV ]; \end_layout \begin_layout Code + /* \end_layout \begin_layout Code + ** Display the address information just fetched. Start with the \end_layout \begin_layout Code + ** common (protocol-independent) stuff first. \end_layout \begin_layout Code + */ \end_layout \begin_layout Code + fprintf( stderr, \end_layout \begin_layout Code + "Address info: \backslash n" \end_layout \begin_layout Code + " ai_flags = 0x%02X \backslash n" \end_layout \begin_layout Code + " ai_family = %d (PF_INET = %d, PF_INET6 = %d) \backslash n" \end_layout \begin_layout Code + " ai_socktype = %d (SOCK_STREAM = %d, SOCK_DGRAM = %d) \backslash @@ -24255,6 +27379,7 @@ n" \end_layout \begin_layout Code + " ai_protocol = %d (IPPROTO_TCP = %d, IPPROTO_UDP = %d) \backslash @@ -24262,606 +27387,748 @@ n" \end_layout \begin_layout Code + " ai_addrlen = %d (sockaddr_in = %d, " \end_layout \begin_layout Code + "sockaddr_in6 = %d) \backslash n", \end_layout \begin_layout Code + ai->ai_flags, \end_layout \begin_layout Code + ai->ai_family, \end_layout \begin_layout Code + PF_INET, \end_layout \begin_layout Code + PF_INET6, \end_layout \begin_layout Code + ai->ai_socktype, \end_layout \begin_layout Code + SOCK_STREAM, \end_layout \begin_layout Code + SOCK_DGRAM, \end_layout \begin_layout Code + ai->ai_protocol, \end_layout \begin_layout Code + IPPROTO_TCP, \end_layout \begin_layout Code + IPPROTO_UDP, \end_layout \begin_layout Code + ai->ai_addrlen, \end_layout \begin_layout Code + sizeof( struct sockaddr_in ), \end_layout \begin_layout Code + sizeof( struct sockaddr_in6 ) ); \end_layout \begin_layout Code + /* \end_layout \begin_layout Code + ** Display the protocol-specific formatted address. \end_layout \begin_layout Code + */ \end_layout \begin_layout Code + getnameinfo( ai->ai_addr, \end_layout \begin_layout Code + ai->ai_addrlen, \end_layout \begin_layout Code + hostBfr, \end_layout \begin_layout Code + sizeof( hostBfr ), \end_layout \begin_layout Code + servBfr, \end_layout \begin_layout Code + sizeof( servBfr ), \end_layout \begin_layout Code + NI_NUMERICHOST | NI_NUMERICSERV ); \end_layout \begin_layout Code + switch ( ai->ai_family ) \end_layout \begin_layout Code + { \end_layout \begin_layout Code + case PF_INET: /* IPv4 address record. */ \end_layout \begin_layout Code + { \end_layout \begin_layout Code + sockaddr_in_t *pSadrIn = (sockaddr_in_t*) ai->ai_addr; \end_layout \begin_layout Code + fprintf( stderr, \end_layout \begin_layout Code + " ai_addr = sin_family: %d (AF_INET = %d, " \end_layout \begin_layout Code + "AF_INET6 = %d) \backslash n" \end_layout \begin_layout Code + " sin_addr: %s \backslash n" \end_layout \begin_layout Code + " sin_port: %s \backslash n", \end_layout \begin_layout Code + pSadrIn->sin_family, \end_layout \begin_layout Code + AF_INET, \end_layout \begin_layout Code + AF_INET6, \end_layout \begin_layout Code + hostBfr, \end_layout \begin_layout Code + servBfr ); \end_layout \begin_layout Code + break; \end_layout \begin_layout Code + } /* End CASE of IPv4 record. */ \end_layout \begin_layout Code + case PF_INET6: /* IPv6 address record. */ \end_layout \begin_layout Code + { \end_layout \begin_layout Code + pSadrIn6 = (sockaddr_in6_t*) ai->ai_addr; \end_layout \begin_layout Code + fprintf( stderr, \end_layout \begin_layout Code + " ai_addr = sin6_family: %d (AF_INET = %d, " \end_layout \begin_layout Code + "AF_INET6 = %d) \backslash n" \end_layout \begin_layout Code + " sin6_addr: %s \backslash n" \end_layout \begin_layout Code + " sin6_port: %s \backslash n" \end_layout \begin_layout Code + " sin6_flowinfo: %d \backslash n" \end_layout \begin_layout Code + " sin6_scope_id: %d \backslash n", \end_layout \begin_layout Code + pSadrIn6->sin6_family, \end_layout \begin_layout Code + AF_INET, \end_layout \begin_layout Code + AF_INET6, \end_layout \begin_layout Code + hostBfr, \end_layout \begin_layout Code + servBfr, \end_layout \begin_layout Code + pSadrIn6->sin6_flowinfo, \end_layout \begin_layout Code + pSadrIn6->sin6_scope_id ); \end_layout \begin_layout Code + break; \end_layout \begin_layout Code + } /* End CASE of IPv6 record. */ \end_layout \begin_layout Code + default: /* Can never get here, but just for completeness. */ \end_layout \begin_layout Code + { \end_layout \begin_layout Code + fprintf( stderr, \end_layout \begin_layout Code + "%s (line %d): ERROR - Unknown protocol family (%d). \backslash n", \end_layout \begin_layout Code + pgmName, \end_layout \begin_layout Code + __LINE__, \end_layout \begin_layout Code + ai->ai_family ); \end_layout \begin_layout Code + break; \end_layout \begin_layout Code + } /* End DEFAULT case (unknown protocol family). */ \end_layout \begin_layout Code + } /* End SWITCH on protocol family. */ \end_layout \begin_layout Code + } /* End IF verbose mode. */ \end_layout \begin_layout Code + /* \end_layout \begin_layout Code + ** Create a socket. \end_layout \begin_layout Code + */ \end_layout \begin_layout Code + if ( !SYSCALL( "socket", \end_layout \begin_layout Code + __LINE__, \end_layout \begin_layout Code + sckt = socket( ai->ai_family, \end_layout \begin_layout Code + ai->ai_socktype, \end_layout \begin_layout Code + ai->ai_protocol ) ) ) \end_layout \begin_layout Code + { \end_layout \begin_layout Code + sckt = INVALID_DESC; \end_layout \begin_layout Code + continue; /* Try the next address record in the list. */ \end_layout \begin_layout Code + } \end_layout \begin_layout Code + /* \end_layout \begin_layout Code + ** Set the target destination for the remote host on this socket. That \end_layout \begin_layout Code + ** is, this socket only communicates with the specified host. \end_layout \begin_layout Code + */ \end_layout \begin_layout Code + if ( !SYSCALL( "connect", \end_layout \begin_layout Code + __LINE__, \end_layout \begin_layout Code + connect( sckt, \end_layout \begin_layout Code + ai->ai_addr, \end_layout \begin_layout Code + ai->ai_addrlen ) ) ) \end_layout \begin_layout Code + { \end_layout \begin_layout Code + (void) close( sckt ); /* Could use SYSCALL() again here, but why? */ \end_layout \begin_layout Code + sckt = INVALID_DESC; \end_layout \begin_layout Code + continue; /* Try the next address record in the list. */ \end_layout \begin_layout Code + } \end_layout \begin_layout Code + } /* End FOR each address record returned by getaddrinfo(3). */ \end_layout \begin_layout Code + /* \end_layout \begin_layout Code + ** Clean up & return. \end_layout \begin_layout Code + */ \end_layout \begin_layout Code + freeaddrinfo( aiHead ); \end_layout \begin_layout Code + return sckt; \end_layout \begin_layout Code + } /* End openSckt() */ \end_layout \begin_layout Code + /****************************************************************************** \end_layout \begin_layout Code + * Function: tod \end_layout \begin_layout Code + * \end_layout \begin_layout Code + * Description: \end_layout \begin_layout Code + * Receive the time-of-day from the remote server and write it to stdout. \end_layout \begin_layout Code + * \end_layout \begin_layout Code + * Parameters: \end_layout \begin_layout Code + * sckt - The socket descriptor for the connection. \end_layout \begin_layout Code + * \end_layout \begin_layout Code + * Return Value: None. \end_layout \begin_layout Code + ******************************************************************************/ \end_layout \begin_layout Code + static void tod( int sckt ) \end_layout \begin_layout Code + { \end_layout \begin_layout Code + char bfr[ MAXBFRSIZE+1 ]; \end_layout \begin_layout Code + int inBytes; \end_layout \begin_layout Code + /* \end_layout \begin_layout Code + ** Send a datagram to the server to wake it up. The content isn't \end_layout \begin_layout Code + ** important, but something must be sent to let it know we want the TOD. \end_layout \begin_layout Code + */ \end_layout \begin_layout Code + if ( !SYSCALL( "write", \end_layout \begin_layout Code + __LINE__, \end_layout \begin_layout Code + write( sckt, "Are you there?", 14 ) ) ) \end_layout \begin_layout Code + { \end_layout \begin_layout Code + return; \end_layout \begin_layout Code + } \end_layout \begin_layout Code + /* \end_layout \begin_layout Code + ** Read the time-of-day from the remote host. \end_layout \begin_layout Code + */ \end_layout \begin_layout Code + if ( !SYSCALL( "read", \end_layout \begin_layout Code + __LINE__, \end_layout \begin_layout Code + inBytes = read( sckt, \end_layout \begin_layout Code + bfr, \end_layout \begin_layout Code + MAXBFRSIZE ) ) ) \end_layout \begin_layout Code + { \end_layout \begin_layout Code + return; \end_layout \begin_layout Code + } \end_layout \begin_layout Code + bfr[ inBytes ] = ' \backslash 0'; /* Null-terminate the received string. @@ -24869,15 +28136,18 @@ static void tod( int sckt ) \end_layout \begin_layout Code + fputs( bfr, stdout ); /* Null string if EOF (inBytes == 0). */ \end_layout \begin_layout Code + fflush( stdout ); \end_layout \begin_layout Code + } /* End tod() */ \end_layout diff --git a/LDP/users/Peter-Bieringer/Linux+IPv6-HOWTO.pdf b/LDP/users/Peter-Bieringer/Linux+IPv6-HOWTO.pdf index 062138e0933addb51176bf68685dfe40a817b164..ee51540603558fe03df00522750a340d6476f6a2 100644 GIT binary patch delta 231395 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

>WX8uV2VlCR9{G!#otJq5w1zWQ8!^ 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%0D{mzKe>9@#^Re8 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 delta 228562 zcmZs?1yCJL(>9E|I|&4LcXxMp*8ssi*y8T)?k*v?y9EgZ4-UcI?K^kw_mlsBp6WWM zrgnCwdwRO3uf4W5^$%It99caY4Fo4o8a^5n2auvQ;rvq?YyBGABf~b?PcE~td|cQQ z3kh4=GEITZ0|UF!oIE4GC(lJMHi2Nmj8m~={a|f`=QW(2luTq!T4LqWNI_Nl(`J_9 z*Z4#X1V{>L>j6laahp$gsyaU)<#aDiQvxJ=dWorWuA?;vh0OBD%n2ZzswX|;6FK~WbyYeNUFhGASH|SKa61UypJ1|n8spxTBmbLXlGpMhdQzzv>_R# zY@^|47SnssiXjaVQ9`Dq(wI69xK1YioB9?dbOMG_(Nj|zI+qY; z_$0Lh;+6_qxv|R!oKe+=wExhm;Y>6(T9aE?H-(3MXWjXs7f$Cg#?m^U{n3`BZnAA4 z755;!6}kdLKP;qQR(n{~l)`yf)QrL{+Xb)03FS>??K7hY4bGaVF7~r2$+x-e&=6p* zUMpJ+DMw~dxGAN9AGRT7tjz~2Xy3VOMonTvn_ZrVGe2Z=T;~T?B;818Q@nmjB>Ieg zNrTpmejj@{_*4Qy-2f`B*(E)@*4Igd%qo7#pnclu)}$GIME8`Ceci!Ue`|C$2_0SY zX#f2Wp(04%6y-*=t!j&mv?Xg?vt0nZHtw{j7~H9*M38AEJ#|1 z7a9YOOorXXO?158i~3xyccF^O(zdz1KJf1Hg-VADRk&2Fa;}9KG??wSS%O%;%k#VE zJ~|!(DQ>g$6Hl?VMn40 zkRUYMLm5L}ky9;-9cm=cb~|0Kk2ng)sB9&C^3)fVI_qf$MmXK5QB?h1^or!pQJnC; zD6e8a{mQO~3Xu(@7HjG{#zzd-vV8=5x_L_6Mq(<(06k4#t9AMYoTA@&jF$s@N>c9+ zC<=D35bW35JbjhOcgTa($0PueIUA}LX6x@>rmXK}Eeg+@tB-%2=P|NoRvVE~yDMA& zC>*wQy>pf^4>W(0Xpy;b(|&Xx%?j}?1S{%6ycV|<4Q6~f?Pz>J4%2X$=(z3WS2Ckw z_d0GC5z*z)(BYpGTizg2AwXbV9(8rEKR-58>mzIok~A<9YpHz_V9o%-O-_%!d$!Fj zVsFG6>?huw&b`XML+ocS9ay55^M%ilK_&7qA#eg3j1z*XKTpFl&`-upl>$cVa4mW^ z%puh~YG@y4`jxhRXsNre^G-_5A3~M-d6<24-ckEOHDA3S*g~fm^mWcwv@(v|;Aw&1 zLa=~+M8(~A)d#VuSW+I4KIOMoGaG?9$|}t~FG;}Ug+0uG9ue$tB2qkELGLb&YPTZN z8VFHk>Yd#P<7o$O>TV{gI6r3OJ`%Ny0%8*K z779+zpw0ZE7D{@JBY+Wc90u@lI-uYt0f$5TT{tGz@^lHA^Zj$V*_jXblryAcO6 ze)L>P_HNCS-44tGyNc}1F5esmUUkrI!f;++5R#Ce^DyHw-oUMS4=XcW-84ih#gseW zsUFKeb1mhv#u;<)RUf@q^7m%MtcCr=RBBAb-1%5I{Lz$WO&&M}KmHtsRr%a_hn<&H zeoXsKXd*D@xuk97SU)@Dk<-U@twVWdO7qkpD{@vhng4_daCC@m>P`>II32<)aDMiS zohF|~&91$7Q`#8+)DPAF)2ZuSa~)%wsICSHlE$isQ$a}x$3km{bS>45$0a#ddkqDV zb|*7(e8<3N7B^mvcHPt)KZMua*_m-U{WqAA_O~U8u|xF8lXnYz+qJq&1br9N$Mjtmh*WOR3KRF z0w)XvS^3=l5EItd#_-W%Syja~qmAXFki@{TaS7yf-h`H>Cbo$VHQSVv3Y(N!b#|GRRs7& z=0JRWjCpLV%o~ewqax)OF~(G$mBgQ0in2dSggMbE`o|#1SP}{K6NLx3WksNaf>r4} zY~`)TS$io|69-7mu<&%`hw`FTqrXA6i>YTzTZSQqm7z2@qGN3hM}YA$D;FjxFiQjw zN~RYkI->HhBgzI6tb~-crY{kPIdWiFssXpv-;n!lwsPAKk~t+%s6MsACFL+XCg}fj zd*aeKT$(r@waXDnL^3G?i7o5E1nIp^WU0awOu&pVallx3 zVico^*{wcZX8;~HP6r+tHc2NU2!*i;;|_(h3C9LSu*p(n80*)ZJc?oyP7Yx;V2O$7 zogCMlsEsu+th4LiXR9g_ux^`@-|K)=$08a_TnI@m$I=kAN3V=WB834JbdXIg5_({z zQ-Pc7Qb`WWf1s}0+vkD}-JlW}DcW^GAR&w5SxZW#WRe@H8sUFHYncH%tzp|Q(1}by z8+Z^I^8h}LJrT7htW~i|%daI1z^i%ICS#Uf=+m$Wf+LrdWR*abG%q1Hq@+^H7hViY zu!^D-Jx+Ca+_+0P05v`HH|{dH)wqm?gK0N!uUUxu5}o;|-H-boZxQyDKe$rP|8RO= ze5)pEY%J`ELgi|i=#ZmjeOJ~}-_mj7390%Cjanb@R$aioC%mlsB9@_LD17B1XNJCYJQ=m$?T?A=FJ zr>n7d3aK6zXJsmr;W1(_zYaEHU1MWX7d7^-?NMN!C&HsKSqq8}fXzHB-#;@@8t}ch zm<4hNmy__H2=oX=M;uT(&~GNV`L%O*r+8{*Pfg-}e>Ds}WAw}C=`cMCQGrD3q&0eN z4>1VuS^507Oz%>_=#dbEr2s-K2Bd;|Px`A0=Q_#i?Dx>ER}8Z9WjwqV zccts4GpMY0!VcQEN1*axBi}4_mmE>Ni#D>6?ieAWvOOzN7&W{1>PpY|&tNEorK`m; zQSo7#lv-A`XZ8)2^e{3#d=vuCtio5oYA_j105|IA&wQlyj}5eYQ)#(K!Wqfzh}(sj zXonYF({gYo9lCjlDbY3wuOoG+_xI(ydw6Wh7!ylZ@OtVQKLIJ0N3Zn6&C5!M`;I8n ztaCfQk_vb}22@Ab%sb=T&~}C&kVJJQ9xIER+vGg)+cpnwniv+QM^GbGR0T8H8?f2~dbzoSZSpMiQ@>(B3ej z__1Woge|#-Zu)Myea%EDXGJQh9v&53d416?!@)_v`aJ6-0EIg&I{XEBKw6(P$(utq zjT{Y%7Rb?5a9HI=>pIYyw9_-*QWi_V3Mll?@*|drvP^PS>KbL;u_B8ylsOye+2Cr- z8LzFGIvXmj$++h}M-G#16i+B5ms6di-w2(P?`9iUeY{Jq?+d(~r)-=VtTfU#t+Ch& zk9jG=cG~|@FD*?4Q3U=4O6ucWMv{c2HL3rK8c-R+Yav_XSe6-m^xj~uJ*Or`nPOZt z$}IvDr%?Tpl&Ao`jMu0cuORsgG4^uT%RRqcJ+OxIfP7eYJUK0dY*{vuMWQo;E6Z`K!e0VkN+U<)->8&mQhMZ`XVy<(*MZ$0Yb zDS(|Pm=(?`Kle9u&Nx`>K#iUp_S;6$OmxIfh%k`~ZIVH_y0EZ_y%QulVI8apZ0_u% zyug7HSxspdP3NIs@+5xg(+22DQ~8i&smip%&>xMSa?H zq2=@nAGM~WzQ{yIWSX=rqCgR?M~@qn{O;RzkyZ13(|^nM*=vh?wHrnIha&miMRv}& z0Ibm;G6bAIGDgoxP(BO5@=HxeXBlR_)|lQ+h~%uxlh&mS%Cwem#^2yP;NWHl^WHm^3P}a<7I} zs>PxJI1~au;1?AgsK`^-_0hKtSZpd;4^huP3na<2X<7>U?2pdC*ELl( z5wcV5r&xl)pY18rQHKkAW9nr@$H}f>@>~+L3X9cI_Upm!^!Q|#4XB)8{{GxF%?+Mt z0pni$8=rQs&B@NDefUr|QNV~-I+Vjo>D`;7Q{vASrk(w^2fQR47Tq>_$SN$Eu)hJ- z6Z-`vTyE%#97ssl4d!bk-h7Kd+??;E79Bw$)rq0<3pj#J>*z7ByK57I#Mk?v84p*r zL5+Mlq@>zTx>*D=@lh-@m_t}(* zi`ClbC~njpY9If8vE%;e}thlOFcQ z;8B$4Wq_hm*k|vptOg@O_?Dh%wpMSN1BjfZ-KIv`4l~@WXNqZgM}n;GZ;ivJt&@A^ zs)o~t*SBGJ)G%jdIjp5XUesfyR%!K~U*=YPOOM)bR|^&BYEy#(g$j71iHjPECWeV~ z6TfeHoJ(g1AA^_WyQ&!O==xy#v%FMNPG7lUexHBx?mgK*kXXiX;-4TezjXhzw=mWz ze|n0C|8wMOpelwqkCRnjNGFtj8Bzjr1IucebdzAZvhhz2M!wH4z+J)6l{h2Cla#Q% zo$3CY!%jPmD4*nrx9j2e9i?yn_}~2HhqO0LsLfo6U-1H?@vH5Banr0@hs&dKKVJvn zPThF65;BWM)no^i3S^{~K&HOYdJ;`c5uer#=os=(ZqLd*!TG0cis;#%Uwdd|?_tjy zY`&Jzi1Ed4qM+rk0wXU>oe2oS)$fq1?*32$_KThj)mFa-!;(r*=Uzp4JHH#qOF^q2 z5yL0#Tv>YYb@Ap{-npjX`gbDQNi`GruZI^fs;+f*51Doi%70q!S{GaE9B^w0Cta@v zmuk{z)EYh;>g6mLx9Hao>sf3ZYEh}JvgjcsXgF@ceO-Qpg&NL*220xHlYwC2NfW7n zpaEi1^&CEOp@nR`((SVx4rJaVqCwSXvAd~JiOz#bY;ex47>fVKZtaN4G1_1YCe*f7 z!1kK4O4}f~nv74zP)#JJD5f}lSXGICA(WAg6NXQGjF}@h*zApuPKE4Tcg-7*>&n|BcL6MTmkfg6ZktQceOR-KruMb08~=;jY&6J-Ghnt+H0aV=Hks#@6)-x+6K3uZ(|**K$S zh#q|p+l1v$AwSB8Sr>Dc10Aa+AS_iR`Sk#Q*D#_wtD&=yA9-MhfNGDk_k(mnH-X9H z_^y*@0f8BH%UmD_cZKCS1wyUsUG7AYin2JKZL1^(ht_aC+N%APzGrv@{a8q2q!zv> zuC`^HhAr02X0A)3&TkgR>11S=W!!oFuXhp!`{PB_;qmj=scI<+c1$k-7?IxvmHg)?E z!*oxarFE~43X9hIcRwd=L=DL2k$tlr+SU7figJld3np0H=25lG+U*Yf2rA2&VIxZu zkY9hJP7s#ZFaB8nuDBYg2|z16GtPd`+n)z?VwHxm59?n%)@MrGwGMpx8W8QCR;F$$ zvf4TA?2mk?Jy&NCeiH3Ro^SPfpdH+Q!%qX3J3UGdhjmUB06L1DHZ)jh5RfeM7;NqI z4$S)wVQbe3$uvaz7q9I-)|pz|6mbbUl2$4<7Fg7bQC1I2iDKpF0Gwpl+pemVY#J@) z06k8tDL&43$%?p}-g28xD!N=~5YoHqfY8u9k2AWvbK(#%2wVJ!4awv zrGsNGH)<@j4b|6g_=np&?TW*J;zBR&PcNUb=L-F2kZ=#u+$3?3GB+DHik&{x?ekV3 zV0^C~G01vqPtwID;OcW;o!+t2gH-@81b;i~R?m*!&ObwI2ee;Lt=8>Q=clKMz*Igt z&hV_Bd%RK_9eo=p;nmRbUHTJ{wP)L#5F}almB2&FQET(aWV?#pK5dG{$!NwZ=QeC& z0TAm>5Q52q&4}7U&>GGrZZ1C4VXUNL-0NXF#z#?b>B-0qy8$1h`?$}D{4j8FXYcY8 zWzm4}m(o2JmCPocPv*#0+rU9W6m;2<);px7c);OP&2{(~1e+9No0KAUcFk|zxMW7^ z`<=N**g$(3R|E@ta~D@<3lqD4S`MZ*2&`<}+-X~1z_F9mM4lknc+$YrpfH^VEMM}kq6 zrA1v4yw98i&@ z?_IzVpnxI;h;yp`F&<^^FK0IoVHtz#e_*FVNb0Yb)vgi#uB$EQQjN)3OcI&S9llD@ zmekMVd=%}NVCt^vnQ{iTW!H`wa&PWQ5jaom%>cn5+~?BEk7pPxO@}NE!=MUHQ&`|e za)AejR~?=}32RQah$R(XpO{o`ED;DvW+7_Kqgwh0K+8x@FLcdClsOCzaizJsB>FWYKwHtAK>tu5KwVMJ z^O#>*%5D=(mqX?t9pyUP2a7=0MTtO5CvY1eX(bl=x)EEL9+DWClX6o>e zU#_l7(tixy6zi~?KI!tS2_gz6seJY-)D0&yj!&BpgpQOdo2Hj z@{I%&cwcQDL?%a1eC)GF-nX4x%+Ow2aBIULTG>}yjy;OrxGG`Gh|tW|rl%lTQ^?grbkc%R=y;q!^xa-zUT`ym=^T;mPN_9?g#9LGhrBZZ~4dTvL z%C7Zz=XbunX$1*H&ylV)I#gYCchVgDago}Rl+(|vI%Mr*J__kz8)(IfqqXc(Ph~l~ z>3uJ3?K04qaP!SoAMqhmSwhBT0NfE;#W@c4klkP1!xZiR)Dykcw=(if)K%Fp=f|Q7 zg_q@(#_xSO-EwnUC6f=qm>PesEDAO#s#JI;F5RwYsH^M_lDH|N@+gRxxaCMz|3+e! z2KTwHPKV4Sv349H0_W@9o^{6W3yJfeZowViqC)7I@ zyxRMwl%*pY@3~k^MvA3TVXLb0Op$SW=1+gV7l~QqS0o))pJaC6@SQ#7XPo7bq;G3n zOX%;nnlzyCYQYk+I!r#p8v_i`aW18bfl^9(BriADOxq#F3p-VCOm-y_zAd_48$8Ps z(cNhLta&?ZdrH~1?3_{rodSv$=tlHqerA{qRKdG#7|CXQaSoD)31Y12l3ADgil zBpZ2MYP68m%mP`O*~5UAZW*lGy1!SO;JKPUbvkw%OWd# z_q@!ZwCv}ATm~a`Ern)r!y~tk7hg8Pr8UXLR05ArA5Z6|g=4x0acB-V-_yw9%gy>@ z6c^~VPsj3f1qGMdCqQm*r)9{MhjQdWU@zm-Pu!N_T_IKatSpB}3zyrlD2rc6tn42{ zktagU2Aa^9!s9|Gmw|X&W*yf5kFe+oUM+wY2bbR^#_^actnu?BeF(70M*+ z+!MG2W<_dWl9c7JAeecQ8q}y!SeXA$4P<3uN!u)erUkMLz7XL{)}O67rZ z>T^PxRUzk79tk-mZX2CNX;ic8p8^M#uq3?JA@{~aUy3Eh^h>H?+A=fB#LW5ahK}uv z?CkE6vn&5llx`%%rplg#(V|j~kqE@JD}v*ZsaQehqbaT@*)HZ3j6ku$OQ9Zww?sbM zLD(6%V4-ZH8@QyM3ry4j;2- zy(fe5_pyX@wi&Y|(@aw|+!mS}lcNANL=&NyOvHvtlF~jH$l7qK8;mQ^DKIYlq+Z_3 zw@cn;4daw`(;5607{v3PFK5)EhEvuwjcru`)|1huxRrd7(^*xE8jr>wA!=EA8C%A# z6WErmw&NGqu(?bOqH7zHqtue+Or5L^HNGd{%2zcTo7J$VhpV8Cf$rC|0}rfQnAdi8 zy4|IKs-j|Yk|kkph=gY1XhwU)Y8}%+>+XYq4GZ7Mw_(I;7G|=85_hDYXB37D`>+ZZ zZi2uthz>5kX4={RA*a6>^tWBSqA!vU^nO^1U|oho3t}d*g%YQtREuR;BV@^e3F5G{ zChPqm*P(;`>jM_uKC@H5eiLF+hUy@#Q>Y)4ks-ku@ctger!OcdC}2cz=J$HVt*-+tz?F>v$pCu)FiTtr-G-L?Q=b7o!7;top*Z(y*LH{08y!A9HQL;8u~i|vKeu$`&f)#o}`w&Z22P}YrL7?IrtN>7Gdy8yeRK?1oy)fAUr)Hcvj}|8dOdrmeI9rx@YVYg;X4$V8M*0q zq4O+@`Lc0>`i{F?Hu_staqh@2B6+{(5S?FhBm2lVq5y;Be0I zLK82)d-yX9!Pn&1&n8#Vqe~~KEI7+Vh-4TlqAb!n0yfRTMn%Me4&9250GrU7k$F!? z9UNqHC5y+Wp;PX>G}))8HxH2U5_iw-f=!FT+i$88h2su z6%WCN5H(PhYV7&T+n0ckp{Nv_h(EG1Ts?yEBv^5wX^sk|I(aK5%~ou-l7cvy!KUA^t!y{0iK&M`tfG z4gO`CJFRLpK_%S?jwGWA9vuQ9tFA{4DF}U#?OWRp$xNnZ3kHYVm0CFv^)8=PyP2N5 zC4X&9leNI`59oFa(6C~`WHlsd8pcA$Y6~j8DbK_?@KA^aV3%Rd8abLgJDG76IC)<5IOw|dTIS@ zoZ?lxx=@CYuE%m~R@mNhET{p6bjWqTdm!cYH_ZQWnv zf;v`#Peuj`Xcj>q3Vr0t1vSVMT5y}Ik4}fW%zO88^irs9mI#f@8$m8XLuV^vKorzI zp*BtPVAafJ(fL;~i=KFwWwP8XL^4>iqntaaC!U$NSJ@c57YGN(Q~X{5y?}sAO&qA# znA9*H4ATgS1g!~<1bt$CZ+#yd*9+fD!uMDyZ$;Stxb;r!&tSreq5k7LDgr#@Tal}* z_b;j&l=N^+^z2|ihYOyZ zM2U1g-Aeoc6ARV=6TndZ>^0|EsbB_;Ch7v3)hqoUYyJ&7b%9laNkOx(;>TOopCO|s zmoi(HiQeiOgpp{zN7ser6k(fUktX_jk+EAz@T&J}Ko6x<8VUdrVHJgM-eQ z_YcA#_C3XqCJ@9&stfO;5di{DNI_b?EJIa<0K%>}LthV0rFtc}^y3 z{~2%pV(a?nvYL7sNp1(cpfxnQ@DXFJR~P4D+qYd zAanj-+`-13rosZk9eN6Jge~Zu=XIMbJmGOub@mW}0Sh+h@Tr6*9%kBTu8t=X#!xdb zjY#D0f(zN!!(kcO;zy0E=O(4?+9&pnJlCcSQ_#3_aIp{(y1U`51GL-J&Kgxb;|0By zt+mC~IJH$AmDq$%YRQ=d95yyviSc^~IQC?R_Yky0eoUJ#07>(F$&I(uN2#u~OO;l= zT~#WYb^al zGc`>NgCB$vi4!G7((Y{teXybNpq5)3#U9m(?2_^zwhgbWH44O`TYRy(N@)zijVciX z?}a821J4>zC%D-enlA{ZOmpj9RrOGX(~&98!{yW*@AYMBAu}NQS>FPQ2&ZjDRFjSu zg{C5f0J9WH)13hNT7@Mh8@nX*sMVJGq}85!Tbna^zts&3NjLC^D}}Qt@6VLNq~c46 zZpFsoC=_L8@C%V4_%EI6m5Sm!CH*DekR|jHKgzlQ3^twfc=~cWm!xf}97i_MwF|L< zGS+J&8k8bAjKXy>4Coaz za*+lArbk|%J)?LIXIMLLp`v)lu&SsDt>jgnqRpo!hY4|iV{97Zc#7FjGdf4bfAnJL zPmd>fh47T~!k709;yyikysnxU0N!r@FggHFBRdOw`-eLRBXN1a00&(5=2)YXh)GG={0dT**!_@P3vwgU6)@2xMdG4$^;08@@B!uI1=dd=?3p zn0@FP66nHeLe-Q+bKA^O1M$bPXj@5^qRc+aaQsmD|CA)<7gpd$Xf`s>M`zAm+tKCt zCK6mR#!!8vHausR-9{3i^=Us#$lPyws%ql(9C%+7>Uq4~5vpTk$`yRQdZ;+?cyRpc z_SLuTtI}&wYH*%V$9;0qbaNf4AzHXL8b8^58_sl$(|WV_+nT}I`W}-Ks?yoj+$+4q z!8FS69=HI}Au0gQ8cH@=kR&)29S_0$3R%2<=K{SXRPHA6m<1dj6Ke?`bb5oj#4pQf zD-z?RzbGQJB`Up?!9&=-jXY>QQVsfu=$hp1LCy(C1RM7G(Q3*|^O6u_Lj5~%a}&Qg zUhJk_s%R!2B3~@`aOQcc>bM29#beq~f1{_n4R}wKg^GLlC?AS(T=DIsIa13cui*`y zT@*yqc~u{csLjo#Y4yKkVNAd+J>U<4KZi@t9;cSbUeORN?g>Iq8+LUA569~rpX)Z> zl=Hg2zP@hwW#^CouqnUN(9r=Gp*m}(qOAC&fTJB~M-x^(6QvYyLB(vYBVkM(e=F2Z z0Dz;bH|nBwZMBAeM)<$WE#7u>iP=Z1!hJBGl;*$OpoFV`CW5FYWrp(K`JKgTqE$de zv^z`r2{W9Hc3%;M2_pS9Uf~X{Ei^`cbPQtA9?M3WkV`PgI%FnXh%K^ zwka$zeGCAB9|$pU^l#LKaWKBe!FY7TG6goQA^|!6H1*N`gdG-==b2eii2}_~qHyER zK1V^mC;u$-A8-g-5w>_{>r$lyI!nMWl8~L;lF2_GV*aUw0lqY&_y(1N+Vo>C=4nyG zyAjX$JfN-EG1>*N0)i4h5Udxf3mg zRm6Y&uUo$(kyrDrRS{SEQ|AT4^XP;f1rsp;yG!7pj$`A?C9EJcuT-B#luM-lqYK)% z@(=L)dkFTzW--b{@Q&KG5R~>V5G_Q-^d~Qg_|X)ABnmd?C7H1l?^XP3dU>F>r>>-0 zxS_le^kld+k71Zix}&4%TNo&iqS1u8*6P6|C&eQk2%yQlNEZ_M(J@~2zl#IqNUwCjsG##n z8Jh^7m;m8sl3V!?Kp8X)OIyNt5X_?C&o7D+onA$geK9zNLof4g?bjHCD2kFxf)M2Uvg>r~h3wAHkR? z-$An^31gnJQ`Q9J!l;*XB^CG-rXz<|X4EGP&4tIpn`J12ic z(dy4-Gu$ahAZxqYtT2Niz#|O(zW1>Egvy`m>+OC2dYT3Qbm9{#XcRF$nkR0xJ~N1W za?mCebKt7qpFv4a((z6*Li=v^^1!qrm7jK2M?Mt#7(oR^nO*VWZ=ijTC{*@|ipD`H zq1Jm+S_Ao=BKv)D@(nkWWZ&e!yaeH9;r{nk$BiR895@>YaIq)xeq{h=?FrkEeebpY zH2Bunl1C;(K_Pk)^0BOt*Pdc21o=ugNjCiHXT*SAdhwr{ zpRM&pFd#%tRQ`#OF^UK1m-UyWC=U^{iA-}upc<0<)*1|rQ*s1E7}yX}L=@HMV@WkY zJ@i^6<0S7>dtf2Nrl(*_NX@BG^HdUsjH>L|Tcn8{<8)*vE0Z{7Xg{hr@uVRTsT-u` zSC_ZxKQ+gbFV=#?IgJ);I!6~&NyN%vGw|^J@a@bXymk)Z{?!Nc(#FzNX}0mcG!(H@ zvC!hq#Mk<6{RtMAf;ve2SS6uYJTbT&@u}aGs+m?OT)RI|mB3QIxj(qSrg3|p8D}VI z)4#$KE|9d^Gf|%=Cn}yU>Mqg1;2W+xhdUO!*3Upy{i%p8vC68>e0D84E#!f^l-o!Q zLUA=@S!V{Dcz`&1tQXA_I7oq}=m@zStxLx+-gtc(KBvZ1piLw{6uII5KGx z))zP~8o0>63vUXDQ<+QG6g;DvT`_-SXjj5J(5P~`nUn|uW%10WG+3TuKH}9OZw#Hc z8fiBEEs6-1MwJa&7ooQ^3Z4UjXdGKH)S!XXYFt|}+U;%CW;|c-PIevd<9aqa29^f~ zc7Bd+-Ax$fK3$#zUJt8dThAj(LcakoqIlAN)UdR$s)5JnB~(Qeu6v@qHSgHIB+9tn z?f~|(T^WE)1j~qKyOZtyB!h3QeIRP2L(0SR%r6M;rRMpp1M@`SEp}q2IrQ zYWehqdR)Ugo{e(XdiAkd-!2xPlLmM$&WUmbzd!)hUR@|R*E?xSMCZ>QjXw8BZzFkv zKJO1v$19FxMD@aS8gYBEB1XUi6c&Z_1hm1%H1SMQ*3}W_Dl+oGf-&1*w38x7QH>;m zr8rw6zIiAKm6&2^HWClMGpqT3k^jMHpT+(Mw2A$T+Lq)0uh=n;rz3KjbDFdKr|g=J z4#h|PzYq^}A#DyBoCfG*+{)e7B+E>gBxY;Gw+&5iAbwx1d^5WKz}oUT7~XVP3yGfN z65lBt{tj>OvQzS=?(69>xh9!$gc}zG3soNakalHv+DasOSaE>c-j~!JDCeyFURhAZ z#tkSCuKc7DDNwK|EzUU*y}R?qql9LBDKy-Z_TB)aJOQcdX$s8W6neo?2FGH?GmH4A zfGP?T1Q`T`DN$Q|I)9OJN_dUT>e4!#lCm)cGuBd+KMgU1=L!C-NW|iIn4A#Qk1X1| z$B4$D1D5a6VHxp`L^U$5%SjkTctI*EtV48Q)N>fGVroYQV3LYKz_O_{Rfy8KfJrvoqz!=jAP& zDuOq|y!Z5~Z)`=!O&w`!CSC`6G`PPK z8jfrHd1LJ@eDDz+J)4CDgc19+paVJtA zljHX@YEFTl?u_o8u>@tLhiO?w9bbv~ACEpN&*i1d7T&GlsK3F`3pI1^XQMAFd@iF( zZPoiVs5f}t1cZXT(d&0JXzyO0zFX7f-b^{t$C7?r?ocfMB-x9#1VY&P`PaCE5J$jg z0H4cLGIry|+D;UQ83gjW;E=${^T);}R#Cz8RA(O?*ad1pyy)Nb?^PClRwz(}3R$I) zl(#>5GK0f>LNQ||UyA9Q0o&RDQsOJ8P1-OQTkToWFG#al@IIUj8(X1$Z14K!YV<^h zCTeVNyLbB;9+O=g9|_srjF}ynflV(UMJdF6rGS++GyZLiM#Ue?3L_S@j+YM8z@m%i zORN?jej}wAJ{faA+iTqaV-)Y-k>#(qWS+nFOX*)Z${1iU?<9wfU;dbL!F&lqgU+e` z9j~yIOmX(Af#4L?8$6Z3f`@T3-0MD?FgsC+qd_zk5J1d)t!a`ebomtbKW6$n3nPCl zDpwN!fJZSou4y8R=`Ibj{=$g$feKl1Zu!5UGak+~5^!*=Caj=9SO`vT5IW-k=lSRR z8rme`Y*ZlB2oewcg=85*bu4~2zhVn^5j`?LK%JU1{_Qz;YrP<#SMQs@%)wA*N4K}9 z=YG(DfuW6xzT>>96AfQtqCRH9R}xyVf%(C1~)`v z)oXZqpJBI>Q>lArjNF-~tG-^#XhZ#vng%%$S4oC8abJCTN++Tgk;wTGyM+=A$YC(y$_gXQ zv?r_&;Z*1vaLPQ1KNLnS#@9{L+UUr~_SUcyPn-`CWSrWL)IWkXLiOXNi^5m8hqq#A zkiY|d*opQMTEZF(&d~lg4Rj@LbZv!a0VxKDP07mo$R&CU3)IdKRc+&y@x4_X6{3Nw zHpA*B5?XYm;2>^HwPi`8VqLb@%?N?=XFC(Lkv*Dj&5}>UHhtKXg?K>?r4VX8w3*mC3gTko zDCMlg1aUIN@I^zZ&l=G<-u}k2qm@hOn{U#t;=NY$X5#TyaQUNn3?}TfG8q)nl2Slo zy6g!`7(NG4TNYl7*&(H*8Jap~(Itx}T4aLD8KvaTTzkYUUWWJ8?%3E?h<6l!O*zEk z*~KE!`@UikRj>lx$pYJbp5No%`k2SYEmNM*8sMsw+d9w&LmNflz!#>QjPAHvR+<+Z z-+FoRbh$M!wJvr4i_ox#+aqkXV*?Ou5BU0g4yi%;iWT1TFr-}}iH*FEQ^D9#;tCA)oh=?w~GHvkohv1ae-1-ygJw~X|c zc6u4`ePBsPpCV>kiZ+-09c|j8)zP(bx?o@D?%ljvwQd-Nzko!hi3}pdfd8P#*!~MN zV!-ekT8XxT$>_5r2O*%LXd6kkf%qu}Q+o`Tr1Y%8HS&GR8s#jL(b@PSlBEA4O(g#* zf6*N97tZaPkB-GB{fqDZU%u`CU^yPrcgAaP`&E-C^WqU8{xU2>AL1dYdQD>`QN84l5ugbc9`jO4HK@kSbugQl(5F9dw zeDUMk-lz%7xYZtiT7AYJqbBR)f5ETVB875J;2HZ4kIwi4!eU3<7!l_b7yg;nN~fx6(&#P17> zK(N&Z(3AX*9voIMuu$tN7etEOKKcpr@d*JBQq7nUG?_wo;YI^HHG_Bkl8N#a6f!61 zIJQ9g&Q4A76p9l_?X~_zQ`}-DYJj%@@1KWSRv0n_)$0|sIQdbCyb}f)4uyY|gLDJN zR=rj#H!&v})=7dUgMHKIf$(0jzPZ);xwzO1 zstBo|LtOo`S}79(&svNM+;F+dfE6f+V}>d1CT?pwI~6CMkCgUJ00v+S1UZ6S`=1gxll$ij zl3cK~(s6L_`}@gF!FpYBj{EM~Z>Ngc-xiLZjg5QlrowMTmUi5H^n z)<%Qp5sH`fl08MW>OpKQh@8QqUK-`ZkBFxopz{8rnu!km@vl!);biV%UUSN*RAuT@ zWI*071>iA2;R7{+7tL&ZVy5?)4PRmE&?99m>H*?_p#Gr}!@IgqKScDx3oh#=jRy~d z90{MwQZF8k{%Ylho>w9a5qUB8J5imo(}M*@EYJdp9!WbB^~tA%k_awZG)V34S23%J z4D;XcFeS~Cby{P+3y+1wA;Uo%H(dD*6slA4GcCcTLmY#2(S8-M9+n=9p4<#IU^}mo zaTBHdHyBofB!3JYCj@DKV{Y0}^?k0JzGj?eH0<_rck_MP-rj#)K>fTZq!@2u#$o8dRNCgAAWFzvJ-6kj2Wp9e|;wwCFY?N4`NPtflFBN9mVPvU`S zR|LUu!LqCQF(K>rR1_+g(U$7+us1FmK~0!l$;*pU^lIV|0Tb|SE?gv z7Yg%laFU_a-~Q<#HM>!U5SXk3c-XXA>oRaNeAy_#7c^jF= z00)i)!NQg%G6?#}Sr0^$wV?YhYF#w=qA~FhI7|1!ZH_jQv8O=Ez-NB&b0jQ)`yd^{ z0C~7^k93X_fMtnJywB^;kkc`j%fnCpIrP4^eD5f*C^aieMx+l{ACj6;LnWSo%9%#h zl?SH_!(cK4DKdd%VfV(TlQ>gut!ara`SP$&h8ySuvXw|im7%&0^RZ^Ui znfvS$#f9woh369VqAK1+oF+Sk9JE){kp(8P!2~1Ti7t> zQA;f=c*s{KYd}cqk7y-?G*qT%*8o#PDy1SUOH!HrJJ%$w?0b1IuNY}_@g78BgJj-& zdzQM$;x1$Y7F8*f(0856MIJKQC1p{NQkg|n{QY$^z3=vk8guq5wKyruH_CND-F0K$ z@w*zIcX@`)KRfgC6AEp|Dpg@t{p9S{=niyE1XGVIV$^#_pfc<`CZ>j{cYuhaV1VSk z@x2`Py=$llzJwE&VPOOAIi-q8L@&!c8cn>7xDYe-APPFoHya5dX3p~YU^C2S3gl7p zA1LUb6S;($2Ou8lY56-<`Gs?mL7c+1ZEWDNhZ9rpvPrXnRHReL5KIOJ>~NuG@Pm@T zLkWUior=6vZci77hTD<$qs7%fe{r#OzVw?tTL2fE?qA*Oz2aMH2N6WS`<~Lp782ey zyEmhoif?nc%+ol{0h7T@(7pCr)`U1C8%5R20=@lefyZ+br5<#6ynAvuN}$ugr%!Ze zdNrx~;ri+pi}^Ch*&uc#(bFGnSS^uZggac9Pxo%MgG`V8cpkdNu7aT+Y3_~d^*k!b zwO~|nS)rfJs6Ql%@A0k&@CDbq6ivN8HReY2AJ(@D|I7(=u5B&8VcMy%TVK7oUvHlG z>~jv;!vQE)hoFaq4_BMhC|d3JTlf8|NOxDLa)ivwu}c+@_s7>K_szFHH24+w7XWs) zGI64iYmxES@u_-Y_7hh7 zU}pGP<&i?c4ap2;dr~7fUOO^w8V&U)#xi_(egI1P{NI7&jUy|-pq@>vVK6oP*^~PD z`GLXEkHp?wOheipt%yckM~2O(2mdRSFsK@q_h@}?#B*fXv>2L9e0pHhvk=kv+L39~ zWN0`sg@Fxt&|=+}4w_;^Lyq<{@mq$wUTw^ga$4PV9W9WqEQpTwf-6HuS6gc-ZAts} z_2KF1-TXW>ErAG1?1MaUuYq7d-q&Dd}FBfuj>D zOgevHJ~z!%83IY9kc*r9L8m~}=<=lMFRL1JJ?B+yabsF?PnxuTe!3>h=u+w7$iW=bk^bNN# z9Nq&V-$*6yG|Z?H9v2&E5t0BnD!Ua@ifvGxvcmV&p|FoSRS2xmT>*=jR^BEy!+R;; z(3dYTb(Pf8zS-eav^6(2cujIOHdEPn5%Tof&3%q zFp*GQ6zMM^EK~#@GeahdJz3V9hAh-He@P|%t-AQW2w!w{Ysc#vMhXM`H3-xfRgqBP z2!zq^b1T{jd^hAtenOS1!KC==1Fc1p>H1w3?#G_kS7GD=1UP=@mGhlcugl@Hz2>u& z@ka{HmR5$3*i#cSppD8M)I0}E@rG3;Eqng=Co+84Jrs?@kucJTC?E3mW@>?+;ir@h zM0ZzifxA?mT%sO^!+jK`V8p?6DewR@&u^WcH zuT@Q{Ha4?CzMflU3d9)^ORZ0-+$Z-U3;5mpeF+2|d)7rLBv_YMdR*_6oqVu9<8Jz& zn->KK7^Hw$x{L*On4vd2eGqym$&pEOBh#WOQNpBOK~qI;J?H1YDnRRvIHMvi;+2&5 zyNT#^BGAM-5W$dzg34#_l;OnD0u2q4Db=10$bS(t!YcY##dF>~ zKQUgiD&vu4U$1)zd}GO%Qi*4A;{=jvYHQ@=YQ0~*JU_iF&p5e*;A7?JilWOkEsZA9 z$q;+5L`l5;Nv)=amoEf*F^2*-azDR=n~3`BgPLvG!*v6le&m>Rr@yrR^RTP5lJJKt zHygH^A@h&$i_U1ail=a=_(3myTdA_jVPwX-BSl=?_ z1ivtFO3)9@`ADsLbg$)#6~j{^l-U;MH)u#RO(cSto>f%1_E0?Jr$qDy`!FR~D|g<- z90lf3XoL{q%tXUe3t`U1{U)&?u?9%A4VZ>bUxdLqC<#asG!&z?Kb2-SBy$x;HbS~! zP=b--2vLSX$RnzL!jmsm=bOS;*d7keiNjpIjRRSVxz#gU$DGiLiCojxm6p|Si+dP; zK1Sp8XO{GWhPqKw77$uj=lm{2IyrW%Pg~4Sms=Ovy@7@$VaKrgS*gE5}3$>jMYG%_Uj|V?``L zAY?LFKwNScW;L6NR#ssg&55LZEr35%Z({;eL{;-3R10f|oFj7L7YuE3QDvJ7ew#ej zyBJcJ?nukSLUSiBj9#9$&~!_lHsR4aH7??5@kJuxc4L24C@Bq!`?@uvyqsN)_trS5 zGHQ#Nn${j(PRdpY@~5SQ9K7RE&*au`h#jpRW>^ zl`n@G$*~F&>CO+MgX}t&P#Z!uPLhtdiUZrj*YsHo=cp0LpDB%NvFY@Ke?x< zTq4~>6jZGl>NXe1E$&REJvcpXE`ie0oB6sW&&2>QP4)U}9y$)!Yd66iT|U%H&~~W+ zOyDvvgwmbeuWH*eO7t>s^OG+owwfI}J^l=to)ZL|K9UHMS5ynU!02?M3BnizA__1< ztPzGF^+)pVEd&4$mdalcYZdZ>ECC-zDL2qE{h&q?O zZ~kn#Ualrwxkja(kbcDfSfbT-iNS&Jr+khnZHB>hhso>2>E7;f^%AM^(CPjzkE@mA z@pOCXz5;Uk=+V86lLzwg&*91YQ{}ywbHS&>+-tk3X*F8F%ez~bJ8Exy{NZdHMnV{E zplOj_b9ujag{n82O`_Wd`gMN~2i{7ipxsK+2xbC#i9N4LgBuFd$Ilpzj0rjE`|MRw z_xxw@>dsDh3;S<5us3G^?Ph(R739Z;pkYGM8#4Nj@Q=3`yBx_3dUE~#?bZDsH_vM5 z-@!}Y=gN4TK@zk~A4W~+NRu99x+CA_#mfpEAAJR^U%$7Z2`~b>a|RvWEuWS$79%3O zdPPq?liy*%l)w1}>x=6zdi{;}q5Y-I#nyh%IN)7=))1l}LMKCVK~hJX&d|f#NHL~g z(do#gr8|%Hfay_y-#IfJvlL5-Us(Np%~+`FZ+{`c+XB|^Ovz)l+jlq}5SU2#*{C%> zGuMNfdJw_T&A@_)s~UMTWD+=sXF&W4`XgW~WTZNk22UQAHL#{8BAoN?SDDK@2n5lm#JYh51ew9R{DBx~OrD#B zrFzkj?nLR|RkUg3W>k!8S%3oqEPh1H%fA@&RxWzXKCLC0K&X&(KlMfem?M$YNtuC8 z;FX7FW?)$2kO`@JG}_Z*_0)y$=@@p*k(cSYj3wX(j8rW21%k{Fh620+C6rqx25Bk% zzi9G<NYv!}c_+q?5%1vS){Q<|)DjUU1I`JcJH(Kn2V8J;utP8` z>3eeXd_6$#=NggRCXb#e?sN48jwv098mqlp+xn2VmvWTO(+Kz={q=N9-0sfz-j|3- z9Op3GjP@Q=bjCpYYA&Z` zH$RM-2zv|IQ8YB8io=(x)X|#gq0j-V0gb9M1EBu%nE0^cDq_W{F#Y|h6lGi(LspDAKvRtD7 zbGJj1fAOI$xS0ZpqkE^Mg?&-NakC?TD##bA@5Yc;Uw6mhh-NR|@z=+VGXiw1n?2R# z2jk8WaTN5fpfuv4(BKWvacdG`-{{xEpoo({T!d_NHtnAG_u+3|o#+N}ee1{i?;}Pg zW~P^m@2B6|;UE~Fjucu6W< zFd=>h8oom`geI)k1MlR5IWeqR1k_0c1g^t@**7&sD;G9X(J!QpE5uSRn6VJ{TGjq* z7+BDg8zczHvDukWszR{8HTHc8g1U~f-{(6(#l=+Vc6}@bAc)r1yC;V07#Jp zb}W(pyuurU0osjUUm8dh=wW32u6;_Ilr+VLH#))`?2;T*glQcQLRWE}F|~gd<@~M& zaI`@dClcEFLS^slG&?J0aq@Jsh2u3Q2JouNcyf4H(M)G2#5;6p&AIhBKw6lP$ zzb7%kkk#f!pQ|~O_C_Xm5nFtuq?1L`11aIx&4j45NLL_vSoy}oVzSmN&<=UCiiX&lh9N-? zcDKg%tBA(Dj>Vuba)hcu8*uvAn@Ko%;ezH1G;0E4QK5Ad^jwc>L1797HXKK3Oo{iU z`pl9%`8@;V%6j8xbAhakVeX_Aqw zfJR4vMCUO`j|CbV2ER4ll|pBbJB(?Qgoo?la`v#VwD*^|d z$saNsp_;n7Rxa5Uo(ap;L^MA1vqVRwAq(K`Q7MF%R1{+1;ge|SQ{{(jLiN?x>tWF2 zU(-Rg*dL9`@8YuAoB^*;YcMS1Lza;^|D5A_eUSjt<(=s_jY5@6JE5*NEc<ZS3fUY5YUZ0u^?!U=-3h;}xxe+u z(tQiMzuRde91JnEJp$eQS>Nkj*1CeR&YY&rCFc5?JE(Vc!ld@=#DUW*>-H8J!o#(+ z$-@z}Ai!PuR%0C=6LLM3)ejRX8k`jknFR9RaNK_YZ7;}MIKzJjoc|wuv!-233^(`- zu>Bub>PwDbmU3=w%d7>_+7jB zMWY4#O^<^`qJsGv$F!-41013erlKBgSwTm2F=iwNu`rehp-_?nzdblA8L;M0 z0_&N>nZ(g?-O9z=I=!r{KdB0!4yo?WT)JZwQDA&PH5cXAAVvbx z`A=d-(1*?<;wk5cel`ip4wP8sfHwYjmh{znkgVMN7DIj}n7>Ka^ghyatI7D);bKVY zzS1heIe*Ar%4IDeqFeb}&KXe-8rGt1-1eI}YIxA>7OQHa!|mnUr)AXw!HUKRGn-RI z&?a<{SvB6sPjfBgSRMZ{&=!2|WQ zRF;2Xbz&Qp7i@H&YIXQ7OFoQM*~Aae0^OA~i7CxBA>EH-vrVQiF)=gQmhaUpiKm@2(^htf7nJVa*sGa zU}85ky5la>f?7`wP8GDy(Itd?eu3)EKguLVv47C>6SM?;NkDN%(Sb?Dv5+>2R#yo< zXppmUTdR+^y?fQ8JvbW~L)Yg7G{dSd%%-EO!x0~|Xgq2~n3%c{m0l^*F96N1JQ3)u zAigYXu9Fc$I>D61SfKX_iQ~oc-1yCIGXt}T!ae+HvWIHFW8%z2f?k?E7*-APrtQr; zO$8;9Q0Zi;341@21)yzJ6zMnm3q2XUo$13qFejkraZOe%tMWBB%s$vTd~&(EyLR#P zaIFy^V>UJ!9;8ZPG@CG6jrgj_z4Ioz(AqDfJ?Zqwzx>;6O}JDaX1lLuY~kvZR9N)| zRuGTaFvIVfHc)^@UkGEu#vDXl4f5-PtqTlFwQ*jx~8Iz4L(HsX(LLngndQ$71cZm=}>ye&cJ)kFWkE0r5V;{d5 zBjATCRoDvsD4u6@`BEuG%?&h4-pgG zbFOA3A9ufC5TWna+XZZBjx*q|aoovZBL0V`#=^l!L{9{~x+uZy5dsO4k%9i@P0I(1 zQm%92*c~U{ywFlr{PB{gzxEdvUF1fj9a0n3olO+bgUZGQi9JYu*4rBKpos>ZkjPqX zwO6l%pyE4OEoxrv#T?SW$KzB0t4&#)sD=-WO7+48)yh~X?BLkbiBU=Vk`JF z?c(xYbx+M4cwx5JI@sS2cTkI|#ZY(U<@npG*vlE2HOJS=?sDFxJ)m!<6QAVoyBUXf z103tbnTqbAQdI2>o|CzKEcu?i-G`@zW>cb_uyeyX5KbN!q_Gbxo_yt4s15!s#4Rbl zWrlEnIFb74Ub1~2%Gp-w#NA3$H2Gec&%Q~`h;n2P_N;3Cb&~X{n$7&zCC&7UeE;z( z>-iq9vzhWd&``5UfiTt)jZ}BgfY;&{cFOXm69ka6@8Q}ZL7~Y(Ld`;X;zjR|5AD1j zG-pwH1HZGI1TB{+GcBNB>W1b*s6gi2OuWOo_8_w%5_di|d}C?SRPU^g4*4RHZtk|A z8|`xWeLbAnGT$gwRVL8fMKd^lHVfJU6r%W253rW#Lig(Np(<^S%jCX4+yfJ8ZlVNa zz4p`Qv$joI*r#27Su!pir;IOof^n00T@g-%9XOZG;3R1bmQJIL4P)$PUy`LJsLrMA z1POtmK1&|+lic++<0@%uD&?{x8R4e9jttIPD- z72RLsKz008@Hi$mXeTp0m23PTb2MYD8!l3$$+P_kGi{C$nt5O$uMbKR`GIr)8$7Cl z@NYWcpU2L%bV6jf4(HNkopOJ}cFf7Qf&-Z*GaH7!BdMWA=YL7Ata8jPO^FFiYr5kF zQ`*8n{1~OAw6SF!xCnUr8V2gGTnB2u={{}7>~ddS3H>5(%my(fiq)!x90x2I80cB% zcsvg~;Ef4%Yopbp!X))VNtJ0|gAduj*+)L8X+!S6Jq-qSMMj}$$eKRW18G6Db~qEh zI44%~#nx2~ONxxL=<-;NnaiV)IPONlGk!(-sard8See;%y%}`->n^+O0%)EJyGu-| z#2>$(v-Hw2+JOb--LsdEs6Sg=i0)9p`YV?seVjAqPdT}-LzHvPOWSue>>Qt>!NBAg zF?TC0uMgakD6fl9Yv#4@Y6T)~&szU>0$AldG68-aMJ5-E>Do_TsP7grF*PJZZKWj~ z3Bw51W0;C^y^{#m_GK}|2)3~L770eym&l;MjpS>qUEPaNzQdH>M=3{8K%g5AN?FbJ3SvGG{G!- z$MTIv$XFZYbm_FTW-z?jdi-&L+t!jV?v-8nOIlyCqat)|xnVuCTXX6b8Mrq;s;n-Z zBVtZX*!QvWEtkyr<|67`pJm&Gy7)o&vR=*fy&s02huI2j5XYQUunj^QfF6! z2>T+eN6btPm)|Z2PBS)soFCXAeB|X)E3BQR2JGYM z^eD)V@pZm=HHU-qk(BD&7r|qtF2h@XH||RD7J`Bc4YJXuhz*x1Q!bR+29<;K-A0S4 zFLZKpb19nG)zO4TOD&s@N+7M}KXn$pQ`QY>CE4|G-sJn=Xvkc^>CTQu@$NLOZWVnN zf9J%LmJjT&WUN1Cj3T)9yngEM$QHE&+LCVsFh>I1?WhDSi46o zY5d)oH+_xW-jkiqTG%_C%3(!=voC6b=|~G7Ea=K(a)H-@?ybXcuV9zjx+I>meY-lg z^;Wle`Dgrfm_y%v0(VFxF7SATLJRT3^As!m%eohp8e8G(eSZVNw_53%No&ExMg%Xsalv5dTp4=-wC>T2)h0u?7r=PLIa=~?O3Xc@by!vOGW!9;%}b(ZB|h85wzg~bvsT%9euiz5 z$%R0TwMQbE`@2|>iR%Tb!k7MR_nqF4UzJ6(3Gzf4ke)rYcR(CtV_pPNs#T{sx~@zgmF3{AuK{dirmYbp6>43(EM?G z0U50%k)Bq`#VcYPCKcg1k?$5Bmn!zTD24hJ(k!#_u8 z5FG!&LBJcI`T@pM#dh!SPVeU8lJ*X2Gh=g_88fUMn^42M6*m#JYVpo^{j(#-;v=OH zUoNzmx3EJOukE+alN1*xm6;rKu)`CTNd2ZcdfXwM#fNL8;>&mUfD;e9|6>igKRV9D%QLHt+7 zyY#ygM<`vC*>jL!?%nU4LPrw~0A%P^P%6=;yUL(AFK|>163h7un&}Q&jy(l|0f;%+ z5g~`R;t*LlfMt(l2$#lT4=v|H8Lm)DAp~|JC^E?P@^oW%_4=xvr=jc5`uh0U?CQf= zM#k;Q6(8Tj#s2ZZcyGpA-Zo@$)YZk+i`5&ullYs?+110bI#qHVh*1-po3 z)UcPN%w9(etzJ7QSBJ-o<0t(DI-tg7JCcX8+szcFyW1lyy}IkdODhEWaGr=6h0fzl zC0zz^+($#~cR4IkN(_q8PdpQP)XOKNwx8{{khHum%T_`};qN5>rjBPk;OU$>&Wm5i z^iz73fP7@AWHR{*mgPUk;6$v;l|^=#%goJrzJ=YN{2L5FG%pMp+_!co;J0vF5F*Jw zh%GBg{@?zUALKxKtr;Brt^c7`je6pD|Gi~V!s+(G?e#fGcZ@RnfDsJ{wD)*51VyC{ z4>Fw%50CtvR9Dz_&M-%5Tz4nK84HM~sS5M&63miruKy(HF3l!Xq`%GJTF2Vuic|x+ z+}Bb~*pwO{xhP!}p1)6ZYq-BYUwr`gSX{lF{K|z-=;Q5j^f2i^e+6=9=hE_hTs`>{ z`wgsgYwxR%$IabIm(Zgo`~86{D&PIx!+e3RHrt1~ZODOIJcZcMm15gv5ENn-WvZ`NZ&1tJ7xZX}&s0=R zHg5oSLyA8c?|b6}Um2aFm8^+8TDT2~96E#s4!*XAMs6K#5U8bP(8uphO5$qIG@9X` zcZLdRE)pg*Alx;$AIsE?h)t-k=oe1$z!YirAQ5;ab(#G@O(#;mrvaoO5Zg~h!IDmp20*y1jtGz z;2K0}P>p{gIB5~{jZIPI6cly-(L>*IYrp%yXpZ6asXq(6r{m__nrfQz)c)3ix6RGlCmiD7$Nk2SDA(y; zHpKmz2_&wzuw?5R;beZqt-=-ha9&XEl1-X71+)8)-+;y@`(zzRXy+F<5CFki*BY}tOPl!FgI3PSt{7m-~s ze?WD@Xx?1#Xx`$xk^qBH@<>?4_*xrnL%S_PFjX@E0ze5o(wVjY*ee$W`O^=7t7*#Y zVg$|+7cmo|$9_%ia&gYci0kePq|E0}dTSr|J)J>4wHW#2Rf0xsPu^}WtFZBDrHsl# z_zPDl820sNYv+j10l#)L`-J38xKuUm+KpcUXZ-;6jp$QBX~k0Xh=o8;SZHh-RS*{T z%bYVKDK!e3r}n6Lx5CFxB;HqcKd*6ky18~Zd~k9T@@8MTcRGQscQ4$LM@w%+V$p8v zQD{-c1uk~F*Fm91)xRk;ScHr%41=yg0-zi50rjFHUwI7vBZU5*?L(lA{TL#Dr~l21 z?s{*9YXfc~6m(Zg(BB3|6aqV64g2<=m`EU?VwE&Oq1g1(o0aOG{?RkU{urhZ*b9XW zzzHtE!eZ`2eyx0^2qiRFg10hE{k5V&-xR?1o?4N_sh#CZ*H+Aw=Yan#=KO-`g zYkHFj8Z}d0X~--~g3h9u!G6)d%P+7^1=L5<|Nb3+G!a>iw)u}?m}m3rRKcS!{e|O$ z`>BzvR$3gPJ647w1p3df=RsJxXr(91E5FO<{XIP*H9Ef{L!IyOmhe!fmk+F0VZb8R zZUGaVIpLiuI3^?qKx^u>0qEw7+O~7zxWTJu4+tm%8ihR9;a$wNDW%1Q7S;0sF3KF2 zU@D)7=g6!tr|I;f{=f-k7GumTh}k>j$zV!dG99%r88QbW=bYS98LqFVq^MRbJ1>e> zj5`L7H@s%ns#$j#4z~0p=t}k`weqq-7&Wg8vSy~s&g~l<6p)%3W~Ku1HQw26)f%rY z_b^hoW865TlDY34rSQGI`_;4cjouUB9sWfkRzw8nF?DLTtS8kiaHxv3ow#^vMp+MJ zr!kz(*h*#|L`{}8@<-#Utdd;L+7J#T-qi?WZ=IqMMU9#U6Nc8F`lXUZw){ zpmN&sk@4KVF*o(7;e^;AQyR-leA$D zq{${Dr|KCi%E^)lF%^h7KEpiAtcb^?xfo0+ciNBy*jj$AzgUL}V3shFHv=^Q7owj< zy8CMbHv1-ly*T)W$|Q6DZIO`qOOgaPr}C}3>^#Yt^H*< z_&Rbpx7?`tRb&|3p2Ll=p0jFcFq-_f5c%P4yxMLoON^k&r_x>WKTg?~O9in8@}ANC;cklh!5rc{iH*LNgS49 z`)(nAo`q_R8#>aoVpfGz$nN}_r!~u0nhhX{uh_Cy&s12@wXtm($%IdM-STTuYI49F zanob=W_6rFf~i6JO2X#ZZ(}4hw!<6ph0y=D{5D5;`l7c=EKSIc3KlP4{&@CbD{_g- z0`b5`!xC6?dsR90Syyw~;DB_30Nb;2P}K*Y(+xUZL+*vbx{iUI>Gh}&g8 z&~aHjbawkp5}MzIzx?TH1fsG zfg;fY-X}cg1N^z>E8m*Wp{Jb^l`p2}&ERZvY%6zKw2Xp1yFU9{H#r7$J*zZGv_1H5 zyPqal9qk&P@jC!r0T!T=N%e5=%)b*Rm|J`sx}&v`;4<7x{&xG`@AvAQZ$w|d`i}3u zsRBKlvS}LSjE+tQp^rw!VO*QtRuPx~9PN`7w+yu%Drfiz$1!!Au}1^@W97Ygn}CM4 z))d#+5f09bJkTC1I6Q~-5#SuuFHp-$+(&IqoINPd^ndk+!*sbv$iDkwDLzb7V&TNY zGR&LZ7ahPr9XrxxZXq-&c3dg8?z*F;Yj}rBObM1m?BCUpzg8jm z^U&S?d95(isQhS)vEeV0)A5Pa&~T7BNaN?RIVN<@sY6U&*AQVshV+>_<&r05SDw%_ zT<1G3E($D-t^ZmYn|MkLn_Y6ODX%!c+Yi>Bzt^}eu(j2>hdtm>viKjk2`dxJzi2e{ zj0vlG(9bu;0P^w6O)>ferr$^s9dJZaF4md$m{M?K|8Z073MCw@F(_=Q6$0sY-{Wd% zHR&BkOLnyxDuq!Ig?u>-d1Wy;N+W7?KqW4@fH4?+9dc&YI2emOC1f4H(gspt0OPDD z@^4a9VLxHmHU2r+0Y4C)X(q}<5c2AqRv|eWeD+n#Yc2TK6T!zUQxUkx5Qwv2$@d|+ zQkL&52{ZQIvB8Y_KW;P1!;{wekznTgF~?c$)=kJGz#vTsj&_^!^Q_Pmew4^!CI}VW z@g_nMOhrnPyQY_ikJ;nL5FX>l6F%c->1goN@a>7j9fR~wvXcP`n3F3b46rJRh|@63 ziz3iN5s?T1(zT@H5iRB;kdyM`^2IbtyR0aI-SjKD#Itp3F<7(ZlIuJubzu}8$CmXi zuX#dgU>KLoj^Ay3?(O?>rV{Bz!;CJ7gw!N}wA7_rHp-8wLHJ(mr>8|eD#-b5l7NaQ z_PBr6C1X!`sSAi;T_oEB_@m-k($`2_68EvXLxl`p#02f@S2b#+i7eb+xYBHl+}G5; zWMrDN3Y=j=L5jPi1X97rpE~tKq~9|UjFM|wSO_vxG7@Ev7B(i&Af!(aWh*c>vb@8) z;3UdsQ1_3<;Qt9pjAvR?OC~I|+R+~N@tq1)0fKwCG7LzV*+xbF>kOGP9@;3QajZ~i zyjYpijA)};V=|e4T>$uKaEfne{F}*|t&tHFw#S<-YxdOT#YMhUg7Wr<1O1kVvk})v zcCMC&$Gh=^tt@b517NYVw&R6m!I# zsRk5x&75jQwjcC3tH={&fjc)pn?sMS0nk&TKsoVDG#m(23uX+F|etx*3qEeMDz+DL$9SW^+aR z9q6=^?{4?uP@lf-`{hXE)%vtfR)whm7HvgxYwhdUr7|Go#zQgxjbAAcixz7vxU5Oc)U0(m_K<-uzY)YS&#wj=O0;+Y=2Gk2EvqX zV2}3ePpA^|1wglQC#>THx9bw=onPmJENib3-lnN-50YFhqNE3J{!(fRp73KKy3`MHofJD!_PcEMa!Ai*QU zIX;or$mQs|c{sF~)Xd~+diZl84dh;QJeox3i(eVApUI8}yPL^rhLW1}zd~Ble+3RM zN0-h0q1mJwCR5X&KU32<2$T4%YVfiND)p3^FRe_2F}Nh#vITaE9;R!)@3Gn1mSAxx57qVx1MAQ9$D|Ncr(IG_aI_ z=@vfO6K4emxLBhhFIBn?ybQ}sj%F12WiqN>X(z~k8z@)-II}~NN4JykhfrC~>9vd% z`(6wXUS$fHF6^)Gy}_cPC2P61eEHkr{R6LG@hrkq|I13ZHL4GQ%QoAU_UE5KWxrXV z3)GNabRGKS+t;d2U?(k~&0(kw#8?ZV#t5Ge(&}jdc#=7I%$Hw-jv~Lm%g3z^Ssq03(QyCMHj-2jaVea&wOmYFD|EOoFnl5Mp_7TDepHH)k&i~^ zmRd`A_*1GuNh7+vs>IL96Yt)J>_RVQZ(GZhqv2bdxmi!Cr?aK4cQrz1CU9pIIFt`Y zvrMg&n-$Wg;BeR!gX3)HYS-Vojl+Qgmz`iPPKy z1P(n70FTsyc_v0&U=nwwBv-_C&-6x9RkOh`*>N7u6}P`7ZbqOJ(oN2?PS$C8Fwk z>hjP@>I#aPwgU(7asNf2EgD2_U*ocUUZn2h*-iF+l`6pV;G_rC0DEOZK{@iu2hIcY zwfbzS2CpBu6fhInKzOA|M|9O|&-`egMCx?lzd+vujcx3Omk>JLejCG*kxG~SqAFp- z6S>#jD12z5AvmStQsd(P0gG18qZ%+QieD2wvdlPx3zXF)mI&XDO0|78D>Ho6p%KT*G*ZFK2IeKL5=Pa+8SC-z-+bZF|DUj|z94UvN@xcRLWdc;Y1+LW81Zi;# z{K{h5bQ;r&4^^w9rM(@nXaUghcF0XC?2J=%Tpe%RTi|FY|T+APIq+~?nUk&+qH_Do7-k13G^DHWZJw}5=ZUvxaaqx|Ee*iRT{ zMH{|$0{`ox;e|2)_BdUImZi5majGBVnz7m>gifIW~SC`PhZcqY#T$z8)YM z$O-f0%)QO6`!~i*_$W;UU5MklzYHx^UYcdaO~}>qsIOl6=aj^4ZE~)Bniq97BgMcF zw{fRF82*cp-8uMeC-W+$?p~lbL(5r7juvTsiA3jP%)b0f2k`fCqcI+|5;T-w*!@WQ z?E5-~{-r5&Kzcgos9Qe{P$YQT&&tF_$YRTG9{ofRAlrPN^Y%4O!3hvTBsttMn$V6& zkX(!p-@R^;jum{X@qYBG@oyh>Fl-$jpWN3rC0r8b4cY9utDBl<57eS1(H}|9y?6S% zQyQV8xO((R{#x@j-nBrzH3}!(SRUl_`xwT6>A9@lgtGnCM#+Q+So`GSY#l<2cNiRh zRMIfnvVGVT!f%cZsK*3-zFDgt6_D>)SINB?EByzC_;^4Kx0_baX8&AE@qi?)rKl3% z$T_91?~qgW*VNS()t5p0ns47E376*A8-JDU{ua&u&RrJgp7+F_k!vUulf#eR+e5|} z$TmBi!?~b&aAGY%5lwqI)#1h3vmWM~_w#Q0Bfrh-g|=_iXm`nyPG@59CpOZ)9(pqv zyrXL2tF-0f9~tz`3)_==LEv34_xg^RJ+KfYU!Rx3j=>v6oqt*6-6NU0nxHnjSa0 zntryqsflF#*r|;ufCY}=w!L5a5va;fZfbW`>xeUJk@tXI=hws5eS1OA zsHW8mA_e5yal%~du^Bvdm@fL(6!pd|%=F_eE7lHz|%LMbLAGUNV{!ThZh7GEE z?rkdW$C&1{kXcskt|i`@?2tOujPBjk#5@9tkkkmId|@x$Vl3EN}*mt~&KneN_xIu>IRym#@~ti`Li+jZ&E?1!`#(4UwJoVkp_ zimMWxDAcmFqw|Kgr)pO5HP>$u+wzvDz+P^?x*6VuZ}nM8&l^t~vPI#snN5FD8w7S; z;kX+>>R6mu9I(s3`H8V2wu|kbsetZVtKQMU*i?9X3szCzT9Ui9+a~HiHXrrrR9kVm zT^4Z04Ml#We74UeWQB>;VX(t|Y7C$35AC3aSGH$a6|SWZiQ-?#E@HjabViIE_%1xx ztKRBviC}*S`U!%VcKFk-aw|-0ldEqcQ9eM8{wE86#Up|g0DL_vW~p(nQ{D{YsYV~G z@&7Ft%r~JSrWsTyTBDgeN}B8^`GHu|d1l)u;YtvbF>QA|YQu{b(eO=4FSEguB4A)Q z`!eCv4a2E=(}0UZF!Jrs_rFF1mRSIL+~K+R(AwM#L`;%RCUBR|zzWp*rywxaUB1rP zT|OPfNB07wRva^X#d-CiplCSgX`_k8?={Vju+SW(j(6=(qU{(cRABp z=5;s)JSoqJW52hgc}E$Cy-4+CZX#J64QF`FZQfolQ-bCrGbp_ch(0GaJ==Uo_{hik zuVy^-E)ypKE=l>>k#f^XO$Y2Qw;coiw4={50QTj#=W99QIetyo&0Wd@2&Mn^u^OX*<8h7jJ<%&{_2@7p2}zu-)Q>?t{Iem#6V z8h=x;zPmC$X?(AewVURy+H9i|V)!-A@k{bmh`n}x>r<0;EH7vl^wy##=-cg;3kWhAFuA?&==o+92k^6_03;M^c7+65NhU5)!|71tSJe!qK^C1OdDDd&sS1a! zF78JInbN-8^|7WBW?~O{Y#b67FLKn|?IwDd*s{qmYtuhGC?MzmvGoqnbv9AkaBQow z)!4Sp#&#Op$%$<{joH{vIy~HB4e#o zR@3nnVyplWCNfp(ZsWx|gN|@T>X5@y7Xd%HEX?A2J0LcjPz+u7Q2{iS$P`OrU)6Qt z)Vi9E(Xz|tbR%K?XeZ^RyVSU3xP!?wPZRaQst#4u9Id1nnwIGUcxV(6mtac^)E&{H z%G7dTZg(=1s&i?mie00!*B}2L#AK1Y7(}$$F!V}PSj$rgFpkuPv$bmQjRsKH ztg1zrHRFq94zb!YO+t``<`Ppt3$(2*{L7kq*U%QE>b0fttJi3x^8LEPt&(QH?rSr6 z?S%t$fZ-hzM6HPTF+U5FxKxDWKw5o=7f}w+p<|*hDjHV_{U{DgA^!s{8JfJ{3%((# zwCLC|W}0N}+*e}xh>R`y&6t8RF);h&3LY$v!qp@&E%8t7q^)eb0{7sXF{0}GVD{tu zLL&s*i_Q?zvLmT>-|)y@E<*j$(k2lO(8y;1KjS$DzOwea1BnG#PhKh3f?L8D%V6zM zmr6_4{o5q#56|>?8^G*aKYaT!mL{3C^8R)(X&ZZfPDB{T!D;aJxY*P4c=Wa*nUxd< zjI8bJ^+Ac~+w;W9#NPf5!7Za?*4o;zWy= zz-sG6W!MUI3%4_1d-+@5n)?R9*2epk5E$RQun=~vV_cOai1>FZu|V)5A#>9GToj~| zebw*I2p*oWl)xxub1;p&4eL%{Hyhj_X^ivp%10X@fN^No);qa)1pwZ@AyZ>XNt_2A zgA~jXqKW;?^}Hc8&sAfI{v>epP2pvOfHvx;J@yQkbjlOdTHX++>o!uw`UhQ?Gi1Wb z&1(ehFMAZ}FbJ^fWK8u!^$Vo-w`h>y5j>JYsTzh?f*6`(?;`=^`p+`4gOYlIknBax z+)!qokU+r#=3q3NqWi4l#M++Li^)Z#z7v(nx0J5*oW-`R_+pGl%qs1DDH>V>hzu?~ z&8nGx&Cuo7p3Bfw*49sr=#4jH2evJqFVkRHZCY>Bk3{&3X(%Y;h8}hRN#DEB=6F{> z$dLb9+r$RoAv{eABsZ)2tJ1M+GeKnwZ#b%0Ob^i|VD^2qL%^I?q=*`u=ksA_77O-QHgMKUH?vL2ZAthOf8BnLMKi>4+dqpJ3L-a=Qx=efLb5m~rrg}EtL^}Nl$ z9<>Apxg2tdM#@eS2GY*_h&ByPPne)K|HO)r@qc~*f4}}eNNKono!E9Q|HQA1u(ObBWDH_@7AT|3Y6zk^JAE|A~J2AN|blgn#ri{~N3v@F#_R*J@-gzLG>k zv>Hf}(}wHxJK_JJzVR0E>#^Zyu>1h@Ra_6$Zyuk>qGu4izy+-w22LET>Mxv@JQo~Q z5Un_owHz$Y2&o1sF}?AIz+nWt0j1srxevwz2_a(6urA!WYFOO`z|>~GJK`zb0YE8I zt*#&_Ls&&vSml}~dR$)_!nlz!{?i47SbDFbZ}9C)TJH1f3)VD>4sB;-QJUczgpZ+3o`K z(y!|KBntFGlF=>f7`8r-xrU;L;8>>8&@U5fBc6}9F2H4=HPJ%>yYtOe2W9M|&BZ8; z@(VagTeq)ocZZgKe8jZUu3<1RZc&y)iNAW3l2w$2oI-~3ao$D+7}2*u7rYlzc=NC@o2xGIfx(_4QMJt+Q!Ob=}$|;(4*J8IjfKu&Lk{u(jm1 zgl*(U{~MT5{gw`Zrr_-oqOHNt>pg+cTAvN8zrBxE6zq5;9jKy~csMrBXvBPKWC4s6 z{(BoZ2I1Ursmv&}kf4z2TM%PKxT|fj`VgpqE?FSA1@Lf}SnSv^NWA!z^boK=^O2 z$|<4R*1fgnyNeIBjlBGfuZK&-pjk2SD?+u+4H&oszRDj}N}@M2Cj3$(Q-CY4 z6NQp#ty|vN%nrH7`}dCfdr}D7WBOWyRSG165tR?(fSEm>XbEeD)uzzoRt)CHa|#ssxG-#>DX__z);Z+J!SHO`0JnXg=s@8WZYfDp2c3+ zsBT(*>D21L-=osavEmbpti>0toRn+Bn&;7Rr@zR)_UGqE%hrfj1GXj7^n^J1iGPp( zu!CFPYGG`MszR`XlSsw;ql5eB02m-6m-Aa|yb6nS<~&=Ar?{H;|ElMwVxc`bQO`W@ z4w(0P%r)PxTdKJK{<1;LxuG!bo5X41*){Tg$6>nK@UPm>cUR=bn|Jr6B5Uq5L zLb?1`p1*loAhv#VCC;AlE#_&AnW0t_61DOF*42TSv$q9t50Iv4Kio?AR%*Gvq32M5 z^A`|$&>1=Kw%^!lu{~av@XILY5^5ae*GTJT{;}XZ_<(5WC>o(b<7yR~*r zSkQ9Dl&%(JU`&(u>qhWBn0=A|Bfy1_=%ymsrX?+yo#fby+4)7y)-TKmOz6LucavEk zM-KXIB!ehwuX9$`<0<@3~=P}gU-lD|o zYyyk#m3NP6|JDDV$M$|02R%8YL*m2haQ8Wbo?+wQ_DNM$Ey@8x5bx=)_`M6^CiaS= z!<<%XNXN$>>^)?#Uz7fVIgj`{Ti&>vi;0t>WpNGTPlCY1jS8b0?MLkTc zjl4_tzrGI$d2FGYUcq>JtEgu9mWDO6=mlIczw5tX5`8(N^IIu8{Ii(C1sxgxIx+aK zP5x?;kIX%|^;EwrDDuYfda|*Z_*>qC@#jZV^sJt7hH8=PUgw>JxxePUP2LsSqO7iO zmFv_;>aK*Hk$5qf$N!cl?{na;z%75$ME9ordiLHeDQz4eNS<*=YDM->GcOLecg{K= zUC@bod@+3vnVRPRw%-4p{iC2YCqbB^>-gVWM7>zsPq$$fg`X`r(u*CJxp|JFXG~G_ zy3XQCgGQP3>}l6A#p`bK?&ES_J~01KY5qSg;C~I^Y`?FNCN-)u1APmB?^1vX9X)#; zPBh>9n$4X%5)6w6W^xn^2YhbVtdY|6y^ zASw9b1+1C~;{|zDLX4{$Y4`x?Gj+GwM4n#R60%6H{h6=FT#m!mvCeAASVA#3?lJfa z>tLQ;IeEkE+e5kwdL64k8`hF+@Zhu+q* z;qJhP6PRZy`Z7=N$jwr&rl-)RgD4^#zUZG8(k{-husCa+rc-Vut^o$X?~|!^sJH;d zrD%Rz*p^W^E)1s?Z<>iqkpV(Vm$^&`D$oYVsO(xNyL7pTI-MWV$Jv)yqcL0HtTZ#+ zCNjltlRTwgo#&;CzsNCHrW9WF6Is!%k!mDGE;3a%)w1+fk;=^CnPak+2ryOB$CCzm z6wcB+#)$hGs_Vc3YXF$3+o!8VckAr-im>|+coh3Fn}yd37|PK?CL%DVYrrudZuUip z9Gip|VK^zLDWTO(x0f?(GjBOW6C={QqbtjRl7&PtQ6Q3w}rc>2jIcCvg-G8U;=o(T6hNJ+2-r@K@rZ@r+x9-w3x`tPCi*1t6aN7?g41&XGAQ;?~k$K35)(Xi5>jt zwdR9^VI7@UboY8Y_v?7SbUW>XwK3bklT$QxouZV|;%O%(f&!5HS}0rNjXeJYV@+O8 z&#JwF?i%5phHUkN^v6Q>MZ)P!uHFtNuqpra?!T!Ba86BYRg^i-}~_dia2 z#NS49Q&N&bCPl(jww_Y>V%Z}Z)()P*!2I0XOjx8KC(2oS(-4E zgde|VkN)PSu>8yGio#m)|72hd9S}i!7D4V1Ws7x2?j4Fb2qck zA(b$AZ$V~=cjEfLYxO-XTNHF6u%#)%NRt*?WL$BTHuRlmckFu%w(CfX3!7sSqlOQ1his$ zVG^Pf%Lzpx03jkrwlyr0hL7V`K#=@p;z^{MJT0OAw@qXGH@Q|+BKUPZ86Ej?bF*{npe$%7^ zQ7I^zQa{b~{)a0Ss~;Mfqmm)1f|v?#^8U9k$e=RUPwC+}wJA;y~j z!Jc;MFFPSEep=1MG@mJnQqWh?e^U+20i{8!DDWd;@x+k)NJb-@O;-C-H~oSP2?X32 zy+}gBM3_`Him_;ZMBzaEn1}cm!OzpnK1gc?fedn+&>A9+;edU9bk2Vyf~(pC3<#l2 zwSOQ*Ody5=G-{yi&nWZs>2m>x9*FbE!x8a7NbnAuAYYAz2a?D43OiqD(t)C@0|`va zb{&^_)Fq$HaLZ(FP2>KxIe%Q^6mRIU|_+r2k ziE6}s@D8D~wd)5{oA}J^L!O5gs~CH;EpIwtnt8MU#|R(<_LKh{%whyJ)K%N(4z^o7 z7G>`TR!)<*2O-sS&b;&74Le4^RRaP)ec=0KL219{@`)(dRTLjC4NVCY4UC!lcaSxV zG*@46+B9`EP!xc8$CIy(l!!F^s6Q)z5x>niRC59a4J^##NmSi@XgY;?=D7bW|I$^M zX2$JaSBs*3f8QlB{;5sKMrSv+EkA%@R2UVbTn@TW5u7BFSbCRO_KG;VMt}#`=fV_i zKp5jeG$VL@Bo6(&s=|f4<85&^&llCJ{qh}nNZvlU*$-e!(cfhHt7!u7Y$GCsjPq?F zhon)uzehv|iXc?KF;Js9((0i2c3+634e#4*cZ#OhUi`~&(L;8>ie6pDe@f=&No${wD7hiAGhJU~mn_gZSy&*iCu!^QjH3 z1u|&a{VUC5#+LRQA-=bVQF~3p5N59MKhNg*E-*Vq4d3^UYn}e&!GGd{$Q=110gMz) zd;t%%RCWKIX5yMcECsn?o^E{&E8)3ASIn7@F*o}QJ3zLN=4ejudgr=6j7+zr+yx>w0{oj^*xVg)%x@FVke3SBj_gQ*dy#DUvXh!t&)ejL1VLBb> zlRvwQ%CnqV=O+Oq3(Tlkf5pF;H8yn*r^6cVTIBqx`B;#n_lilm_4anSHdpDe#!V*j zSMbGf-&3wy)&;j&F~*AW1+)1f*Q{hq)W2nDh7A{$#N_xo_x0UX{BRh6UH;cK0k@p4 z<}0J#Ut;Cf!sc_1<@B0*Zje;~IZfs^#XqdJPY+T8FNc3WT$|s-!~5eiUOi1g$!1s4{4z2C0>gb$^=VluD zIYEWRIoG3cbaBGE(|?ixV{a6hYI#h>3pq;a1I#TTVqfTPTvp_fL0|m5QYl{kJ9Mor zi4fn11yJ*8IMuxv+Vc<*wdwd)WR2clcQzp7uCYrnPM&5QRyeP7=j;7FdG$BG%Xt;Q zevH2ECwebCnYy;RQz&1a_eCi}kz@EbrwApJy&Ed5!YJNK##GnF0qd1Nf6hc(prhw- zM&d;ObNa6WAn?1~@LOD0A5dT7n$f5dtT^t3c^T8pahV+P?OOcTl9^ao*+4e|Mfh>K@Pp0R(12q|_=IND_HZhyj%se6R(8 z#n1ycp1pwX*gkn)fac{uqu!eCBt!0$elwoIZms}}p7+VMr|EkIkJFoCR5sDyhJrlg zJJz}k_FYNf`>-O!?ixpn2i_pL7?k4Fw$s1&ZkT;xwPE*mLlmeKDa7 zbXyWgxc?OcQU!RHb9s!Xiu>UFqa{lVI)OF|#q@tXBtY=$3{q-p4JhnQQ`~y26kk>E zgN%mnOVc5ptNvADDBoNhITx#tRf6Oudu;1opdm|;&i`-Of#7ATEGmO-{F0)(BiEnb zX^5z9Us5X_rb>CdugXiEJ5+JCUFK$%rF;Qit^xjg3I7!dttNRu|Li(9QHYJ#T&2R0 zlHCpe=f_$RCXVO^;5o9B_w0W!_A|pBS{d-E4;MGyZ8MxHw9Q$akNe#|| z>N$p4lS#?H9!wDv2JWDJ!~={veWaBwNsX*;nXB|llyWCaHQ`y6+Q3MGSQ3d?l^12xN#!$%r083qdRlm_ur81vR-ObU%#IO7z= zV-RDS+#C^stZ%L$nr;cVD1G>H`zlJ@Dz9`Ea&z!@W84cpi8S~i$@MhVUcwOYUkZ@K zYQ@HGNdqb7r~)q&2{r&xFsX@;NHCiHt_9)dfkWywV!Q!v^ac6p-=|3<=TV%SVG2VW z<1!7GwUe|!9cwrHd@k}rV7n3X8#$aVY<4-MoApuJJSp9RECanmAYwuC9;H#4FPd%8 z)WBK~9>`}y?fTlo@r5+ZEg^~Zg7Wz8^Kc6>TG!5N_82xryZiyXnqRcVYz1(tu_c5W zorG5X+42YT4Zdhv`A=)u*b-6~G}j_yX{f@-BWc<7$n0I`>(8KrgY;$>hIW~1~Ab=f>w!gD| zYuv>3Zg|3I5e1ldJ)pV;fv3Z)evj(5;2)$jfk^;KJ!{}qS2hdA}nSMBsi^Mi4t_Y&i;sLis>|V$=v9!_{usNdJ(LBvHt1NZfV=dwOCI zqM!}{j}N4DfjN*)3oH-j6WK=Q`a*_+jlc#$#X5~5RtaF8lBGQP)}X=?9`Py*UHRtJ z)pq1o>H2QGvazZVXTtQ;fiEfp4Fw$KQp*BC5gU&^RO^G(&w!x}`Rv?5C0`TAil-Hj zBT{V$2}hT)_9|i3iN|=*Ou}9z0JsASc#J=LyJ53)Y@_rk%*4;1pwM?PFi_x#eWM7C zTYcCQvibmvuars0ObO0U=5e~fvxhOFDFb)lmAz-Gqm1#K)OK~plZAVYnWbt_8>@E#V z3)6!Io+cq@0sBoHj?i^v6MFQQp6`BME%cGVqk#=QJpU42mY0#JA&s%%tPHqy9jsYw*eZFTVe9h^T4@uJz?rtIY6 z1Cjxpoi5)38D{y)+}PaqdsY-SG@wml7BPkxX2T587P^$9h&JAf^fk{^l({{t=sLX~ z&K3*=zYnGXS_tX8i0|S9BuNOTvnL3Y&rS(%!I17-L zyl$b8>sCL2D8(x#l+{(L@7$^_y~D8^b)({UB?k#ObvOk$eK=t_WjJZLf>W`ji24s^ zjNkQ>yQsaD?+Q-Em!ke82qy?Og9pQwwNB&(pIq6S=T*3eS$rk61a>Cl9`>vJTKy9HsS@0(Tb&vGB zcybhVTG!R^XU+=@^b+-`K8DYehN_X7-&-td*Yq|RYYc4X?NhTxhq;+4z}K!b69JzC z0>3U{DTFy66dt-DeNL|YP?Nf#QQ47olz_O8Td$RFeOSw|&3Miw`EBEC0wYfv)8v{b zkoWheV#W5?gsh+zD5SMnhbIDkbjpuThd6z4Z1-MsL;)*?UmddonnDq=JWGk!QaL>8sdhh2QjH@sP5rERJnZ)Uu z+RH)t7#tp#{qlUfujd}TWp^=u2owg~;xehnmq{Gj<|y%c`8gr!{jOPuz^D_iirtR2 zcD~lAB92e~;Y;1E%zW>ql*PGvN8TNQF>q~lh1xN^1se<`6P<9Pxbc>!wMSd|79wuNbFqt0t_`XlQ3uO_rdd-`(Yc?>h&?tC6 z@bMUXntRn9pY4#5bIq-#jdx?sHkHxK=gDn!Bhe-;tEG}GI~=7D5VLg}-RuSv_QD?+ z^|=S)R)Om2j&u{*+P5d`ZLx6C3M6kyy+0&E0KG<*uNe(npUyoMwYj=Iivs!@M$6@L zK7FDu%O5`dP&S8Qn)M;LpiW`q9|CG4X*Xw|z19qBp7!k8*3RZn zPRQbMeb`l|&SbF+1EzR!Dpq7B&4YUhHfu`F1Rj|9Gx~(c0M0Dnhykq2T2luGY&{!? zt;$4Yf)7Wa2y>hur4>E=f?@u=hi$-mXcc*0prJ zAzw3@ORsSDn>aS}G)ne(FO!28&9VtgGldCG^qjPCCEG?_$GS@;Vb(FdMR^)$W%r7l zpjRY!J}a`hvj_vl*`quuT_Ic*8W>Kuvtf^>?bL!Mtz4c6kuJOOlx*2m_JHZ0InODunHTucPLVZcTf&okPZ-UnRNT zpbd;WXa1;xY0wOyNNKk3U@$GEq@Y(&sd5bbP1@^60<&E zDfeuO!}1I!Hv3`CKFUNWyHzE}muORX*oU@Bru2R>)=z#c!jMel6xKOVQ+1ov*$P=o zON*H;G+U{b5UyRa=?w3%R0+owgJ#9=HYcS{xejm=5Tcq1@B3h}!d5?F$jJI!I4#I^ z&KgewGcpNe^9nS$2JqAvwekgWV?+yy$?tv~8lW0LzLa{tpWSy|DOI-a%#A3~OuwlV zON$2gwG?czv=4YPgitlva{rlW+L2eGs@3F6FSmDHfic}tEguDz+|C?Td0RwR;-wp< zvKzzYzkITU6|hqX7nC_rD+E>fjfHBQ>7B-!S*`|MabgoiuU*NOmBii|MniKj*~rmanpED--{jEk?PB93kATg_Tk(kP|GR9Q>VC z?Q_S6^6NsK@1NYxQulgu+vx8tVB*krOtD0A(X$R(z@Btnap*;Ql6LTSO+G4!uo9I* z0b{QN23qIlPy`u8ab04K z@<1nNcPtPY%lGNJ6vqf?YQ5LYVk5JRk83pvLQ(1ks z)zr=h*_)WF3;wLGBtZoki*-+xz^TPVtj_W~RM~#71u99NE z@6L_>iuY7+P7giwdk}V{!}f!8u<^4>zBiSCg~mH5!@ZTz zpQ#4U!p)tg>;j3=lFtrG01d{%niS9e5s~eG00=WDOWLI~=tsbymXTr>C(2u{!B*S~ z^vly}M+1GnOry})ESOBeXM%0f1qs!rNI9Y6UmNG#VPdr<1IfwK%G>wr4X+Pv4X=wv zG<}f6pGHuVFbksEFcWvC_3M&m>9#)=V$P;a(=E+?`l^HvXtWij8cUd53){#FT+q7oI9hQkzk6ypApF%cm^FxsWWx zGnvmEo71y4z4=QvaQNJr@;@Zi2Z#$EKaGrl5|wMRzs$#v!*{83++lR72ZK@wPq$tA z*Z7C`n;XsThi#Qi+Z@J+NLYU0=sToGWWyoikfZ0AM_}USz~dSB2o|)$5>f9}X(Z_v zMJ$WuoMRycn49XtfIgt&!rJhgi*A-|HAkw{`I9vp^9AWKgAj9S&YMFMQk3Th z6w+xzae_OXOA0>5z78{#mU_OUqW*K^=`F{ZYlf)qD)LQ<#% z-3DZ*eV+&wu(I_#Wh*l8FM{JZB2QEmIVLWUq1OOZ@Wjw3{K(h#U!wFUy*#Cti6(S& zm+ZgE>#?v~>}X9lhzlJ(5UgIgK8gDPhzUKo9z$*zW6e6)^6_BDM`WBVU;n5VRNBy^vCGsWM$##jp@ss z#r-K@2_|nih=fL;?wRb_CLf`1IF!M&xE?EpUT8(MwrB^cH!_wATxp3mQ2^D`6w2{# zu*4PtCa(JIeel8X-I8ZX02&^K7A_a<8w)BEqEDSTUlAlS$+KKN)<9O5fx-~4U}OwM zA|`=ioT<1BYF?egAW9cKmZq|gx_(|ZuGup{cNIj_>Cy!xywIXakK@5g1%yAzb{?`# z=28dd>h5DJXl=pfC`c7`{IM)MJG!stA)Z0<{M1y^&Qaf`i-pgHm%Uf*`wrzOVhJYg zJ5@MRA>r0e&$iy}VAhfdx6Xez>(Wh4hghtmRMl>d|yft-G56^B~dhY9w zf}0@08mG7uIp=(O8b*1=`h^#sB7@{LerDD!&QMx>$CPCWrs1fh%b_3MCJA^3_>jmt z%q$0s3}%gB86q_$@hY1Xqc`}AB$4}0ViPMsl9zXUKk5 z{bVfm?#6*>Z}HHbx@Ds?5A;(#b}X~~#yUKSvVD4XCbxEk@4K2_xVSWTw-neFqgv`L z;WRtxu`?dEp^qIXmpHi_4u*{f_-VJqVzSrE-9Ci_OTeLG0dL1XxV+Z|5mWYQ!k4Rz z^wsKMMi}$CcW9S599w}B+lKuxngmusvhg$UvW5z78G5YiY(}vd*Js12havsAi~w6! z2KW08-gl0>C;aa9lO{gDnuQS3&mUxTR&Rb}w`8RRKYp)k#_aor(-$e94LD!EAqp!q zErMDKDYLN2BbU|cju*VrTiPZdDd$Jgx;pEDKU zzAkW!4Vog?{nQd7{pikf0NCA;uo#yyIL%eH^*zJShiQq5kl#g34%FKuRaQB($;77J zFG;PdMwi+_b6h>O$*4PFaV>#viD_h|%l-~-D6}>^3r}W989G^36!>v6XDJ~wnl5M3 zxO95)DEepAE8g^h9N59?LA2WXO0i!aYb?bKFZ>yyXzK#bSfP~#gqTUN^DkGVK;K5z z)lYJ&Hkls{1J2Glv+8orwzJV&Sy@jb6R$aIDC|ZPoI9+U=mp__H#AdyL>R2tSZ5igCqwqsHXuR)n+1f;8q<|G3N> zpQK7@RbF_=j9v&Z?(@ z7%*=f9}sZE596@?;pTJ^Eb2pT08A!%K_L~c$n#m0D3>%$N9hmLU^At4iF9isZFSz{ zJy_B;h9QVXM>~9mz1qpV!)#cy{_mwZLQCX@AXbg(ymh3xyqByykuzy>IAU;VtB~{L zR!1b(j|n=ZQx=A1xn_n5d!%Ua1ng&VYWqg3=T4gNc!u!jF753+IeDpR0GJV>Apyn% z1Hg0Fix7JQv+l9~w{wAR-{<3--BD)jnR$Plj$2%=o0UU_rv7!U9-aoj1?0*b)zMI^SH8l2{pgHp`-={KhyhDh+raC5ubE zXIZK^3=Y&PSx!*gmdq={wI(1oz+05P>Gm$vKk_O{?w*y_SM^h@1$xk~}oS4rS zY><+;*L||pN*ci!ggI-J+|y&8&Zng>%p3w(3TL0PIEzBrP<}v#1FV05)8FXqpx4mY z^PyjAneINQwoXRGlH+vmsSmQa9x+(-@Vk54pI}T|xvJ03iX9vd4N51$gV; z96S+ZEWK9T?CI=yjhA%jY7oE zDry`yPwowc@x*9$0in>D`$~;#F@yo<&RsgQZW#V?)Aun#l1=%vRyV1!Z_7)xj|}WF z%UtTSC_>;l#8qyQ{8r~5*=++GvZW3Dagq^Hx0kI3N+Q#fHh&aH3YhO)g&yj|U9|=L za2ynXC_VX1Cr`k>iIRosZKLA+z0cb)WSV<}epjf+I+GPw7tnp=7`=XYP>InC6BpkP z6YddHSDv4^@T=1Bn;vKguCwiz>?QL<>4i+uD?;qs@y{81o&ws5!;Zy##tKX)GalUN z1y(F*Mx3DaWP5AoeFz84Gr^$?&7XN9)g^a|HJAjOnMHZ+8NFu%jVx2Nz%M!M?O|e@ zGa95StPD5~-vM^zX`%Nd_)bbGoWT2|} zf|fXV@I~@IEf`%9Ds`}O#1uzLeb8tGLvX4ajn81j~yxfsIizbt&ctHUYM z0+vK3U8KQl1CHF6h|X(=0~U5o$Xxh^aEd6-7+hmeftqOq>=$iD(`{9(_og@Z^yp{K zC!CM8W5&e64%UwgL|3vLU5WDjB55C^+|u9qw@V~!aok($j?+cqm#Xor;_Ri~!HOFu zGk&`$reP|9qJXjgK`H_*W=f##P~faU;DV|NhLHv>0!Gtfr~#S}0o=?J?!Yiw3XDKU zA;4MLInw%SAlcH~-oa@8?BKfM2*4eD7FkKpFGX*L8a}*UG*SdhC|Mjs8|LHpFQ%j+ zJqN95MG(KHk%-M%fBo!k9ushTY>pJelOHSy*?z~5Q3p%Hjbg8#Vs&+f#(>wIbpLB#W8GYb8LHT6I^;w08!A!1!7P5yakvG1P_eEV)&?}(}-$k z4R;Dw!pu<=Z(~jJy^aMb%y*`7k4dhs&T^o>4ssN|-&2aKj#$dsWK}9+i)>TW*5ty7 zEDkpVcH-yoc(x5)P#T}97@OSZZ0@c@;kT+n)H^G zLu)d}sDzAR20{>Wk?H`4d3-#jR0Hg`Jgfj42NV&25-$k(df)@^R%5^|bjuuI*LxTOSM~6E$7`9DDA#dkLh-LC`?qz~1ov>gkuQld~XzN3gB4%lCeNZ|@Ac+wOE_OtGi);pxuTn*(Gq zQ2@nW%0J~h~PO}+@^ui9@+Gx2b8?lHMP>yvvT#z*E}@(0_EQ8FbD)aVd#i%)K& z0ZKO^b}USeby)KD%i78~lG&DHnOFX1ZK<7*QK3iaorHtwm~Ge8Lsgs7RmK<`(_@2P zCY!gIgK*m{N8n@?7*M}PCe`Iw=R+swz>Fb}eNqYm!TAXD%0KF(8MM_XB`Yxsu^$x0 z%^m1mG}Lg|GMk7UY~Az3jW=)LjnzYSv=5mdpP2x_9vrvd-Ust1$pMIdegcdCzBJAs$9 z--*U{BDD$c&JxTJAgY>VyW!8+aWZXSV3Qi=yeq%0lx)w>0HeF{tCLu%qh$-iuL^ zMhIs~ZRSf@?s#f@BOL-(M%XF`cH(2H$Z9FJdlWD;;ajLs$0%y2D*zlQVyq;eQ5w9M}Xc5o9$n9rFbY9ZXp6^cGp$0C}`>DJ(u zEM2>ot8lL zN6lL=-XmB>pKRR)eqBvq2Z3ZL_ z;Hzd|tQsf6T2IXg@+_kp+AvTR)@JLF39q+|(j*2lREx+#28q3Q4||SVLO~f@a-Q!! z<#JIqoA9>W|B#{Yiqn4ze^>V5x87=oXt=n+)z zmL7K9`|yXdgaI0Tf2t{#t*o*5L83eXWOI8m zihQ9Yz!p1WfcN8gAOW@*0)YoN9K23+t@sZL@Pawm^`FKo)->j9c^)g?TkGH!n&!d9 zUWckS8T8|-K^3>egUq;nlv&QV*8^KcJx^6IViQoU)hzLFpPj>#cc3TH z5CvI5oay&aCI|_`1WmmJVSrDRN_2Z`;r_I z)C@yKeK`|tL~fXslNQEPV@;#)6;~eKx<5t-GoX)0hZdklU%+$N;1SIfWx*7uiXt2W z>p{DWgjN@u9+}3ZglA2Y%!X{xo(B%k!WTP8PHI3#C|R3p&A=BD9@7>G$is1##1}bv zb#Qd#5@49hH{XO2q#ypR7;`0wWVNG@By*k{^!Pb?+#DKRm}bI=H%YHHY?hN7-nd>M z#ux=BC8@5)Y)+E5BElg9Jwl3@-IE=?Mz#>Y=6p&l3WFD4-R}*3x8j}=#giwm%-%;$ zs^8TAOlo#u86Gb?L(2s~HLc)gnglsrb7pIYRof{t4>6bLf!vEG-P^Zxp&XD_VP&lw ziy}q3ALeCR5zbZ>bn1_MJAO$bmW|Enc>%Bwuc(gZpJB=a$*@J zeaxxccrL^>afY<@1=~zjKetG^Z=wZ5&AM({RFqR^Gz(gjrF;iK3=$0^BTf-*4o~gr zr7@ERBlTJ}nLOjbQ_0Kc>h5@svGnAs6F-lyn{L>m6nSCKt;^#5#rIoO8Xy;GIIs5Z zXyUe`tVQ;I>*40+*YWF$MydM&Zl|eW-rK{;UYrKe_iGdc`%gcHHCZ#edU^vHH$-GH z>Y5I`&3iLC+53?JT=-?Rq2qg3O6^_nsRASM2vjm+XYIm(My4m)T?EBI@zFIWL-D`} zLU!n1Tn&?W4#QjNQaSxpOY?*+kdQ;yUoTzazgdzUpKKN#Gne7nt0`8nq6vnR$An>p zg`W0WVvag`3dJ>pot_+qYO5q@Cmzn1?fCCabHXkwU9yV;OuZV-l)>vOc#(bt4W2Pz zFQC;^W5lAx&mr(EFQ>YYHR4fYDA411+p4R`=7QcF%pTi?jeNE&F~50-ImuO}w__u; z!6O3G5pT}mC1g#^7^DwRPFjLmpuTDw;}}_4+-^_r^lZk z(*K^!PDoY)I4SkrNu!y6#dYoRdnIDG`t;T*k)!dT$WCLIeuV3a?4v4$K~eDpg%A04 zTY?XoXMbOMu8dseK!IIy2VxGhYe_WbOtfN-EWpmwpDhq7%~iMC1N;})b?8+k_!7sk zu?N-4QX84+PSBW;z^A<;^HzuP9Oi)(s88E&@;_Ae0G~8;#ZOY3^0eIX6%P_r*Al|z z*kD67LeEe89KS{*D<-H)uw3xqMNpmnpgZDTBPlqVIy&t2X0osJeMcOw;ZXY8a@E8z^Uep`=e zXPa>1fb=E(qC2+Rb_leZw>CX-OHT1uu+aB%byLK)70?%WQncrqG~obH3@|pfG-fDp z^cJfCP*B*ktz#(kG(i$@`j*N_P*Mm`uHRMu4yM0v0=-PoB}g!Kwm&BT z%>Qcx0lq0fW5GTGw|>32Pn-z8c?Jo?cLA#dZl{{sB$vw6Dzd0H#m%&Y)X_Ab8dd3| z#NK`58fvBwn-6U|EKB1K>qsfyec2a&WDz6{z00)yJkFXY5#_)vMPYlLWP>X&QodYaCIS zPUG_#QfS7oaxP9g9zx+&h(h71e=}%RMqKHIaDcMLs6{eC8LW5?#Zb=)^Yz%qx+5tR zA%Q22Lc*b_0Jx5Psc$9;qNEX>uT3NoRT|MruN9+%qy*Vn-%c*n1qQB|Z%rF$WWDM{& zJ88*uIf==)d}51vf7dEg{AQC%wy+R}h!rln*l(zuivSu;?reWgbtKz-jk>69-okuD zgUk@J5%yoMBk|RGVF>$OE}9Of7pS$h=j%HTBU=d-j>rs?n-7}Y%{*_j312USEsJQ& zKHxqc8z!E7f#9-h&R=9S>-9&$K{Ba)P+DM2#AEX%76!V9NP1?hv$iai_uEp}4ygm*5a6 zRvb!kcW80fkG=Q%o%5bC&P_%xa`8__#(LH>=WosRCQLAHwM)7<$(kZcZOFwmkTs>u z%sdv5u!BRB>)dwz}>^P3SDsN7P4|5>(YXgauZ*{aZy;>1};n-y{s;!Dmx*y|?ji zul6x)CeICPEO$UZKi^kg&~e9)*NIE_C(panKYO=-rEAC=$-#9dy=|R-`6@^-75?o7 zik|OlWG_kJOmid@9T+SIL{a7o<#9HNXm^Q(V2ybg^oI|g_m_+QoRR(L zj21^x>_{EvtSgiw0hrVGCz630F0H$2A=_G7vf?~0yLAo8T%LU^r#wQ3_t1+8)Q)d) z>M%*jTZ(85!SP>9435a%?WRqniE4-IEL>`|5Y%x)x2z@FIVO+vEL8j;osex2-E3*o z#~DHIJXqwd=o(`~5QwBZz)9gGMKV?wVUG z?$EL3d*x6z5)b}Vu8x~<;6BL~Qq^C&-1D7v@CN>u)u-UrCITYqq7|T@*NaG5M_Q=gs>07tvF~ zV{q8D3p5i(py@8h%RCHUPc}!a*rkeSmEalX>Z$h^`GwP{R8F{`(XuW{qs)<`Fk5-T zX7j!i+|CS1;>O*rnkJ^hb)G+89zkn?<>f*)BJKA9%+DR>UqA4U zHF@>sCrpWTiN3fst*+&EFXy3B?>$_;T-vmIX$(i`ouAOEaEAkhZHV_*uzCY-8Rp`% zES5TV18`^-<(i{t^tCF|phRw;i!wW8ODD?nKvx zAl3=jid#5+eDc~Pud(7<{qH{TzRVpH;r&cdDu5b+e;-i)XRSm!>LV00SgQhR0S>?~ zkOCEg4c=;jI){bkecu9~#KVB{zkFhzbdGiSf9?m$Ur6{+y3gvS8$|S|lam>sWIh}W z9Kl67F0K^SBuQnlL>B~sok=KO?gDoA2UK{;+9w8oJ8!6|CZx(K*D^-nxGK}`n!ni} zzJ3q-f%;L+O%Z)uz}XQNbUtm5@$)`RBhe0{C{a@%*mu5bAPg|fDqER-xmIGcF4d0uzBJeMgKVu?{qX^z(&H#BRB_hJO z$^toA>{i{7b4Gtnc=PzB)-$l;of)t@UhtU9u&!~R;nA>TSFPyn$ST#C+p_?R>@Zm~ zS{qgZ?dM%GS`E?kfbE@@dU+-0`Wi(3p40~QA25l75-d$ECPoUkVKAJPn=wLlK-`_! zyD=Rja>%yZyn_|(sPRIbsPUay6L|R}4!0RqD+Nrn`Ta6s9I%nW`H9AnEtc{hXMwTHs_)D2)Y(UN>JJvk-9zqsAZsMXXS;wI!v%Gz( z?0w~2dWSV|=*I%xVt_R*A$g1zNW$~u?H&HyfOFnQE=_*axw_sLvecq5CAS1vC)V|D zpDTZtv-O(IWqTSTSoFpCm_udCE{I4LKma43jb&$}I%}BE^Wp^H^}g zGLwAeS-*?((Jw}hLcIBEd-!?OSqrQiz7ly~C2@t_Ff5VL=`CQtx=ue>5(ZX;%IlvEJNqyPIqe# zr5f~VvJ-(1s>Pp!9&hbw^R+jeL1ZnPyIGm&97{g|uP`0Aem>EyGhN;2LO(zZpQWYK zIt>?|$;r3q$4@^G{+W`}>m0C^EXwAeP{i|Y*Y#Z00*&E8EEFPZASfe4rOK&5LgF3^ zs4R_Nx$rM&3l*LWmQA&aaj3BPVf+Tf0{aH8&2TO#IWQ%|^{^~N3li)L2#;Kw>%|4k ztc#-pQ!|_699#TkQlKh6o}ZIa+u`;O&E}5p99|)WfU4Lc4>_75V#HTu=$0jaD|4nPG-o2Iy{DTFp8@jIr-g{a-`Euh_mrmf zkM&U7^?96hQqMG`rs4gyrI^-g!WUmwP5Il}7W+;fZuhObK+oH)q`zu#OffEX@#dB~ z#cH1)j!t5F@#bD8_Ns46RkQO{#gxa6AOa5|905^0+Zy5bdR!qY)2vf+*_PxV8i(w5 z(TpaW*hSXA^Fqzso84T^%oLZ86%YG)c;xIP&@Fpy^^cw+C%&Kr@%S>Brx1MU$StUc3H0jQ-Ws@{kMu)Phdd2C5jp^z%I5eZTq5Sj7H4 zTRL`sIQ%0hqyWTEM64CcL6&af-Adwwcns!B+m3V9&hzWR*=lh^Ta!ZzWvdf~ zHU&Qsw7JKJtxzngOq#$$T(I$cwI!sXicS{HQu0LG%~jrJWv{Y44auZ$+XRbd_}sb_ zr9;N0{yxY|bs?ibTE@dmZx^Tau!&}J;N@3*)@KVmLtj-Nfm#g3U*nLJZLn4fh)9L1 z5A}?DsZ2V*)Lk-66HeT}RbSSCjQ6r%!Av0Iu;2TtFCZvf9G&}rj~i${PTuq_dng?6 zVJFlL{Qq-Zxg3BhMf~UVfr7#YJIz5YL%)BL>z}hGozn-v3!2bXwl{t^VtY*s#neP5 z%4yj3n<1T&a!oeGjqFFoIKjpa@Ux%|E>}{AgCVbFhmM9D_XHWP&!VNGmCaQB(lr&T ztc!ghMjA5YkKFutIvIXjEr+4hCZTvR$fk)V%{S0^(6hfMS%}1Z?FY5CoAHT@BU`tr zF2bVkV7F#{K!4?qdOVv^41{#T_m5ejg_l<;_)Ua))E6s2Py^17%*e5g` z+oPv()QDsZ_1vQT<`r_z5I3jzbfFGp67{9jj>Z)|KG%zrq&s1#Z6VtxSP&d0+cCJ~ zkIBb*bXJpGL)k@YOx6KqG)aL@C25UBKBws{M+Q-x0ye>Q&RWhe%^33 zFk66RIPeQI1qvgjWQ1b9L$9eB3l zVN|%JlpUROnmG|P@j*Cx1&XY&ez=#)j|8=p#E>2vZ-}fIX zmJ>nEey+wQ^mw=!i13QQXKRH_7ckWZt}X*dt`7ZX1gi_Vh0)Wt=B1j)qyH#I(@mUg zg)qCaM15f;JH?k-V7U68_s^>s#Q;O1r{Dt z+k+@?1Orq#vF91U19rQn3XQ>NS@Ixi#VR+A&$yK{2Cl&H4X=5E0u-|ZR^4*Tc^jRl z%^XXK$<{PWXrAh#ulq1wwKet{_0-y)*taH)wzR+Qax7`gu;mr3D|3{Y&8kvUkrNO; zx7*Y-p4yJ1CXv?=91-Qx&}L0kpW+>=6@aK?XL?S4(GauLpve!3Hc`eWpIRrTyYo_J z45mOS7&B`o3rLQOB>8>y@G+d6{COc9jy(|AhL$^Q6PETmRmVdFQT6KWD>Es99`bh!4V}~MeLl+O@QWy zPwvXIJ1IZ^eer($n-FtWC;APHO3Yizi$d?L^tbBFd25iTq+ljNh!TA~KI)`tX@jz3 z`Vu~?-&z&~vu^*E(1*nlDREr=7o^#Yc|0&4q^>>l!h?8f5|@l;4vY5UXM+-^;jc5O<)Drj(Y>0`$FQX_Jck zKEQFe&_L`ZiSRsPtc2G@pE*=r5icWOf9$Ec2xH+MeK2qZ6b7^77BvP5H`4fUv%gx8 z4ivYvF1^u*soji8Ry_X=!M@>vE5Pv^^~6!QXIc}rGCG(Hp5 zhM(%oseRhUBx9pH6_`mX7UV{ZFK?t-l5#ZzD4O5c%fCh1hFW)}np3RiOoBgM5or5y z-V+vL0GPiH%2~igp!FArv3UY9%JCN2lZ) zBhk)ddT9YX)klhctVfSI1F_aSnd0fCe_^YyeJkn{h1pn8g1C7%K^%iPyttJWh6X-N zRl?`J5I2|KrEgWiV#9Fr@$;rPtis@efeTQ4Z~*pq{Ra;Y2VAoTC4rC*h4B6sunz@! zzY_dgnE&@BfGhnSBV|fwdxS;>CEX_@5a>4tdBFyA$Fxe|$#60t!MI=wi9g_8& zAe+*S4DH**qvcbTCUF?pN)H`MbH8d{++->qv`~~zwG@Tf)aVs9=*Vo~iwvu76ZNov~Fg0-c&9v)O5DZ7VG&JZmhYBJTD>;0)U_r|jz5sE9Fr*G^*q}+0 zZ~9eArJ^16juk%|9j-zDrc8nvr(hXe-y+hKTl{$rz*@znvT?p=Zgn>3`yB!!r1d`D zVC`u8A$N3HkmA80#3f`wM-MCSXDn$73r*tq40=I`!I=a+suQwI7*Rh$6eVLAO`?Ad z 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≀2de82KF<1oC$}6#XWNT#Ox% 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 diff --git a/LDP/users/Peter-Bieringer/Linux+IPv6-HOWTO.sgml b/LDP/users/Peter-Bieringer/Linux+IPv6-HOWTO.sgml index 470c5350..c0e6d758 100644 --- a/LDP/users/Peter-Bieringer/Linux+IPv6-HOWTO.sgml +++ b/LDP/users/Peter-Bieringer/Linux+IPv6-HOWTO.sgml @@ -1983,73 +1983,103 @@ Chain intOUT (1 references) Firewalling using nftables -nftables adds support for a IPv4/IPv6 aware table named “inet”, here only one rule matches both protocols +nftables adds in addition to protocol specific tables “ip” (IPv4) and “ip6” (IPv6) support for a IPv4/IPv6 aware table named “inet”. Using this table it's possible to add only one rule and match both protocols (in case of UDP and TCP). +Take care if rules are contained in more than one table, because the tables are checked in sequence: + table "ip" --> table "inet" --> further checks +IPv6-Packet --> table "ip6" --> table "inet" --> further checks +]]>If table “ip6” accepts the packet, also table “inet” must accept the packet, otherwise it can be dropped by a later drop rule. Preparation for nftables usage Install a Linux distribution which has nftables support already included. At time of writing (May 2014) at least Fedora Rawhide (upcoming version 21) has support in conjunction with nftables version 0.2.0. Basic nftables configuration -Load kernel modules +Load kernel modules: Create filter tables -Create input chain in each filter table -Flush iptables and ip6tables to avoid interferences: +Create filter table: +Create input chain: + -Simple filter policy with nftables +Simple filter policy with nftables using only table “inet” Configuration Allow packets which are related to existing connection tracking entries -Allow IPv4 and IPv6 ICMP echo-request (aka ping) -Allow some important IPv6 ICMP traffic, without counter, but checking hop-limit for security -Allow incoming SSH for IPv4 and IPv6, using therefore the IP version aware table “inet” +Allow incoming SSH for IPv4 and IPv6 Reject/drop others + Result -Table for IPv4 filter -Table for IP version aware filter += 0 tcp dport <= 65535 counter packets 0 bytes 0 reject + udp dport >= 0 udp dport <= 65535 counter packets 0 bytes 0 drop + log prefix counter packets 0 bytes 0 drop + } +} +]]> +Hints for logging +To enable logging, an additonal kernel module must be loaded +BUT TAKE CARE, IT LOOKS LIKE THAT NO LOG LEVEL CAN BE SPEFICIED CURRENTLY IN nftables, resulting that events are logged with kern.emerg - POSSIBILITY OF FLODDING THE CONSOLE WITH LOG ENTRIES! +Fir initial test with logging it can be useful to disable kernel console logging in e.g. /etc/rsyslog.conf by putting a “#” in front of the related entry and restart logging daemon +Rule from above accepting SSH on port 22, but now with logging: + +Filter policy with nftables using tables “ip”, “ip6” and “inet” +As written above, if rules should be stored in related tables, it must be assured that earlier accepts are not discarded in the further table. This can be done using “meta mark set xxxx” on every accept rule and generic rules which accepts packets with “mark xxxx”. A resulting filter set would look like the following: +Table for IPv6 filter -Table for IP version aware filter - +} +]]> <!-- anchor id="chapter-security" -->Security Node security