在Debian Etch上使用IPv6
版本1.0
作者:Falko Timme
本文档介绍如何为IPv6配置Debian Etch系统,以便a)可以连接到其他IPv6主机,b)其他IPv6主机可以连接到它。 IPv6将在今后变得更加重要,因为近期的估计认为,到2010年或2011年将不再有IPv4地址。因此,是时候学习IPv6了。
本文档不附带任何形式的保证! 我不会保证这将为您工作!
1初步说明
在本教程中,我使用以太网设备eth0
和IPv4地址192.168.0.100
在LAN中使用Debian服务器(即使用路由器连接到Internet)。 路由器在撰写本文时的公共IP地址为85.176.139.73
。 使用IPv6,其他系统可以直接连接到Debian系统,无论路由器和NAT如何。 本教程将适用于直接连接到Internet的Debian系统(也就是没有NAT,也没有路由器)。
要使用IPv6,我们将配置一个将IPv6 Debian系统与IPv6硬件相连的隧道(由所谓的“隧道代理”运行),从而连接到IPv6骨干网。 这个隧道是必要的,因为大多数ISP不支持直接的IPv6连接,而且通过IPv4网络路由IPv6流量是没有意义的,因为下一跳路由器不知道该怎么做。
有多个隧道经纪人可以免费提供隧道和IPv6地址(例如: http : //tunnelbroker.net/,http : //go6.net/4105/freenet.asp,http : //www.sixxs.net/ )。 这些隧道代理连接到IPv6骨干网,隧道将您的Debian Etch系统连接到IPv6硬件,从而连接到IPv6骨干网。
2创建隧道
注册隧道经纪人 - 我使用http://tunnelbroker.net/ ,因为它们非常快 - 您可以在几分钟内启动并运行。 然后登录他们的Web界面,并在http://tunnelbroker.net/网站上创建一个隧道(“创建常规隧道”)。 填写IPv4端点(这是您的Debian系统的公共IPv4地址 - 如果是在路由器后面,这是您的路由器的公共IPv4地址),并选择靠近您的位置(这些位置是隧道代理具有POPs ,即与IPv6骨干网的连接):
之后,您将看到一个带有隧道细节的屏幕。
这些是我的测试隧道的细节:
Server IPv4 address: 216.66.80.30
Server IPv6 address: 2001:0470:1f0a:cc0::1/64
Client IPv4 address: 85.176.139.73
Client IPv6 address: 2001:0470:1f0a:cc0::2/64
请记下服务器IPv4地址
( 216.66.80.30
), 服务器IPv6地址
( 2001:0470:1f0a:cc0 :: 1
)和客户端IPv6地址(2001:0470:1f0a:cc0 :: 2
)。 我们需要一点时间。
3配置Debian系统
登录到您的Debian系统并查看输出
ifconfig
server1:~# ifconfig
eth0 Link encap:Ethernet HWaddr 00:0C:29:A5:5B:93
inet addr:192.168.0.100 Bcast:192.168.0.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fea5:5b93/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:71 errors:0 dropped:0 overruns:0 frame:0
TX packets:44 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:7789 (7.6 KiB) TX bytes:5809 (5.6 KiB)
Interrupt:169 Base address:0x1400
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:8 errors:0 dropped:0 overruns:0 frame:0
TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:560 (560.0 b) TX bytes:560 (560.0 b)
server1:~#
这里没有什么特别之处,但输出中的inet6 addr
表示系统具有IPv6功能。
现在我们配置新的公共IPv6地址和隧道如下:
ifconfig sit0 up
ifconfig sit0 inet6 tunnel ::216.66.80.30 #(please replace the IPv4 address with the IPv4 address of the tunnel broker server that you've chosen in the previous step)
ifconfig sit1 up
ifconfig sit1 inet6 add 2001:0470:1f0a:cc0::2/64 #(please replace the IPv6 address with your own IPv6 address)
route -A inet6 add ::/0 dev sit1
已经这样了 看一眼
ifconfig
再次,您应该看到我们的隧道需要两个新的界面( sit0
和sit1
):
server1:~# ifconfig
eth0 Link encap:Ethernet HWaddr 00:0C:29:A5:5B:93
inet addr:192.168.0.100 Bcast:192.168.0.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fea5:5b93/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:145 errors:0 dropped:0 overruns:0 frame:0
TX packets:163 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:12833 (12.5 KiB) TX bytes:19303 (18.8 KiB)
Interrupt:169 Base address:0x1400
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:8 errors:0 dropped:0 overruns:0 frame:0
TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:560 (560.0 b) TX bytes:560 (560.0 b)
sit0 Link encap:IPv6-in-IPv4
inet6 addr: ::127.0.0.1/96 Scope:Unknown
inet6 addr: ::192.168.0.100/96 Scope:Compat
UP RUNNING NOARP MTU:1480 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
sit1 Link encap:IPv6-in-IPv4
inet6 addr: 2001:470:1f0a:cc0::2/64 Scope:Global
inet6 addr: fe80::c0a8:64/64 Scope:Link
UP POINTOPOINT RUNNING NOARP MTU:1480 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
server1:~#
现在我们可以测试我们是否可以ping隧道代理服务器的IPv6地址:
ping6 -c4 2001:0470:1f0a:cc0::1
server1:~# ping6 -c4 2001:0470:1f0a:cc0::1
PING 2001:0470:1f0a:cc0::1(2001:470:1f0a:cc0::1) 56 data bytes
64 bytes from 2001:470:1f0a:cc0::1: icmp_seq=1 ttl=64 time=16.8 ms
64 bytes from 2001:470:1f0a:cc0::1: icmp_seq=2 ttl=64 time=40.5 ms
64 bytes from 2001:470:1f0a:cc0::1: icmp_seq=3 ttl=64 time=37.5 ms
64 bytes from 2001:470:1f0a:cc0::1: icmp_seq=4 ttl=64 time=37.5 ms
--- 2001:0470:1f0a:cc0::1 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3002ms
rtt min/avg/max/mdev = 16.880/33.135/40.550/9.466 ms
server1:~#
看起来不错。
http://www.ipv6.org/v6-www.html具有IPv6主机列表。 我们来挑选一个,并测试我们是否也可以ping通它:
ping6 -c4 www.ipv6.uni-muenster.de
server1:~# ping6 -c4 www.ipv6.uni-muenster.de
PING www.ipv6.uni-muenster.de(tolot.ipv6.uni-muenster.de) 56 data bytes
64 bytes from tolot.ipv6.uni-muenster.de: icmp_seq=1 ttl=57 time=29.3 ms
64 bytes from tolot.ipv6.uni-muenster.de: icmp_seq=2 ttl=57 time=38.7 ms
64 bytes from tolot.ipv6.uni-muenster.de: icmp_seq=3 ttl=57 time=60.4 ms
64 bytes from tolot.ipv6.uni-muenster.de: icmp_seq=4 ttl=57 time=23.1 ms
--- www.ipv6.uni-muenster.de ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3002ms
rtt min/avg/max/mdev = 23.194/37.940/60.454/14.127 ms
server1:~#
好的,ping其他主机正常工作。 现在我们来看看我们的系统是否可以ping通我们的公共IPv6地址。 请访问http://www.berkom.blazing.de/tools/ping.cgi并填写您的公共IPv6地址。 如果一切顺利,输出应该类似于这一个:
恭喜,IPv6正在为您的系统工作!
如果您不想在每次重新启动后手动配置sit0
和sit1
接口,可以按如下方式创建文件/etc/network/if-up.d/ipv6
:
vi /etc/network/if-up.d/ipv6
#!/bin/sh PATH=/sbin:/bin ifconfig sit0 up ifconfig sit0 inet6 tunnel ::216.66.80.30 ifconfig sit1 up ifconfig sit1 inet6 add 2001:0470:1f0a:cc0::2/64 route -A inet6 add ::/0 dev sit1 |
(用您自己的值替换IPv4和IPv6地址!)
然后使文件可执行:
chmod 755 /etc/network/if-up.d/ipv6
现在每当系统启动时,它会自动启动sit0
和sit1界面。
4链接
- Debian: http : //www.debian.org/