HCIP第十一天笔记

在这里插入图片描述
在多点的重发布中,由于重发布技术的种子度量值问题,将必然导致选路不佳;只能依赖路由策略来人为干涉选路。

控制层流量–路由协议发送路由信息是产生的流量。
数据层流量–设备访问目标地址时产生的流量。

路由策略:在控制层流量转发的过程中,截取流量,之后,修改流量中的参数或直接不转发,最终影响路由器路由表的生成,以达到干涉选路的目的。

1、抓取流量(控制层流量)
1,通过ACL列表进行抓取—本身用于限制数据层流量的进出,也可以用于抓取控制层流量,但由于通配符的设计,导致其无法精确匹配控制层流量。
2、通过前缀列表进行抓取—IP-Prefix
[r1]ip ip-prefix aa permit 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—通过序号插入规则
[r1]undo ip ip-prefix aa index 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(只能改大,不能改小)-----偏移列表----只能应用在距离矢量型协议上,链路状态型协议是无法使用的。

[r1]ip ip-prefix aa permit 23.0.0.0 24—通过前缀列表抓取目标网段的流量
[r1-GigabitEthernet0/0/1]rip metricin ip-prefix aa 10 —在路由器接口上做入方向的偏移列表

2、filter-policy —过滤列表/过滤策略

[r1]ip ip-prefix bb deny 34.0.0.0 24 ----因为过滤列表本身并不具备过滤功能,所以,在进行流量抓取时,需要使用抓取流量列表的过滤功能。
[r1]ip ip-prefix bb permit 0.0.0.0 0 less-equal 32

[r1-rip-1]filter-policy ip-prefix bb import GigabitEthernet 0/0/0 ----在进程中调用过滤列表,注意,按需求确认是否需要选择作用的接口

过滤列表—可以在距离矢量型协议上使用,也可以在链路状态型协议中使用。但是注意,在链路状态型协议中使用时,在一个区域内,因为他没有办法过滤拓扑信息,所以,只能在入方向进行调用,用来影响自身,并且只是在路由加表时不向路由表中加表,并不是将拓扑信息过滤掉。
当然,如果想在出方向进行调用,可以在ABR或者ASBR上针对三类,五类,七类LSA进行过滤。

3、Route-policy 路由策略
1、先抓取流量
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—加了一个列表的条目序号,我们一般也是以10为步调手工添加路由策略的名称
[r2]route-policy aa deny node 10
[r2-route-policy]if-match acl 2000 ----如果匹配到ACL2000抓取到的流量

[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]route-policy aa permit node 30
[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

[r2]route-policy aa permit node 50 —放通所有流量

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

3、在重发布中进行调用
[r2-ospf-1]import-route rip 1 route-policy aa

ROUTE-POLICY的配置指南
1、即便要拒绝一个流量,在抓取时也使用允许,之后在路由策略中进行拒绝。
2、在一条规则中,若没有进行流量匹配的动作,则代表匹配所有流量;如果没有相应的应用(小动作),则仅对匹配的流量执行大动作即可;因此,大动作为允许的空表,代表允许所有。

BGP:边界网关协议
IGP:内部网关协议----RIP OSPF
EGP:外部网关协议----BGP

内部和外部:
AS:自治系统----由单一的机构或组织所管理的一系列IP网络及设备构成的集合。
划分AS的原因:
1、网络范围太大,协议跑不过来;
2、自治管理

为了方便对自治系统进行管理,我们给每一个自治系统设计了一个编号----AS号-----16位二进制构成-----取值范围:0–65535,其中0和65535为保留(暂时不能用),所以AS号的可用值范围为1–65534,其中64512–65534被设定为私有AS号(可随便用),剩下的为公有AS号(不可随便用,要保证全球唯一性)。
因为传统的AS号存在不够用的情况,所以,目前大部分设备均支持拓展的AS号-----32位二进制构成。

BGP协议-----目前在IPV4环境下----BGPV4------目前市场上也存在BGPV4±—BGPV4+在BGPV4的基础上,可以支持多种地址族(支持IPV6)

AS之间相互获取路由信息可以使用重发布,但是以重发布作为解决方案存在问题:
1、选路不佳—因为重发布在导入路由时,会洗掉开销值。
2、ASBR的归属问题

BGP协议:无类别的路径矢量协议
无类别—传递路由信息时携带子网掩码
路径矢量:
1、距离矢量中的距离指的是,协议将一个路由器作为一条来计算开销。而路径矢量是以一个AS作为一个单位来传递信息的。
2、距离矢量型协议的分发是根据算法来分的,但是BGP协议不存在算法的概念,因为BGP协议不需要去计算路由,只需要将现有的传递到自己的邻居处即可。

两种协议的关注点:
IGP协议—选路佳,收敛快(将未知网段收敛齐的时间),占用资源少
EGP协议
1、可控性:AS之间需要传递大量的路由信息,所谓可控,就是可以更方便的干涉选路,更容易做策略。—弥补重发布的不足。
为了保证路由传递的可控性,更方便干涉选路,BGP协议舍弃了开销值,取而代之的是他为路由信息设计了很多路径属性。可以通过属性进行选路,使得选路过程更加灵活,可控性更高。
2、可靠性:BGP协议为了保证传输的可靠性,直接选择TCP协议作为传输层的协议来完成数据收发----使用的是TCP 179号端口
使用TCP协议通信造成的问题是,传输效率降低,只能实现单播通讯(TCP需要去建立会话),占用资源加大,所以使用TCP之后,便不能通过广播或者组播去自动发现邻居进行通信了。
BGP协议可以实现非直连建邻,非直连建邻的前提条件是邻居双方网络可达-----BGP的非直连建邻是建立在IGP的基础上。

我们可以根据邻居关系的建立情况,将BGP的邻居关系分为两种。
AS之间:EBGP对等体(相当于邻居关系),如果建立对等体的两台路由器位于不同AS中,则他们的关系被称为EBGP对等体关系。(一般AS之间是直连建邻,所以TTL值等于1)
AS内部:IBGP对等体—如果建立对等体的两台路由器位于同一个AS中,则他们的关系被称为IBGP对等体。(AS内部一般是非直连建邻)

因为EBGP对等体之间一般采用直连建邻的方法,所以,我们将EBGP对等体之间的数据包中的TTL值设置为1;而IBGP对等体之间往往需要非直连建邻,所以,IBGP对等体之间的数据包中的TTL值我们设置为255;当然,如果EBGP对等体之间需要非直连建邻,则需要手工修改TTL值。

3、AS-BY-AS:BGP将一个AS作为一个单位来看待。
BGP的一个特性 :BGP是不支持负载均衡的。

1、BGP的数据包
ospf的hello包—周期发现,建立和保活邻居关系。
发现邻居的任务—在BGP中由手工指定邻居关系来替代。
建立邻居的任务—在BGP中由open报文来承担。
保活邻居的任务—在BGP中由keeplive报文来承担。

open包:建立邻居关系
AS号:在手工建立邻居关系时声明的邻居的AS号。对端收到后会检查其是否和本地的AS号一致,一致则正常建立邻居关系。
认证:BGP也可以在建邻时做认证,需要比对双方认证口令,不一致则无法建立邻居关系。
router-id:主要区分和标定路由器。open报文中携带RID的目的是为了确保双方的RID不一致。确保其唯一性,如果相同,则无法正常建立邻居关系。
RID也是由32位二级制构成,并且遵循IP地址的格式。也可以通过两种方法获取,一种是手工配置;另一种是自动获取。(先在自己路由器的环回接口中选择最大的IP地址作为RID,如果没有环回接口,则在自己物理接口中选择IP地址最大的作为RID)
注意:在接收邻居数据包时,其中的源IP地址必须和手工指定的邻居的IP地址一致才可以正常建立邻居关系。(这个地址将作为之后的更新源地址)

open报文在建立邻居关系的时候也会携带保活时间(hold time)这个参数----这个参数默认值为180秒。----即180秒内若收不到对方发送的keeplive包或者updata包,则将判定BGP链接中断。------双方建邻时携带这个值,但是并不要求必须相同。但是,执行时必须相同,所以,将会在双方中选择较小的保活时间作为执行时间。

open报文中也会将自身是否支持路由刷新功能的相关参数进行携带,双方进行协商,如果都支持,则可以开启路由刷新功能。

keeplive包:仅完成周期保活即可(保活TCP会话),所以,不需要携带太多的参数,也不具备太多的功能。
keeplive报文的发送周期—保活时间(hold time)的三分之一,保活时间默认为180秒,则周期发送时间默认为60秒。
keeplive包还有一个作用----在收到对方发送的open报文后,临时充当确认包的作用。—TCP本身具有确认机制,可以确保传输的可靠性,这里的确认主要是确认open报文中携带的参数,如果认同对方的参数,则将回复keeplive包进行确认。

updata包:更新包----携带路由信息的数据包----包括目标网段,子网掩码信息,以及BGP的各种属性。
在updata包中存在撤销路由字段,我们可以直接将不可达的路由信息放在该字段下进行通告,以达到传递失效信息的目的。而不需要像RIP那样采用带毒传输的方式。

notification包:BGP设计的一个告警机制—当BGP检测到一个错误的时候,他将会用这个包进行告警,告知对端错误点在哪

route-refresh包:用于改变路由策略后请求对等体重新发送路由信息。(前提是对等体双方均支持路由刷新功能)

2、BGP的状态机(建邻之前的六个状态)
BGP的状态机仅描述BGP对等体建立过程中的状态变化。
因为BGP可以做到建立邻居关系和发布路由分开完成。
在这里插入图片描述

idle状态:空闲状态—一开始,启动BGP之后,先处于idle状态,之后手工指定邻居关系。
当手工指定好邻居之后,BGP将开启检查步骤,他需要确认指定的IP地址在本地路由表中是否路由可达,如果可达,则开始尝试建立TCP会话,进入下一个状态。如果不可达,则将停留在idle状态。
connect状态:进行TCP会话连接的状态。如果TCP会话连接建立成功,则进入opensent状态。如果TCP会话建立失败,则进入active状态,反复尝试去重新建立会话连接。
注意:在建立TCP会话连接时,双方都会尝试建立连接,一方建立成功,则将创建一个双向的TCP会话通道;双方都建立成功,则将会出现两个双向通道,则需要关闭一个TCP通道。后面开始发送open报文,其中会携带RID,双方比较RID,仅保留RID大的一端发起的TCP连接,RID小的一端发起的TCP连接通道将被断开。

active状态:(上一个状态失败才会进入这个状态):TCP连接没建立成功,反复尝试TCP连接。

opensent状态:开始发送open报文,报文中携带建立邻居关系所需的参数。当收到对端发送的open报文后,将检查里面的参数。如果参数没有问题,则将回复一个keeplive包作为确认,则进入下一个状态。

openconfirm状态:open确认状态:对端收到本端的open报文后,确认参数无误,则将发送keeplive包进行确认。此时,则代表双方的open包中的参数都确认无误。则进入下一个状态。

established状态:建立完成状态:标志着对等体关系的建立。
在这里插入图片描述
从这个流程图中可以看出,TCP连接失败,则进入active状态,尝试重连,如果重连超时,则放弃重连,判断邻居关系建立失效,回到idle状态。整个环节中,任意环节出现问题,都将发送notification包进行报错,之后将状态退回到idle状态。

3、工作过程
1、基于IGP协议(静态,直连)实现IP可达
2、指定邻居关系,邻居间需要建立TCP会话通道。BGP之后发送的所有数据包都是通过TCP会话通道发送,来保证其传输的可靠性。
3、使用open报文和keeplive报文进行邻居关系的建立;生成邻居表;
4、使用update报文共享路由信息,信息中携带目标网络号,掩码信息及各种属性;将收集和发送的所有路由信息记录在一张表中----BGP表。
5、之后,将BGP表中的最优路由加载到路由表中。(到达同一个目标网段可能收到多条路由信息,BGP仅加载一条(不存在负载均衡)最优路径,最优路径是通过属性来选择的。)
6、收敛完成后,将使用keep live包进行周期保活,默认保活时间为180秒,周期发送时间为60秒。
7、若出现错误信息,将使用notification报文进行告警;(这个错误信息可能出现在对等体建立的时候,也可能出现在之后)
8、若发送结构突变,则将直接发送update报文进行触发更新。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值