数据通信网络:由路由器、交换机、防火墙、无线控制器、无线接入点、以及个人电脑、网络打印机、服务器等设备构成的通信网络

功能:最基本的功能是实现数据通信

交换机和HUB:都是能转发广播的网络设备

广播域:收到同一份广播数据的终端组成的网络

路由器/具备路由功能的设备:支持跨广播域的转发(单播,组播)/隔离广播域,路由器一个接口就是一个广播域

TCP/IP模型

应用层

作用:为用户应用程序提供具体的网络服务,定义应用程序与网络之间的交互规则,是用户能直接感知的一层。

  • 应用层的PDU被称为Data
  • HTTP 80(TCP) Telnet23(TCP) FTP20、21(TCP) SMTP 25 (TCP) TFTP 69 (UDP)
  • FTP文件传输协议基于21端口和20端口:
    • 21端口:FTP传输控制信息端口;
    • 20端口:FTP传输数据端口,是否会用到20端口与FTP传输模式有关,主动模式使用20端口传输,被动模式下服务器端和客户端协商决定端口。
  • 每一种应用协议在传输层都有一个或者多个已分配的端口进行标识,让接收主机了解该数据是访问何种应用层协议

传输层

  1. 作用:传输层负责接收来自应用层协议的数据,封装上相应的传输层头部,帮助建立其端到端的连接

  2. 传输层的PDU被称为Segment(段)

  3. TCP:面向连接可靠的传输层通信协议,通信过程中需要有回馈机制保证可靠传递,流控机制保证发送效率,只用于单播发送数据,非实时但可靠性要求较高的业务,telnet

  4. UDP:简单的无连接的传输层协议,不可靠

报文字段作用

  • Source Port:源端口,标识哪个应用程序发送。长度为16比特。
  • Destination Port:目的端口,标识哪个应用程序接收。长度为16比特。
  • Sequence Number:序号字段。TCP链接中传输的数据流每个字节都编上一个序号。序号字段的值指的是本报文段所发送数据的第一个字节的序号。长度为32比特。
  • Acknowledgment Number:确认序列号,是期望收到对方下一个报文段数据的第1个字节的序号,即上次已成功接收到的数据段的最后一个字节数据的序号加1。只有Ack标识为1,此字段有效。长度为32比特。
  • Header Length:头部长度,指出TCP报文头部长度,以32比特(4字节)为计算单位。若无选项内容,则该字段为5,即头部为20字节。
  • Reserved:保留,必须填0。长度为6比特。
  • Control bits:控制位,包含FIN、ACK、SYN等标志位,代表不同状态下的TCP数据段。
    • SYN:用于三次握手建连,同步双方序号
    • ACK:标记确认报文
    • FIN:用于四次挥手断连,告诉对方无数据要发
    • RST:强制重置异常连接
    • PSH:强制接受方立即把数据交给应用层(如SSH实时交互)
    • URG:标记紧急数据(如终端命令)
  • window:告知对方自己接收缓冲区剩余容量,实现流量控制(避免发送方发得太快,导致接收方缓冲溢出)
  • Checksum:校验TCP头部+数据部分完整性,检测传输中的比特错误
  • Urhent:紧急指针,仅当URG=1时有效,指向紧急数据在报文中的位置,让接收方优先处理紧急数据
  • option:可选字段,扩展TCP功能
  1. 端口号

    • 端口号范围1-65535
    • 源端口(未知端口号):大于1023的端口号都被认为是未知端口号,随机产生
    • 目的端口号(已知端口号):1-1023的端口号,通常分配给应用层协议
    • 作用
      • 可以利用一个地址访问同一个地址不同服务或相同服务
      • 可以利用一个地址访问不同地址的不同服务或相同服务

TCP三次握手

TCP连接建立的详细过程如下:

  • 由TCP连接发起方(图中PC1),发送第一个SYN置位1的TCP报文。初始序列号a为一个随机生成的数字,因为没收到过来自PC2的任何报文,所以确认序列号为0 ;
  • 接收方(图中PC2)接收到合法的SYN报文之后,回复一个SYN和ACK置1的TCP报文。初始序列号b为一个随机生成的数字,同时因为此报文是回复给PC1的报文,所以确认序列号为a+1;
  • PC1接收到PC0发送的SYN置位零和ACK置位为一的TCP报文后,回复一个ACK置位的报文,此时序列号为a+1,确认序列号为b+1。PC2收到之后,TCP双向连接建立。

TCP的序列号和确认序列号

ack=收到上一个报文的seq+应用层字节数

seq=收到的上一个报文的ack

TCP的窗口滑动机制

通过win报文表示当前接收端可接收最大的数据总数(以字节为单位),在三次握手时得到

TCP的四次挥手

  • 由PC1发出一个FIN字段置”1 ”的不带数据的TCP段;
  • PC2收到PC1发来的FIN置位的TCP报文后,会回复一个ACK置位的TCP报文。
  • 若PC2也没有需要发送的数据,则直接发送FIN置位的TCP报文。假设此时PC2还有数据要发送,那么当PC2发送完这些数据之后会发送一个FIN置位的TCP报文去关闭连接
  • PC1收到FIN置位的TCP报文,回复ACK报文,TCP双向连接断开

三次握手和四次挥手具体案例

网络层

作用:负责分组报文从源主机发送到目的主机,为网络中设备提供逻辑地址,负责数据包的寻址和转发,常见协议如IPV4,IPV6,ICMP,IGMP

  • 报文字段作用

    Version:4 bit,4:表示为IPv4;6:表示为IPv6。

    Header Length:4 bit,IP头部长度,如果不带Option字段,则为20,最长为60。

    Type of Service:8 bit,服务类型。只有在有QoS差分服务要求时,这个字段才起作用。

    Total Length:16 bit,总长度,整个IP数据包的长度。

    Identification:16 bit,标识,分片重组时会用到该字段。

    • Flags:3 bit,标志位。MF表示是否有分片,结合片偏移可得知

      MF 1 offset 0 第一个分片

      MF 1 offset !0 分片报文,但不是最后一个分片

      MF 0 offset 0 非分片报文

      MF 0 offset !0 一定是最后一个分片

      只有第一个分片才携带传输层字段,非第一个分片是不携带传输层字段的

    • Fragment Offset:12 bit,片偏移,分片重组时会用到该字段。

      偏移量=第一个分片的(传输层大小+PDU)/8=第二个分片的偏移量

    Time to Live:8- bit,生存时间。取值范围0-255

    Protocol:8 bit,协议:下一层协议。指出此数据包携带的数据使用何种协议,以便目的主机的IP层将数据部分上交给哪个进程处理。

    • 常见值:

      1: ICMP, Internet Control Message; 2: IGMP, Internet Group Management; 6: TCP , Transmission Control Protocol; 17: UDP, User Datagram Protocol。

    Header Checksum:16 bit,首部检验和。校验IP头不负责上层校验

    Source IP Address:32 bit,源IP地址。

    Destination IP Address:32 bit,目的IP地址。

    Options:可变,选项字段。

    Padding:可变,填充字段,全填0。

IP分片

IP 分片是 IP 层为解决不同网络最大传输单元(MTU)不兼容而设计的机制。MTU 指数据链路层能承载的 IP 数据包最大长度,比如以太网默认 MTU 是 1500 字节,PPPoE 宽带的 MTU 通常是 1492 字节。当 IP 数据包总长度超过传输链路的 MTU 时,就会被拆分成多个小分片传输,且每个分片都会携带标识、标志、片偏移等关键 IP 首部信息,这些分片独立传输到目标主机后,再由目标主机的 IP 层重组为原始数据包。

链路层

  • 作用:负责物理介质上的二进制数据传输,所有网络层都必须封装在链路层以帧为单位进行转发
  • 链路分为两种
    • 点到点链路:即仅支持两个接口的链路,PPP,DHLC,无需链路层地址区别不同接口
    • 广播型链路(MA多路访问):允许链路上存在两个以上的接口,所以需要区分不同的接口,那么规定每个以太网接口都要有一个全球唯一但链路有效的MAC地址

以太网帧格式

分为Ethernet II和IEEE802.3类型,在以太网帧头中,可以通过查看Length/Type 字段的数值大小区分两种帧格式

Ethernet_II中的TYPE表示这个帧封装的网络层是何种协议

例如:0X0800为IP,0X0806为ARP

当 DSAP 和 SSAP 都取值为 0xff 时,802.3 帧就变成了 Netware-ETHERNET 帧,用来承载 NetWare 类型的数据。(早期局域网操作系统数据)

当 DSAP 和 SSAP 都取值为 0xaa 时,802.3 帧就变成了 ETHERNET_SNAP 帧。ETHERNET_SNAP 可以用于传输多种协议。可以通过扩展适应Ethernet_II

DSAP 和 SSAP 其他的取值均为纯 IEEE802.3 帧。

不同类型的帧

单播帧:DMAC地址的第8bit等于0就是单播帧

组播帧:DMAC地址的第8bit等于1就是组播帧

广播帧:DMAC地址全为1就是广播帧

ARP协议

ARP 协议的全称是 Address Resolution Protocol(地址解析协议),它是一个通过用于实现从 IP 地址到 MAC 地址的映射,即询问目标 IP 对应的 MAC 地址 的一种协议。

ARP 的工作机制

  1. 假设 A 和 B 位于同一链路,不需要经过路由器的转换,主机 A 向主机 B 发送一个 IP 分组,主机 A 的地址是 192.168.1.2 ,主机 B 的地址是 192.168.1.3,它们都不知道对方的 MAC 地址是啥,主机 C 和 主机 D 是同一链路的其他主机。
  2. 主机 A 想要获取主机 B 的 MAC 地址,通过主机 A 会通过广播 的方式向以太网上的所有主机发送一个 ARP 请求包,这个 ARP 请求包中包含了主机 A 想要知道的主机 B 的 IP 地址的 MAC 地址。
  3. 主机 A 发送的 ARP 请求包会被同一链路上的所有主机/路由器接收并进行解析。每个主机/路由器都会检查 ARP 请求包中的信息,如果 ARP 请求包中的目标 IP 地址 和自己的相同,就会将自己主机的 MAC 地址写入响应包返回主机 A
  4. 由此,可以通过 ARP 从 IP 地址获取 MAC 地址,实现同一链路内的通信。
  • 免费ARP(目标ip=自身ip,目的MAC为广播)

    • 用于地址冲突检测,当接口IP地址变更时以广播形式主动发送免费ARP,并不更新其他设备ARP表项
    • 用于刷新其他主机的ARP缓存,接口MAC地址变更时,用于刷新其他接口的ARP缓存
  • 代理ARP:

    • PC1 需向 PC3 发送数据,判断 PC3IP(192.168.2.20)与自身不在同一网段,但因未配置网关,仍触发 ARP 请求(目标 IP=192.168.2.20,目的 MAC = 广播地址)。
    • 网关 GW 的接口 1(192.168.1.1)接收 ARP 请求,检测到目标 IP 属于另一网段(网段 B),且自身路由可达 PC3。
    • GW 作为 “代理”,发送 ARP 响应给 PC1:将自身接口 1 的 MAC 地址,伪装成 PC3 的 MAC 地址返回。
    • PC1 更新 ARP 缓存(192.168.2.20→GW 接口 1 的 MAC),后续向 PC3 发送的数据帧,均封装为 GW 的 MAC 地址。
    • GW 接收后,转发至网段 B,通过 ARP 获取 PC3 的 MAC,最终完成数据交付。

    当PC没有设置网关时,访问其他网段的主机,对目的IP地址发起ARP请求。当路由器开启ARP代理,并拥有源IP路由信息时,则回应ARP应答。此时ARP表项为下图

华为VRP系统

通用路由平台VRP(Versatile Routing Platform)是华为公司数据通信产品的通用操作系统平台。它以IP业务为核心,采用组件化的体系结构,在实现丰富功能特性的同时,还提供了基于应用的可裁剪和可扩展的功能,使得路由器和交换机的运行效率大大增加。

<hostname>当前在用户视图下,只能查看一些设备的基本状态

[hostname]当前在系统视图下,具备完全的管理能力

文件系统

所有文件都是以fash:/为根,以树形的结构组织起来

pwd :查看当前目录
dir:查看当前目录的所有文件
cd Directory name:进入某个目录  cd..回到上级目录
more 文件名,查看文本文件
mkdir 目录名:创建目录
rmdir 目录名:删除目录(只能删除空目录 )
copy 文件名 复制后文件名:复制文件
move 文件名 目录:移动文件
rename :重命名文件
delete :删除文件到回收站
undodelete :恢复删除文件
reset recycle-bin :清空当前目录的回收站
delete /force 强制删除,不显示yes,no直接放入回收站
delete /unreserved 删除并清空回收站,无法恢复10

IP协议

IP是Internet Protocol的缩写。 Internet Protocol本身是一个协议文件的名称,该协议文件的内容非常少,主要是定义并阐述了IP报文的格式。

作用:为网络层的设备提供逻辑地址负责数据包的寻址和转发

数据的封装

数据进入应用层要进行PDU的处理,打包,然后交给传输层打上传输层的包头,然后交给网络层打上IP包头,接下来进行链路层的封装,打上帧头帧尾,最后交给物理层转换为电信号

应用层数据 (Data)
      ↓ 添加TCP/UDP头部
TCP段/UDP数据报 (Segment/Datagram)  [包含:传输层头部 + Data]
      ↓ 添加IP头部
IP包/数据报 (Packet)              [包含:IP头部 + 传输层头部 + Data]
      ↓ 添加帧头(和帧尾)
帧 (Frame)                  [包含:帧头 + IP头部 + 传输层头部 + Data + 帧尾(FCS)]
      ↓ 转换为信号
比特流 (Bits) → 在物理介质上传输

IP地址

IP地址分为2层结构

  1. 网络位:区分不同的网络
  2. 主机位:区分同一个网络的不同的主机

通过网络位的是否一致,确定通信主机是否在同一个网段,网络位相同,即在相同的网段。

网络位不同,则在不同网段。网络位相同,主机位不同,则认为通信主机在同一个网段中的不同主机

A类地址特点及范围:二进制0开头的
0.0.0.0-127.255.255.255

B类地址特点及范围:二级制10开头
128.0.0.0-191.255.255.255

C类地址特点及范围:二级制110开头
192.0.0.0-223.255.255.255

D类地址特点及范围:二级制1110开通   
224.0.0.0-239.255.255.255

E类地址特点及范围:二级制1111开通
240.0.0.0-255.255.255.255

注意:0.0.0.0-0.255.255.255 保留使用   
127.0.0.0-127.255.255.255 保留使用,用于环回地址测试,用于主机内部使用。172开头的报文也不可能发出主机
A类私网地址:10.0.0.0/8-10.255.255.255/8
B类私网地址:172.16.0.0/16-172.31.255.255/16
C类私网地址:192.168.0.0/24-192.168.255.255/24

受限的广播地址:不会被路由器转发到其他接口
172.16.1.255/24 子网广播地址:代表网段上的所有主机
255.255.255.255 全网广播地址:代表任意网段的所有主机

ICMP协议

ICMP协议用来在网络设备间传递各种差错和控制信息,对于收集各种网络信息、诊断和排除各种网络故障等方面起着至关重要的作用。是ip协议的辅助协议

IP路由

  1. 路径信息(路由信息):1.目的网络号/掩码 2.下一跳地址 3.本地出接口
  2. 基本路由思想
    1. 路由器具有独立决策报文的转发,我有的路由信息,其他路由器未必有
    2. 沿途路由器有往返的网络路由信息,也得有去往源网络的路由信息
  3. 路由表
    1. 路由器依据路由表转发报文。
    2. 路由表由一条条详细的路由条目组成
    3. 路由表由路由条目组成,但不代表路由表中保存了所有路由,路由表中只会保存“最优的” 路由。
    4. 对路由表中的路由条目的管理实际上就是路由器维护、管理路由信息的具体实现
  4. 路由器信息获取方式
    1. 直连路由:直连接口所在网段的路由,由设备自动生成。
    2. 静态路由:由网络管理员手工配置的路由条目
    3. 动态路由:路由器通过动态路由协议(如OSPF、IS-IS、BGP等)学习到的路由
  5. 路由分类
    1. IGP:实现AS内部互联互通的协议,RIP, OSPF,ISIS ,EIGRP(思科私有)
    2. EBGP: 实现AS之间互联互通,BGP
    3. A5 自治系统从技术角度上分析:运行相同IGP协议的一组设备组成的网络,并被一个组织或者机构管理的网络
  6. 路由递归
    1. 如果路由的下一跳是非直连的,路由器需要递归出该路由的直连的下一跳
    2. 递归:根据非直连的下一跳地址,查路由表是否存在去往非直连下一跳地址的路由,有则可以完成递归,没有该路由无法出现在路由表中。
  7. 等价路由
    1. 来源相同、开销相同的路由都会被加入路由表,形成的路由为等价路由(两个路由条目指向的目的网段相同,但是具有不同的下一跳地址),路由转发会将流量分布到多条路径上。
    2. 路由表中存在等价路由之后,前往该目的网段的IP报文路由器会通过所有有效的接口、下一跳转发,这种转发行为被称为负载分担
    3. 负载分担算法
      • 基于流实现负载分担
      • 对于TCP/UDP报文: SIP+DIP+SPORT+DPORT+TCP/UDP 相同的报文认为是同一个流。
      • 匹配同一条路由的不同的流在多条等价路径上执行转发。
      • 对于非TCP/UDP的IP报文,SIP+DIP 相同的报文认为是同一个流。
  8. 浮动路由
    1. 静态路由支持配置时手动指定优先级,可以通过配置目的地址/掩码相同、优先级不同、下一跳不同的静态路由,实现转发路径的备份,静态路由无法配置cost
    2. 动态路由通过cost实现主备备份,通过设置cost的,cost小的优先,cost大作为备份,相同负载分担
    3. 浮动路由的本质路由的备份,主用路由下一跳可达时该备份路由不会出现在路由表。同一个网段使用不同协议优先选优先级高的路由
  9. CIDR
    1. CIDR(classless inter-domain routing,无类别域间路由)采用IP地址加掩码长度来标识网络和子网,而不是按照传统A、B、C等类型对网络地址进行划分。
    2. CIDR容许任意长度的掩码长度,将IP地址看成连续的地址空间,可以使用任意长度的前缀分配,多个连续的前缀可以聚合成一个网络,该特性可以有效减少路由表条目数量。

OSPF基础

动态路由协议因其灵活性高、可靠性好、易于扩展等特点被广泛应用于现网。在动态路 由协议之中,OSPF(Open Shortest Path First,开放式最短路径优先)协议是使用场景非 常广泛的动态路由协议之一

  1. 链路状态路由协议

    链路状态:路由器直连链路的属性

    链路属性:1.链路上的邻居 2.链路开销 3.直连的网络号 4.接口的地址 5.链路的类型

  2. 简介

    1. 目前针对IPv4协议使用的是OSPF Version 2(RFC2328);针对IPv6协议使用OSPF Version 3(RFC2740)
    2. 运行OSPF路由器之间交互的是LS(Link State,链路状态)信息,而不是直接交互路由。LS信息是OSPF能够正常进行拓扑及路由计算的关键信息
    3. OSPF路由器将网络中的LS信息收集起来,存储在LSDB中。路由器都清楚区域内的网络拓扑结构,这有助于路由器计算无环路径。
    4. 每台OSPF路由器都采用SPF算法计算达到目的地的最短路径。路由器依据这些路径形成路由加载到路由表中。
    5. OSPF支持VLSM(Variable Length Subnet Mask,可变长子网掩码),支持手工路由汇总。多区域的设计使得OSPF能够支持更大规模的网络。
  3. OSPF不同进程的路由表相互隔离,但仅在本路由器上有效,不影响和其他进程号的路由器建立邻居,同一个进程下,一个接口不能加入多个区域,也不能加入不同进程下。

OSPF术语

  1. 区域

    • 区域是从逻辑上将设备划分为不同的组,每个组用区域号(AreaID)来标识
    • OSPFArea用于标识一个OSPF的区域。
  2. Route-id

    • 用于在一个OSPF域中唯一地标识一台路由器。Router-ID的设定可以通过手工配置的方式,或使用系统自动配置的方式,默认使用第一个配置的ip地址作为自己的全局Rroute-id

    • 在实际项目中,通常会通过手工配置方式为设备指定OSPF Router-ID。请注意必须保证在OSPF域中任意两台设备的Router-ID都不相同。通常的做法是将Router-ID配置为与该设备某个接口(通常为Loopback接口)的IP地址一致

      loopback:由管理员根据实际需要创建的逻辑路由接口,只要路由器开机,这个接口不会存在物理故障,稳定性好,所以通常作为ospf router id的选择接口loopback接口也可以作为网络测试接口,或则设备的带内网管地址。

  3. 度量值

    1. OSPF使用Cost(开销)作为路由的度量值。每一个激活了OSPF的接口都会维护一个接口cost值,缺省时接口cost值=100Mbit/s/接口带宽,该值是可配置的。
    2. OSPFf网络开销=所经过出接口cost+目的网络出接口cost
  4. 报文类型

  1. 三大表项(OSPF邻居表、LSDB表和OSPF路由表)

    1. 邻居表
      • OSPF在传递链路状态信息之前,需先建立OSPF邻居关系
      • OSPF的邻居关系通过交互Hello报文建立
      • OSPF邻居表显示了OSPF路由器之间的邻居状态,使用display ospf peer查看。
    2. LSDB表
      • LSDB会保存自己产生的及从邻居收到的LSA信息,本例中R1的LSDB包含了三条LSA。
      • Type标识LSA的类型,AdvRouter标识发送LSA的路由器。
      • 使用命令行display ospf lsdb查看LSDB表。
    3. OSPF路由表
      • OSPF路由表和路由器路由表是两张不同的表项。
      • OSPF路由表包含Destination、Cost和NextHop等指导转发的信息。
      • 使用命令display ospf routing查看OSPF路由表。
  2. OSPF路由器间关系

    1. 两台路由器直连。在双方互联接口上激活OSPF,路由器开始发送及侦听Hello报文。在通过Hello报文发现彼此后,这两台路由器便形成了邻居关系

    2. 邻居关系的建立只是一个开始,后续会进行一系列的报文交互,例如前文提到的DD、LSR、LSU和LSACK等。当两台路由器LSDB同步完成,并开始独立计算路由时,这两台路由器形成了邻接关系

      3此握手建立邻居关系

OSPF工作机制

  • OSPF路由器收到其他路由器发来的首个Hello报文时会从初始Down状态切换为Init状态。
  • OSPF路由器收到的Hello报文中的邻居字段包含自己的Router ID时,从Init切换2-way状态。只双方都收到包含自己的Route-ID才会建立邻居关系(所以不存在只有一方建立邻居)

  • 邻居状态机从2-way转为Exstart状态后开始主从关系选举
    • R1向R2发送的第一个DD报文内容为空,其Seq序列号假设为X。
    • R2也向R1发出第一个DD报文,其Seq序列号假设为Y。
    • 选举主从关系的规则是比较Router ID,越大越优。R2的RouterID比R1大,因此R2成为真正的主设备。主从关系比较结束后,R1的状态从Exstart转变为Exchange。
  • R1邻居状态变为Exchange后,R1发送一个新的DD报文,包含自己LSDB的描述信息,其序列号采用主设备R2的序列号。R2收到后邻居状态从Exstart转变为Exchange
  • R2向R1发送一个新的DD报文,包含自己LSDB的描述信息,序列号为Y+1。
  • R1作为从路由器需要对主路由R2发送的每个DD报文进行确认,回复报文的序列号与主路由R2一致。
  • 发送完最后一个DD报文后,R1将邻居状态切换为Loading

  • 邻居状态转变为Loading后,R1向R2发送LSR报文,请求那些在Exchange状态下通过DD报文发现的,但是在本地LSDB中没有的LSA。
  • R2收到后向R1回复LSU。在LSU报文中包含被请求的LSA的详细信息。
  • R1收到LSU报文后,向R2回复LS ACK报文,确认已接收到,确保信息传输的可靠性。
  • 此过程中R2也会向R1发送LSA请求。当两端LSDB完全一致时,邻居状态变为Full,表示成功建立邻接关系

OSPF默认网络类型的确定

  • 接口如果是PPP,HDLC,则认为p2p(点对点)链路类型

    P2P指的是在一段链路上只能链接两台设备,典型例子是ppp链路

  • 接口如果是eth,FDDI,则认为是bro(广播多路访问)链路类型

    指的是一个允许多台设备接入的、支持广播的环境。典型例子Ethernet(以太网)

  • 接口如果是FR,ATM,则认为是NBMA(非广播多路访问)链路类型

    指的是允许多台网络设备接入且不支持广播的环境

  • 没有任何一种链路层协议被认为是P2MP(点到多点)链路类型

    p2mp相当于将多条P2P链路捆绑得到的网络

DR和BDR

  • 为优化MA网络中OSPF邻接关系,OSPF指定了三种OSPF路由器身份,DR(Designated Router,指定路由器)、BDR(Backup Designated Router,备用指定路由器)和DRother路由器。
    • DR/BDR要监听两个组播地址:224.0.0.5 224.0.0.6,DRother仅监听224.0.0.5
    • 通过接口选举DR,优先级取值范围0-255,优先级越大,优先成为DR,优先级相同,比较route id大小,越大越优。优先级等于0代表只能成为DRother
  • 只允许DR、BDR与其他OSPF路由器建立邻接关系。DRother之间不会建立全毗邻的OSPF邻接关系,双方停滞在2-way状态。DR和BDR建立Full
  • BDR会监控DR的状态,并在当前DR发生故障时接替其角色。同时BDR如果失效也会重新选举BDR
  • DR/BDR不具有抢夺性,所以优先级最大的不一定是DR。

OSPF多区域

  1. ospf 单区域的弊端
    • LSDB维护的LSA的数量过多,消耗资源,路由表项增加
    • 网络不稳定时,全网路由器都要通过SPF算法进行路由前的重新计算
    • 网络性能优化手段较少,无法进行路由汇总
  2. OSPF多区域
    • 整个ospf网络分为骨干区域(区域0)和非骨干区域。2层区域结构
    • 区域0有且只有一个,并且连接,非骨干区域必须和骨干区域直接连接
    • ospf是基于区域的SPF算法,所有多区域可以进行故障的隔离,增强网络整体的稳定性
    • 方便网络然后的扩展,管理,运维

路由器类型

IR:所有接口都在同一个区域的路由器。

ABR:连接两个以上的区域,至少有一个活动接口属于区域0 的路由器

BR:区域0中的IR和ABR

ASBR:引入其他协议的路由或者其他OSPF进程的路由的路由器

以太网交换基础

  1. 以太网是当今现有局域网(Local Area Network, LAN)采用的最通用的通信协议标准,该标准定义了在局域网中采用的电缆类型和信号处理方法。
  2. 以太网是建立在CSMA/CD (Carrier Sense Multiple Access/Collision Detection,载波监听多路访问/冲突检测)机制上的广播型网络
  3. 以太网帧发送前设备会额外在帧头添加帧前导符,标识一个帧的起始,让接收设备准备开始接收一个帧
    1. 以太网前导符 64bit长度,前56bit 010101……..01 后8bit 01010111
  4. 交换机的转发机制
    • 转发:DMAC已知单播帧
    • 泛洪:DMAC未知单播帧,广播帧,组播帧
    • 丢弃:接收帧的接口也是发送帧的接口则丢弃
  5. 交换机会学习数据帧的SMAC,并记录MAC地址表,默认表项老化时间为300s。接口出现故障或shutdown,接口上的MAC地址表项会立即删除
  6. 每次收到数据帧都进行SMAC学习,并刷新对应表项的老化时间
    1. 表项存在,则刷新老化时间
    2. 表项不存在,则新增这个表项

冲突域

  1. HUB总线型以太网
    • 为了避免避免冲突,要启用CSMA/CD机制,导致设备接口只能半双工发送数据
    • 带宽分享,用户越多,带宽分配越少
    • 基于物理信号转发机制,所有数据都采用泛红的转发方式
  2. SW矩阵型以太网(交换机组网):
    • 交换机端口就是一个冲突域,交换机隔离不同的冲突域
    • 端口可以工作在全双工的模式下,关闭CSMA/CD机制
    • 基于数据帧执行数据转发
  3. CSMA/CD的工作原理可简单总结为:先听后发,边发边听,冲突停发,随机延迟后重发。

广播域

广播报文所能到达的整个访问范围称为二层广播域,简称广播域,同一广播域内的主机都能收到广播报文

全1MAC地址FF-FF-FF-FF-FF-FF为广播地址,所有节点都会处理目的地址为广播地址的数据帧,该数据帧所能到达的整个访问范围称为二层广播域,简称广播域

NAC地址VSIP地址

  • IP地址特点
    • 地址是唯一的
    • ip地址可变
    • 基于网络拓扑进行ip地址分配
  • MAC地址特点
    • MAC地址是唯一的
    • MAC地址不可变
    • 基于制造商进行MAC地址分配
  1. IP地址的作用是唯一标识网络中的一个节点,通过IP地址进行不同网段的数据访问
  2. MAC地址的作用是唯一标识一个网卡,可以通过MAC地址进行同网段的数据访问。
  3. MAC地址可以分为3种类型:
    1. 单播MAC地址:也称物理MAC地址,这种类型的MAC地址唯一的标识了以太网上的一个终端。
      • 单播MAC地址用于标识链路上的一个单一节点。
      • 目的MAC地址为单播MAC地址的帧发往一个单一的节点。
      • 单播MAC地址可以作为源或目的地址。
      • 注意:单播MAC地址具有全球唯一性,当一个二层网络中接入了两台具有相同 MAC地址的终端时(例如误操作等),将会引发通信故障(例如这两台终端无 法相互通信),且其他设备与它们之间的通信也会存在问题。
    2. 广播MAC地址:全1的MAC地址(FF-FF-FF-FF-FF-FF),用来表示局域网上的所有终端设备。
      • 广播MAC地址可以理解为一种特殊的组播MAC地址。其具体格式为:FFFF-FFFF-FFFF。
      • 目的MAC地址为广播MAC地址的帧发往链路上的所有节点。
    3. 组播MAC地址:除广播地址外,第8bit为1的MAC地址为组播MAC地址(例如01-00-0000-00-00),用来代表局域网上的一组终端。
      • 组播MAC地址用于标识链路上的一组节点。
      • 目的MAC地址为组播MAC地址的帧发往一组节点。
      • 组播MAC地址不能作为源地址,只能作为目的地址。

VLAN原理

要使交换机能够分辨不同VLAN的报文,需要在报文中添加标识VLAN信息的字段。

IEEE 802.1Q协议规定,在以太网数据帧中加入4个字节的VLAN标签,又称VLAN Tag,简称Tag。

VLAN的划分方式

基于接口划分:当一个数据帧进入交换机时,如果没有带VLAN标签,该数据帧就会被打

接口指定PVID的Tag,然后数据帧将在指定PVID中传输。默认情况下PVID值为1

接口类型

  1. Access接口
    • Access接口一般用于和不能识别Tag的用户终端(如用户主机、服务器等)相连,或者不需要区分不同VLAN成员时使用。
  2. Trunk接口
    • Trunk接口一般用于连接交换机、路由器、AP以及可同时收发Tagged帧和Untagged帧的语音终端。
  3. Hybrid接口
    • Hybrid接口既可以用于连接不能识别Tag的用户终端(如用户主机、服务器等),也可以用于连接交换机、路由器以及可同时收发Tagged帧和Untagged帧的语音终端、AP。
    • 华为设备默认的接口类型是Hybrid

Access接口

Trunk接口

Hybrid接口

生成树

BUM帧:代表广播,DMAC未知单播,组播

通过阻塞某个接口,打破环路拓扑

STP(802.1D)

基本概念

  1. 桥ID(BID):

    • 每一台运行STP的交换机都拥有一个唯一的BID
    • 桥ID由16位的桥优先级(Bridge Priority)和48位的MAC地址构成。
    • 首先比较三台交换机的桥优先级,桥优先级都为4096,再比较三台交换机的MAC地址,谁小谁优先,最终选择SW1为根桥。
  2. 根桥

    • 根桥是一个STP交换网络的”树根“
    • 根桥是生成树进行拓扑计算重要的”参考点“,是STP计算得出的无环拓扑的”树根“。
    • 网络收敛后,根桥会按照一定的时间间隔产生并向外发送配置BPDU,其他设备仅对该报文进行处理,传达拓扑变化记录,从而保证拓扑的稳定
  3. 开销

    • 每个激活了STP的接口都维护着一个Cost值,接口的Cost值主要用于计算到达根的开销
    • 接口带宽越大,则Cost值越小,华为交换机支持多种STP的路径开销计算标准,提供多厂商场景下最大程度的兼容性。
  4. RPC(根路径开销.)

    • 在STP的拓扑计算中,“丈量”交换机某个接口到根桥的“成本”,就是RPC
    • 一台设备从某个接口到达根桥的RPC等于从根桥到该设备沿途所有入方向接口的Cost累加
  5. Port ID

    运行STP的交换机使用接口ID来标识每个接口,接口ID主要用于特定场景选举指定接口

    接口ID由接口优先级和接口编号构成,高4bit是接口优先级,低12bit为接口编号

  6. BPDU(网桥协议数据单元)

    1. BPDU是STP的协议报文,STP交换机之间会交互BPDU报文
    2. BPDU分为:配置BPDU和TCN BPDU
    3. 配置BPDU是STP进行拓扑计算的关键,TCNBPDU只会在拓扑发生变更时才被触发

BPDU报文格式

  • Message:每经过一个网桥都加一,发出不加,最大值为20跳,和MAXage绑定在一起的
  • STP max-age处理:非根桥收到根桥的BPDU后,将BPDU中的message age+1后,如果等于max age 直接忽略次BPDU并且不会转发,通过配置max age可以控制stp网络的规模。最大值为40s
  • max-age如果小于24s,message+1,如果24-39s,message age+2,如果40s。message age+3

STP选举机制

  1. 根桥选举过程(全网BID最小的交换机成为根桥,具备抢夺性,具备唯一性)
    1. STP交换机初始启动之后,都会认为自己是根桥,并在发送给其他交换机的BPDU中宣告自己为根桥。因此,此时BPDU中的根桥ID为各自设备的网桥ID。
    2. 当交换机收到网络中其他设备发送来的BPDU后,会比较BPDU中的根桥ID和自己的BID。
    3. 交换机不断交互BPDU,同时对BID进行比较,最终选举一台BID最小的交换机作为根桥,其他的则为非根桥。
    4. 根桥的选举先比较优先级,交换机SW1、2、3的优先级相等,则比较MAC地址,也优选最小的。
  2. 除根桥外,其他交换机成为非根桥
  3. 根端口选举过程
    1. 交换机有多个端口接入网络,各个端口都会收到BPDU报文,报文中会携带“RootID、RPC、BID、PID”等关键字段,端口会针对这些字段进行PK。
    2. 首先比较根路径开销(RPC),STP协议把根路径开销作为确定根端口的重要依据。RPC值越小,越优选,因此交换机会选RPC最小的端口作为根端口。
    3. 当RPC相同时,比较上行交换机的BID,即比较交换机各个端口收到的BPDU中的BID,值越小,越优选,因此交换机会选上行设备BID最小的端口作为根端口。
    4. 当上行交换机BID相同时,比较上行交换机的PID,即比较交换机各个端口收到的BPDU中的PID,值越小,越优先,因此交换机会选上行设备PID最小的端口作为根端口。
    5. 当上行交换机的PID相同时,则比较本地交换机的PID,即比较本端交换机各个端口各自的PID,值越小,越优先,因此交换机会选端口PID最小的端口作为根端口
  4. 在每个非根桥上选举一个根端口(root port)
    1. PR接收来自根桥最好BPDU的端口,根桥没有根端口
  5. 在每条链路(每个冲突域)上选举一个指定端口(DP)
    1. DP:负责在链路转发最好的BPDU的端口,一般情况下根桥的所有端口都是DP。
  6. 既不是非根桥的DR,也不是链路的DP,该端口为block port ,阻塞端口

STP按照如下顺序选择最优的配置BPDU:

  1. 最小的根桥ID
  2. 最小的RPC
  3. 最小的网桥ID
  4. 最小的接口ID

STP的接口状态与角色

  1. 接口状态

侦听和学习状态都要15秒,侦听和学习过程中都可能会转变为阻塞。

  1. 接口角色

    • 根端口(Root Port) 定义:每个非根桥选择一个根端口,该端口到根桥的路径成本最低 作用:非根桥设备用来接收最优BPDU的 每个非根桥有且仅有一个根端口

    • 指定端口(Designated Port) 定义:每个物理网段(如交换机间链路)选择一个指定端口,负责转发流量 作用:非根桥设备用来发送最优BPDU的 避免同一网段内多个端口转发数据形成环路

    • 非指定端口(阻塞端口) 定义:未被选为根端口或指定端口的冗余端口。 作用:丢弃数据帧,防止环路。

      注意(华为对STP优化了角色,将非指定接口设置为了AP)

拓扑变化

  1. 根桥故障

    1. 根桥发生故障,停止发送BPDU报文,非根桥交换机等待20s,如果下游交换机一直收不到BPDU报文,Max Age计时器(缺省: 20s)就会超时,从而导致已经收到的BPDU报文失效,此时,非根桥会互相发送配置BPDU,重新选举新的根桥
    2. 端口状态:非根桥的堵塞接口会重新进入侦听状态,然后进入学习状态,最后进入转发状态。此过程持续30秒
    3. 收敛时间:根桥故障会导致50秒的收敛时间,20秒的老化时间和30秒的侦听学习时间
  2. 根端口失效

    1. RP失效,存在AP的交换机,AP端口成为新的RP,并在30s后进入转发状态
    2. RP失效,不存在AP的交换机,发送以自己为根的次级BPDU,AP等待原根桥的BPDU老化(20s)再处理次级BPDU,进行端口角色确定,经30秒后进入转发状态,50秒后恢复故障
  3. 标准STP 根桥每隔2s发送一次BPDU,非根桥收到根桥才转发根桥的BPDU,非根桥不会自主发送根桥的BPDU

    华为STP 非根桥收不到根桥BPDU时还会发送根桥的BPDU,等到20s老化时间后发送次级BPDU对端会立马进入侦听状态

  4. 拓扑改变后导致MAC地址表错误

如图,当sw3接口发生故障时,SW1和SW3会立即清空MAC地址表,但SW2由于SW3的接口为AP接口,不会收到来自主机B发送的数据包故而不会更新MAC地址表映射的接口,此时SW2还是继续往SW1发送数据,SW1由于已经没有MAC地址映射,故而收到未知单播帧会泛洪。

解决方法:当拓扑发生改变的时候SW3会向SW2发送TCN BPDU,如果SW2没有回应SW3会一直发,直到SW2发送TCA回应表示收到,然后SW2继续把TCN发送给根桥,根桥收到会发送TC位置为一的BPDU报文,SW2收到后得知拓扑发生变化后,SW1和SW2的MAC地址表老化时间会更改为15s,由于主机A发送数据时SW1会重新学到主机A的MAC地址,但是收不到主机B的则会继续老化。(TC BPDU根桥会持续发送35s)

  1. STP认为拓扑发送变化情况

    1. 当DP接口进入到forading状态认为拓扑发生变化
    2. RP失效或这RP进入forading状态
    3. 非根桥DP端口失效不认为拓扑发生变化
    4. 根桥的DP失效直接发送TC BPDU

STP华为

根桥确定以下3个计时器,非根桥根据根桥指定的计时器进行STP的维护

Hello 2s MaxAge 20s fwdly15s

RSTP(802.1W)

RSTP引入了新的接口角色,其中替代接口的引入使得交换机在根接口失效时,能够立即 获得新的路径到达根桥。备份端口作为指定端口的备份,帮助链路上的网桥快速获得到 根桥的备份路径。

RSTP删除了3种端口状态,新增加了2种端口角色,并且把端口属性充分的 按照状态和角色解耦;此外,RSTP还增加了相应的一些增强特性和保护措施,实现网络的 稳定和快速收敛。

  1. 端口角色

    RSTP的接口角色共有4种:根接口、指定接口、预备接口和备份接口

  2. 边缘端口

    • 边缘端口一般与用户终端设备直接连接,可以由Disabled状态直接转到Forwarding状态。
    • 边缘端口正常情况下接收不到配置BPDU报文,不参与RSTP运算,不经历时延,就像在端口上将STP禁用了一样。但是,一旦边缘端口收到配置BPDU报文,就丧失了边缘端口属性,成为普通STP端口,并重新进行生成树计算,从而引起网络震荡
    • 原因:当接入了一台新的PC,交换机的指定端口就会被激活,交换机会发送TCN BPDU给根桥,根桥发送TC置为一的BPDU报文,此时MAC表的老化时间改成15s,正确的MAC地址表项也会产生影响
  3. 端口状态

    RSTP的状态规范把原来的5种状态缩减为3种。

    • 如果不转发用户流量也不学习MAC地址,那么接口状态就是Discarding状态。
    • 如果不转发用户流量但是学习MAC地址,那么接口状态就是Learning状态。
    • 如果既转发用户流量又学习MAC地址,那么接口状态就是Forwarding状态

VBSP(华为私有)

基于VLAN的生成树协议,无国籍标准,厂家私有

该解决方案中,生成树的形成是基于VLAN的,不同VLAN间可形成相互独立的生成树,不VLAN内的流量沿着各自的生成树转发,进而可实现流量的负载分担。

MSTP(802.1S)

stp/rstp都是单生成树协议,只能维护一棵树,MSTP多生成树

所有VLAN共享一个根,链路带宽浪费,所有的VLAN都会走同一条链路去访问同一个交换机

  1. 概述
    • 每棵生成树叫做一个多生成树实例MSTI
    • 通过将多个VLAN捆绑到一个实例,可以节省通信开销和资源占用率。
    • MSTP各个实例拓扑的计算相互独立,在这些实例上可以实现负载均衡。
    • 可以把多个相同拓扑结构的VLAN映射到一个实例里,这些VLAN在接口上的转发状态取决于接口在对应实例的状态。

VLAN间的路由

VLAN之间需要通过三层通信实现互访,三层通信需借助三层设备。

使用路由器的物理接口

  • 在二层交换机上配置VLAN,每个VLAN单独使用一个交换机接口与路由器互联。
  • 路由器使用两个物理接口,分别作为VLAN 10及VLAN 20内PC的默认网关,使用路由器的物 理接口实现VLAN之间的通信。

使用路由器子接口(单臂路由)

  • R1使用一个物理接口(GE0/0/1)与交换机SW1对接,并基于该物理接口创建两个子接口:GE0/0/1.10及GE0/0/1.20,分别使用这两个子接口作为VLAN 10及VLAN 20的默认网关。

  • 子接口终结VLAN的实质包含两个方面:

    ▫ 对接口接收到报文,剥除VLAN标签后进行三层转发或其他处理。 ▫ 对接口发出的报文,又将相应的VLAN标签添加到报文中后再发送。

使用VLANIF接口

  • 三层交换机(Layer 3 Switch)除了具备二层交换机的功能,还支持通过三层接口(如VLANIF接口)实现路由转发功能。
  • VLANIF接口是一种三层的逻辑接口,支持VLAN Tag的剥离和添加,因此可以通过VLANIF接口实现VLAN之间的通信
  • VLANIF接口和vlan是一一对应的,可以理解成vlan中的一个特殊接口,可以配置IP、可以运行路由协议

VLANIF转发流程

假设PC、三层交换机上都已存在相应的ARP或MAC表项。

  1. PC1与PC2之间通信过程如下:
    • PC1通过本地IP地址、本地掩码、对端IP地址进行计算,发现目的设备PC2与自身不在同一个网段,判断该通信为三层通信,将去往PC2的流量发给网关。PC1发送的数据帧:源MAC = MAC1,目的MAC = MAC2。
    • 交换机收到PC1发送的去往PC2的报文,经解封装发现目的MAC为VLANIF10接口的MAC地址,所以将报文交给路由模块继续处理。
    • 路由模块解析发现目的IP为192.168.20.2,非本地接口存在的IP地址,因此需要对该报文三层转发。查找路由表后,匹配中VLANIF20产生的直连路由
    • 因为匹配的为直连路由,说明已经到达最后一跳,所以交换机在ARP表中查找192.168.20.2,获取192.168.20.2的MAC地址,交由交换模块重新封装为数据帧。
    • 交换模块查找MAC地址表以明确报文出接口、是否需要携带VLAN Tag。最终交换模块发送的数据帧:源MAC = MAC2,目的MAC = MAC3,VLANTag = None。

以太网链路聚合与交换机堆叠、集群

可靠性

  • 网络的可靠性指当设备或者链路出现单点或者多点故障时保证网络服务不间断的能力。
  • 网络的可靠性可以从单板、设备、链路多个层面实现。

链路聚合原理

以太网链路聚合Eth-Trunk:简称链路聚合,通过将多个物理接口捆绑成为一个逻辑接口, 可以在不进行硬件升级的条件下,达到增加链路带宽的目的

基本术语

  1. 聚合组(Link Aggregation Group,LAG):若干条链路捆绑在一起所形成 的的逻辑链路。每个聚合组唯一对应着一个逻辑接口,这个逻辑接口又 被称为链路聚合接口或Eth-Trunk接口。
  2. 成员接口和成员链路:组成Eth-Trunk接口的各个物理接口称为成员接口。 成员接口对应的链路称为成员链路。
  3. 活动接口和活动链路:活动接口又叫选中(Selected)接口,是参与数 据转发的成员接口。活动接口对应的链路被称为活动链路(Active link)
  4. 非活动接口和非活动链路:又叫非选中(Unselected)接口,是不参与 转发数据的成员接口。非活动接口对应的链路被称为非活动链路(Inactive link)。
  5. 聚合模式:根据是否开启LACP(Link Aggregation Control Protocol,链路 聚合控制协议),链路聚合可以分为手工模式和LACP模式。
  6. 其他概念:活动接口上限阈值和活动接口下限阈值。

手工模式

  • Eth-Trunk的建立、成员接口的加入均由手动配置,双方系统之间不使用LACP(链路聚合控制协议)进行协商。
  • 正常情况下所有链路都是活动链路,该模式下所有活动链路都参与数据的转发,平均分担流量,如果某条活动链路故障,链路聚合组自动在剩余的活动链路中平均分担流量。
  • 缺陷
    • 手工模式下,设备间没有报文交互,因此只能通过管理员人工确认。
    • 手动模式下,设备只能通过物理层状态判断对端接口是否正常工作

LACP模式

  • LACP模式:采用LACP协议的一种链路聚合模式。设备间通过链路聚合控制协议数据单元(Link Aggregation Control Protocol Data Unit,LACPDU)进行交互,通过协议协商确保对端是同一台设备、同一个聚合接口的成员接口。
  • LACPDU报文中包含设备优先级、MAC地址、接口优先级、接口号等。
  1. 优先级
    1. LACP模式下,两端设备所选择的活动接口数目必须保持一致,否则链路聚合组就无法建立。此时可以使其中一端成为主动端,另一端(被动端)根据主动端选择活动接口
    2. 交换机主备选举:通过系统LACP优先级确定主动端,值越小优先级越高。系统LACP优先级默认32768,优先级相同比较MAC地址,越小越优
    3. 接口优先级选举:接口LACP优先级默认为32768,越小越优,通常保持默认,当优先级一致时LACP会通过接口编号选择活动接口,越小越优。
  2. 最大活动接口
    1. 交换机会在主动端通过优先级比较选出活动接口,被动端根据主动端选举的活动接口选举
    2. 如果活动链路出现故障,可以从非活动链路中找到一条优先级最高的链路替换

负载分担

  1. 基于包的负载分担(根据数据包的个数)

在使用Eth-Trunk转发数据时,由于聚合组两端设备之间有多条物理链路,如果每个数据帧在不同的链路上转发,则有可能导致数据帧到达对端时间不一致,从而引起数据乱序。

  1. 基于流的负载分担 优先使用

Eth-Trunk推荐采用逐流负载分担的方式,即一条相同的流负载到一条链路,这样既保证了同一数据流的数据帧在同一条物理链路转发,又实现了流量在聚合组内各物理链路上的负载分担。

  • 常见的模式有:源IP、源MAC、目的IP、目的MAC、源目IP(默认)、源目MAC。两台设备可以独立的配置负载分担的算法

堆叠和集群

  1. 堆叠:多台支持堆叠特性的交换机通过堆叠线缆连接在一起,从逻辑上变成一台交换设备,作为整体产于数据转发,一般最多支持9台,有些支持16台

  2. 集群:将两台支持集群特性的交换机设备组合在一起,从逻辑上组成一台交换设备

    集群只支持两台设备,一般框式交换机支持CSS,盒式设备支持iStack。

  3. S系列CSS/iStack 业务口堆叠和堆叠卡,CE系列iStack/CSS 业务口堆叠

  4. 优点

    • 交换机多虚一:堆叠交换机对外表现为一台逻辑交换机,控制平面合一,统一管理。同时端口密度增加,链路利用率高,扩展带宽和冗余备份
    • 转发平面合一:堆叠内物理设备转发平面合一,转发信息共享并实时同步。
    • 跨设备链路聚合:跨物理设备的链路被聚合成一个Eth-Trunk端口,和下游设备实现互联

ACL访问控制列表

  1. 概述:

    • ACL是由一系列permit或deny语句组成的、有序规则的列表
    • ACL是一个匹配工具,能够对报文进行匹配和区分
    • 华为设备中:ACL匹配数据包时,默认隐藏允许所有;ACL匹配路由时,末尾隐藏拒绝所有
  2. 运用

ACL的组成

ACL由若干条permit或deny语句组成。每条语句就是该ACL的一条规则,每条语句中的permit或deny就是与这条规则相对应的处理动作。

图片问题:默认允许,无规则编号

  1. 规则编号:一个ACL中的每一条规则都有一个相应的编号
    1. Rule ID分配规则
    2. 步长:步长是系统自动为ACL分配编号时,相邻规则之间的差值,缺省值为5
    3. Rule ID分配规则:系统为ACL中首条未手工指定编号的规则分配编号时,使用步长值(例如步长=5,首条规则编号为5)
  2. 补充
    1. 子网掩码:配置地址时,配置子网掩码
    2. 反掩码:ospf配置用到的反掩码,255.255.255.255-子网掩码 0代表匹配,1代表忽略,反掩码的0和1是连续的
    3. 通配符掩码:ACL用到通配符掩码 0代表匹配 1代表忽略,0和1可以不连续
  3. 报文匹配规则后立即按照规则处理,不在继续向下匹配地址bit多的规则尽量使用小规则号

分类和标识

注意:用户在创建ACL时可以为其指定编号,不同的编号对应不同类型的ACL。同时,为了 便于记忆和识别,用户还可以创建命名型ACL,即在创建ACL时为其设置名称。命名型ACL,也可以是“名称数字”的形式,即在定义命名型ACL时,同时指定ACL编号。如果不指定编号,系统则会自动为其分配一个数字型ACL的编号

匹配规则和顺序

  • 配置顺序(config模式)

    系统按照ACL规则编号从小到大的顺序进行报文匹配,规则编号越小越容易被匹配

  • 自动排序(auto模式)

    是指系统使用“深度优先”的原则,将规则按照精确度从高到低进行排序,并按照精确度从高到低的顺序进行报文匹配。

ACL的匹配位置

outbound方向对路由器自己始发的流量没有作用,只有对穿越路由器的流量才用作用

网络地址转换

概述

NAT:对IP数据报文中的IP地址进行转换,是一种在现网中被广泛部署的技术,一般部署在网络出口设备,例如路由器或防火墙上。

  • 公有地址:由专门的机构管理、分配,可以在Internet上直接通信的IP地址。
  • 私有地址:组织和个人可以任意使用,无法在Internet上直接通信,只能在内网使用的IP地址。
  • A、B、C类地址中各预留了一些地址专门作为私有IP地址:
    • A类:10.0.0.0 ~ 10.255.255.255
    • B类:172.16.0.0 ~ 172.31.255.255
    • C类:192.168.0.0 ~ 192.168.255.255

静态NAT

  • 每个私网地址都有一个与之对应并且固定的公网地址,即私有地址和公有地址之间的关系是一对一映射的
  • 支持双向互访:私有地址访问Internet经过出口设备NAT转换时,会被转换成对应的公有地址。同时,外部网络访问内部网络时,其报文中携带的公有地址(目的地址)也会被NAT设备转换成对应的私有地址。
  1. 工作原理

    当内部网络中的主机(使用私有 IP 地址)想要与外部网络进行通信时,数据包首先到达配置了静态 NAT 的网络设备(如路由器)。路由器根据预先配置的静态 NAT 映射表,将数据包中的源 IP 地址(即内部主机的私有 IP 地址)替换为对应的公网 IP 地址,然后将数据包转发到外部网络。当外部网络的主机回应时,路由器会根据目的 IP 地址(即之前替换的公网 IP 地址),在映射表中查找对应的私有 IP 地址,并将回应数据包的目的 IP 地址替换回内部主机的私有 IP 地址,再转发给内部主机。

动态NAT

动态NAT:静态NAT严格地一对一进行地址映射,这就导致即便内网主机长时间离线或者不发送数据时,与之对应的公有地址也处于使用状态。为了避免地址浪费,动态NAT提出了地址池的概念:所有可用的公有地址组成地址池。

当内部主机访问外部网络时临时分配一个地址池中未使用的地址,并将该地址标记为“In Use”。当该主机不再访问外部网络时回收分配的地址,重新标记为“NotUse”。

NAPT

动态NAT选择地址池中的地址进行地址转换时不会转换端口号,即No-PAT(No-Port Address Translation,非端口地址转换),公有地址与私有地址还是1:1的映射关系,无法提高公有地址利用率。

NAPT(Network Address and Port Translation,网络地址端口转换):从地址池中选择地址进行地址转换时不仅转换IP地址,同时也会对端口号进行转换,从而实现公有地址与私有地址的1:n映射,可以有效提高公有地址利用率

Easy IP

  • EasyIP:实现原理和NAPT相同,同时转换IP地址、传输层端口,区别在于EasyIP没有地址池的概念,使用接口地址作为NAT转换的公有地址。
  • Easy IP适用于不具备固定公网IP地址的场景:如通过DHCP、PPPoE拨号获取地址的私有网络出口,可以直接使用获取到的动态地址进行转换。

NAT SERVER

  • 地址和端口的一对一转换,只能让外部主机访问内网服务器的特定端口,更加安全,仅支持单项访问,即外网主动访问内网,一般提供用于外网主机访问服务器的场景
  • NAT Server:指定[公有地址:端口]与[私有地址:端口]的一对一映射关系,将内网服务器映射到公网,当私有网络中的服务器需要对公网提供服务时使用。

同一台服务器的不同服务,可以用不同公网提供Nat-server

不同服务器的不同服务,可以使用同一个官网地址提供Nat-server

网络服务

文件传输(FTP)

  • 主机之间传输文件是IP网络的一个重要功能,如今人们可以方便地使用网页、邮箱进行文件传输
  • FTP采用典型的C/S架构(即服务器端与客户端模型),客户端与服务器端建立TCP连接之后即可实现文件的上传、下载
  • 针对传输的文件类型不同,FTP可以采用不同的传输模式:
    • ASCII模式:传输文本文件(TXT、LOG、CFG )时会对文本内容进行编码方式转换,提高传输效率。当传输网络设备的配置文件、日志文件时推荐使用该模式。
    • Binary(二进制)模式:非文本文件(cc、BIN、EXE、PNG),如图片、可执行程序等,以二进制直接传输原始文件内容。当传输网络设备的版本文件时推荐使用该模式。
  1. 单通道协议:通信时只需简历一个TCP会话,使用一个固定的端口(HTTP)
  2. 多通道协议:通信时简历多个TCP/UDP会话,使用的端口未必固定,动态协商生成。(FTP,SIP,H323)
  3. ftp使用2个通道进行工作
    1. 数据通道:TCP,传输数据,
    2. 控制通道:TCP,下达ftp的操作指令,登陆认证。
  4. ftp工作模式:主动模式(port)/被动模式(pasv)
    • 主动模式:指数据通道由FTP服务器主动向客户端发起
      1. 控制通道:clinet随机生成端口N,访问服务器的21端口,客户端告知服务器(x.x.x.x p1 p2)
      2. 数据通道:服务器使用20端口,访问客户端的N+1端口,N+1=P1*256+P2
    • 被动模式:数据通道由客户端主动向服务器发起
      1. 控制通道:clinet随机一个端口N,访问服务器的21端口, 服务器告知客户端服务器地址和两个随机数(x.x.x.x p1 p2)
      2. 数据通道:clinet使用N+1端口,访问服务器的p1*256+p2端口

TFTP

相较于FTP,TFTP的设计就是以传输小文件为目标,协议实现就简单很多:

使用UDP进行传输(端口号69)

无需认证

只能直接向服务器端请求某个文件或者上传某个文件,无法查看服务器端的文件目录

Telnet

当用户使用Console接口、Telnet等方式登录设备的时候,系统会分配一个用户界面(user-interface)来管理、监控设备与用户间的当前会话,每个用户界面视图可以配置一系列参数用于指定用户的认证方式、登录后的权限级别,当用户登录设备后将会受这些参数限制。

DHCP

  1. 概念

    为解决传统的静态手工配置方式的不足,DHCP(DynamicHost Configuration Protocol,动态主机配置协议)应运而生,其可以实现网络动态合理地分配IP地址给主机使用。

    DHCP采用C/S构架,主机无需配置,从服务器端获取地址,可实现接入网络后即插即用

    DHCP服务器监听67端口,DHCP客户端68号端口

  2. 报文类型

    报文类型 主要功能
    DHCP-DISCOVER DHCP 客户端广播发送,用来查找网络中可用的 DHCP 服务器
    DHCP-OFFE DHCP 服务器用来响应客户端的 DHCP-DISCOVER 请求,并为客户端指定相应配置参数
    DHCP-RQUEST DHCP 客户端广播给 DHCP 服务器,用来请求配置参数或者续借租期
    DHCP-ACK DHCP 服务器通知客户端可以使用分配的 IP 地址和配置参数
    DHCP-NAK DHCP 服务器通知客户端地址请求不正确或者租期已过期
    DHCP-RELEASE DHCP 客户端主动向 DHCP 服务器发送,告知服务器该客户端不再需要分配的 IP 地址
    DHCP-DECLINE DHCP 客户端发现地址冲突或由于其它原因导致地址不能使用,则发送 DHCP-DECLINE 报文,通知服务器所分配的 IP 地址不可用
    DHCP-INFORM DHCP 客户端已经有了 IP 地址,用它来向服务器请求其他的配置信息
  • DHCP server与client的标准交互过程

    1. client首先发出广播的DHCP DISCOVER 报文,目的是让 DHCP server 能够收到这个请求报文。在该报文的“选项”字段中可加入 request parameter list,表明需要的各类参数;四个 IP 地址字段均须为 0。

    2. 由于 DHCP DISCOVER 为广播报文,所有 DHCP SERVER 都能收到并响应DHCP OFFER 报文,其中“你的 IP 地址”字段为可供 client 使用的IP地址,而且DHCP server会把主机的IP地址放在“选项”字段中以便区别不同的 DHCP SERVER。发送该报文后,SERVER 会在本地生成一条分配记录。

      DHCP OFFER 在 IP 与 MAC 绑定的情况下用单播工作。

    3. clinet可能收到多个 DHCP OFFER,但只处理其中一个,通常选择最先到达的那个。随后 CLIENT 广播发送 DHCP REQUEST,在“选项”字段中填入所选 DHCP SERVER 的 IP 地址以及期望获得的 IP 地址;采用广播是为了通知所有 DHCP SERVER 进行相应处理。

    4. DHCP SERVER 收到 DHCPREQUEST 后,检查“选项”中的 DHCP SERVER 的IP地址地址是否与自身相同:若不同,则不处理(若曾下发过 DHCPOFFER,需清除对应分配记录);若相同,则向 CLIENT 发送 DHCP ACK,内容与 DHCP OFFER 类似,并在“选项”字段中增加 IP 地址的租期信息。

    5. client收到DHCP ACK报文后(经过上面的处理,有且仅有一个DHCP ACK报文),会检查DHCP server分配给自己的IP地址是否能够使用,如在以太网类型的网络中,client会发出免费的ARP请求来确定DHCP server分配的IP是否已经被别人使用,如果可以使用,则client成功获得ip地址,并根据ip地址使用租期自动启动延续过程。

    6. 如果client发现DHCP server分配的这个IP地址已经被别人使用,则client会发出DHCP DECLINE报文通知DHCP server禁用这个IP地址以免引起地址冲突,然后client又开始新的DHCP过程,从第一步开始

    7. 当client成功获取到IP地址后,会根据IP地址使用租期自动启动续延过程,在使用租期过去50%时,向DHCP server发送单播DHCP REQUEST报文延续租期,如果成功收到DHCP server的DHCP ACK报文,则租期相应延长,如果失败即没有收到DHCP ACK报文,则client继续使用这个IP地址,在使用租期过去87.5%时,向DHCP server发送广播DHCP REQUEST报文延续租期,如果成功收到报文则延长租期;如果失败即没有收到DHCP ACK报文,则client继续使用这个IP地址,在使用租期到达的时,client应自动放弃使用这个IP地址并开始新的DHCP过程,从第一步开始。

    8. client在成功获取到IP地址后,随时可以发送DHCP RELEASE报文释放自己的IP地址,DHCP sever在收到此报文后,会回收相应的IP地址重新分配,当存在DHCP RELAY时,所有的DHCP报文都会经过DHCP RELAY进行转发,整个DHCP交互过程同上面类型,只在报文封装时,稍有不同,从上面的叙述可以看出,DHCP server的行为完全由client驱动,DHCP server无法控制client行为,因此DHCP协议的安全性比较差

    注意:租期续约的时候client发送的DHCP REQUEST 和DHCP server回复的DHCP ACK都是单播,DHCP offer和DHCP ack报文可以单播也可以广播

广域网技术

  1. 广域网是连接不同地区局域网的网络,通常所覆盖的范围从几十公里到几千公里。它能连接多个地区、城市和国家,或横跨几个洲提供远距离通信,形成国际性的远程网络

  2. 早期广域网与局域网的区别在于数据链路层和物理层的差异性,在TCP/IP参考模型中,其他各层无差异。

  1. 广域网设备角色

广域网络设备基本角色有三种,CE(CustomerEdge,用户边缘设备)、PE(Provider Edge,服务提供商边缘设备)和P(Provider,服务提供商设备)。具体定义是:

  • CE:用户端连接服务提供商的边缘设备。CE连接一个或多个PE,实现用户接入。
  • PE:服务提供商连接CE的边缘设备。PE同时连接CE和P设备,是重要的网络节点。
  • P:服务提供商不连接任何CE的设备。

PPP协议

  • PPP(Point-to-Point Protocol,点到点协议)是一种常见的广域网数据链路层协议,主要用于在全双工的链路上进行点到点的数据传输封装。
  • PPP提供了安全认证协议族PAP(Password Authentication Protocol,密码验证协议)和CHAP(ChallengeHandshake Authentication Protocol,挑战握手认证协议)。
  • PPP协议具有良好的扩展性,例如,当需要在以太网链路上承载PPP协议时,PPP可以扩展为PPPoE。
  • PPP协议提供LCP(Link Control Protocol,链路控制协议),用于各种链路层参数的协商,例如最大接收单元,认证模式等。
  • PPP协议提供各种NCP(Network Control Protocol,网络控制协议),如IPCP(IP Control Protocol ,IP控制协议),用于各网络层参数的协商,更好地支持了网络层协议。

ppp链路建立流程

  1. PPP链路的建立有三个阶段的协商过程,链路层协商、认证协商(可选)和网络层协商
    • 链路层协商:通过LCP报文进行链路参数协商,建立链路层连接。
    • 认证协商(可选):通过链路建立阶段协商的认证方式进行链路认证。
    • 网络层协商:通过NCP协商来选择和配置一个网络层协议并进行网络层参数协商
  2. 运行的过程简单描述如下
    1. 通信双方开始建立PPP链路时,先进入到Establish阶段

    2. 在Establish阶段,PPP链路进行LCP协商,协商内容包括工作方式SP(single-line PPP)单链路,还是MP(Multilink PPP)多链路,最大接收单元MRU,验证方式和魔术字等选项。LCP协商成功后进入Opened状态,表示底层链路已经建立。

    3. 如果配置了验证,将进入Authenticate阶段,开始CHAP或PAP验证,如果没有配置验证,直接进入Network阶段,此时LCP的状态还是Opened

    4. 在Network阶段,PPP链路进行NCP协商来选择和配置一个网络协议并进行网络层参数协商,只有相应的网络层协议协商成功后,该网络层协议才可以通过这条PPP链路发送报文。

      NCP协商包括IPCP(IP Contol Protocol)、MPLSCP(MPLS Control Protocol)等协商。IPCP协商内容主要包括双方的IP地址

    5. NCP协商后,PPP链路将一直保持通信。PPP运行过程中,可以随时断开,物理链路断开、认证失败、超时定时器时间到、管理员通过配置关闭连接等动作都可能导致链路进入Terminate阶段

    6. 在Termminate阶段,所有的资源都会被释放,通信双方将回到Dead阶段,知道双方重新建立PPP连接,开始新的PPP链路建立

LCP报文格式

  • PPP帧格式:
    • Flag字段标识一个物理帧的起始和结束,该字节为二进制序列01111110(0X7E)。
    • PPP帧的Address字段字节固定为11111111 (0XFF),是一个广播地址。
    • PPP数据帧的Control字段默认为00000011(0X03),表明为无序号帧。
    • Protocol字段用来说明PPP所封装的协议报文类型,0XC021代表LCP报文,0XC023代表PAP报文,0XC223代表CHAP报文。
    • Information字段包含Protocol字段中指定协议的内容,该字段的最大长度被称为最大接收单元MRU,缺省值为1500。
    • 帧校验序列(FCS)字段是个16bit的校验和,用于检查PPP帧的完整性。

协商过程

  1. 正常协调

    LCP协商由不同的LCP报文交互完成。协商由任意一方发送Configure-Request报文发起。如果对端接收此报文且参数匹配,则通过回复Configure-Ack响应协商成功

    • 本例中,R1首先发送一个Configure-Request报文,此报文中包含R1上配置的链路层参数。当R2收到此Configure-Request报文之后,如果R2能识别并接受此报文中的所有参数,则向R1回应一个Configure-Ack报文。同样的,R2也需要向R1发送Configure-Request报文,使R1检测R2上的参数是不是可接受的。
    • R1在没有收到Configure-Ack报文的情况下,会每隔3秒重传一次Configure-Request报文,如果连续10次发送Configure-Request报文仍然没有收到Configure-Ack报文,则认为对端不可用,停止发送Configure-Request报文。
  2. 参数不匹配

    在LCP报文交互中出现LCP参数不匹配时,接收方回复Configure-Nak响应告知对端修改参数然后重新协商。

    • 当R2收到R1发送的Configure-Request报文之后,如果R2能识别此报文中携带的所有链路层参数,但是认为部分或全部参数的取值不能接受,即参数的取值协商不成功,则R2需要向R1回应一个Configure-Nak报文。
    • 在这个Configure-Nak报文中,只包含不能接受的链路层参数,并且此报文所包含的链路层参数将被修改为R2上可以接受的取值(或取值范围)
    • 在收到Configure-Nak报文之后,R1需要根据此报文中的链路层参数重新选择本地配置的其他参数,并重新发送一个Configure-Request。
  3. 参数不识别

    在LCP报文交互中出现LCP参数不识别时,接收方回复Configure-Reject响应告知对端删除不识别的参数然后重新协商。

    • 当R2收到R1发送的Configure-Request报文之后,如果R2不能识别此报文中携带的部分或全部链路层参数,则R2需要向R1回应一个Configure-Reject报文。在此Configure-Reject报文中,只包含不能被识别的链路层参数。
    • 在收到Configure-Reject报文之后,R1需要向R2重新发送一个Configure-Request报文,在新的Configure-Request报文中,不再包含不被对端(R2)识别的参数。

PPP认证模式 PAP

PAP认证双方有两次握手。协商报文以明文的形式在链路上传输。

  • PAP认证协议为两次握手认证协议,密码以明文方式在链路上发送,过程如下:
    • 被认证方将配置的用户名和密码信息使用Authenticate-Request报文以明文方式发送给认证方。
    • 认证方收到被认证方发送的用户名和密码信息之后,根据本地配置的用户名和密码数据库检查用户名和密码信息是否匹配;如果匹配,则返回Authenticate-Ack报文,表示认证成功。否则,返回Authenticate-Nak报文,表示认证失败。

PPP认证模式CHAP

CHAP认证双方有三次握手,协商报文被加密后再在链路上传输。

  • CHAP认证过程需要三次报文的交互。过程如下:
    • 认证方主动发起认证请求,认证方向被认证方发送Challenge报文,报文内包含随机数(Random)和ID。
    • 被认证方收到此Challenge报文之后,进行一次加密运算,运算公式为MD5{ ID+随机数+密码},意思是将Identifier、随机数和密码三部1分连成一个字符串,然后对此字符串做MD5运算,得到一个16 Byte长的摘要信息,然后将此摘要信息和端口上配置的CHAP用户名一起封装在Response报文中发回认证方。
    • 认证方接收到被认证方发送的 cResponse报文之后,按照其中的用户名在本地查找相应的密码信息,得到密码信息之后,进行一次加密运算,运算方式和被认证方的加密运算方式相同;然后将加密运算得到的摘要信息和Response报文中封装的摘要信息做比较,相同则认证成功,不相同则认证失败。

NCP协商

PPP认证协商后,双方进入NCP协商阶段,协商在数据链路上所传输的数据包的格式与类型。以常见的IPCP协议为例,它分为静态IP地址协商和动态IP地址协商

  1. 静态IP地址协商需要手动在链路两端配置IP地址。

    • 静态IP地址商过程如下:
      • 每一端都要发送Configure-Request报文,在此报文中包含本地配置的IP地址;
      • 每一端接收到此Configure-Request报文之后,检查其中的IP地址,如果IP地址是一个合法的单播IP地址,而且和本地配置的IP地址不同(没有IP冲突),则认为对端可以使用该地址,回应一个Configure-Ack报文
  2. 动态IP地址协商支持PPP链路一端为对端配置IP地址

    • 动态协商IP地址的过程如下:
      • R1向R2发送一个Configure-Request报文,此报文中会包含一个IP地址0.0.0.0,表示向对端请求IP地址;
      • R2收到上述Configure-Request报文后,认为其中包含的地址(0.0.0.0)不合法,使用Configure-Nak回应一个新的IP地址10.1.1.1;
      • R1收到此Configure-Nak报文之后,更新本地IP地址,并重新发送一个Configure-Request报文,包含新的IP地址10.1.1.1;
      • R2收到Configure-Request报文后,认为其中包含的IP地址为合法地址,回应一个Configure-Ack报文;
      • 同时,R2也要向R1发送Configure-Request报文请求使用地址10.1.1.2,R1认为此地址合法,回应Configure-Ack报文。

PPPOE

  1. 简介

    PPPoE(PPP over Ethernet,以太网承载PPP协议)是一种把PPP帧封装到以太网帧中的链路层协议。PPPoE可以使以太网网络中的多台主机连接到远端的宽带接入服务器

  2. 报文

  3. PPPOE会话建立

    阶段 协商过程 说明
    PPPoE发现 PPPoE协商 用户接入,创建PPPoE虚拟链路。
    PPPoE会话 PPP协商 PPP协商内容包括LCP协商、PAP/CHAP认证、NCP协商等阶段。
    PPPoE终结 PPPoE断开 用户下线,客户端断开连接或者服务器端断开连接。
  4. PPPOE发现阶段

    PPPoE协议发现有四个步骤:客户端发送请求、服务端响应请求、客户端确认响应和建立会话。

    • 具体步骤
      1. PPOE客户端在本地以太网中广播一个PADI报文,此PADI报文包括了客户端需要的服务信息。
        • PADI报文的目的MAC地址是一个广播地址,Code字段为0x09,Session ID字段为0x0000。
        • 所有PPPOE服务器收到PADI报文后,会将报文请求的服务和自己能够提供的服务进行比较
      2. 如果服务端可以提供客户端请求的服务,就会回复一个PADO报文
        • PADO报文的目的地地址是发送PADI报文的客户端MAC地址,Code字段为0x07,SessionID字段为0x0000.
      3. 客户端可能会收到多个PADO报文,此时将选择最先收到的PADO报文对应的PPOE服务端,并发送一个PADR给这个服务器端
        • PADR报文的目的地是选中服务器端的MAC地址,Code字段为0x19,SessionID 字段为0x0000
      4. PPPOE服务器收到PADR报文后,会生成一个唯一的Session ID来表示和PPOE客户端的会话并发送PADS报文。
        • PADS报文的目的地地址是PPPOE客户端的MAC地址,Code字段为0x65,Session ID是 PPPOE服务器端为本会话产生的Session ID。
      • 会话建立成功后,PPPOE客户端和服务端进入PPPOE会话阶段
  5. PPPOE会话阶段

    PPPoE会话阶段会进行PPP协商,分为LCP协商、认证协商、NCP协商三个阶段。

  6. Session Terminate阶段(会话终结阶段)

    在PPPoE中定义了一个PADT 报文用来结束会话,PPPoE Client或者PPPoE Server可以在会话开始后的任何时候通过发送PADT报文来结束会话。

WLAN技术

  1. 标准

  2. 基本的WLAN组网

    • FAT AP (胖AP)架构
      • 这种架构不需要专门的设备集中控制就可以完成无线用户的接入、业务数据的加密和业务数据报文的转发等功能,因此又称为自治式网络架构。
      • 适用范围:家庭、
      • 特点:AP独立工作,需要单独配置,功能较为单一,成本低。
      • 缺点:随着WLAN覆盖面积增大,接入用户增多,需要部署的FAT AP数量也会增 多,但FAT AP是独立工作的,缺少统一的控制设备,因此管理维护这些FAT AP就 十分麻烦。
    • AC+FIT AP (瘦AP)架构
      • 这种架构中,AC负责WLAN的接入控制、转发和统计、AP的配置监控、漫游管 理、AP的网管代理、安全控制;FIT AP负责802.11报文的加解密、802.11的物理 层功能、接受AC的管理等简单功能。
      • 适用范围:大中型企业
      • 特点:AP需要配合AC使用,由AC统一管理和配置,功能丰富,对网络运维人员的技能要求高。
    • 敏捷分布式AP(RU)
      • AP的一种特殊架构,将AP拆分为中心AP和敏分AP两个部分,中心AP可管理多台敏分AP,在使用的场景下,成本低覆盖好,可用于FAT AP、AC+FIT AP、云管理架构

      • 适用范围:房间分布密集的场景,如酒店

  3. AP-AC组网方式

    • 二层组网:AP与AC之间的网络为直连或者二层网络。
    • 三层组网:AP与AC之间的网络为三层网络。
      • 在实际组网中,一台AC可以连接几十甚至几百台AP,组网一般比较复杂,在大型组网中一般采用三层组网。
  4. AC连接方式

    • 直连式组网
      • 直连式组网认为AP、AC与上层网络串在一起,所有的数据必须通过AC到达上层网络
      • 直连式组网中AC同时扮演AC和汇聚交换机的功能,AP的数据业务和管理业务都由AC集中转发和处理。
    • 旁挂式组网
      • 旁挂式组网,AC旁挂在AP与上行网络的直连网络中,不再直接连接PC
      • AC旁挂在AP与上行网络的直连网络上,AP的业务数据可以不经过AC直接到达上行网络

CAPWAP协议

  1. CAPWAP(无线接入点控制和配置协议):定义如何对AP进行管理、业务配置,即AC通过CAPWAP隧道来实现对AP的集中管理和控制。是基于UDP进行传输的应用层协议

  2. 功能

    1. AP与AC间的状态维护,AC通过CAPWAP隧道对AP进行管理、业务配置下发。
    2. 当采用隧道转发模式时,AP将STA发出的数据通过CAPWAP隧道实现与AC之间的交互。
  3. 接口

    ▪ 管理流量端口为UDP端口5246。 ▪ 业务数据流量端口为UDP端口5247

无线侧组网概念

  1. 无线信道

    信道是信息的通道,无线信道就是空间中的无限电磁波。无线通信协议除了要定义允许使用的频段,还要精确划分出频率的范围,每个频率范围就是信道。

                BSS/SSID/BSSID

  • 基本服务        集BSS:
    • 一个AP所覆盖的范围
    • 在一个BSS的范围区域内,STA可以互相通信
  • 基本服务集标识符BSSID
    • 是无线网络的身份标识,用AP的MAC地址标识,AP上数据链路层的MAC地址
    • 终端为了找到和发现AP,通过AP的一个身份标识,这个身份标识就是BSSID
    • 为了区分BSS,要求每个BSS都有一个唯一的BSSID,因此用AP的MAC地址保证唯一性
  • 服务集标识符SSID
    • 是无线网络的一个身份标识,用字符串标识,用于区分不同的无线网络
    • 为了便于用户辨识不同的无线网络,用SSID代替BSSID
  1. VAP(虚拟接入点)

    • VAP就是在一个物理实体AP上虚拟出多个AP。每一个被虚拟出的AP就是一个VAP。每个VAP提供和物理实体AP一样的功能。

    • 每个VAP对应一个BSS。这样1个AP,就可以提供多个BSS,可以再为这些BSS设置不同的SSID。

  2. ESS

    • 当需要对BSS覆盖范围进行扩展时,用户从一个BSS移动到另一个BSS时,不能感知到SSID的变化,使用扩展服务集ESS实现

    • ESS由多个使用相同SSID的BSS组成,是采用相同的SSID的多个BSS组成的更大规模的虚拟BSS。

WLAN工作流程

  1. AP上线:AP获取IP地址并发现AC,与AC建立连接

    • AP获取IP地址:
      • 静态分配(AP上手动配置),DHCP
    • AP发现AC并与之建立CAPWAP隧道
      • Discovery阶段(AP发现AC阶段
        • AP通过发送 Discovery Request报文,找到可用AC
        • AP发现AC有两种方式:静态方式(AP上预先配置AC静态IP地址)动态方式:DHCP、DNS、和广播方式
      • 建立CAPWAP隧道阶段(AP与AC关联
        • AP与AC关联,完成CAPWAP隧道建立。包括数据隧道和控制隧道
        • 数据隧道:AP接收的业务数据报文经过CAPWAP数据隧道集中到AC上转发。同时可以选择对数据隧道进行数据传送层安全DTLS加密(隧道转发,直接转发不需要数据隧道)
        • 控制隧道:通过CAPWAP控制隧道实现AP与AC之间的管理报文的交互。同时可以选择对数据隧道进行数据传送层安全DTLS加密(一定有)
    • AP接入控制
      • AP发现AC后,会发送Join Request报文。AC收到后会判断是否允许该AP接入,并响应Join Response 报文。
      • AC上支持三种对AP认证方式:MAC认证、序列号(SN)认证、和不认证
    • AP版本升级
      • AP根据收到的Join Response报文中的参数判断当前系统软件版本是否与AC上指定的一致。如果不一致免责AP发送Image Data Request报文请求软件版本,然后进行版本升级,升级方式包括AC模式、FTP模式、SFTP模式
      • AP在完整软件版本跟新后重新启动,然后重复上面三个步骤
    • CAPWAP隧道维持
      • 数据隧道维持:AP与AC之间交互Keeplive报文来检测数据隧道的连通状态
      • 控制隧道维持:AP与AC之间交互Echo报文来检测控制隧道的连通状态
  2. WLAN业务配置下发:AC将WLAN业务配置下发到AP

    AC向AP发送Configuration Update Reuqest请求报文,AP回应Configuration Update Response消息,AC再讲AP的业务配置信息下发给AP

  3. STA接入:STA搜索到AP发射的SSID并连接、上线、接入网络

    • STA接入过程分为六个阶段:扫描阶段,链路认证阶段,关联阶段,接入认证阶段,DHCP,用户认证
      • 扫描

        STA通过主动扫描,定期搜索周围无线网络。根据Probe Request帧是否携带SSID可以将主动扫描分为两种

      • 链路认证

        接入过程中AP需要对STA认证,802.11链路定义了两种认证机制:开放系统认证和共享密钥认证

      • 关联

        完成链路认证后,STA会继续发起链路服务协商,具体协商通过Association报文实现,协商内容包括:支持的速率、信道等。

      • 接入认证

        即对用户进行区分,并在用户访问网络之前限制其访问权限,相对于链路认证,接入认证安全性更高。主要包括:PSK认证和802.1x认证

  4. WLAN业务数据转发:WLAN网络开始转发业务数据

IPV6

  1. 优势

    特性 说明
    “无限”地址空间 地址长度为 128 bit,提供海量地址空间,满足物联网等新兴业务,便于业务演进与扩展。
    层次化的地址结构 相较于 IPv4 地址,IPv6 地址的分配更规范、聚合度更高,利于路由聚合与路由表规模收敛,加快路由查找。
    即插即用 支持无状态地址自动配置(SLAAC),终端接入更简便。
    简化的报文头部 头部字段简化、提高转发效率;通过扩展头支持新特性,有利于路由器等网络设备的转发处理并降低成本。
    安全特性 内建 IPsec,提供源端到目的端的认证与加密,避免 NAT 破坏端到端通信的完整性。
    移动性 对移动网络的通信有较大改进,提升终端漫游与移动网络的性能与体验。
    增强的 QoS 特性 新增流标签等字段,可为应用或终端分配资源,面向特定服务与数据流进行差异化保障。
  2. IPV6基本包头

    • IPV6包头由一个IPV6基本包头(必须存在)和多个扩展包头(可能不存在)组成
    • 基本包头提供报文转发的基本信息,会被转发路径上的所有设备解析
    • IPv6基本包头字段解释如下
      • Traffic Class:流类别,长度为8 bit。等同于IPv4中的ToS字段,表示IPv6数据包的类或优先级,主要应用于QoS。
      • Flow Label:流标签,长度为20 bit。IPv6中的新增字段,用于区分实时流量,不同的流标签+源地址可以唯一确定一条数据流,中间网络设备可以根据这些信息更加高效率的区分数据流。
      • Payload Length:有效载荷长度,长度为16 bit。有效载荷是指紧跟IPv6包头的数据包的其他部分(即扩展包头和上层协议数据单元)。
      • Next Header:下一个包头,长度为8 bit。该字段定义紧跟在IPv6包头后面的第一个扩展包头(如果存在)的类型,或者上层协议数据单元中的协议类型(类似于IPv4的Protocol字段)。
      • Hop Limit:跳数限制,长度为8 bit。该字段类似于IPv4中的Time to Live字段,它定义了IP数据包所能经过的最大跳数。每经过一个路由器,该数值减去1,当该字段的值为0时,数据包将被丢弃。
      • Source Address:源地址,长度为128 bit。表示发送方的地址。
      • Destination Address:目的地址,长度为128 bit。表示接收方的地址。
  3. IPV6拓展包头

    • IPV6将IPV4中的可选字段(Options)从IPv6基本包头分离放到拓展包头中,拓展包头被置于IPv6基本包头和上层协议数据单元之间。一个IPv6报文可以包含0到多个拓展包头。仅当需要路由器或目的节点做某些特殊处理时,才由发送方添加一个或多个扩展头。与IPv4不同,IPv6扩展头长度任意,不受40Byte限制,这样便于日后扩充新增选项。这一特征加上选项的处理方式使得IPv6选项能得以真正的利用。但是为了提高处理选项头和传输层协议的性能,扩展包头总是8 Byte长度的整数倍。
    • 当使用多个扩展包头时,前面包头的Next Header字段指明下一个扩展包头的类型,这样就形成了链状的包头列表。
    • 当超过一种扩展包头被用在同一个IPv6报文里时,包头必须按照下列顺序出现:
      1. 逐跳选项包头:主要用于为在传送路径上的每跳转发指定发送参数,传送路径上的每台中间节点都要读取并处理该字段。
      2. 目的选项包头:携带了一些只有目的节点才会处理的信息。
      3. 路由包头:IPv6源节点用来强制数据包经过特定的设备。
      4. 分段包头:当报文长度超过MTU(Maximum Transmission Unit,最大传输单元)时就需要将报文分段发送,而在IPv6中,分段发送使用的是分段包头。
      5. 认证包头(AH):该包头由IPsec使用,提供认证、数据完整性以及重放保护。
      6. 封装安全净载包头(ESP):该包头由IPsec使用,提供认证、数据完整性以及重放保护和IPv6数据包的保密

IPv6地址

  • IPv6地址的长度为128 bit。一般用冒号分割为8段,每一段16 bit,每一段内用十六进制表示

  • 与IPv4地址类似,IPv6也用“IPv6地址/掩码长度”的方式来表示IPv6地址

  • 例如2001:0DB8:2345:CD30:1230:4567:89AB:CDEF/64

    • IPv6地址:2001:0DB8:2345:CD30:1230:4567:89AB:CDEF
    • 子网号:2001:0DB8:2345:CD30::/64
  • IPv6缩写规范

IPv6地址分类

  1. 单播地址:标识一个接口,目的地址为单播地址的报文会被送到被标识的接口。全球单播地址(2000::/3)唯一本地地址(FC00::/7)、**链路本地地址(FE80::/10)**这三种地址,IPv6还有一些特殊单播地址的存在:

    • 未指定地址:0:0:0:0:0:0:0:0/128 或者::/128。该地址作为某些报文的源地址,比如作为重复地址检测时发送的邻居请求报文(NS)的源地址,或者DHCPv6初始化过程中客户端所发送的请求报文的源地址。
    • 环回地址:0:0:0:0:0:0:0:1/128 或者::1/128,与IPv4中的127.0.0.1作用相同,用于本地回环
  2. 组播地址:标识多个接口,目的地址为组播地址的报文会被送到被标识的所有接口。只有加入相应组播组的设备接口才会侦听发往该组播地址的报文

    • IPv6组播地址标识多个接口,一般用于“一对多”的通信场景。
    • IPv6组播地址只可以作为IPv6报文的目的地址。
    • Flags:用来表示永久或临时组播组。
      • 0000表示永久分配或众所周知;
      • 0001表示临时的
    • Scope:表示组播组的范围
      • 0:预留;
      • 1:节点本地范围;单个接口有效,仅用于Loopback通讯。
      • 2:链路本地范围;例如FF02::1。
      • 5:站点本地范围;
      • 8:组织本地范围;
      • E:全球范围;
      • F:预留。
    • Group ID:组播组ID。
    1. 被请求节点组播地址
      • 当一个节点具有了单播或任播地址,就会对应生成一个被请求节点组播地址,并且加入这个组播组。该地址主要用于邻居发现机制和地址重复检测功能
      • 被请求节点组播地址的有效范围为本地链路范围。
      • 被请求节点组播地址的前104位固定,将IP地址后24位移下来填充
        • 例如:IPv6---2001::1234:5678/64
        • 被请求节点组播地址---FF02::1:FF34:5678/104
        • 其中FF02::1:FF为固定部分,共104位
  3. 任播地址(来自单播):任播地址标识一组网络接口(通常属于不同的节点)。目标地址是任播地址的数据包将发送给其中路由意义上最近的一个网络接口。

    • 任播过程涉及一个任播报文发起方和一个或多个相应方
      • 任播报文的发起方通常为请求某一服务(例如,Web服务)的主机。
      • 任播地址与单播地址在格式上无任何差异,唯一的区别是一台设备可以给多台具有相同地址的设备发送报文。
  4. IPv4常见的单播地址

    • GUA(Global Unicast Address,全球单播地址),也被称为可聚合全球单播地址。该类地址全球唯一,用于需要有互联网访问需求的主机,相当于IPv4的公网地址。
    • ULA(Unique Local Address,唯一本地地址)是IPv6私网地址,只能够在内网中使用。该地址空间在IPv6公网中不可被路由,因此不能直接访问公网。
    • LLA(Link-Local Address,链路本地地址)是IPv6中另一种应用范围受限制的地址类型。LLA的有效范围是本地链路,前缀为FE80::/10。
  5. IPv6单播地址结构和接口标识

    • 一个IPv6单播地址可以分为如下两部分

      • 网络前缀(Network Prefix):nbit,相当于IPv4地址中的网络ID
      • 接口标识(Interface Identify):(128-n)bit,相当于IPv4地址中的主机ID。
    • 由三种方式组成:手工配置,系统自动生成,通过IEEE EUI-64规范生成

  6. 主机和路由器的IPv6地址

    一般情况下,主机和路由器的单播IPv6地址以及加入的组播地址如下所示

IPv6单播地址业务流程

一个接口在发送IPv6报文之前要经历地址配置、DAD(地址冲突检测)、地址解析这三个阶段,NDP(Neighbor Discovery Protocol,邻居发现协议)扮演了重要角色。

  1. 地址配置

    1. NDP(邻居发现协议

      无状态自动配置是IPv6的一个亮点功能,它使得IPv6主机能够非常便捷地接入到IPv6网络中,即插即用,无需手工配置繁冗的IPv6地址,无需部署应用服务器(例如DHCP服务器)为主机分发地址。

      NDP使用ICMPv6报文实现其功能

      | 机制 | RS 133 路由器请求(RS) | RA 134 路由器通(RA) | NS 135 邻居请求(NS) | NA 136 邻居通告(NA) | | --- | --- | --- | --- | --- | | 地址解析 | | | √ | √ | | 前缀公告 | √ | √ | | | | DAD | | | √ | √ | | | | | | |

    2. IPv6动态地址配置

      • 有状态地址配置:通过DHCPv6报文交互,DHCPv6服务器端自动配置IPv6地址/前缀及其他网络配置参数(DNS、NIS、NTP服务器地址等参数)。

      • 无状态地址配置:主机根据RA中的地址前缀,并结合本地生成的64 bit接口标识(例如EUI-64),生成单播地址。仅可以获得IPv6地址信息,无法获得NIS、SNTP服务器等参数,需要配合DHCPv6或者手工配置来获取其他配置信息。

      • 通过ICMPv6 RA报文中的M标记(Managed Address Configuration Flag)和O标记(Other StatefulConfiguration Flag)来控制终端自动获取地址的方式。

        • 有状态地址配置(DHCPv6 ),M=1,O=1:

        • 无状态地址配置,M=0,O=0:

          若主机还想获得其他配置信息,可以通过DHCPv6来获得除地址外的其他信息。当使用这种方式时,M=0,O=1。

      • 协议补充

        • DNS(Domain Name System,域名系统):一种将用户容易记忆的域名映射为网络设备能够识别的IPv6地址的机制。
        • NIS(Network Information System,网络信息服务):用来管理电脑网络中所有与电脑系统管理相关配置文件的系统。
        • SNTP(Simple Network Time Protocol,简单网络时钟协议):由NTP 改编而来,主要用来同步因特网中计算机的时钟。
  2. DAD(重复地址检测)

    • IPV4每次获得一个单播地址都要发送广播GARP(免费ARP),进行重复地址检测,确认无人使用后在使用次地址。

    • IPV6DAD特点:

      • IPV6所有单播地址都需要做DAD
      • 所有未经过DAD检测的地址都是试验地址(TENTATIVE),无法用于通信。
      • 作用范围:本地链路
      • 只有配置了IPV6单播地址,链路不被shutdown的才会发送DAD检测。
    • 假设R1为已在线设备,IPv6地址为2001::FFFF/64。PC上线之后,也配置了相同的IPv6地址,在正式使用这个地址之前,PC会对此地址做DAD,过程如下:

      PC向链路上以组播的方式发送一个NS报文,该NS的源IPv6地址为“::”,目的IPv6地 址为要进行DAD的2001::FFFF对应的被请求节点组播地址,也就是FF02::1:FF00:FFFF。 这个NS里包含着要做DAD的目标地址2001::FFFF。

      链路上的节点都会收到这个组播的NS报文,没有配置2001::FFFF的节点接口由于没有 加入该地址对应的被请求节点组播组,因此在收到这个NS的时候默默丢弃。而R1在 收到这个NS后,由于它的接口配置了2001::FFFF地址,因此接口会加入组播组 FF02::1:FF00:FFFF,而此刻所收到的报文又是以该地址为目的地址,因此它会解析该 报文,它发现对方进行DAD的目标地址与自己本地接口地址相同,于是立即回送一个NA报文,该报文的目的地址是FF02::1,也就是所有节点组播地址,同时在报文内写入目标地址2001::FFFF,以及自己接口的MAC地址。

      当PC收到这个NA后,它就知道2001::FFFF在链路上已经有人在用了,因此将该地址标记为Duplicate(重复的),该地址将不能用于通信。若未收到NA报文,则PC判断这个IPv6地址可以用,DAD机制有点类似于IPv4中的免费ARP检测重复地址。

  3. 地址解析

    IPv6使用ICMPv6的NS和NA报文来取代ARP在IPv4中的地址解析功能。

    假设PC想要解析R1的2001::2这个地址对应的MAC地址,详细过程如下:

    1. PC将发送一个NS报文达到这个目的。这个NS报文的源地址是2001::1,目的地址则是 2001::2对应的被请求节点组播地址。
    2. R1接收此NS报文,根据报文内的源IPv6地址和源MAC,记录下PC这个邻居,同时根据自身的IPv6和MAC,回复单播NA报文。
    3. PC收到此NA报文之后,获取其中的源IPv6地址和源MAC。这样双方都可以建立一条 关于对方的邻居信息表项。

Logo

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

更多推荐