HCIP 笔记

目录

HCIA复习

TCP/IP模型

PDU 与封装

跨层封装

IP地址

为什么要进行分层

OSI七层参考模型

控制层 --- 不对数据进行修改

数据层 --- 会对数据进行修改

网络号

TCP/IP模型

PDU

跨层封装

DHCP服务

DNS 服务

HTTP--- 超文本传输协议

TCP --- 传输控制协议

静态路由

静态路由与BFD联动

BFD ---- 双向转发检测机制

网络类型及数据链路层协议

网络类型的分类

数据链路层协议

MA网络

以太网协议 --- BMA

P2P网络

串口线

串线标准

P2P协议

HDLC --- 高级数据链路控制协议

PPP ---- 点到点协议

PPP会话的建立

PPP链路建立过程

PPP数据帧结构

LCP协议报文类型

链路建立阶段 --- LCP建立

所要协商的参数值

协商过程

认证阶段

网络层协议协商阶段---NCP协商

GRE

GRE---通用路由封装

Keepalive检测

MGRE --- 多点通用路由封装

NHRP --- 下一跳解析协议

DSVPN --- 动态智能VPN技术

NHRP映射表

NHRP映射表的建立

建立spoke和Hub之间的mgre隧道

分支之间的路由学习

建立spoke与spoke之间的MGRE隧道

shortcut方式


HCIA复习

ia学习数据传递的过程

TCP/IP模型

将OSI上三层统一为应用层 ,下两层统一为网络接口层

四层模型 ---- 标准模型

五层模型 ---- 对等模型

网际层

PDU 与封装

数据包也要进行封装 由应用层的协议进行封装

跨层封装

提高封装与解封装的速度 加快了传输效率

  • 必须是直连设备才能跨层

  • 跨四层封装 ---- 应用在直连路由设备之间

  • 跨三、四层封装--- 应用在直连交换设备之间

IP地址

<span style="background-color:#f8f8f8"><span style="color:#333333">单播地址 --- 既能作为源IP地址,又能作为目的IP地址
组播地址 --- 只能作为目的IP
广播地址 --- 只能作为目的IP</span></span>
<span style="background-color:#f8f8f8"><span style="color:#333333">A类私网 
B类私网 
C类私网  </span></span>
<span style="background-color:#f8f8f8"><span style="color:#333333">特殊IP地址 
环回地址 
受限广播地址 
主机位全1 ---- 直接广播地址 
主机位全0 --- 网络地址 
0.0.0.0 --- 所有IP、没有IP 
169.254.0.0/16 本地链路地址/自动私有地址  dhcp没给回复时使用 </span></span>

VLSM --- 可变长子网掩码

<span style="background-color:#f8f8f8"><span style="color:#333333">从主机位借位向网络位错位。借出的位被称为子网位--->子网位特点是属于网络位指可变</span></span>

CIDR --- 无类域间路由

<span style="background-color:#f8f8f8"><span style="color:#333333">超网---- 汇总后的掩码小于主类掩码
子网汇总- </span></span>

能ping通不代表其他协议也可以正常执行

网络实际执行的是OSI七层参考模型

TCP/IP 把上三层合并成一层应用层

为什么要进行分层

各个厂家推出了不同的PC运行的是不同的操作系统,TCP/IP可以允许他们之间可以互相通讯

OSI七层参考模型

控制层 --- 不对数据进行修改
  • 应用层 --- 用于接受用户数据 ,是人机交互的接口

  • 表示层 --- 逻辑语言 ->机器语言 ;

    • 格式化数据

  • 会话层 ---- 建立、管理、终止会话 ,针对于传输的每一种数据建立单独连接通道(保证数据传输的独立性)

    • 是应用之间的连接

数据层 --- 会对数据进行修改
  • 传输层 --- 定义传输数据的协议端口号,以及流控和差错校验 将上层数据进行分片 并加上端口号封装成数据段,或通过对报文头中的端口识别,实现网络中不同主机上的用户进程中间的数据通讯

    • UDP/TCP

    • 端口号的选择

      • 1 - 1023

      • 1024 - 49151 ---- 注明端口

      • 49152 - 65535 --- 动态端口

  • 网络层 --- 定义逻辑地址、实现不同网络之间的寻址,理论选择抓发数据的最佳路径,将上层的数据加上源目IP封装成数据包 ,实现数据从源端口到目的端口的传输

  • 数据链路层 ---- 建立逻辑连接、进行硬件地址寻址、查错校验等功能 将上层数据加上源目MAC地址封装成数据帧、

    • 控制物理层与网络层之间的信息交互

  • 物理层 --- 将二进制转化成电信号

    网络号

    192.168.1.0 没带掩码的叫做网络号

    数据链路层封装的以太网2协议

TCP/IP模型

将OSI上三层统一为应用层 ,将下两层统一为网络接口层

四层模型 ---- TCP/IP标准模型

五层模型 --- TCP/IP对等模型

PDU

不同的层次封装好的包称呼不同

<span style="background-color:#f8f8f8"><span style="color:#333333">应用层封装的是TCP/UDP 
网络层分装的是IP协议 进行逻辑寻址 
数据链路层封装的是以太网类型 0x0800(IP) 0x0802(ARP)类型字段,为了识别上层协议为上层协议提供服务  </span></span>

跨层封装

目的 --- 提高封装和解封装的速度,加快传输效率

跨层封装必须是直连设备 --- (不能重传)

  • 跨四层封装 ---- 应用在直连路由设备之间

  • 跨三、四层封装 --- 应用在直连交换设备之间

跨层封装原理

<span style="background-color:#f8f8f8"><span style="color:#333333">在传输数据时传输层中TCP/UDP中的端口号可以使用来标识上层应用层中的协议,好让数据传输到应用层时可以通过传输层提供的端口号准确的找到对应的应用层协议,而在跨层封装中因为可以使用网络层的协议字段可以表示上层传输层的TCP/UDP,以达到跨四层封装的目的 </span></span>

<span style="background-color:#f8f8f8"><span style="color:#333333">DSAP --- 标识接收方上层处理数据包的模块 
SSAP --- 标识发送方上层处理该数据包的模块 
Control --- 决定了数据传输的方式 
    无连接模式 
    面向连接模式  --- 分片、重组、排序  </span></span>
<span style="background-color:#f8f8f8"><span style="color:#333333">真实的数据链路层封装包含了以上的802.2协议,则可以替代TCP/UDP的重传 已经IP协议的分片操作
来跨三四层封装 </span></span>
DHCP服务
应用层DHCP -Discover
传输层基于UDP进行封装。源端口- 68 ;目标端口-67
网络层基于IP协议进行封装。 源IP-0.0.0.0 目IP-255.255.255.255
数据链路层基于以太网封装。源MAC-00:16:D3:23:68:8A;目MAC-FFFF-FFFF-FFFF
应用层DHCP-Offer(网络参数)
传输层基于UDP封装。源端口-67;目标端口-68。
网络层IP协议;源IP:68.85.2.1;目IP:68.85.2.101
数据链路层以太网协议;源MAC:00:22:6B:45:1F:1B;目MAC:00:16:D3:23:68:8A
应用层DHCP-Request----用来正式请求IP地址/通告其余DHCP服务器
传输层基于UDP进行封装。源端口-68;目标端口-67。
网络层基于IP协议进行封装。源IP-0.0.0.0;目IP-255.255.255.255
数据链路层基于以太网封装。源MAC-00:16:D3:23:68:8A;目MAC-FFFF-FFFF-FFFF
应用层DHCP-ACK
传输层基于UDP封装。源端口-67;目标端口-68。
网络层IP协议;源IP:68.85.2.1;目IP:68.85.2.101
数据链路层以太网协议;源MAC:00:22:6B:45:1F:1B;目MAC:00:16:D3:23:68:8A
DNS 服务

URL

<span style="background-color:#f8f8f8"><span style="color:#333333">UDP规定,报文最大长度为512字节,当DNS查询报文超过512字节时,协议内的TC标记位会置为1,则
使用TCP传输数据</span></span>

DNS查询过程 ---- 递归查询/迭代查询

应用层DNS请求报文
传输层UDP;源端口:随机;目端口:53
网络层IP协议;源IP:68.85.2.101;目IP:68.87.71.226
数据链路层以太网封装;源MAC:00:16:D3:23:68:8A;目MAC:00:22:6B:45:1F:1B
网络层ARP协议;源IP:68.85.2.101;目IP:68.85.2.1
数据链路层以太网封装;源MAC:00:16:D3:23:68:8A;目MAC:FFFF-FFFF-FFFF

HTTP--- 超文本传输协议

基于TCP协议

端口号80

TCP --- 传输控制协议

面向连接的可靠传输协议

  • 可靠性

    • 确认----每收到一个报文,就需要进行一次信息确认。----依靠序列号、确认序列号以及确认标记位。

    • 重传----超时重传,当一个数据段中的某一个数据报文丢失,会要求重新传输丢失的报文。----依靠序列号以及数据偏移量。

    • 排序----一个数据段被分为多个数据包,从不同路径进行传输,最终达到目的地的顺序被打乱,需要重新排组。----依据序列号字段完成。

    • 流控---滑动窗口-----通过调节窗口大小(无需等待确认就可以连续发送的数据的最大量)来对流量的流速进行控制。

    面向连接

应用层HTTP请求报文---请求方式:GET
传输层TCP;源端口:随机端口;目端口:80
网络层IP协议;源IP:PC;目IP:Web服务器
数据链路层以太网协议;源MAC:连接服务器的接口;目MAC:服务器MAC
应用层HTTP应答报文----应答状态码:200
传输层TCP;源端口:80;目端口:请求报文中的源端口
网络层IP协议;源IP:Web服务器;目IP:PC
数据链路层以太网协议;源MAC:PC的网关接口;目MAC:PC

静态路由

优点

1、安全

把路由信息给固定死,就没有了动态路由的烦恼

2、选路

根据跳数来选路,不能按照带宽情况进行选路

3、资源占用

缺点

1、配置量大

2、维护困难

静态路由基本配置

方法一:ip route-static 192.168.2.0 24 12.0.0.2

需要递归来查找路由的出接口。

方法二:ip route-static 192.168.2.0 24 GigabitEthernet 0/0/1

第二种情况会出现ARP无法正常工作的情况,因为设置了初始接口,但是路由器接受到PC的ARP请求后根据路由器转发ARP的方式会转发给下一跳,但是却没有下一跳的信息所以无法到达

<span style="background-color:#f8f8f8"><span style="color:#333333">解决办法:
    [r2-GigabitEthernet0/0/0]arp-proxy enable  ---开启ARP代理
    ARP代理思路:当接收到ARP数据包后,路由器会查看本地路由表,若本地路由表中存在目的IP地址(网络可达),此时该路由器会冒充IP地址来回答该ARP报文。
    
    
    [r1]arp static 12.0.0.1 00e0-fc07-533c</span></span>

方法三:ip route-static 192.168.2.0 24 GigabitEthernet 0/0/1 12.0.0.2

方法四:ip route-static 192.168.2.0 24 23.0.0.3

<span style="background-color:#f8f8f8"><span style="color:#333333">下两跳-->多跳
需要提前铺垫好所有在递归查找过程中需要使用到的路由信息。</span></span>

静态路由与BFD联动

BFD ---- 双向转发检测机制

是一种全网统一的检测机制,用于快速检测、监控网络中链路或者IP路由的转发联通情况。

<span style="background-color:#f8f8f8"><span style="color:#333333">[r1]bfd  ----启动BFD协议
[r1]bfd aa bind peer-ip 10.1.12.1 ---创建BFD会话,会话名称为aa,对端IP为10.1.12.1
[r1-bfd-session-aa]discriminator local 10
[r1-bfd-session-aa]discriminator remote 20
[r1-bfd-session-aa]commit
​
[r1]ip route-static 10.9.9.0 24 10.1.12.1 track bfd-session aa  ---将静态路由与BFD会话进行联动</span></span>

缺省情况下,BFD会话每隔1000毫秒发送一次报文,当连续三次报文均无响应后,则BFD会话状态断开。与该BFD会话建立连接的协议会失效

 

网络类型及数据链路层协议

网络类型是根据数据链路层所运行的协议以及规则来划分的

网络类型的分类
  • p2p ---- Point to Point --- 点到点网络

    • 有且只有两个节点

  • MA ---- Multi-access Network --- 多点接入网络

    • 可以有多个节点

      • BMA ---- 广播型多点接入网络

        • 在被网络中可以支持广播数据

      • NBMA --- 非广播型接入网络

        • 不许有广播数据 ,只有单播数据

数据链路层协议

MA网络
以太网协议 --- BMA

特点 ---- 需要使用mac地址对设备进行区分和标识

  • 使用mac地址保证传输出去的数据不会乱窜

BMA网络的构建方式:使用以太网线缆链接的以太网接口,形成的网络就是以太网网络,所运行的二层协议就是以太网协议

以太网核心技术 ---- 频分技术

P2P网络

不需要mac地址进行通讯

p2p网络定义---- 当一个网络中只能存在两天设备,且不允许第三台设备加入

点到点网络的搭建:使用串口线缆链接设备的穿线接口,形成的网络

串口线
  • HDMI

  • VGA

  • console

串线标准
  • E1标准 ---- 2.048Mbps --- 欧洲标准

  • T1标准 --- 1.544 Mbps ----北美标准

P2P协议
HDLC --- 高级数据链路控制协议

满足工业标准的HDLC协议

<span style="background-color:#f8f8f8"><span style="color:#333333">isp跟根据SDLC(面向比特的同步数据链路控制协议)改进而来的HDLC
同步 ---- 以帧为单位来传输数据 
异步 ---- 以字节为单位传输数据 </span></span>

非标的HDLC

上述两种协议互相不兼容,思科设备默认HDLC

PPP ---- 点到点协议

优点

  • 兼容性

  • 可移植性

  • 速率快,因为PPP协议没有重传机制 (针对数据)

PPP会话的建立
  • 链路建立阶段 ---- LCP

  • 认证阶段 ---PPP认证(AAA)

  • 网络层协议协商阶段 --- NCP协商

PPP链路建立过程

  • Dead --- 物理层不可用阶段

  • Establish阶段 --- 会进行LCP参数协商

  • Authenticate --- 认证阶段

    • 该阶段不是必选项

      • PPP认证

      • chap认证

  • Network ---- NCP协商

  • Terminate阶段 --- 该阶段在尽显资源释放,若所有资源均被完全释放,则回到dead阶段

PPP数据帧结构

参数解释

<span style="background-color:#f8f8f8"><span style="color:#333333">两头的F标识了PPP数据帧,通过把信息部分的F转义来保证信息部分中一定不会出现F</span></span>

<span style="background-color:#f8f8f8"><span style="color:#333333">LCP协议----链路控制协议----完成PPP会话建立第一阶段的协商
NCP协议----网络控制协议----一系列协议的总称,完成PPP会话建立第三阶段时针对网络层协议进行协商。若网络层使用IP协议,则对应使用NCP协议中的IPCP(互联网协议控制协议)协议协商</span></span>

LCP协议报文类型
  • 链路配置报文

  • 链路终止报文

    • Terminater-Request

    • Terminater-ack

  • 链路维护报文 ---- 解决自成环的问题

    • Echo-Request --- 回波请求

    • Echo-Reply --- 回波应答

      • 用于检测链路有没有成环

链路建立阶段 --- LCP建立
所要协商的参数值
<span style="background-color:#f8f8f8"><span style="color:#333333">1.MRU值 
    PPP数据帧所允许携带的最大数据单元,单位字节 默认1500,在MA链路中由IP协议中的可选项协商MTU,在PPP链路中直接在LCP建立时协商MRU,所以就不需要在IP头部中再次协商 
2.认证 
    协商PPP会话建立第二阶段是否需要进行认证,已经何种认证方式
3.魔术字
    用于检测链路中是否存在环路
    两边协商时会随机生成一个随机数 如果两边一致就会发送nak,如果连续三次自己收到re报文则建立不成功</span></span>
协商过程
<span style="background-color:#f8f8f8"><span style="color:#333333">A设备发送链路配置请求报文给对端,若没有收到对端的回复的任何一个链路配置报文,则每3s重传,连续10次就认为对端不可用停止发送</span></span>
<span style="background-color:#f8f8f8"><span style="color:#333333">如果对端不认可某些参数的数值回复的是NAK报文,该报文中将携带不认可的参数以及这个参数的数值范围,本端收到后根据内容重新发送链路配置请求</span></span>
<span style="background-color:#f8f8f8"><span style="color:#333333">如果对端不认可某种参数,则回复Reject报文,该报文携带不认可的参数,本端收到该报文后,删除该参数,重新发送链路配置请求</span></span>
认证阶段

PPP会话的建立是一次性会话,会话建立完成后,后续的修改不会影响到会话本身

PPP本身不具备认证等功能,是通过调用AAA框架来完成的

该认证可以是单向或者是双向的。 ---- 一般实际应用汇总采用单向认证

  • PAP --- 密码验证协议

    • PAP是将需要认证的用户名和密码以明文的形式携带在数据报文中,发送给对端进行认证

被认证方:R1

[r1-Serial4/0/0]ppp pap local-user huawei password cipher 123456 ----配置用户名和密码信息

认证方:R2

[r2-aaa]local-user huawei password cipher 123456 ----创建用户名和密码信息

[r2-aaa]local-user huawei service-type ppp ----修改服务类型

[r2-Serial4/0/0]ppp authentication-mode pap ----修改接口的认证方式

  • CHAP --- 挑战握手协议

认证双方通过对比摘要值的方式进行认证。

<span style="background-color:#f8f8f8"><span style="color:#333333">认证过程:
    1、认证方先发送挑战报文,里面包含了认证方的用户名和一个随机值
    2、被认证方收到该报文后,需要根据用户名信息查找对应密码,然后将密码信息与随机值一起做HASH运算得到摘要值,然后将该摘要值+用户名发送给认证方
    3、认证方收到后,根据用户名信息查找本地密码信息,使用相同HASH算法进行计算,得出摘要值,将两个摘要值进行对比,若相同,则回复ACK报文;若不同,则回复NAK报文。
    
    
    HASH----散列函数-----将任意长度的输入转换为固定长度的输出。
    特点:
    1、相同输入,相同输出。
    2、不可逆性。
    3、雪崩效应或者蝴蝶效应
    
    典型的HASH算法--->MD5(将任意长度转换为128位输出)</span></span>

配置

认证方

[r1-aaa]local-user admin password cipher 654321 [r1-aaa]local-user admin service-type ppp

[r1-Serial4/0/0]ppp authentication-mode chap

被认证方

[r2-Serial4/0/0]ppp chap user admin [r2-Serial4/0/0]ppp chap password cipher 654321

一条PPP链路的两端可以使用不同的认证协议认证对端,但是被认证方必须支持认证方要求使用的认证协议并且正确配置用户名和密码信息

网络层协议协商阶段---NCP协商

如果网络层使用的是IP协议,则需要使用IPCP协议进行协商。

  • 协商内容

    • IP报文的压缩方式

    • IP地址-----1,协商IP地址是否为可用IP地址;2,该IP地址是否与本地冲突。

  • 协商过程

    • 静态地址协商

      • 如果IP地址是一个合法的单播IP地址,而且和本地配置的IP地址不同,则认为对端可以使用该地址。

      • 一旦认可了对方的IP地址,则将会自动学习到达该地址的主机路由

    • 动态地址协商

配置方

[r2-Serial4/0/0]remote address 1.1.1.1

获取方

[r1-Serial4/0/0]ip address ppp-negotiate

GRE

VPN --- 虚拟专用网络:是指依靠ISP或者其他NSP在公用网络基础设施上构建的专用的安全数据通讯网络,只不过这个专线网络是逻辑上的而非物理的

  • 虚拟 --- 使用公共网络资源建立自己的私有网络

  • 专用 --- 用户按需求构建

  • 核心技术 --- 隧道技术

GRE---通用路由封装

隧道技术----在隧道的两端,通过封装及解封装技术在公网上建立一条数据通道,使用这条数据通道进行数据传输。

GRE----是一种隧道封装技术,是一种标准的三层隧道技术,是一种点对点的隧道

希望的流量走向

| SIP:192.168.1.1 | DIP:192.168.2.1 | 数据 | | ---------------- | ---------------- | ---- |

真实的流量走向

| SIP:12.0.0.1 | DIP:23.0.0.3 | 数据 | | ------------- | ------------- | ---- |

GRE粘合后的数据:

| SIP:12.0.0.1 | DIP:23.0.0.3 | GRE SIP:192.168.1.1 | GRE DIP:192.168.2.1 | 数据 | | ------------- | ------------- | -------------------- | -------------------- | ---- |

配置

<span style="background-color:#f8f8f8"><span style="color:#333333">[r1]interface Tunnel 0/0/0   ----创建隧道接口
[r1-Tunnel0/0/0]ip address 192.168.3.1 24
[r1-Tunnel0/0/0]tunnel-protocol gre    ----定义封装方式
[r1-Tunnel0/0/0]source 12.0.0.1  ----定义封装内容
[r1-Tunnel0/0/0]destination 23.0.0.3
[r1]ip route-static 192.168.2.0 24 192.168.3.2   ---补充路由信息</span></span>

GRE两端配置完成后,必须存在指向隧道的路由信息,否则数据无法被GRE进行封装,也就无法正常通讯

<span style="background-color:#f8f8f8"><span style="color:#333333">乘客协议 包含的是源IP以及数据 
封装协议/运载协议 包含的是GRE内容 
传输协议中 传输的是新IP 其中的协议字段 47 </span></span>

GRE封装和解封装过程

  1. 设备从连接私网的接口接收到报文后,检查报文头部中目的IP地址字段,在路由表中查找出接口,如果发现出接口是隧道接口,则将报文发送给隧道模块进行处理。

  2. 隧道模块接收报文后,首先根据乘客协议的类型和当前GRE隧道的配置生成校验和参数,对报文进行GRE封装,即添加GRE头部信息。

  3. 然后,设备给报文添加传输协议报文头部,即IP头部。该IP报文头部的源地址就是隧道的源地址,目的地址就是隧道的目的地址。

  4. 最后,设备根据新添加的IP报文头部的目的地址,在路由表中查找相应的出接口,并发送报文,之后,封装后的报文将在公网环境下进行数据传输。

  5. 接收端设备从连接公网的接口收到报文后,首先会分析IP头部信息,如果发现协议类型字段值为47,则表示该上层协议为GRE协议,于是将报文交给GRE模块进行处理。

    1. GRE模块去掉IP报文头部和GRE报文头部,并根据GRE报文头部中的协议类型字段,确定将该报文交于那个乘客协议进行处理。

Keepalive检测

用于检测隧道对端是否可达。

  • 如果对端不可达,隧道连接会及时关闭,避免形成数据空洞。

  • 开启keepalive检测后,GRE隧道会定期向对端发送keepalive探测报文。

[r1-Tunnel0/0/0]keepalive ---开启keepalive检测功能

[r1-Tunnel0/0/0]keepalive period 5 retry-times 3

period--->代表发送周期

retry-times---->探测报文重传次数

如果在隧道一端开启了keepalive检测功能,无论对端是否配置keepalive,对端都会回复接收到的keepalive探测报文,即会向源发送一个回应报文

MGRE --- 多点通用路由封装

NHRP --- 下一跳解析协议

在私网中选择一个出口IP不会发生改变的设备作为NHRP的中心节点(NHS)。这样剩下的分支就都可以知道中心节点的隧道IP地址和物理IP地址

然后,NHRP要求所以分支将自己的物理接口和虚拟接口IP地址的映射关系发送给NHS,此时所有的分支的地址的映射关系都会记载到NHRP表中,查表转发

Hub - Spoke架构

  • Hub就是服务端 --- 中心节点

    • 中心节点IP一般不会改变

  • Spoken 客户端 --- 中心分支

    • 分支会把虚拟IP与真实IP的对应关系发送给中心节点

MGRE逻辑拓补是网络中存在多个节点,但是在本身在发送数据时,还是依照点到点的数据发送,并不存在广播和组播的行为,所以可以近似看成NBMA ,本质是P2P网络

DSVPN --- 动态智能VPN技术

MGRE隧道

  • 静态隧道

    • Spoken到Hub

    • 永远存在

  • 动态隧道

    • 一般指spoke到spoke之间的隧道

    • 如果没在使用就删除

NHRP映射表

  • 静态表项

    • 由手工配置产生

  • 动态表项

    • 由NHRP协议生成

      • Hub节点通过NHRP注册报文提取到各个sopke的Tunnel地址和公网地址生成的

      • 各个spoke通过NHRP解析报文提取对端spoke的Tunnel地址和公网地址生成NHRP映射

    • 老化时间 --- 7200s

NHRP映射表的建立
建立spoke和Hub之间的mgre隧道
  1. spoke项hub注册请求

    • spoke将定时向hub发送NHRP注册请求报文,该报文中携带了spoke节点的Tunnel地址和公网地址

  2. hub向spoke注册应答

    • hub从NHRP注册请求报文中提取spoke节点的tunnel地址和公网地址,并生成NHRP映射表,进而建立hub与spoke之间的隧道。

    • 并发送注册应答报文给spoke节点。

分支之间的路由学习
  • 分支之间互相学习路由信息 ----非shortcut

  • 分支的路由汇总到总部 ---- shortcut

建立spoke与spoke之间的MGRE隧道

spoke与spoke之间学习到的信息不会再mgre构成时获取 只会在需要有数据包通讯时才会存在

根据分支之间的路由学习方式不同,NHRP映射表的生成过程也不同,所以分支之间的MGRE隧道的建立方式不同

  • 非shortcut方式

    • 源spoke可以学习到目的spoke的tunnel地址,因此,源spoke可以直接根据目的spoke的tunnel地址来查找目的spoke的公网地址,从而生成目的spoke的映射关系。

  • shortcut方式

    • 所有spoke的路由下一跳均为hub的tunnel地址,源spoke无法学习到目的spoke的tunnel地址。因此,源spoke只能根据报文的目的地址来查找spoke的公网地址,会生成目的spoke的子网地址和公网地址的NHRP映射关系

    shortcut方式
shortcut方式配置
hub
[r1-Tunnel0/0/0]nhrp redirect   ----开启重定向功能。开启该功能后,会给源分支发送NHRP重定向报文,要求源分支向目的分支请求物理地址。从而构造NHRP映射关系。
​
​
spoke
[r2-Tunnel0/0/0]nhrp shortcut   ----使能shortcut功能;如果为使能该功能,则分支节点在接收到重定向报文后,会忽略其内容。</span></span>

MGRE环境下的RIP网络

因为RIP是以组播发送应答报文,而MGRE环境下是P2P通讯,实际上发送的是单播报文。因为是单播行为,分支会发送给中心;而中心不会发送报文,因为中心的NHRP映射表存在多种关系,不知道该给谁发送报文数据。
    这就会导致所有分支均使用单播的方式给中心发送信息,中心学习到所有路由信息,但分支一条路由都学习不到。
中心:
[r1-Tunnel0/0/0]nhrp entry multicast dynamic   ---开启伪广播功能
    通过给所有分支分别发送一次单播数据包,以达到广播行为。
    
    分支在中心开启为广播功能后,只能获取到中心的路由信息,但是无法获取到分支之间的路由信息。因为华为设备默认开启RIP的水平分割机制,导致中心不会从隧道接口将学来的分支路由发送给其他分支。
[r1-Tunnel0/0/0]undo rip split-horizon ---关闭水平分割机制---shortcut
​
[r1-Tunnel0/0/0]rip summary-address 192.168.0.0 255.255.248.0  ---汇总方式解决--shortcut


 

OSPF

OSPF基础内容

  • 选路

  • 占用资源

  • 收敛速度

    • OSPF的收敛被称为LSA洪泛,也被叫做LSDB同步

开放式最短路径优先协议

  • 使用范围 --- IGP

  • 算法类型 --- 链路状态型协议

  • 使用算法 --- SPF算法 ---- 最短路径优先算法

<span style="background-color:#f8f8f8"><span style="color:#333333">OSPFv2与RIPv2对比 
相同点:
1.都是无类别路由协议 
2.均采用组播方式更新数据
3.均支持等开销负载均衡 
​
不同点:
RIPv2仅适用于小型网络 ;OSPFv2可以应用在大中型网络中 </span></span>

OSPF区域划分 --- 结构化部署

为了适应大中型网络

OSPF域 --- 将一系列连续的OSPF路由器组成的网络称为OSPF域

如果一台路由器的多个接口分别接入了不同的区域,则它将会为每个区域分别维护一个LSDB

多区域的设计限制了TOPO信息的洪泛,有效的将拓补变化的影响控制到拓补内

要求:

  1. OSPF要求所有非骨干区域都必须与Area0 相连

  2. 骨干区域不能被分割

OSPF区域结构部署规则的必要性
ABR设备(区域边界路由器)
  • 至少连接两个以上的区域

  • 连接的区域中至少有一个是区域0(骨干区域)

  • 在骨干区域中至少存在一个活跃的邻居

作用:将A区域的拓补转换为路由后,发送到B区域中 ---- 传递域间路由信息

非骨干之间不允许直接相互发布区域间路由信息

从非骨干区域收到的路由信息,ABR设备能接收该路由但不会使用这条路由信息(OSPF的区域水平分割原则) --- 从一个区域接收到的路由信息,不能再传回到该区域

总结
<span style="background-color:#f8f8f8"><span style="color:#333333">OSPF规定:
1、伪ABR设备---不允许转发区域间路由信息
2、真实ABR设备
    能够将自己直连的非骨干区域的区域内路由信息传递给骨干区域
    能够将自己直连的骨干区域的的区域内路由信息传递给非骨干区域
    能够将自己从骨干区域学习到的域间路由信息传递给非骨干区域</span></span>

OSPF路由器角色

  • 内部路由器 --- IR

    • 所有接口都属于同一个OSPF区域

  • 区域边界路由器 --- ABR

  • 骨干路由器 --- BR

    • 接入Area0的路由器

  • AS边界路由器 --- ASBR

    • 工作在OSPF自治系统边界的路由器

    • 负责将域外的路由信息引入到本域内

    • 并不是同时运行了多种协议的OSPF路由器就一定是ASBR,ASBR一定是将外部路由重发布到OSPF或者是执行了路由重分发操作的路由器

OSPF数据包

  • hello包

    • 用来发现建立OSPF邻居关系 周期保活 224.0.0.5 10s 40s

    • RID --- 全域唯一

      • 配置方式

        • 手工配置

        • 自动配置

      • <span style="background-color:#f8f8f8">    在启动OSPF进程前,必须有接口IP地址。若有IP地址,则在第一次启动OSPF进程时,会选取第一个配置的IP地址作为RID值。
            在思科设备中,若没有IP地址,则OSPF启动失败。
        在华为设备中,若没有IP地址,则OSPF启动后,RID为0.0.0.0
            
            华为标准:状态最先UP的接口的IP地址作为RID
            RFC标准:
                1、取loopback接口IP地址中最大的作为RID
                2、取物理接口IP地址最大的作为RID。</span>

  • DBD包

    • 数据库描述报文

    • 报文中携带的是路径信息摘要

    • 避免重复更新

  • LSR包

    • 链路状态请求报文

    • 请求获取未知的链路信息

  • LSU包

    • 链路状态更新报文

    • 携带真实的LSA信息的数据包

  • LSAck包

    • 链路状态确认报文 --- 可靠性机制

      • 确认的是LSA信息的数据包

OSPF状态机

  • down---关闭----一旦启动OSPF进入下一个状态,并发送hello报文

  • init---初始化状态---收到的hello报文中存在自身的RID值,则进入下一个状态

  • 2-way---双向通讯----邻居关系建立的标志。---稳定态。

条件匹配:匹配成功进入下一个阶段,匹配失败则停留在2-way状态,保持邻居关系,仅使用hello报文保活。

  • exstart---预启动---使用未携带LSA摘要信息的DBD报文进行主从关系选举,选举规则是RID值越大越优。

  • exchange---准交换----使用携带LSA摘要信息的DBD报文进行链路数据库共享。

  • loading---加载状态---邻居之间使用LSR/LSU/LSAck报文来获取完整的LSA信息。

  • full----转发状态----拓扑交换完成后进入该状态,标志着邻接关系的建立。---稳定态。

条件匹配

选举规则:

  • 比较接口优先级,0-255;默认值为1。越大越优。

  • 比较RID值,越大越优。

非抢占模式----一旦选举成功,不因为新加入的设备而重新选举

选举过程:

<span style="background-color:#f8f8f8"><span style="color:#333333">1、DR、BDR的选举是通过hello报文来实现,选举过程发生在2-way状态之后。
2、路由器将自己接口的DR优先级填写到hello报文中。
3、华为DR修改方式:在接口视图下,ospf dr-priority 
4、DR优先级为0的接口不具备DR和BDR的选举资格。
5、当接口激活OSPF后,首先检查接口连接网络上是否存在DR,如果存在,则接收已存在的DR设备(因为非抢占性),否则拥有最高DR优先级的设备接口将成为DR,当优先级相同,则拥由最大RID的路由器接口将成为DR。
6、BDR的选举过程与DR相同,但是在DR选举之后进行。</span></span>

OSPF工作过程

  • 启动配置后 ,OSPF将向本地所有运行OSPF协议的接口以组播的224.0.0.5的方式发送hello报文 (RID,接口优先级),此时路由器的状态进入到init

  • 当路由器收到的hello报文中存在本地的RID值(hello包中的邻居字段),会建立邻居关系 --- 生成邻居表

  • 进入2-way状态,在2-way状态执行条件匹配操作,若选举成功(有一个是DR/BDR),则进入邻接关系建立过程,若选举失败则停留在2-way状态,仅使用hello报文保活

  • 建立邻接关系

    • 使用没携带摘要信息的DBD报文进行主从关系选举,RID值最大的为主,主设备会先进入到下一个状态

    • 之后,从设备先发送携带摘要信息的DBD报文进行LSA目录信息恭喜

    • 主设备通过对比收到的DBD报文中的摘要信息与本地的LSDB数据库,从而查找文职的LSA

      • 通过发送LSR报文/LSU/LSAck报文来获取完整的位置LSA信息

      • 当所有位置LSA信息均获取成功后,填充完整的本地LSDB

    • 当网络中的所有设备获取到相同且完整的LSDB后,每台设备基于LSDB根据SPF算法生成有向图和最短路径树,之后根据计算结果获知网络中所有位置网段的最短路径,然后将其添加到本地OSPF路由

  • 根据本地所有路由表信息,从而选择最优路由加载如全局路由表

  • 此时,网络收敛完成,仅进行Hello包周期保活。且没30min进行一次周期链路状态刷新 ,此时第一次收敛完成

OSPF报文格式

OSPF报文头部

固定长度 --- 24字节

  • 路由器ID --- 路由器的OSPF协议中的RID值

  • 区域ID--- 发出该报文的接口所属于的区域的ID值

  • 认证类型

    • 不认证

    • 明文

    • MD5

  • 认证数据

    • 用于报文认证的内容

    • 如果认证类型为不认证,则该字段用全0填充

Hello包

所有关系的建立都是在进行参数协商

  • 网络掩码 (Network Mask)

    • 填充掩码信息

    • 提前检测掩码防止一边的路由不可达 ---华为私有

      • 如果是MA则需要 P2P不需要

    • 如果在一方在接口上接受的Hello报文中的掩码字段与本接口不同,则邻居关系无法成立

  • Hello间隔

    • 接口发送hello报文的时间间隔 --- 秒

      • 如果两端的周期不同导致邻居震荡

        • <span style="background-color:#f8f8f8">邻居震荡指因为双方的Hello包发送周期不统一 导致一方会处于dowm状态,此时另一台路由器就会频繁的发送Hello报文来进行邻居建立,同步数据库LSDB,触发路由计算,会造成大量报文交互,影响现在的邻居的稳定性
          ​
          OSPF实现了邻居震荡抑制的功能 即在邻居频繁震荡时实现邻居延迟建立 </span>
    • 两台设备需要帮助Hello时间间隔相同,否则邻居无法正常建立

  • 可选项

    • 该字段具有八个标记位 每一个标记位置为1 ,则表示OSPF实现某种特性

    • 特殊区域标记

      • 用来表示STUB NSSA 等特殊区域

  • 路由优先级

    • 不需要进行协商

  • 路由器失效时间

    • 指的是邻居路由器被视为无效之前,需等待收到对方Hello报文的时间 --- s

    • 失效时间可以直接修改

    • 两台设备的该参数若不同,则邻居关系无法建立

  • 指定路由器

  • 备份指定路由器

    • 接口概念 填写接口IP

所有224.0.0.X格式的组播地址被称为本地链路组播,目标IP地址是本地链路组播的IP地址

且TTL值为1,所有的本地链路组播都存在与其对应的组播MAC地址 ,01-00-5e-0 后23为为组播IP地址的后23位

DBD包

  • 使用未携带数据的DBD进行主从选举

  • 使用携带数据的DBD进行LSA摘要信息共享

  • 使用未携带数据的DBD进行隐形确认机制

  • 接口最大传输单元 ---MTU

    • 默认情况下,该字段值为0

      • 用来进行MTU检测

      • 华为默认不开启,可以开启

        • 两端都需要开启

          • [r1-GigabitEthernet0/0/0]ospf mtu-enable ---开启MTU检测机制,两端都需要开启。

        • 如果双方都开启就开始检测,若不同就把状态卡在exstart状态 ---- 影响邻接关系的建立

  • I --- 主从关系选举

  • M---- 代表后面还存在DD报文

  • MS --- 代表是否为主设备

  • DD序列号

    • DD报文的序列号,在DD报文交互过程汇总,序列号逐次加一,用于确保DD报文的有序和可靠性

    • DD序列号必须由Master路由器来决定,从而路由器只能使用Master路由器发送的DD序列号来发送自己的DD报文 --- 隐性确认机制

    • DD报文的交互过程会一直持续,直到双方的LSA摘要信息全部发送完成 ---- 本地的LSDB接收完成

LSR

LSR包

LSU

LSAck

显性确认机制

OSPF协议在不同网络类型下的不同工作方式
接口网络类型OSPF接口网络类型(OSPF工作方式)
LoopBackCisco – LoopBack 没有hello包 以32位主机路由发送 华为—显示为p2p类型 实际为LoopBack工作方式
点到点 (串线HDLC/PPP/GRE)p2p --- hello time 10s 自动建邻
BMABroadcast hello time 10s 自动建邻 进行DR选举
NBMAnbma hello time 30s 手工建立邻居 选DR
MGREp2p. hello time10s 自动建邻 不选DR/BDR –在一个网段中只能存在一个邻居;华为设备在一个MGRE网段,接口为点到点工作方式时,仅和最先收到hello的设备建立邻居关系;Cisco在这种情况将出现邻居的翻滚;

广播型多路访问类型 --- BMA

网络类型OSPF接口的网络类型(工作方式)
BMABroadcast;可以建立多个邻居关系;需要进行DR和BDR的选举;hello时间10S;dead时间40S
P2PP2P,只能建立一个邻居。不需要进行DR和BDR的选举;hello时间10S;dead时间40S
环回接口P2P,华为设备定位P2P;该接口实际上没有真实数据的收发,也就意味着不需要进行DR/BDR选举,也不存在邻居关系。hello时间10S;dead时间40S;环回接口默认学习32位主机路由。
P2MP,可以建立多个邻居关系,不需要进行DR和BDR的选举;hello时间30S;dead时间120S;会学习邻居接口的主机路由。
NBMANBMA,可以建立多个邻居关系,需要进行DR和BDR的选举;hello时间30S;dead时间120S;无法自动建立邻居关系。
Vlink;以单播形式发送hello报文。不需要进行DR和BDR的选举;hello时间10S;dead时间40S

广播型多路访问类型 --- BMA

<span style="background-color:#f8f8f8"><span style="color:#333333">[r3]display ospf interface GigabitEthernet 0/0/0  ---查看OSPF接口网络类型</span></span>

OSPF在BMA类型的接口上通常以组播的方式发送hello报文、LSU报文以及LSAck报文。以单播的形式发送DD报文和LSR报文。

点到点类型 P2P

OSPF在类型为P2P的接口上以组播的方式发送所有的OSPF数据报文

  • 开销值 =48

    • 那参考带宽 / 2.048(E1)

    • T1 =1.544 E1 = 2.048

环回接口(虚拟接口)

  • 华为特殊将环回接口的开销值定义为0

  • Type中的参数是由P2P进行填充,华为没有为该字段定位内容

  • 所有通过OSPF学习到的环回接口的路由掩码信息都是32位,也就是每台设备学习到的掩码信息都是主机路由,该方式可以保证路由信息的精准性的前提下,避免环路或者黑洞问题

等待计时器

在DR和BDR选举时,会启动一个waiting计时器,该计时器的时间与dead时间相同,当计时器时间超时后,该接口会认为自己就是DR设备 进入Exstart状态,但是因为无法选择出主从就停留在Exstart状态,在经过一定时间后会退回到2-way状态

华为将tunnel接口的传输速率定为64Kbps

为什么要所有Tunnel接口要修改网络类型为BMA
为什么要让R8R9放弃选举

P2MP 点到多点类型

只能由网络管理员手工修改设置

在P2MP网络中,接口通常以组播的方式发送Hello报文,以单播的方式发送其余报文

非广播型多路访问类型 NBMA

只能由网络管理员手工修改设置

在P2MP网络中,接口通常以组播的方式发送hello报文,以单播的方式发送其余报文

非广播型多路访问类型(NBMA)

在NBMA网络中,邻居双方均需要手工指定自己的邻居,从而才可以发送出OSPF报文信息。在该接口网络类型下,所有的OSPF报文以单播的形式发送数据。

OSPF的不规则区域划分

  1. 所有非骨干都必须与骨干直接相连

  2. 骨干区域不能被分割

不规则区域主要由两种情况:

  • 远离骨干的非骨干区域

  • 不连续骨干区域

解决不规则区域的最佳方式----重新规划OSPF配置和内容,使得整个OSPF域满足区域划分的规则

解决方案

使用tunnel隧道

使用该方式解决不规则区域的问题。

  1. 可能产生选路不佳。

    • 开销值的问题

  2. 可能造成重复更新。

  3. 因为存在虚拟链路,R2和R3之间也需要建立邻居关系。导致他们之间维护的周期性数据将穿越中间区域,导致中间区域的资源消耗增加。

虚链路---Vlink

专门为了解决OSPF不规则区域所诞生的技术。

思路:让真实的ABR设备给伪ABR设备进行一次担保,给予伪ABR设备传递路由的功能,或者说给予一个ABR设备的权限。

配置:

<span style="background-color:#f8f8f8"><span style="color:#333333">[r2-ospf-1-area-0.0.0.1]vlink-peer 3.3.3.3  ----建立Vlink邻居,该参数为邻居的RID值
[r3-ospf-1-area-0.0.0.1]vlink-peer 2.2.2.2</span></span>

配置位置在于设备需要穿越的区域虚链路的只能穿越一个区域。---原因在与配置的时候使用的是RID值,而RID值只能在同一个区域找到,设备无法跨越区域找到RID所对应的设备。

[r2]display ospf vlink ---查看vlink邻居关系

Vlink被视为是骨干区域的一段延伸(Vlink永远属于Area 0)

缺陷:

  1. 只能穿越一个区域

  2. Vlink之间需要建立邻居,故会消耗穿越区域中的链路资源。

实际上,Vlink更多应用在一些修复次优路径或者骨干区域不健壮问题上

骨干链路单点故障问题

Vlink环路问题

解决思路:OSPF规定,Vlink所在的费骨干区域,不能传递汇总路由。也就是说,ABR设备不能向配置了vlink链路的区域传递汇总路由。

多进程双向重发布
<span style="background-color:#f8f8f8"><span style="color:#333333">[r3-ospf-1]import-route ospf 2 
[r3-ospf-2]import-route ospf 1</span></span>

此时R3被称为ASBR,因为其运行在不同的网络中,且执行了重发布操作。

重发布就是在运行了不同协议或不同进程的边界设备上,将一种协议按照另一种协议的规则发布出去

重发布操作在引入路由信息时,会清除掉该路由信息原本的度量值,但是在引入时,该参数不能没有,故会赋予路由信息一个种子度量值

OSPF对于域外路由信息的标识为O_ASE;优先级为150。

OSPF的LSA详解

LSA头部

  • 链路状态老化时间

    • 一条LSA的老化时间 ,16bit整数。

      • 当该LSA被始发路由器产生时,该参数有效,且数值为0。之后随着该LSA在网络中被洪泛,老化时间逐渐累加

      • 一般情况下,老化时间不会超过1800S ,该参数存在最大老化时间 --3600s --- 当一条LSA的老化时间达到最大老化时间时,将会被认定失败从本地的LSDB删除

        • 撤销(还能用)/删除(不能用) --- 只有始发路由器能撤销LSA,即有意识的清除该LSA信息

        • 30min周期链路刷新

        • 解决老化时间不同步

          • 组步调计时器

            • 让LSA的老化时间在1800s时等240s再一起打包

              • 顺便也能区分出主发和接收

  • 可选项 --- 与Hello报文相同

  • 链路状态类型 ---- 本条LSA的类型,不同的LSA类型在描述不同的OSPF信息

  • 链路状态ID ---LSA的标识 。不同的LSA类型,该字段内容含义不同

  • 通告路由器 ---- 产生本条LSA的路由器的RID

  • 链路状态序列号 --- 标识一条LSA的新旧

    • 每台路由器在发送相同的LSA信息时,逐次加1,越大越新

      • 8位16进制

    • 序列号起始为0x80000001

    • 序列号截止为0x7FFFFFFFF

  • 链路状态校验和

    • 参与到LSA的新旧关系比较关系中

  • 长度 --- LSA总长度

判断LSA的新旧关系

OSPF使用链路状态序列号,校验和以及老化时间来判断LSA的新旧关系

  1. 拥有较高链路状态序列号的LSA被认为是最新的LSA信息

  2. 如果序列号相同,则比较校验和,拥有较大的校验和被认为更新

  3. 如果校验和与序列号相同,则比较老化时间

    1. 如果某条LSA的老化时间为3600S,则比较两条LSA老化时间的差值

    2. 如果没有任何一条LSA老化时间为3600S,则比较两条LSA老化时间的差值

      1. 如果差值大于15min,则认为老化时间小的LSA为更新

      2. 如果差值小于15min,则认为这两条LSA相同

LSA类型

类型LS ID通告者作用范围携带信息
Type-1 LSA(Router)通告者的RID区域内所有运行了OSPF协议的路由器的RID单区域本地接口的直连拓扑信息
Type-2 LSA(Network)DR的接口IP地址单个MA网络中DR所在的路由器的RID单区域单个MA网络拓扑信息的补充信息
Type-3 LSA(Summary)路由信息的目标网络号ABR,在通过下一个ABR设备时会被修改为新的ABR设备的RID值ABR相邻的单区域域间路由信息
Type-5 LSA(ase)域外路由的目标网络号ASBR的RID整个OSPF网络域外路由信息
Type-4 LSA(asbr)ASBR的RID与ASBR同区域的ABR设备,在通过下一个ABR设备时会被修改为新的ABR设备的RID值除去ASBR所在区域的单区域ASBR的位置信息
Type-7 LSA(NSSA)域外路由的目标网络号ASBR,当离开NSSA区域后转换为5类NSSA区域域外路由信息

Type -1 LSA ----Router

LSA的Type名称为Router的LSA是一类LSA信息,每台路由器的所有属于相同区域的接口共用一个一类LSA信息,如果连接到多区域则会在多个区域单独产生一条一类LSA信息

  • V --- 代表该路由器是vlink链路的端点

  • E --- 代表该路由器为ASBR设备

  • B --- 该路由器为ABR设备

    • 启动Vlink也可以为ABR

  • 链路数量 ----该字段指明该一类LSA包含了多少条Link,每条Link均包含链路ID、链路数据、度量值(开销值)等信息

  • 链路类型 ---该类型不是所谓的网络类型

    • 链路类型不同,导致链路ID和链路数据内容不同

Type -2 LSA ---Network

DR会在本区域内洪泛Type-2 LSA信息,来列举出接入该MA网络中的所有路由器的RID信息,以及这个网络的掩码信息,2类LSA有且只有本区域的DR设备可以发送

Type - 3LSA

Type-3LSA中的开销值,指的是该LSA的通告者到达目的地的开销值。而接受这对于该路由信息在加入到路由表时的开销值等于LSA中的开销值加上本地到达该LSA通告者的开销值之和

3类LSA传递路由信息的方式类似于距离矢量型协议的方式,通告者就是到达目标网段的下一跳。所以,接收者在收到三类LSA后,需要根据1类和2类LSA信息计算拓扑信息从而来寻找三类LSA的通告者。如果可以找到则本条3类LSA可用,如果递归不到,则忽略该3类LSA信息

如果,通告者是所在区域的ABR设备,那么自然可以寻找到三类LSA的通告者,从而该路由可用。但当LSA信息跨区域传输时,接收者就无法递归到始发该3类LSA的通告者,因为不在同一个区域内部,无法使用1、2类LSA递归。故3类LSA在传输时,若需要跨越区域,则由每个区域的ABR重新构造一个新的描述相同目标网段的3类LSA信息发送。

Type -5 LSA

由ASBR设备发送,在在整个OSPF域中传播,传递的是域外的路由信息

  • 度量值 --- 域外路由的开销值

    • 种子度量值 --- 1

      • 可修改

    • 为什么使用种子度量值

  • 标记位 ---E

    • 用于表示外部路由使用的度量值类型

    • 类型1

      • E位为0,则代表使用类型1 ---域内所有设备到大目标网段的开销值等于设备到达ASBR的开销加上种子度量值

    • 类型2 --- 默认使用

      • 当一个LSA域外的LSA信息使用该类型时,则域内所有设备到达域外目标网段的开销值都等于种子度量值

  • 转发地址 --- FA

    • 在五类默认为0.0.0.0 ;当FA字段不为0.0.0.0时,则数据层面的流量转发依照转发地址进行数据传输

    • 用来解决选路不佳的问题

    • 当满足如下条件时,FA字段才被允许设定为其他值

      • <span style="background-color:#f8f8f8">1.引入外部路由ASBR在其连接外部网络的接口上激活OSPF 
        2.该接口没有被配置为静默接口
        3.该接口的网络类型为MA 
        4.在接口的IP地址在OSPF中被network激活</span>
  • 外部路由标记

    • 该参数只有外部路由信息才会携带,常被用于路由策略

    • 区分外部路由和内部路由

    • 华为默认为 1

Type -4 LSA
  • 4类LSAd的LS ID是ASBR的RID值 ,4类LSA又被称为ASBR汇总LSA,是一条到达ASBR的主机路由信息,四类的任务就是辅助5类LSA完成验算过程,找到ASBR的位置

Type -7 LSA

7类LSA的报文格式与5类LSA相同

FA字段填充ASBR的IP地址,来替代Type4的作用

LSA 类别传播范围通告者携带的信息
Type -1 LSA -router本区域本区域的每台路由器该区域每台设备的直连拓补
Type -2 LSA Network本区域该网段的DR该网段的拓补
Type - 3 LSA summary整个OSPF域ABR域间路由
Type - 4 asbr除了ASBR所在区域外的整个OSPF域 ;ASBR在的区域使用1类标记位置ABRASBR位置
Type - 5-ase整个OSPF域ASBR域外路由

路由撤销

1类LSA撤销 --- 通过序列号+1,校验和不变,老化时间=0的方式进行路由撤销

2类LSA撤销 ---

  • 通过序列号+1 --- 还存在邻居

  • 直接3600删除所有 --- 不存在邻居

3类LSA撤销 --- 使用老化时间3600s进行撤销,序列号不变

4类LSA撤销 --- 使用序列号+1

5/7类LSA撤销--- 与三类一样

路由信息就用3600

拓补信息就使用序列号

OSPF优化

OSPF的优化主要是为了减少LSA的更新量

  • 路由汇总 --- 减少骨干区域的LSA

  • OSPF特殊区域 --- 减少非骨干区域的LSA

OSPF路由汇总(路由聚合)

  • 域间路由汇总

  • 域外路由汇总

域内 > 域间 >域外

域间路由汇总 --- 在ABR设备上配置

域间路由汇总只能在明细路由所在区域的ABR身上配置,不能在其余ABR上配置执行完汇总操作后,只要站点内这条汇总路由所涵盖的明细路由中有一条是有效的,则会继续通告该汇总路由,当所有明细失效后,汇总路由会被撤销。----汇总并不会影响ABR设备自身的明细路由信息。

域外路由汇总 --- 在ASBR上配置

<span style="background-color:#f8f8f8"><span style="color:#333333">[r1-ospf-1]asbr-summary 10.1.0.0 255.255.0.0  ---域外路由汇总,在ASBR设备上进行</span></span>

注意内容:最大开销值=种子度量值

  • Type-2 :汇总网段的开销值等于所有明细路由开销值最大加1

  • Type-1:汇总网段的开销值等于所有明细路由开销值最大值

OSPF的特殊区域

  • 第一大类:

    1. 不能是骨干区域

    2. 不能存在虚链路

    3. 不能存在ASBR设备

  • 第二大类

    1. 不能是骨干区域

    2. 不能存在虚链路

    3. 必须存在ASBR设备

第一大类
末梢区域(Stub Area)

完全末梢区域(Totally Stub)

在末梢区域的基础上,进一步拒绝学习三类LSA,仅保留三类缺省路由信息

<span style="background-color:#f8f8f8"><span style="color:#333333">[r1-ospf-1-area-0.0.0.2]stub no-summary  ---完全末梢区域,在ABR上配置即可</span></span>

第二大类

非完全末梢区域

拒绝4类和5类LSA信息因为该区域存在ASBR设备,故需要将域外路由信息引入到本区域,因为拒绝5类LSA的学习,所以只能以7类LSA的形式传递。之后,在7类LSA信息离开NSSA区域后,需要在转换为5类LSA进行传输

将某区域配置为NSSA后,该区域的ABR设备会自动生成一条7类LSA描述的缺省路由信息,指向骨干区域

<span style="background-color:#f8f8f8"><span style="color:#333333">[r1-ospf-1-area-0.0.0.2]nssa 
[r5-ospf-1-area-0.0.0.2]nssa </span></span>

完全非完全末梢区域

在NSSA区域的基础上,进一步拒绝三类LSA,并自动产生一条三类缺省路由

<span style="background-color:#f8f8f8"><span style="color:#333333">[r1-ospf-1-area-0.0.0.2]nssa no-summary  ----在ABR设备上配置</span></span>

在完全NSSA区域,会看到3类缺省,和7类缺省,设备会选择3类缺省

Type-1Type-2Tpye-3Type-4Type-5Type-7
常规区域×
stub×××
Totally stub××××
NSSA××
Totally NSSA×××
NSSA的环路问题

场景一
场景二
<span style="background-color:#f8f8f8"><span style="color:#333333">[r3-ospf-1-area-0.0.0.1]nssa default-route-advertise   ---在NSSA区域下方缺省路由</span></span>

总结
  1. NSSA区域的7类LSA实际上是需要ASBR或者ABR自己下发的

  2. 如果多台设备均下发7类缺省路由成功,则虽然会收到LSA信息,但是并不会将其他路由器发布的路由加载到本地路由表中,因为始终相信自己的缺省路由是最好的

  3. 而对于第一台发布7类缺省路由的设备而言,会认为自己身上已经具备一条去往外部区域的路由,并且本地作为被告者,那么当其收到其他设备发送的7类缺省路由,也不会学习 --- 解决了NSSA环路

    1. 华为解决方案,保留了NSSA区域有ABR设备产生的7类LSA缺省路由、

  4. OSPF规定:在NSSA区域中可能同时存在多个ABR为了防止路由环路的产生,边界路由器不计算对方发布的缺省路由信息

NSSA负载分担解决次优路径问题

OSPF对于7转5操作有严格规范

  1. P比特位用于告诉路由器该Type -7LSA是否需要被转换

  2. 转换路由器是NSSA区域中RID值最大的ABR设备

  3. 只有P比特位和FA字段不为0的Type -7LSA才能被转换

<span style="background-color:#f8f8f8"><span style="color:#333333">[r3-ospf-1-area-0.0.0.1]nssa suppress-forwarding-address   ---在进行7转5时,抑制FA字段
​
[r1-ospf-1-area-0.0.0.1]nssa translator-always  ---强制开启进行7转5操作</span></span>

NSSA区域如果没有FA字段,将会有很大可能因为7转5操作出现次优路径

FA字段解决NSSA区域环路问题

  • 18
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值