由于重发布的种子度量值的问题,将必然导致选路不佳的清况产生。这种清况只能依赖路由策略来人为干涉选路解决。
路由策略
控制层流量:路由协议传递路由信息产生流量
数据层流量:设备访问目标网段所产生流量
路由策略:在控制层流量传递的过程中,截取流量,之后修改流量再转发或者不转发,最终影响路由表的生成,达到干涉选路的目的。
1、抓取流量
1,ACL列表 --- 本身应用于限制数据层流量进出,也可以应用在抓取控制层流量上,但由于其通配符的设计,不能进行精准的匹配。
2,前缀列表 --- IP-prefix
[r1]ip ip-prefix aa(自定义的前缀列表名称,唯一区分和标定不同前缀列表的参数)permit(和ACL一样,可以选择拒绝或者允许两种动作,抓取流量时选择允许即可) 192.168.1.0 24 --- 目标网段的路由信息
[r1]display ip ip-prefix aa --- 查看前缀列表的命令
前缀列表中的规则默认是以10为步调自动添加序号,其目的是为了方便插入和删除规则
[r1]ip ip-prefix aa index 15 permit 192.168.3.0 24 --- 在名字为aa的列表里添加序号为15的允许192.168.3.0网段通过的规则
[r1]undo ip ip-prefix aa index 15 --- 在aa列表里删除序号15命令
前缀列表的匹配原则:自上而下,逐一匹配,一旦匹配上则将按照对应的动作来执行,就不再向下匹配,在末尾隐含一条拒绝所有的规则
前缀列表的范围匹配
[r1]ip ip-prefix aa permit 192.168.3.0 24 less-equal 28 --- 可以匹配掩码为24-28的所有的路由信息
[r1]ip ip-prefix aa permit 192.168.4.0 24 greater-equal 28 --- 如果出现前后矛盾的情况,则将按照后面来执行,前面则将不代表掩码长度,代表前24位固定
[r1]ip ip-prefix aa permit 192.168.5.0 24 greater-equal 28 less-equal 30 --- 代表前24位固定,抓取掩码长度为28-30的路由信息
[r1]ip ip-prefix aa permit 192.168.6.0 24 greater-equal 28 less-equal 28 --- 代表前24位固定,抓取掩码长度为28的路由信息
匹配所有的主机路由:[r1]ip ip-prefix aa permit 0.0.0.0 0 greater-equal 32
匹配所有路由信息:[r1]ip ip-prefix aa permit 0.0.0.0 0 less-equal 32
匹配缺省路由信息:[r1]ip ip-prefix aa permit 0.0.0.0 0
2,路由策略
1,RIP的merticin和merticout --- 偏移列表 --- 偏移列表只能应用在距离矢量型协议中,而不能应用在链路状态型协议中
1,抓取流量
[r1]ip ip-prefix aa permit 23.0.0.0 24
2,在接口上配置偏移列表调用前缀列表
[r1-GigabitEthernet0/0/1]rip metricin ip-prefix aa 10
2,filter-policy --- 过滤策略/过滤列表 --- 过滤列表在距离矢量型协议中和链路状态型协议中都可以使用
1,抓取流量
[r1]ip ip-prefix bb deny 34.0.0.0 24
过滤列表没有过滤能力,所以需要调用低阶列表的过滤功能,这里在抓流量时,动作需要选
择为deny
[r1]ip ip-prefix bb permit 0.0.0.0 0 less-equal 32
放通所有,不添加这条规则,过滤列表将过滤掉所有流量
2,在进程中进行调用
[r1-rip-l]filter-policy ip-prefix bb import GigabitEthernet 0/0/0
注意:在链路状态型协议中,因为同区域内部传递的是拓扑信息,所以,过滤列表无法过滤
拓扑信息,只能进行入方向的调用。而入方向的调用也不是过滤拓扑信息,只是将对应的路
由信息拒绝加标
3,route - policy --- 路由策略
1,抓流量
ACL方法
Basic ACL 2000, 1 rule
Acl's step is 5
rule 5 permit source 1.1.1.0 0
Basic ACL 2001, 1 rule
Acl's step is 5
rule 5 permit source 2.2.2.0 0
前缀列表
ip ip-prefix aa index 10 permit 3.3.3.0 24
ip ip-prefix bb index 10 permit 4.4.4.0 24
2,配置路由策略
[r2]route-policy aa(自定义的路由策略名称) deny node 10 --- 创建了一张叫做aa的路由
策略
Info: New Sequence of this List
[r2]route-policy aa deny node 10 node 10 --- 相当于是路由策略的规则编号,这个编号需
要手工添加,建议参考前缀列表的序号模式,以10为步调手动添加
Info: New Sequence of this List.
[r2-route-policy]if-match acl 2000 ---- 如果匹配 --- 代表如果匹配到列表抓取的流量,则执
行相对应的操作
[r2]route-policy aa permit node 20
Info: New Sequence of this List.
[r2-route-policy]if-match acl 2001
[r2-route-policy]apply cost-type type-1
[r2]display route-policy aa --- 查看路由策略
[r2]route-policy aa permit node 30
Info: New Sequence of this List.
[r2-route-policy]if-match ip-prefix aa
[r2-route-policy]apply cost 10
[r2]route-policy aa permit node 40
Info: New Sequence of this List.
[r2-route-policy]if-match ip-prefix bb
[r2-route-policy]apply cost-type type-1
[r2-route-policy]apply tag 6666 --- 如果规则中存在多个if-match或者apply,则他们之间的
关系为与关系,tag --- 路由标签
[r2]route-policy aa permit node 50 --- 允许所有
1,如果if-mach,则将匹配所有流量
2,如果没有小动作,则只按照大动作执行即可
3,在重发布中调用路由策略
[r2-ospf-1]import-route rip 1 route-policy aa
[r3]display ospf routing --- 查看OSPF的路由表
Route-policy的配置:
1,即便要拒绝一个流量,在抓取流量时必须用允许,之后,在路由策略中拒绝
2,在一条规则中,若没有进行流量匹配,那就是匹配所有流量,若没有应用(小动作),则
对匹配的流量只执行大动作。因此,大动作为允许的空表代表放通所有
BGP --- 边界网关协议
GP --- 内部网关协议 --- RIP,OSPF
EGP --- 外部网关协议 --- BGP
AS --- 自治系统 --- 由单一的机构或者组织所管理的一系列IP网络及设备组成的集合
特点
1,范围太大,协议跑不过来,需要划分
2,自治
为了方便对AS --- 自治系统进行管理,每一个自治系统设詈了一个编号,这个标号称为AS
号。 本质由16位二进制构成
取值范围:0 - 65535,其中0和65535为保留,可用的取值范围为1 - 65534。其中
64512 - 65534这一部分的AS号被称为私有AS号。公有AS号取值范围1 - 64511(这一部
分AS号要求全球唯一,统一由IANA组织分配)
所以,目前大多数设备支持拓展版的AS号 --- 由32位二进制构成
目前,在IPV4领域下,最广泛的BGP协议版本为BGPV4版 本。但是,目前市面上也存在
BGPV4+版本--- 其特点是可以支持多种地址族
在BGP的清况下,我们通过重发布技术也可以实现不同AS之间的路由信息共享,但是,之所
以采用BGP而不是重发布,主要因为重发布本身存在缺陷:
1,在实现多点重发布时,会必然出现选路不佳的情况
2,归属问题 --- 边界路由不知道使用哪个协议
BGP在AS之间共享路由信息的方式一定是共享路由条目信息。原因主要是:
1,拓扑信息的数据量大
2,拓扑信息将暴露AS内部的网络部署清况
BGP协议被称为无类别的路径矢量协议
路径矢量和距离矢量的区别:
1,距离矢量中的距离指的是开销,也就是跳数,是以—台路由器作为—跳。而路径矢量中则
是将—个AS看作—个整体,将—个AS作为—跳
2,EGP协议不存在算法的概念, 而距离矢量是根据算法来划分的。BGP协议只是将IGP协议
计算出来的路由信息传递给其他运行BGP的设备
IGP协议的评判标准 --- 选路佳,收敛快,占用资源少
EGP协议的关注点 :
1,可控性
AS之间需要传递大量的路由信息,所谓可控,就是可以更方便的干涉选路,更方便做策略 ,
目的是为了弥补重发布的缺陷
为了保证路由的可控性,方便选路。BGP协议直接舍弃了开销值,取而代之的是BGP给每条
路由信息附加了丰富的路径属性。我们可以通过多种路径属性进行灵活的选路,使得BGP协
议具有强大的可操控性, 因为BGP需要传递的路由信息的数量非常庞大,所以他无法采用周
期更新,只存在触发更新
2,可靠性
BGP协议为了保证传输的可靠性,直接采用TCP协议作为传输层的协议来工作。使用TCP 的
179号端口来工作
IGP协议不选择TCP的原因 :
1,TCP速度较慢
2,TCP占用资源较大
3,TCP只能实现单播
因为BGP采用TCP作为传输层协议,所以,只能通过单播的形式建立邻居关系,需要手工指
定邻居而不能自动发现
BGP支持非直连建邻 --- 因为只要网络可达,即可以实现TCP会话通道的建立,则可以建
立BGP的邻居关系
BGP的非直连建邻是承载在IGP(静态路由)的基础上的
EBGP对等体关系 --- 如果建立对等体的两台路由器位于不同的AS中,则他们的关系就
被称为EBGP对等体关系
BGP对等体关系 --- 如果建立对等体的两台路由器位于同一个的AS中,则他们的关系就
被称为 BGP对等体关系
一般情况下, BGP对等体关系可以非直连建邻,而EBGP对等体关系之间是直连建邻的,所
以, BGP间建邻时,他所构成的数据包中的TTL值为255。但是,在EBGP对等体关系建邻
时,他构成的数据报中TTL值为1。若EBGP对等体之间需要非直连建邻,则必须数修改据包
中的TTL值
3,AS - BY - AS
在BGP中,始终是将一个AS看作是一个整体。BGP不支持负载均衡。不管到达相同网段存在
多少条路由信息,BGP只会选择其中的一条加载到路由表中
BGP工作过程
1 ,BGP的数据包
因为BGP传输层使用的是TCP协议,所以,传输的可靠性全部由TCP协议来保证,不需要额
外的设计确认报文
ospf中的hello包可以实现周期性的发现,建立和保活邻居关系
BGP中发现邻居关系 --- 需要通过手工来指定邻居关系
BGP中建立邻居关系 --- 由open报文来完成
BGP中保活邻居关系 --- 由Keeplive包来完成
OPEN包 ---- 主要用来建立BGP对等体关系,其实质就是协商参数
AS号 --- 在创建邻居关系时需要指定对方的AS号,并且,这个AS号会在OPEN报文
中携带。若对方收到数据包中发AS号和本地的AS号不同,则将无法正常建立邻居关系
认证 --- 在BGP中也可以进行邻居间的认证,在数据包中将携带认证口令,口令相
同,则将正常建立邻居关系,不同,则无法建立
Router- D --- 其作用也是用来区分和标定不同路由器的,在OPEN报文中也会携带这个
参数。对端在收到后将会比较数据包中的RID和本地的RID,相同则代表冲突,无法建立
邻居关系。不同,则可以正常建立邻居关系
BGP中的RID和OSPF中的完全一样 ---由32位二进制构成按照IP地址的格式配置
生成方法:
1,手工配置
2,自动生成(先看本地环回接口,取最大的作为RID,如果没有环回, 则取物理接
口IP最大的作为RID)
手工指定邻居关系时所配置的目标IP地址必须和邻居发来的OPEN报文中的源IP地址一
致,否则将无法正常建立邻居关系
OPEN报文中还会协商一些参数:
保活时间(Hold time) --- 默认为180S。这个参数也会携带在OPEN包中,但不要求必
须相同,但是执行时又必须相同。当双方保活时间不同时,则将按照数值小的执行。是
否支持路由刷新功能,如果有一方不支持,则间不启用该功能
Keeplive包 --- 主要任务就是保活对等体之间的邻居关系。周期发送时间为保活时间的
1/3,默认保活时间为180S,则周期发送时间为60S
除了正常的周期保活外,还将在收到对方OPEN报文后临时充当确认包的作用。Keeplive
包确认的不是OPEN报文是否收到,而是OPEN报文中的参数是否同意,同意则回
复 keeplive报文进行确认
Update包 (更新包) --- 主要包含目标网段及掩码信息,以及BGP附加给路由的各种路
径属性
当一条路由信息失效时,BGP将直接把该路由信息携带在更新包中的撤销路由条目字段
下,代表该路由失效,而不需要像RIP一样采用带毒传输的方式
Notification包 --- BGP设置的一个告警机制
Route-refresh包 --- 用于改变路由策略后请求对等体重新发送路由信息。前提是对等体双方
都需要支持路由刷新功能
2,BGP的状态机
BGP的状态机一共6种,主要描述的是BGP对等体建立过程中的状态变化,而不包含路由收发
过程。因为BGP可以将邻居建立和路由收发分开
Idle(空闲状态) --- 一开始,设备启动BGP进程后先进入空闲状态, 当手工指定邻居关系后,将进入到一个检查步骤。需要先确认指定地址在本地路由表中的可达情况。如果可达,则进入到Connect,尝试建立TCP的会话。如果不可达,则将停留在空闲状态
Connect(连接状态) --- 该状态需要完成TCP会话的建立
如果建立成功,则进入Opensent状态
如果建立失败,则进入Active状态,则将反复尝试建立TCP会话
Opensent --- 发送OPEN包,同时也会收到对方发送的OPEN报文。则将检查对方报文中的参数,如果没问题则将发送keeplive包进行确认。
Openconfirm --- Open确认状态。等待对方发送keepolive报文确认自己的参数。如果收到keeplive报文则进入下一个状态
Established --- 标志着邻居关系建立成功
3、BGP的工作过程
4、BGP的基本配置