目录
前置内容
BGP下一跳的修改问题
BGP的属性
配置
PrefVal权重属性
负载分担
LocPrf
负载分担
NextHop
AS-PATH
Ogn
配置
MED
配置
BGP选路规则
BGP的社团属性
配置及解释
HCIP学习--BGP1_板栗妖怪的博客-CSDN博客
HCIP学习--BGP2_板栗妖怪的博客-CSDN博客
来讲一下,BGP中对于下一跳的修改问题,基于昨天的实验来讲一下,修改下一跳有多种修改方法
[r2-bgp]peer 172.16.1.3 next-hop-local
除去上面这种,还可以下面来一种路由策略
[r2]route-policy aa permit node 10匹配所有流量
[r2-route-policy]apply ip-adress next-hop peer-address修改包中下一跳地址为本地地址
[r2-bgp]peer 132.1.1.3 route-policy aa export在r2讲路由发给邻居132.1.1.3时的出接口执行这个策略
但是如果按上面第二种配置完成后就可能会出现问题,你用1的环回去ping8的环回ping不同,出现了环路,出现环路的原因是,首先1环回去往8环回,然后1去往2然后2去往8的下一跳是7的接口,然后递归查表,去往7的下一跳是3或者5,然后你看3的路由表,你会发现去往8的下一跳是2然后就成环了,那么三上去往8的为啥是2,是你自己改的。就是你改了2去往3和5下一跳,然后5把去往8的路由传给2,然后2再传给3,3上的下一跳经过路由策略的修改,就会变成2,然后就会出现问题。
所以第二个修改下一跳的路由策略是针对所有路由,
第一种修改实际仅针对R2从本地的EBGP邻居学习到的路由给3才会修改
总结:IBGP邻居间传递路由在一个AS内部,若贸然修改属性,极易出现环回,这就是BGP的AS-BY-AS特性
属性 |
传播范围 |
默认值 |
大优小优 |
|
权重属性(PrefVal) |
不传播(私有 不同设备之间的私有属性,只在本地有效可以在本地修改决定本地的下一个设备的路由选那条)(只可以在接受的路由的入接口配置,因为不传播) |
0 (0-65535) |
越大越好 |
只有本地作用,不管前面是啥设备,只要我在我这修改这一个属性,就可以直接干涉路由,对于自己身上的选路很方便 |
本地优先级(LocPrf) |
仅在IBGP邻居关系间传输 |
100 (0-255) |
大优 |
干涉IBGP邻居关系选路,使用最多的策略,属性如果是从EBGP邻居接受过来的话是,这个属性不显示,然后在IBGP上显示就是100 |
下一跳(NextHop) |
下一跳可达 |
优选0.0.0.0 |
||
AS-path |
整个BGP |
记录条目经过的所有AS编号(当你在AS3中前面经过AS2和AS1那么路由中显示1,2。AS号只能添加,不能减少 |
||
起源属性(Ogn) |
来源种类 Network人一条一条宣告产生 |
|||
MED |
度量:BGP协议默认没有度量值 |
|||
社团属性 |
默认大多数厂商的产品在BGP协议中不携带社团属性 |
[r3]bgp 2
[r3-bgp]peer 4.4.4.4 preferred-value 1
本地所有通过4.4.4.4邻居学习到的BGP路由,优先级全部修改为1
访问不同目标时,让路由器选择不同的路径,起到所有路径被使用效果
(和负载均衡的区别:负载均衡是去往一个目标可以走两条相同的路)
[r3]ip ip-prefix p permit 1.1.1.0 24 抓住网络号
[r3]route-policy p permit node 10 定制策略
[r3-route-policy]if-match ip-prefix p 匹配流量
[r3-route-policy] apply preferred-value 1 修改优先级属性
[r3-route-policy]q
[r3]route-policy p permit node 20 由于路由策略存在分发列表的功能,必须考虑空表
[r3-route-policy]q
[r3]bgp 2
[r3-bgp]peer 4.4.4.4 route-policy p import 和邻居传递路由的控制层面方向调用;
优先级不传播的特性,只能在本地的入方向调用
举个例子来理解入方向R1要传路由给R2然后,在R2的g0/0/0接口就是R2的入接口
[r4-bgp]default local-preference 1 本地传递路由给本地所有IBGP邻居时,修改属性为1
以上图做例子
[r3]ip ip-prefix l permit 1.1.1.0 24抓取相应流量
[r3]route-policy l permit node 10
[r3-route-policy]apply local-preference 101 修改本地优先级
[r3-route-policy]if-match ip-prefix l匹配
[r3-route-policy]q
[r3]route-policy l permit node 20空表放过其他路由
[r3-route-policy]q
[r3]bgp 2
[r3-bgp]peer 4.4.4.4 route-policy l import 可以在IBGP邻居关系间的出或入方向调用,是在3的靠近3的接口
本地在bgp协议中宣告本地路由表中的IGP路由时,在本地的BGP表中下一跳地址为0.0.0.0。而通过BGP从其他邻居处学习到的路由,下一跳地址正常不为0.0.0.0。本地优选0.0.0.0的路由传递给本地的其他BGP邻居
下图是本地宣告的路由
优选经过的AS号数量最少的路径
同时该属性用于EBGP水平分割,接收到路由条目中若存在本地的AS号将拒绝接收
可以人为的在EBGP邻居关系间,增加AS号的数量来干涉选路,(人为操作只能添加,不能减少)可以干涉到EBGP关系/IBGP关系选路,但只能在EBGP关系设备间配置
如何干涉到IBGP中的选路,以下图作为例子
看图现在又两条路可以将1的环回的路由传给3,现在修改上面那条路由,在2设备的入接口配置,修改上面那条路经过多个AS,那么在AS1内部,选路也会优先选下面那条路
[r2]ip ip-prefix as index 10 permit 1.1.1.0 24
[r2]route-policy as permit node 10
[r2-route-policy]if-match ip-prefix as
[r2-route-policy] apply as-path 3 4 5 additive修改AS属性经过345,标红的意思是马上执行
[r2-route-policy]route-policy as permit node 20空表
[r2-bgp]peer 12.1.1.1 route-policy as import在R2的入接口调用
配置后结果
出向调用为 x 3 4 5 X代表实际经过过的AS
入向调用为 3 4 5 X X代表实际经过过的AS
注:以上配置方式,若网络后端真实存在AS3/4/5.那么由于EBGP水平分割,将导致这些路由无法被学习
解决方案
重复添加实际已经经过的AS编号来增加数量,BGP选路看的是AS-PATH的数量
[r2-route-policy]apply as-path 1 1 1 additive
来源种类
Network人一条一条宣告产生 标记为 i
Ilmport将某种协议批量的导入BGP协议 标记为?
EGP重发布到BGP 标记为e
来个例子
三者优先级i优于e优于?
就以上面那个表格为例子
向让上面去往1.1.2.0/24的网段的路走下一跳为4.4.4.4的那条
[r2]ip ip-prefix o permit 1.1.2.0 24
[r2]route-policy o permit node 10
[r2-route-policy]if-match ip-prefix o
[r2-route-policy]apply origin egp 2 编写对端设备的AS号
[r2-route-policy]q
[r2]route-policy o permit node 20
[r2-route-policy]q
[r2]bgp 2
[r2-bgp]peer 3.3.3.3 route-policy o export 将2的那条路改成e类型
控制层面流量的入或出接口调用均可
下图是配置成功的结果
将本地通过IGP协议学习到的路由重发布或宣告到BGP协议,将携带本地IGP度量值到BGP路由中
故利用MED干涉选路,其实就是人为的修改度量值来影响路由器加表
可用于干涉EBGP/IBGP选路
最常用于EBGP选路干涉
常常用于AS1干涉AS2对AS1的选路
以上图作为例子来理解一下AS1干涉AS2对AS1的选路
假设AS1是电信的设备。AS2是联通的设备,真正工程中你只能是一方的人,不能既是电信又是联通的人,假设你现在是电信的人,你要在电信这边来配置,干涉联通对电信的选路
tracert -a 1.1.1.1 3.3.3.3可以显示你经过的下一跳 去往3.3.3.3是经过了12.1.1.1 还经过了23.1.1.2
ping -r -a 1.1.1.1 3.3.3.3 可知回包如何回 看后面两行,12.1.1.1 1.1.1.1经过了这两个回来的
修改度量配置
[r1]ip ip-prefix med permit 1.1.1.0 24
[r1]route-policy med permit node 10
[r1-route-policy]if-match ip-prefix med
[r1-route-policy]apply cost 2
[r1-route-policy]q
[r1]route-policy med permit node 20
[r1-route-policy]q
[r1]bgp 1
[r1-bgp]peer 12.1.1.2 route-policy med export
比较前提,多条BGP路由目标相同,且均可优(下一跳可达、同步关闭),具有相同的优先级(管理距离)
优选Preference_Value值最高的路由(私有属性,仅本地有效)。
不传递 权限最高属性 可以干涉EBGP/IBGP选路
优选本地优先级(Local_Preference)最高的路由。
IBGP邻居关系间传递 只能,最常干涉IBGP关系的选路
选手动聚合>自动聚合>network>import>从对等体学到的。
优选AS_Path短的路由。
EBGP/IBGP关系均可被干涉,但只能在EBGP邻居间修改;
起源类型IGP>EGP>Incomplete。
起源属性 i优于e优于?; 可在控制层面任意接口修改;
对于来自同一AS的路由,优选MED值小的。
默认为0,宣告或重发布(关闭自动汇总)路由时携带本地到达目标的cost
最常用于干涉EBGP选路的属性
[r1]route-policy com permit node 10
[r1-route-policy]apply community no-advertise 针对所有的流量修改属性
no-advertise 接收到的条目中若存在该社团属性,将不再传递该路由
no-export 接收到的条目若存在该社团属性,将不传递给下一个AS
no-export-subconfed 接收到的条目若存在该社团属性,将不传递给下一个小AS
(注:若网络没有小AS,仅存在大AS时no-export和no-export-subconfed作用一致)
[r1]bgp 1
[r1-bgp]peer 12.1.1.2 route-policy com export
注:默认华为设备也不传递社团属性,故使用社团属性时,必须定义传递性 下面有如何定义的配置
[r1-bgp]peer 12.1.1.2 advertise-community 逐跳行为,每台设备均需开启传递性