HCIP第一次笔记

HCIA复习

OSI参考模型

应用层-----人机交互接口

表示层-----格式化数据

会话层-----建立、维护、管理会话连接

传输层-----建立、维护、管理端到端的连接

网络层-----IP逻辑寻址、路由选择

数据链路层-----控制网络层与物理层之间的通讯

物理层-----比特流传输

1-1023静态端口

1024-49151注明端口

49152-65535动态端口

ARP协议

通过一种地址获取到另一种地址信息。

正向ARP

反向ARP

免费ARP

TCP/IP模型

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

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

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

 

跨层封装

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

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

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

 

 DSAP----标识接收方上层处理该数据包的模块

SSAP-----标识发送方处理该数据包的模块

Control-----决定了数据传输方式

   无连接模式
   面向连接模式-----分片、重组、排序

 单播----一对一,既能作为源IP地址,又能作为目的IP地址

组播----一对多,只能作为目的IP地址

广播----一对所有,只能作为目的IP地址

单播地址
A:掩码8
B:掩码16
C:掩码24
组播地址
D:
保留地址
E:

 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

 特殊IP地址
环回地址-------127.0.0.1-127.255.255.254
受限广播地址---255.255.255.255
主机位全1-----直接广播地址---192.168.1.255/24
主机位全0-----网络地址---192.168.1.0
0.0.0.0------所有IP、没有IP
169.254.0.0/16---本地链路地址/自动私有地址

 VLSM---可变长子网掩码

思路:从主机位向网络位借位。借出的位被称为子网位--->子网位特点是属于网络位,但本质为主机位,即可变

CIDR----无类域间路由

思路:取相同,去不同。
超网-----汇总后的掩码小于主类掩码
子网汇总-汇总后的掩码大于主类掩码

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

交换机转发原理

交换机在接收到电信号后,会将电信号转换为二进制,之后截取数据帧。查看数据帧中的源MAC地址,将该数据包进入的接口与该MAC地址形成对应关系记录在MAC地址表(300S)。
    之后,查看数据帧中的目标MAC地址,基于目标MAC地址查询本地MAC地址表,如果表中存在记录,则按照记录进行指导转发;若表中没有记录,则将进行洪泛(交换机将数据除了进入的接口外的所有接口发送一遍)。
交换机洪泛的情况
1、遇到广播帧
2、遇到组播帧
3、遇到未知的单播帧
应用层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服务

http://www.baidu.com:80/news/index.html---->URL资源定位符

DNS基于UDP/TCP的53号端口传输数据

UDP规定,报文最大长度为512字节,当DNS查询报文超过512字节时,协议内的TC标记位会置为1,则使用TCP传输数据。

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

路由器的转发原理:路由器基于数据包中的目的IP地址查询本地全局路由表;若表中有记录,则无条件按记录转发;若没有记录,则丢弃该数据包。

<span style="background-color:#f8f8f8"><span style="color:#333333">192.168.1.0/24 --->路由   目标IP:192.168.1.1
​
11000000.10101000.00000001.00000001
11111111.11111111.11111111.00000000
11000000.10101000.00000001.00000000--->192.168.1.0</span></span>

获取未知网段的路由信息

<span style="background-color:#f8f8f8"><span style="color:#333333">1、直连路由
2、静态路由
3、动态路由</span></span>

直连路由的生成条件

<span style="background-color:#f8f8f8"><span style="color:#333333">1、接口双UP
    物理层UP--->链路正常
    协议层UP--->具备通讯协议
2、接口必须配置合法的IP地址</span></span>

HTT协议---超文本传输协议

是基于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

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

路由器发送ARP的方式

  • 以目的IP为ARP请求内容发送。

  • 以下一跳IP地址为ARP请求内容发送。

方法三: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

下两跳-->多跳
    需要提前铺垫好所有在递归查找过程中需要使用到的路由信息。

静态路由扩展配置

负载均衡---等价路由

目的相同,路由来源相同,开销相同,且下一跳不同

手工汇总

减少路由表条目,加速设备查找路由速度。

缺省路由

[r3]ip route-static 0.0.0.0 0 LoopBack 0

路由黑洞

造成流量有去无回的状况。丢弃流量的路由器被称为黑洞路由器。

空接口防环

[r1]ip route-static 172.16.0.0 22 NULL 0

在黑洞路由器上编写一条指向空接口的汇总路由

浮动静态路由

代理ARP场景

 

静态路由与BFD联动

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

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

[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会话进行联动

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

第二章,网路类型及数据链路层协议

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

网络类型的分类

P2P----Point to Point ----点到点网络

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

BMA-----Broadcast Multi-access Network-----广播型多点接入网络

NBMA----Non Broadcast Multi-access Network----非广播型多点接入网络

数据链路层协议

MA网络

以太网协议---BMA

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

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

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

P2P网络

不需要MAC地址进行通讯。

P2P网络定义----当一个网络中只能存在两台设备,并且不允许第三台设备加入,这样的网络被称为P2P网络。

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

串线的标准

E1标准-----传输速率为2.048Mbps----欧洲标准

T1标准-----传输速率为1.544Mbps----北美标准

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

满足工业标准的标准HDLC协议。

ISP根据SDLC(面向比特的同步数据链路控制协议)改进而来的HDLC协议。
    同步----以帧为单位来传输数据
    异步----以字节为单位传输数据

非标的HDLC协议。

上述两种协议相互不兼容,思科设备默认采用的串线协议是HDLC协议

HDLC网络搭建

华为设备串口网络默认使用协议为PPP,而非HDLC

[r1-Serial4/0/0]link-protocol hdlc ----在接口修改链路协议类型为HDLC Warning: The encapsulation protocol of the link will be changed. Continue? [Y/N] :y

串口线缆具备10秒钟的死亡时间

HDLC接口地址借用

[r1-Serial4/0/0]ip address unnumbered interface LoopBack 0 ----从环回0接口借用IP地址

[r1]ip route-static 12.0.0.2 32 Serial 4/0/0 ---配置通往对端接口的路由信息。

在串线中无需配置接口IP地址,只需要从环回接口借用一个IP即可,但需要在对端设备上补充路由信息。且环回接口的IP地址配置为掩码32位,对端的路由信息编写主机路由。

PPP---点到点协议

优点

兼容性

可移植性

速率快,因为PPP协议没有重传机制

PPP会话的建立

链路建立阶段----LCP

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

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

PPP链路链路过程

 

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

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

Authenticate----认证阶段

该阶段不是必选项。

Network----NCP参数协商

Terminate阶段----该阶段在进行资源释放,若所有资源均被完全释放,则回到dead阶段。

PPP数据帧结构

 

LCP协议----链路控制协议----完成PPP会话建立第一阶段的协商

NCP协议----网络控制协议----一系列协议的总称,完成PPP会话建立第三阶段时针对网络层协议进行协商。若网络层使用IP协议,则对应使用NCP协议中的IPCP(互联网协议控制协议)协议协商

LCP协议报文类型

链路配置报文

链路终止报文

Terminater-Request

Terminater-ack

链路维护报文

Echo-Request---回波请求

Echo-Reply-------回波应答

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

1、MRU值----PPP数据帧所允许携带的最大数据单元,单位字节,默认值1500
2、认证-----协商PPP会话建立第二阶段是否需要进行认证,以及使用何种方式认证。
3、魔术字-----用于检测链路中是否存在环路。

协商过程

 A设备发送链路配置请求报文给对端,若没有收到对端回复的任何一个链路配置报文,则每隔3秒重传一次链路配置请求报文,如果连续10次发送链路配置请求,仍然没有收到回复报文,则认为对端不可用,停止发送报文。
    
    如果对端不认可某些参数的数值,则回复的是NAK报文,该报文中将携带不认可的参数以及该参数的数值范围。本端收到该报文后,根据内容重新发送链路配置请求。
    
    如果对端不认可某种参数,则回复Reject报文,该报文中携带不认可的参数。本端收到该报文后,删除该参数,并重新发送链路配置请求。

认证阶段

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

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

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

PAP-----密码认证协议

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

被认证方: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----挑战握手协议

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

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

配置

认证方

[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和MGRE

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 | 数据 | | ------------- | ------------- | -------------------- | -------------------- | ---- |

配置

[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   ---补充路由信息

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

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---多点通用路由封装

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

NHRP----下一跳解析协议

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

然后,NHRP要求所有分支都需要将自己的物理接口IP地址和虚拟接口IP地址的映射关系发送给NHS。此时NHS会将所有分支的地址映射关系记载到动态的NHRP表中。当需要发送信息时,查看NHRP表进行数据封装。

Hub-Spoke架构

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

  • Spoke客户端-------分支节点

配置

HUB配置

[r1]interface Tunnel 0/0/0

[r1-Tunnel0/0/0]ip address 192.168.5.1 24

[r1-Tunnel0/0/0]tunnel-protocol gre p2mp   ---修改接口封装协议为多点GRE

[r1-Tunnel0/0/0]source 15.0.0.1  ---定义封装源

[r1-Tunnel0/0/0]nhrp network-id ?   ----可选,若配置则需要将所有设备均修改为相同;默认值为0
INTEGER<1-4294967295>  Nhrp network id 

Spoke配置

[r2]interface Tunnel 0/0/0

[r2-Tunnel0/0/0]ip address 192.168.5.2 24
[r2-Tunnel0/0/0]tunnel-protocol gre p2mp 
[r2-Tunnel0/0/0]source GigabitEthernet 0/0/0

[r2-Tunnel0/0/0]nhrp entry 192.168.5.1 15.0.0.1 register   ---分支向中心节点注册
                                 中心的隧道IP   中心的物理IP

最后需要将各自的流量引入到隧道接口,使用静态路由方式进行配置

DSVPN---动态智能VPN技术

mgre+nhrp

Mgre隧道--->静态隧道(spoke到hub的)、动态隧道(spoke-spoke)

NHRP映射表

静态表项

1、由网络管理员手工配置

动态表项

2、由NHRP协议动态生成

hub节点通过nhrp注册报文提取到各个spoke的Tunnel地址和公网地址生成NHRP动态映射表

各个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隧道

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

1、非shortcut方式

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

2、shortcut方式

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

MGRE的非shortcut方式建立

 MGRE的shortcut方式建立

hub
[r1-Tunnel0/0/0]nhrp redirect   ----开启重定向功能。开启该功能后,会给源分支发送NHRP重定向报文,要求源分支向目的分支请求物理地址。从而构造NHRP映射关系。


spoke
[r2-Tunnel0/0/0]nhrp shortcut   ----使能shortcut功能;如果为使能该功能,则分支节点在接收到重定向报文后,会忽略其内容。

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协议---开放式最短路径优先协议
  • 适用范围---IGP

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

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

OSPFv2与RIPv2对比

相同点:
1、都是无类别路由协议
2、均采用组播方式更新数据
3、均支持等开销负载均衡

不同点:
RIPv2仅适用于小型网络;OSPFv2可以应用在大中型网络中。

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

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

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

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

要求:

  1. OSPF要求域中所有的非骨干区域都必须与Area 0相连

  2. 骨干区域不能被分割

OSPF区域结构部署规则的必要性
假定没有“所有非骨干区域都必须与骨干区域相连”规则

ABR设备(区域边界路由器)

  • 至少连接两个以上的区域

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

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

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

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

假定没有"骨干区域不能被分割"规则

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

总结

OSPF规定:
1、伪ABR设备---不允许转发区域间路由信息
2、真实ABR设备
    能够将自己直连的非骨干区域的区域内路由信息传递给骨干区域
    能够将自己直连的骨干区域的的区域内路由信息传递给非骨干区域
    能够将自己从骨干区域学习到的域间路由信息传递给非骨干区域

OSPF路由器角色

  • 内部路由器---IR

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

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

  • 骨干路由器---BR

    • 接入Area 0的路由器

  • AS边界路由器---ASBR

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

    • 负责将域外的路由信息引入到本域内。---默认不进行路由引入

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

OSPF数据包

hello包

  • 用来发现、建立OSPF邻居关系,周期保活。224.0.0.5;10S;40S。

  • RID----全域唯一

    • 配置方式

      • 手工配置:满足32位二进制,且点分十进制表示,全域唯一。

      • 自动配置:默认优选最大环回IP地址,没有环回则选择最大物理IP地址。

在启动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。
  • DBD包

    • 数据库描述报文

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

    • 避免重复更新

  • LSR包

    • 链路状态请求报文

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

  • LSU包

    • 链路状态更新报文

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

  • LSAck包

    • 链路状态确认报文

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值,越大越优。

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

选举过程:

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选举之后进行。

 

Attempt:尝试状态
    在NBMA网络类型下,如果需要启动OSPF协议,需要使用peer命令指定邻居IP地址,否则不会发送hello报文,配置该命令后,邻居状态会进入到init。

OSPF工作过程

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

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

  • 进入2-way状态,在2-way状态后执行条件匹配操作,若选举成功,则进入邻接关系建立过程;若选举失败,则停留在2-way状态,仅使用hello报文进行保活。

  • 邻接关系建立

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

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

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

      • 通过发送LSR报文/LSU/LSAck报文获取完整的未知LSA信息。

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

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

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

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

OSPF基本配置

1、启动OSPF进程
[r1]ospf 1 router-id 1.1.1.1
2、创建区域
[r1-ospf-1]area 0
3、宣告
[r1-ospf-1-area-0.0.0.0]network 12.0.0.0 0.255.255.255---范围宣告
[r1-ospf-1-area-0.0.0.0]network 1.1.1.1 0.0.0.0  ---精准宣告

OSPF报文格式

OSPF报文头部
  • 固定长度---24字节

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

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

  • 认证类型

    • 不认证

    • 明文(简单)认证

    • MD5认证

  • 认证数据

    • 用于报文认证的内容

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

Hello包

  • 网络掩码(Network Mask)

    • 该字段填充的是发送该hello报文的接口的掩码信息。

    • OSPF邻居关系建立过程中需要比对掩码信息,从而验证对端是否路由可达。---华为私有。

      • 如果一方在接口上收到的hello报文中"网络掩码"字段与本接口不同,则忽略该hello报文,此时邻居关系无法建立。

    • 如果两台OSPF路由器通过MA网络直连,则需要验证;若通过点到点网络则不需要验证该参数

  • Hello间隔

    • 接口周期性发送hello报文的时间间隔---秒。

    • 两台设备需要保证Hello时间间隔相同,否则邻居无法正常建立

  • 可选项(option)

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

    • 特殊区域标记

  • 路由器失效时间

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

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

所有的224.0.0.X格式的组播地址被称为本地链路组播,目标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检测机制,两端都需要开启。

      • 如果双方都开启该功能,则进行MTU检测,若两边相同,则检测通过;若两边不同,则状态卡在exstart状态。

  • I----主从关系选举

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

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

  • DD序列号

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

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

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

LSR包

链路状态类型、链路状态ID、通告路由器----LSA三元组,通过这三个参数可以唯一的标识出一条LSA信息

LSU包

LSAck包

显性确认机制

OSPF的接口网络类型

所谓的OSPF接口网络类型,实际上是指OSPF的接口在某种网络类型下的一种工作方式

网络类型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

[r3]display ospf interface GigabitEthernet 0/0/0  ---查看OSPF接口网络类型

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

点到点类型(p2p)

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

环回接口(虚拟接口)

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

Type中的参数是由P2P进行填充,华为没有为该字段定位内容,而cisco则定义了一个loopback类型作为环回接口的类型。

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

[r2-LoopBack0]ospf network-type broadcast   ---修改接口网络类型;OSPF的邻居之间均需要修改

在DR和BDR选举时,会启动一个waiting计时器,该计时器的时间与dead时间相同,当计时器时间超时后,该接口会认为自己就是DR设备。----且设备会进入exstart状态。

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

在Hub-Spoke架构中,运行MGRE时,使用OSPF协议学习路由信息,需要将隧道接口的OSPF网络类型修改为BMA,全网均修改。且手工干涉DR选举,将DR选举在Hub节点

点到多点类型(P2MP)

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

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

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

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

OSPF的不规则区域划分

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

  2. 骨干区域不能被分割

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

  • 远离骨干的非骨干区域

  • 不连续骨干区域

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

解决方案

使用tunnel隧道

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

  1. 可能产生选路不佳。

  2. 可能造成重复更新。

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

虚链路---Vlink

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

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

配置:

[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

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

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

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

缺陷:

  1. 只能穿越一个区域

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

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

骨干链路单点故障问题

Vlink环路问题

场景一

Vlink选择不恰当,可能会引发环路问题。----解决方式,在物理链路相连的两台设备上建立vlink。

场景二

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

多进程双向重发布

配置

[r3-ospf-1]import-route ospf 2 
[r3-ospf-2]import-route ospf 1

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

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

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

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

OSPF的LSA详解

LSA头部

  • 链路状态老化时间

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

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

      • 一般情况下,老化时间不会超过1800S。

      • 该参数存在最大老化时间---3600S。----当一条LSA的老化时间到达最大老化时间时,将被认定失效,从本地的LSDB中删除

      • 在OSPF网络中,只有始发路由器能够提前使某条LSA老化,即有意识的清除该LSA信息

      • 组步调计时器

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

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

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

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

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

    • 每台路由器在发送相同LSA信息时,序列号逐次加一。

    • 序列号起始为0x80000001

    • 序列号截止为0x7FFFFFFF

  • 链路状态校验和

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

  • 长度---LSA的总长度

判断LSA的新旧关系

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

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

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

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

    1. 如果某条LSA的老化时间为3600S,则认为该LSA最新。

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

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

      2. 如果差值小于15min,则认为这两条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

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

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

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

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

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

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

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

Type-2 LSA

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

链路状态ID--->描述DR的接口IP地址

Type-3 LSA

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。

[r4-ospf-1]import-route rip 1 cost 10   ---在重发布时修改种子度量值

E位----用于表示外部路由使用的度量值类型

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

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

[r4-ospf-1]import-route rip 1 cost 10 type 1   ---修改域外路由信息的开销值类型

转发地址----FA

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

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

1、引入外部路由的ASBR在其连接外部网络的接口上激活了OSPF
2、该接口没有被配置为静默接口
3、该接口的网络类型为MA
4、在接口的IP地址在OSPF中被network命令激活

外部路由标记

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

  • 该字段在华为路由器默认为1。

[r4-ospf-1]import-route rip 1 tag ?  ----设定外部路由标记
  INTEGER<0-4294967295>  Tag value

Type-4 LSA

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

Type-7 LSA

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

Options字段在五类LSA中,显示为E(代表可以洪泛五类LSA)。

N---代表允许处理7类LSA信息,仅在NSSA区域置为1
P---代表支持7转5操作,一般与N位共同使用。----该标记位加密,抓包看不到。

转发地址----应对选路不佳的情况,如果存在选路不佳的情况,则通告者会把最佳的下一跳放入转发地址中,接收者看到FA字段,则将不按照算法来计算下一跳,而直接使用转发地址作为下一跳。在7类LSA中,一般会使用通告者(ASBR)设备的环回接口IP地址作为转发地址。如果存在多个环回接口,则将使用最先宣告的地址作为转发地址;如果没有环回接口,则将使用物理接口作为转发地址。---华为的逻辑

路由撤销

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

2类LSA撤销-----1、使用序列号+1的方式撤销路由(网络中还存在自己的邻居);2、使用老化时间3600S进行路由撤销(网络中不存在自己的邻居)

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

5类/7类LSA撤销----使用老化时间3600S进行路由撤销,序列号不变。

OSPF优化

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

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

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

OSPF路由汇总(路由聚合)

域间路由汇总----在ABR设备上部署

[GS-R2-ospf-1-area-0.0.0.1]abr-summary 192.168.0.0 255.255.224.0  ---汇总位置必须是路由信息的来源区域
[GS-R3-ospf-1-area-0.0.0.2]abr-summary 192.168.32.0 255.255.224.0

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

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

[r1-ospf-1]asbr-summary 10.1.0.0 255.255.0.0  ---域外路由汇总,在ASBR设备上进行

注意内容:所谓的最大开销值就是种子度量值。

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

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

OSPF的特殊区域

第一大类:1,不能是骨干区域;2,不能存在虚链路;3,不能存在ASBR设备

1.末梢区域(Stub Area)

如果将一个区域配置为末梢区域,则这个区域将不再学习4类和5类LSA。---ABR设备将不会在向该区域转发4类和5类LSA信息。---但是该区域还可能需要访问域外路由信息,故会自动生成一条指向骨干区域的三类缺省路由

[r1-ospf-1-area-0.0.0.2]stub 
[r5-ospf-1-area-0.0.0.2]stub 

所有区域内的设备都必须配置为相同的特殊区域

2.完全末梢区域(Totally Stub)

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

[r1-ospf-1-area-0.0.0.2]stub no-summary  ---完全末梢区域,在ABR上配置即可

第二大类:1,不能是骨干区域;2,不能存在虚链路;3,必须存在ASBR设备

3.非完全末梢区域(NSSA)

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

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

[r1-ospf-1-area-0.0.0.2]nssa 
[r5-ospf-1-area-0.0.0.2]nssa 

O_NSSA----7类域外路由信息的标记,默认优先级为150。

4.完全的非完全末梢区域(Tonally NSSA)

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

[r1-ospf-1-area-0.0.0.2]nssa no-summary  ----在ABR设备上配置

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

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

场景一

场景二

[r3-ospf-1-area-0.0.0.1]nssa default-route-advertise   ---在NSSA区域下方缺省路由

总结

  1. NSSA区域的七类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-7 LSA是否需要被转换。

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

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

[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操作

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

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

第五章,重发布及路由策略

重发布

在同一个网络拓扑中,如果存在多种不同的路由协议,由于不同路由协议的机理不同,对路由的处理方式各不相同,这就会在网络中造成路由信息隔离,而在路由协议的边界设备上,将某种路由协议的路由信息引入到另一种路由协议中,这个操作叫做路由引入或路由重分发。----技术叫做重发布

条件

  1. 必须存在边界设备-----同时连接两种协议或两个进程。

  2. 必须关注种子度量值---起始度量值

规则

  1. 重发布技术的配置位置-----将A协议发布到B协议中,在边界设备的B协商上配置。

  2. 将A协议发布到B协议中,边界设备将会把所有的通过A协议学习到的路由以及边界设备在A协议上宣告的所有直连路由,全部共享到B协议中。----重发布的内容。

名词解释

  • 单点----两个协议或两个进程之间仅存在一个边界设备。

  • 双点----两个协议或两个进程之间仅存在两个边界设备。

  • 多点----两个协议或两个进程之间仅存在多个边界设备。

  • 单向----仅将A协议引入到B协议中

  • 双向----A/B协议的路由共享

单点重发布

配置

  • A--->B

    • [r2-rip-1]import-route ospf 1

      在RIP中,种子度量值为0。

[r2-rip-1]default-cost 2  ----修改种子度量值,全局修改
[r2-rip-1]import-route ospf 1 cost 5  ---针对本次重发布内容修改

当以上两条命令同时执行,则按照第二条规则匹配

[r2-ospf-1]default cost ?  ---修改OSPF种子度量值

静态--->B

[r2]ip route-static 0.0.0.0 0 LoopBack 0
[r2]ip route-static 192.168.1.0 24 LoopBack 0

[r2-rip-1]import-route static

直连--->B

[r2-rip-1]import-route direct

引入直连时,除了与R1直连的网段,其余所有直连均会引入。

若边界设备进行了A--->B的重发布以及直连--->B的重发布,并且两次包含了相同的路由信息,则将会优先学习直连--->B的重发布信息

双点重发布

路由回馈---某一条路由信息从A协议发布到其他协议,最终又被发布回A协议。---严重会引发环路问题。

在默认情况下,RIP和OSPF协议若进行双点重发布,由于两者的优先级不同,故第一台边界设备重发布动作结束后,会影响到其余边界设备的路由表。使得路有可能会被传回源协议当中。

华为为了解决路由回馈问题,将OSPF的域外路由信息的优先级定义为150(150高于华为体系下所有IGP协议的优先级)

多点重发布必然存在的问题-----选路不佳。----因为重发布机制将路由引入到其他协议中时,将原本的开销值抹除,从而导致其他协议中设备对于该路由信息认知不全导致的。

路由策略

控制层流量和数据层流量

  • 控制层流量----路由协议传递路由信息时产生的流量

  • 数据层流量----设备访问目标地址时产生的流量

所谓的路由策略----就是在控制层面转发流量的过程中,截取流量,之后修改流量再转发或者不转发,最终达到影响路由表的生成,干涉选路的效果

抓流量

ACL列表

ACL本身设计出来是为了抓取数据层流量,所以,设计了通配符来灵活的匹配数字特征。但是ACL没有办法匹配路由信息中的掩码特征,因此,ACL并不擅长于抓取控制层流量。

[r2]acl 2000
[r2-acl-basic-2000]rule permit source 192.168.1.0 0

因为ACL使用的是通配符,所以在抓取控制层流量时,无法更加精准的抓取某些流量。如果需要在192.168.1.0/24、192.168.1.0/25、192.168.1.0/26中抓取192.168.1.0/24路由信息,则ACL无能为力,会将三个路由信息均抓取到。

前缀列表(ip-prefix)

一个路由条目是由目的网络地址(前缀)及掩码长度(前缀长度)共同标识

IP前缀列表可以包含一条或多条语句,每条语句都使用一个十进制的序号(index)来标识。在创建一个IP前缀列表时,并未指定该语句的序号,则系统会为其自动添加一个序号,序号缺省值为10,步长为10

前缀列表匹配规则:从上而下,逐一匹配,一旦匹配上则将按照该规则执行,不再向下匹配。末尾隐含拒绝所有的规则

示例

假设:
172.16.0.0/16
172.16.0.0/24
172.16.0.0/30
172.16.1.1/32

1、ip ip-prefix aa index 10 permit 172.16.0.0 24  ----匹配172.16.0.0/24的路由信息

2、ip ip-prefix bb index 10 permit 172.16.0.0 16 less-equal 24  ---匹配以172.16开头的路由信息,且掩码在16-24之间

3、ip ip-prefix cc index 10 permit 172.16.0.0 16 greater-equal 24  ---匹配以172.16开头的路由信息,且掩码大于等于24

4、ip ip-prefix dd index 10 permit 172.16.0.0 16 greater-equal 24 less-equal 30

5、
[r2]ip ip-prefix ee index 10 deny 172.16.0.0 30
[r2]ip ip-prefix ee index 20 permit 172.16.0.0 24

6、ip ip-prefix gg index 10 permit 0.0.0.0 0 less-equal 32 ---匹配所有

7、
[r2]ip ip-prefix ff index 10 deny 172.16.0.0 30
[r2]ip ip-prefix ff index 10 permit 0.0.0.0 0 less-equal 32

8、ip ip-prefix hh index 10 permit 0.0.0.0 0 greater-equal 32 less-equal 32

9、ip ip-prefix ii index 10 permit 0.0.0.0 0-----匹配缺省路由

实际工程中的写法:
ip ip-prefix hcip permit 172.16.4.0 22 greater-equal 24 less-equal 24 ---匹配172.16.4.0/24-172.16.7.0/24

做策略

在做任何策略时,在本地的入方向修改,会影响到自身对于路由信息的学习;而在本地的出方向修改,则会影响到他人对于路由信息的学习,而不影响自身

偏移列表----cisco

偏移列表在华为中不属于策略,因为该工具是专门为了距离矢量型协议使用,用来修改开销值的操作。而华为只有一种距离矢量型协议---RIP。

1、抓流量
[r1]ip ip-prefix huawei permit 23.0.0.0 24
2、做策略---调用
[r1-GigabitEthernet0/0/1]rip metricin ip-prefix huawei 5 ----metricin入方向,metricout出方向。

该策略为逐跳行为,效果可以叠加;整段路径中流量经过的多个接口均配置度量增加,最终为增加的总度量值

过滤策略---filter-policy(分发列表---cisco)

只能对路由信息进行过滤,无法对LSA进行过滤

1、抓流量
[r4]acl 2000
[r4-acl-basic-2000]rule deny source 23.0.0.0 0
[r4-acl-basic-2000]rule permit source any   ---允许所有
2、调用---做策略
[r4-rip-1]filter-policy 2000 export GigabitEthernet 0/0/1  ----若不选择接口,则为全局调用,会匹配所有接口

注意:过滤策略本身没有过滤能力,所以,需要依靠抓取流量的工具来执行拒绝动作。在过滤策略中,匹配的流量抓取工具如果没有放通流量,就会将所有流量拒绝

1、抓流量
[r2]ip ip-prefix aa deny 34.0.0.0 24
[r2]ip ip-prefix aa permit 0.0.0.0 0 less-equal 32
2、调用---做策略
[r2-rip-1]filter-policy ip-prefix aa export GigabitEthernet 0/0/0

filter-policy对于向OSPF发布的路由进行过滤

1、抓流量
[r2]ip ip-prefix aa deny 192.168.1.0 24
[r2]ip ip-prefix aa permit 0.0.0.0 0 less-equal 32
2、做策略--调用
[r2-ospf-1]filter-policy ip-prefix aa export

使用过滤策略对链路状态型协议进行路由过滤,仅仅是能够保证不将路由信息转换为LSA信息,从而进行过滤。但是该操作会影响到所有启动链路状态型协议的路由器,而非单独的某个路由器。----且过滤策略的配置位置必须是LSA的始发路由器

对于五类LSA而言,过滤策略的调用方向必须为出方向。----本质是对五类LSA的生成做操作。

filter-policy对于OSPF接收的路由进行过滤

LSA是OSPF用于路由计算的关键信息,一台OSPF路由器会把网络中所洪泛的LSA存储在自己的LSDB中,并且运行SPF算法,进而计算出到达网络中各个网段的路由。而过滤策略就是在路由器将所计算出的OSPF路由加载到路由表之前,对路由进行过滤

1、抓流量
[r2]ip ip-prefix aa deny 192.168.1.0 24
[r2]ip ip-prefix aa permit 0.0.0.0 0 less-equal 32
2、做策略
[r2-ospf-1]filter-policy ip-prefix aa import 

过滤策略应用在链路状态型协议中时,如果要拒绝本区域内的路由信息,则需要在入方向进行调用(拒绝将LSA生成路由信息);且因为LSA的传播要求全区域相同,故该策略在入方向仅可以影响本地,而不能影响后续设备

注意:过滤列表可以在OSPF中使用,但是OSPF区域内部传递的是拓扑信息,所以,无法在出方向调用,只能在入方向调用,并且,调用的效果是仅将过滤抓取的流量信息不加表,而LSA还存在。

1/2类LSA3类LSA5/7类LSA
调用方向入方向入方向出方向
影响效果仅影响本地影响该3类LSA的通告者,以及后续的区域影响除了ASBR以外的所有运行了OSPF协议的设备
过滤原因阻止通过1类LSA从而生成路由信息阻止通过1类LSA从而生成路由信息,没有路由信息即不会生成3类LSA信息。阻止路由信息生成LSA信息

路由策略-----Route-Policy

路由策略匹配规则:从上而下,逐一匹配,一旦匹配上则将按照该规则执行,不再向下匹配。末尾隐含拒绝所有的规则

要求:R2执行重发布操作,将RIP路由信息引入到OSPF中
192.168.1.0/24----过滤
192.168.2.0/24----修改种子度量值为10
192.168.3.0/24----修改开销值类型Type-1
192.168.4.0/24----修改开销值类型Type-1,且打上标记tag
12.0.0.0/24-------不做处理

1、抓取流量
[r2]acl 2000
[r2-acl-basic-2000]rule permit source 192.168.1.0 0

[r2]acl 2100    
[r2-acl-basic-2100]rule permit source 192.168.2.0 0

[r2]ip ip-prefix aa permit 192.168.3.0 24

[r2]ip ip-prefix bb permit 192.168.4.0 24


2、做策略
[r2]route-policy huawei deny node 10  ---创建一个叫做huawei的路由策略,且节点为10
[r2-route-policy]if-match acl 2000    ---匹配acl 2000这个列表中的内容

[r2]route-policy huawei permit node 20
[r2-route-policy]if-match acl 2100
[r2-route-policy]apply cost 10

[r2]route-policy huawei permit node 30
[r2-route-policy]if-match ip-prefix aa
[r2-route-policy]apply cost-type type-1

[r2]route-policy huawei permit node 40
[r2-route-policy]if-match ip-prefix bb
[r2-route-policy]apply cost-type type-1
[r2-route-policy]apply tag 666


[r2]route-policy huawei permit node 100  ----创建一个空的路由策略节点,从而允许所有

3、调用
[r2-ospf-1]import-route rip 1 route-policy huawei  ---在引入路由时调用路由策略

[r2-route-policy]apply preference 200 ---修改优先级为200

注意

  1. 当不同路由具备不同修改操作时,使用不同工具进行流量抓取。

  2. 在抓取流量时,均使用permit操作

  3. 路由策路的名称相同

  4. 路由策略具备允许和拒绝两种匹配模式

  5. 路由策略的最后必须存在一个空表。

第六章,BGP----边界网关协议

自治系统---AS

由一个单一的机构或组织所管理的一系列IP网络及其设备所构成的集合

AS划分的原因

  • 随着网络规模的扩大,路由数量进一步增加,路由表规模太大,路由收敛速度变慢,设备性能和消耗增加。

  • AS之间可能是不同的机构或者企业,互相之间无法相互信任,使用IGP协议存在暴露AS内部的网络信息风险。

不同的AS通过AS号来区分,16bit或32bit两种表示形式。----IANA(互联网数字分配机构)负责AS号的分发。

  • 16bit--->取值范围为1-65534(其中0和65535保留);64512-65534为私有AS号。

  • 在RFC4893标准中,将2字节AS过渡到4字节AS号。并且增加了保留AS号----23456

    • 在2字节中,64496-64511---16个

    • 正4字节中,65536-65551---16个

BGP基础

BGP协议介绍

  1. 首先RIP是基于UDP进行数据传输,而UDP是一个不可靠的协议,在传输过程中可能会丢失某些数据。

  2. 缺省情况下,RIP协议的路由更新报文的发送间隔为30秒,而如果两个AS内部的路由表非常大,30秒的时间可能还不够将所有的路由信息传递给对方,这样整个链路完全就是为了RIP的通告报文服务,而不能转发数据流量。

解决思路:

  • 将UDP协议替换为TCP协议,保证传输可靠性

  • 取消周期更新机制,仅使用触发更新。

运行了BGP协议的路由器,所维护的路由表是包含了整个互联网的所有路由信息

BGP特点

  • BGP基于TCP,只要能够建立TCP连接,即可建立BGP连接。

  • 触发式更新,而不再进行周期性更新。

  • BGP只传递路由信息,而不会传递拓扑,也就不会暴露AS内部的拓扑信息。

    • 拓扑信息资源占用较大

    • 传递拓扑会暴露本地设备连接情况

BGP通常被称为无类别的路径矢量型协议

  • 无类别----传递时携带真实子网掩码信息

  • 矢量----指方向性---谁传递给我的,谁就是下一跳

  • 距离矢量----将一个路由器看做是一个单位计算开销值

  • 路径矢量----将一个AS看做是一个整体,从而计算一跳

路径矢量距离矢量
一个AS作为一跳一个路由器作为一跳
不是算法的概念,仅将IGP协议算好的路由信息传递出去,仅完成路由的搬运工作是一个算法的概念,用来计算未知网段的路由信息

BGP的特征

  • 选路

  • 收敛速度

  • 占用资源

  • 可控性

    • 针对大量的路由信息在进行BGP传递时,会取消掉开销值,而出现选路不佳的情况。BGP为此设计了很多的路径属性,从而控制选路。

    • 在选路上,BGP具有丰富的可操作性,可以在任何场景下选择最适合的路由信息。

  • 可靠性

    • BGP只有触发更新,而不存在周期更新,所以需要使用TCP来保证其可靠性。TCP使用端口号179来建立会话。BGP协议的所有可靠性均使用TCP来完成。

    • IGP协议不选择使用TCP的原因

      • TCP传输效率低

      • TCP传输占用资源大

      • TCP只能实现单播传输。无法通过组播或广播的形式发送数据,导致IGP协议无法自动发现邻居关系。

    • 两台路由器在使用BGP协议建立会话时,需要使用peer命令指定自己邻居的IP地址。

  • AS-BY-AS规则

    • BGP将一个AS看做是一个整体

BGP的对等体关系

BGP因为传输层使用的是TCP协议,所以,只要在TCP协议可以建立会话的基础上就可以完成BGP的建邻工作----BGP支持非直连建邻(网络可达)----BGP的非直连建邻是建立在IGP(静态)之上

  • EBGP

    • 位于不同自治系统的BGP路由器之间的BGP对等体关系

    • EBGP对等体一般使用直连建邻。----EBGP邻居之间的报文,TTL值为1

    • EBGP对等体建立需要满足的条件

      • 两端设备所属的AS号不同

      • 在使用peer命令指定对等体IP地址时要求路由可达。

    • 如果使用环回接口建立EBGP对等体,则需要注意TTL值

  • IBGP

    • 位于相同自治系统的BGP路由器之间的BGP对等体关系

    • IBGP对等体一般使用非直连建邻。----IBGP邻居之间的报文,TTL值为255

    • 在IBGP当中,使用非直连建邻时,推荐使用环回接口IP地址。因为环回接口非常稳定,而且可以借助AS内部的IGP和冗余拓扑来保证可靠性

BGP特点

  1. 无类别路径矢量协议----AS-BY-AS

  2. 使用单播更新来发送数据,基于TCP 179端口工作

  3. 增量更新机制

  4. BGP使用丰富的路径属性来替换度量值进行选路

  5. BGP可以在进出流量的接口实施路由策略,来干涉路由信息----可控性

  6. BGP默认不存在负载均衡----会通过各种选路规则来产生一条最佳路由

  7. BGP支持认证机制和聚合路由

BGP的数据包

Route-refresh----路由刷新包

作用:用来要求对等体重新发送指定地址族的路由信息

一般为本端修改了相关路由策略之后让对方重新发送路由更新报文,本端执行新的路由策略重新计算BGP路由。----前提:双方均支持路由刷新功能。

Open包

是在TCP连接建立之后发送的第一个报文,用于建立BGP对等体之间的关系

  • My AS字段----标识该报文的发送者所在AS号,用以邻居来判断是否要接收该报文并建立邻居关系。

    • 如果接收的open报文中的AS号与本地AS号不同,则建立EBGP对等体,如果相同,则建立IBGP对等体。

    • 如果对方的AS号和本地建邻时使用peer命令写的不同,则邻居关系无法建立

  • hold time---保活时间

    • 不影响邻居关系建立

    • 保活时间为180S,若该时间超时则认为邻居关系中断。周期发送时间为保活时间的三分之一。

    • 如果双方的保活时间不一致,则按照较小的执行。如果该时间为0,则代表不发送keepalive报文。

  • BGP ID

    • 32位二进制组成,点分十进制来表示。

    • 全网唯一

    • 手工配置>环回最大IP地址>物理最大IP地址

  • 认证字段

    • BGP也会进行认证,若认证口令不同,则导致邻居关系建立失败。

    • 该字段永远以MD5的形式保存,在传输时,携带在TCP的选项字段中。

    • BGP的任何数据包传输都需要进行认证。

  • Route-Refersh----路由刷新功能

    • 不会影响BGP对等体关系建立。

    • 当Type字段为2,则value.code字段为2时,代表支持路由刷新功能。

keepalive包

作用:主要用于进行周期保活

该报文没有数据部分,仅具备BGP头部信息。---19字节

该报文还将在open报文协商参数时,临时充当确认报文

TCP协议进行确认的目的是为了保证数据传输的可靠性,而keepalive报文确认的目的是为了确认认可对方发送的open报文中的参数

该报文的保活机制,是在保活TCP会话不会断开,而非是对于BGP对话的保活机制

Update包----更新包

作用:用于在对等体之间传递路由信息,可以用于发布、撤销路由。----携带需要传输的路由信息的数据包

Notification包

纯粹的BGP的告警机制

BGP的状态机

BGP的状态机仅描述的是对等体关系建立过程的状态变化。而OSPF是描述的整个协议完整的工作过程。-----原因是因为BGP可以将邻居建立过程和BGP路由收发过程分开

  • Idle----空闲状态

    • 所有设备在启动BGP进程后首先进入的状态。

      • 原因在于BGP需要手工指定邻居。该状态就是在等待手工指定邻居关系

    • 当手工指定邻居关系后,将会进入一个检查环节。需要检查手工指定的IP地址在本地路由表中是否可达,只有可达,才可以正常建立TCP的会话,如果不可达,则邻居关系建立失败,停留在idle状态

    • 如果成功,则进入到connect状态。

  • Connect状态----连接状态

    • 该状态是在建立TCP会话。

    • 在该状态会开启一个连接重传定时器(connect retry)--32秒。如果定时器超时,则本地重新发送连接请求。如果成功建立了TCP连接,则进入opensent状态,且该计时器删除。

    • 如果TCP会话建立失败,则进入active状态。

  • Active----尝试状态

    • 第一次的TCP会话建立失败,则进入该状态。在该状态继续尝试建立TCP会话。

    • 如果成功建立了TCP连接,则进入opensent状态,且该计时器删除。

    • 该状态与connect状态共用同一个连接重传计时器。

  • opensent---发出本地的open报文

    • 发送本地open报文;接收到对方的open报文。

    • 根据对方发送的open报文进行参数协商,如果参数均认可,则发送keepalive报文进行确认。进入openconfirm状态。如果参数不认可,则发送notification报文,进入idle状态。

    • 对等体关系的peer邻居指定是双向的,所有当双方均指定邻居后,均会主动与对端建立TCP连接。
          但是这样会建立两条TCP的双向连接,明显是多余的,所以BGP会选择一条断开。
          BGP会将最早启动BGP的设备所主动建立的连接断开,而保留后启动BGP协议的设备所发起的TCP会话连接。
  • OpenConfirm----等待open报文确认

    • 本地需要等待对方发送的keepalive确认报文。

    • 如果收到keepalive,则进入下个状态;如果收到notification报文,则转至idle状态。

  • Establish----BGP会话建立完成

    • 在该状态下,BGP可以和对等体交互Updata报文和Route-refresh报文。

    • keepalive和notification报文也在该状态可以看到。

  • OpenConfirm----等待open报文确认

    • 本地需要等待对方发送的keepalive确认报文。

    • 如果收到keepalive,则进入下个状态;如果收到notification报文,则转至idle状态。

  • Establish----BGP会话建立完成

    • 在该状态下,BGP可以和对等体交互Updata报文和Route-refresh报文。

    • keepalive和notification报文也在该状态可以看到。

BGP的工作过程
  1. 基于IGP协议实现IP路由可达。

  2. 启动BGP协议,并指定邻居关系。

    1. 邻居之间使用单播进行数据传输,通过三次握手机制,建立TCP会话。

    2. BGP之后的所有通讯都将基于TCP会话通道来传输。包括提供传输的可靠性。

  3. 使用open报文和keepalive报文进行邻居关系的建立。open报文用来携带建邻时使用的参数,keepalive报文用于参数的确认。最终完成对等体关系的建立。生成邻居表

  4. 使用update报文来共享路由信息。信息中将携带目标网络号、子网掩码及路径属性内容。之后,设备会将所有自己发送以及收到的路由信息记录在一张表中----BGP路由表

  5. 之后,将BGP路由表中最优的路由其他路由信息向对比,加载到本地全局路由表中。

  6. 此时,路由收敛完成,使用keepalive报文进行周期保活,默认的保活时间为180S,周期发送时间默认为保活时间的三分之一。

  7. 如果出现错误,则发送notification报文进行告警,断开BGP会话。

  8. 如果出现结构突变,则将使用update报文进行增量更新。

BGP的防环机制

EBGP水平分割

EBGP对等体之间在传递路由信息时,会携带一个AS_Path属性,该属性用于EBGP防环操作。----记录下该路由信息每次经过的AS的AS号。当路由器接收一个路由信息时,如果AS_Path属性中有本地的AS号,则丢弃该路由信息。

AS_Path属性功能

  • 记录所有AS号,用于防环

  • 干涉BGP选路

IBGP水平分割

BGP规定:当路由器从一个IBGP对等体学习到某条BGP路由时,不能将该路由通告给任何IBGP对等体----IBGP水平分割机制

问题:存在IBGP水平分割机制后,虽然可以解决环路问题,但是会导致部分路由器学习不到路由信息,最终导致数据通讯障碍。

解决方案:

  1. 构建全联的IBGP对等体关系

    1. 当AS内部设备数量过多时,IBGP邻居关系呈指数增长。会消耗大量的设备及链路资源。

    2. 网络的可扩展性较差。

  2. 打破IBGP水平分割机制

    1. 该机制不能被手工关闭。

    2. 将原本的IBGP邻居关系变更为EBGP对等体关系------联邦

    3. 将无法传递的路由信息强制性传递出去-----路由反射器

BGP的路由黑洞

由于BGP协议可以非直连建邻,所以导致BGP协议可能出现跨越未运行BGP协议的设备,导致BGP路由传递后,控制层面显示可达。但是数据层面,流量会流经未运行BGP协议的设备时,无法通过,形成路由黑洞

BGP同步更新规则----为了避免BGP路由黑洞问题

当一台路由器从自己的IBGP对等体学习到一条BGP路由时,它将不能使用该条路由或者将该路由通告给自己的EBGP对等体,除非它又从IGP协议学习到该路由信息,也就是要求IBGP路由与IGP路由同步

在华为和思科设备上,BGP同步更新规则默认关闭。而华为不允许打开该规则。
    路由膨胀

解决方案:

  1. 物理或逻辑拓扑全联的方案

  2. 让未运行BGP协议的设备运行BGP协议

  3. 在IGP协议中,重发布BGP路由信息

  4. MPLS---多协议标签交换。----该方案常在实际工程中解决BGP路由黑洞问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值