您的BGP报文学习笔记(五)已抄送完毕,请查收!

 BGP选路:华为到这

1.路径属性:

BGP路径属性是一组描述BGP前缀特性的参数,由于各个厂商制定的属性参数较多,有的属性为私有属性,有的为国际标准属性,各个厂商的设备不一定都支持所有的属性,而有的属性的作用可以在每台路由器上生效,也可以在一个AS内部生效,也可以在所有的AS设备上生效,所以将属性进行分类。

BGP路径属性可以被分为四大类:

① well-known mandatory 公认必遵

② well-known discretionary 公认任意

③ Optional transitive 可选过渡

④ Optional non-transitive 可选非过渡

(1)well-known mandatory:

公认必遵属性,所有的BGP路由器都可以识别,且必须存在于Update消息中,如果缺少这种属性,路由信息就会出错。

类型协议:

① Originator

② Next-Hop

③ As-Path

注:在IPv4单播BGP报文中,三个属性必须都要存在,而在AFI不等于1的其他BGP网络类型中,下一跳属性存放在MP-REACH-NLRI(多协议网络可达性信息)中

(2)well-known discretionary:

公认任意 ,所有BGP路由器都可以识别,但不要求必须存在Update消息中,可以根据具体情况来决定是否增加到Update消息中。

类型协议:

① Local preference

② ATOMIC_Aggregate原子聚合

(3)Optional transitive:

可选过渡,BGP路由器可以选择是否在Update消息中携带这种属性。接收的路由器如果不识别这种属性,可以转发给邻居路由器,邻居路由器可能会识别并且使用到这种属性

协议类型:

① Aggregator手动聚合

② community团体属性

可选过渡属性中,在传递过程中如果有的设备不支持此属性,但是会继续传递此属性值,在继续传递报文之前,会将Flag中的Partial置位,后续设备接收到Partial置位的报文,得知有设备不支持此属性

(4)Optional non-transitive:

可选非过渡,BGP路由器可以选择是否在Update消息中携带这种属性,在整个路由发布的路径上,如果部分路由器不能识别这种属性,可能会导致该属性无法正常发挥效用,因此在接收的路由器如果不识别这种属性,应当丢弃这种属性,不必再转发给邻居路由器

协议类型:

① Originator ID

② Cluster List

③ MED

2. BGP选路规则:

① 丢弃下一跳(NEXT_Hop)不可达的路由

② 优选Preferred_value值最大的路由

③ 优选本地优先级(Local_PREF)最高路由

④ Aggregate>Summary>Network>Import

⑤ 优选AS路径(AS_PATH)最短的路由

⑥ ORIGIN属性(I>E>?)

⑦ 优选MED值最低的路由

⑧ 依次选择从EGP、联盟、IBGP学来的路由

⑨ 优选下一跳度量值最低的路由

⑩ 优选Cluster_list长度最短路由

⑪ 优选Originator_id最小路由

⑫ 优选Router-id最小路由

⑬ 优选地址最小的对等体发布的路由

注:默认情况下,BGP不会进行负载均衡,比较到第10条选路规则下一跳度量值一致时,此时可以使用附载均衡命令。

(1)丢弃下一跳不可达的路由:

当路由器的下一跳不可达时,display ip routing-table将无法看到此条路由,bgp路由器已将下一跳不可达的路由直接丢弃。

NEXT_Hop属性规则:

Ø BGP Speaker在向EBGP对等体发布某条路由时,NEXT_Hop值为空,会把路由信息的下一跳属性设置为本地与对端建立BGP邻居关系的接口地址

Ø BGP Speaker在向IBGP对等体发布某条路由时,NEXT_Hop值为空,会把路由信息的下一跳属性设置为本地与对端建立BGP邻居关系的接口地址

Ø BGP Speaker在向IBGP对等体发布从EBGP对等体学来的路由时,并不改变该路由信息的下一跳属性。

① 命令[Huawei-bgp]peer  192.168.2.2 next-hop-invariable保持NEXT_Hop的原属性值传递

② 命令[Huawei-bgp]peer  192.168.2.2 next-hop-local修改下一跳为自身接口IP

next-hop-invariable应用场景:

① AR5、AR6、AR7之间运行IGP路由协议

② AR7将7.7.7.7/32的路由条目通过IBGP邻居关系传递给AR6,如果下一跳属性为Local,则IP地址为192.168.2.2

③ AR6收到路由后,将路由条目传递给RBGP邻居AR5,下一跳属性为Local,则IP地址为192.168.1.2

④ AR6访问7.7.7.7,下一跳属性为192.168.2.2,根据IGP迭代查询下一跳地址为192.168.1.1,将数据包送给AR5

⑤ AR5收到数据包后,BGP路由表中7.7.7.7的下一跳属性IP地址为192.168.1.2,将数据包又送回AR6,形成路由环路

⑥ 如果AR6将NEXT_Hop模式改为Invariable,则在将路由传递给AR5时,下一跳属性IP为192.168.2.2,AR5收到数据后,直接将数据包送给AR7,解除环路

(2)优选Preferred_value值最大的路由:

协议首先值PrefVal:(华为私有,默认为0),数值高者优先,此属性值不会发送给任何BGP邻居,仅本地有效

PrefVal主要用于路由器从哪个端口送出数据包。

配置命令:

①宣告对等体,将对等体全部发送过来的路由Pref-value属性改为100

[Huawei-bgp]peer 10.0.13.1 preferred-value 100—将10.0.13.1发送过来的路由中pref-value属性值全部改为100

②使用Router-Policy,实现负载分担:

[Huawei]ip ip-prefix 1 permit 10.0.44.44 32

[Huawei]route-policy 1 permit node 5

[Huawei-route-policy]if-match  ip-prefix 1

[Huawei-route-policy]apply preferred-value 100

[Huawei]route-policy 1 permit node 10

[Huawei-bgp]peer 10.0.1.1 route-policy 1 import----R1发送过来的10.0.44.44的路由条目的Pref-Value值为100

[Huawei]ip ip-prefix 2 permit 10.0.55.55 32

[Huawei]route-policy 2 permit node 5

[Huawei-route-policy]if-match  ip-prefix 2

[Huawei-route-policy]apply preferred-value 100

[Huawei]route-policy 2 permit node 10

[Huawei-bgp]peer  10.0.2.2 route-policy 2 import----R2发送过来的10.0.55.55的路由条目的Pref-Value值为100

实现负载平衡。

(3)优选Local_Preference值最大的路由:

本地优先级Local_PREF:缺省值为100,数值高者优先。本地优先级(Local_PREF)属性仅在

IBGP对等体之间交换,不通告给其他AS。

Local_PREF主要用于控制流量离开AS时的最佳路由,也就是从哪个边界路由器离开AS

配置命令:

①BGP试图下,使用命令将本路由器的Local-Pref改为200

[Huawei-ospf-1]bgp 100

[Huawei-bgp]default local-preference 200

②使用Router-Plicy实现负载均衡:

R2:

[Huawei]ip ip-prefix 1 permit 44.44.44.44 32

[Huawei]route-policy 1 permit node 5

[Huawei-route-policy]if-match ip-prefix 1

[Huawei-route-policy]apply local-preference 200

[Huawei]route-policy 1 permit node  10

[Huawei]bgp 100

[Huawei-bgp]peer 1.1.1.1 route-policy 1 export

R3:

[Huawei]ip ip-prefix 1 permit 55.55.55.55 32

[Huawei]route-policy 1 permit  node 5

[Huawei-route-policy]if-match ip-prefix 1

[Huawei-route-policy]apply  local-preference 200

[Huawei]route-policy 1 permit  node 10

[Huawei]bgp 100

[Huawei-bgp]peer  1.1.1.1 route-policy 1 export

实现负载均衡。

注:Local_PREF不会在联盟子AS中传递

(4)A>S>N>I>L:

根据路由生成方式进行对比,路由生成方式:

A(aggregate)>S(summary)>N(network)>I(import-route)>L(从邻居学习来的路由)

(5)AS-PATH:

公认必遵属性,优选AS路径(AS_PATH)最短的路由,BGP路由器在向EBGP对等体宣告路由时,会在该路由的AS_Path最左端增加本地自制系统的AS编号,长度短者优先。AS_PATH属性值会在所有的自制系统内修改as编号,修改AS-Path的长度可以控制BGP的选路,AS-Path会在所有的路径中携带。

AS-Path主要用于整体上控制数据经过AS的路径。

注:在路由器BGP试图下使用命令bestroute as-path-ignore,此时不再比较AS—PATH属性

AS-PATH Segment Type:

① AS Sequence

② AS Set

③ AS Confed Sequence

④ AS Confed SET

① AS Sequence:

有序的AS排列,AS-Path的Type为2,如果存在AS Set,总是在AS Set前面存在,没经过一个AS,AS Sequence会记录此AS ID,用于防止路由环路。

② AS Set:

无序的AS排列,AS-Path的Type为1,如果使用了路由聚合功能,而且开启了AS-Set参数选项,则聚合路由会将所有顺序明确的使用AS Sequence表示,顺序不明确的使用AS Set表示,一个AS Set为一个长度的AS ID

子路由一:1 2 3 4 5

子路由二:1 2 3 6 7

聚合后的路由属性:1 2 3 {4 5 6 7}

配置命令:

① Router-Policy实现负载均衡:

R15:

[Huawei]ip ip-prefix 1 permit 22.22.22.22 32

[Huawei]route-policy 1 permit node 5

[Huawei-route-policy]if-match  ip-prefix 1

[Huawei-route-policy]apply as-path 20 30 additive—在源路由AS-Path属性上增加20,30(如果为overwrite覆盖源AS-Path)

注:如果增加的AS号码存在网络AS上,则收到路由器后,属性中的AS ID和自身的AS ID一致,会拒绝此路由,所以建议后面使用本AS ID,如 apply as-path 20 20 20 20

[Huawei]route-policy 1 permit node 10

[Huawei]bgp 500

[Huawei-bgp]peer 10.0.15.1 route-policy 1 export

AS-path号已增加。

(6)ORIGINATOR属性:

ORIGIN为起源属性,公认必遵属性,表示这条路由产生方式,对于BGP起源属性来说:

IGP优于EGP优于?

Ø I为路由始发AS的Network得到的路由信息

Ø E为古老的EGP协议

Ø ?为Incomplete,不完整属性,当使用Import命令引入IGP路由时,为此数值

使用Route-policy修改起源属性:

[Huawei]route-policy 1 permit node  5

[Huawei-route-policy]if-match  ip-prefix 1

[Huawei-route-policy]apply  origin incomplete

(7)优选MED值最低的路由:

Multi Exit Discriminator,多出口区分符,MED属性只会影响相邻两个AS,当一个AS收到另一个AS路由条目后,不会在将此条目的MED属性传递给EBGP邻居(除非手工配置传递给EBGP邻居MED值),MEDS缺省值为0,数值小者优先。在BGP选择最佳路径时,MED值为空实际上值为0,当使用Import命令将IGP路由引入到BGP路由表中,BGP协议直接将IGP的cost值作为MED值放入BGP路由表中

MED属性的主要作用是用来控制来自邻居AS的流量从哪个口进入本AS中

注1:只有相同的AS中的邻居路由器传递的路由携带MED属性值才会进行比较,否则跳过MED选路属性,使用命令[Huawei-bgp]compare-different-as-med可以对不同的AS上进行MED值比较

注2:默认比较的顺序为从时间最老的两条路由条目进行比较,如果使用命令[Huawei-bgp]deterministic-med之后,会将每条路由以AS为单位进行分类,同等AS之间进行比较,各个AS中最优的路由在进行比较

注3:默认BGP协议引入(Network、Import)会将IGP中的cost复制到BGP路由中的MED中,并传递给IBGP邻居,当传递给EBGP邻居时,MED属性值消失

注4:如果存在联盟,由于联盟内的路由携带子网AS ID,所以不会比较MED属性

配置命令:

①使用命令修改路由器的MED值:

[Huawei-bgp]default med 100-----此命令只对本设备import的IGP路由med值起作用

②使用Router-Policy实现负载均衡:

R2:

[Huawei]ip ip-prefix 1 permit 11.11.11.11 32

[Huawei]route-policy 1 permit node 5

[Huawei-route-policy]if-match ip-prefix 1

[Huawei-route-policy]apply cost 100

[Huawei]route-policy 1 permit  node 10

[Huawei]bgp 100

[Huawei-bgp]peer 192.168.3.2 route-policy 1 export

R3:

[Huawei]ip ip-prefix 1 permit 10.10.10.10 32

[Huawei]route-policy 1 permit node 5

[Huawei-route-policy]if-match ip-prefix 1

[Huawei-route-policy]apply cost 100

[Huawei]route-policy 1 permit  node 10

[Huawei]bgp 100

[Huawei-bgp]peer 192.168.4.2 route-policy 1 export

实现负载均衡。

注:默认在比较MED值时只会比较通AS中的MED值,如果来自不同AS中相同的路由不会比较MED。

可以使用以下命令比较来自不同AS中的路由的MED值:

[Huawei-bgp]compare-different-as-med

(8)EBGP>联盟>IBGP>Local Cross>Remote Cross:

依次选择从EGP、联盟、IBGP学来的路由、Local Cross、Remote Cross

Ø Local Cross:VPNv4路由同PE传递过来的VPnv4路由

Ø Remote Cross:VPNv4路由对端PE传递过来的VPNv4路由

(9)选择IGP下一跳度量值最低的路由:

比较两条路由对应的下一跳的开销值

开启附载均衡:

注:当前面九条全部相同,并且AS_PARH序列号ID一模一样,此时可以使用命令开启附载均衡:

[Huawei-bgp]maximum load-balancing bgp 8-----开启BGP附载分担,负载分担的

最大路径为8条

(10)优选Cluster_list长度最短路由:

当AS内部存在多个集群时,优先现则路由条目总Cluster List长度短者优先的路径。

(11)优选Originator_id最小路由:

当路由条目中存在Originator Id时,优先选择Id小的路由条目。

(12)优选Router-id最小路由:

存在到达同一目的地址的多条路由时,BGP优选Router ID最小的设备发布的路由。

注:如果路由属性中存在Originator-ID属性,而无法比较出最优路由,此时不会比较Router-ID,而是直接比较IP地址,如果没有Originator-ID,会比较Router-ID

(13)优选IP地址最小路由:

优选从具有较小IP地址的对等体学来的路由,如果BGP在比较对等体地址之前还没有选出最优路由,则表明本设备和另外一台设备之间通过等价链路建立了多个BGP邻居关系。一般情况下,在两台设备之间存在用于备份的物理链路时,我们推荐使用Loopback接口来建立BGP邻居,但是实际上,两台设备之间通过多个物理链路建立多个BGP邻居关系也不违反协议规定。

为了方便广大网络爱好学习者一起学(聚)习(众)交(搞)流(基),特开设华为干货交流群,里面已经上传大量学习资料,欢迎广大网络工程师进群学习!

扫描下方二维码  进群交流学习!

(0)

相关推荐