0-65535;
AS之间传递路由更新的路由协议只有BGP。
目标端口为179,而会话源端口号是随机的
Keepalive=60s(默认);Holdtime=180
收敛状态,一个网络只有在收敛状态时,才能保证路由全网可达。
EBGP20
、IBGP200
router bgp 123
next-hop-self
ebgp-multihop 2
必须精确匹配
neighbor 33.1.1.1 peer-group WOOW
1)硬清:clear ip bgp *
clear ip bgp *
1)手工写静态路由指向Null0(路由汇总)在用network 发布汇路由
BGP路由要被标为最优路由必须达到以下两个条件:
★下一跳可达
★如果是从iBGP收到的路由,则必须满足IGP与iBGP同步,除非该规则已被关闭。
如果某BGP路由的状态为RIB-Failure,则不能被使用,被定为RIB-Failure的原因有:
★该路由在IGP中已经拥有比BGP更高优先级的AD值。
★内存错误
★超出VRF中的路由限制数。
★双方需要建立邻居的IP地址在网络上是互通的,可以建立TCP会话。
★双方指定的AS号码必须匹配。
★双方BGP数据包必须可达(eBGP默认TTL为1,需要注意)。
★对方BGP数据包的目的IP和自己的源IP必须相同(单向满足即可)。
Weight属性为Cisco私有属性
BGP还能够传递除IP协议之外的其它网络层协议,能够传递的协议如下:
IP Version 4 (IPv4),
IP Version 6 (IPv6),
Virtual
Connectionless Network Services (CLNS),
Layer 2 VPN (L2VPN).
这些协议被称为address
BGP的路径属性可以划分为以下四类:
公认强制
公认自选
可选可传递
可选不可传递(Optional Nontransitive)
BGP路由必须携带的公认强制属性有三个:Origin,Next_Hop,AS-path。
1.Origin(公认强制属性):
默认情况下,任何路由都不会自动进入BGP路由表,只能手工导入,对于路由是怎么进入BGP路由表的,这种方式会被记录在路由条目中,称为Origin属性,Origin属性就反映出了路由是如何进入BGP路由表的。
1、将IGP表中的相应路由导入BGP路由表,并且需要指定掩码,只有network后面的网段和掩码在IGP路由表中能找到时,才会进入BGP路由表,并不能通过这种方式将一条不存在的路由凭空导入BGP,通过命令network被导入BGP的路由的Origin属性为IGP属性。
2、BGP路由表除了从IGP和EGP获得路由外,还可以将路由重分布进BGP路由表,而重分布的路由的Origin属性为Incomplete。
3、当BGP路由表中到达同一目的地存在多条路径时,会通过比较路由的Origin属性来选择最优路径,它们的优先级为IGP优于EGP,EGP优于Incomplete,即:IGP>EGP>Incomplete。
2.AS_Path(公认强制属性):
AS_Path还能细分为:
1、AS_SEQUENCE(有序的AS号码,即AS号码在AS_Path中是按一定顺序排列的)
2、AS_SET(无序的AS号码,即AS号码在AS_Path中的排列是没有顺序的,通常是将多条拥有不同AS_Path的路由汇总后产生的)
当BGP路由表中到达同一目的地存在多条路径时,会优选AS-Path最短的路径。
3.Next_Hop(公认强制属性):
1、默认情况下,一台BGP路由器将路由传递给eBGP邻居时,会将Next-hop属性改为自己的地址,也就是和对方建立邻居所使用的地址,而在将路由传递给iBGP邻居时,不会改变Next-hop属性。
2、BGP路由表中由本地产生的路由而不是从BGP邻居学习来的,即本地发起路由的Next-hop属性都为0.0.0.0。
4.Local_Pref(公认自选属性):
1、Local_Pref称为本地优先级,其中的(Local)本地就是指本AS,Local_Pref属性的传递范围,只在同一个AS内有效,一条路由的Local_Pref属性只能在同一AS内部传递,出了AS后就会被还原成默认值。
2、Local_Pref属性在BGP邻居之间自动传递,只有在将路由发给iBGP时才会传递,而在发给eBGP时,没有Local_Pref值,Local_Pref的默认值为100,一条路由在AS内所有路由器上的默认值是100.
3、本地优先级属性是用于区分到同一目的地的各个路由优先程度的。本地优先级越高,路由优先级越高;推荐使用Local_Pref属性来控制一个AS的路由器去往目的地在其它AS的路径。
5.MULTI_EXIT_DISC(MED,可选不可传递属性):
1、MED就是BGP路由中的metric,是被设计用来影响在多个下一跳都为eBGP邻居时,如何选择最优路径;多条路径中拥有最小MED值的路径会被优先使用。MED默认值为0。MED只能在AS之间传递,只有在将路由发给eBGP邻居时,才会传递MED,在发给iBGP时,是不会传递MED的。
2、同一个AS内,所有发给iBGP邻居的路由的MED值都为0,这是为了让所有AS内部路由器都能够拥有相同的选路结果。
6.Weight
1、Weight属性为Cisco私有属性,只有Cisco的路由器才能认识和理解Weight。路由的Weight属性只在路由器本地起作用,BGP将路由传递给邻居时,并不会保留Weight。Weight值的范围为0~65535,默认为0,如果是BGP本地路由,则Weight值为32768。
2、当BGP路由表中到达同一目的地存在多条路径时,会优选Weight值最大的路径。在Cisco路由器中,比较最优路径的第一条规则就是比较Weight值,所以只要改动Weight值,就绝能够控制Cisco路由器的BGP选路。
BGP最优路径选择
在默认情况下,到达同一目的地,BGP只走单条路径,并不希望在多条路径之间执行负载均衡。
1.最高Weight值(选择最高Weight值的路由,Weight值为Cisco私有,并且只有本地有效,默认Weight值为0,本地发起路由为32768。
2.最高LOCAL_PREF值(如果Weight值相同,则选择拥有最高LOCAL_PREF值的路由,默认为100。)
3.本地发起路由
(如果LOCAL_PREF值相同,则选择BGP本地发起的路由:
4.最短AS_PATH
(如果本地发起路由无法比出最优路径,则选择拥有最短AS_PATH的路由,但是可以跳过这一步,输入命令bgp bestpath as−path ignore后,就会忽略对AS_PATH的比较,而直接比较下一属性。需要更加注意的是,AS_SET被认为是1个AS,而无论AS_SET中包含多少个AS,并且BGP联邦内部AS不被计算。)
5.最低Origin类型
(如果AS_PATH无法比出最优路径,则选择拥有最低Origin类型的路由,Origin表示路由最初是如何进入BGP路由表的,目前有三种进行BGP路由表的方法,从IGP导入,从EGP学习,以及重分布,它们的优先级为IGP优于EGP,EGP优于Incomplete,即IGP>EGP>Incomplete。
6.最小MED值
(如果Origin类型无法比出最优路径,则选择拥有最小MED值的路由,并且只有当多个下一跳邻居在同一AS时才比较MED值。如果要在多个不同AS的下一跳中比较MED,可在BGP进程中输入命令bgp always-compare-med,注意须保证此命令在整个AS的路由器上输入,否则可能产生路由环路。默认的MED值为0,如果收到一条没有MED的路由,也认为是0。)
7.eBGP优于iBGP
(如果MED值无法比出最优路径,则选择下一跳为eBGP的邻居而不选择iBGP邻居。都知道eBGP的路由AD值为20,而iBGP的路由AD值为200,但BGP并不在eBGP与iBGP之间比较AD值,并且在比到此步时,邻居类型才影响了最优路径的选择,这种影响是受邻居类型的影响,而不是受AD值的影响。注意:BGP联邦内部没有此规则。)
(如果多条路径的下一跳邻居同为eBGP或iBGP,则选择拥有最小IGP metric到达下一跳的路由。)
(BGP并不是不能负载均衡的,如果之前的属性都无法选出最优路径,则执行负载均衡,但必须是之前的所有属性均完全相同,缺一不可。需要注意:只有负载均衡功能开启了,BGP才会执行负载均衡,否则,继续比较下一属性。)
在开启负载均衡功能时,在BGP进程下输入以下命令:
maximum-paths n (多条路径的下一跳邻居都为eBGP时,输入此命令)
maximum-paths ibgp n(多条路径的下一跳邻居都为iBGP时,输入此命令)
其中n为执行负载均衡的路径数量,最大值为6,默认为1,也就是不执行负载均衡。
如果在eBGP和iBGP邻居之间同时执行负载均衡,输入命令maximum-paths eibgp n,此命令只支持在Ipv4 VRF模式下输入,就是只能支持MPLS VPN下的eBGP和iBGP邻居之间负载均衡。
10.如果下一跳都为eBGP,则选择最早学习到的路由(即时间最长的路由)
(为了避免路由翻动,所以选择最早学习到的路由,如果要忽略比较路由学习到的时间长短,可在BGP进程下输入命令bgp best path compare−routerid,某些IOS已经自动加入此命令,并且不能删除。如果多条路由拥有相同的Router-ID,比如路由是从同一个邻居学习到的,同样也会忽略比较路由学习到的时间长短。)
11.最低Router-ID下一跳
(BGP的Router-ID选举如同OSPF,在此步,拥有最低Router-ID的下一跳路由将被选为最优路径。)
12.最短cluster list(如同AS_PATH)
[cluster list只在BGP reflector (RR)的环境下才有,功能如同AS_PATH]
13.最小下一跳的邻居地址
(如果比较之前的所有属性都无法选出最优路径,最终选择下一跳的邻居地址最小的路由,这个地址就是在建立邻居时所指的地址,也是邻居和自己建立TCP连接所使用的源地址,建立不同邻居,不可能使用相同地址,所以不可能两个不同路径的邻居地址是相同的