From e522a4d966024d83a1a72cca427d668df6ea3787 Mon Sep 17 00:00:00 2001 From: pbldp <> Date: Sat, 6 Oct 2007 15:32:01 +0000 Subject: [PATCH] Fix broken URLs to TLDP-CVS --- .../Peter-Bieringer/Linux+IPv6-HOWTO.html | 1353 ++++++++--------- .../Peter-Bieringer/Linux+IPv6-HOWTO.lyx | 40 +- .../Peter-Bieringer/Linux+IPv6-HOWTO.pdf | Bin 783797 -> 783933 bytes .../Peter-Bieringer/Linux+IPv6-HOWTO.sgml | 309 ++-- 4 files changed, 848 insertions(+), 854 deletions(-) diff --git a/LDP/users/Peter-Bieringer/Linux+IPv6-HOWTO.html b/LDP/users/Peter-Bieringer/Linux+IPv6-HOWTO.html index 719bdd7c..e330fec7 100644 --- a/LDP/users/Peter-Bieringer/Linux+IPv6-HOWTO.html +++ b/LDP/users/Peter-Bieringer/Linux+IPv6-HOWTO.html @@ -58,27 +58,10 @@ COLSPAN="3" >Revision 0.60.2Revision 0.612007-10-03Revised by: PBRevision 0.60.12007-06-162007-10-06Revised by: PB

The goal of the Linux IPv6 HOWTO is to answer both basic and advanced questions about IPv6 on the Linux operating system. This HOWTO will provide the reader with enough information to install, configure, and use IPv6 applications on Linux machines. Intermediate releases of this HOWTO are available at

1.3. Version, History and To-Do
1.5. Technical
1.6. Preface
1.7. Used terms, glossary and shortcuts
1.8. Requirements for using this HOWTO
2.1. What is IPv6?
2.3. What do IPv6 addresses look like?
2.4. FAQ (Basics)
3.1. Addresses without a special prefix
3.2. Network part, also known as prefix
3.3. Address types (host part)
3.4. Prefix lengths for routing
4.2. IPv6-ready network configuration tools
4.3. IPv6-ready test/debug programs
4.4. IPv6-ready programs
4.5. IPv6-ready client programs (selection)
4.6. IPv6-ready server programs
5.1. Different network devices
5.2. Bringing interfaces up/down
6.1. Displaying existing IPv6 addresses
6.2. Add an IPv6 address
6.3. Removing an IPv6 address
7.1. Displaying existing IPv6 routes
7.2. Add an IPv6 route through a gateway
7.3. Removing an IPv6 route through a gateway
7.4. Add an IPv6 route through an interface
7.5. Removing an IPv6 route through an interface
7.6. FAQ for IPv6 routes
8.1. Displaying neighbors using “ip”
8.2. Manipulating neighbors table using “ip”
9.1. Types of tunnels
9.2. Displaying existing tunnels
11.1. How to access the /proc-filesystem
13.1. Server socket binding
14.1. Red Hat Linux and “clones”
14.2. SuSE Linux
15.1. Stateless auto-configuration
15.2. Stateful auto-configuration using Router Advertisement Daemon (radvd)
15.3. Dynamic Host Configuration Protocol v6 (DHCPv6)
16.1. Common information
17.2. Preparation
17.3. Usage
18.1. Node security
18.2. Access limitations
19.1. Modes of using encryption and authentication
19.2. Support in kernel (ESP and AH)
19.3. Automatic key exchange (IKE)
19.4. Additional informations:
22.2. Other programming languages
24.4. IPv6 Infrastructure
25. Revision history / Credits / The End
25.3. The End

1.1.1. Copyright


1.1.2. License

The Linux IPv6 HOWTO, a guide how to configure and use IPv6 on Linux systems.

Copyright © 2001-2007 Peter Bieringer

Copyright © 2001-2007 Peter Bieringer

This documentation is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.


1.1.3. About the author

1.1.3.1. Internet/IPv6 history of the author


1.1.3.2. Contact


1.3. Version, History and To-Do

1.3.1. Version


1.3.2. History

1.3.2.1. Major history


1.3.2.2. Full history


1.3.3. To-Do


1.4.1. To language

Note: an overview with URLs can be found at http://www.bieringer.de/linux/IPv6/.


1.4.1.1. Chinese


1.4.1.2. Polish


1.4.1.3. German

With 2002-11-10 a German translation was started by Georg Käfer <gkaefer at gmx dot at> and the first public version was published 2003-02-10. It's originally available on Deep Space 6 at With 2002-11-10 a German translation was started by Georg Käfer <gkaefer at gmx dot at> and the first public version was published 2003-02-10. It's originally available on Deep Space 6 at http://mirrors.deepspace6.net/Linux+IPv6-HOWTO-de/


1.4.1.4. French


1.4.1.5. Spanish


1.4.1.6. Italian


1.4.1.7. Japanese


1.4.1.8. Greek


1.4.1.9. Turkish


1.4.1.10. Portuguese-Brazil


1.5. Technical

1.5.1. Original source of this HOWTO

This HOWTO is currently written with LyX version 1.4.4 on a Fedora Core 6 system with template SGML/XML (DocBook book). It's available on This HOWTO is currently written with LyX version 1.5.1 on a Fedora Core 7 system with template SGML/XML (DocBook book). It's available on TLDP-CVS / users / Peter-Bieringer for contribution.


1.5.1.1. Code line wrapping

Code line wrapping is done using selfmade utility “lyxcodelinewrapper.pl”, you can get it from CVS for your own usage: TLDP-CVS / users / Peter-Bieringer


1.5.1.2. SGML generation


1.5.2. On-line references to the HTML version of this HOWTO (linking/anchors)

1.5.2.1. Master index page


1.5.2.2. Dedicated pages


1.6. Preface


1.6.1. How many versions of a Linux & IPv6 related HOWTO are floating around?


1.6.1.1. Linux IPv6 FAQ/HOWTO (outdated)


1.6.1.2. IPv6 & Linux - HowTo (maintained)


1.6.1.3. Linux IPv6 HOWTO (this document)


1.7. Used terms, glossary and shortcuts

1.7.1. Network related


1.7.2. Document related

1.7.2.1. Long code line wrapping signal char

The special character “¬” is used for signaling that this code line is wrapped for better viewing in PDF and PS files.

The special character “¬” is used for signaling that this code line is wrapped for better viewing in PDF and PS files.


1.7.2.2. Placeholders


1.7.2.3. Commands in the shell


1.8. Requirements for using this HOWTO

1.8.1. Personal prerequisites

1.8.1.1. Experience with Unix tools


1.8.1.2. Experience with networking theory


1.8.1.3. Experience with IPv4 configuration


1.8.1.4. Experience with the Domain Name System (DNS)


1.8.1.5. Experience with network debugging strategies


1.8.2. Linux operating system compatible hardware

2.1. What is IPv6?


2.2.1. Beginning

diff -u --recursive --new-file v2.1.7/linux/include/linux/in6.h
-¬ linux/include/linux/in6.h 
+¬ linux/include/linux/in6.h 
 --- v2.1.7/linux/include/linux/in6.h Thu Jan 1 02:00:00 1970 
 +++ linux/include/linux/in6.h Sun Nov 3 11:04:42 1996 
 @@ -0,0 +1,99 @@ 
@@ -1919,7 +1908,7 @@ CLASS="SECT2"
 >

2.2.2. In between


2.2.3. Current


2.2.4. Future


2.3. What do IPv6 addresses look like?

2001:0db8:0100:f101:0210:a4ff:fee3:9566  -> 
-¬ 2001:db8:100:f101:210:a4ff:fee3:9566

2.4. FAQ (Basics)

2.4.1. Why is the name IPv6 and not IPv5 as successor for IPv4?


2.4.2. IPv6 addresses: why such a high number of bits?


2.4.3. IPv6 addresses: why so small a number of bits on a new design?


3.1. Addresses without a special prefix

3.1.1. Localhost address


3.1.2. Unspecified address


3.1.3. IPv6 address with embedded IPv4 address


3.1.3.1. IPv4-mapped IPv6 address


3.1.3.2. IPv4-compatible IPv6 address


3.2. Network part, also known as prefix


3.2.1. Link local address type


3.2.2. Site local address type


3.2.3. Unique Local IPv6 Unicast Addresses


3.2.4. Global address type "(Aggregatable) global unicast"


3.2.4.1. 6bone test addresses


3.2.4.2. 6to4 addresses

ipv4="1.2.3.4"; sla="5"; printf "2002:%02x%02x:%02x%02x:%04x::1" `echo $ipv4
-¬ | tr "." " "` $sla

3.2.4.3. Assigned by provider for hierarchical routing


3.2.4.4. Addresses reserved for examples and documentation


3.2.5. Multicast addresses


3.2.5.1. Multicast scopes


3.2.5.2. Multicast types


3.2.5.3. Solicited node link-local multicast address


3.2.6. Anycast addresses


3.2.6.1. Subnet-router anycast address


3.3. Address types (host part)


3.3.1. Automatically computed (also known as stateless)


3.3.1.1. Privacy problem with automatically computed addresses and a solution


3.3.2. Manually set


3.4. Prefix lengths for routing


3.4.1. Prefix lengths (also known as "netmasks")


3.4.2. Matching a route


4.1.1. Check for IPv6 support in the current running kernel


4.1.2. Try to load IPv6 module


4.1.2.1. Automatically loading of module


4.1.3. Compile kernel with IPv6 capabilities


4.1.3.1. Compiling a vanilla kernel


4.1.3.2. Compiling a kernel with USAGI extensions


4.1.4. IPv6-ready network devices


4.1.4.1. Currently known never “IPv6 capable links”


4.1.4.2. Currently known “not supported IPv6 capable links”


4.2. IPv6-ready network configuration tools


4.2.1. net-tools package

# /sbin/ifconfig -? 2>& 1|grep -qw 'inet6' && echo "utility 'ifconfig' is
-¬ IPv6-ready"

4.2.2. iproute package


4.3. IPv6-ready test/debug programs


4.3.1.1. Specifying interface for IPv6 ping

# ping6 -I eth0 -c 1 fe80::2e0:18ff:fe90:9205 PING fe80::212:23ff:fe12:3456(fe80::212:23ff:fe12:3456) from -¬ fe80::212:34ff:fe12:3478 eth0: 56 data bytes +¬ fe80::212:34ff:fe12:3478 eth0: 56 data bytes 64 bytes from fe80::212:23ff:fe12:3456: icmp_seq=0 hops=64 time=445 usec --- fe80::2e0:18ff:fe90:9205 ping statistics --- 1 packets transmitted, 1 packets received, 0% packet loss round-trip -¬ min/avg/max/mdev = 0.445/0.445/0.445/0.000 ms


4.3.1.2. Ping6 to multicast addresses

# traceroute6 www.6bone.net traceroute to 6bone.net (3ffe:b00:c18:1::10) from 2001:0db8:0000:f101::2, 30 -¬ hops max, 16 byte packets +¬ hops max, 16 byte packets 1 localipv6gateway (2001:0db8:0000:f101::1) 1.354 ms 1.566 ms 0.407 ms 2 swi6T1-T0.ipv6.switch.ch (3ffe:2000:0:400::1) 90.431 ms 91.956 ms 92.377 ms 3 3ffe:2000:0:1::132 (3ffe:2000:0:1::132) 118.945 ms 107.982 ms 114.557 ms @@ -4085,7 +4074,7 @@ CLASS="SECT3" >


4.3.4.1. IPv6 ping to 2001:0db8:100:f101::1 native over a local link

# tcpdump -t -n -i eth0 -s 512 -vv ip6 or proto ipv6 tcpdump: listening on eth0 2001:0db8:100:f101:2e0:18ff:fe90:9205 > 2001:0db8:100:f101::1: icmp6: echo -¬ request (len 64, hlim 64) +¬ request (len 64, hlim 64) 2001:0db8:100:f101::1 > 2001:0db8:100:f101:2e0:18ff:fe90:9205: icmp6: echo -¬ reply (len 64, hlim 64)

4.3.4.2. IPv6 ping to 2001:0db8:100::1 routed through an IPv6-in-IPv4-tunnel

# tcpdump -t -n -i ppp0 -s 512 -vv ip6 or proto ipv6 tcpdump: listening on ppp0 1.2.3.4 > 5.6.7.8: 2002:ffff:f5f8::1 > 2001:0db8:100::1: icmp6: echo request -¬ (len 64, hlim 64) (DF) (ttl 64, id 0, len 124) +¬ (len 64, hlim 64) (DF) (ttl 64, id 0, len 124) 5.6.7.8 > 1.2.3.4: 2001:0db8:100::1 > 2002:ffff:f5f8::1: icmp6: echo reply (len -¬ 64, hlim 61) (ttl 23, id 29887, len 124) +¬ 64, hlim 61) (ttl 23, id 29887, len 124) 1.2.3.4 > 5.6.7.8: 2002:ffff:f5f8::1 > 2001:0db8:100::1: icmp6: echo request -¬ (len 64, hlim 64) (DF) (ttl 64, id 0, len 124) +¬ (len 64, hlim 64) (DF) (ttl 64, id 0, len 124) 5.6.7.8 > 1.2.3.4: 2001:0db8:100::1 > 2002:ffff:f5f8::1: icmp6: echo reply (len -¬ 64, hlim 61) (ttl 23, id 29919, len 124)


4.4. IPv6-ready programs


4.5. IPv6-ready client programs (selection)


4.5.1. Checking DNS for resolving IPv6 addresses


4.5.2. IPv6-ready telnet clients


4.5.3. IPv6-ready ssh clients

4.5.3.1. openssh


4.5.3.2. ssh.com


4.5.4. IPv6-ready web browsers


4.5.4.1. URLs for testing


4.6. IPv6-ready server programs

4.7.1. Using tools

4.7.1.1. Q: Cannot ping6 to link-local addresses


4.7.1.2. Q: Cannot ping6 or traceroute6 as normal user

5.1. Different network devices


5.1.1. Physically bounded


5.1.2. Virtually bounded


5.1.2.1. IPv6-in-IPv4 tunnel interfaces


5.1.2.2. PPP interfaces


5.1.2.3. ISDN HDLC interfaces


5.1.2.4. ISDN PPP interfaces


5.1.2.5. SLIP + PLIP


5.1.2.6. Ether-tap device


5.1.2.7. tun devices


5.1.2.8. ATM


5.1.2.9. Others


5.2. Bringing interfaces up/down


5.2.1. Using "ip"


5.2.2. Using "ifconfig"


6.1. Displaying existing IPv6 addresses


6.1.1. Using "ip"

# /sbin/ip -6 addr show dev eth0 3: eth0: <BROADCAST,MULTICAST,PROMISC,UP&gt; mtu 1500 qdisc pfifo_fast qlen -¬ 100 +¬ 100 inet6 2002:d950:f5f8:f101:2e0:18ff:fe90:9205/64 scope global dynamic valid_lft 16sec preferred_lft 6sec inet6 3ffe:400:100:f101:2e0:18ff:fe90:9205/64 scope global dynamic valid_lft 2591997sec preferred_lft 604797sec inet6 fe80::2e0:18ff:fe90:9205/10 -¬ scope link


6.1.2. Using "ifconfig"


6.2. Add an IPv6 address


6.2.1. Using "ip"


6.2.2. Using "ifconfig"


6.3. Removing an IPv6 address


6.3.1. Using "ip"


6.3.2. Using "ifconfig"


7.1. Displaying existing IPv6 routes


7.1.1. Using "ip"


7.1.2. Using "route"

# /sbin/route -A inet6 |grep -w "eth0" 2001:0db8:0:f101 ::/64 :: UA 256 0 0 eth0 <- Interface route for global -¬ address +¬ address fe80::/10 :: UA 256 0 0 eth0 <- Interface route for link-local -¬ address +¬ address ff00::/8 :: UA 256 0 0 eth0 <- Interface route for all multicast -¬ addresses +¬ addresses ::/0 :: UDA 256 0 0 eth0 <- Automatic default route


7.2. Add an IPv6 route through a gateway


7.2.1. Using "ip"

# /sbin/ip -6 route add <ipv6network>/<prefixlength> via <ipv6address>
-¬ [dev <device>]

7.2.2. Using "route"

# /sbin/route -A inet6 add <ipv6network>/<prefixlength> gw
-¬ <ipv6address> [dev <device>] 

7.3. Removing an IPv6 route through a gateway


7.3.1. Using "ip"

# /sbin/ip -6 route del <ipv6network>/<prefixlength> via <ipv6address>
-¬ [dev <device>]

7.3.2. Using "route"


7.4. Add an IPv6 route through an interface


7.4.1. Using "ip"

# /sbin/ip -6 route add <ipv6network>/<prefixlength> dev <device>
-¬ metric 1

7.4.2. Using "route"


7.5. Removing an IPv6 route through an interface


7.5.1. Using "ip"


7.5.2. Using "route"


7.6. FAQ for IPv6 routes

7.6.1. Support of an IPv6 default route


7.6.1.1. Clients (not routing any packet!)

# ip -6 route show | grep ^default default via fe80::212:34ff:fe12:3450 dev eth0 proto kernel metric 1024 expires -¬ 29sec mtu 1500 advmss 1440


7.6.1.2. Routers in case of packet forwarding


8.1. Displaying neighbors using “ip”


8.2. Manipulating neighbors table using “ip”

8.2.1. Manually add an entry


8.2.2. Manually delete an entry


8.2.3. More advanced settings


9.1. Types of tunnels


9.1.1. Static point-to-point tunneling: 6bone


9.1.2. Automatically tunneling


9.1.3.1. Generation of 6to4 prefix


9.1.3.2. 6to4 upstream tunneling


9.1.3.3. 6to4 downstream tunneling


9.1.3.4. Possible 6to4 traffic


9.2. Displaying existing tunnels

9.2.1. Using "ip"


9.2.2. Using "route"


9.3.1. Add point-to-point tunnels

9.3.1.1. Using "ip"

# /sbin/ip tunnel add <device> mode sit ttl <ttldefault> remote
-¬ <ipv4addressofforeigntunnel> local <ipv4addresslocal>
# /sbin/ip tunnel add sit1 mode sit ttl <ttldefault> remote
-¬ <ipv4addressofforeigntunnel1> local <ipv4addresslocal>
+¬ <ipv4addressofforeigntunnel1> local <ipv4addresslocal>
 # /sbin/ip link set dev sit1 up
 # /sbin/ip -6 route add <prefixtoroute1> dev sit1 metric 1
 
 # /sbin/ip tunnel add sit2 mode sit ttl <ttldefault>
-¬ <ipv4addressofforeigntunnel2> local <ipv4addresslocal>
+¬ <ipv4addressofforeigntunnel2> local <ipv4addresslocal>
 # /sbin/ip link set dev sit2 up
 # /sbin/ip -6 route add <prefixtoroute2> dev sit2 metric 1
 
 # /sbin/ip tunnel add sit3 mode sit ttl <ttldefault>
-¬ <ipv4addressofforeigntunnel3> local <ipv4addresslocal>
+¬ <ipv4addressofforeigntunnel3> local <ipv4addresslocal>
 # /sbin/ip link set dev sit3 up
 # /sbin/ip -6 route add <prefixtoroute3> dev sit3 metric 1

9.3.1.2. Using "ifconfig" and "route" (deprecated)


9.3.1.3. Using "route" only

# /sbin/ifconfig sit0 up # /sbin/route -A inet6 add <prefixtoroute1> gw -¬ ::<ipv4addressofforeigntunnel1> dev sit0 +¬ ::<ipv4addressofforeigntunnel1> dev sit0 # /sbin/route -A inet6 add <prefixtoroute2> gw -¬ ::<ipv4addressofforeigntunnel2> dev sit0 +¬ ::<ipv4addressofforeigntunnel2> dev sit0 # /sbin/route -A inet6 add <prefixtoroute3> gw -¬ ::<ipv4addressofforeigntunnel3> dev sit0


9.3.2. Removing point-to-point tunnels


9.3.2.1. Using "ip"


9.3.2.2. Using "ifconfig" and "route" (deprecated because not very funny)


9.3.2.3. Using "route"

# /sbin/route -A inet6 del <prefixtoroute1> gw
-¬ ::<ipv4addressofforeigntunnel1> dev sit0
+¬ ::<ipv4addressofforeigntunnel1> dev sit0
 # /sbin/route -A inet6 del <prefixtoroute2> gw
-¬ ::<ipv4addressofforeigntunnel2> dev sit0
+¬ ::<ipv4addressofforeigntunnel2> dev sit0
 # /sbin/route -A inet6 del <prefixtoroute3> gw
-¬ ::<ipv4addressofforeigntunnel3> dev sit0
+¬ ::<ipv4addressofforeigntunnel3> dev sit0
 
 # /sbin/ifconfig sit0 down

9.3.3. Numbered point-to-point tunnels


9.4.1. Add a 6to4 tunnel


9.4.1.1. Using "ip" and a dedicated tunnel device


9.4.1.2. Using "ifconfig" and "route" and generic tunnel device “sit0” (deprecated)


9.4.2. Remove a 6to4 tunnel

9.4.2.1. Using "ip" and a dedicated tunnel device


9.4.2.2. Using “ifconfig” and “route” and generic tunnel device “sit0” (deprecated)


11.1. How to access the /proc-filesystem

11.1.1. Using “cat” and “echo”


11.1.1.1. Retrieving a value


11.1.1.2. Setting a value


11.1.2. Using “sysctl”


11.1.2.1. Retrieving a value


11.1.2.2. Setting a value


11.1.2.3. Additionals


11.1.3. Values found in /proc-filesystems

11.2.1. conf/default/*


11.2.2. conf/all/*


11.2.2.1. conf/all/forwarding


11.2.3. conf/interface/*


11.2.3.1. accept_ra


11.2.3.2. accept_redirects


11.2.3.3. autoconf


11.2.3.4. dad_transmits


11.2.3.5. forwarding


11.2.3.6. hop_limit


11.2.3.7. mtu


11.2.3.8. router_solicitation_delay


11.2.3.9. router_solicitation_interval


11.2.3.10. router_solicitations


11.2.4. neigh/default/*


11.2.4.1. gc_thresh1


11.2.4.2. gc_thresh2


11.2.4.3. gc_thresh3


11.2.4.4. gc_interval


11.2.5. neigh/interface/*


11.2.5.1. anycast_delay


11.2.5.2. gc_stale_time


11.2.5.3. proxy_qlen


11.2.5.4. unres_qlen


11.2.5.5. app_solicit


11.2.5.6. locktime


11.2.5.7. retrans_time


11.2.5.8. base_reachable_time


11.2.5.9. mcast_solicit


11.2.5.10. ucast_solicit


11.2.5.11. delay_first_probe_time


11.2.5.12. proxy_delay


11.2.6. route/*


11.2.6.1. flush


11.2.6.2. gc_interval


11.2.6.3. gc_thresh


11.2.6.4. mtu_expires


11.2.6.5. gc_elasticity


11.2.6.6. gc_min_interval


11.2.6.7. gc_timeout


11.2.6.8. min_adv_mss


11.2.6.9. max_size


11.3.1. ip_*

11.3.1.1. ip_local_port_range


11.3.2. tcp_*


11.3.3. icmp_*


11.3.4. others


11.4.1. if_inet6


11.4.2. ipv6_route


11.4.3. sockstat6


11.4.4. tcp6


11.4.5. udp6


11.4.6. igmp6


11.4.7. raw6


11.4.8. ip6_flowlabel


11.4.9. rt6_stats


11.4.10. snmp6


11.4.11. ip6_tables_names

13.1. Server socket binding

13.1.1. Using “netstat” for server socket binding check

# netstat -nlptu Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State -¬ PID/Program name +¬ PID/Program name tcp 0 0 0.0.0.0:32768 0.0.0.0:* LISTEN -¬ 1258/rpc.statd +¬ 1258/rpc.statd tcp 0 0 0.0.0.0:32769 0.0.0.0:* LISTEN -¬ 1502/rpc.mountd +¬ 1502/rpc.mountd tcp 0 0 0.0.0.0:515 0.0.0.0:* LISTEN -¬ 22433/lpd Waiting +¬ 22433/lpd Waiting tcp 0 0 1.2.3.1:139 0.0.0.0:* LISTEN -¬ 1746/smbd +¬ 1746/smbd tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN -¬ 1230/portmap +¬ 1230/portmap tcp 0 0 0.0.0.0:6000 0.0.0.0:* LISTEN -¬ 3551/X +¬ 3551/X tcp 0 0 1.2.3.1:8081 0.0.0.0:* LISTEN -¬ 18735/junkbuster +¬ 18735/junkbuster tcp 0 0 1.2.3.1:3128 0.0.0.0:* LISTEN -¬ 18822/(squid) +¬ 18822/(squid) tcp 0 0 127.0.0.1:953 0.0.0.0:* LISTEN -¬ 30734/named +¬ 30734/named tcp 0 0 ::ffff:1.2.3.1:993 :::* LISTEN -¬ 6742/xinetd-ipv6 +¬ 6742/xinetd-ipv6 tcp 0 0 :::13 :::* LISTEN -¬ 6742/xinetd-ipv6 +¬ 6742/xinetd-ipv6 tcp 0 0 ::ffff:1.2.3.1:143 :::* LISTEN -¬ 6742/xinetd-ipv6 +¬ 6742/xinetd-ipv6 tcp 0 0 :::53 :::* LISTEN -¬ 30734/named +¬ 30734/named tcp 0 0 :::22 :::* LISTEN -¬ 1410/sshd +¬ 1410/sshd tcp 0 0 :::6010 :::* LISTEN -¬ 13237/sshd +¬ 13237/sshd udp 0 0 0.0.0.0:32768 0.0.0.0:* -¬ 1258/rpc.statd +¬ 1258/rpc.statd udp 0 0 0.0.0.0:2049 0.0.0.0:* -¬ - +¬ - udp 0 0 0.0.0.0:32770 0.0.0.0:* -¬ 1502/rpc.mountd +¬ 1502/rpc.mountd udp 0 0 0.0.0.0:32771 0.0.0.0:* -¬ - +¬ - udp 0 0 1.2.3.1:137 0.0.0.0:* -¬ 1751/nmbd +¬ 1751/nmbd udp 0 0 0.0.0.0:137 0.0.0.0:* -¬ 1751/nmbd +¬ 1751/nmbd udp 0 0 1.2.3.1:138 0.0.0.0:* -¬ 1751/nmbd +¬ 1751/nmbd udp 0 0 0.0.0.0:138 0.0.0.0:* -¬ 1751/nmbd +¬ 1751/nmbd udp 0 0 0.0.0.0:33044 0.0.0.0:* -¬ 30734/named +¬ 30734/named udp 0 0 1.2.3.1:53 0.0.0.0:* -¬ 30734/named +¬ 30734/named udp 0 0 127.0.0.1:53 0.0.0.0:* -¬ 30734/named +¬ 30734/named udp 0 0 0.0.0.0:67 0.0.0.0:* -¬ 1530/dhcpd +¬ 1530/dhcpd udp 0 0 0.0.0.0:67 0.0.0.0:* -¬ 1530/dhcpd +¬ 1530/dhcpd udp 0 0 0.0.0.0:32858 0.0.0.0:* -¬ 18822/(squid) +¬ 18822/(squid) udp 0 0 0.0.0.0:4827 0.0.0.0:* -¬ 18822/(squid) +¬ 18822/(squid) udp 0 0 0.0.0.0:111 0.0.0.0:* -¬ 1230/portmap +¬ 1230/portmap udp 0 0 :::53 :::* -¬ 30734/named


13.2.1. Router discovery

15:43:49.484751 fe80::212:34ff:fe12:3450 > ff02::1: icmp6: router
-¬ advertisement(chlim=64, router_ltime=30, reachable_time=0,
-¬ retrans_time=0)(prefix info: AR valid_ltime=30, preffered_ltime=20,
-¬ prefix=2002:0102:0304:1::/64)(prefix info: LAR valid_ltime=2592000,
-¬ preffered_ltime=604800, prefix=2001:0db8:0:1::/64)(src lladdr:
-¬ 0:12:34:12:34:50) (len 88, hlim 255)

13.2.1.2. Router solicitation

15:44:21.152646 fe80::212:34ff:fe12:3456 > ff02::2: icmp6: router solicitation
-¬ (src lladdr: 0:12:34:12:34:56) (len 16, hlim 255)

13.2.2. Neighbor discovery

13.2.2.1. Neighbor discovery solicitation for duplicate address detection

15:44:17.712338 :: > ff02::1:ff12:3456: icmp6: neighbor sol: who has
-¬ fe80::212:34ff:fe12:3456(src lladdr: 0:12:34:12:34:56) (len 32, hlim 255)
15:44:21.905596 :: > ff02::1:ff12:3456: icmp6: neighbor sol: who has
-¬ 2002:0102:0304:1:212:34ff:fe12:3456(src lladdr: 0:12:34:12:34:56) (len 32,
-¬ hlim 255)
15:44:22.304028 :: > ff02::1:ff12:3456: icmp6: neighbor sol: who has
-¬ 2001:0db8:0:1:212:34ff:fe12:3456(src lladdr: 0:12:34:12:34:56) (len 32, hlim
-¬ 255)

13.2.2.2. Neighbor discovery solicitation for looking for host or gateway

13:07:47.664538 2002:0102:0304:1:2e0:18ff:fe90:9205 > ff02::1:ff00:10: icmp6:
-¬ neighbor sol: who has 2001:0db8:0:1::10(src lladdr: 0:e0:18:90:92:5) (len 32,
-¬ hlim 255)
13:11:20.870070 fe80::2e0:18ff:fe90:9205 > ff02::1:ff00:10: icmp6: neighbor
-¬ sol: who has fe80::10(src lladdr: 0:e0:18:90:92:5) (len 32, hlim 255)

14.1. Red Hat Linux and “clones”


14.1.1. Test for IPv6 support of network configuration scripts

# test -f /etc/sysconfig/network-scripts/network-functions-ipv6 && echo "Main
-¬ IPv6 script library exists"
# source /etc/sysconfig/network-scripts/network-functions-ipv6 &&
-¬ getversion_ipv6_functions 
+¬ getversion_ipv6_functions 
 20011124

14.1.2. Short hint for enabling IPv6 on current RHL 7.1, 7.2, 7.3, ...


14.2. SuSE Linux


14.2.1. SuSE Linux 7.3


14.2.2. SuSE Linux 8.0


17.3.2.3. Insert a log rule at the input filter with options

# ip6tables --table filter --append INPUT  -j LOG --log-prefix "INPUT:"
-¬ --log-level 7 

17.3.2.4. Insert a drop rule at the input filter


17.3.2.5. Delete a rule by number


17.3.2.6. Enable connection tracking


17.3.2.7. Allow ICMPv6


17.3.2.8. Rate-limiting

# ip6tables -A INPUT --protocol icmpv6 --icmpv6-type echo-request
-¬ -j ACCEPT --match limit --limit 30/minute

17.3.2.9. Allow incoming SSH

# ip6tables -A INPUT -i sit+ -p tcp -s 2001:0db8:100::1/128 --sport 512:65535
-¬ --dport 22 -j ACCEPT 
# ip6tables -A OUTPUT -o sit+ -p tcp -d 2001:0db8:100::1/128 --dport 512:65535
-¬ --sport 22 ! --syn -j ACCEPT 

17.3.2.10. Enable tunneled IPv6-in-IPv4


17.3.2.11. Protection against incoming TCP connection requests


17.3.2.12. Protection against incoming UDP connection requests


17.3.3. Examples

17.3.3.1. Simple example for Fedora Core


17.3.3.2. Sophisticated example

18.1. Node security


18.2. Access limitations


18.3.1. Legal issues


18.3.2. Security auditing using IPv6-enabled netcat


18.3.3. Security auditing using IPv6-enabled nmap


18.3.4. Security auditing using IPv6-enabled strobe


18.3.5. Audit results


19.1. Modes of using encryption and authentication


19.1.1. Transport mode


19.1.2. Tunnel mode


19.2. Support in kernel (ESP and AH)

19.2.1. Support in vanilla Linux kernel 2.4.x


19.2.2. Support in vanilla Linux kernel 2.6.x


19.3. Automatic key exchange (IKE)


19.3.1. IKE daemon “racoon”


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


19.3.1.2. Configuration of the IKE daemon “racoon”


19.3.1.3. Running IPsec with IKE daemon “racoon”


19.3.2. IKE daemon “pluto”


19.3.2.1. Configuration of the IKE daemon “pluto”


19.3.2.2. Running IPsec with IKE daemon “pluto”


19.4. Additional informations:


21.1.1. Listening on IPv6 addresses


21.1.1.1. Enable BIND named for listening on IPv6 address

# netstat -lnptu |grep "named\W*$" tcp 0 0 :::53 :::* LISTEN 1234/named -¬ # incoming TCP requests +¬ # incoming TCP requests udp 0 0 1.2.3.4:53 0.0.0.0:* 1234/named -¬ # incoming UDP requests to IPv4 1.2.3.4 +¬ # incoming UDP requests to IPv4 1.2.3.4 udp 0 0 127.0.0.1:53 0.0.0.0:* 1234/named -¬ # incoming UDP requests to IPv4 localhost +¬ # incoming UDP requests to IPv4 localhost udp 0 0 0.0.0.0:32868 0.0.0.0:* 1234/named -¬ # dynamic chosen port for outgoing queries +¬ # dynamic chosen port for outgoing queries udp 0 0 :::53 :::* 1234/named -¬ # incoming UDP request to any IPv6


21.1.1.2. Disable BIND named for listening on IPv6 address


21.1.2. IPv6 enabled Access Control Lists (ACL)


21.1.3. Sending queries with dedicated IPv6 address


21.1.4. Per zone defined dedicated IPv6 addresses


21.1.4.1. Transfer source address


21.1.4.2. Notify source address


21.1.5. IPv6 DNS zone files examples


21.1.6. Serving IPv6 related DNS data


21.1.6.1. Current best practice


21.1.7. Checking IPv6-enabled connect


21.1.7.1. IPv6 connect, but denied by ACL

Jan 3 12:43:32 gate named[12347]: client
-¬ 2001:0db8:200:f101:212:34ff:fe12:3456#32770: 
+¬ 2001:0db8:200:f101:212:34ff:fe12:3456#32770: 
  query denied

21.1.7.2. Successful IPv6 connect

# netstat -lnptu -A inet6 |grep "xinetd*" tcp 0 0 ::ffff:192.168.1.1:993 :::* LISTEN 12345/xinetd-ipv6 tcp 0 0 :::13 :::* LISTEN 12345/xinetd-ipv6 <- service -¬ daytime/tcp +¬ daytime/tcp tcp 0 0 ::ffff:192.168.1.1:143 :::* LISTEN 12345/xinetd-ipv6


21.3.1. Listening on IPv6 addresses


21.3.1.1. Virtual host listen on an IPv6 address only


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


21.3.1.3. Additional notes


21.4.1. Configuring radvd

21.4.1.1. Simple configuration


21.4.1.2. Special 6to4 configuration


21.4.2. Debugging


21.5.1. Configuration of the DHCPv6 server (dhcp6s)

21.5.1.1. Simple configuration


21.5.2. Configuration of the DHCPv6 client (dhcp6c)

21.5.2.1. Simple configuration


21.5.3. Usage

21.5.3.1. dhcpv6_server


21.5.3.2. dhcpv6_client


21.5.4. Debugging

21.5.4.1. dhcpv6_server


21.5.4.2. dhcpv6_client


21.6.1. Filtering capabilities


21.6.2. Which program uses tcp_wrapper


21.6.3. Usage


21.6.3.1. Example for /etc/hosts.allow


21.6.3.2. Example for /etc/hosts.deny


21.6.4. Logging


21.6.4.1. Refused connection

Jan 2 20:40:44 gate xinetd-ipv6[12346]: FAIL: daytime-stream libwrap
-¬ from=::ffff:1.2.3.4
+¬ from=::ffff:1.2.3.4
 Jan 2 20:32:06 gate xinetd-ipv6[12346]: FAIL: daytime-stream libwrap 
  from=2001:0db8:100:200::212:34ff:fe12:3456
Jan 2 20:24:17 gate sshd[12345]: refused connect from ::ffff:1.2.3.4
-¬ (::ffff:1.2.3.4)
+¬ (::ffff:1.2.3.4)
 Jan 2 20:39:33 gate sshd[12345]: refused connect 
  from 2001:0db8:100:200::212:34ff:fe12:3456
-¬ (2001:0db8:100:200::212:34ff:fe12:3456)

21.6.4.2. Permitted connection

Jan 2 20:37:50 gate xinetd-ipv6[12346]: START: daytime-stream pid=0
-¬ from=::ffff:1.2.3.4 
+¬ from=::ffff:1.2.3.4 
 Jan 2 20:37:56 gate xinetd-ipv6[12346]: START: daytime-stream pid=0 
  from=2001:0db8:100:200::212:34ff:fe12:3456
Jan 2 20:43:10 gate sshd[21975]: Accepted password for user from ::ffff:1.2.3.4
-¬ port 33381 ssh2
+¬ port 33381 ssh2
 Jan 2 20:42:19 gate sshd[12345]: Accepted password for user 
  from 2001:0db8:100:200::212:34ff:fe12:3456 port 33380 ssh2

21.7.1. Listening on IPv6 addresses

21.8.1. Listening on IPv6 addresses


22.1.1. Address Structures


22.1.1.1. IPv4 sockaddr_in


22.1.1.2. IPv6 sockaddr_in6

The sin6_flowinfo field is used for flow control, but is not yet standardized and can be ignored.

The sin6_scope_id field has an odd use, and it seems (at least to this naïve author) that the IPv6 designers took a huge step backwards when devising this. Apparently, 128-bit IPv6 network addresses are not unique. For example, it is possible to have two hosts, on separate networks, with the same link-local address (see Figure 1). In order to pass information to a specific host, more than just the network address is required; the scope identifier must also be specified. In Linux, the network interface name is used for the scope identifier (e.g. “eth0”) [be warned that the scope identifier is implementation dependent!]. Use the ifconfig(1M) command to display a list of active network interfaces.

The sin6_scope_id field has an odd use, and it seems (at least to this naïve author) that the IPv6 designers took a huge step backwards when devising this. Apparently, 128-bit IPv6 network addresses are not unique. For example, it is possible to have two hosts, on separate networks, with the same link-local address (see Figure 1). In order to pass information to a specific host, more than just the network address is required; the scope identifier must also be specified. In Linux, the network interface name is used for the scope identifier (e.g. “eth0”) [be warned that the scope identifier is implementation dependent!]. Use the ifconfig(1M) command to display a list of active network interfaces.

A colon-hex network address can be augmented with the scope identifier to produce a "scoped address”. The percent sign ('%') is used to delimit the network address from the scope identifier. For example, fe80::1%eth0 is a scoped IPv6 address where fe80::1 represents the 128-bit network address and eth0 is the network interface (i.e. the scope identifier). Thus, if a host resides on two networks, such as Host B in example below, the user now has to know which path to take in order to get to a particular host. In Figure 1, Host B addresses Host A using the scoped address fe80::1%eth0, while Host C is addressed with fe80::1%eth1.


22.1.1.3. Generic Addresses


22.1.2. Lookup Functions


22.1.3. Quirks Encountered


22.1.3.1. IPv4 Mapped Addresses


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


22.1.3.3. Client & Server Residing on the Same Machine


22.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:


22.1.4.1. 'Daytime' Server Code


22.1.4.2. 'Daytime' TCP Client Code


22.1.4.3. 'Daytime' UDP Client Code


22.2. Other programming languages

24.6.1. Testing tools


24.6.2. Information retrievement


24.6.3. IPv6 Looking Glasses


24.6.4. Helper applications


Chapter 25. Revision history / Credits / The End


25.1.1. Releases 0.x

0.61

2007-10-06/PB: fix broken URLs to TLDP-CVS, minor URL update.

0.60.2

0.36

2002-12-16/PB: Check of and fix broken links (credits to Georg Käfer), some spelling fixes

2002-12-16/PB: Check of and fix broken links (credits to Georg Käfer), some spelling fixes

0.35
0.25

2002-05-16/PB: Cosmetic fix for 2^128, thanks to José Abílio Oliveira Matos for help with LyX

2002-05-16/PB: Cosmetic fix for 2^128, thanks to José Abílio Oliveira Matos for help with LyX

0.24
  • Georg Käfer <gkaefer at gmx dot at>: For detection of no proper PDF creation (fixed now by LDP maintainer Greg Ferguson), input for German books, big list of URLs, checking all URLs, many more suggestions, corrections and contributions, and the German translation

    Georg Käfer <gkaefer at gmx dot at>: For detection of no proper PDF creation (fixed now by LDP maintainer Greg Ferguson), input for German books, big list of URLs, checking all URLs, many more suggestions, corrections and contributions, and the German translation


  • 25.2.2. Other credits

    25.2.2.1. Document technique related


    25.3. The End

    0.60.2 2007-10-03 P -B -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset ERT -status inlined - -\begin_layout Standard - - 0.60.1 2007-06-16 P -B + 0.61 2007-10-06 PB + \end_layout \end_inset @@ -549,6 +534,17 @@ Looks like the document's change frequency is mostly less than once per To language \end_layout +\begin_layout Standard +Note: an overview with URLs can be found at +\begin_inset LatexCommand htmlurl +name "http://www.bieringer.de/linux/IPv6/" +target "http://www.bieringer.de/linux/IPv6/" + +\end_inset + +. +\end_layout + \begin_layout Subsubsection Chinese \end_layout @@ -722,12 +718,12 @@ Original source of this HOWTO \end_layout \begin_layout Standard -This HOWTO is currently written with LyX version 1.4.4 on a Fedora Core 6 +This HOWTO is currently written with LyX version 1.5.1 on a Fedora Core 7 system with template SGML/XML (DocBook book). It's available on \begin_inset LatexCommand url name "TLDP-CVS / users / Peter-Bieringer" -target "http://cvsview.tldp.org/index.cgi/LDP/users/Peter-Bieringer/" +target "http://cvs.tldp.org/go.to/LDP/LDP/users/Peter-Bieringer/" \end_inset @@ -750,7 +746,7 @@ lyxcodelinewrapper.pl , you can get it from CVS for your own usage: \begin_inset LatexCommand url name "TLDP-CVS / users / Peter-Bieringer" -target "http://cvsview.tldp.org/index.cgi/LDP/users/Peter-Bieringer/" +target "http://cvs.tldp.org/go.to/LDP/LDP/users/Peter-Bieringer/" \end_inset @@ -27125,6 +27121,10 @@ Versions x.y.z are work-in-progress and published as LyX and SGML file on Releases 0.x \end_layout +\begin_layout Description +0.61 2007-10-06/PB: fix broken URLs to TLDP-CVS, minor URL update. +\end_layout + \begin_layout Description 0.60.2 2007-10-03/PB: fix description of sysctl/autoconf (credits to Francois-Xavi er Le Bail) diff --git a/LDP/users/Peter-Bieringer/Linux+IPv6-HOWTO.pdf b/LDP/users/Peter-Bieringer/Linux+IPv6-HOWTO.pdf index 09c4b9b4c4f5f6e7e40af3ca802e83157274830f..287a4e159efe1727073b775136139ab150e4e749 100644 GIT binary patch delta 134133 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 E1640$CjbBd delta 133928 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%0D}zE_Wzh6uO0mqQIHp~V%scoq1j|4loQ}u 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 z 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 IPv6 HOWTO (en) PeterBieringer

    pb at bieringer dot de
    - 0.60.2 2007-10-03 PB - 0.60.1 2007-06-16 PB + 0.61 2007-10-06 PB 0.60 2007-05-31 PB 0.51 2006-11-08 PB @@ -34,7 +33,7 @@ The Linux IPv6 HOWTO, a guide how to configure and use IPv6 on Linux systems. -Copyright © 2001-2007 Peter Bieringer +Copyright © 2001-2007 Peter Bieringer This documentation is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. @@ -83,13 +82,13 @@ Translations always have to contain the URL, version number and copyright of the original document (but yours, too). Pls. don't translate the original changelog, this is not very useful - also do not translate the full section about available translations, can be run out-of-date, add an URL to this section here in the English howto. Looks like the document's change frequency is mostly less than once per month. Since version 0.27 it looks like that most of the content contributed by me has been written. Translations always have to use the English version as source. To language - +Note: an overview with URLs can be found at http://www.bieringer.de/linux/IPv6/. Chinese A Chinese translation by Burma Chen <expns at yahoo dot com> (announced to me at 2002-10-31) can be found on the TLDP: http://www.ibiblio.org/pub/Linux/docs/HOWTO/translations/zh/Linux-IPv6-HOWTO.txt.gz (g'zipped txt). It's a snapshot translation, don't know whether kept up-to-date. Polish Since 2002-08-16 a Polish translation was started and is still in progress by Lukasz Jokiel <Lukasz dot Jokiel at klonex dot com dot pl>. Taken source: CVS-version 1.29 of LyX file, which was source for howto version 0.27. Status is still work-in-progress (2004-08-30). German -With 2002-11-10 a German translation was started by Georg Käfer <gkaefer at gmx dot at> and the first public version was published 2003-02-10. It's originally available on Deep Space 6 at http://mirrors.deepspace6.net/Linux+IPv6-HOWTO-de/ (mirrored e.g. on http://mirrors.bieringer.de/Linux+IPv6-HOWTO-de/). This version will stay up-to-date as much as possible. +With 2002-11-10 a German translation was started by Georg Käfer <gkaefer at gmx dot at> and the first public version was published 2003-02-10. It's originally available on Deep Space 6 at http://mirrors.deepspace6.net/Linux+IPv6-HOWTO-de/ (mirrored e.g. on http://mirrors.bieringer.de/Linux+IPv6-HOWTO-de/). This version will stay up-to-date as much as possible. French With 2003-04-09 a French translation was started by Michel Boucey <mboucey at free dot fr> and the first public version was published 2003-05-09. It's originally available on Deep Space 6 at http://mirrors.deepspace6.net/Linux+IPv6-HOWTO-fr/ (mirrored e.g. on http://mirrors.bieringer.de/Linux+IPv6-HOWTO-fr/). Spanish @@ -107,9 +106,9 @@ Technical <!-- anchor id="general-original-source" -->Original source of this HOWTO -This HOWTO is currently written with LyX version 1.4.4 on a Fedora Core 6 system with template SGML/XML (DocBook book). It's available on TLDP-CVS / users / Peter-Bieringer for contribution. +This HOWTO is currently written with LyX version 1.5.1 on a Fedora Core 7 system with template SGML/XML (DocBook book). It's available on TLDP-CVS / users / Peter-Bieringer for contribution. Code line wrapping -Code line wrapping is done using selfmade utility “lyxcodelinewrapper.pl”, you can get it from CVS for your own usage: TLDP-CVS / users / Peter-Bieringer +Code line wrapping is done using selfmade utility “lyxcodelinewrapper.pl”, you can get it from CVS for your own usage: TLDP-CVS / users / Peter-Bieringer SGML generation SGML/XML is generated using export function in LyX. On-line references to the HTML version of this HOWTO (linking/anchors) @@ -141,7 +140,7 @@ Document related Long code line wrapping signal char -The special character “¬” is used for signaling that this code line is wrapped for better viewing in PDF and PS files. +The special character “¬” is used for signaling that this code line is wrapped for better viewing in PDF and PS files. Placeholders In generic examples you will sometimes find the following: @@ -181,7 +180,7 @@ Beginning The first IPv6 related network code was added to the Linux kernel 2.1.8 in November 1996 by Pedro Roque. It was based on the BSD API: For simplifications, leading zeros of each 16 bit block can be omitted: -¬ 2001:db8:100:f101:210:a4ff:fee3:9566 +¬ 2001:db8:100:f101:210:a4ff:fee3:9566 ]]>One sequence of 16 bit blocks containing only zeroes can be replaced with “::“. But not more than one at a time, otherwise it is no longer a unique representation. 2001:db8:100:f101::1 ]]>The biggest reduction is seen by the IPv6 localhost address: @@ -330,7 +329,7 @@ Because IPv6 is now in production, this prefix is no longer be delegated and is A small shell command line can help you generating such address out of a given IPv4 one: See also tunneling using 6to4 and information about 6to4 relay routers. Assigned by provider for hierarchical routing These addresses are delegated to Internet service providers (ISP) and begin currently with @@ -458,7 +457,7 @@ Because IPv6 is now in production, this prefix is no longer be delegated and is The net-tool package includes some tools like ifconfig and route, which helps you to configure IPv6 on an interface. Look at the output of ifconfig -? or route -?, if something is shown like IPv6 or inet6, then the tool is IPv6-ready. Auto-magically check: & 1|grep -qw 'inet6' && echo "utility 'ifconfig' is -¬ IPv6-ready" +¬ IPv6-ready" ]]>Same check can be done for route: & 1|grep -qw 'inet6' && echo "utility 'route' is IPv6-ready" ]]> @@ -492,12 +491,12 @@ connect: Invalid argument ]]>In this case you have to specify the interface additionally like shown here: Ping6 to multicast addresses An interesting mechanism to detect IPv6-active hosts on a link is to ping6 to the link-local all-node multicast address: @@ -510,7 +509,7 @@ PING ff02::1(ff02::1) from fe80:::2ab:cdff:feef:0123 eth0: 56 data bytes This program is normally included in package iputils. It's a program similar to IPv4 traceroute. Below you will see an example: 2001:0db8:100:f101::1: icmp6: echo -¬ request (len 64, hlim 64) +¬ request (len 64, hlim 64) 2001:0db8:100:f101::1 > 2001:0db8:100:f101:2e0:18ff:fe90:9205: icmp6: echo -¬ reply (len 64, hlim 64) +¬ reply (len 64, hlim 64) ]]> IPv6 ping to 2001:0db8:100::1 routed through an IPv6-in-IPv4-tunnel 1.2.3.4 and 5.6.7.8 are tunnel endpoints (all addresses are examples) 5.6.7.8: 2002:ffff:f5f8::1 > 2001:0db8:100::1: icmp6: echo request -¬ (len 64, hlim 64) (DF) (ttl 64, id 0, len 124) +¬ (len 64, hlim 64) (DF) (ttl 64, id 0, len 124) 5.6.7.8 > 1.2.3.4: 2001:0db8:100::1 > 2002:ffff:f5f8::1: icmp6: echo reply (len -¬ 64, hlim 61) (ttl 23, id 29887, len 124) +¬ 64, hlim 61) (ttl 23, id 29887, len 124) 1.2.3.4 > 5.6.7.8: 2002:ffff:f5f8::1 > 2001:0db8:100::1: icmp6: echo request -¬ (len 64, hlim 64) (DF) (ttl 64, id 0, len 124) +¬ (len 64, hlim 64) (DF) (ttl 64, id 0, len 124) 5.6.7.8 > 1.2.3.4: 2001:0db8:100::1 > 2002:ffff:f5f8::1: icmp6: echo reply (len -¬ 64, hlim 61) (ttl 23, id 29919, len 124) +¬ 64, hlim 61) (ttl 23, id 29919, len 124) ]]> IPv6-ready programs Current distributions already contain the most needed IPv6 enabled client and servers. See first on IPv6+Linux-Status-Distribution. If still not included, you can check IPv6 & Linux - Current Status - Applications whether the program is already ported to IPv6 and usable with Linux. For common used programs there are some hints available at IPv6 & Linux - HowTo - Part 3 and IPv6 & Linux - HowTo - Part 4. @@ -685,12 +684,12 @@ inet6 fec0:0:0:f101::1/64 scope site Here you see some auto-magically configured IPv6 addresses and their lifetime. Using "ifconfig" Usage: @@ -749,11 +748,11 @@ default proto kernel metric 256 mtu 1500 advmss 1440 ]]>Example (output is filtered for interface eth0). Here you see different IPv6 routes for different addresses on a single interface. Add an IPv6 route through a gateway @@ -761,14 +760,14 @@ ff00::/8 :: UA 256 0 0 eth0 <- Interface route for all multicast Using "ip" Usage: / via -¬ [dev ] +¬ [dev ] ]]>Example: Using "route" Usage: / gw -¬ [dev ] +¬ [dev ] ]]>A device can be needed, too, if the IPv6 address of the gateway is a link local one. Following shown example adds a route for all currently global addresses (2000::/3) through gateway 2001:0db8:0:f101::1 Using "ip" Usage: / via -¬ [dev ] +¬ [dev ] ]]>Example: @@ -793,7 +792,7 @@ ff00::/8 :: UA 256 0 0 eth0 <- Interface route for all multicast Using "ip" Usage: / dev -¬ metric 1 +¬ metric 1 ]]>Example: Metric “1” is used here to be compatible with the metric used by route, because the default metric on using “ip” is “1024”. @@ -826,7 +825,7 @@ ff00::/8 :: UA 256 0 0 eth0 <- Interface route for all multicast Client can setup a default route like prefix “::/0”, they also learn such route on autoconfiguration e.g. using radvd on the link like following example shows: Routers in case of packet forwarding Older Linux kernel (at least <= 2.4.17) don't support default routes. You can set them up, but the route lookup fails when a packet should be forwarded (normal intention of a router). If you're still using such older kernel, “default routing” can be setup using the currently used global address prefix “2000::/3”. @@ -922,20 +921,20 @@ ff00::/8 :: UA 256 0 0 sit0 Common method at the moment for a small amount of tunnels. Usage for creating a tunnel device (but it's not up afterward, also a TTL must be specified because the default value is 0). mode sit ttl remote -¬ local local ]]>Usage (generic example for three tunnels): remote -¬ local local # /sbin/ip link set dev sit1 up # /sbin/ip -6 route add dev sit1 metric 1 # /sbin/ip tunnel add sit2 mode sit ttl -¬ local local # /sbin/ip link set dev sit2 up # /sbin/ip -6 route add dev sit2 metric 1 # /sbin/ip tunnel add sit3 mode sit ttl -¬ local local # /sbin/ip link set dev sit3 up # /sbin/ip -6 route add dev sit3 metric 1 ]]> @@ -962,11 +961,11 @@ ff00::/8 :: UA 256 0 0 sit0 gw -¬ :: dev sit0 +¬ :: dev sit0 # /sbin/route -A inet6 add gw -¬ :: dev sit0 +¬ :: dev sit0 # /sbin/route -A inet6 add gw -¬ :: dev sit0 +¬ :: dev sit0 ]]>Important: DON'T USE THIS, because this setup implicit enable "automatic tunneling" from anywhere in the Internet, this is a risk, and it should not be advocated. Removing point-to-point tunnels Manually not so often needed, but used by scripts for clean shutdown or restart of IPv6 configuration. @@ -1005,11 +1004,11 @@ ff00::/8 :: UA 256 0 0 sit0 This is like removing normal IPv6 routes. Usage (generic example for three tunnels): gw -¬ :: dev sit0 +¬ :: dev sit0 # /sbin/route -A inet6 del gw -¬ :: dev sit0 +¬ :: dev sit0 # /sbin/route -A inet6 del gw -¬ :: dev sit0 +¬ :: dev sit0 # /sbin/ifconfig sit0 down ]]> @@ -1287,10 +1286,10 @@ net.ipv6.conf.all.forwarding = 1 | | | | 1 2 3 4 -¬ 00000000000000000000000000000000 ffffffff 00000001 00000001 00200200 lo -¬ +------------------------------+ +------+ +------+ +------+ +------+ ++ -¬ | | | | | | -¬ 5 6 7 8 9 10 +¬ 00000000000000000000000000000000 ffffffff 00000001 00000001 00200200 lo +¬ +------------------------------+ +------+ +------+ +------+ +------+ ++ +¬ | | | | | | +¬ 5 6 7 8 9 10 ]]> IPv6 destination network displayed in 32 hexadecimal chars without colons as separatorIPv6 destination prefix length in hexadecimalIPv6 source network displayed in 32 hexadecimal chars without colons as separatorIPv6 source prefix length in hexadecimalIPv6 next hop displayed in 32 hexadecimal chars without colons as separatorMetric in hexadecimalReference counterUse counterFlagsDevice name sockstat6 @@ -1332,71 +1331,71 @@ FRAG6: inuse 0 memory 0 <!-- anchor id="examples-tcpdump" -->Examples for tcpdump packet dumps Here some examples of captured packets are shown, perhaps useful for your own debugging... @@ -1406,16 +1405,16 @@ udp 0 0 :::53 :::* Router advertisement ff02::1: icmp6: router -¬ advertisement(chlim=64, router_ltime=30, reachable_time=0, -¬ retrans_time=0)(prefix info: AR valid_ltime=30, preffered_ltime=20, -¬ prefix=2002:0102:0304:1::/64)(prefix info: LAR valid_ltime=2592000, -¬ preffered_ltime=604800, prefix=2001:0db8:0:1::/64)(src lladdr: -¬ 0:12:34:12:34:50) (len 88, hlim 255) +¬ advertisement(chlim=64, router_ltime=30, reachable_time=0, +¬ retrans_time=0)(prefix info: AR valid_ltime=30, preffered_ltime=20, +¬ prefix=2002:0102:0304:1::/64)(prefix info: LAR valid_ltime=2592000, +¬ preffered_ltime=604800, prefix=2001:0db8:0:1::/64)(src lladdr: +¬ 0:12:34:12:34:50) (len 88, hlim 255) ]]>Router with link-local address “fe80::212:34ff:fe12:3450” send an advertisement to the all-node-on-link multicast address “ff02::1” containing two prefixes “2002:0102:0304:1::/64” (lifetime 30 s) and “2001:0db8:0:1::/64” (lifetime 2592000 s) including its own layer 2 MAC address “0:12:34:12:34:50”. Router solicitation ff02::2: icmp6: router solicitation -¬ (src lladdr: 0:12:34:12:34:56) (len 16, hlim 255) +¬ (src lladdr: 0:12:34:12:34:56) (len 16, hlim 255) ]]>Node with link-local address “fe80::212:34ff:fe12:3456” and layer 2 MAC address “0:12:34:12:34:56” is looking for a router on-link, therefore sending this solicitation to the all-router-on-link multicast address “ff02::2”. Neighbor discovery @@ -1423,28 +1422,28 @@ udp 0 0 :::53 :::* Following packets are sent by a node with layer 2 MAC address “0:12:34:12:34:56” during autoconfiguration to check whether a potential address is already used by another node on the link sending this to the solicited-node link-local multicast address. Node wants to configure its link-local address “fe80::212:34ff:fe12:3456”, checks for duplicate now ff02::1:ff12:3456: icmp6: neighbor sol: who has -¬ fe80::212:34ff:fe12:3456(src lladdr: 0:12:34:12:34:56) (len 32, hlim 255) +¬ fe80::212:34ff:fe12:3456(src lladdr: 0:12:34:12:34:56) (len 32, hlim 255) ]]> Node wants to configure its global address “2002:0102:0304:1:212:34ff:fe12:3456” (after receiving advertisement shown above), checks for duplicate now ff02::1:ff12:3456: icmp6: neighbor sol: who has -¬ 2002:0102:0304:1:212:34ff:fe12:3456(src lladdr: 0:12:34:12:34:56) (len 32, -¬ hlim 255) +¬ 2002:0102:0304:1:212:34ff:fe12:3456(src lladdr: 0:12:34:12:34:56) (len 32, +¬ hlim 255) ]]> Node wants to configure its global address “2001:0db8:0:1:212:34ff:fe12:3456” (after receiving advertisement shown above), checks for duplicate now ff02::1:ff12:3456: icmp6: neighbor sol: who has -¬ 2001:0db8:0:1:212:34ff:fe12:3456(src lladdr: 0:12:34:12:34:56) (len 32, hlim -¬ 255) +¬ 2001:0db8:0:1:212:34ff:fe12:3456(src lladdr: 0:12:34:12:34:56) (len 32, hlim +¬ 255) ]]> Neighbor discovery solicitation for looking for host or gateway Node wants to send packages to “2001:0db8:0:1::10” but has no layer 2 MAC address to send packet, so send solicitation now ff02::1:ff00:10: icmp6: -¬ neighbor sol: who has 2001:0db8:0:1::10(src lladdr: 0:e0:18:90:92:5) (len 32, -¬ hlim 255) +¬ neighbor sol: who has 2001:0db8:0:1::10(src lladdr: 0:e0:18:90:92:5) (len 32, +¬ hlim 255) ]]> Node looks for “fe80::10” now ff02::1:ff00:10: icmp6: neighbor -¬ sol: who has fe80::10(src lladdr: 0:e0:18:90:92:5) (len 32, hlim 255) +¬ sol: who has fe80::10(src lladdr: 0:e0:18:90:92:5) (len 32, hlim 255) ]]> <!-- anchor id="chapter-support-persistent-configuration" -->Support for persistent IPv6 configuration in Linux distributions Some Linux distribution contain already support of a persistent IPv6 configuration using existing or new configuration and script files and some hook in the IPv4 script files. @@ -1457,10 +1456,10 @@ udp 0 0 :::53 :::* Auto-magically test: The version of the library is important if you miss some features. You can get it executing following (or easier look at the top of the file): In shown example, the used version is 20011124. Check this against latest information on initscripts-ipv6 homepage (Mirror) to see what has been changed. You will find there also a change-log. Short hint for enabling IPv6 on current RHL 7.1, 7.2, 7.3, ... @@ -1642,7 +1641,7 @@ Extensions found: IPv6:owner IPv6:limit IPv6:mac IPv6:multiport Check for capability Learn how to use ip6tables @@ -1661,7 +1660,7 @@ Extensions found: IPv6:owner IPv6:limit IPv6:mac IPv6:multiport Insert a log rule at the input filter with options Insert a drop rule at the input filter @@ -1688,17 +1687,17 @@ Extensions found: IPv6:owner IPv6:limit IPv6:mac IPv6:multiport Rate-limiting Because it can happen (author already saw it to times) that an ICMPv6 storm will raise up, you should use available rate limiting for at least ICMPv6 ruleset. In addition logging rules should also get rate limiting to prevent DoS attacks against syslog and storage of log file partition. An example for a rate limited ICMPv6 looks like: Allow incoming SSH Here an example is shown for a ruleset which allows incoming SSH connection from a specified IPv6 address Allow incoming SSH from 2001:0db8:100::1/128 Allow response packets (no longer needed if connection tracking is used!) Enable tunneled IPv6-in-IPv4 To accept tunneled IPv6-in-IPv4 packets, you have to insert rules in your IPv4 firewall setup relating to such packets, for example @@ -1792,103 +1791,103 @@ Chain INPUT (policy DROP 0 packets, 0 bytes) 0 0 ACCEPT all * * ::1/128 ::1/128 0 0 ACCEPT all lo * ::/0 ::/0 0 0 LOG all * * ::/0 ::/0 -¬ LOG flags 0 level 7 prefix `INPUT-default:' +¬ LOG flags 0 level 7 prefix `INPUT-default:' 0 0 DROP all * * ::/0 ::/0 Chain FORWARD (policy DROP 0 packets, 0 bytes) pkts bytes target prot opt in out source destination -¬ +¬ 0 0 int2ext all eth0 sit+ ::/0 ::/0 0 0 ext2int all sit+ eth0 ::/0 ::/0 0 0 LOG all * * ::/0 ::/0 -¬ LOG flags 0 level 7 prefix `FORWARD-default:' +¬ LOG flags 0 level 7 prefix `FORWARD-default:' 0 0 DROP all * * ::/0 ::/0 Chain OUTPUT (policy DROP 0 packets, 0 bytes) pkts bytes target prot opt in out source destination -¬ +¬ 0 0 extOUT all * sit+ ::/0 ::/0 4 384 intOUT all * eth0 ::/0 ::/0 0 0 ACCEPT all * * ::1/128 ::1/128 0 0 ACCEPT all * lo ::/0 ::/0 0 0 LOG all * * ::/0 ::/0 -¬ LOG flags 0 level 7 prefix `OUTPUT-default:' +¬ LOG flags 0 level 7 prefix `OUTPUT-default:' 0 0 DROP all * * ::/0 ::/0 Chain ext2int (1 references) pkts bytes target prot opt in out source destination -¬ +¬ 0 0 ACCEPT icmpv6 * * ::/0 ::/0 0 0 ACCEPT tcp * * ::/0 ::/0 -¬ tcp spts:1:65535 dpts:1024:65535 flags:!0x16/0x02 +¬ tcp spts:1:65535 dpts:1024:65535 flags:!0x16/0x02 0 0 LOG all * * ::/0 ::/0 -¬ LOG flags 0 level 7 prefix `ext2int-default:' +¬ LOG flags 0 level 7 prefix `ext2int-default:' 0 0 DROP tcp * * ::/0 ::/0 0 0 DROP udp * * ::/0 ::/0 0 0 DROP all * * ::/0 ::/0 Chain extIN (1 references) pkts bytes target prot opt in out source destination -¬ +¬ 0 0 ACCEPT tcp * * 3ffe:400:100::1/128 ::/0 -¬ tcp spts:512:65535 dpt:22 +¬ tcp spts:512:65535 dpt:22 0 0 ACCEPT tcp * * 3ffe:400:100::2/128 ::/0 -¬ tcp spts:512:65535 dpt:22 +¬ tcp spts:512:65535 dpt:22 0 0 ACCEPT icmpv6 * * ::/0 ::/0 0 0 ACCEPT tcp * * ::/0 ::/0 -¬ tcp spts:1:65535 dpts:1024:65535 flags:!0x16/0x02 +¬ tcp spts:1:65535 dpts:1024:65535 flags:!0x16/0x02 0 0 ACCEPT udp * * ::/0 ::/0 -¬ udp spts:1:65535 dpts:1024:65535 +¬ udp spts:1:65535 dpts:1024:65535 0 0 LOG all * * ::/0 ::/0 -¬ limit: avg 5/min burst 5 LOG flags 0 level 7 prefix `extIN-default:' +¬ limit: avg 5/min burst 5 LOG flags 0 level 7 prefix `extIN-default:' 0 0 DROP all * * ::/0 ::/0 Chain extOUT (1 references) pkts bytes target prot opt in out source destination -¬ +¬ 0 0 ACCEPT tcp * * ::/0 -¬ 2001:0db8:100::1/128tcp spt:22 dpts:512:65535 flags:!0x16/0x02 +¬ 2001:0db8:100::1/128tcp spt:22 dpts:512:65535 flags:!0x16/0x02 0 0 ACCEPT tcp * * ::/0 -¬ 2001:0db8:100::2/128tcp spt:22 dpts:512:65535 flags:!0x16/0x02 +¬ 2001:0db8:100::2/128tcp spt:22 dpts:512:65535 flags:!0x16/0x02 0 0 ACCEPT icmpv6 * * ::/0 ::/0 0 0 ACCEPT tcp * * ::/0 ::/0 -¬ tcp spts:1024:65535 dpts:1:65535 +¬ tcp spts:1024:65535 dpts:1:65535 0 0 ACCEPT udp * * ::/0 ::/0 -¬ udp spts:1024:65535 dpts:1:65535 +¬ udp spts:1024:65535 dpts:1:65535 0 0 LOG all * * ::/0 ::/0 -¬ LOG flags 0 level 7 prefix `extOUT-default:' +¬ LOG flags 0 level 7 prefix `extOUT-default:' 0 0 DROP all * * ::/0 ::/0 Chain int2ext (1 references) pkts bytes target prot opt in out source destination -¬ +¬ 0 0 ACCEPT icmpv6 * * ::/0 ::/0 0 0 ACCEPT tcp * * ::/0 ::/0 -¬ tcp spts:1024:65535 dpts:1:65535 +¬ tcp spts:1024:65535 dpts:1:65535 0 0 LOG all * * ::/0 ::/0 -¬ LOG flags 0 level 7 prefix `int2ext:' +¬ LOG flags 0 level 7 prefix `int2ext:' 0 0 DROP all * * ::/0 ::/0 0 0 LOG all * * ::/0 ::/0 -¬ LOG flags 0 level 7 prefix `int2ext-default:' +¬ LOG flags 0 level 7 prefix `int2ext-default:' 0 0 DROP tcp * * ::/0 ::/0 0 0 DROP udp * * ::/0 ::/0 0 0 DROP all * * ::/0 ::/0 Chain intIN (1 references) pkts bytes target prot opt in out source destination -¬ +¬ 0 0 ACCEPT all * * ::/0 -¬ fe80::/ffc0:: +¬ fe80::/ffc0:: 4 384 ACCEPT all * * ::/0 ff02::/16 Chain intOUT (1 references) pkts bytes target prot opt in out source destination -¬ +¬ 0 0 ACCEPT all * * ::/0 -¬ fe80::/ffc0:: +¬ fe80::/ffc0:: 4 384 ACCEPT all * * ::/0 ff02::/16 0 0 LOG all * * ::/0 ::/0 -¬ LOG flags 0 level 7 prefix `intOUT-default:' +¬ LOG flags 0 level 7 prefix `intOUT-default:' 0 0 DROP all * * ::/0 ::/0 ]]> <!-- anchor id="chapter-security" -->Security @@ -1974,9 +1973,9 @@ spdadd 2001:db8:2:2::2 2001:db8:1:1::1 any -P in ipsec esp/transport//require; flush; spdflush; spdadd 2001:db8:1:1::1 2001:db8:2:2::2 any -P out ipsec -¬ esp/tunnel/2001:db8:1:1::1-2001:db8:2:2::2/require; +¬ esp/tunnel/2001:db8:1:1::1-2001:db8:2:2::2/require; spdadd 2001:db8:2:2::2 2001:db8:1:1::1 any -P in ipsec -¬ esp/tunnel/2001:db8:2:2::2-2001:db8:1:1::1/require; +¬ esp/tunnel/2001:db8:2:2::2-2001:db8:1:1::1/require; ]]>For the other peer, you have to replace “in” with “out”. Configuration of the IKE daemon “racoon” “racoon” requires a configuration file for proper execution. It includes the related settings to the security policy, which should be set up previously using “setkey”. @@ -2033,21 +2032,21 @@ sainfo address 2001:db8:2:2::2 any address 2001:db8:1:1::1 any Foreground mode. 2005-01-01 20:30:15: INFO: @(#)ipsec-tools 0.3.3 (http://ipsec-tools.sourceforge.net) 2005-01-01 20:30:15: INFO: @(#)This product linked -¬ OpenSSL 0.9.7a Feb 19 2003 (http://www.openssl.org/) +¬ OpenSSL 0.9.7a Feb 19 2003 (http://www.openssl.org/) 2005-01-01 20:30:15: INFO: 2001:db8:1:1::1[500] used as isakmp port (fd=7) 2005-01-01 20:31:06: INFO: IPsec-SA request for 2001:db8:2:2::2 -¬ queued due to no phase1 found. +¬ queued due to no phase1 found. 2005-01-01 20:31:06: INFO: initiate new phase 1 negotiation: -¬ 2001:db8:1:1::1[500]<=>2001:db8:2:2::2[500] +¬ 2001:db8:1:1::1[500]<=>2001:db8:2:2::2[500] 2005-01-01 20:31:06: INFO: begin Identity Protection mode. 2005-01-01 20:31:09: INFO: ISAKMP-SA established -¬ 2001:db8:1:1::1[500]-2001:db8:2:2::2[500] spi:da3d3693289c9698:ac039a402b2db401 +¬ 2001:db8:1:1::1[500]-2001:db8:2:2::2[500] spi:da3d3693289c9698:ac039a402b2db401 2005-01-01 20:31:09: INFO: initiate new phase 2 negotiation: -¬ 2001:6f8:900:94::2[0]<=>2001:db8:2:2::2[0] +¬ 2001:6f8:900:94::2[0]<=>2001:db8:2:2::2[0] 2005-01-01 20:31:10: INFO: IPsec-SA established: -¬ ESP/Tunnel 2001:db8:2:2::2->2001:db8:1:1::1 spi=253935531(0xf22bfab) +¬ ESP/Tunnel 2001:db8:2:2::2->2001:db8:1:1::1 spi=253935531(0xf22bfab) 2005-01-01 20:31:10: INFO: IPsec-SA established: -¬ ESP/Tunnel 2001:db8:1:1::1->2001:db8:2:2::2 spi=175002564(0xa6e53c4) +¬ ESP/Tunnel 2001:db8:1:1::1->2001:db8:2:2::2 spi=175002564(0xa6e53c4) ]]>Each direction got its own IPsec-SA (like defined in the IPsec standard). With “tcpdump” on the related interface, you will see as result of an IPv6 ping: 2001:db8:2:2::2: ESP(spi=0x0a6e53c4,seq=0x3) 20:35:55.537522 2001:db8:2:2::2 > 2001:db8:1:1::1: ESP(spi=0x0f22bfab,seq=0x3) @@ -2126,7 +2125,7 @@ conn ipv6-p1-p2 004 "ipv6-p1-p2" #1: STATE_MAIN_I4: ISAKMP SA established 112 "ipv6-p1-p2" #2: STATE_QUICK_I1: initiate 004 "ipv6-p1-p2" #2: STATE_QUICK_I2: sent QI2, -¬ IPsec SA established {ESP=>0xa98b7710 <0xa51e1f22} +¬ IPsec SA established {ESP=>0xa98b7710 <0xa51e1f22} ]]>Because *S/WAN and setkey/racoon do use the same IPsec implementation in Linux 2.6.x kernel, “setkey” can be used here too to show current active parameters: This should result after restart in e.g. And a simple test looks like and should show you a result. @@ -2259,7 +2258,7 @@ Aliases: Host www.6bone.net. not found: 5(REFUSED) ]]>Related log entry looks like following: If you see such entries in the log, check whether requests from this client should be allowed and perhaps review your ACL configuration. Successful IPv6 connect @@ -2291,7 +2290,7 @@ www.6bone.net. is an alias for 6bone.net. Shown example also displays an IMAP and IMAP-SSL IPv4-only listening xinetd. Note: earlier versions had a problem that an IPv4-only xinetd won't start on an IPv6-enabled node and also the IPv6-enabled xinetd won't start on an IPv4-only node. This is known to be fixed in later versions, at least version 2.3.11. @@ -2488,25 +2487,25 @@ daytime-stream: 1.2.3. [2001:0db8:100:200::]/64 Refused connection A refused connection via IPv4 to an xinetd covered daytime service produces a line like following example A refused connection via IPv4 to an dual-listen sshd produces a line like following example Permitted connection A permitted connection via IPv4 to an xinetd covered daytime service produces a line like following example A permitted connection via IPv4 to an dual-listen sshd produces a line like following example @@ -2562,7 +2561,7 @@ Jan 2 20:42:19 gate sshd[12345]: Accepted password for user }; ]]>The sin6_family, sin6_port, and sin6_addr components of the structure have the same meaning as the corresponding fields in the sockaddr_in structure. However, the sin6_family member is set to AF_INET6 for IPv6 addresses, and the sin6_addr field holds a 128-bit address instead of only 32 bits. The sin6_flowinfo field is used for flow control, but is not yet standardized and can be ignored. -The sin6_scope_id field has an odd use, and it seems (at least to this naïve author) that the IPv6 designers took a huge step backwards when devising this. Apparently, 128-bit IPv6 network addresses are not unique. For example, it is possible to have two hosts, on separate networks, with the same link-local address (see Figure 1). In order to pass information to a specific host, more than just the network address is required; the scope identifier must also be specified. In Linux, the network interface name is used for the scope identifier (e.g. “eth0”) [be warned that the scope identifier is implementation dependent!]. Use the ifconfig(1M) command to display a list of active network interfaces. +The sin6_scope_id field has an odd use, and it seems (at least to this naïve author) that the IPv6 designers took a huge step backwards when devising this. Apparently, 128-bit IPv6 network addresses are not unique. For example, it is possible to have two hosts, on separate networks, with the same link-local address (see Figure 1). In order to pass information to a specific host, more than just the network address is required; the scope identifier must also be specified. In Linux, the network interface name is used for the scope identifier (e.g. “eth0”) [be warned that the scope identifier is implementation dependent!]. Use the ifconfig(1M) command to display a list of active network interfaces. A colon-hex network address can be augmented with the scope identifier to produce a "scoped address”. The percent sign ('%') is used to delimit the network address from the scope identifier. For example, fe80::1%eth0 is a scoped IPv6 address where fe80::1 represents the 128-bit network address and eth0 is the network interface (i.e. the scope identifier). Thus, if a host resides on two networks, such as Host B in example below, the user now has to know which path to take in order to get to a particular host. In Figure 1, Host B addresses Host A using the scoped address fe80::1%eth0, while Host C is addressed with fe80::1%eth1. Getting back to the sockaddr_in6 structure, its sin6_scope_id field contains the index of the network interface on which a host may be found. Server applications will have this field set automatically by the socket API when they accept a connection or receive a datagram. For client applications, if a scoped address is passed as the node parameter to getaddrinfo(3) (described later in this HowTo), then the sin6_scope_id field will be filled in correctly by the system upon return from the function; if a scoped address is not supplied, then the sin6_scope_id field must be explicitly set by the client software prior to attempting to communicate with the remote server. The if_nametoindex(3) function is used to translate a network interface name into its corresponding index. It is declared in <net/if.h>. @@ -4407,7 +4406,7 @@ Source: Understanding IPV6 by Davies, Joseph; ISBN 0735612455; Date Published 13/11/2002; Number of Pages 544. Migrating to IPv6 - IPv6 in Practice by Marc Blanchet Publisher: John Wiley & Sons; ISBN 0471498920; 1st edition (November 2002); 368 pages.Ipv6 Network Programming by Jun-ichiro Hagino; ISBN 1555583180Wireless boosting IPv6 by Carolyn Duffy Marsan, 10/23/2000.O'reilly Network search for keyword IPv6 results in 29 hits (28. January 2002) Articles, eBooks, Online Reviews (mixed) -Getting Connected with 6to4 by Huber Feyrer, 06/01/2001Transient Addressing for Related Processes: Improved Firewalling by Using IPv6 and Multiple Addresses per Host; written by Peter M. Gleiz, Steven M. Bellovin (PC-PDF-Version; Palm-PDF-Version; PDB-Version)Internetworking IPv6 with Cisco Routers by Silvano Gai, McGrawHill Italia, 1997. The 13 chapters and appendix A-D are downloadable as PDF-documents.Aufbruch in die neue Welt - IPv6 in IPv4 Netzen by Dipl.Ing. Ralf Döring, TU Illmenau, 1999Migration and Co-existence of IPv4 and IPv6 in Residential Networks by Pekka Savola, CSC/FUNET, 2002 +Getting Connected with 6to4 by Huber Feyrer, 06/01/2001Transient Addressing for Related Processes: Improved Firewalling by Using IPv6 and Multiple Addresses per Host; written by Peter M. Gleiz, Steven M. Bellovin (PC-PDF-Version; Palm-PDF-Version; PDB-Version)Internetworking IPv6 with Cisco Routers by Silvano Gai, McGrawHill Italia, 1997. The 13 chapters and appendix A-D are downloadable as PDF-documents.Aufbruch in die neue Welt - IPv6 in IPv4 Netzen by Dipl.Ing. Ralf Döring, TU Illmenau, 1999Migration and Co-existence of IPv4 and IPv6 in Residential Networks by Pekka Savola, CSC/FUNET, 2002 <!-- anchor id="information-sciencepublication" -->Science Publications (abstracts, bibliographies, online resources) See also: liinwww.ira.uka.de/ipv6 or Google / Scholar / IPv6 GEANT IPv6 WorkplanIPv6 Trials on UK Academic Networks: Bermuda Project Aug.2002: Participants - Getting connected - Project deliverables - Network topology - Address assignments - Wireless IPv6 access - IPv6 migration - Project presentations - Internet 2 - Other IPv6 projects - IPv6 fora and standards Bermuda 2...http://www.ipv6.ac.uk/IPv6 at the University of SouthamptonMicrosoft Research IPv6 Implementation (MSRIPv6): MSRIPv6 Configuring 6to4 - Connectivity with MSR IPv6 - Our 6Bone Node... @@ -4578,7 +4577,7 @@ SourceForge: Project Info - Statistics -IPv6 routing table history created by Gert Döring, Space.NetOfficial 6bone Webserver list Statisic +IPv6 routing table history created by Gert Döring, Space.NetOfficial 6bone Webserver list Statisic Internet Exchanges Another list of IPv6 Internet Exchanges can be found here: IPv6 status of IXPs in Europe <!-- anchor id="information-ipv6exchanges-estonia" -->Estonia @@ -4801,13 +4800,13 @@ Publisher: MarketResearch.com; ISBN B00006334Y; (November 1, 2001) Versions x.y.z are work-in-progress and published as LyX and SGML file on CVS. Because Deep Space 6 mirrors these SGML files and generate independend from TLDP public versions, this versions will show up there and also on its mirrors. Releases 0.x -0.60.22007-10-03/PB: fix description of sysctl/autoconf (credits to Francois-Xavier Le Bail)0.60.12007-06-16/PB: speling fixes (credits to Larry W. Burton)0.602007-05-29/PB: import major contribution to Programming using C-API written by John Wenker, minor fixes0.522007-05-23/PB: update firewalling chapter, improve document for proper SGML validation, minor bugfixes0.512006-11-08/PB: remove broken URLs, add a new book (credits to Bryan Vukich)0.50.22006-10-25/PB: fix typo in dhcp6 section (credits to Michele Ferritto)0.50.12006-09-23/PB: add some URLs0.502006-08-24/PB: check RFC URLs, fix URL to Chinese translation, finalize for publishing0.49.52006-08-23/PB: fix/remove broken URLs0.49.42006-08-21/PB: some review, update and enhancement of the content, replace old 6bone example addresses with the current defined ones.0.49.32006-08-20/PB: fix bug in maillist entries, 'mobility' is now a separate chapter0.49.22006-08-20/PB: update and cleanup of maillist entries0.49.12006-06-13/PB: major update of mobility section (contributed by Benjamin Thery)0.492005-10-03/PB: add configuration hints for DHCPv6, major broken URL cleanup (credits to Necdet Yucel)0.48.12005-01-15/PB: minor fixes0.482005-01-11/PB: grammar check and minor review of IPv6 IPsec section0.47.12005-01-01/PB: add information and examples about IPv6 IPsec, add some URLs0.472004-08-30/PB: add some notes about proftpd, vsftpd and other daemons, add some URLs, minor fixes, update status of Spanish translation0.46.42004-07-19/PB: minor fixes0.46.32004-06-23/PB: add note about started Greek translation, replace Taiwanese with Chinese for related translation0.46.22004-05-22/PB: minor fixes0.46.12004-04-18/PB: minor fixes0.462004-03-04/PB: announce Italian translation, add information about DHCPv6, minor updates0.45.12004-01-12/PB: add note about the official example address space0.452004-01-11/PB: minor fixes, add/fix some URLs, some extensions0.44.22003-10-30/PB: fix some copy&paste text bugs0.44.12003-10-19/PB: add note about start of Italian translation0.442003-08-15/PB: fix URLs, add hint on tcp_wrappers (about broken notation in some versions) and Apache20.43.42003-07-26/PB: fix URL, add archive URL for maillist users at ipv6.org, add some ds6 URLs0.43.32003-06-19/PB: fix typos0.43.22003-06-11/PB: fix URL0.43.12003-06-07/PB: fix some URLs, fix credits, add some notes at IPsec0.432003-06-05/PB: add some notes about configuration in SuSE Linux, add URL of French translation0.422003-05-09/PB: minor fixes, announce French translation0.41.42003-05-02/PB: Remove a broken URL, update some others.0.41.32003-04-23/PB: Minor fixes, remove a broken URL, fix URL to Taiwanese translation0.41.22003-04-13/PB: Fix some typos, add a note about a French translation is in progress0.41.12003-03-31/PB: Remove a broken URL, fix another0.412003-03-22/PB: Add URL of German translation0.40.22003-02-27/PB: Fix a misaddressed URL0.40.12003-02-12/PB: Add Debian-Linux-Configuration, add a minor note on translations0.402003-02-10/PB: Announcing available German version0.39.22003-02-10/GK: Minor syntax and spelling fixes0.39.12003-01-09/PB: fix an URL (draft adopted to an RFC)0.392003-01-13/PB: fix a bug (forgotten 'link” on “ip link set” (credits to Yaniv Kaul)0.38.12003-01-09/PB: a minor fix0.382003-01-06/PB: minor fixes0.37.12003-01-05/PB: minor updates0.372002-12-31/GK: 270 new links added (searched in 1232 SearchEngines) in existing and 53 new (sub)sections0.36.12002-12-20/PB: Minor fixes0.362002-12-16/PB: Check of and fix broken links (credits to Georg Käfer), some spelling fixes0.352002-12-11/PB: Some fixes and extensions0.34.12002-11-25/PB: Some fixes (e.g. broken linuxdoc URLs)0.342002-11-19/PB: Add information about German translation (work in progress), some fixes, create a small shortcut explanation list, extend “used terms” and add two German books0.332002-11-18/PB: Fix broken RFC-URLs, add parameter ttl on 6to4 tunnel setup example0.322002-11-03/PB: Add information about Taiwanese translation0.31.12002-10-06/PB: Add another maillist0.312002-09-29/PB: Extend information in proc-filesystem entries0.302002-09-27/PB: Add some maillists0.292002-09-18/PB: Update statement about nmap (triggered by Fyodor)0.28.12002-09-16/PB: Add note about ping6 to multicast addresses, add some labels0.282002-08-17/PB: Fix broken LDP/CVS links, add info about Polish translation, add URL of the IPv6 Address Oracle0.272002-08-10/PB: Some minor updates0.26.22002-07-15/PB: Add information neighbor discovery, split of firewalling (got some updates) and security into extra chapters0.26.12002-07-13/PB: Update nmap/IPv6 information0.262002-07-13/PB: Fill /proc-filesystem chapter, update DNS information about depricated A6/DNAME, change P-t-P tunnel setup to use of “ip” only0.25.22002-07-11/PB: Minor spelling fixes0.25.12002-06-23/PB: Minor spelling and other fixes0.252002-05-16/PB: Cosmetic fix for 2^128, thanks to José Abílio Oliveira Matos for help with LyX0.242002-05-02/PB: Add entries in URL list, minor spelling fixes0.232002-03-27/PB: Add entries in URL list and at maillists, add a label and minor information about IPv6 on RHL0.222002-03-04/PB: Add info about 6to4 support in kernel series 2.2.x and add an entry in URL list and at maillists0.212002-02-26/PB: Migrate next grammar checks submitted by John Ronan 0.20.42002-02-21/PB: Migrate more grammar checks submitted by John Ronan, add some additional hints at DNS section 0.20.32002-02-12/PB: Migrate a minor grammar check patch submitted by John Ronan0.20.22002-02-05/PB: Add mipl to maillist table0.20.12002-01-31/PB: Add a hint how to generate 6to4 addresses0.202002-01-30/PB: Add a hint about default route problem, some minor updates0.19.22002-01-29/PB: Add many new URLs0.19.12002-01-27/PB: Add some forgotten URLs0.192002-01-25/PB: Add two German books, fix quote entinities in exported SGML code0.18.22002-01-23/PB: Add a FAQ on the program chapter0.18.12002-01-23/PB: Move “the end” to the end, add USAGI to maillists0.182002-01-22/PB: Fix bugs in explanation of multicast address types0.17.22002-01-22/PB: Cosmetic fix double existing text in history (at 0.16), move all credits to the end of the document0.17.12002-01-20/PB: Add a reference, fix URL text in online-test-tools0.172002-01-19/PB: Add some forgotten information and URLs about global IPv6 addresses0.162002-01-19/PB: Minor fixes, remove “bold” and “emphasize” formats on code lines, fix “too long unwrapped code lines” using selfmade utility, extend list of URLs.0.152002-01-15/PB: Fix bug in addresstype/anycast, move content related credits to end of document0.142002-01-14/PB: Minor review at all, new chapter “debugging”, review “addresses”, spell checking, grammar checking (from beginning to 3.4.1) by Martin Krafft, add tcpdump examples, copy firewalling/netfilter6 from IPv6+Linux-HowTo, minor enhancements0.132002-01-05/PB: Add example BIND9/host, move revision history to end of document, minor extensions0.122002-01-03/PB: Merge review of David Ranch0.112002-01-02/PB: Spell checking and merge review of Pekka Savola0.102002-01-02/PB: First public release of chapter 1 +0.612007-10-06/PB: fix broken URLs to TLDP-CVS, minor URL update.0.60.22007-10-03/PB: fix description of sysctl/autoconf (credits to Francois-Xavier Le Bail)0.60.12007-06-16/PB: speling fixes (credits to Larry W. Burton)0.602007-05-29/PB: import major contribution to Programming using C-API written by John Wenker, minor fixes0.522007-05-23/PB: update firewalling chapter, improve document for proper SGML validation, minor bugfixes0.512006-11-08/PB: remove broken URLs, add a new book (credits to Bryan Vukich)0.50.22006-10-25/PB: fix typo in dhcp6 section (credits to Michele Ferritto)0.50.12006-09-23/PB: add some URLs0.502006-08-24/PB: check RFC URLs, fix URL to Chinese translation, finalize for publishing0.49.52006-08-23/PB: fix/remove broken URLs0.49.42006-08-21/PB: some review, update and enhancement of the content, replace old 6bone example addresses with the current defined ones.0.49.32006-08-20/PB: fix bug in maillist entries, 'mobility' is now a separate chapter0.49.22006-08-20/PB: update and cleanup of maillist entries0.49.12006-06-13/PB: major update of mobility section (contributed by Benjamin Thery)0.492005-10-03/PB: add configuration hints for DHCPv6, major broken URL cleanup (credits to Necdet Yucel)0.48.12005-01-15/PB: minor fixes0.482005-01-11/PB: grammar check and minor review of IPv6 IPsec section0.47.12005-01-01/PB: add information and examples about IPv6 IPsec, add some URLs0.472004-08-30/PB: add some notes about proftpd, vsftpd and other daemons, add some URLs, minor fixes, update status of Spanish translation0.46.42004-07-19/PB: minor fixes0.46.32004-06-23/PB: add note about started Greek translation, replace Taiwanese with Chinese for related translation0.46.22004-05-22/PB: minor fixes0.46.12004-04-18/PB: minor fixes0.462004-03-04/PB: announce Italian translation, add information about DHCPv6, minor updates0.45.12004-01-12/PB: add note about the official example address space0.452004-01-11/PB: minor fixes, add/fix some URLs, some extensions0.44.22003-10-30/PB: fix some copy&paste text bugs0.44.12003-10-19/PB: add note about start of Italian translation0.442003-08-15/PB: fix URLs, add hint on tcp_wrappers (about broken notation in some versions) and Apache20.43.42003-07-26/PB: fix URL, add archive URL for maillist users at ipv6.org, add some ds6 URLs0.43.32003-06-19/PB: fix typos0.43.22003-06-11/PB: fix URL0.43.12003-06-07/PB: fix some URLs, fix credits, add some notes at IPsec0.432003-06-05/PB: add some notes about configuration in SuSE Linux, add URL of French translation0.422003-05-09/PB: minor fixes, announce French translation0.41.42003-05-02/PB: Remove a broken URL, update some others.0.41.32003-04-23/PB: Minor fixes, remove a broken URL, fix URL to Taiwanese translation0.41.22003-04-13/PB: Fix some typos, add a note about a French translation is in progress0.41.12003-03-31/PB: Remove a broken URL, fix another0.412003-03-22/PB: Add URL of German translation0.40.22003-02-27/PB: Fix a misaddressed URL0.40.12003-02-12/PB: Add Debian-Linux-Configuration, add a minor note on translations0.402003-02-10/PB: Announcing available German version0.39.22003-02-10/GK: Minor syntax and spelling fixes0.39.12003-01-09/PB: fix an URL (draft adopted to an RFC)0.392003-01-13/PB: fix a bug (forgotten 'link” on “ip link set” (credits to Yaniv Kaul)0.38.12003-01-09/PB: a minor fix0.382003-01-06/PB: minor fixes0.37.12003-01-05/PB: minor updates0.372002-12-31/GK: 270 new links added (searched in 1232 SearchEngines) in existing and 53 new (sub)sections0.36.12002-12-20/PB: Minor fixes0.362002-12-16/PB: Check of and fix broken links (credits to Georg Käfer), some spelling fixes0.352002-12-11/PB: Some fixes and extensions0.34.12002-11-25/PB: Some fixes (e.g. broken linuxdoc URLs)0.342002-11-19/PB: Add information about German translation (work in progress), some fixes, create a small shortcut explanation list, extend “used terms” and add two German books0.332002-11-18/PB: Fix broken RFC-URLs, add parameter ttl on 6to4 tunnel setup example0.322002-11-03/PB: Add information about Taiwanese translation0.31.12002-10-06/PB: Add another maillist0.312002-09-29/PB: Extend information in proc-filesystem entries0.302002-09-27/PB: Add some maillists0.292002-09-18/PB: Update statement about nmap (triggered by Fyodor)0.28.12002-09-16/PB: Add note about ping6 to multicast addresses, add some labels0.282002-08-17/PB: Fix broken LDP/CVS links, add info about Polish translation, add URL of the IPv6 Address Oracle0.272002-08-10/PB: Some minor updates0.26.22002-07-15/PB: Add information neighbor discovery, split of firewalling (got some updates) and security into extra chapters0.26.12002-07-13/PB: Update nmap/IPv6 information0.262002-07-13/PB: Fill /proc-filesystem chapter, update DNS information about depricated A6/DNAME, change P-t-P tunnel setup to use of “ip” only0.25.22002-07-11/PB: Minor spelling fixes0.25.12002-06-23/PB: Minor spelling and other fixes0.252002-05-16/PB: Cosmetic fix for 2^128, thanks to José Abílio Oliveira Matos for help with LyX0.242002-05-02/PB: Add entries in URL list, minor spelling fixes0.232002-03-27/PB: Add entries in URL list and at maillists, add a label and minor information about IPv6 on RHL0.222002-03-04/PB: Add info about 6to4 support in kernel series 2.2.x and add an entry in URL list and at maillists0.212002-02-26/PB: Migrate next grammar checks submitted by John Ronan 0.20.42002-02-21/PB: Migrate more grammar checks submitted by John Ronan, add some additional hints at DNS section 0.20.32002-02-12/PB: Migrate a minor grammar check patch submitted by John Ronan0.20.22002-02-05/PB: Add mipl to maillist table0.20.12002-01-31/PB: Add a hint how to generate 6to4 addresses0.202002-01-30/PB: Add a hint about default route problem, some minor updates0.19.22002-01-29/PB: Add many new URLs0.19.12002-01-27/PB: Add some forgotten URLs0.192002-01-25/PB: Add two German books, fix quote entinities in exported SGML code0.18.22002-01-23/PB: Add a FAQ on the program chapter0.18.12002-01-23/PB: Move “the end” to the end, add USAGI to maillists0.182002-01-22/PB: Fix bugs in explanation of multicast address types0.17.22002-01-22/PB: Cosmetic fix double existing text in history (at 0.16), move all credits to the end of the document0.17.12002-01-20/PB: Add a reference, fix URL text in online-test-tools0.172002-01-19/PB: Add some forgotten information and URLs about global IPv6 addresses0.162002-01-19/PB: Minor fixes, remove “bold” and “emphasize” formats on code lines, fix “too long unwrapped code lines” using selfmade utility, extend list of URLs.0.152002-01-15/PB: Fix bug in addresstype/anycast, move content related credits to end of document0.142002-01-14/PB: Minor review at all, new chapter “debugging”, review “addresses”, spell checking, grammar checking (from beginning to 3.4.1) by Martin Krafft, add tcpdump examples, copy firewalling/netfilter6 from IPv6+Linux-HowTo, minor enhancements0.132002-01-05/PB: Add example BIND9/host, move revision history to end of document, minor extensions0.122002-01-03/PB: Merge review of David Ranch0.112002-01-02/PB: Spell checking and merge review of Pekka Savola0.102002-01-02/PB: First public release of chapter 1 <!-- anchor id="credits" -->Credits The quickest way to be added to this nice list is to send bug fixes, corrections, and/or updates to me ;-). If you want to do a major review, you can use the native LyX file (see original source) and send diffs against it, because diffs against SGML don't help too much. <!-- anchor id="major-credits" -->Major credits -David Ranch <dranch at trinnet dot net>: For encouraging me to write this HOWTO, his editorial comments on the first few revisions, and his contributions to various IPv6 testing results on my IPv6 web site. Also for his major reviews and suggestions.Pekka Savola <pekkas at netcore dot fi>: For major reviews, input and suggestions.Martin F. Krafft <madduck at madduck dot net>: For grammar checks and general reviewing of the document.John Ronan <j0n at tssg dot wit dot ie>: For grammar checks.Georg Käfer <gkaefer at gmx dot at>: For detection of no proper PDF creation (fixed now by LDP maintainer Greg Ferguson), input for German books, big list of URLs, checking all URLs, many more suggestions, corrections and contributions, and the German translationMichel Boucey <mboucey at free dot fr>: Finding typos and some broken URLs, contribute some suggestions and URLs, and the French translationMichele Ferritto <m dot ferritto at virgilio dot it>: Finding bugs and the Italian translationDaniel Roesen <dr at cluenet dot de>: For grammar checksBenjamin Thery <benjamin dot thery at bull dot net>: For contribution of updated mobility sectionJohn Wenker <jjw at pt dot com>: major contribution to Programming using C-API +David Ranch <dranch at trinnet dot net>: For encouraging me to write this HOWTO, his editorial comments on the first few revisions, and his contributions to various IPv6 testing results on my IPv6 web site. Also for his major reviews and suggestions.Pekka Savola <pekkas at netcore dot fi>: For major reviews, input and suggestions.Martin F. Krafft <madduck at madduck dot net>: For grammar checks and general reviewing of the document.John Ronan <j0n at tssg dot wit dot ie>: For grammar checks.Georg Käfer <gkaefer at gmx dot at>: For detection of no proper PDF creation (fixed now by LDP maintainer Greg Ferguson), input for German books, big list of URLs, checking all URLs, many more suggestions, corrections and contributions, and the German translationMichel Boucey <mboucey at free dot fr>: Finding typos and some broken URLs, contribute some suggestions and URLs, and the French translationMichele Ferritto <m dot ferritto at virgilio dot it>: Finding bugs and the Italian translationDaniel Roesen <dr at cluenet dot de>: For grammar checksBenjamin Thery <benjamin dot thery at bull dot net>: For contribution of updated mobility sectionJohn Wenker <jjw at pt dot com>: major contribution to Programming using C-API Other credits Document technique related