华为bgp路由策略
如果您正在寻找有关华为bgp路由策略的详细信息,那么本文将为您提供一些有用的知识,并涵盖华为pbr策略路由方面的内容。不要忘记收藏我们的网站,以获取更多相关信息。
本文目录一览:
BGP-9156A设置
6、BGP路由反射器配置
6.1、将本机作为路由反射器,并将对等体(组)作为路由反射器的客户。
[Huawei]bgp 1
[Huawei-bgp]ipv4-family unicast
[Huawei-bgp-af-ipv4]peer 1.1.1.1 reflect-client
6.2、设置路由反射器的集群ID
[Huawei-bgp-af-ipv4]reflector cluster-id ?
INTEGER1-4294967295 Configure cluster-id as a decimal value
X.X.X.X Configure cluster-id in IPv4 address format
6.3、禁止客户机之间的路由反射
[Huawei-bgp-af-ipv4]undo reflect between-clients
6.4、禁止BGP将优选的路由下发到IP路由表
[Huawei-bgp-af-ipv4]bgp-rib-only
在AS内部,为保证IBGP对等体之间的连通性,需要在IBGP对等体之间建立全连接关系。当IBGP对等体数目很多时,建立全连接网络的开销很大。使用路由反射器RR(Route Reflector)可以解决这个问题。
集群ID用于防止集群内多个路由反射器和集群间的路由环路。当一个集群里有多个路由反射器时,必须为同一个集群内的所有路由反射器配置相同的集群ID。
如果路由反射器的客户机之间重新建立了IBGP全连接关系,那么客户机之间的路由反射就是没有必要的,而且还占用带宽资源。此时可以配置禁止客户机之间的路由反射,减轻网络负担。
在一个AS内,RR主要有路由传递和流量转发两个作用。当RR连接了很多客户机和非客户机时,同时进行路由传递和流量转发会使CPU资源消耗很大,影响路由传递的效率。
如果需要保证路由传递的效率,可以在该RR上禁止BGP将优选的路由下发到IP路由表,使RR主要用来传递路由。
7、BGP联盟配置
7.1、设置联盟ID。 [Huawei-bgp]confederation id ?
INTEGER1-65535 2-byte AS Number
STRING3-11 4-byte AS Number (number1-65535.number0-65535)
7.2、设置本地设备属于同一个联盟的子as号(子as号-由as-number指定)
[Huawei-bgp]confederation peer-as 65501 65502 65503
7.3、设置联盟中的标准设备可与非标准设备互通
[Huawei-bgp]confederation nonstandard
同一联盟内不能同时配置2字节AS号的Old Speaker和4字节AS号的New Speaker。因为AS4_Path不支持联盟,这种配置可能会引起环路。
联盟将一个自治系统划分为若干个子自治系统,每个子自治系统内部的IBGP对等体建立全连接关系或者配置反射器,子自治系统之间建立EBGP连接关系。
大型BGP网络中,配置联盟不但可以减少IBGP连接的数量,还可以简化路由策略的管理,提高路由的发布效率。
如果其他交换机的联盟实现机制不同于RFC3065标准,可以配置联盟的兼容性,以便和非标准的设备兼容。
8、BGP协议优先级配置
[Huawei]bgp 100
[Huawei-bgp]ipv4-family unicast
[Huawei-bgp-af-ipv4]preference ?
INTEGER1-255 EBGP route preference # 外部路由优先级,值越小优先级越高。
route-policy Specify a route policy # 指定BGP协议优先级的路由策略名称。
[Huawei-bgp-af-ipv4]preference 2 ?
INTEGER1-255 IBGP route preference # 内部协议优先级,值越小优先级越高。
[Huawei-bgp-af-ipv4]preference 2 4 ?
INTEGER1-255 Local created route preference # 本地路由的协议优先级。
[Huawei-bgp-af-ipv4]preference 2 4 20 ?
cr Please press ENTER to execute command
[Huawei-bgp-af-ipv4]preference 2 4 20
目前不支持通过peer route-policy命令在对等体上应用路由策略来设置BGP协议的优先级。
由于交换机上可能同时运行多个动态路由协议,就存在各个路由协议之间路由信息共享和选择的问题。系统为每一种路由协议设置一个缺省优先级。在不同协议发现同一条路由时,优先级高的路由将被优选。
缺省外部优先级和内部优先级表
9、BGP Next_Hop属性配置
9.1、设置BGP设备向IBGP对等体(组)发布来自EBGP的对等体路由时,把下一跳设置为自身的IP地址。
[Huawei]bgp 65507
[Huawei-bgp]ipv4-family unicast
[Huawei-bgp-af-ipv4]peer 1.1.1.1 next-hop-local
9.2、配置BGP按路由策略进行下一跳迭代。
[Huawei-bgp-af-ipv4]nexthop recursive-lookup route-policy test
3、设置发布引入IGP路由时不改变IGP路由的下一跳地址
[Huawei-bgp-af-ipv4]peer 1.1.1.1 next-hop-invariable
对于从直连EBGP对等体收到的路由,nexthop recursive-lookup route-policy route-policy-name命令不生效。
当ASBR将从EBGP邻居学到的路由转发给IBGP邻居时,默认不修改下一跳。IBGP邻居收到该路由后,会发现下一跳不可达,于是将该路由设为非活跃路由,不通过该路由指导流量转发。
当希望IBGP邻居通过该路由指导流量转发时,可以在ASBR上配置向IBGP对等体(组)转发路由时,将自身地址作为下一跳。这时,IBGP邻居收到ASBR从EBGP邻居学习来的路由后,发现下一跳可达,于是将路由设为活跃路由。
当BGP路由发生变化时,BGP需要对非直连的下一跳重新进行迭代。如果不对迭代后的路由进行任何限制,则BGP可能会将下一跳迭代到一个错误的转发路径上,从而造成流量丢失。此时,可配置BGP按路由策略迭代下一跳,避免流量丢失。
10、BGP路由信息的首选值配置
[Huawei-bgp-af-ipv4]peer ?
STRING1-47 Specify a peer-group
X.X.X.X Specify an IPv4 peer address
[Huawei-bgp-af-ipv4]peer 1 preferred-value ?
INTEGER0-65535 Preference value # 为从指定对等体学来的所有路由配置首选值。
协议首选值(PrefVal)是华为设备的特有属性,该属性仅在本地有效。当BGP路由表中存在到相同目的地址的路由时,将优先选择协议首选值高的路由。
11、BGP本机缺省Local_Pref属性配置
[Huawei-bgp-af-ipv4]default local-preference ?
INTEGER0-4294967295 Specify a local preference
Local_Pref属性用于判断流量离开AS时的最佳路由。当BGP的设备通过不同的IBGP对等体得到到AS外的目的地址相同但下一跳不同的多条路由时,将优先选择Local_Pref属性值较高的路由。
12、BGP AS_Path属性配置
12.1、创建路由策略的节点,并进入路由策略视图。
[Huawei]route-policy ?
STRING1-40 Name of the route policy
[Huawei]route-policy 1 ?
deny Specify a deny rule
permit Specify a permit rule
[Huawei]route-policy 1 permit ?
node Node of the route policy
[Huawei]route-policy 1 permit node ?1
INTEGER0-65535 Index of the node
[Huawei-route-policy]
12.2、设置BGP路由的as_path属性
[Huawei-route-policy]apply as-path 65503 10.10 ?
INTEGER1-65535 AS Number to be appended or replaced
STRING3-11 1-65535.0-65535
additive Append to original As Number #在原有路由的as路径列表中添加指定的AS编号
overwrite Overwrite original As Number #覆盖原有的as-path列表路径。
12.3、向对等体(组)路由添加AS_Path属性。
[Huawei-bgp-af-ipv4]peer 1.1.1.1 route-policy 1 ?
export Specify export policy # 对向对等体(组)发布的路由添加AS_Path属性。
import Specify import policy #对从对等体(组)接收的路由添加AS_Path属性。
12.4、对BGP引入的路由添加AS_Path属性。
[Huawei-bgp-af-ipv4]import-route ospf 1 route-policy 1 # 对BGP以import方式引入的路由添加AS_Path属性
[Huawei-bgp-af-ipv4]network 1.1.1.1 24 route-policy 1 # 对BGP以network方式引入的路由添加AS_Path属性
12.5、不将AS_Path属性作为选路条件。
[Huawei-bgp-af-ipv4]bestroute as-path-ignore
12.6、允许本地AS编号重复出现
[Huawei-bgp-af-ipv4]peer 1.1.1.1 allow-as-loop ?
INTEGER1-10 Number of repeating times of AS Path
cr
12.7、配置发送EBGP更新报文时,AS_Path属性中仅携带公有AS编号。
[Huawei-bgp-af-ipv4]peer 1.1.1.1 public-as-only
12.8、配置AS_Path属性中AS号的最大个数
[Huawei-bgp]as-path-limit ?
INTEGER1-2000 The maximum number of AS numbers, default is 255
cr
12.9、配置EBGP对等体的伪AS编号。缺省EBGP对等体使用真实的AS号与本端建立连接。
[Huawei-bgp]peer 10.101.10.1 fake-as ?
INTEGER1-65535 2-byte autonomous system number
STRING3-11 4-byte autonomous system number
(number1-65535.number0-65535)
配置undo check-first-as命令后产生环路的可能性增大,请慎重使用。
执行命令undo check-first-as,配置取消检查EBGP对等体发来的更新消息中AS_Path属性的第一个AS号。
缺省情况下,BGP检查EBGP对等体发来的更新消息中AS_Path列表的第一个AS号。
配置更改后,如果希望对已接收的路由重新进行检查,可在用户视图下配置refresh bgp命令。
AS_Path属性按矢量顺序记录了某条路由从本地到目的地址所要经过的所有AS编号。配置不同的AS_Path属性功能,可以实现灵活的路由选路。
通常情况下,AS_Path属性内AS_Path数量作为BGP选路条件。当不需要AS_Path属性作为选路条件时,可以配置不将AS_Path属性作为选路条件。
通常情况下,BGP通过AS号检测路由环路。但在Hub and Spoke组网方式下,为保证路由能够正确传递,从Hub-CE发布私网路由到Spoke-CE途中经过的相关BGP对等体需要配置允许AS_Path中AS号重复1次的路由通过。
公有AS号可以直接在Internet上使用,私有AS号直接发布到Internet上可能造成环路现象。为了解决上述情况,可以在把路由发布到Internet前,配置发送EBGP更新报文时,AS_Path属性中仅携带公有AS编号。
在重构AS_Path或聚合生成新路由时,可以对AS_Path中的AS号最大个数予以限制。配置AS_Path属性中AS号的最大个数后,接收路由时会检查AS_Path属性中的AS号是否超限,如果超限则丢弃路由。
通常情况下,一个设备只支持一个BGP进程,即只支持一个AS号。但是在某些特殊情况下,例如网络迁移更换AS号的时候来为了保证网络切换的顺利进行,可以为指定对等体设置一个伪AS号。
BGP会检查EBGP对等体发来的更新消息中AS_Path列表的第一个AS号,确认第一个AS号必须是该EBGP对等体所在的AS。否则,该更新信息被拒绝,EBGP连接中断。如果不需要BGP检查EBGP对等体发来的更新消息中AS_Path列表的第一个AS号,可以去使能此功能。
BGP的路由优选规则和负载分担
1.Preferred-Value数值
Preference_Value是BGP的私有属性(华为私有属性),Preference_Value相当于BGP选路规则中Weight值,仅在本地路由器生效。Preference_Value值越大,越优先,默认缺省值为0 只能改变自己的入向选路。
默认情况下,会选择Router id小的作为自己的最优下一跳
step1:在R1上使用ip-prefix或者acl筛选出路由条目
step2:使用路由策略(由于首选值只在本地路由器生效,所以只能应用在本设备的入方向)
step3:在R1的BGP进程中调用路由策略
step4:验证现象(R1到达4.4.4.4/32的下一跳指向R3,首选值被修改成100)
小结:Pre-Value最大,Preference_Value值越大,越优先,默认缺省值为0,且只在本地路由器有效。
2. Local_Preference
Local_Pref属性仅在IBGP邻居之间有效,不通告给其他AS。它表明路由器的BGP优先级,用于判断流量离开AS时的最佳路由。一般用来控制本区域流量怎么出去,默认情况下Local-Pref值为100 该数值越大 优先级越高
默认情况下,会选择Router id小的作为自己的最优下一跳(即R2)
step1:在R1上使用ip-prefix后者acl筛选出路由条目
step2:使用路由策略
step3:在BGP进程中调用路由策略
1:R1中BGP进程里指向R3的入方向上(改大)
2:R3中BGP进程里指向R1的出方向上(改大)
3:R3中BGP进程里指向R4的入方向上 (改大)
4:R1中BGP进程里指向R2的入方向上 (改小)
5:R2中BGP进程里指向R1的出方向上 (改小)
6:R2中BGP进程里指向R4的入方向上 (改小)
不能调用在R4的export方向上面(因为Local-preference只能在本AS内进行传递的)
step:验证现象
3.路由生成方式
AggregateSummaryNetworkimport从邻居学习的路由
BGP在IPv4网络中支持自动聚合和手动聚合两种方式,而IPv6网络中仅支持手动聚合方式:
1:自动聚合:对BGP引入的路由进行聚合。配置自动聚合后,BGP将按照自然网段聚合路由(例如非自然网段A类地址10.1.1.1/24和10.2.1.1/24将聚合为自然网段A类地址10.0.0.0/8),并且BGP向对等体只发送聚合后的路由。
2:手动聚合:对BGP本地路由表中存在的路由进行聚合。手动聚合可以控制聚合路由的属性,以及决定是否发布具体路由。
为了避免路由聚合可能引起的路由环路,BGP设计了AS_Set属性。AS_Set属性是一种无序的AS_Path属性,标明聚合路由所经过的AS号。当聚合路由重新进入AS_Set属性中列出的任何一个AS时,BGP将会检测到自己的AS号在聚合路由的AS_Set属性中,于是会丢弃该聚合路由,从而避免了路由环路的形成。
自动聚合summary
step1:在R4上使用ip-prefix或者acl筛选出目标路由,使用Route policy调用。
step2:在BGP进程中将路由引入,并配置自动聚合命令
step3:在R4上查看BGP路由表,发现明细路由被抑制
step4:在R1上查看BGP路由表,发现路由被聚合成自然网段。
手动聚合
step1:在R4的BGP进程里宣告4.4.4.4/24的路由,并配置手工聚合,并抑制明细路由
step2:在R4上查看BGP路由表,明细路由通过detail-suppressed被抑制。
step3:在R1上查看BGP路由表,发现只收到R1的聚合路由。
手工聚合
1:as-set信息在避免路由环路时很重要,因为它记录了被聚合路由所经过的AS
2:attribute-policy 设置聚合路由的属性
3:detail-suppressed参数是把明细给抑制,如果不加的话,会把明细路由和聚合路由都传过去
4:origin-policy仅选择符合route-policy的具体路由来生成聚合路由(只要有这条路由信息,我才能产生聚合路由)
5:suppress-policy能产生聚合路由,但抑制指定路由的通告,可以使用route-policy和if-match子句有选择的抑制一些具体路由,其他具体路由仍被通告(抑制聚合中的某些路由)
路由聚合产生的问题
如果路由聚合后携带所有明细路由经过的AS信息,当明细路由发生频繁震荡时,聚合路由也可能受其影响频繁刷新。因此,聚合路由是否携带丢失的AS_Path信息,需要设计者综合考虑网络环境
4:AIGP
BGP优选AIGP较小的路由。AIGP属性是一种新的BGP路由属性,用于传递并累加IGP Cost值,该属性为可选非过渡属性。在一个AIGP域内部署AIGP属性,可以使BGP像IGP那样基于路由的Cost值优选出最优路由,从而保证一个AIGP域内的设备都按照最优路径进行数据转发。AIGP的比较遵循如下规则:
1:有AIGP属性的路由优先级高于没有AIGP属性的路由。
2:如果路由都存在AIGP属性,则比较AIGP属性与其下一跳的IGP Cost之和,优选该值较小的。
AIGP属性只能通过路由策略添加。在BGP引入、接收或发送路由时,可以人为通过路由策略里的 apply aigp { cost | inherit-cost }命令设置AIGP属性值的大小。其中,在BGP引入IGP路由时,若不进行设置,BGP路由没有AIGP属性值。
bgp 200(R4)
#
ipv4-family unicast
peer 14.1.1.2 aigp //使能与对等体之间的AIGP能力
peer 15.1.1.2 aigp //使能与对等体之间的AIGP能力
peer 14.1.1.2 route-policy 1 export
peer 15.1.1.2 route-policy 1 export
#
route-policy 1 permit node 10 //定义路由策略的第一个节点,设置路由4.4.4.4/32的AIGP为10
if-match ip-prefix prefix1
apply aigp 10
#
route-policy 1 permit node 20 //定义路由策略的第二个节点,不设置匹配条件,允许其他路由通过路由策略
if-match ip-prefix prefix1
apply aigp 5
#
ip ip-prefix prefix1 index 10 permit 4.4.4.4 32 //定义地址前缀列表prefix1,匹配路由
R2:
ipv4-family unicast
peer 14.1.1.1 aigp //使能与对等体之间的AIGP能力
R3:
ipv4-family unicast
peer 15.1.1.2 aigp //使能与对等体之间的AIGP能力
5.AS_Path
AS_Path属性有四种形式,分别是:AS_Sequence、AS_Set、AS_Confed_Sequence和AS_Confed_Set。
AS_Sequence:它是到目的地的路径上所经过的AS号的有序集合,按照顺序记录了路由经过的所有AS。
AS_Set:它是到目的地的路径上所经过的AS号的无序集合。AS_Set通常用在路由聚合的场景。
AS_Confed_Sequence:是联盟内子AS的一个有序集合。
AS_Confed_Set:是联盟内子AS的一个无序集合,主要用在联盟内路由聚合的场景。
AS号追加
route-policy 1 permit node 10 //定义路由策略add_asn的第一个节点
if-match ip-prefix prefix1 //匹配IP地址前缀列表prefix1
apply as-path 65003 65003 65003 additive
AS号替换
配置 apply as-path 命令时,如果选择 overwrite 参数,则可以对AS_Path中的编号进行替换。AS编号替换的应用比较灵活,主要有以下几种情况:
隐藏路由的真实路径信息。
如果配置了 as-path-limit 命令,接收路由时会检查AS_Path属性中的AS号是否超限,如果超限则丢弃路由。这样对于AS_Path较长的路由,在接收之前,可以把AS_Path替换成较短的AS_Path,防止路由由于AS号超限而被丢弃。
缩短AS_Path长度,使路由被优选。
AS号替换还可以用于形成负载分担
6.Origin
Origin属性主要有三种:
IGP:具有最高的优先级。路由是用 network 命令注入到BGP路由表中的,则Origin属性为IGP。
EGP:优先级次之。通过EGP得到的路由信息,其Origin属性为EGP。
Incomplete:优先级最低。路由是用 import-route 命令注入到BGP路由表中的,则Origin属性为Incomplete。
3种Origin属性的优先级为:ieIncomplete(?)
7.MED(越小越优,默认为0)
特点:仅在AS内部或者相邻两个AS之间传递,收到此属性的AS一方不会再将其通告给任何其他第三方AS
MED属性相当于IGP使用的度量值(Metrics),它用于判断流量进入AS时的最佳路由(用于比较来自相同AS的路由)
修改方法:
注意要点:
执行 compare-different-as-med 命令后,BGP将强制比较来自不同AS的路由的MED值。除非能够确认不同的AS采用了同样的IGP和路由选择方式,否则不要使用 compare-different-as-med 命令(可能产生环路)。
执行 bestroute med-none-as-maximum 命令后,BGP选路时将该路由的MED值按最大值4294967295来处理,选路结束后,MED值恢复为原始值。
执行 bestroute med-confederation 命令后,只有当AS_Path中不包含外部AS号(不属于联盟的子AS),且AS_CONFED_SEQUENCE的第一个AS号相同时,才能比较MED值的大小。
执行 deterministic-med 命令后,将消除路由接收顺序对选路结果的影响。
step1:在R4上使用ip-prefix或者acl命令匹配路由
step2:使用Route policy匹配ip-prefix或者acl,apply cost
step3:在R1上验证
8.邻居类型(EBGP优于IBGP路由)
在运营商网络存在多个出口设备从Internet获取路由的场景,出口设备会经常比较邻居类型。
所有设备处于同一个AS。SwitchA和SwitchB做为运营商网络的出口设备,之间建立IBGP邻居关系,并且和其他的设备也都建立IBGP邻居关系。做为运营商网络的出口设备,SwitchA和SwitchB同时从Internet获取路由,然后将EBGP路由向自己的所有IBGP邻居发布。在这种情况下,SwitchA和SwitchB上分别有一条IBGP路由和EBGP路由,并且二者的AS_Path属性相同。通过邻居类型的比较,SwitchA和SwitchB都选择EBGP路由做为最优路由。
9.IGP的开销值
默认情况下:R1会优先选择R2作为到达4.4.4.4/32的下一跳(router id小)
在R1的G0/0/0接口下使用命令ospf cost 10,使IGP的开销值大于默认开销值1.
验证如下:
10.Cluster_list
step2:RR收到客户机Client 1的update报文后,RR第一次反射该路由时,会把cluster-ID添加到Cluster_List,如果RR没有cluster_ID属性,则自己创建一个再添加。同时也会把Originator_ID添加进去,标识此条路由的发起设备(Router ID值)
11. Router ID (越小越优)
Router ID在自治系统AS中可以标识一台路由器:
如果路由携带Originator_ID属性,选路过程中将比较Originator_ID的大小(不再比较Router ID),并优选Originator_ID最小的路由。缺省情况下,BGP在选择最优路由时在Cluster-List之后比较Originator-ID。配置 bestroute routerid-prior-clusterlist 命令后,BGP在选择最优路由时在Cluster-List之前比较Originator-ID。
12:对等体地址
多链路场景EBGP之间一般用loopback0接口作为更新源地址,也可以使用不同的接口地址作为更新源
负载分担:
配置BGP负载分担后,满足如下所有条件的多条BGP路由会成为等价路由,进行负载分担:
1:首选值(PrefVal)相同。
2:本地优先级(Local_Pref)相同。
3:都是聚合路由,或者都不是聚合路由。
4:AIGP值相同。
5:AS_Path属性完全相同。
6:Origin类型(IGP、EGP、Incomplete)相同。
7:MED(Multi_Exit Discriminator)值相同。
8:都是EBGP路由或都是IBGP路由。配置 maximum load-balancing eibgp 命令后,BGP在选择最优VPN路由时忽略该条比较。
AS内部IGP的Metric相同。配置 maximum load-balancing eibgp 命令后,BGP在选择最优VPN路由时忽略该条比较。
此外,需要特别指出的是,携带标签的BGP路由与不携带标签的BGP路由即使满足上述条件,也不能形成负载分担。
step1:在R4的BGP进程中network一条路由之后,R1的路由表中存在两条到达4.4.4.4/32的BGP路由,但是只会优选下一跳为R2作为自己的下一跳,因为router id小,此时查看路由表如下所示:
step2:在R1的BGP进程中使用maximum load-balancing ibgp 2命令(ebgp也可以)实现负载分担。
BGP的十三条选路原则
BGP的13条选路原则:
1、优选具有最大Weight值的路由
2、优选具有最大Local_Preference值的路由
3、优选起源于本地的路由(如本地network、aggregate或redistribute的)即下一跳是0.0.0.0(在BGP表中,本路由器通告的路由的下一跳为0.0.0.0)
4、优选AS-Path最短的路由
5、Origin(IGPEGPincomplete)
6、优选MED最小的路由,默认情况下仅有当所有备选路由来自同一AS才会比较MED
7、优选EBGP邻居发来的路由(相对于IBGP邻居学过来的),在联邦EBGP和IBGP中首选联邦EBGP路由
8、优选到BGP next_hop 最近的邻居
9、执行等价负载均衡(如果有多条来自相同相邻AS的路由并通过Maximum-paths 使多条路径可用,则将所有开销相同的路由放入本地路由表)
10、优选最老的EBGP路由,EBGP路由接收的顺序(此条主要对EBGP路由起效,基本不用,不好确定)
11、BGP邻居的RID越小越优先
12、优选cluster_list最短的路由
13、选择邻居IP地址(BGP的neighbor配置中的那个地址)最小的路由
【HCIP】3BGP协议-2.5:BGP路由常用属性介绍1
上节我们主要讲解了BGP通告原则与路由处理
IGP协议中,rip是通过跳数,ospf和ISIS是通过开销值,
那在BGP中如何进行选路呢?
如何进行防环是每个协议都要考虑的问题
大致可以分为公认属性和可选属性
1、公认属性:所有运行BGP协议的路由器都能理解的属性
*公认必遵:大家都知道并且必须满足,BGP的Update报文消息中必须包含的属性
Origin(起源属性)
AS Path
Next hop
*公认任意:大家都知道,但是需不需要可以根据需求自由选择,不必存在于Update报文中。
Local Pref
Atomic aggregate
2、可选属性:厂家开发的某些满足特殊需求的属性,但是并不是所有路由器都理解的属性,私有属性。
*可选过渡:BGP虽然不能识别该属性,但是我可以把它接受并传递下去发布给其他的邻居
Aggregator
Community
*可选非过渡:BGP可以忽略包含该属性的消息并且不向它的邻居发布。
MED
默认情况下传给EBGP邻居的BGP路由的下一跳设置为自身向这个EBGP邻居发送BGP报文的源地址。
默认情况下从EBGP邻居得到的BGP路由再传给IBGP邻居时,此BGP路由的下一跳默认不变,可以使用peer next-hop-local修改下一跳。
默认情况下凡是自己产生的BGP路由在传给任何BGP邻居时,总是把此路由的下一跳设置为向BGP邻居发送BGP报文的源地址
练习:以下如果都用环回口建立邻居关系,最后答案是多少?
1.1.1.1
2.2.2.2
3.3.3.3
同AS传递下一跳不变,不同AS之间传递下一跳需要改变。
Origin属性定义路径信息的来源,标记一条路由是怎么成为BGP路由的。
我们可以看到BGP路由表中出现Ogn列,就代表起源属性
BGP路由的起源属性有三种:
1、i:表明BGP路由是由network命令发布的
2、?:imconplete,不完全的,表明BGP路由是由import-route发布的
3、e :表明BGP路由时从EGP协议引入的BGP协议目前已经全面退出网络了,但是我们可以通过路由策略将路由的起源属性进行修改为e,一般起源属性是一种选路属性,可以用于BGP路径的选路,通过修改起源属性可以控制BGP路径 。
三种属性的优先级:ie?
我们在R1上引入以下路由,
功能:
1、选路,经过AS数量少的路径最优
2、在AS之间实现BGP路由防环,从EBGP邻居得到路由时,检查该路由的AS_PATH属性,如果AS_PATH属性中携带该路由自身的AS号,则丢弃该路由。
3、当BGP路由传递给EBGP邻居时,会将自己的AS号添加到ASpath的最前边。
当BGP路由传递给IBGP邻居时,不会添加自己的AS号。
4、AS_PATH可以被修改,华为在EBGP和IBGP邻居之间都可以被修改,思科只能在EBGP之间进行修改
ps:AS内部是怎么进行防环的呢?
IBGP的水平分割:通过IBGP获得的最优路由不会发布给其他的IBGP邻居
我们继续在R1上进行如下配置
我们在R1配置了一条234的AS path
现在抓包看一下,
使用命令将BGP路由手动触发更新
发现这条路由里已经添加了234的AS_PATH
此时R2的路由都不接受R1传递的1.1.1.1了
我们开启R2的debug模式
然后在R1上进行BGp刷新
R1refresh bgp all export
R2
这表示路由器接收到了192.168.1.0路由来自10.1.12.1,它的AS path是 1 234
我们在R2上进行如下命令,表示如果收到10.1.12.1发送来的EBG路由,携带AS号也接收
此时我们在查看BGP路由表
总结:BGP公认必遵的三个属性的必要性,下一跳是一定要存在的,BGP不进行路由计算,只是被动的接受路由指令。起源属性是定义路径信息的来源,标记一条路由是如何成为BGP路由的,AS_PATH是EBGP路由防止环路的关键,也必须存在。
该属性是属于公认任意的,local preference属性仅在IBGP邻居之间有效,不通告给其他AS,它表明路由器的 BGP优先级,用于判断流量离开AS时的最佳路由。默认值是100,越大越优先。
我们把之前对AS_PATH做的策略去掉
此时R1只是引入了一条192.168.1.0的静态路由,并发布BGP路由表中
在R5上,我们也做同样的操作
此时我们来模拟,AS234访问192.168.1.0的路由会有两条路可以走,AS1和AS5
,它 们访问R3的路由优先级都是一样的
但是我们查看R3的路由表,目前R3中192.168.1.0选路是通过R2走的,我们现在想改为通过R5,R4走,
与此同时,R2也会收到R4传递的v路由,它此时会把之前通过R1得到的路由丢弃,但是此时并不会继续向R3进行路由转发,因为是IBGP邻居传递给他的路由,我们知道,通过IBGP邻居得到的路由不会继续转发给其他BGP邻居,进行IBGP之间的防环。
实验:
我们在之前的实验基础上再各自添加一条192.168.2.0 24的路由实现192.168.1.0通过R2访问,192.168.2.0通过R4访问,达到BGP通过公认任意属性选路的效果。
先把R4的路由优先级取消,恢复默认
R2
R4
我们从R3查看
验证通过~!
属于可选属性中的可选非传递属性,也称BGP的开销,越小越优先,属性仅在相邻的两个AS之间传递,收到此属性的AS不会再将其通告给任何其他第三方AS,用于判断流量进入AS时的最佳路由。
华为设备通告MED属性的规则
我们继续在R2上进行实验
查看
(和第一条综合起来,就是MED只会影响始发路由器相关的AS邻居,不会影响第三方。
我们从R1将之前的引入静态路由设置MED‘为888,在R4上依然能够看到。
4、从IBGP邻居得到的路由传递给EBGP邻居不携带MED
5、从联盟EBGP邻居或者联盟内始发的路由的MED值在整个联盟中保持传递
MED值在IBGP或者EBGP包括成员EBGP in和out方向都是可以修改的
现在您已经学会了这些技巧和方法,让我们一起开始应用它们,让您的上网更加轻松和愉快吧!