通信网络
实验拓扑
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
审核编辑:汤梓红
全部0条评论
快来发表一下你的评论吧 !