基于Linux下的IPv6的网络配置——熊传红、武金苗、徐涛、杨帆999

Download Report

Transcript 基于Linux下的IPv6的网络配置——熊传红、武金苗、徐涛、杨帆999

组长:熊传红 1071000042(40)
组员:武金苗 1071000040(38)
徐 涛 1071000043(41)
杨 帆 1071000044(42)
前言
 Linux是所有操作系统中最先支持IPv6的系统
在配置和应用方面也具有一定的优越性。
SUSE Linux Enterprise Desktop系统
IPv6的网络配置
Linux下常用服务(如:TFTP、telnet、DHCP)的配置
IPv4到IPv6过渡的连通性测试。
IPv4向IPv6的过渡
• 基于IPv4协议的互联网有足够广泛的基础设施,凭借其出色
的技术特性在互联网领域获得了巨大的成功。无论是路由设
备,还是终端设备,改变都不是短时间就能完成的。而IPv6
也不是在IPv4上的简单修改,他们之间存在着很大的差异,
不可能在短时间内都过渡到基于IPv6的网络。
因此,在相当长的一段时期内,IPv6网络将和IPv4网络共存。
要最终实现IPv4向IPv6的平滑过渡,首先要处理现有IPv4网
络和未来IPv6网络之间的相互通信问题。
目前实现IPv4与IPv6之间互相通信的方法有多种,主要是在
Linux下设计并实现主机~主机隧道。主机~主机隧道是用于
将相互独立的IPv6/IPv4节点通过IPv4网络相互通信。此时,
2个双IP节点作为隧道的端节点通过IPv4网络进行通信。隧
道端点跨越了在源节点和目标节点之间的整个路径。在IPv6
/IPv4节点之间的IPv6穿越IPv4隧道用作一个单跳。
一、基于内核为2.4的Redhat Linux 9.0系统的IPv6 网络配置
注意:在内核为2.4的RedHat Linux 9.0系统中,在默认状态安装
下IPv6模块是没有加载的。
步骤1:加载IPv6协议
使用命令modprobe ipv6
步骤2:
使用lsmod显示Linux加载的系统模块,可用来确认是否已加载IPv6协议
步骤3:
使用ifconfig lo显示系统的回环口,进一步确认已加载了IPv6模块
步骤4:
使用命令ping6 ::1
(ping6环回接口的IPv6地址,以进一步确认是否正确加载了IPv6模块)
步骤5:
在操作系统启动时,自动加载IPv6命令操作
步骤6:
使用命令ifconfig –a查看主机ipv6网络配置
Linux上的ifconfig、ip、netstat、route、ping6、traceroute6和tracepath6命令
命
令
描
述
删除IPv6地址
#ifconfig interface inet6 del ipv6-
删除给定接口的ipv6-address地址
address/prefixlength
#ip -f inet6 addr del ipv6address/prefixlength dev interface
删除给定接口的ipv6-address地址
使用ifconfig的实例:
#ifconfig eth0 inet6 del
fec0:0:0:1::1/64
linux#ip -f inet6 addr del
fec0:0:0:1::1/64 dev eth0
删除eth0接口上的IPv6地址fec0:0:0:1::1/64
命
令
描
述
显示IPv6路由
#route -A inet6
显示路由选择表中的IPv6路由
#ip -f inet6 route show
显示路由选择表中的IPv6路由
#netstat -A inet6 –rn
显示路由选择表中的IPv6路由
添加IPv6路由
#route -A inet6 add ipv6prefix/prefixlength gw gateway [dev
interface]
为由ipv6-prefix/prefixlength值指定的目的
网络添加一个静态IPv6路由。使用gw参数指定
下一跳IPv6地址的网关。当网络的IPv6地址是
一个本地链路地址时,必须指定参数dev之后
的接口
命
令
描
述
添加IPv6路由
#route -A inet6 add ipv6prefix/prefixlength gw gateway [dev
interface]
为由ipv6-prefix/prefixlength值指定的目的
网络添加一个静态IPv6路由。使用gw参数指定
下一跳IPv6地址的网关。当网络的IPv6地址是
一个本地链路地址时,必须指定参数dev之后
的接口
#ip -f inet6 route add ipv6prefix/prefixlength via gateway [device
interface]
为由ipv6-prefix/prefixlength值指定的目的
网络添加一个静态IPv6路由。使用via参数指
定下一跳IPv6地址的网关。当网络的IPv6地址
是一个本地链路地址时,必须指定参数dev之
后的接口
使用ifconfig的实例:
#route -A inet6 add 3ffe:b00:ffff::/48
gw fw80::260:3eff:fe47:1533 dev eth0
使用IP的实例:
#ip -f inet6 route add
3ffe:b00:ffff::/48 via
fw80::260:3eff:fe47:1533 dev eth0
把静态IPv6路由3ffe:b00:ffff::/48添加到
IPv6路由选择表中,这个目的地通过接口eth0
使用本地链路地址fw80::260:3eff:fe47:1533
可以到达
命
令
描
述
删除IPv6路由
#route -A inet6 del ipv6prefix/prefixlength gw gateway [dev
interface]
删除由参数ipv6-prefix/prefixlength值指定
的目的网络添加一个静态IPv6路由。
#ip -f inet6 route del ipv6prefix/prefixlength via gateway [device
interface]
删除由参数ipv6-prefix/prefixlength值指定
的目的网络添加一个静态IPv6路由。
使用ifconfig的实例:
#route -A inet6 del 3ffe:b00:ffff::/48
gw fw80::260:3eff:fe47:1533
使用IP的实例:
#ip -f inet6 route del
3ffe:b00:ffff::/48 via
fw80::260:3eff:fe47:1533
把静态IPv6路由3ffe:b00:ffff::/48从IPv6路
由选择表中删除
命
令
描
述
Ping6、traceroute6和tracepath6
#ping6 www.6bone.net
使用IPv6 ping目的网络www.6bone.net
#ping6 -I eth0 fe80::260:3eff:fe47:1533
使用网络接口eth0 ping本地链路地址
fe80::260:3eff:fe47:1533。当目的地址是一
个本地链路地址时,必须使用关键字I指定接
口
#traceroute6 www.6bone.net
使用IPv6跟踪到目的网络www.6bone.net的路
由
#tracepath6 www.6bone.net
跟踪路径并发现到目的网络www.6bone.net的
MTU值
二、基于SUSE Linux Enterprise
Desktop的ipv6的配置
注意:
系统安装完之后,已经加载了IPv6协议栈,
即不用进行IPv6的网络配置。
ifconfig eth0 add 3ffe:3201:1800:2::7
给接口eth0配置了IPv6地址。
三、RedHat Linux 9.0与SUSE Linux
基于IPv6的连通性测试
使用ping6命令查看两台Linux操作系统的主机的IPv6网络的连通性。
(SUSE Linux端ping6 RedHat Linux端)
(RedHat Linux端ping6 SUSE Linux端)
四、为RedHat Linux9.0配置TFTP、Telnet、DHCP服务
(1)TFTP的配置
注意:RedHat Linux 9.0默认安装状态下已经安装了TFTP服
务。则用ntsysv来选择(tftp)如下图所示:
注意:安装好tftp之后,要使其在IPv6环境下正常工作需要修
改/etc/xinetd.d/tftp如下图(然后运行命令#service xinetd
restart重新启动xinetd)
(2)Telnet的配置
Telnet是一种越过Internet来登录计算机的虚拟终端协议
注意:RedHat Linux 9.0默认安装状态下没有安装telnet服务。需用
ntsysv来选择(telnet)方法同tftp。
安装好telnet之后,要使其在IPv6环境下正常工作需要修改
/etc/xinetd.d/telnet文件的内容:
将“disable=yes“改为”disable=no“,”flags=REUSEG“改
为”flags=REUSE IPv6“
如下图(然后运行命令#service xinetd restart重新启动xinetd)
(3) DHCP的配置
• DHCPv6 是IPv6下的动态主机配置协议,它属于全
状态地址自动配置协议。与IPv4下的DHCP协议类似,
DHCPv6也是一种提供网络配置信息的客户/服务器
类型的协议。不同之处是,DHCPv6重新定义了消息
类型和消息处理方式,并加强了安全性。
• IPv6中的DHCP有两种方式:状态方式和无状态方式,
无状态方式又包括两种配置方式,链路局域地址和
全局地址的自动配置。
DHCP的配置~DHCP无状态的配置

Linux默认安装已经支持DHCP无状态自动配置服务radvd,
可以通过服务来选择安装。安装好radvd后,可以通过以下
配置来启动无状态自动配置服务。
(修改好配置文件后使用#servce radvd start命令启动radvd。)
(3)DHCP的配置~ DHCP有状态方式的配置
注意:服务端:下载dhcp6-0.85.tgz文件,使用命令tar xzvf
dhcp6-0.85.tgz 解 压 文 件 , 使 用 命 令 ./configure 命 令 ,
make命令,make install命令完成dhcpv6的安装,在文件
所在目录生成dhcp6s.conf文件移到/etc下,此文件存放着
dhcp6服务器的一般配置信息,如服务优先级、有效生存
期、DNS服务器分配、IPv6地址范围、DUID的信息和网
络前缀等。
(解压dhcp6-0.85文件)
(配置dhcp6s.conf文件)
注意:使用命令#service dhcp6s start启动DHCPv6
客户端:Linux系统需要下载dhcp6-0.85.tgz文件并
安装,将安装生成的dhcp6c.conf文件复制到/etc
目录下并配置此文件:
#vi/etc/dhcp6c.conf
interface eth0
{send rapid-commit;
request domain-name-servers;:};
使用命令#dhcp6c –f eht0启动DHCP客户端
五、基于Linux的IPv6的网络组建
(基于Linux的IPv6网络平台模型)
步骤1:
为主机HostA和主机HostB加载IPv6协议栈及配置IPv6地址
(1)为HostA配置IPv4地址为192.168.62.84/24
IPv6地址为3ffe:3201:1800:1::7/64
[root@localhost root]#ifconfig eth0 192.168.62.84 netmask
255.255.255.0 broadcast:192.168.62.255
[root@localhost root]#ifconfig eth0 add
3ffe:3201:1800:1::7/64
(2)为HostB配置IPv4地址为192.168.60.4/24,
IPv6地址为3ffe:3201:1800:2::7/64。
[root@localhost root]#ifconfig eth0 192.168.60.4 netmask
255.255.255.0 broadcast:192.168.60.255
[root@localhost root]#ifconfig eth0 add
3ffe:3201:1800:2::7/64
步骤2:
建立IPv6-in-IPv4的隧道
注意:配置好HostA和HostB网络接口的IPv4地址和IPv6地址 后,
接下来为HostA和HostB建立隧道。
两个隧道的段地址分别为HostA和HostB的IPv4地址。
在HostA上执行如下配置命令:
[root@localhost root]#ifconfig sit0 up
[root@localhost root]#ifconfig sit0 inet6 tunnel::192.168.60.4
[root@localhost root]#ifconfig sit1 up
[root@localhost root]#route –A inet6 add 3ffe:3201:1800:
2::7/64 dev sit1
分析:
Step1:激活自动隧道sit0。
在启动sit0后,可以直接通过IPv4兼容的IPv6地址和对方的
主机连通,但是还不能通过IPv6地址和对方主机通信,因为
IPv4路由器不能转发IPv6报文。
Step2:手动配置隧道sit1。
其中192.168.60.4是与HostB的IPv4兼容的IPv6地址。
Step3:激活手动隧道sit1。
Step4:设置到HostB的网络路由。
在主机HostB上进行相应的配置。
这样,手动隧道sit1就相互连通,IPv6域之间的HostA和
HostB就可以进行基于IPv6的网络通信。
步骤3:测试
确定隧道成功建立之后,分别在HostA和HostB
上使用ping6命令ping对方的IPv6地址就可以得
到连接成功的返回的数据包。