板块13 · IPv6 与组播技术
板块13 · IPv6 与组播技术
本板块解决什么问题:IPv4 地址枯竭后的地址体系(IPv6)与"一份数据发给多个接收者"的高效传输方式(组播)。两者都是 RGSP 的加分项、RGSE 的必修项。
对应 RGSP 考纲:IPv6、组播技术原理;RGSE:IPv6 技术原理和应用、组播技术原理和应用。
13_1 为什么需要 IPv6
| 驱动因素 | 说明 |
|---|---|
| 地址枯竭 | IPv4 仅约 43 亿地址,已分配殆尽 |
| NAT 的副作用 | NAT 破坏了端到端模型,P2P、VoIP 等应用复杂化 |
| 物联网 | 海量设备需要海量地址 |
| 性能 | IPv6 报头简化,转发效率更高 |
IPv6 的三大改进
| 改进 | 说明 |
|---|---|
| 地址空间 | 128 位,约 3.4×10^38 个地址 |
| 简化报头 | 固定 40 字节,去掉校验和,取消分片(由端系统处理) |
| 无状态自动配置 | SLAAC,设备插上网线就能自己生成地址 |
IPv4 报头 vs IPv6 报头
IPv4:变长(20-60 字节),含校验和、分片字段,路由器要做校验与分片
IPv6:固定 40 字节,无校验和(交给上层),分片由端系统用扩展头处理
→ 路由器处理更简单,转发效率更高
13_2 IPv6 地址格式、简写规则与地址类型
书写规则
完整形式:2001:0DB8:0000:0000:0001:0000:0000:0001
共 8 段,每段 4 个十六进制字符,用冒号分隔
规则一:前导 0 可省略
2001:DB8:0:0:1:0:0:1
规则二:连续的 0 段可用 :: 代替(★ 只能用一次)
2001:DB8::1:0:0:1 或 2001:DB8:0:0:1::1
最简形式:2001:DB8::1
★
::在一个地址中只能出现一次——否则无法还原出唯一地址。这是考试常考点。
地址前缀表示
2001:DB8:1234::/48 类似 IPv4 的 192.168.1.0/24
/64 是最常见的前缀长度(一个子网)
地址类型
| 类型 | 前缀 | 说明 | 对应 IPv4 |
|---|---|---|---|
| 全球单播地址 | 2000::/3 | 公网地址,全球唯一 | 公网 IP |
| 链路本地地址 | FE80::/10 | 每个接口自动生成,只在链路内有效 | 169.254.x.x |
| 唯一本地地址(ULA) | FC00::/7 | 私网地址 | 私有地址 |
| 组播地址 | FF00::/8 | 一对多 | 组播 |
| 任播地址 | — | 一对最近 | 无 |
| 环回地址 | ::1/128 | 本机 | 127.0.0.1 |
| 未指定地址 | ::/128 | 类似 0.0.0.0 | 0.0.0.0 |
★ IPv6 没有广播地址,广播的功能由组播替代。这是 IPv6 的重要特性,也是常考对比点。
关键单播地址细分
| 地址 | 作用 |
|---|---|
FE80::/10 |
链路本地,用于邻居发现、路由协议(OSPFv3/ISIS 用此建邻居) |
2001::/16 |
Teredo(IPv6 隧道过渡技术) |
2002::/16 |
6to4 隧道 |
FC00::/7 ~ FDFF::/7 |
唯一本地地址(ULA),相当于私网 |
常用组播地址(必记)
| 地址 | 含义 | 对应 IPv4 |
|---|---|---|
FF02::1 |
链路内所有节点 | 广播 |
FF02::2 |
链路内所有路由器 | — |
FF02::5 |
OSPFv3 所有路由器 | 224.0.0.5 |
FF02::6 |
OSPFv3 DR/BDR | 224.0.0.6 |
FF02::1:FFXX:XXXX |
请求节点组播地址(替代 ARP 广播) | — |
13_3 地址配置方式:手工、EUI-64、SLAAC、DHCPv6
手工配置
Ruijie(config)# ipv6 unicast-routing ! 开启 IPv6 单播路由(必需!)
Ruijie(config)# interface gi0/1
Ruijie(config-if)# ipv6 enable ! 启用 IPv6(自动生成链路本地地址)
Ruijie(config-if)# ipv6 address 2001:DB8:1::1/64
Ruijie(config-if)# no shutdown
Ruijie(config-if)# exit
★
ipv6 unicast-routing是最容易被忘的一步——类似于 IPv4 的ip routing。不开的话,IPv6 地址配了也转发不了。
EUI-64 方式(根据 MAC 自动生成接口 ID)
Ruijie(config-if)# ipv6 address 2001:DB8:1::/64 eui-64
EUI-64 生成规则:把 48 位 MAC 从中间插入 FFFE,并把第 7 位(U/L 位)取反。
MAC: 00:21:CC:CF:6F:70
插入 FFFE: 0021:CCFF:FECF:6F70
第7位取反: 0221:CCFF:FECF:6F70
(首字节 00000000 → 00000010 = 02H)
接口 ID: 221:CCFF:FECF:6F70
完整地址: 2001:DB8:1::221:CCFF:FECF:6F70/64
SLAAC(无状态自动配置)
设备通过接收路由器发出的 RA(Router Advertisement) 报文,自动获取前缀 + 自己生成接口 ID。
! 路由器侧:开启 RA 通告
Ruijie(config)# interface gi0/1
Ruijie(config-if)# ipv6 address 2001:DB8:1::1/64
Ruijie(config-if)# no ipv6 nd suppress-ra ! 允许发送 RA(默认可能抑制)
Ruijie(config-if)# exit
DHCPv6(有状态)
! 服务端
Ruijie(config)# ipv6 dhcp pool POOL6
Ruijie(config-dhcpv6)# address prefix 2001:DB8:1::/64
Ruijie(config-dhcpv6)# dns-server 2001:4860:4860::8888
Ruijie(config-dhcpv6)# exit
Ruijie(config)# interface vlan 10
Ruijie(config-if)# ipv6 dhcp server POOL6
SLAAC 与 DHCPv6 对比
| 方式 | 分配内容 | 有无状态 | 适用 |
|---|---|---|---|
| SLAAC | 只给前缀,接口 ID 自己生成 | 无状态 | 简单网络,不需管理 |
| DHCPv6 | 给完整地址 + DNS 等 | 有状态 | 需要精细管理、审计 |
验证
Ruijie# show ipv6 interface brief ! IPv6 接口摘要
Ruijie# show ipv6 interface gi0/1 ! 接口详情(含链路本地地址)
Ruijie# show ipv6 route ! IPv6 路由表
Ruijie# show ipv6 neighbors ! IPv6 邻居表(相当于 ARP 表)
Ruijie# ping ipv6 2001:DB8:1::2 ! IPv6 ping
Ruijie# show ipv6 routers ! 查看 RA 信息
★ 排障要点:
show ipv6 neighbors在 IPv6 中的作用等同于 IPv4 的show arp。IPv6 用邻居发现协议(NDP)替代了 ARP。
13_4 IPv6 路由:静态、OSPFv3、RIPng、MP-BGP
静态路由
! 指定下一跳
Ruijie(config)# ipv6 route 2001:DB8:2::/64 2001:DB8:1::2
! 指定出接口 + 下一跳
Ruijie(config)# ipv6 route 2001:DB8:2::/64 gi0/1 2001:DB8:1::2
! 默认路由
Ruijie(config)# ipv6 route ::/0 2001:DB8:1::2
OSPFv3(IPv6 的 OSPF)
与 OSPFv2 的关键差异(必考):
| 对比项 | OSPFv2(IPv4) | OSPFv3(IPv6) |
|---|---|---|
| 认证 | 协议内认证 | 依赖 IPv6 扩展头(IPsec) |
| 邻居建立 | 用接口 IP | 用链路本地地址(FE80::) |
| network 命令 | 在进程下 network | 在接口下直接启用 |
| Router ID | 32 位 | 仍是 32 位(需手工配置,因为 IPv6 地址是 128 位) |
Ruijie(config)# ipv6 unicast-routing
Ruijie(config)# ipv6 router ospf 1
Ruijie(config-router)# router-id 1.1.1.1 ! 必须手工指定
Ruijie(config-router)# exit
Ruijie(config)# interface gi0/1
Ruijie(config-if)# ipv6 enable
Ruijie(config-if)# ipv6 address 2001:DB8:1::1/64
Ruijie(config-if)# ipv6 ospf 1 area 0 ! 在接口下启用
Ruijie(config-if)# exit
Ruijie# show ipv6 ospf neighbor
Ruijie# show ipv6 route ospf
RIPng(IPv6 的 RIP)
Ruijie(config)# ipv6 router rip RIPNG1
Ruijie(config-router)# exit
Ruijie(config)# interface gi0/1
Ruijie(config-if)# ipv6 rip RIPNG1 enable
MP-BGP for IPv6
Ruijie(config)# router bgp 65001
Ruijie(config-router)# neighbor 2001:DB8:1::2 remote-as 65002
Ruijie(config-router)# address-family ipv6 unicast
Ruijie(config-router-af)# neighbor 2001:DB8:1::2 activate
Ruijie(config-router-af)# network 2001:DB8:100::/48
Ruijie(config-router-af)# exit
★ 注意:IPv6 的 BGP 需要在
address-family ipv6 unicast地址族下 activate 邻居,默认不激活。
13_5 IPv6 过渡技术:双栈、隧道、NAT64
IPv4 到 IPv6 不可能一刀切,需要过渡技术:
| 技术 | 类型 | 说明 |
|---|---|---|
| 双栈(Dual Stack) | 共存 | 设备同时跑 IPv4 和 IPv6,最主流、最推荐 |
| 6to4 隧道 | 隧道 | 把 IPv6 包封装在 IPv4 中传输,前缀 2002::/16 |
| ISATAP | 隧道 | 站内自动隧道寻址 |
| NAT64 | 翻译 | IPv6 网络访问 IPv4 资源 |
| DS-Lite | 翻译 | 运营商级过渡方案 |
双栈配置(最常用)
Ruijie(config)# ip routing ! 开启 IPv4 路由
Ruijie(config)# ipv6 unicast-routing ! 开启 IPv6 路由
Ruijie(config)# interface vlan 10
Ruijie(config-if)# ip address 192.168.10.1 255.255.255.0
Ruijie(config-if)# ipv6 address 2001:DB8:10::1/64
Ruijie(config-if)# exit
双栈终端的行为:
同时拥有 IPv4 和 IPv6 地址
访问 IPv4 资源走 IPv4,访问 IPv6 资源走 IPv6
★ 双栈不是"二选一",而是"两条路都在,按需选择"
手动隧道(IPv6 over IPv4)
Ruijie(config)# interface tunnel 0
Ruijie(config-if)# ipv6 address 2001:DB8:FE::1/64
Ruijie(config-if)# tunnel source 10.0.0.1
Ruijie(config-if)# tunnel destination 10.0.0.2
Ruijie(config-if)# tunnel mode ipv6ip
Ruijie(config-if)# exit
过渡技术选型
新建网络、改造彻底 → 纯双栈(最优)
需要与 IPv4 老系统长期共存 → 双栈 + NAT64
IPv6 孤岛跨 IPv4 网络互联 → 隧道(6to4 / 手动隧道)
13_6 组播:IGMP、IGMP Snooping 与 PIM-SM
为什么需要组播
| 方式 | 场景 | 问题 |
|---|---|---|
| 单播 | 100 个用户看视频 | 服务器发 100 份相同数据,带宽浪费 100 倍 |
| 广播 | 发给所有人 | 不需要的人也被迫接收,浪费且不安全 |
| 组播 | 只发给加入组的成员 | 一份数据,按需复制,带宽只占一份 |
单播:服务器 ──▶ 用户1、用户2、用户3 ……直到用户N(共 N 份拷贝,N 个用户就是 N 倍带宽)
广播:服务器 ──▶ 所有主机(不管对方要不要,且通常止步于三层)
组播:服务器 ──▶ 组播组地址 ──▶ 只复制给加入了该组的成员(每条链路上只有 1 份数据)
组播地址
| 范围 | 说明 |
|---|---|
224.0.0.0 - 224.0.0.255 |
保留的链路本地组播(路由协议用,TTL=1,不转发) |
224.0.1.0 - 238.255.255.255 |
用户可用的组播地址 |
239.0.0.0 - 239.255.255.255 |
管理范围(私有)组播地址,类似私有 IP |
常见保留地址:
| 地址 | 用途 |
|---|---|
| 224.0.0.1 | 所有主机 |
| 224.0.0.2 | 所有路由器 |
| 224.0.0.5 | OSPF 路由器 |
| 224.0.0.6 | OSPF DR/BDR |
| 224.0.0.9 | RIPv2 |
| 224.0.0.18 | VRRP |
IGMP(主机与路由器之间)
作用:主机通过 IGMP 告诉路由器"我要加入/离开某个组播组"。
| 版本 | 特点 |
|---|---|
| IGMPv1 | 只有成员报告与查询,离开靠超时(延迟大) |
| IGMPv2 | 增加离开报文(Leave),离开更及时(最常用) |
| IGMPv3 | 支持指定源(SSM),可指定只接收某个源的组播 |
! 在连接组播接收者的接口上启用
Ruijie(config)# interface vlan 10
Ruijie(config-if)# ip igmp enable
Ruijie(config-if)# ip igmp version 2
Ruijie(config-if)# exit
IGMP Snooping(交换机上的二层优化)
解决的问题:交换机缺省把组播当作广播处理,会向 VLAN 内所有端口泛洪,浪费带宽。
原理:交换机监听 IGMP 报文,建立"组播组 → 端口"的转发表,只把组播流量发给真正有接收者的端口。
未开 Snooping: 开启 Snooping:
组播源 组播源
│ │
┌──┴──┐ ┌──┴──┐
│交换机 │ │交换机 │
└─┬┬┬┬┬┘ └─┬┬┬┬┬┘
│││││ 全部泛洪 │││││ 只发给加入了组的端口
A B C D E A B C D E
✓ ✓ (只有 A、C 加入了组)
! 全局开启 IGMP Snooping
Ruijie(config)# ip igmp snooping
! 指定 VLAN 生效
Ruijie(config)# ip igmp snooping vlan 10
! 配置连接组播路由器的端口(避免被误剪枝)
Ruijie(config)# interface gi0/24
Ruijie(config-if)# ip igmp snooping mrouter
Ruijie# show ip igmp snooping ! 查看全局配置
Ruijie# show ip igmp snooping groups ! 查看组播组与成员端口
Ruijie# show ip igmp snooping mrouter ! 查看组播路由器端口
PIM-SM(组播路由协议,三层)
PIM 两种模式:
| 模式 | 全称 | 特点 | 适用 |
|---|---|---|---|
| PIM-DM | Dense Mode | 先泛洪再剪枝(推模型) | 小型、接收者密集 |
| PIM-SM | Sparse Mode | 按需建立分发树(拉模型) | 大中型网络(主流) |
PIM-SM 核心概念:
| 概念 | 说明 |
|---|---|
| RP(Rendezvous Point) | 汇聚点,组播源的注册中心和接收者的汇合点 |
| RPT(共享树) | 以 RP 为根的树,初始使用 |
| SPT(最短路径树) | 以源为根的树,优化后切换(避免绕行 RP) |
| DR | 指定路由器,负责向 RP 注册或转发 |
PIM-SM 工作流程(简化):
① 接收者向 DR 发 IGMP 加入
② DR 向 RP 方向发送 (*, G) Join,建立 RPT
③ 组播源向 RP 注册(Register)
④ 数据沿 RPT 从 RP 流向接收者
⑤ 流量超过阈值后,接收者侧 DR 切换到 SPT(绕开 RP,走最短路径)
PIM-SM 配置
! 1. 全局开启组播路由
Ruijie(config)# ip multicast-routing
! 2. 在参与组播的接口上启用 PIM-SM
Ruijie(config)# interface vlan 10
Ruijie(config-if)# ip pim sparse-mode
Ruijie(config-if)# exit
Ruijie(config)# interface gi0/24
Ruijie(config-if)# ip pim sparse-mode
Ruijie(config-if)# exit
! 3. 配置 RP(静态方式,也可用 BSR 动态选举)
Ruijie(config)# ip pim rp-address 10.0.0.100
! 所有 PIM 路由器上的 RP 地址必须一致
组播验证
Ruijie# show ip igmp groups ! 查看加入的组播组
Ruijie# show ip igmp interface vlan 10 ! 接口 IGMP 状态
Ruijie# show ip pim neighbor ! PIM 邻居
Ruijie# show ip pim rp ! 查看 RP 信息(★ 必查)
Ruijie# show ip mroute ! 组播路由表
Ruijie# show ip mfib ! 组播转发表
组播排障清单
| 现象 | 排查方向 |
|---|---|
| 接收者收不到组播 | IGMP 是否启用;show ip igmp groups 有无成员 |
| 组播在全网泛洪 | IGMP Snooping 是否开启;mrouter 端口是否配置 |
| 有成员但无流量 | PIM 邻居是否建立;RP 地址是否全网一致 |
| 组播时断时续 | SPT 切换问题;RPF 检查失败 |
| 三层通但二层不通 | 检查 Snooping 表项与 mrouter 端口 |
★ 排障第一查:
show ip pim rp——RP 地址不一致是组播故障的头号原因,且现象往往表现为"时有时无",极具迷惑性。
现场故事 · 监控画面全黑的"RP 不一致"
某园区视频监控系统改造后,部分楼层的监控画面全黑,但同一 VLAN 内其他业务正常。
排查:单播全通,组播地址规划正确,IGMP Snooping 表项也有成员端口。
最后show ip pim rp发现:核心交换机配置的 RP 是 10.0.0.100,而其中一台汇聚交换机被前任工程师单独配成了 10.0.0.200。两台设备的 RP 认知不一致,RPT 建不起来。
统一 RP 后,画面全部恢复。
复盘:所有需要"全网一致"的参数(RP、MSTP 域名、VRRP 组号、OSPF 区域号)都应该写进规划表并在验收时逐台核对。 这类故障不会报错、不会告警,只会在业务上体现为"莫名其妙不通"。
13_7 速记卡 · 板块13
| 编号 | 一句话结论 | 关键词 |
|---|---|---|
| ★1 | IPv6 地址 128 位,:: 只能出现一次 |
必考 |
| ★2 | IPv6 没有广播,广播功能由组播替代 | 与 IPv4 对比 |
| ★3 | FE80::/10 链路本地,OSPFv3 用它建邻居 | 关键地址 |
| ★4 | ipv6 unicast-routing 必须开,否则配了也不转发 |
最易漏 |
| ★5 | EUI-64:MAC 中间插 FFFE + 第 7 位取反 | 生成规则 |
| ★6 | OSPFv3 认证靠 IPsec;在接口下启用;RID 需手工配 | 与 v2 差异 |
| ★7 | IPv6 BGP 需 address-family ipv6 unicast 下 activate |
默认不激活 |
| ★8 | show ipv6 neighbors = IPv6 的 show arp |
排障要点 |
| ★9 | 过渡首选双栈;IPv6 孤岛用隧道 | 选型 |
| ★10 | 组播:一份数据按需复制,IGMP Snooping 解决二层泛洪 | 核心价值 |
| ★11 | PIM-SM 是拉模型(主流),RP 必须全网一致 | 头号故障原因 |
| ★12 | 组播排障第一查:show ip pim rp |
排障顺序 |
浙公网安备 33010602011771号