Linux如何设置IPv6地址

IPv6最终全面取待IPv6是不可逆的潮流。本文则讲一下在Linux下如何配置IPv6地址。当然本文假设你使用静态IP(不必是公共IPv6地址或公共IPv4地址,可以是私有IPv4地址)。本文不适用使用DHCP获取地址的情况。

首先,你要确保你使用的Linux的内核已经支持IPv6。当前比较新的Linux都已经内建IPv6了。

用root用户登录,运行:

# lsmod | grep ipv6

看看系统有没有已经加载了IPv6模块。如果没有,尝试用以下命令加载: 

# /sbin/modprobe ipv6

第二,你需要有你的静态IP地址。

IPv4地址如何转成IPv6地址呢?如果你的IP是一个IPv4地址,那么可以换算得到IPv6的地址形式。比较简单的作法可以去到 http://grox.net/utils/ipv6.php。在左边的下拉列表中选择: IPv4 to 6to4 Address,在右边的编辑框中填上你的IPv4地址。点击: Calculate 则得到了你的IPv4地址的IPv6转化格式。

配置IPv6地址

一般的Linux发行版用 /etc/network/interfaces 文件配置网卡。如果没有这个文件,那么请注意 /etc/network 目录下其它文件或者目录。

假如要配置的Linux的静态IPv4地址是 192.168.1.10,这个IPv4地址转换成对应的IPv6地址则是 2002:c0a8:10a:: 。再提醒一下,上文提到过如何把IPv4地址转成IPv6地址。

网关的IPv4地址是 192.168.1.1,这个IPv4地址转成对应的IPv6的地址是:2002:c0a8:0101:: 。

那么 /etc/network/interfaces 文件应该配置成如下:

#IPV6 static configuration(我是注释)
iface eth0 inet6 static
pre-up modprobe ipv6
address 2002:c0a8:10a::
netmask 64
gateway 2002:c0a8:0101::

注意 "pre-up" 命令。这一行保证系统在启动的时候加载支持ipv6的模块。
最后重新启发动网络,如下:

# /etc/init.d/networking restart

你现在可以使用你的IPv6地址了。

测试IPv6地址:

检测路由:

# ip -6 route show

如果IPv6工作正常的话,应该会有如下的提示。

2002:c0a8:0100/64 dev eth0 proto kernel scope link src 2002:c0a8:10a

你也可以用IPv6版本的ping工具测试。首先想到的最好的IPv6地址当然是google的,使用如下命令:

ping6 ipv6.google.com

如果ipv6不工作,你会得到错误信息:Network is unreachable 

If IPv6 is working you will see the standard ping results in your terminal window.

如果IPv6工作正常,那么你可以看到标准的ping命令的输出。

后记:IPv6是下一代互联网的工业标准。如果你是一位IP从业人员,即时跟进IPv6技术是必须的。如果只是普通的民众,则可以不必理会,大多数情况下你感觉不到IPv6和IPv4的区别,你就平滑过渡到IPv6的时代了。

copyright blog.ykyi.net