HCIA复习
OSI参考模型----OSI/RM
应用层
表示层
会话层
传输层 (端口号:0-65535;1-1023是注明端口)
网络层 (IP地址)
数据链路层
物理层
ARP协议
正向ARP---通过IP地址获取目的MAC地址
首先,主机通过广播的形式发送ARP请求,基于已知的IP地址,请求MAC地址。广播域内所有的设备都能收到请求包,所有收到数据包的设备都会记录数据包中源IP地址和源MAc地址的对应关系到本地的ARP缓存表中。之后,再看请求的IP地址,如果是本地的IP地址,则将进行ARP应答,将本地的MAC地址告知。如果不是本地的IP地址,则将直接丢弃该数据包。之后,再发送数据时,优先查看本地的ARP缓存表,如果表中存在记录,则将直接按照记录发送信息,如果没有记录,则再发送ARP请求包获取MAC地址。
反向ARP---通过目标MAC地址获取目标IP地址
免费ARP----利用正向ARP的原理请求自己的IP地址
1、自我介绍
2、检测地址冲突
TCP/IP
四层模型----TCP/IP标准模型
五层模型----TCP/IP对等模型
PDU---协议数据单元
L1PDU
L2PDU
...
L7PDU
应用层----数据报文
传输层----数据段
网络层----数据包
数据链路层----数据帧
物理层----比特流
封装和解封装
应用层----存在封装过程,取决于不同的应用程序
传输层----TCP、UDP(端口号)
网络层----封装IP地址
数据链路层---封装MAC地址
物理层----数据已经成为电信号,不存在封装
TCP/IP的跨层封装
目的:提高封装和解封装的速度,加快传输效率
跨四层封装(直连的交换机之间使用的STP协议)----应用层的数据封装完成后,直接封装网络层数据
应用在直连路由设备之间
跨三四层封装(SPF协议中直连的路由器使用跨四层封装)---在应用层封装之后直接封装二层数据
应用在直连交换设备之间
SOF---帧首定界符 (相当于是前导符)
MAC子层----介质访问控制层----802.3
LLC子层----逻辑链路控制层----802.2
DSAP:标识接收方上层处理数据报文的模块
SSAP:标识发送方上层梳理数据报文的模块
Control:决定我们数据传送方式的模块
1.无连接模式
2.面向连接模式----控制分片、重组、排序
IP地址
IPv4版本---32位二进制---点分十进制:把32位二进制分为4部分,每部分8位,进行二进制到十进制的转换
IPv6版本---128位二进制--冒分十六进制
网络位:网络位相同,则代表在同一个广播域
主机位:在同一个广播域中,使用主机位来区分不同的主机
掩码:由连续的1和连续的0组成,1代表网络位,0代表主机位。
IPv4地址分类(有类分址)
单播地址---一对一通讯
特点:既能作为源IP地址,又能作为目的IP地址
组播地址---一对多
广播地址---一对所有(仅作为目的IP地址使用 )
A:掩码:255.0.0.0
B:掩码:255.255.0.0
C:掩码:255.255.255.0
D---组播地址----只能作为目标IP地址使用,不能作为源IP使用
E---保留地址
IP地址分类原则:根据IP地址二进制的前八位数字特征分类
A:0XXX XXXX-----0-127
B:10XX XXXX-----128-191
C:110X XXXX-----192-223
D:1110 XXXX-----224-239
E:1111 XXXX-----240-255
特殊IP地址
1、127.0.0.1-127.255.255.254----环回地址----本地测试
2、255.255.255.255---受限广播地址
3、主机位全1---192.168.1.255/24----直接广播地址
区别:受限广播地址是不被路由器转发的,而直接广播地址会被转发。
4、主机位全0---192.168.1.0/24----网络
5、0.0.0.0----代表没有IP地址,或代表所有IP地址
6、169.254.0.0/16----本地链路地址/自动私有地址
注意:该IP地址不能进行跨网段通讯----以太网环境
VLSM----可变长子网掩码 思路:从主机位向网络位借位。
192.168.1.0/24
192.168.1.0 000 0000/25---192.168.1.0/25
192.168.1.1 000 0000/25---192.168.1.128/25
CIDR----无类域间路由 思路:取相同,去不同
192.168.0.0/24
192.168.1.0/24
192.168.2.0/24
192.168.3.0/24
192.168.0000 0000.0
192.168.0000 0001.0
192.168.0000 0010.0
192.168.0000 0011.0
192.168.0.0/22----超网
172.16.0.0/24
172.16.1.0/24
172.16.2.0/24
172.16.3.0/24
172.16.0.0/22----子网汇总
DHCP服务---动态主机配置协议
DHCP Discover---广播
交换机的转发原理:
交换机收到电信号后,将电信号转换为二进制,之后,截取到数据帧。
查看数据帧的源MAC地址,之后将该地址和数据进入的接口的对应关系记录在本地的MAC地址表中---300s。
之后,看数据帧中的目的MAC地址,基于目标MAC地址查询本地MAC地址表,如果表中存在记录关系,则按照记录进行转发;若表中无记录关系,则将进行洪泛(交换机将数据从除了进入的接口外的所有接口发送一遍)
交换机洪泛的三种情况:
1.遇到广播帧
2.遇到组播帧
3.遇到未知单播地址
DHCP ack报文----广播/单播
DNS服务---域名解析协议
URL---资源定界符,他和域名是有区别
协议+网站的域名信息+文件所在路径
目的:通过域名获取对应的IP地址
DNS端口号------53---TCP/UDP
DNS查询过程
路由器的转发原理
原理:路由器将基于数据包中的目的IP地址查询本地路由表。若路由表中存再记录,则无条件按照记录
转发;若没有记录,则将直接丢弃该数据包。
获取未知网段的信息
1.直连路由:路由器默认生成可用接口直连网段的路由条目
2.静态路由:由网络管理员手工配置
3.动态路由:所有路由器运行相同的路由协议,之后路由器之间彼此沟通,计算出未知网段的路由信息
直连路由的生成条件
1.接口双UP
物理层面UP:代表链路正常
协议层面UP:代表具备通讯协议
2.接口必须配置IP地址
HTTP协议----超文本传输协议
TCP---80
超文本---包含有超链接link和多媒体元素标记的文本
TCP协议
是一种面向连接的可靠性传输协议
可靠性 确认机制:传输确认,每接收一个数据段,则需要进行一次确认 重传机制:保障可靠性的最优机制,当一个数据段中某一个包丢失,会提醒要求重新传输这个报文 排序机制:传输一个数据段,被分为多个报文,从而不同路径传输,最终到达目的地的顺序会被打乱,所以需要重新进行排序。根据TCP数据包中的序号字段。 流控机制:滑动窗口机制----调节窗口大小从而对流量进行控制 |
MSS=MTU-TCP头部-IP头部(在TCP协议的选项字段)
PMTU----路径MTU发现协议
在IP报头中,有一个字段是DF,该字段表明了IP报文是否允许分片,PMTU功能开启后,会将该字段设置为1,表示不能分片。
此时当需要进行分片时,发现该报文不能分片,设备会丢弃该报文,并向发送方发送一个ICMP报文(数据不可达),同时鞋带上当前设备接口的MTU值。
发送方接收到该ICMP报文后,因为TCP重传机制,会重新发送一次数据,但是也会根据新的MTU值来生产新的报文进行传输。
TCP的面向连接
三次握手
1XX---100---通知信息
2XX----200---成功
3XX----300---重定向
4XX---403---客户错误
5XX---500---服务器错误--503
静态路由
静态路由的优点:
1.选路合理,由网络管理员手工配置(人选的,考虑全面)
2.安全,动态路由协议的计算是需要路由器之间交互数据报文的
3.不需要额外占用设备资源
静态路由的缺点:
1、配置量大
2、无法基于拓扑结构的变化而自动收敛
静态路由基本配置
方法一: [r1]ip route-static 23.0.0.0 24 12.0.0.2-----需要进行递归查找出接口
方法二: [r3]ip route-static 12.0.0.0 24 GigabitEthernet 0/0/0 需要激活代理ARP
解决方法:在下一个路由器的入接口上开启ARP代理功能
[r2-GigabitEthernet0/0/1]arp-proxy enable
代理ARP思路:当接收到ARP数据包后,路由器会查看本地路由表,若本地路由器中存在到达目的IP地址
的路由,此时该路由器会冒充目的IP地址来回答ARP报文。
方法三: [r1]ip route-static 192.168.2.0 24 GigabitEthernet 0/0/1 12.0.0.2 不需要进行递归查找
方法四: [r3]ip route-static 192.168.1.0 24 12.0.0.1 需要提前铺垫好所有在路由递归查找过程中的所有路由项。
静态路由的拓展配置
负载均衡 :当路由器访问同一个目标时具有多条开销相似的路径时,可以让流量进行拆分后同时从多条路径走,起到叠加带宽的效果
手工汇总 :当路由器可以访问多个连续的子网时,若均通过相同的下一跳,则可以将这些网段进行汇总计
算,直接写一条到达汇总网段的静态路由即可。可以减少路由表条目数量,提高转发效率。
路由黑洞 :在汇总中,如果包含网络中实际不存在的网段时,可能造成流量有去无回,浪费链路资源。合理的划分和汇总可以减少路由黑洞的产生
缺省路由:条不限定目标的路由。在查表时,如果所有路由均未匹配,则将匹配缺省路由。
空接口路由 :
防止路由黑洞和缺省路由相遇出环,在黑洞路由器上配置一条到达汇总网段指向空接口的路由。
1.NULL0---如果一条路由条目的出接口指向空接口,则匹配到这条路由信息的数据报将被丢弃
2.路由表的匹配原则---最长匹配原则(精确匹配原则)
浮动静态路由:通过修改静态路由的默认优先级,达到备份的效果
静态路由与BFD联动
BFD :双向转发检测,是一种全网统一的检测机制,用于快速检测、监控网络中链路或者IP路由的转发连通状况。
静态路由配置量大,但是无法自动收敛。图中R1配置静态路由到达R4的环回,原本应该是配置负载均衡,但是这里配置成浮动静态路由,正常的情况下走左边链路,故障的时候走右边的链路。
如果R1和LSW1中间的链路断掉或LSW1出现故障,可以切换到右边的链路吗?可以
如果R2和LSW1中间的链路出现故障,是不能切换到右边的链路,如何解决呢?
R1无法感知到R2和LSW1之间的链路,只能感知到LSW1到R1之间的链路包括LSW1,如果交换机噶了,那么LSW1
的0/0/1接口就挂了,与之就会影响R1的0/0/0接口down掉,R1就会知道。比如R2的0/0/0接口挂掉,只有LSW1的
0/0/2会变down,无法影响到LSW1和R1的链路,R1无法感知到R2和LSW1之间的链路,导致不能切换到右边链路。那
有什么办法可以感知到?使用BFD,BFD检测机制:BFD的检测机制是两个系统建立BFD会话,并沿他们之间的路径周
期性发送BFD控制报文,如果一方在既定的时间内没有收到BFD控制报文,则认为路径上发生了故障.OSPF协议使用
hello包确保邻居存在,发空报文给邻居,回复就存在,不回复就不噶了,也可以检测故障,那为什么还要BFD和OSFP
联动,让BFD去帮忙呢?
OSPF 10S发送一次hello包去保活,但是如果OSPF网络在收敛完成后,突然突发结构突变,起码要DR/BR选举出来,
才能收敛完成,就算在点到点网络,也需要几秒钟的时间去收集拓扑信息,然后再花时间完成拓扑的计算。然而在某些领
域,要求快速收敛,要求减小设备故障对业务的影响,提高网络的可靠性,网络设备需要能够尽快检测到与相邻设备间的
通信故障,以便及时采取措施,保证业务继续进行。OSPF的发送hell包时间最小改到1S,然而BFD可以实行ms收敛
图中的配置:
[R1]ip route-static 10.9.9.0 24 10.1.12.1
[R1]ip route-static 10.9.9.0 24 10.1.23.1 preference 90
[R2]ip route-static 0.0.0.0 0 10.1.134.3
[R3]ip route-static 0.0.0.0 0 10.1.134.3
[R4]ip route-static 10.1.12.0 24 10.1.134.1
[R4]ip route-static 10.1.23.0 24 10.1.134.2
R2关闭0/0/0接口,查表,R1没有切换到右边链路
先删除[R1]ip route-static 10.9.9.0 24 10.1.12.1,然后进行BFD的配置
BFD配置
[R1]bfd //启动BDF协议
[R1]bfd aa bind peer-ip 10.1.12.1(对端IP地址)---创建bfd会话,会话名称为aa(仅具有本地意义)
[R1-bfd-session-aa]discriminator local 20 ---会话本地标识符
[R1-bfd-session-aa]discriminator remote 10 ---会话对端标识符
[R1-bfd-session-aa]commit --必须提交配置,否则不生效
[R1]ip route-static 10.9.9.0 24 10.1.12.1 track bfd-session aa 将静态路由和BFD联动起来
[R1]display bfd session all 查看BFD所有会话
BFD需要双方都配置,R2的配置:
[R2]bfd
[R2]bfd bb bind peer-ip 10.1.12.2
[R2-bfd-session-bb]discriminator local 10
[R2-bfd-session-bb]discriminator remote 20
[R2-bfd-session-bb]commit
抓取R2 的0/0/0接口,发现发一个BFD包连1S都没用到
检测一下看是否能切换:LSW1-GigabitEthernet0/0/2]shutdown
意思是BFD状态挂了
[R1]display bfd session all 查看BFD所有会话
此时的优先级为90的路由被加载出来,R1切换到右边的链路
怎么判断R1和R2算真正的无法通信,去切换路由?
缺省情况下(即默认的情况下),bfd会话每隔1000ms(可修改)发送一次报文,当连续三次(可修改)报文均无响应后,则bfd会话状态断开,从而引起联动协议失效。
[R1-bfd-session-bb]min-rx-interval 10 ---配置BFD报文接收时间间隔为10毫秒
[R1-bfd-session-bb]min-tx-interval 10 ---配置BFD报文发送时间间隔为10毫秒
[R1-bfd-session-bb]detect-multiplier 10 ---配置本地检测倍数为10(可改范围3-50)倍,即十次未接收到BFD报文则认定故障
网络类型及数据链路层协议
网络类型是根据我们数据链路层所运行的协议及规则来划分。
网络类型的分类
P2P----点到点---point to point
MA---多点接入网络
BMA---广播型多点接入网络
NBMA----非广播型多点接入网络
数据链路层协议
MA网络
以太网协议
特点:需要使用MAC地址对我们的设备进行区分和标识
原因:(为什么以太网需要使用MAC地址进行物理寻址)
利用以太网协议建立起来的二层网络中可以包含多个接口,每个以太网接口之间都可以进行交互以太网数据帧,从而进行通讯,若不存在MAC地址,则无法找到对应的接收数据帧的设备。
所属类型------BMA
以太网网络的构建方式-----使用以太网线缆,连接设备的以太网接口,形成的网络称为以太网络,所运行
的协议就是以太网协议。
以太网的特色----可以提供极大的传输速率----频分技术
P2P网络
定义:当一个网络中只能存在两台设备,并且不允许第三台设备加入,这样的网络称之为P2P网络。
P2P网络的搭建----使用串口线缆连接设备的串线接口,形成的网络
串口线----一种比较古老的线缆,早期主要使用的线缆之一
串口的标准:
E1----2.048M/bps
T1----1.544M/bps
HDLC
High-Level Data Link Control----高级数据链路控制协议
标准:
满足工业标准的HDLC协议--ISO组织(IBM公司--SDLC--是一种面向比特的同步数据链路控制协议---以帧为单位来传输数据)
不满足工业标注的HDLC协议---各家厂商根据ISO标准的HDLC上进行修改得出
注意:标准的HDLC和非标的HDLC彼此之间不兼容。(思科、锐捷)
HDLC网络搭建
[R1-Serial4/0/0]link-protocol hdlc //修改网络类型为HDLC
Address:写的unicast,代表没有填写内容,因为点到点网络实际上不需要IP地址就可以通讯,而配置IP地址的原因,仅仅是为了服务上层协议。
Control:原本为了做一些策略,但该字段在现今串线网络当中没有备用到,使用0填充
protocol:表示上层封装协议的类型,跟以太网协议中的类型字段相似
HDLC的接口地址借用
[R1-Serial4/0/0]ip address unnumbered interface LoopBack 0 --借用环回0的IP地址
[R1]ip route-static 12.0.0.0 24 Serial 4/0/0 ---不写下一跳的原因在于,1.如果用下一跳方式书写,则需要递归路由;2.因为接口没有IP地址,故无法生成下一跳的直连路由。
在最后需要在双方设备补充上对端设备的静态路由信息,保障数据可以进行查表转发。
将环回接口IP地址配置为对端接口IP地址的同网段地址,且掩码为32。
PPP----点到点协议
PPP协议优点
1.相较于HDLC,PPP协议具备良好的兼容性。统一标准协议(任何串行接口或串行线缆,只要能够支持全双工通讯,就可以支持PPP协议)
2.具有良好的可移植性。----PPPoE
3.可以完成认证和授权。
4.没有重传机制,开销小,速度快
PPP会话的搭建
PPP协议建立会话需要经过三个阶段
链路建立阶段----LCP协议
认证阶段----------PPP认证(可选项)
网络层协议协商阶段----NCP协商
PPP链路建立阶段
Dead阶段----被称为物理层不可用阶段
当通讯双方的两端检测到物理链路激活,就会从dead阶段跃迁到Establish阶段
Establish阶段----会进行LCP参数协商
在该阶段,当LCP参数协商成功后,会进入opened状态,表示底层链路已经建立。
Authenticate阶段----大多数情况下,链路两端的设备是需要经过认证阶段后才能进入到网络层协议协商阶段。
PPP链路在缺省情况下,不要求进行认证
如果要求进行认证,则在链路建立阶段必须指定认证协议。
认证方式是在双方链路建立阶段进行协商的。
Network阶段----PPP链路进行NCP协商
通过NCP协商来选择和配置一个网络层协议并进行该网络层协议的参数协商。
只有当响应的网络层协议协商成功后,该网络层协议才可能通过这条PPP链路进行发送。
NCP协议成功后,PPP链路将保持通讯状态
若PPP运行过程中,物理链路断开、认证失败、定时器超时、手工关闭连接等操作都会导致链路进入Terminate阶段
Terminate阶段----链接关闭的阶段
若此时所有的链路资源均已被释放,则通讯双方都将回到初始态Dead状态,直到双方重新建立PPP连接。
PPP数据帧结构
LCP协议-----链路控制协议----主要用于完成PPP会话建立的第一阶段协商过程
NCP协议-----网络控制协议------是一系列协议的总称,完成PPP会话建立第三阶段时针对网络层协议进行
协商。网络层所使用的协议不同,则对应的NCP协议不同。
LCP具有三大报文类型
链路配置报文----重点
链路终止报文
Terminate-Request:终止请求
Terminate-ACK:终止确认
链路维护报文
echo-request------回波请求
echo-reply----------回波应答
LCP建立
1.MRU值:在PPP数据帧中所允许携带的最大数据单元,单位字节,默认1500
2.认证方式:根据第二阶段认证来判断,若存在认证,则需要协商认证方式;若不存在认证,则不需要协商。
3.魔术字:用来检测链路中是否存在环路,是由本地设备随机生成的字符串(设备序列号、硬件地址)
OSPF基础
OSPF七种状态机
down---关闭状态----一旦启动了OSPF协议,则发出hello包,并进入下一状态
init----初始化状态----收到的hello包中,存在自己的RID值,则进入下一状态
2-way----双向通讯状态-----邻居关系建立的标志。
条件匹配:匹配成功则进入下一阶段,不成功则停留在2-way
exstart----预启动状态----使用未携带信息的DBD包进行主从关系选举,RID大的为主
exchange-----准交换状态----使用携带目录信息的DBD报文进行目录共享
loading------加载状态-----邻居间使用LSR/LSU/LSAck三种报文来获取完整的TOPO信息
full----转发状态----修成正果------标志邻接关系的建
条件匹配
设备接口名称
DR---指定路由器
BDR---备份指定路由器
DRother----其他路由器
OSPF称为邻接关系的条件
点到点----不用选举DR和BDR----直接开始建立邻接关系(加快收敛的方法)
MA网络----在一个网络中,不限制节点数(会选举DR和BDR)
选举规则
接口优先级----->0-255---->优先级越大,为DR,次一级为BDR(华为默认为1)
RID----越大越优先
选举范围----一个广播进行一次条件匹配角色之间的关系
在一个广播域中,所有的设备保持邻接关系,将会出现大量的重复更新,所以需要进行DR/BDR的选举,所有非DR/BDR的设备之间仅需保持邻居关系即可
DR和DRother---->邻接关系
DR和BDR---->邻接关系
BDR和DRother---->邻接关系
DRother和DRother---->邻居关系
1.一个广播域中,在 DR和BDR具备情况下,至少需要四台路由器才能看到邻居关系
2.指定路由器是针对一个广播域中选取的,所以其实是一个接口概念
非抢占性选举模式
选举过程
1. DR、BDR的选举是通过Hello报文来实现的,选举过程发生在2-way状态之后
2. 路由器将自己的接口的DR优先级填写hello报文中的“DR优先级”字段
3. 在接口视图下可以修改DR优先级(若DR优先级修改为0,则代表不具备DR和BDR的选举资格)
4. 当路由器接口激活OSPF后,首先检查网络上是否已经存在DR设备,如果存在则接收DR角色。 若不
存在,则拥有最高DR优先级的设备称为DR(RID)
5. BDR的选举过程和DR选举过程相同,但是是在DR选举成功之后。
DR设备使用组播224.0.0.5想该MA网络发送消息。
而DR和BDR使用224.0.0.6监听该MA网络的消息。
DROther使用224.0.06发送自己的LSU报文
NBMA网络类型中存在。
在NBMA网络类型下,如果需要启动OSPF协议,需要手工指定邻居,否则不会发送hello报文。
若不发送hello报文,则邻居状态处于attempt状态
1.启动OSFP配置完成后,OSPF将向本地所有运行OSPF协议的接口组播224.0.0.5发送hello报文; hello报文中携带有本地的RID以及本地已知的邻居RID;之后生成邻居表。
2.邻居关系建立后,进行条件匹配;匹配失败则停留在邻居关系;仅hello报文保活
3.匹配成功的邻居将开始建立邻接关系。
4.首先使用未携带数据的DBD报文来进行主从关系选举;之后使用携带数据的DBD报文来共享数据库 目录;之后本地使用LSR/LSU/LSACK报文来获取未知的LSA信息;
5.完成本地数据库的建立---生成数据库表。
6.之后本地基于数据库生成有向图和最短路径树,之后计算本地到达拓扑中所有未知网段的最短路
7.径,并将其添加到路由表中。
收敛完成,hello报文周期保活。每30min进行一次周期更新
结构突变
1. 新增网段----直接在邻接关系的接口使用LSU进行更新,将内容告诉于邻居。并需要邻居的ACK确 认。
2. 断开网段----直接在邻接关系的接口使用LSU进行更新,将内容告诉于邻居。并需要邻居的ACK确 认。
3. 无法沟通----dead time----四倍的hello时间。
1. 启动OSPF进程[r1]ospf 1 router-id 1.1.1.1 //进程号仅具备本地意义,手工配置RID方法
2. 创建区域 [r1-ospf-1]area 0
3. 宣告
[r1-ospf-1-area-0.0.0.0]network 1.1.1.1 0.0.0.0 //精准宣告
[r1-ospf-1-area-0.0.0.0]network 12.0.0.0 0.0.0.255 //宣告网段
宣告使用反掩码形式
OSPF宣告时用反掩码,达到精准宣告的目的,就是宣告具体的接口IP地址去激活指定的接口,也可宣告直连的网段,激活接口
32位二进制,使用点分十进制表示。连续的0+连续的1;并且0代表不可变;1代表可变
华为体系中,优先级为10;
OSPF的COST====参考带宽(100Mbps)/实际带宽
[r1-ospf-1]bandwidth-reference 1000 //修改参考带宽-----所有设备均需修改
一条OSPF路径的Cost等于从目的地到本地路由器沿途的所有设备的入接口Cost值的总和。
OSPF报文格式
OSPF报文头
版本(Version)
对于OSPFv2而言,该字段值恒为2
类型(Type)
描述OSPF数据包的类型
Hello------1
DBD-------2
LSR--------3
LSU--------4
LSACK----5
报文长度(Packet Length)
整个OSPF报文的长度-----单位字节
路由器ID
发出该报文的路由器的RID值
区域ID
发出该报文的接口所属于的区域的ID值
校验和
验证OSPF整体数据报文的有效性
验证类型
指示该报文使用的认证类型
不认证---0;简单认证----1;MD5认证----2;
认证数据
用于报文认证所对比的内容
若认证类型为不认证,则该字段全部用0填充
OSPF的认证功能在存在于所有的数据交互过程中,对于任何一种数据报文,都需要进行认证。
在认证的过程中,需要对比两个字段,首先对比认证类型字段。
若相同,才会对比认证数据字段。
网络掩码(Network Mask)
该字段填充的是发送该报文的网络掩码
两台OSPF路由器如果通过以太网接口直连,那么双方的直连接口必须配置相同的网络掩码。
(点到点网络不需要对比该参数)
注意:OSPF建立邻居关系需要对比子网掩码信息是华为独有,别的厂商没有这个要求。
Hello间隔
两台直连路由器需要确保直连接口的Hello时间间隔相同,否则邻居关系无法建立。
缺省情况下,P2P和BMA类型的下,为10S;P2MP和NBMA为30S。
可选项(Options)
该字段一共8bit,每个比特位都用于指示该路由器的某个特定的OSPF特性。
而OSPF邻居关系建立过程中,该字段中的某些比特位将会被检查,可能影响OSPF邻居关系 建 立。(特殊区域的标记)
路由器优先级
[r2-GigabitEthernet0/0/0]ospf dr-priority ? //修改OSPF接口的DR优先级
INTEGER<0-255> Router priority value
路由器失效时间
两台直连路由器要建立OSPF邻居关系,需要保证双方接口的dead time时间相同,否则邻居
关系无法正常建立。
缺省时间为hello的4倍。
指定路由器
网络中DR设备的接口IP地址。
若没有DR或DR没有选举出来,则填充0.0.0.0
备份指定路由器
网络BDR设备的接口IP地址
若没有BDR或未选举结束,则填充0.0.0.0
邻居
在直连链路上发现的有效邻居,此处填充的是邻居的RID值,如果发现多个邻居,则包含多个
邻居字段。
所有224.0.0.X格式的组播地址称为本地链路组播,目的IP地址是本地链路组播的数据包中的TTL值被 设定为1。所有的本地链路组播都会存在对应的组播MAC地址,01-00-5e-后24位(组播IP地址的后24 位)
子网掩码
在R2上修改网络掩码后,R2会将与R3的状态立即修改为Down状态。而R3会在40S死亡时间之后进行状态切换。
原因在于,R2在修改IP地址的掩码后,会认为之前的连接中断,需要重新建立连接,所以重置状态机。
而R3则认为是无法沟通。故会等待死亡时间超时后才切换状态。
并且,该情况,在R3等待40S周期内,还是可以向R2转发数据,R2可以接收到该数据包,但无法回复
Hello
时间
[r1-GigabitEthernet0/0/0]ospf timer hello 20
Dead
时间
[r1-GigabitEthernet0/0/0]ospf timer dead 120
注意:修改
hello
时间,则死亡时间随之改变,而仅修改死亡时间,
hello
间隔时间不变
。
OSPF
特殊区域标记
跟修改掩码效果相同。
认证字段
两者均需要等待死亡时间超时,才会从full
状态切换到
down
状态。
DBD
包
*使用未携带数据的
DBD
报文进行主从关系选举
*使用携带数据的
DBD
报文进行目录信息共享
*使用未携带数据的
DBD
报文进行确认
★接口最大传输单元(接口的MTU)
华为将该值设置为0
华为默认不对MTU值进行检测
[r1-GigabitEthernet0/0/0]ospf mtu-enable
如果两边均开启该功能,则会进行MTU检测,并且进行检测时,若两边不同,则状态卡在 exstart状态。
★I位----主从关系选举
如果该位置为1,则不会携带LSA头部。
★M位----代表后续是否有多个DD报文
置为1,则代表后续还有DD报文
置为0,则代表该报文为最后一个DD报文
★MS位----代表主设备
该比特位置为1,则代表Master
在主从关系选举完成之前,各个设备均会认为自己的master。
★DD序列号
用于确保DD报文传输的有序和可靠性。----DD序列号逐次加1。
DD序列号必须是由Master路由器决定,而从设备只能使用Master设备发送来的DD序列号来发送自己的DD报文。(隐性确认机制)
★LSA头部
当路由器使用DD报文来描述自己的LSDB时,LSA的头部信息被包含在内。
一个DD报文可以包含一个或多个LSA头部信息。
LASCK包
1. OSPF
在
BMA
网络类型的接口上通常以
组播
的方式发送
hello
报文、
LSU
报文和
LSACK
报文。以
单播
的形式发送DD
报文和
LSR
报文
2. OSPF在网络类型为P2P的接口上以组播的方式(224.0.0.5)发送所有的协议报文。并且OSPF 在P2P类 型的网络中不会选举DR和BDR。
该接口类型信息中,缺少了在BMA网络中看到的DR优先级、DR和BDR的描述信息。
[r2]display current-configuration configuration ospf //
查看所有当前配置中的关于
OSPF
的
3.环回接口(虚拟接口)
Type----P2P-----
在思科中有专门定义的
Loopback
类型作为环回接口的类型,而华为中没有定义,使用 P2P来填充(没有意义)。
所有通过
OSPF
学习到的环回接口的路由掩码信息都是
32
位,这是因为环回接口是一个模拟的接口, 它实际上并没有连接用户,所以没有其余的IP
地址存在于环回接口之下,只有一个可用的
IP
地址,故而 使用32
位掩码来直接标识环回接口。保证路由信息的精确性。
----
避免产生环路或者路由黑洞。
4.P2MP接口类型
一.OSPF在P2MP类型的接口上通常以组播的方式发送hello报文,以单播的方式发送其它报文。
二. P2MP
类型无法由设备自动生成,必须由管理员手工更改。
三. P2MP
类型网络不需要选举
DR
和
BDR
。
OSPF
的不规则区域
远离骨干的非骨干区域
1.使用tunnel隧道 :在R2和R3之间构建一条隧道,之后,将这个隧道宣告到Area0,相当于将R3这个非法的ABR设备合法化。
2.使用vpn隧道解决不规则区域的问题 :可能产生选路不佳 /可能造成重复更新 /因为虚拟链路的存 在,R2和R3之间也需要建立邻居。导致他们之间维护的周期性数据将穿越 Area1,导致中间区域的资源消耗过大。
3.虚链路---Vlink
专门为了解决OSPF不规则区域所诞生的技术。是一种虚拟的、逻辑的链路。
[r2-ospf-1-area-0.0.0.1]vlink-peer 3.3.3.3
[r3-ospf-1-area-0.0.0.1]vlink-peer 2.2.2.2
虚链路的配置条件:只能穿越一个区域。
Vlink链路实际上全部使用单播报文来描述信息。
Vlink被视为骨干区域的一段延伸----vlink永远属于Area0。
使用vlink解决不规则区域的问题:
1.因为虚拟链路的存在,R2和R3之间也需要建立邻居。导致他们之间维护的周期性数据将穿 越 Area1,导致中间区域的资源消耗过大。
2.只能穿越一个区域。实际上,vlink不仅仅应用在我们上述两种不规则区域,还可以用来修复 一些次优路径或者骨干区域不健壮问题。
4.使用多进程双向重发布
重发布:把一种路由信息以另一种路由协议的方式发布出去。
[r3-ospf-1]import-route ospf 2 ---将OSPF进程2的路由导入到OSPF进程1
链路状态老化时间(Link-State Age) 16bit,单位S 当该LSA被始发路由器产生时,该值被设置为0,之后随着该LSA在网络中被洪泛,老化时间逐渐累积。 最大老化时间----3600S-----当到达该时间后,该LSA会被本地路由器删除。 在OSPF网络中,只有始发路由器能够提前使该LSA老化,并删除全网该LSA信息。 组步调计时器----cisco----240S |
可选项 内容与hello包相同 |
链路状态类型(Link-State Type) 指代该条LSA的类型 |
链路状态ID 用来标识LSA的,不同类型的LSA,对该字段的定义不同。 |
通告路由器 产生该LSA的路由器的RID |
链路状态序列号 32位bit,逐次加一 起始:0X80000001;截止:0X7FFFFFFF 序列号空间 线性序列号空间 循环序列号空间 棒棒糖序列号空间 |
校验和 会参与到LSA的新旧关系对比 |
判断LSA的新旧关系
链路状态序列号、老化时间、校验和
1. 具备较高序列号的LSA信息更优
2. 具备相同序列号的LSA,选择拥有较大校验和的LSA
3. 具备相同序列号和校验和,如果某条LSA的老化时间被设置为最大老化时间,则认为该 LSA最新。
4. 具备相同序列号和校验和,没有任何一条LSA的老化时间为最大老化时间,会对比两个 LSA的老化时间之差。
1. 当差值大于15min(MaxAge Diff:一个LSA实例从始发设备发出,直到被洪泛到整 个 AS边界所需要的最长时间),会认为两条LSA是不同的,选择较小的LSA
2. 当差值小于等于15min,会认为两条LSA相同,选择随机一个
Type-1 LSA----Router
1.对于一类LSA,网络中所有设备都会发送,并且只发送一条
2.同属一个区域的接口共同使用一个一类LSA信息进行描述。
若存在多个区域,路由器会为每个区域单独产生一个一类LSA,并且每个LSA只描述接 入该区域的接口。
Type-2 LSA----Network
1.在一个网络中,只需要一台设备发送
2.该
LSA
仅存在于
MA
网络中,由
DR
设备产生
3.链路状态ID
为
DR
的接口
IP
地址
Type-3 LSA---Sum-Net
1.通告者均为
ABR
设备
2.每一条路由项都使用单独的一条
LSA
信息进行描述
3.该
LSA
中的开销值,指的是通告者到达目的网段的开销值
4.设备在接收到
3
类
LSA
之后,需要根据一类
LSA
和二类
LSA
计算的拓扑信息来寻找三
LSA
的通告者。
5.如果,通告者是所在区域的
ABR
设备,那么自然而言,设备可以通过一类和二类
LSA
找到
通告者; 若不是本区域的ABR
设备通告的,则需要转换通告者。
Type-5 LSA----External
1.通告者---ASBR
2.LS ID----域外路由信息的目标网络号
3.传播范围----整个OSPF域
4.五类LSA中携带的是域外路由信息,通过重发布导入OSPF网络,因为不同协议对开销值的 算法标准不同,所以,在路由导入之后,将直接舍弃原本的开销值,之后给路由赋予一个规定值-----种子度量值
OSPF的种子度量值为1
[r4-ospf-1]import-route rip 1 cost 5
5.E位:
* 示外部路由使用的度量值类型,OSPF定义了两种外部路由度量值类型,分别为Metric-Type-1(E=0)、Metric-Type-2(E=1)
* Type-1:所有设备到达域外目的网段的开销值为本地到达ASBR的开销值+种子度量值
* Type-2:域内所有设备到达域外目的网段的开销值等于种子度量值;OSPF默认使用类型 2.
*[r4-ospf-1]import-route rip 1 cost 5 type 1
6.外部路由标记
*一个只有外部路由才能携带的标记,经常被用于部署路由策略或策略路由。
*在华为路由器上,缺省时,该字段值被设置为1。
7.转发地址---FA
FA字段默认为0.0.0.0;则到达该外部网段的流量会被转发引入到发送这条LSA的ASBR设备。
而若FA字段不为0.0.0.0,则流量会被发送给这个FA字段所表示的地址。
作用:解决次优路径问题-----与ICMP中的重定向报文具有相同效果。
FA字段被设置为其余数值的条件:
*引入外部路由的ASBR在其连接外部网络的接口上激活了OSPF协议。
*该接口的网络类型为BMA或者NBMA。
*该接口的IP地址属于OSPF协议配置network命令范围。
*该接口没有被配置为静默接口
Type-4 LSA------ Sum-Asbr
- 链路状态ID------ASBR的RID值
- 度量值----填写的是该通告者到达ASBR的Cost值
- 四类LSA的任务就是在辅助五类LSA完成验算过程,找到ASBR的位置,里面只携带一个开销 值。
Type-7 LSA----NSSA
1. E位----表示允许洪泛五类LSA信息,如果做成特殊区域,则E位为0
2.N位---属于opention字段,允许处理七类LSA
3. P位---不属于opention字段,代表支持7转5操作。
4.在7类LSA中,在不存在选路不佳的情况下,一般会使用通告者(ASBR)设备的环回接口地
址作为 转发地址。
* 如果存在多个环回接口,则使用最先宣告的环回接口地址作为转发地址。
*如果没有环回接口,则使用武力接口的地址作为转发地址。
*华为逻辑-----cisco---选择最后一个宣告的IP。
路由撤销
一类
LSA
撤销
一类
LSA
实质是是在通过:序列号
+1
;校验和不变;老化时间
=0
的新
LSA
来覆盖掉老的一 类
LSA
。
二类
LSA
撤销
与一类
LSA
玩法相同
三类
LSA
撤销
1.三类
LSA
的撤销方式:
seq
不变,校验和不变,老化时间设置为
3600S
2.
若采用
seq+1
,校验和不变,老化时间不变的方式撤销,当需要撤销的三类
LSA
数量较大 时,会导 致路由器会消耗大量计算资源。
五类与七类
LSA
撤销
1.三类
LSA
的撤销方式:
seq
不变,校验和不变,老化时间设置为
3600S
2.若采用
seq+1
,校验和不变,老化时间不变的方式撤销,当需要撤销的三类
LSA
数量较大 时,会导 致路由器会消耗大量计算资源。
OSPF优化
主要目的
----
减少
LSA
的更新量以及数量。
1.
路由汇总(减少骨干区域的
LSA
更新量)
2. OSPF
特殊区域(减少非骨干区域的
LSA
更新量)
OSPF路由汇总(路由聚合)
1. OSPF
路由汇总是由手工部署的
2. OSPF
的汇总称为
----
区域汇总,因为
OSPF
在区域之间才传递路由信息,并且是对路由进行 汇总而非 LSA信息。
域间路由汇总
域外路由汇总
域间路由汇总
[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设备自身的明细路由。
汇总会抑制明细路由的发送。
域间路由汇总只能汇总ABR设备自身通过一类LSA和二类LSA信息学习到的路由条目。
域外路由汇总
[r1-ospf-1]asbr-summary 10.1.0.0 255.255.0.0
5
类
LSA
汇总之后的开销值计算方法:
Type-2------
汇总网段的开销值等于所有明细路由开销值中的最大值
+1
Type-1------
汇总网段的开销值等于所有明细路由开销值中的最大值
OSPF的特殊区域
第一大类-----1、不能是骨干区域;2、不能存在虚链路;3、不能存在ASBR设备
末梢区域(Stub Area)
1. 如果将一个区域配置成末梢区域,则这个区域将不再学习4类和
5
类
LSA
。----ABR设备将
不会在给
该区域转发4类和5类LSA信息。
2.该区域将拒绝学习域外路由信息,但是,其依然具有访问域外路由的需求,所以,由该 区域 ABR设 备,会自动生成一条指向骨干区域的3类LSA缺省路由。
[r5-ospf-1-area-0.0.0.2]stub
[r1-ospf-1-area-0.0.0.2]stub
注意:一旦做特殊区域,则所有区域内的设备都必须做特殊区域。
完全末梢区域(Totally Stub Area)
在末梢区域的基础上,进一步拒绝学习3类LSA,仅保留3类缺省即可。
[r1-ospf-1-area-0.0.0.2]stub no-summary
该命令仅需要在ABR设备上配置即可
第二大类特殊区域----1、不能是骨干区域;2、不能存在虚链路;3、存在ASBR设备。
非完全末梢区域(NSSA)
1. 如果将一个区域配置成非末梢区域,则这个区域将不再学习4类和5类LSA。-----ABR设备将 不会在给该区域转发4类和5类LSA信息。
2.该区域依然需要将域外路由信息导入,但因为该区域拒绝
5
类
LSA
,所以,只能以
7
类
LSA
的 形式来 继续传递域外路由信息。
之后,在
7
类
LSA
信息离开
NSSA
区域后,需要再转换成
5
类
LSA
进行传输。
3.该区域将拒绝学习域外路由信息,但是,其依然具有访问域外路由的需求,所以,由该区域
ABR
设 备,会自动生成一条指向骨干区域的7类
LSA
缺省路由。
O_NSSA ------7
类域外路由信息的标记,默认优先级也是
150
。
完全的非完全末梢区域(Totally NSSA)
在
NSSA
的基础上,进一步拒绝学习
3
类
LSA
,产生一条
3
类缺省
LSA
。
[r1-ospf-1-area-0.0.0.2]nssa no-summary
NSSA环路问题
NSSA
区域缺省路由配置错误可能会导致路由环路的产生
[r3-ospf-1-area-0.0.0.1]nssa default-route-advertise
* R4和R5无法下发OSPF缺省路由的原因是本地路由表中的静态缺省路由被R3发送的七类缺省 路由所替代。
*当删除R3的下发命令后,R4和R5均会下发七类缺省路由,并学习对方的七类缺省路由,但是 并不会将 从对方学习到的七类缺省路由加入到路由表中。
1. NSSA区域的七类LSA实际上是需要ASBR或者ABR自己下发的。
2. 而如果多台设备均下发成功七类LSA缺省路由,则虽然都会收到LSA信息,但并不会将其余设 备的 LSA缺省信息加入到本地路由表中。因为始终相信自己的缺省路由是最好的。
3. 而对于第一台发布七类缺省路由的设备而言,会认为我身上已经有了一条去往外部区域的路 由,并 且本地作为通告者,那么当他接收到其他设备发送来的七类缺省路由,也不会进行学 习。-----华为 运用该逻辑解决Totally NSSA中的环路问题。
1. 华为为了解决环路问题,保留了NSSA区域由ABR产生的七类LSA缺省路由,这样 做的好处就 是使得设备相信自己产生的这条LSA,而对于其他设备传递来的七类 LSA,只接收到不使用。
2. 这样一来,ABR设备就不会具备指向NSSA区域内部的缺省路由,更不会将这个缺 省路由传递 给骨干区域,从而避免环路问题。
OSPF规定:在NSSA区域中,可能同时存在多个ABR或ASBR,为了防止路由环路产生,边界路由器 之间不计算对方发布的缺省路由。
OSPF
对进行
7
转
5
操作的规范:
1. P
比特位用于告知路由器该
Type-7 LSA
是否需要转换
2.
缺省情况下,转换路由器是
NSSA
区域中
RID
值最大的
ABR
3.
只有
P
比特位和
FA
字段不为
0
的
Type-7LSA
才能被转换为五类。
[r4-ospf-1-area-0.0.0.1]nssa suppress-forwarding-address //在进行7转5时,删除转发地址
[r1-ospf-1-area-0.0.0.1]nssa translator-always //强制开启7转5操作,在ABR设备上配置
若本地存在两条LSA除了通告者不同外,只有FA字段的值不同,那么对于这两条五类或七类LSA而 言,FA字段不为0.0.0.0的LSA优先级更高。
NSSA区域如果没有FA字段,将会有很大的可能因为7转5操作出现次优路径
重发布和路由策略
重发布
在同一个网络拓扑结构中,如果存在多种不同的路由协议,由于不同的路由协议对于路由项的处理机制不同,这就会导致在网络中造成路由信息的隔离。而在路由协议的边界设备上,将某种路由协议的路由信息引入另一种路由协议中,这个操作被称为路由引入(Route Importation
)或者路由重发布
。---- 执行该操作的技术被称为重发布。
作用:在一个网络中,若运行多种路由协议或相同路由协议的不同进程;协议之间不能直接沟通计 算,进程之间也是相互独立,所以需要使用重发布技术来实现路由的共享。
执行条件
1.
必须存在一个边界设备
------
同时连接两种路由协议或两种进程,同时学习到两种来源的路由信息, 之后进行路由共享
2.
关注种子度量值
----
起始度量值。
A
协议和
B
协议的开销计算算法不同,无法直接使用。故将
A
协议发布到
B
协议时,边界设备将
不携带
A
协议的度量值,而是共享到
B
协议后,由边界设备在路由中添加一个起始度量值。
规则
1.
将
A
协议引入到
B
协议中,在边界设备中的
B
协议上配置。
----
表明重发布技术的配置位置。
2. 将A
协议引入到
B
协议中,边界设备会将
所有通过
A
协议学习到的路由
以及
边界设备上宣告在
A
协议
中的所有直连路由
,全部共享到
B
协议中。
------表明重发布时发布的信息内容。
名词解释
点
单点:两个协议或两个进程之间存在一个边界设备
双点:两个协议或两个进程之间存在两个边界设备
多点:两个协议或两个进程之间存在多个边界设备
向
单向:仅将
A
协议路由共享到
B
协议中
双向:
A
和
B
协议的路由均共享到对方
A--->B
:
[r2-rip-1]import-route ospf 1
通过重发布技术将其他协议的路由信息导入到RIP中,RIP协议赋予其的种子度量值为0。
修改RIP种子度量值
[r2-rip-1]default-cost 5 ----修改全局种子度量值
[r2-rip-1]import-route ospf 1 cost 10 -----修改特定路由的种子度量值
注意:两条命令同时执行时,将按照第二条执行。
静态--->B:
[r2-rip-1]import-route static
导入静态RIP赋予的种子度量值也是0
重发布在导入的路由中无法将缺省路由引入。
直连--->B:
[r2-rip-1]import-route direct
除了R1的直连网段外,所有直连均会导入。
若边界路由器进行A--->B的重发布以及直连--->B的重发布,并且两次包含相同的路由信息,则将会优先学习直连导入的路由信息。
双点重发布
默认
RIP
和
OSPF
协议进行双点重发布,由于两者的优先级不同,故第一台
ASBR
设备重发布动作结束 后,将影响其他ASBR
设备的路由表。使得路由可能被回传到源协议当中,
发生路由回馈-------A协议的路由重发布到B协议当中后,又被重发布回A协议。路由回馈可能会导致选路不佳,甚至是路由环路的出现。
华为为了解决路由回馈问题,将
OSPF
的域外路由的优先级定义为
150
(
150
高于华为体系下所有
IGP
协 议的优先级),从而解决路由回馈问题。
在双点双向重发布中,虽然解决了路由回馈问题,但是多点重发布还是存在一个必然产生的问题
----
选路不佳。------
原因在于重发布时清除了原先的开销值导致的。
路由策略
控制层流量
-----
路由协议传递路由信息产生的流量
数据层流量
-----
设备访问目的地址是产生的流量
所谓的路由策略-----在控制层面转发流量的过程中,截取流量,之后修改流量再转发或者不转发,最 终达到影响路由器路由表的生成,干涉选路的效果。
抓流量
ACL
列表
[r3-acl-basic-2000]rule permit source 192.168.1.0 0.0.0.0
因为ACL列表本身设计是为了抓取数据层流量的,所以,因为通配符的存在他可以灵活的匹配IP的数字特征,但是,没有办法匹配路由信息中的掩码特征。所以,ACL并不擅长控制层流量的抓取。
如果需要在192.168.1.0/24、192.168.1.0/25、192.168.1.0/30中抓取到192.168.1.0/24,ACL是无能为力的,只能按照数字特征抓取,则意味着使用以上命令将同时抓取携带着三种路由信息的数据包。
前缀列表(IP-prefix)
一个路由条目由目的网络地址(前缀)+掩码长度(前缀长度)共同标识
IP前缀列表可以包含一条或多条语句,每条语句都使用一个序号(十进制)进行标识。
前缀列表的匹配规则:从上而下,逐条匹配,一旦匹配上则将按照该规则执行,不再向下匹配。末尾 隐含拒绝所有规则
。
假设,有四条路由信息:172.16.0.0/16
、
172.16.0.0/24
、
172.16.0.0/30
、
172.16.1.1/32。
[r3]ip ip-prefix aa permit 172.16.0.0 24
该语句要求路由的目的网络地址的前24位比特位需要与172.16.0.0的前24位相同,并且路由的目
的网络掩码长度必须为24,因此该规则可以抓取172.16.0.0/24
[r3]ip ip-prefix aa permit 172.16.0.0 16 less-equal 24
该语句要求路由的目的网络地址的前16比特位与172.16.0.0的前16位相同,并且路由的目的网络
掩码长度必须大于或等于16,且小于或等于24。因为改规则可以抓取172.16.0.0/16、 172.16.0.0/24
[r3]ip ip-prefix aa permit 172.16.0.0 16 greater-equal 24
[r3]ip ip-prefix aa permit 172.16.0.0 16 greater-equal 24 less-equal 32
[r3]ip ip-prefix aa permit 172.16.0.0 16 greater-equal 24 less-equal 24
[r3]ip ip-prefix qq deny 172.16.0.0 30
[r3]ip ip-prefix qq permit 172.16.0.0 24
[r3]ip ip-prefix aa permit 0.0.0.0 0 less-equal 32
上述语句中,IP地址为0.0.0.0,这种形式的IP地址被称为通配地址,也即该地址能匹配任意形式的
目的网络地址。因此,该语句并不关系被匹配路由的目的网络地址,但是要求路由的目的网络掩码
长度必须大于等于0,小于等于32,实际上这条路由相当于“允许所有”。
[r3]ip ip-prefix ee deny 172.16.0.0 30
[r3]ip ip-prefix ee permit 0.0.0.0 0 less-equal 32
[r3]ip ip-prefix aa permit 0.0.0.0 0 greater-equal 32 less-equal 32
该语句将匹配掩码长度为32的任意路由,也就是所有的主机路由
[r3]ip ip-prefix aa permit 0.0.0.0 0
该语句允许的是默认路由0.0.0.0/0
[r3]ip ip-prefix hcip permit 172.16.4.0 22 greater-equal 24 less-equal 24
做策略
偏移列表-----Cisco
偏移列表属于RIP这种距离矢量型协议专用的。
抓流量
[r1]ip ip-prefix huawei permit 23.0.0.0 24
调用
[r1-GigabitEthernet0/0/1]rip metricin ip-prefix huawei 5
进入流量入方向接口,给其度量值增加5,metricin入;metricout出;出接口默认每次加1,如接
口默认不加。
该策略为逐跳行为,效果可以叠加操作;整段路径中流量经过的多个接口均配置了度量值增加,最终 的开销值为增加的总度量值。
过滤策略----Filter-Policy----路由过滤工具
分发列表----cisco
只能够对路由信息进行过滤,而无法对LSA进行过滤。
[r2-acl-basic-2000]rule deny source 34.0.0.0 0.0.0.0 ------过滤列表本身没有过滤能力,所以,
需要在抓取流量的时候使用拒绝动作。
[r2-acl-basic-2000]rule permit source any -----注意,在抓取流量的时候,末尾一定要放通所有
流量,否则将会把所有的流量均过滤掉,原因在于过滤策略是完全依照ACL表项进行工作的。
在过滤策略中调用
[r2-rip-1]filter-policy 2000 export GigabitEthernet 0/0/0 -----在进程中调用,选定入方向或出
方向的接口,若不选择接口,则为全局调用,会匹配所有接口
[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
[r2-rip-1]filter-policy ip-prefix aa export GigabitEthernet 0/0/0
注意:若使用ACL定义流量,正常华为为ACL末尾隐含允许所有,但是在过滤策略中一定要手工配置
允许所有。
注意,若此时没有在R1上进行过滤,而是等R1将域外的五类LSA发布仅OSPF后,在再R2的出方向或 入方向,有着或是R1的出方向调用过滤策略,则不会成功。必须要在R1将路由信息转换为LSA信息之前 进行调用,也就是在ASBR的入方向调用。
若在R2的入方向使用过滤策略限制192.168.2.0/24路由,则R2将不会具备该路由信息,因为是在R2 根据本地LSDB中的LSA信息计算出192.168.2.0/24路由后,拒绝将这条路由信息加入本地路由表中。而 R3此时还具备该路由信息,原因在于R3可以正常收到所有的LSA信息,并成功计算路由信息。
若将过滤策略使用在链路状态型协议中,必须使用入方向。
路由策略----Route-policy
路由策略的匹配规则:自上而下,逐一匹配,一旦匹配上则将按照对应的规则来执行动作,不再向下 匹配。末尾隐含拒绝所有的规则
。
要求: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=200
12.0.0.0/24 -----不处理
抓取流量:
[r2]acl 2000
[r2-acl-basic-2000]rule permit source 192.168.1.0 0
[r2]acl 2001
[r2-acl-basic-2001]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
做策略:
[r2]route-policy hcip deny node 10 ----创建一个叫做hcip的route-policy列表,且序号为10
[r2-route-policy]if-match acl 2000 ----匹配ACL 2000
[r2]route-policy hcip permit node 20
[r2-route-policy]if-match acl 2001
[r2-route-policy]apply cost 10
[r2]route-policy hcip permit node 30
[r2-route-policy]if-match ip-prefix aa
[r2-route-policy]apply cost-type type-1
[r2]route-policy hcip permit node 40
[r2-route-policy]if-match ip-prefix bb
[r2-route-policy]apply cost-type type-1
[r2-route-policy]apply tag 200
[r2]route-policy hcip permit node 50
在重发布中调用:
[r2-ospf-1]import-route rip 1 route-policy hcip
[r2]display route-policy hcip -----查看路由策略内容
permit:
1.指定该节点的匹配模式为允许,
2.如果路由匹配的结果是满足该阶段的所有if-match语句,则该路由被视为允许通过,该节点的apply语言将被执行,且不再进入一下个节点。若该节点中有fi-match语句不满足,则进入下一个
节点继续匹配。
deny:
1.指定节点的匹配模式为拒绝。
2.如果节点的匹配模式为拒绝,则该节点的apply语句将不被执行。
3.如果路由匹配的结果是满足该阶段的所有if-match语句,该路由策略的匹配过程直接结束。不会进入下一个阶段。而满足该节点条件的路由会被视为拒绝通过。
4.若该节点中有fi-match语句不满足,则进入下一个节点继续匹配。
配置指南总结
1. 即便要拒绝一个流量,在抓取的时候也必须使用允许操作,之后在路由策略来拒绝。
2. 在一条规则中,若没有进行流量匹配,那么就是匹配所有流量。若没有apply那么仅对匹配的流量 进行当前大动作修改。
3. 配置时,注意路由策略的“与”和“或”关系。
BGP-----
边界网关协议
AS----自治系统
AS定义:由一个单一的机构或组织所管理的一系列IP网络及其设备所构成的集合。
AS划分的原因
整个网络规模较大,伴随的是路由表中的路由数量进一步增加,路由表规模变大,路由收敛速度变慢,设备性能消耗加大。-----范围太大。
AS之间可能是由不同的机构、公司,相互之间无法完全信任,使用IGP协议可能存在暴露AS内部的网络信息的风险。
不同的AS通过AS号进行区分,AS号存在16bit、32bit两种。IANA----互联网数字分配机构。
16位AS号,取值范围1-65534(其中0和65535保留),其中64512-65534为私有的AS号,可以自
行使用,公有的AS号为1-64511
保留AS号
RFC4893标准,23456该AS号为保留AS号
RFC5398标准
16位AS号:64496-64511-----16个
32位AS号:65536-65551-----16个
BGP
协议介绍
1
、首先
RIP
是基于
UDP
进行数据传输的,而
UDP
是一个不可靠的协议,他在传输过程中可能会丢失某些 数据。
2
、缺省情况下,
RIP
协议的路由更新报文的发送间隔是
30S
,而如果两个
AS
内部的路由表非常大,
30
秒的时间可能还不够将所有的路由信息传递给对方AS
,这样,整条链路完全就是为了
RIP
的通告报文服务,而不能转发数据流量。
解决方法:
1.将
UDP
协议更换为
TCP
协议。不用担心数据丢失,并且
TCP
会预先建立连接,也就让路由器有一个 准备的时间而不是像RIP
一样毫无准备的接收大量更新数据。
2.取消周期更新,改为触发更新。
在第一次路由数据同步完成后,如果有路由增加,就发送通告路由增加的报文。如果路由删除,就发送一个通告路由删除的报文。
如果路由信息发生改变,就先发送一个通告路由删除的报文,在发送一个通告路由增加的报文。
运行
BGP
协议之间的设备传递路由信息,原因在于若传递拓扑信息,会导致路由器负载过高,并且会让 对端AS
看到本端的拓扑信息,引发安全问题。
BGP
需要传递所有的通过
BGP
学习到的路由信息,并且运行了
BGP
协议的路由器,所维护的路由表是包 含了整个互联网的所有路由信息的。
BGP
特点
❆
BGP基于
TCP
,只要能够建立
TCP
连接,就可以建立
BGP
连接
❆
触发式更新,不再进行周期更新
❆
只传递路由信息,而不会暴露AS
内的拓扑信息
不传递拓扑的原因
拓扑信息资源占用量大
会暴露
AS
内部的拓扑连接情况
❆
无类别的路径矢量型协议
无类别
-----
传递时携带真实子网掩码
矢量
-----
方向性,谁传递的路由,谁为下一跳
距离矢量
----
将一个路由器看做一个单位计算距离
路径矢量
----
将一个
AS
看做一个整体,从而计算一跳。
IGP协议的主要任务是将
AS
内部的未知网段信息计算获取到,而
BGP
则主要是将
IGP协议计算出来的 路由信息进行搬运和传递,并不去计算路由。
BGP
的特征
IGP
协议特点:1.选路佳 2.收敛快 3.占用资源少
可控性
因为在重发布的过程中,由于会抹除原有度量值,会导致出现选路不佳的情况。而BGP为了弥补这个
不足点,直接舍弃了开销值。取而代之的是设计了很多的路径属性。
可靠性
BGP因为只有触发更新,而不存在周期更新。所以,需要确保其可靠性,使用TCP为传输层协议。
端口号179。-------BGP会话的建立是手工指定的(单播形式)。
IGP协议不选择使用TCP的原因:
1.TCP传输效率低
2.TCP传输占用资源大
3.TCP协议只能实现单播,所以,无法通过组播或广播的形式发送数据,将导致IGP协议无法自
动发现邻居关系,只能手工指定。
AS-BY-AS
BGP将一个AS看做是一个整体。
BGP协议不支持负载均衡。
BGP
的对等关系
BGP
因为传输层使用的是
TCP
协议,所以只要在
TCP
协议可以正常建立会话的基础上就可以完成
BGP
的 建邻工作。
BGP
支持非直连建邻(网络可达)
-----BGP
的非直连建邻是建立在
IGP
(静态)之上的。
BGP
存在两种对等体关系类型:
EBGP
、
IBGP
。
EBGP
对等体关系
位于不同自治系统的
BGP
路由器之间的
BGP
对等体关系。
EBGP
对等体一般使用直连建立对等体 关系。
EBGP邻居之间的报文中TTL值被设置为1。
两台路由器之间要建立EBGP对等体关系,需要满足如下条件:
两个路由器属于不同
AS
在配置时,
peer
命令所指定的对等体的
IP
地址必须路由可达,
TCP
连接必须正常建立。
IBGP
对等体关系
位于相同自治系统的
BGP
路由器之间的
BGP
对等体关系。
IBGP
对等体一般使用非直连建邻。IBGP邻居之间的报文中
TTL
值被设置为
255。
在
IBGP
对等体中,常使用环回接口地址作为源目
IP
地址。
环回接口稳定
并且可以借助
AS
内部的
IGP
和冗余拓扑来保证可靠性。
BGP
特点
1.
无类别路径矢量协议
-----AS-BY-AS
2.
使用单播更新来发送消息;基于
TCP 179
号端口工作。
3.
增量更新机制
----
仅触发更新,无周期更新
4.
具有丰富的路径属性来取代
IGP
中的度量值进行选路,可以由多个属性共同控制协议
5.
可以在流量的进出口实行路由策略
----
可控性
6.
默认不被用于负载均衡
-----
会通过各种选路规则仅仅产生一条最佳路径
7. BGP
支持认证和聚合
BGP
的数据包
BGP报文头部
Route-refresh包
-----路由刷新包
作用:用来要求对等体重新发送指定地址族的路由信息。
一般为本端修改了相关路由策略之后让对方重新发送更新报文,本端执行新的路由策略重新计算BGP 路由。
双方均支持路由刷新功能。
OSPF中的
hello
报文
------可以周期性的发现、建立和保活邻居关系。
Open包
是TCP
连接建立之后发送的第一个报文,用于建立
BGP对等体之间的连接关系。
Hold Time-----保活时间
BGP Identifier-----BGP的标识符(RID)
与OSPF中的RID用法相同
全网唯一。
获取方式:手工配置>最大环回接口>最大物理接口
BGP需要协商的参数
AS号
BGP的open报文会携带本地的AS号,通过比较两端的AS号可以判断对端是否和本端处于相
同 AS。
不管这个AS号与本地的AS号是否相同,都不影响BGP对等体的建立。
另外,如果对方的AS号和本地指定对等体时写的AS号不同,则会导致邻居关系无法建立。
peer 12.0.0.2 as-number 100
RID
通过对比open报文中的RID值,可以判断是否相同,若相同则会导致建邻失败。
认证字段
BGP也可以进行认证,认证口令不同,则也会导致建邻失败。
该字段永远以MD5值的方式保存在TCP的选项字段。
保活时间-----并不影响BGP对等体的建立。
BGP在建立对等体关系时,需要协商该参数。
如果在该时间内未收到对端发来的keepalive报文或者update报文,则认为BGP连接中断。-
---180S。
报文更新时间----三分之一保活时间----60S。
若双方保活时间不一致,则按照小的时间进行。
该参数可以设置为0,若设置为0,则代表不发送keepalive报文。
路由刷新功能
keepalive包
作用:用来进行周期保活。
除了保活机制外,keepalive报文还在open报文协商参数时,临时充当确认报文-----确认open报文中 的参数是否认可。
update包---更新包
作用:用于在对等体之间传递路由信息,可以用于发布、撤销路由。-----携带需要传递的路由信息。
需要携带的参数主要就是目的网络号、子网掩码信息和路径属性。
Notification
包
纯粹的告警机制。当
BGP
检测到错误状态时(对等体关系建立时、建立之后都可能发送该报文),就 会向对等体发送该报文,告知对端错误原因。之后BGP
连接会
立即
中断。
BGP
的状态机
BGP
的角色
Speaker
发送
BGP
报文的设备被称为
BGP Speaker
(发言者)
它接收或产生新的报文信息,并发布给其他
BGP Speaker
。
Speaker
角色是针对具体报文发送
过程而言的,网络中每台
BGP
路由器均可称为自己发送
BGP
报文的
Speaker
。
Peer
相互交换报文的
Speaker
之间互相称为
peer
(对等体)
BGP的状态机仅描述的是对等体关系建立过程的状态变化。BGP可以将邻居建立过程和BGP路由收发 过程分开。
IDLE-----空闲状态
所有设备启动BGP进程后,首先进入该状态。
进入该状态后,等待手工指定邻居。
当手工指定邻居之后,将会进入到一个检查环节。需要检查手工指定的IP地址在本地全局路由 表中是否可达,只有可达,才可以正常建立TCP的会话,如果不可达,则邻居关系建立失败,停留在IDLE状态。
若检查成功,则进入Connect状态。
Connect-----连接状态
建立TCP会话连接
在该状态下,会开启一个连接重传定时器。----32秒。
如果成功建立TCP会话,会关闭连接重传定时器,并进入OpenSent状态。
如果建立失败,则进入Active状态。
如果重传定时器超时,BGP仍然没有收到对等体的响应,那么BGP会继续尝试与对等体建立
TCP会话,并一直处于Connect状态。
Active状态----尝试状态
该状态是因为第一次TCP会话建立失败进入的,在该状态会重新尝试建立TCP会话。
如果成功建立,则进入OpenSent状态,并会关闭连接重传定时器。
如果失败,则停留在Active状态。
与Connect状态共同使用同一个连接重传定时器。
OpenSent-----发出本地的Open报文
也将收到对端发送的open报文,并会查看其中的参数,如果参数没有问题,则本地将发送 keepalive报文进行确认,之后进入openconfirm状态。
如果发现收到的open报文中的参数不认可,那么BGP会发送notification报文给对等体,并进
入idle状态。
对等体关系的指定是双向的,所以当双方都使用peer命令指定了对等体后,均会主动与对等
体建立TCP连接。但是这样就会建立两条TCP的双向连接,所以BGP会选择第一个TCP链接断
开。
OpenConfirm----等待确认状态
在该状态机是,等待对方发送的keepalive报文。如果接收到对端发送的keepalive报文,则代
表参数协商通过,会进入最终状态。
如果收到的是notification报文,则转至idle状态。
Established------连接建立完成状态
对等体关系建立完成的标志。
在该状态下,BGP可以和对等体交互Update报文、keepalive报文、Route-refersh报文和
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,周期发送时间默 认为保活时间的1/3,即60S。
7. 如果出现错误信息,则将使用notification报文进行告警
8. 如果出现结构突变,则将使用update报文进行触发更新
BGP的防环机制
EBGP的水平分割
AS_Path属性-----记录AS路径的一个属性
当路由信息再一次传回本地AS时,路由器通过查看AS_Pathshux1,可以清楚的知晓该属性包含本地 AS号,故拒绝学习该路由信息。
IBGP的水平分割
BGP规定,当路由器从一个IBGP对等体学习到某条BGP路由时,它将不能再把这条路由通告给任何 IBGP对等体。-----IBGP水平分割机制。
解决方案
1. 构建全联的IBGP对等体关系
1. 当AS内部设备数量巨大时,IBGP邻居关系会呈指数型增长,而非直连建邻之间传递的数据还 是要依靠物理链路,故全连接建邻会导致占据大量的链路资源,并且路由器维护大量的TCP和 BGP会话连接,需要消耗大量的设备资源。
2. 网络的可扩展性差。
2. 打破IBGP水平分割
1. 联邦
2. 路由反射器
BGP的路由黑洞
由于
BGP
协议可以非直连建邻,所有导致
BGP
协议可能出现跨越未运行
BGP
协议的设备,导致
BGP
路 由传递后,控制层面可达。但是数据层面,流量流经未运行BGP
协议的设备时,无法通过,形成路由黑 洞。
避免路由黑洞的方式-----BGP同步更新规则----当一台路由器从自己的IBGP对等体学习到一条BGP路由 时,它将不能使用该条路由或把这条路由信息通告给自己的EBGP对等体,除非它又从IGP协议学习到这 条路由,也就是要求IBGP路由与IGP路由同步。
在华为数通设备上,BGP同步更新规则缺省是被关闭的,并且华为也不允许开启BGP同步规则。
解决方案
1. 让未运行BGP协议的设备运行BGP协议---建立全连接的IBGP环境。
2. 物理或逻辑拓扑全联
3. 在IGP协议中,重发布BGP协议的路由信息
4. MPLS----多标签标记交换。
BGP
基本配置
BGP
建邻的基本配置
使用直连接口IP地址建立EBGP对等体关系
1、启动BGP协议
[r1]bgp 100 -----启动BGP进程,且标准本设备所在的AS号
2、设置Rid
[r1-bgp]router-id 1.1.1.1
3、配置BGP对等体,并指定对等体所在的AS号
[r1-bgp]peer 12.0.0.2 as-number 200
[r1]display bgp peer ----查看BGP的邻居表
IBGP对等体的建立
由于直连接口建立对等体时,若链路终端,则会中断
BGP
会话。故在实际工程中,一个
AS
内部正常具 有较为复杂的网络拓扑结构,设备到设备之间存在大量的备份和负载均衡路径,因此建立IBGP
邻居关系时,建议使用双方的环回接口来作为源
/
目
IP
地址
。
[r2]bgp 200
[r2-bgp]peer 3.3.3.3 as-number 200
[r3]bgp 200
[r3-bgp]router-id 3.3.3.3
[r3-bgp]peer 2.2.2.2 as-number 200
手工建立邻居关系时,所指定的建邻的
IP
地址必须和收到的数据包中的源
IP
地址相同才能正常建立邻
居关系。否则,邻居关系建立失败
。
[r2-bgp]peer 3.3.3.3 connect-interface LoopBack 0 -----将R2发送的数据包的源IP地址修改为
loopback 0接口的IP地址
抓包后会发现一个问题,就是BGP此时仅建立了一次TCP连接,就完成了BGP会话的建立。这也就意 味着,BGP会话的建立仅仅是依靠TCP会话,而并没有对这个TCP会话建立的方式有要求,该TCP会话是由谁发起的,谁是客户端,谁是服务端并不影响BGP对等体的建立。-------在BGP协议中,TCP会话建立 两次完全是多余的,而建立两次的原因也是因为双方路由器均会指定对等体(均将自己看做是客户端),从而发起建立连接请求。
而在当下场景中,R3作为TCP会话的服务端,已经认知到了自己本地已经有接口3.3.3.3,与自己本地配置的对等体建立了连接,所以本地也不会在发送所谓的TCP连接建立请求。
一般情况下,双方均要修改本地数据包的源IP地址。
使用环回接口IP地址建立EBGP对等体关系
若EBGP对等体之间存在多条直连链路时,才可使用环回接口建立对等体关系。
1、实现路由可达
ip route-static 5.5.5.5 255.255.255.255 45.0.0.5
ip route-static 4.4.4.4 255.255.255.255 45.0.0.4
2、对等体配置
[r4]bgp 200
[r4-bgp]peer 5.5.5.5 as-number 300
[r4-bgp]peer 5.5.5.5 connect-interface LoopBack 0
[r5]bgp 300
[r5-bgp]router-id 5.5.5.5
[r5-bgp]peer 4.4.4.4 as-number 200
[r5-bgp]peer 4.4.4.4 connect-interface LoopBack 0
因为EBGP之间的数据包的TTL值为1,故此时虽然可以建立TCP连接和BGP会话,但是路由器会认为该连接和会话存在异常,在BGP对等体建立完成后,发送notification报文断开连接,从而会产生一个现象- ---状态机震荡。
解决方法:修改TTL值
[r4-bgp]peer 5.5.5.5 ebgp-max-hop 2
如果未标明参数值,则代表将TTL值修改为最大值255
[r5-bgp]peer 4.4.4.4 ebgp-max-hop 2
两边均要修改,不然无法建立对等体关系,还存在状态机震荡。
BGP的路由发布
通过network命令发布路由
路由发布----对于BGP而言,只要是路由表中存在的路由信息,都可以通过network命令发布。 [r1-bgp]network 1.1.1.1 32 目标网络号 路由表中的掩码信息
注意:BGP使用network命令宣告时,该路由信息必须与全局路由表中存在的路由项一致。
[r1-bgp]display bgp routing-table ---查看BGP表
network-----目标网络号及掩码
nexthop-----下一跳,谁发送的路由信息,则下一跳就写谁;如果是本地发布的路由,则下一跳写0.0.0.0
状态码----
*
代表可用
所有设备收到路由条目后,首先会根据下一跳属性中的参数来查询本地路由表,查看该地址的
可达性。如果本地路由表中可达,则代表该路由信息可用;若本地不可达,则代表该路由信息
不可用。
如果该路由条目不可用,则将不会参与到路由信息的优选过程。
>
代表优选
当收到多条到达相同网段的路由信息时,并且都可用,则将依据属性在其中选择最优的路由信
息进行加表及传递。
i
代表该路由信息是通过IBGP对等体学习到的
对于R3而言,R2传递来的路由信息是不可用且不优的,原因在于下一跳属性未修改,无法递归。
解决思路:
[r2-bgp]peer 3.3.3.3 next-hop-local
将路由传递给自己的3.3.3.3邻居时,将路由中的下一跳属性该为本地。
总结一下配置逻辑:
1. 完成所有路由器的IGP配置
2. 使用直连接口建立EBGP对等体关系
3. 使用环回接口建立IBGP对等体关系
4. 使用connect-interface命令修改IBGP建邻源IP地址,双方均修改
5. 使用next-hop-local命令修改路由传递的下一跳属性
6. 若存在使用环回接口建立EBGP对等体关系,则需要建立通讯条件,并且使用ebgp-max-hop命令修改TTL值
使用import命令引入路由
[r2-bgp]import-route ospf 1
ONG----起源码属性----标识一条路由信息的起源类型
i----代表这条路由信息起源于AS内部使用network命令通告出来
不限于IGP、静态、直连
e-----代表这条路有信息起源于EGP协议----现在几乎看不到该标识
?-----除了以上两种方式,其他方式获取的路由信息都是该标识
BGP路由通告原则
当一条BGP路由器发现了多条可以到达同一地址的路由条目,该设备会通过一个路由选择过程在这 些路由条目中选择一条最优的路由,将这条路由加入到全局路由表中,并且在向其他BGP对等体通 告该路由条目时,也只会通告最优的路由。
通常情况下,路由器只会将最优的路由加载到路由表中,除了激活了负载均衡情况外。
当一台路由器从EBGP邻居学习到了BGP路由时,缺省情况下,会将该路由条目通告给所有的IBGP 对等体以及EBGP对等体。
当一台路由器从IBGP邻居学习到了BGP路由时,缺省情况下,不会将这条路由信息通告给其他的 IBGP对等体。
因为IBGP水平分割原则
当一台路由器从自己的IBGP学习到BGP路由时,如果同步规则被激活,只有从IGP协议也学习到该 路由条目后,才会将BGP路由激活,并学习到本地,以及通告到EBGP对等体。如果同步规则被关 闭,即使没有从IGP学习到该路由,也会将BGP路由通告给EBGP对等体。
BGP的路由聚合
自动聚合
该方法仅针对重发布的路由信息生效。
华为设备默认关闭自动聚合功能
。
[r1-bgp]summary automatic 开启自动聚合功能
自动聚合功能是以主类聚合的方式进行的。而主类聚合方式会导致一个结果就是产生路由黑洞。所以 也会生成一条去往空接口的防环路由。这也是华为设备关闭自动聚合功能的原因。
状态码S-----代表抑制,被抑制的路由信息将不再加表和传递。
特点:
1. 缺点
1. 自动聚合只能将明细路由汇总到主类
1. 会产生巨大的路由黑洞
2. 自动聚合只能针对重发布的路由条目生效
2. 自动聚合会抑制明细路由条目
3. 黑洞路由器会在本地的路由表中,自动生成一条指向null口的汇总网段路由,防止环路
4. 聚合完成后,将会在本地的BGP表中发布一条新的下一跳指向127.0.0.1的汇总网段路由
[r3-bgp]aggregate 172.16.0.0 20
手工聚合会生成一条指向空接口的防环路由,并且掩码可以随意汇总,但是手工聚合没有将明细路由进行抑制。
手工聚合只有在所有明细路由均无效时,才会撤销。并且,手工聚合可以灵活调整掩码信息,只要还 存在一条明细路由,手工聚合后的路由就是可用且优的。
手工聚合命令在配置后,1、检测本地路由表中是否有聚合路由的可用明细路由。2、若有则在本地路 由表中发布一条指向空接口的防环路由;若无则该命令无效;3、将汇总的防环路由发布到BGP中
BGP的手工聚合可以在非直连设备上进行,只要本地存在这些明细路由,且明细路由可用且优就可以 进行聚合操作。
聚合路由不会继承明细路由的属性,导致AS_Path属性丢失,可能会引发环路问题。
[r3-bgp]aggregate 172.16.0.0 20 detail-suppressed -----抑制所有明细路由
抑制策略,通告172.16.0.0/20的汇总路由时,将172.16.1.0/24的明细路由也通告出去。
在该策略中,会将路由策略中所允许的流量给抑制。也就是说,实际上是与路由策略的玩法相反。
1、抓流量
[r3]ip ip-prefix aa deny 172.16.1.0 24
[r3]ip ip-prefix aa permit 172.16.0.0 20 greater-equal 24 less-equal 24
2、配置策略
[r3]route-policy aa permit node 10
[r3-route-policy]if-match ip-prefix aa
3、调用
[r3-bgp]aggregate 172.16.0.0 20 suppress-policy aa ----策略名称即为路由策略的名称as-set -----汇总路由会继承明细路由的路径属性
[r3-bgp]aggregate 172.16.0.0 20 as-set
[r3-bgp]aggregate 172.16.0.0 20 as-set detail-suppressed
as-set属性在继承多个明细路由属性时,会将继承的不同的多个明细路由的AS_Path属性使用{}括起 来,在选路时,当做一个来看,而在防环时,将观察所有的AS号。
attribute-policy-----该参数可以设置聚合路由的大部分路径属性
[r1]route-policy bb permit node 10
[r1-route-policy]apply as-path 1 2 3 additive
[r1-route-policy]apply local-preference 10
[r1-route-policy]apply cost 100
[r1-route-policy]apply preferred-value 20
[r1-bgp]aggregate 172.16.0.0 20 detail-suppressed attribute-policy bb
origin-policy ----设置某些明细路由为汇总路由宣告的触发条件
[r1]ip ip-prefix aa permit 172.16.1.0 24
[r1]route-policy aa permit node 10
[r1-route-policy]if-match ip-prefix aa
[r1-bgp]aggregate 172.16.0.0 20 origin-policy aa
Atomic-Aggregate
纯粹的预警属性,不承载任何信息
当路由器收到的update报文中,携带该属性值,则认为这条路由信息可能存在属性丢失。
该属性只有当所有的明细路由均被抑制时才会携带
Aggregator
携带了汇总者的RID以及其所在的AS号
用于标记聚合行为发生的位置
那个AS,哪台BGP设备
路由反射器
IBGP水平分割:路由器无法将从IBGP对等体学习到的路由信息传递给其他IBGP对等体。
IBGP水平分割解决了AS内部环路的问题,但是产生了新的问题-----BGP路由在AS内部只能传递一跳,会 造成IBGP路由无法被正常传递,造成通讯障碍。
路由反射器角色
RR---Route Reflector
RR类似于一面镜子,可以把自己接收到的路由信息反射给其他人
Client----RR客户端-----客户端可以存在多个或一个
RR非客户端
路由反射器的配置是在充当反射器的BGP路由器上完成的。而路由反射器的客户设备并不需要做任何 额外的配置,它甚至不知道自己成为了某个路由反射器的客户。
路由反射器与所有的客户或非客户建立IBGP对等体关系,而客户之间则无需建立IBGP对等体关系。这 样就优化了网络中的IBGP对等体关系数量。
路由反射规则
1. 如果路由反射器从自己的非客户对等体学习到一条IBGP路由,则可以将这条路由传递给自己的客户
2. 如果路由反射器从自己的客户对等体学习到一条IBGP路由,则可以将这条路由传递给自己的客户和 非客户
3. 如果路由器学习到EBGP对等体发送的路由信息,则可以发送给所有的IBGP对等体
4. 当路由反射器执行路由反射时,它将只能使用自己最优的BGP路由进行反射。
[r3-bgp]peer 2.2.2.2 reflect-client -----1、指定2.2.2.2为自己的客户;2、并说明自己是RR
路由反射器角色可能会根据处于不同的反射簇时充当不同的角色。一般会设置传递路由信息的一方为RR 的客户端。
Origin-ID-----起源ID
当一条BGP路由被路由反射器反射给其他路由器时,如果该条路由已经携带了起源ID属性,则保留该 属性,否则路由反射器为这条路由添加起源ID属性,并将该属性值设置为该路由在本地AS内的始发路由 器的RID值。
当路由器从
BGP
对等体收到一条
IBGP
路由,并且该路由所携带的起源
ID
属性与自己的
BGP RID
相同 时,它将意识到该路由是从自己这里发送到本AS
内部的,且又被发送回来了,此时本地将忽略这条路由 的更新。如此消除环路隐患。
Cluster-List-----
簇列表
当一条
BGP
路由被路由反射器执行反射时,如果该条路由已经存在
Cluster-List
属性,那么路由反射 器将本地的Cluster-ID
附加到路由的
Cluster-List
属性中,而如果该路由没有
Cluster-List
属性,那么路 由反射器为其创建,并将Cluster-ID
加入到
Cluster-List
中
。
当一台路由反射器收到一条
BGP
路由后,若发现该路由携带
Cluster-List
属性,并且
Cluster-List
属性 中包含着自己的Cluster-ID
时,会忽略关于这条路由的更新
。
-----
类似于
AS-Path
属性的防环原理
注意
:
当路由反射器将一条从自己的
EBGP
对等体学习到的
BGP
路由通告给自己的客户时,他是不会创建 起源ID
和簇列表,因为这本质上是正常的通告行为
起源
ID
和簇列表的传播范围是
AS
内部
路由反射器在反射路由时,不会修改除了起源
ID
和簇列表以外的路径属性,原因是因为
AS-BY-AS
原则。