项目3 配置IPv6路由实现双栈网络

需求调研

场景描述
在前两个项目中,园区网络已基于IPv4平稳运行。随着公司业务发展,需要接入IPv6互联网,并逐步将内部应用向IPv6迁移。当前阶段,网络需要同时支持IPv4和IPv6,即“双栈模式”。所有交换机、路由器和终端都需要配置IPv6地址,并能够通过IPv6协议进行通信。

需求分析

  1. 为每一台网络设备(交换机VLANIF接口、路由器接口)规划并配置IPv6地址。

  2. 所有网络设备需要通过IPv6动态路由协议自动学习IPv6路由,实现全网IPv6互通。

  3. 网络拓扑与项目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的接口地址

若配置正确,应能通。

思考与练习

  1. IPv6的链路本地地址(FE80::/10)是如何自动生成的?为什么它不需要全局路由?

  2. 在OSPFv3中,如果两台路由器配置了相同的Router ID,会发生什么?如何避免?

  3. 在配置OSPFv3时,如果忘记在接口上启用ospfv3 1 area 0,邻居能建立吗?为什么?

  4. 如何将项目2中配置的IPv4默认路由(0.0.0.0/0)对应的默认路由在IPv6中实现(即::/0)并注入OSPFv3?

  5. 双栈网络中,一台终端同时有IPv4和IPv6地址,它如何决定使用哪个协议访问外部服务?(提示:RFC 3484 - 地址选择策略)


任务3.2 配置VRRP6提升IPv6网关服务稳定性

需求调研

场景描述
核心交换机SW1作为园区所有VLAN的IPv6网关(如VLAN 10的网关为2001:db8:1:10::1),承担着所有终端IPv6流量的转发职责。若SW1出现故障,整个园区的IPv6通信将中断,影响所有业务。因此,需要对IPv6网关进行冗余部署,保证高可用性。

需求分析

  1. IPv6网关需要主备冗余,主设备故障时备用设备自动接管。

  2. 终端无需修改IPv6网关配置,虚拟IP地址始终保持不变。

  3. 需要实现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相同的目标,验证双栈正常工作。

思考与练习

  1. 为什么VRRP6需要同时配置link-local虚拟IP和全局虚拟IP?它们各自的作用是什么?

  2. 在DHCPv6中,无状态(SLAAC+DHCPv6)和有状态(纯DHCPv6)分配方式各适用于什么场景?

  3. 如果终端无法获取IPv6地址,可能的原因有哪些?(请从NDP、DHCPv6、中继、路由等层面分析)

  4. 在双栈网络中,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地址

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐