实验拓扑
R1-R3-R2之间的网络为IPv4公网;
PC1及PC2处于IPv6孤岛。
实验需求
R1及R2为IPv6/IPv4双栈设备;
在R1及R2上部署6to4自动隧道使得PC1及PC2能够互相访问。
实验步骤及配置
Internet Router的配置如下
?
[R3]?interface?GigabitEthernet0/0/0 [R3-GigabitEthernet0/0/0]?ip?address?200.1.1.2?24 [R3]?interface?GigabitEthernet0/0/1 [R3-GigabitEthernet0/0/1]?ip?address?200.2.2.1?24
?
R1的配置如下:
?
#完成IPv4接口部分的配置: [R1]?interface?GigabitEthernet0/0/0 [R1-GigabitEthernet0/0/0]?ip?address?200.1.1.1?24 [R1]?ip?route-static?0.0.0.0?0?200.1.1.2
#完成IPv6接口部分的配置: [R1]?ipv6 [R1]?interface?GigabitEthernet0/0/1 [R1-GigabitEthernet0/0/1]?ipv6?enable [R1-GigabitEthernet0/0/1]?ipv6?address?20020101::FFFF?64?#配置IPv6全局单播地址 [R1-GigabitEthernet0/0/1]?undo?ipv6?nd?ra?halt??#(可选)取消ra消息的抑制,使得下联的PC能够通过无状态自动配置的方式获取地址
#配置6to4?Tunnel: [R1]?Interface?tunnel?0/0/0 [R1-Tunnel0/0/0]?tunnel-protocol?ipv6-ipv4?6to4 [R1-Tunnel0/0/0]?ipv6?enable [R1-Tunnel0/0/0]?source?200.1.1.1 [R1-Tunnel0/0/0]?ipv6?address?auto?link-local?#注意如果不为tunnel口配置全局单播地址则必须为接口配置linklocal地址,否则接口的ipv6协议状态为down,如果配置了全局单播地址则系统将自动配置linklocal地址,因此无需再配置这条命令。 [R1]?Ipv6?route-static?2002::?16?tunnel?0/0/0
?
R1的GE0/0/0接口连接Internet,地址为200.1.1.1/24,这个地址是公网IP地址,是全局可路由的。当我们不熟6to4自动隧道时,使用该公网IPv4地址进行映射得到对应的6to4 IPv6地址空间“20020101/48”,其中“C801:0101”换算成十进制就是200.1.1.1。我们将这个地址空间的一个/64子网用于R1的GE0/0/1接口和PC1所在的网络。关于这个知识点在下文有详细的描述。
R2的配置如下:
?
#完成IPv4接口部分的配置: [R2]?interface?GigabitEthernet0/0/0 [R2-GigabitEthernet0/0/1]?ip?address?200.2.2.2?24 [R2]?ip?route-static?0.0.0.0?0?200.2.2.1
#完成IPv6接口部分的配置 [R2]?ipv6 [R2]?interface?GigabitEthernet0/0/1 [R2-GigabitEthernet0/0/1]?ipv6?enable [R2-GigabitEthernet0/0/1]?ipv6?address?20020202::FFFF?64 [R2-GigabitEthernet0/0/1]?undo?ipv6?nd?ra?halt?
#配置6to4?Tunnel: [R2]?Interface?tunnel?0/0/0 [R2-Tunnel0/0/0]?tunnel-protocol?ipv6-ipv4?6to4 [R2-Tunnel0/0/0]?ipv6?enable [R2-Tunnel0/0/0]?source?200.2.2.2 [R2-Tunnel0/0/0]?ipv6?address?auto?link-local [R2]?Ipv6?route-static?2002::?16?tunnel?0/0/0

?
在6to4 自动隧道的解决方案中,我们利用了2002::/16的6to4地址空间。
首先R1及R2都已经有了200.1.1.1及200.2.2.2这类公网的IPv4地址。拿R1来说,我们可以通过R1的公网地址200.1.1.1映射得到该IP对应的2002::/16前缀的6to4公网IPv6地址,如上图所示,对于R1所在的站点,得到的6to4 IP6地址空间就是20020101::/48,前缀中的前16bits也就是2002是固定的,后面的32bits就是200.1.1.1这个地址对应的16进制数,组装后就得到/48比特的IPv6地址前缀,这样一来PC1所在ipv6网络就可以使用这个ipv6地址来组建网络:
当PC1要访问20020202::/48网络时:
数据包到达R1后,R1发现目的地址是IPv6地址,而且是2002开头的地址,这是个6to4的IPv6地址,于是从该地址中抽离出C802:0202,得到200.2.2.2这个IPv4地址。然后:
R1在原始IPv6报文的基础上加装IPv4头部,IPv4头部的源地址为6to4tunnel的源地址,而目的地址为200.2.2.2。数据包被路由到R2后,R2将外层的IPv4头部剥除,将里头的IPv6报文转发给PC2。
?
[R1]?display?ipv6?interface?brief *down:?administratively?down (l):?loopback (s):?spoofing Interface?Physical?Protocol GigabitEthernet0/0/1?up?up [IPv6?Address]?2002101::FFFF Tunnel0/0/0?up?up [IPv6?Address]?FE80:101
PC1>ping?20020202::1 Ping?2002202:?32?data?bytes,?Press?Ctrl_C?to?break From?2002202:?bytes=32?seq=1?hop?limit=253?time=47?ms From?2002202:?bytes=32?seq=2?hop?limit=253?time=31?ms From?2002202:?bytes=32?seq=3?hop?limit=253?time=31?ms From?2002202:?bytes=32?seq=4?hop?limit=253?time=31?ms From?2002202:?bytes=32?seq=5?hop?limit=253?time=47?ms ---?2002202::1?ping?statistics?--- 5?packet(s)?transmitted 5?packet(s)?received 0.00%?packet?loss round-trip?min/avg/max?=?31/37/47?ms
?
审核编辑:汤梓红
评论