【太阁小实验】DHCPv6实验
今天,来带大家了解一下DHCPv6的基础配置,以下面的拓扑为例,该拓扑由三台路由器组成,其中把 R2 模拟为PC,R3为Server。

首先我们先配置基础的ipv6地址:
R1:
R1(config)#int lo0
R1(config-if)#ipv6 address 1::1/128
R1(config-if)#ex
R1(config)#int f0/0
R1(config-if)#ipv6 address 2001:12:1:1::1/64
R1(config-if)#no shutdown
R1(config)#int f1/0
R1(config-if)#no shutdown
R1(config-if)#ipv6 address 2001:13:1:1::1/64
R2:
R2(config)#int lo0
R2(config-if)#ipv6 address 2::2/128
R2(config-if)#ex
R2(config)#int f0/0
R2(config-if)#ipv6 address 2001:12:1:1::2/64
R2(config-if)#no shutdown
R3:
R3(config)#int lo0
R3(config-if)#ipv6 address 3::3/128
R3(config-if)#ex
R3(config)#int f1/0
R3(config-if)#no shutdown //因为用来做server所以不配地址
R3(config-if)#exit
R3(config)#ipv6 route ::/0 f1/0 FE80::C801:10FF:FE63:1C //写静态能够ping通R1
接下来我们看一下连通信:

然后,我们在R3上开启DHCP服务:
R3:
R3(config)#service dhcp
R3(config)#ipv6 dhcp pool R2 //名字为 R2
R3(config-dhcpv6)#address prefix 2001:12:1::/64 //只能指定前缀
R3(config-dhcpv6)#dns-server 2001:12:1:1::1 //DNS server 假设 R1 是
R3(config-dhcpv6)#domain-name cisco.com
R3(config-dhcpv6)#exit
R3(config)#int f1/0
R3(config-if)#ipv6 dhcp server R2 //地址池和接口做一个关联,通过接收到solicit报文之
后通过R2地址池做一个回应。
再在R1上做如下配置:
R1:
R1(config)#int f0/0
R1(config-if)#shutdown //先关闭
R1(config-if)#no ipv6 nd ra suppress //开启 RA 发送
R1(config-if)#ipv6 nd managed-config-flag //指定 M 位置位
下面我们来看一下f0/0口的配置:

R1:
R1(config)#int f0/0
R1(config-if)#no shutdown
R2:
R2(config)#int f0/0
R2(config-if)#ipv6 address dhcp //通过 DHCP来拿地址
R2(config-if)#ipv6 enable PC //在IPv6中通过DHCP拿地址,必须保证PC的接口拥有link=local地址enable之后才能够自动发送
之后我们在R2上来看一下接口的ipv6配置:

当前已经拿到了一个地址,这明显不是通过 EUI64 计算得到的,拿到的地址应该是和link-local地址后 24 位不一样的,明显已经失败了,需要在 R1 的 0/0 接口做中继。
R1:
R1(config)#int f0/0
R1(config-if)#ipv6 dhcp relay destination 2001:13:1:1::3 relay给R3的f0/0接口
R2:
R2(config)#int f0/0
R2(config-if)#shutdown
R2(config-if)#no ipv6 address dhcp
R2(config-if)#ipv6 address dhcp
R2(config-if)#no shutdown
接下来我们来检查一下R2的f0/0接口是否有获得IP v6地址。

我们可以看到,地址已经获取到了,并且该地址是随机的。最后我们在R3上看一下该地址是不是R3给R2发送的这个地址。

我们可以看到,在R3的记录中,确实给R2发送这一个地址,并且跟R2获取到的地址一模一样。