配置IPv6路由实现双栈网络
项目3 配置IPv6路由实现双栈网络
需求调研
场景描述
在前两个项目中,园区网络已基于IPv4平稳运行。随着公司业务发展,需要接入IPv6互联网,并逐步将内部应用向IPv6迁移。当前阶段,网络需要同时支持IPv4和IPv6,即“双栈模式”。所有交换机、路由器和终端都需要配置IPv6地址,并能够通过IPv6协议进行通信。
需求分析
-
为每一台网络设备(交换机VLANIF接口、路由器接口)规划并配置IPv6地址。
-
所有网络设备需要通过IPv6动态路由协议自动学习IPv6路由,实现全网IPv6互通。
-
网络拓扑与项目2保持一致,但路由协议从OSPFv2升级为OSPFv3(在保持原有IPv4 OSPF配置不变的基础上,新增IPv6的OSPFv3配置)。
关键技术
3.1.1 破解IPv4地址空间难题——IPv6地址
-
IPv6地址长度:128位(相比IPv4的32位),通常表示为8组4位十六进制数,用冒号分隔,例如
2001:0db8:85a3:0000:0000:8a2e:0370:7334。 -
地址简化规则:
-
每组中的前导零可以省略,例如
2001:0db8→2001:db8。 -
连续多个全零组可用双冒号
::表示一次,例如2001:db8:0:0:0:0:0:1→2001:db8::1。
-
-
常见IPv6地址类型:
-
全球单播地址(GUA):前缀范围为2000::/3,相当于IPv4的公网地址,可在全球互联网路由。
-
链路本地地址(LLA):前缀为FE80::/10,仅在本地链路有效,用于邻居发现协议(NDP)等。设备自动生成,无需配置。
-
唯一本地地址(ULA):前缀为FC00::/7,类似IPv4的私有地址,用于内部网络。
-
多播地址:前缀为FF00::/8,用于一对多通信。
-
-
IPv6前缀:用“地址/前缀长度”表示网络段,类似于IPv4的子网掩码。如
2001:db8:1::/64。
3.1.2 实现IPv6邻居发现——ICMPv6
-
ICMPv6(Internet Control Message Protocol version 6)是IPv6的核心控制协议,集成了IPv4中ICMP、ARP和IGMP的功能。
-
邻居发现协议(NDP,Neighbor Discovery Protocol)是ICMPv6的核心子协议,主要功能包括:
-
地址解析:替代IPv4的ARP,通过邻居请求(NS)和邻居通告(NA)报文获取对端MAC地址。
-
路由器发现:主机通过路由器请求(RS)和路由器通告(RA)报文发现本地路由器,并获取前缀信息和默认网关。
-
重复地址检测(DAD):设备配置IPv6地址时,通过发送NS报文检测该地址是否已被其他设备使用。
-
3.1.3 实现动态IPv6路由——OSPFv3
-
OSPFv3是OSPF协议在IPv6环境下的版本(RFC 2740),其工作机制与OSPFv2(IPv4版本)基本相同,但在以下方面有显著差异:
-
基于链路运行:OSPFv3不再基于IP子网,而是基于链路。同一链路上的路由器可以直接建立邻居,无需配置network宣告。
-
使用链路本地地址:OSPFv3使用链路本地地址(FE80::/10)作为邻居通信的源地址,减少了对全局单播地址的依赖。
-
LSA类型变化:引入了新的LSA类型(如Link LSA、Intra-Area-Prefix LSA)来携带IPv6前缀信息。
-
认证方式变化:OSPFv3不再在协议自身中集成认证,而是依赖IPv6的IPsec(AH/ESP)提供安全保护。
-
-
配置命令:
ospfv3 1→router-id 1.1.1.1→area 0→ 在接口上启用ospfv3 1 area 0。
方案规划
IPv6地址规划
采用2001:db8:园区编号::/64作为内部IPv6前缀。
-
VLAN 10(办公):2001:db8:1:10::/64,网关为2001:db8:1:10::1
-
VLAN 20(监控):2001:db8:1:20::/64,网关为2001:db8:1:20::1
-
VLAN 30(访客):2001:db8:1:30::/64,网关为2001:db8:1:30::1
-
VLAN 99(管理):2001:db8:1:99::/64,网关为2001:db8:1:99::1
-
互联链路:采用
2001:db8:1:ff::/64,设备分别使用::1和::2
OSPFv3区域规划
沿用项目2的OSPF区域划分:
-
骨干区域Area 0:路由器之间的互联链路。
-
普通区域Area 1:核心交换机SW1。
-
普通区域Area 2:接入交换机SW2等(如需多层结构)。
部署实施
步骤一 创建VLAN并划分交换机端口
此步骤与任务1.1完全相同,在各交换机上创建VLAN 10、20、30、99,并将对应端口划入相应VLAN。互联端口配置为Trunk并允许所有VLAN通过。
步骤二 配置交换机链路聚合和接口类型
此步骤与任务1.2完全相同,在各交换机间配置LACP Eth-Trunk,提高链路带宽和冗余性。配置MSTP防环。
步骤三 配置路由器接口IPv6地址和交换机VLANIF接口IPv6地址
1. 在路由器R1上配置IPv6地址(以R1的G0/0/0接口连接ISP为例)
text
[R1] ipv6 // 全局启用IPv6 [R1] interface GigabitEthernet 0/0/0 [R1-GigabitEthernet0/0/0] ipv6 enable [R1-GigabitEthernet0/0/0] ipv6 address 2001:db8:1:ff::1/64 [R1] interface GigabitEthernet 0/0/1 [R1-GigabitEthernet0/0/1] ipv6 enable [R1-GigabitEthernet0/0/1] ipv6 address 2001:db8:1:ff::3/64 // 连接R2的链路
注意:每个接口的IPv6地址必须在相同的/64前缀内,确保接口在同一链路。
2. 在核心交换机SW1上配置VLANIF接口的IPv6地址
text
[SW1] ipv6 [SW1] interface Vlanif 10 [SW1-Vlanif10] ipv6 enable [SW1-Vlanif10] ipv6 address 2001:db8:1:10::1/64 [SW1] interface Vlanif 20 [SW1-Vlanif20] ipv6 enable [SW1-Vlanif20] ipv6 address 2001:db8:1:20::1/64 [SW1] interface Vlanif 99 [SW1-Vlanif99] ipv6 enable [SW1-Vlanif99] ipv6 address 2001:db8:1:99::1/64 [SW1] interface Vlanif 254 // 连接R1的互联VLAN [SW1-Vlanif254] ipv6 enable [SW1-Vlanif254] ipv6 address 2001:db8:1:ff::2/64
步骤四 配置基本OSPFv3
1. 在R1上配置OSPFv3进程并指定Router ID
text
[R1] ospfv3 1 [R1-ospfv3-1] router-id 1.1.1.1 [R1-ospfv3-1] area 0.0.0.0
注意:OSPFv3的Router ID仍为32位IPv4格式,必须手工配置(不会像OSPFv2那样自动选举)。
2. 在R1的接口上启用OSPFv3
text
[R1] interface GigabitEthernet 0/0/0 [R1-GigabitEthernet0/0/0] ospfv3 1 area 0 [R1] interface GigabitEthernet 0/0/1 [R1-GigabitEthernet0/0/1] ospfv3 1 area 0
3. 在所有其他路由器(R2、R3等)上重复上述配置
4. 在三层交换机SW1上配置OSPFv3
text
[SW1] ospfv3 1 [SW1-ospfv3-1] router-id 5.5.5.5 [SW1-ospfv3-1] area 0.0.0.1 [SW1] interface Vlanif 254 [SW1-Vlanif254] ospfv3 1 area 1 // 连接到R1的接口 [SW1] interface Vlanif 10 [SW1-Vlanif10] ospfv3 1 area 1 // 终端VLAN,可以配置为静默接口
注意:VLANIF 10是终端所在的VLAN,建议在后续步骤中配置为“静默接口”,不再发送Hello报文。
步骤五 配置OSPFv3接口网络类型
OSPFv3在不同网络类型中的行为不同(类似OSPFv2),常见类型有:
-
广播(Broadcast):默认类型,用于以太网,需要选举DR/BDR。
-
点到点(P2P):用于PPP/HDLC链路或只有两台设备的以太网链路,无需选举DR/BDR。
修改互联链路接口类型为P2P(加快收敛,避免不必要的DR选举)
text
[R1] interface GigabitEthernet 0/0/1 [R1-GigabitEthernet0/0/1] ospfv3 network-type p2p
建议在路由器之间的互联链路上使用P2P类型。
步骤六 配置OSPFv3静默接口和接口开销
1. 配置静默接口
终端所在的VLAN接口不需要发送OSPF Hello报文,可配置为静默接口,减少不必要的协议开销。
text
[SW1] ospfv3 1 [SW1-ospfv3-1] silent-interface Vlanif 10 [SW1-ospfv3-1] silent-interface Vlanif 20 [SW1-ospfv3-1] silent-interface Vlanif 30
2. 修改接口开销(调整路径选择)
若希望某条路径被优先选择,可减小其开销值。开销值的计算公式为:开销 = 参考带宽 / 接口带宽(默认参考带宽为100Mbps)。
text
[R1] interface GigabitEthernet 0/0/1 [R1-GigabitEthernet0/0/1] ospfv3 cost 10
在华为设备中,GigabitEthernet(1000Mbps)的默认开销为1。若调整,需了解其对SPF计算的影响。
步骤七 验证OSPFv3配置
1. 查看OSPFv3邻居状态
text
[R1] display ospfv3 peer
正常输出应显示邻居状态为“Full”。
2. 查看OSPFv3路由表
text
[R1] display ospfv3 routing
应能看到学习到的IPv6路由,类型包括Inter-area(区域间)和External(外部)路由。
3. 查看全局IPv6路由表
text
[R1] display ipv6 routing-table
应能看到OSPFv3学习到的路由(以“O”或“OIA”标识)。
4. 查看IPv6邻居表(ND表)
text
[R1] display ipv6 neighbors
可看到已解析的IPv6地址与MAC地址的映射关系。
5. 连通性测试
从园区内PC(配置IPv6地址2001:db8:1:10::100/64)执行:
text
ping ipv6 2001:db8:1:20::1 // ping VLAN20网关 ping ipv6 2001:db8:1:ff::1 // ping R1的接口地址
若配置正确,应能通。
思考与练习
-
IPv6的链路本地地址(FE80::/10)是如何自动生成的?为什么它不需要全局路由?
-
在OSPFv3中,如果两台路由器配置了相同的Router ID,会发生什么?如何避免?
-
在配置OSPFv3时,如果忘记在接口上启用
ospfv3 1 area 0,邻居能建立吗?为什么? -
如何将项目2中配置的IPv4默认路由(0.0.0.0/0)对应的默认路由在IPv6中实现(即::/0)并注入OSPFv3?
-
双栈网络中,一台终端同时有IPv4和IPv6地址,它如何决定使用哪个协议访问外部服务?(提示:RFC 3484 - 地址选择策略)
任务3.2 配置VRRP6提升IPv6网关服务稳定性
需求调研
场景描述
核心交换机SW1作为园区所有VLAN的IPv6网关(如VLAN 10的网关为2001:db8:1:10::1),承担着所有终端IPv6流量的转发职责。若SW1出现故障,整个园区的IPv6通信将中断,影响所有业务。因此,需要对IPv6网关进行冗余部署,保证高可用性。
需求分析
-
IPv6网关需要主备冗余,主设备故障时备用设备自动接管。
-
终端无需修改IPv6网关配置,虚拟IP地址始终保持不变。
-
需要实现IPv6地址的自动分配(类似IPv4的DHCP),方便终端即插即用。
关键技术
3.2.1 实现IPv6网关冗余备份——VRRP6
-
VRRP6是VRRP协议在IPv6环境下的版本,工作机制与VRRP(IPv4)基本相同。
-
VRRP6组中的路由器共享一个虚拟IPv6地址(即网关地址),终端将默认网关指向该虚拟地址。
-
VRRP6的虚拟MAC地址基于组ID生成,格式为
00-00-5E-00-02-{VRID}(IPv6的VRRP虚拟MAC与IPv4相同)。 -
关键参数:
-
vrrp6 vrid 1 virtual-ip 2001:db8:1:10::1 link-local:配置虚拟IPv6地址,link-local选项表示同时生成一个链路本地虚拟地址,用于NDP协议通信。 -
优先级、抢占、接口跟踪等机制与IPv4的VRRP完全相同。
-
3.2.2 实现IPv6地址自动分配——DHCPv6
-
DHCPv6(Dynamic Host Configuration Protocol for IPv6)是IPv6环境下的地址自动分配协议。
-
有状态分配(Stateful):DHCPv6服务器为客户端分配完整的IPv6地址、前缀、DNS等参数,并维护租约状态。
-
无状态分配(Stateless):客户端通过SLAAC(Stateless Address Autoconfiguration)自动生成IPv6地址,DHCPv6只用于分配DNS等辅助信息(通过DHCPv6的“信息请求”消息)。
-
两种标志位(在路由通告RA报文中):
-
M位(Managed Address Configuration Flag):为1时表示使用有状态DHCPv6分配地址。
-
O位(Other Configuration Flag):为1时表示使用无状态DHCPv6分配DNS等参数。
-
-
DHCPv6中继:与DHCPv4中继类似,当客户端与DHCPv6服务器不在同一链路时,需要通过中继代理转发DHCPv6报文。
方案规划
拓扑设计
text
R1(出口路由器) R2(备用出口)
| |
+-------+----------+----+
| |
SW1(核心-主) SW2(核心-备)
| |
+-----+----+ +----+-----+
| VLAN10 | | VLAN20 |
终端1(办公) 终端2(监控)
VRRP6组规划(在核心交换机SW1和SW2上配置)
-
组1(VRID 1):用于VLAN 10(办公),虚拟IPv6地址为2001:db8:1:10::1
-
组2(VRID 2):用于VLAN 20(监控),虚拟IPv6地址为2001:db8:1:20::1
-
优先级分配:SW1为VLAN 10的主设备(优先级120),SW2为备(100);VLAN 20则相反,实现负载分担。
DHCPv6规划
-
在出口路由器R1上配置DHCPv6服务器(有状态),为VLAN 10和VLAN 20的终端分配IPv6地址和DNS。
-
在核心交换机SW1和SW2上配置DHCPv6中继,将客户端的DHCPv6请求转发至R1。
部署实施
步骤一 创建VLAN并划分交换机端口
此步骤与任务1.1相同,在SW1和SW2上创建VLAN 10、20等,并将接口划入对应VLAN。SW1和SW2之间的互联链路配置为Trunk,允许所有VLAN通过。
步骤二 配置交换机MSTP生成树
此步骤与任务1.2相同,在两台核心交换机上配置MSTP,确保双核心环境下的链路冗余和负载分担。
步骤三 配置交换机VRRPv6组和虚拟IP
1. 在SW1上为VLAN 10配置VRRP6组
text
[SW1] interface Vlanif 10 [SW1-Vlanif10] ipv6 enable [SW1-Vlanif10] ipv6 address 2001:db8:1:10::2/64 // 物理IP,与虚拟IP不同 [SW1-Vlanif10] vrrp6 vrid 1 virtual-ip 2001:db8:1:10::1 link-local
2. 在SW2上为VLAN 10配置VRRP6组(备)
text
[SW2] interface Vlanif 10 [SW2-Vlanif10] ipv6 enable [SW2-Vlanif10] ipv6 address 2001:db8:1:10::3/64 [SW2-Vlanif10] vrrp6 vrid 1 virtual-ip 2001:db8:1:10::1 link-local
3. 同理,为VLAN 20配置VRRP6组(VRID 2),在SW1和SW2上分别配置。
4. 验证VRRP6状态
text
[SW1] display vrrp6 brief
应看到VRRP6组的状态,SW1为Master,SW2为Backup。
步骤四 配置VRRPv6优先级和VRRPv6抢占延时
1. 设置SW1为VLAN 10的主设备
text
[SW1] interface Vlanif 10 [SW1-Vlanif10] vrrp6 vrid 1 priority 120
2. 设置SW2为VLAN 20的主设备(实现负载分担)
text
[SW2] interface Vlanif 20 [SW2-Vlanif20] vrrp6 vrid 2 priority 120
3. 配置抢占延时
为防止网络震荡,可在Master上配置抢占延时(如延迟10秒再抢占):
text
[SW1] interface Vlanif 10 [SW1-Vlanif10] vrrp6 vrid 1 preempt-mode timer delay 10
步骤五 配置VRRPv6接口跟踪
监控上行链路(连接R1的链路),若上行链路故障,主设备自动降优先级,触发切换。
在SW1上跟踪Vlanif254(连接R1的接口)
text
[SW1] interface Vlanif 10 [SW1-Vlanif10] vrrp6 vrid 1 track interface Vlanif254 reduced 30
当Vlanif254变为Down时,VRID 1的优先级从120降低至90,低于SW2的100,触发切换。
步骤六 配置路由器DHCPv6地址池
在R1上配置DHCPv6服务器(有状态)
1. 全局启用DHCPv6服务
text
[R1] dhcp enable [R1] dhcpv6 enable
2. 配置DHCPv6地址池
text
[R1] dhcpv6 pool pool_vlan10 [R1-dhcpv6-pool-pool_vlan10] address prefix 2001:db8:1:10::/64 [R1-dhcpv6-pool-pool_vlan10] dns-server 2001:4860:4860::8888 // Google IPv6 DNS [R1-dhcpv6-pool-pool_vlan10] excluded-address 2001:db8:1:10::1 2001:db8:1:10::10
3. 在R1的接口上启用DHCPv6服务器
text
[R1] interface GigabitEthernet 0/0/2 // 连接SW1的接口 [R1-GigabitEthernet0/0/2] dhcpv6 server pool_vlan10 [R1-GigabitEthernet0/0/2] ipv6 nd other-config-flag // 设置O位,告知客户端通过DHCPv6获取其他配置
若采用有状态分配(地址也由DHCP分配),需设置
ipv6 nd managed-config-flag(M位)。
步骤七 配置交换机DHCPv6中继
由于终端所在的VLAN(如VLAN 10)与DHCPv6服务器(R1)不在同一链路,需要在核心交换机上配置DHCPv6中继,将DHCPv6请求转发给R1。
在SW1上配置DHCPv6中继(将VLAN 10的DHCPv6请求中继到R1)
text
[SW1] interface Vlanif 10 [SW1-Vlanif10] dhcpv6 relay destination 2001:db8:1:ff::1 // 指向R1的IPv6地址
同时,SW1需要开启IPv6路由转发功能,确保中继报文能到达R1。
步骤八 调试与验证
1. 查看DHCPv6地址池使用情况
text
[R1] display dhcpv6 pool
2. 查看DHCPv6中继状态
text
[SW1] display dhcpv6 relay
3. 在终端上验证IPv6地址获取
-
Windows终端:
ipconfig /all,查看IPv6地址是否从2001:db8:1:10::/64网段自动获取。 -
Linux终端:
ip -6 addr show,查看分配的IPv6地址。
4. 验证VRRP6状态变化
-
关闭SW1的Vlanif254接口(上行链路):
[SW1] interface Vlanif254→shutdown -
在SW2上
display vrrp6 brief,确认SW2已切换为Master。 -
恢复接口后,延迟10秒,SW1重新抢占为Master。
5. 双栈连通性验证
-
终端通过IPv6 ping网关:
ping -6 2001:db8:1:10::1 -
终端通过IPv6 ping外部IPv6地址:
ping -6 2001:4860:4860::8888 -
同时通过IPv4 ping相同的目标,验证双栈正常工作。
思考与练习
-
为什么VRRP6需要同时配置
link-local虚拟IP和全局虚拟IP?它们各自的作用是什么? -
在DHCPv6中,无状态(SLAAC+DHCPv6)和有状态(纯DHCPv6)分配方式各适用于什么场景?
-
如果终端无法获取IPv6地址,可能的原因有哪些?(请从NDP、DHCPv6、中继、路由等层面分析)
-
在双栈网络中,DNS解析是如何工作的?如果DNS服务器只有IPv4地址,IPv6-only的终端能否完成域名解析?
项目评价
| 评价维度 | 评价标准 | 分值占比 |
|---|---|---|
| IPv6基础 | 能正确理解IPv6地址结构,独立规划园区IPv6地址方案 | 15% |
| IPv6二层配置 | 能配置交换机VLANIF接口的IPv6地址,验证ND邻居表 | 15% |
| IPv6动态路由 | 能正确部署OSPFv3,建立邻居,验证路由表 | 25% |
| IPv6网关冗余 | 能配置VRRP6,调整优先级,实现主备切换 | 25% |
| IPv6地址分配 | 能部署DHCPv6服务器或中继,终端成功获取IPv6地址 | 10% |
| 双栈排障 | 能在双栈环境下快速诊断IPv4或IPv6单栈故障 | 10% |
项目拓展
-
挑战1(IPv6过渡技术):如果园区网络暂时无法获得全球IPv6地址,但需要与外部IPv6网络通信,可研究NAT64/DNS64技术,实现IPv6-only客户端访问IPv4-only互联网资源。
-
挑战2(IPv6安全):IPv6网络同样面临安全威胁,如NDP欺骗、RA洪水攻击等。请调研IPv6的SEND(Secure Neighbor Discovery)协议和RA Guard技术,在交换机上配置RA Guard防止非法RA报文。
-
挑战3(IPv6段路由SRv6):作为未来网络的核心技术,SRv6(Segment Routing over IPv6)正在被广泛采用。请调研SRv6的基本原理和它如何在智慧园区网络中简化网络架构。
后续项目衔接说明
项目3为园区网络完成了从IPv4到IPv6双栈的平滑演进,现在网络可以同时承载两种协议的流量。项目4将在此基础上部署无线网络覆盖,实现园区内任何位置的有线和无线接入,并确保无线网络同样支持双栈。最终,一个完整的智慧园区基础网络将展现在您面前。
附件:双栈网络配置检查清单
| 检查项 | 命令 | 预期结果 |
|---|---|---|
| IPv6全局启用 | display ipv6 interface brief |
所有接口显示“Up” |
| IPv6邻居表 | display ipv6 neighbors |
有合法邻居条目 |
| OSPFv3邻居 | display ospfv3 peer |
状态为“Full” |
| IPv6路由表 | display ipv6 routing-table |
有OSPFv3学习的路由 |
| VRRP6状态 | display vrrp6 brief |
Master/Backup状态正确 |
| DHCPv6地址池 | display dhcpv6 pool |
有可用地址 |
| 终端IPv6地址 | ipconfig / ip -6 addr |
获取到合法IPv6地址 |
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐

所有评论(0)