B模块 安全通信网络 第二门课IPv6与WLAN 02

今日目标

01 ICMPv6概述

02 ICMPv6报文类型

03 NDP概述

04 路由器发现

05 地址解析


1 ICMPv6概述

ICMPv6概述

  • ICMPv6
    √ ICMPv6是IPv6的基础协议之一
    √ 在IPv6报文头部中,NextHeader字段值为58则对应为ICMPv6报文
    √ ICMPv6报文的作用:提供错误报告,网络诊断、邻居发现
    √ ICMPv6控制着IPv6中的地址自动配置、地址解析、地址冲突检测、以及差错控制

ICMPv6报文格式

2 ICMPv6报文类型

# ICMPv6报文类型

  • ICMPv6报文分为两类:差错报文和信息报文

# ICMPv6信息报文应用

  • Ping基于ICMPv6信息报文实现
    ✓ EchoRequest: 用于发送到目标节点,以使目标节点立即发回一个EchoReply应答报文
    ✓ EchoRequest报文的Type字段值为128,Code字段的值为0
    ✓ EchoReply: 当收到一个EchoRequest报文时,ICMPv6会用EchoReply报文响应
    ✓ EchoReply报文的Type字段的值为129,Code字段的值为0

  • 第一步:配置接口IPv6地址抓包分析
bash 复制代码
[R1]ipv6
[R1jint g0/0/0
[R1-GigabitEthernet0/0/0]ipv6 enable
[R1-GigabitEthernet0/0/0jipv6 address 2001:12:1 64
[R2]ipv6
[R2]int g0/0/0
[R2-GigabitEthernet0/0/0]ipv6 enable
[R2-GigabitEthernet0/0/0]ipv6 address 2001:12:2 64
  • 第二步:ping测试,抓包分析
bash 复制代码
PC1 ping ipv62001:12:2
抓包结果:
EchoRequest报文的Type字段值为128,Code字段的值为0
EchoReply报文的Type字段的值为129,Code字段的值为0

# ICMPv6其它常用报文

  • 邻居发现
    ✓ Type=133 路由器请求 (R outer S olicitation)
    ✓ Type=134 路由器公告 (R outer A dvertisement)
    ✓ Type=135 邻居请求 (N eighbor S olicitation)
    ✓ Type=136 邻居公告 (N eighbor Advertisement)

3 NDP概述

NDP概述

  • NDP:邻居发现协议的主要功能

NDP报文类型及功能

  • NDP使用以下几种ICMPv6报文:
    ✓ RS(Router Solicitation):路由器请求报文
    ✓ RA(Router Advertisement):路由器通告报文
    ✓ NS(Neighbor Solicitation):邻居请求报文
    ✓ NA(Neighbor Advertisement):邻居通告报文

IPv6组播MAC

  • 组播IPv6报文的目的IP为组播IPv6地址,目的MAC为组播MAC地址
    ✓ 组播MAC的前16bit为"33:33",是专门为IPv6组播预留的MAC地址前缀
    ✓ 后32bit从组播IPv6地址的后32bit直接映射而来。

被请求节点组播地址

  • 被请求节点组播地址
    ✓ 当一个节点具有了单播或任播地址,就会对应生成一个被请求节点组播地址,并且加入这个组播组
    ✓ 该地址主要用于邻居发现和地址重复检测功能,被请求节点组播地址的有效范围为本地链路范围

IPv6组播地址

  • FF01:

    √ 表示"接口本地",单个接口有效,仅用于Loopback通讯

    √ 这种类型的地址主要用于单个设备内部的通信

  • FF02:

    √ 表示"链路本地",组播数据仅在同一网络段的所有设备之间传输,不会被转发到其他网络段。

    √ 这是最常见的组播范围之一,常用于局域网内的多播通信

  • FF02::1:

    ✓ 名称:所有节点组播地址

    ✓ 作用:向同一链路上的所有IPv6设备发送数据包

    ✓ 应用场景:可以使用这个地址来广播消息,报文的目的地址为FF02::1,同一网络段内的所有设备都能接收到这个报文

  • FF02::2:

    ✓ 名称:所有路由器组播地址

    ✓ 作用:向同一链路上的所有IPv6路由器发送数据包

    ✓ 应用场景:用于和路由器之间的通信,报文的目的地址为FF02::2,同一网段内的所有的路由器都能接收到这个报文

4 路由器发现

路由器发现

  • 路由器发现
    √ 用于主机发现本地链路上的路由器,从而获取网络配置信息的过程
  • 路由器发现三大功能:
    √ 路由器发现:主机定位邻居路由器以及选择默认网关的过程
    √ 前缀发现:主机发现本地链路上IPv6前缀的过程,用于主机的地址自动配置
    √ 参数发现:主机发现操作参数的过程,如报文的跳数限制、地址配置方式等信息

路由器发现-使用的报文

  • RS路由器请求报文:
    √ 请求路由器通告:主机通过发送RS报文请求路由器立即发送RA报文
    √ 主机启动或连接到网络时,发送RS报文以快速获取网络配置信息
  • RA路由器通告报文
    √ 提供网络配置信息:路由器通过发送RA报文向主机提供网络配置信息,包括默认网关、
    前缀信息、DNS服务器等
    √ 定期发送:路由器会定期发送RA报文,以确保网络中的主机始终拥有最新的配置信息
    √ 响应RS报文:当路由器接收到RS报文时,会立即发送RA报文作为响应

路由发现-协议交互的两种情况:

  • 协议交互的两种情况:
    √ 主机发送RS触发路由器回应RA
    √ 路由器周期发送RA

路由器发现流程-主机请求触发

  • 主机请求触发
    ✓ 主机启动,向本地链路范围内所有的路由器发送RS报文
    ✓ 路由器响应RA报文
    ✓ 经过以上步骤,主机生成缺省路由,下一跳指向缺省路由器的链路本地地址

路由器发现流程 - 路由器周期性发送

  • 路由器周期性的发送
    ✓ 路由器周期性的发送RA报文
    ✓ RA发送间隔是随机值,最大间隔时间是600秒,最小间隔时间是200秒。
  • 对于定期发送的RA报文:
    ✓ Source Address:必须是发送接口的链路本地地址
    ✓ Destination Address:FF02::1

路由器发现流程

  • 路由器发现流程

  • 第一步:配置R1 抓包分析RS报文

bash 复制代码
[R1]ipv6
[R1]int g0/0/0
[R1-GigabitEthernet0/0/0]ipv6 enable
[R1-GigabitEthernet0/0/0]ipv6 address auto global #自动生成IPv6全局地址功能
  • 第二步:配置R2 抓包分析RA报文
bash 复制代码
[R2]ipv6
[R2]int g0/0/0
[R2-GigabitEthernet0/0/0]ipv6 enable
[R2-GigabitEthernet0/0/0]ipv6 address auto link-local
[R2-GigabitEthernet0/0/0]undo ipv6 nd ra halt      #让接口发送RA消息
[R2-GigabitEthernet0/0/0]ipv6 address 2001:12::2 64

验证:

bash 复制代码
<R1>display ipv6 int g0/0/0

5 地址解析

地址解析

  • IPv6地址解析
    √ IPv6地址解析通过ICMPv6(NS和NA报文)来实现
  • 在三层完成地址解析优势:
    √ 地址解析在三层完成,不同的二层介质可以采用相同的地址解析协议
    √ 可以使用三层的安全机制避免地址解析攻击
    √ 使用组播方式发送请求报文,减少了二层网络的性能压力
  • NS邻居请求报文:
    √ 地址解析:主机通过发送NS报文请求目标设备的MAC地址
  • NA邻居通告报文
    √ 响应NS报文:收到NS报文后,会回应NA报文,提供MAC地址
    √ 主动通告:没有收到NS报文的情况下主动发送NA报文,例如在网络拓扑发生变化时

IPv6邻居状态表

  • 查看IPv6邻居状态表

IPv6地址解析

  • IPv6解析目的MAC地址

  • 第一步:配置接口IPv6地址

bash 复制代码
[R1]ipv6
[R1]int g0/0/0
[R1-GigabitEthernet0/0/0]ipv6 enable
[R1-GigabitEthernet0/0/0]ipv6 address 2001:12::1 64
[R2]ipv6
[R2]int g0/0/0
[R2-GigabitEthernet0/0/0]ipv6 enable
[R2-GigabitEthernet0/0/0]ipv6 address 2001:12::2 64
  • 第二步:解析目的MAC地址、显示IPV6邻居表
bash 复制代码
[R1]ping ipv6 2001:12:2
[R1]display ipv6 neighbors
相关推荐
超梦dasgg2 小时前
关路由器要等 30 秒才能再开的原因(标准断电等待 30s 原理)
网络·智能路由器
网络与设备以及操作系统学习使用者2 小时前
路由器如何实现跨VLAN通信
运维·网络·学习·华为·智能路由器
计算机安禾2 小时前
【算法分析与设计】第43篇:空间复杂度类与Savitch定理
java·服务器·网络·数据库·算法
恒星科通2 小时前
以旅游景区应急广播为抓手,全面提升景区防灾减灾处置能力
安全·旅游·广播·应急广播
Bruce_Liuxiaowei2 小时前
当Windows成为Agent的监狱-操作系统级Agent安全架构深度解读
人工智能·windows·安全·安全架构·智能体
代码中介商2 小时前
HTTP 完全指南(一):请求与响应报文结构深度详解
网络·网络协议·http
hj2862513 小时前
Linux磁盘存储原理(扇区/Block/Inode)+ 软硬链接 + 日志系统 完整版笔记(含案例+面试题)
服务器·网络·数据库
机汇五金_3 小时前
从钣金加工到成品装配,弱电箱是如何制造出来的?
网络·python·制造
做个文艺程序员3 小时前
第07篇:K8s 安全加固指南:RBAC、NetworkPolicy、OPA——Java SaaS 多租户安全隔离深度实践
java·安全·kubernetes