Linux IPv6有关

 下载不少朋友都是使用Linux操作系统,随着网络的改朝换代,我们也需要在自己的系统里面进行IPv6的配置。那么现在,在此我们为大家分享一下Linux IPv6配置的经验,希望能让大家都学会这个配置方法。

  以RedHat9.0为例,系统默认的内核版本为2.4.20-8,已经自带了IPv6这个模块,配置过程如下:

  以root用户登录(以下举例中的命令对大小写敏感)

  Linux IPv6配置1:加载ipv6模块

  运行命令insmod ipv6或者modprobe ipv6,然后用命令lsmod可以查看系统已加载的模块列表,如果看到ipv6,则表示模块已经加载成功。用命令rmmod ipv6可以删除ipv6模块。也可以让系统在网络启动的时候自动加载ipv6模块,方法是编辑/etc/sysconfig/network文件,加入新的一行NETWORKING_IPV6=YES。

  Linux IPv6配置2:配置ipv6地址

  默认情况下,一旦加载了ipv6模块,系统会自动给网卡配置好ipv6的本地链路地址(link local address),这里地址的特点是以[fe80::]开头。如果机器所接入的网络中,有支持ipv6的路由器,并且该路由器配置的是无状态地址自动配置,那么系统还会自动给网卡配置一个全球地址(Global Address)。本地链路地址是本地链路中唯一的,全球地址是全球IPv6网络中唯一的。

  也可以手动给网卡配置地址,比如当网卡是以太网卡时,用以下命令即可为网卡配置一个全球地址为2001:250:3000:1::1:1,网络前缀(Network Prefix)为112的ipv6地址: ifconfig eth0 add 2001:250:3000:1::1:1/112

  Linux IPv6配置3:测试网络连通性

  网络连通性测试的前题是有另外一台ipv6的网络节点,可以是普通的支持ipv6的pc,也可以是支持ipv6的路由器。它们之间要么在链路层直接相通,要么经过其他的支持ipv6的网络节点在链路层间接相通。假设另外一台机器的网络节点的全球地址为为2001:250:3000:1::1:2,那么用以下命令:ping6 2001:250:3000:1::1:2/112

  应该可以看到类似如下的结果:

  PING 2001:250:3000:1::1:2(2001:250:3000:2::1:1) 56 data bytes

  64 bytes from 2001:250:3000:1::1:2: icmp_seq=1 ttl=64 time=0.082 ms

  64 bytes from 2001:250:3000:1::1:2: icmp_seq=2 ttl=64 time=0.058 ms

  这就表明这两个节点之间的ipv6网络连通性正常。

  Linux IPv6配置4:配置静态路由表

  route -A inet6(可以查看ipv6的静态路由表);

  route -A inet6 add default gw 2001:250:3000:2:2c0:95ff:fee0:473f(在系统的静态路由表里面加上一条静态路由记录)

  Linux IPv6配置5:支持的服务

  WEB服务

  服务器Apache 2.0.40

  启动方法:/etc/init.d/httpd start

  客户端lynx 2.8.5

  运行方法:lynx http://[ipv6 -address]:port/

  LDAP服务

  我采用开源项目openldap提供的服务器和客户端,版本号是2.0.25,其网站为http://www.openldap.org/,该软件能够支持IPv6。

  服务端启动方法:/etc/init.d/ldap start

  客户端访问方法:ldapsearch -x -h [ipv6-addr] -D "cn=Manager"


///


让Linux支持IPv6

 

自内核2.2.0以来,Linux开始支持IPv6协议。以下内容以Fedora Core 4(2005年6月13日发布)系统为例。用ifconfig命令检测一下,若出现以fe80开头的本地链路地址,说明您的系统已经加载IPv6,目前的最新Linux内核已经支持IPv6,如果没有可以用以下两种方式支持IPv6:

 

只加载IPv6模块:

 

 [root @ipv6/root] #modprobe ipv6

 

这种方法需要每次开机手工执行加载模块,若让系统自动加载,使用下面方法。

 

重新编译系统内核:

 

[root @ipv6/root] # cd /usr/src/linux (转到Linux源代码目录)

 

[root @ipv6/root] # make clean (清除过期的中间代码)

 

[root @ipv6/root] # make menuconfig (配置内核选项)

 

Networking options

 

packet socket yes (支持IPv6的选项设为yes)

 

unix domain socket yes

 

 Tcp/IP networking yes

 

The IPV6 protocol yes

 

IPv6 : enable EUI - 64 token format  yes

 

IPv6 : disable provider based address  yes

 

 [root @ipv6/root] # make dep

 

 [root @ipv6/root] # make clean (清除中间代码)

 

 [root @ipv6/root] # make bzImage

 

 [root @ipv6/root] # cp system.map /boot/System.map (将内核拷到启动目录)

 

 [root @ipv6/root]# cp arch/i386/boot/vmlinux-IPv6 /boot/ vmlinux-IPv6

 

 [root @ipv6/root] # vi /etc/grub.conf (编辑Grub配置文件)

 

增加以下内容

 

title FeforaIpv6

 

root(hd0,10)

 

kernel / vmlinux-IPv6 ro root =/dev/hda1

 

[root @ipv6/root] # reboot  (重启机器)

 

在校园网两个不同子网的机器上配置IPv6地址,通过双方路由器以隧道方式相连,每个子网内机器通过以太网方式进行物理互联。

 

配置IPv6地址

 

根据我们学校在CERNET申请获得IPv6 网络地址段2001:250:5802::/48。假设Host1的eth0的IPv4地址是

 

202.194.68.138,IPv6地址是2001:250:5802:2:210:dcff:fe29:af07/48;Host2的eth0的IPv4地址是202.194.67.138,

 

IPv6地址是2001:250:5802:1:203:ffff:fe2b:af01/48。在Linux 下的配置IP地址命令如下:

 

Host1:

 

[root @ipv6/root] # ifconfig eth0 202.194.68.138 netmask 255. 255. 255.0

 

[root @ipv6/root] # ifconfig eth0 add 2001:250:5802:2:210:dcff:fe29:af07/48

 

Host2:

 

[root @ipv6/root] # ifconfig eth0 202.194.67.138 netmask 255. 255. 255.0

 

[root @ipv6/root] # ifconfig eth0 add 2001:250:5802:1:203:ffff:fe2b:af01/48

 

配置隧道

 

分别激活Host1和Host2的自动隧道sit0,使双方可以通过IPv4 兼容的IPv6 地址连通,然后激活隧道sit1,使双方可以通过可聚集全局单播IPv6地址通信。具体命令如下:

 

Host1:

 

[root @ipv6/root] # ifconfig sit0 up

 

[root @ipv6/root] # ifconfig sit0 inet6 tunnel : : 202.194.67.138

 

[root @ipv6/root] # ifconfig sit1 up

 

[root @ipv6/root] # route -A inet6 add 2001:250:5802:1:203:ffff:fe2b:af01/48 dev sit1

 

Host2:

 

[root @ipv6/root] # ifconfig sit0 up

 

[root @ipv6/root] # ifconfig sit0 inet6 tunnel : : 202.194.68.138

 

[root @ipv6/root] # ifconfig sit1 up

 

[root @ipv6/root] # route -A inet6 add 2001:250:5802:2:210:dcff:fe29:af07/48 dev sit1

 

测试IPv6网络

 

在Host1上运行ping6命令:ping6 2001:250:5802:1:203:ffff:fe2b:af01;在Host2上运行ping6命令:ping6 2001:250:5802:2:210:dcff:fe29:af07,可以正常返回ICMP v6包,说明双方IPv6通过IPv4隧道已经可以连通。

在Host1上运行tracert命令查看路由:tracert 2001:250:5802:1:203:ffff:fe2b:af01,可以显示以下信息,说明隧道创建成功。

 

tracert 2001:250:5802:1:203:ffff:fe2b:af01

 

Tracing route to 2001:250:5802:1:203:ffff:fe2b:af01 over a maximum of 30 hops

 

1    10 ms   7 ms   7 ms  2001:250:5802:1:203:ffff:fe2b:af01

 

Trace complete

 

目前有许多IPv6的应用,如CERNET--Nokia合作项目TunnelBroker,其目的是自动分配IPv6地址,为用户提供IPv6/IPv4 tunnel用于接入CERNET IPv6 Testbed。

 

通过上述介绍,我们已经通过Linux的自由软件初步组建了一个支持IPv6的网络,这个测试平台为我们向IPv6过渡提供了一个参考方案。通过这个平台我们可以继续进行相关课题的研究(如网络控制、流量管理和WEB服务的应用)。




  Linux在内核版本2.2.0以后就支持IPv6了,可查看/proc/net/if_inet6文件是否存在以确定你的系统是否支持IPv6。

  如果没有,可尝试如下命令加载IPv6模组:

  # modprobe ipv6

  成功加载后就可以使用IPv6环境了,系统会自动获得IPv6地址

  IPv6相关命令:

  # ifconfig eth0 inet6 add 2001:da8:2004:1000:202:116:160:41/64 (手工添加配置固定IPv6地址)

  # route -A inet6 add default gw 2001:da8:2004:1000::1 (添加默认路由)

  # ping6 ipv6.scau.edu.cn

  PING ipv6.scau.edu.cn(2001:da8:2004:1000:202:116:160:48) 56 data bytes

  64 bytes from 2001:da8:2004:1000:202:116:160:48: icmp_seq=0 ttl=64 time=0.020 ms

  64 bytes from 2001:da8:2004:1000:202:116:160:48: icmp_seq=1 ttl=64 time=0.019 ms

  64 bytes from 2001:da8:2004:1000:202:116:160:48: icmp_seq=2 ttl=64 time=0.014 ms

  看到这样的显示则表明IPv6已配置成功。


  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值