BGP知识点备忘录
1.有两种路由协议,一种是IGP,另一种是EGP。
2.IGP路由协议有RIP、EIGRP、OSPF、IS-IS。
3.BGP目标端口为TCP的179端口,源端口号是随机的。
4.BGP建立邻居后,会每60秒发送一次keepalive包,如果hold timer为180秒后,认为邻居丢包,则断开与邻居的连接。
5.BGP能够传递的协议有IPv4、IPv6、VPNv4、CLNS、L2VPN。
6.两个路由器同属相同的AS,则邻居关系为iBGP,如果属于不同AS,则邻居关系为eBGP。BGP要求eBGP邻居必须直连,而iBGP邻居可以任意距离。
7.两台BGP路由器正常的建立邻居,必须有一台收到目标IP地址是自己的BGP源地址,任意一个邻居满足条件即可。即A的目标IP地址是B的源IP地址。
8.每台BGP路由器都拥有多条链路的BGP邻居保持连接,路由器的loopback口是BGP路由器系统的接口,不会像某个物理接口断连了,整个BGP邻居失去正常工作状态,因为还有通畅的链路让BGP邻居仍然可以保持连接;实现了连接的冗余性和稳定性。
9.iBGP发出的数据包的TTL值最大为255,而eBGP邻居时发出的数据包的TTL值限制为1,就限制了eBGP邻居必须直连;对于建立eBGP数据包的TTL值可以随意修改,甚至改为最大值255都行。
10.BGP将路由发给eBGP邻居时,会将自己的AS号码添加到AS-path中,所以可以以此来防止环路;而在iBGP之间传递路由时,强制将BGP路由在AS内部只传一跳来防止环路的机制。
11.在IGP协议当中,路由协议分成两大类:距离矢量路由协议和路径矢量路由协议,路径矢量算法结合了距离矢量特性与AS-path防环特性。
12.BGP路由的从eBGP学习到的默认AD(管理距离)值为20,iBGP学习到的路由默认AD值为200。顺便提一下其它路由协议的默认AD值:直连接口为0、静态路由为1、EIGRP汇总路由为5、EIGRP为90、IGRP为100、OSPF为110、IS-IS为115、RIP(V1&V2)为120、EGP为140、ODR为160、ExEIGRP(外部EIGRP)为170,未知为255。
13.BGP路由器有两张路由表,一张普通路由表:show ip route,一张BGP路由表:show ip bgp。
14.当iBGP路由需要跨越N个没有BGP路由,只有IGP路由时,需要在iBGP路由起用BGP Synchronization,否则认为此路由无效而不能发给其它邻居。
15.IGP路由协议和BGP路由协议在有多条路径可以到达同一目的地时,IGP则根据最小metric值来选择最优路径,而BGP则比较路由条目中的Path Attributes,即路径属性。
16.BGP路径属性可划分以下四类:公认强制、公认自选、可选可传递、可选不可传递
17.任何一台运行BGP的路由器,必须支持公认强制属性。BGP路由携带的公认强制属性有三个:Origin、Next_Hop、AS-path。
18.一些常用BGP属性:Origin(公认强制属性)、AS_Path(公认强制属性)、Next_Hop(公认强制属性)、Local_Pref(公认自选属性)、MULTI——EXIT——DISC(MED,可选不可传递属性)
19.AS是一个16位的数字,范围为1-65535。1-65411是公有AS;65412-65535共1024个是保留私有AS。
20.重分布进BGP的路由的Origin属性为Incomplete。
21.BGP路由表中到达同一目的地存在多条路径时,会通过比较路由的Origin属性来选择最优路径,它们的优先级顺序为IGP>EGP>Incomplete。
22.当BGP路由表中达到同一目的地存在多条路径时,会优选AS-Path最短的路径。
23.BGP路由器将路由传递给eBGP邻居时,会将Next-hop属性改为自己的地址,而在将路由传递给iBGP邻居时,不会改变Next-hop属性。本地发起路由的Next-hop属性为0.0.0.0。
24.Local_Pref属性只能在同一AS内部传递,出了AS后会被还原成默认值。Local_Pref默认值为100。当BGP路由表到达同一目的地存在多条路径时,会比较Local_Pref值的大小,本地优先级越高,路由优先级越高。
25.MED是BGP路由中的metric,是被设计用来影响多个下一跳为eBGP邻居时,如何选择最优路径,拥有最小MED值的路径会被优先使用。MED默认值为0。
26.默认情况下,只有当去往目的地的多个下一跳eBGP邻居都为相同AS时,才会比较MED值,如果多个eBGP邻居为不同AS时,是不会比较MED的,若是要强制在多个不同的eBGP邻居之间比较MED值,需要在BGP进程下输入命令:bgp always-compare-med。
27.Weight属性为Cisco私有属性,Weight值的范围为0〜65535,默认为0;BGP本地路由,则Weight值为32768。手工修改路由的Weight值,只能对本地起作用,不会传递给邻居。当BGP路由表中到达同一目的地下存在多条路径时,会优选Weight值最的的路径。
28.如果某BGP路由的状态为RIB-Failure,则不能被使用,原因有:1.该路由在IGP中拥有比BGP更高优先级的AD值。2.内容错误。3.超出VRF中路由限制数。
29.BGP建立邻居的条件有1.双方需要建立邻居的IP地址在网络上是互通的,可以建立TCP会话。2.双方指定的AS号码必须匹配。3.双方BGP数据包必须可达(eBGP默认TTL为1,需要注意)。4.对方BGP数据包的目的IP和自己的源IP必须相同(单向满足即可)
30.BGP最优路径选择如下:
1)最高Weight值。默认Weight值为0,本地发起路由为32768。
2)最高LOCAL_PREF值,如果Weight值相同,则选择拥有最高LOCAL_PREF值的路由,默认为100。)
3)本地发起路由,用network命令导入,或将其它路由协议重分布进BGP路由表,最后是汇总路由表。
4)最短AS_PATH。如果本地发起路由无法比出最优路径,则选择拥有最短AS_PATH路由,但可忽略对AS_PATH的比较,而直接比较下一属性,输入命令:bgp bestpath as-path ignore。
5)最低Origin类型。如果AS_PATH无法比出最优路径,则选择拥有最低Origin类型的路由,从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
8)最小IGP metric到达下一跳的路由。如果多条路径的下一跳邻居同为eBGP或iBGP,则选择拥有最小IGP metric到达下一跳的路由。)
9)负载均衡。如果开启的话。maximum-paths n--多条路径的下一跳邻居都为eBGP时,输入此命令。maximum-paths ibgp n--多条路径的下一跳邻居都为ibgp时,输入此命令。n为执行负载均衡的路径数量,最大值为6,默认为1。
10)如果下一跳都为eBGP,则选择最早学习到的路由(即时间最长的路由)。如果要忽略比较路由学习到的时间长短,可在BGP进程下输入命令bgp best path compare-routerid。
11)最低Router-ID下一跳。BGP的Router-ID选举如同OSPF,在此步,拥有最低Router-ID的下一跳路由将被选为最优路径。
12)最短cluster list。cluster list只在BGP reflector(RR)的环境下才有,功能如同AS_PATH。
13)最小下一跳的邻居地址。如果比较之前的所有属性都无法选出最优路径,最终选择下一跳的邻居地址最小的路由,这个地址就是在建立邻居时所指的地址。
31.BGP实验1
R1: interface Loopback0 ip address 1.1.1.1 255.255.255.255 interface FastEthernet0/0 ip address 12.1.1.1 255.255.255.0 interface FastEthernet0/1 ip address 13.1.1.1 255.255.255.0 router ospf 3 router-id 1.1.1.1 log-adjacency-changes network 1.1.1.1 0.0.0.0 area 0 network 12.1.1.0 0.0.0.255 area 0 network 13.1.1.0 0.0.0.255 area 0 router bgp 1 no synchronization bgp router-id 1.1.1.1 bgp log-neighbor-changes neighbor 2.2.2.2 remote-as 1 neighbor 2.2.2.2 update-source Loopback0 neighbor 3.3.3.3 remote-as 1 neighbor 3.3.3.3 update-source Loopback0 no auto-summary
R2: interface Loopback0 ip address 2.2.2.2 255.255.255.255 interface FastEthernet0/0 ip address 12.1.1.2 255.255.255.0 interface FastEthernet0/1 ip address 24.1.1.2 255.255.255.0 router ospf 3 router-id 2.2.2.2 log-adjacency-changes network 2.2.2.2 0.0.0.0 area 0 network 12.1.1.0 0.0.0.255 area 0 network 24.1.1.0 0.0.0.255 area 0 router bgp 1 no synchronization bgp router-id 2.2.2.2 bgp log-neighbor-changes neighbor 1.1.1.1 remote-as 1 neighbor 1.1.1.1 update-source Loopback0 neighbor 4.4.4.4 remote-as 4 neighbor 4.4.4.4 ebgp-multihop 255 neighbor 4.4.4.4 update-source Loopback0 no auto-summary
R3: interface Loopback0 ip address 3.3.3.3 255.255.255.255 interface FastEthernet0/0 ip address 34.1.1.3 255.255.255.0 interface FastEthernet0/1 ip address 13.1.1.3 255.255.255.0 router ospf 3 router-id 3.3.3.3 log-adjacency-changes network 3.3.3.3 0.0.0.0 area 0 network 13.1.1.0 0.0.0.255 area 0 network 34.1.1.0 0.0.0.255 area 0 router bgp 1 no synchronization bgp router-id 3.3.3.3 bgp log-neighbor-changes neighbor 1.1.1.1 remote-as 1 neighbor 1.1.1.1 update-source Loopback0 neighbor 4.4.4.4 remote-as 4 neighbor 4.4.4.4 ebgp-multihop 255 neighbor 4.4.4.4 update-source Loopback0 no auto-summary
R4: interface Loopback0 ip address 4.4.4.4 255.255.255.255 interface FastEthernet0/0 ip address 34.1.1.4 255.255.255.0 interface FastEthernet0/1 ip address 24.1.1.4 255.255.255.0 router ospf 3 router-id 4.4.4.4 log-adjacency-changes network 4.4.4.4 0.0.0.0 area 0 network 24.1.1.0 0.0.0.255 area 0 network 34.1.1.0 0.0.0.255 area 0 router bgp 4 no synchronization bgp router-id 4.4.4.4 bgp log-neighbor-changes neighbor 2.2.2.2 remote-as 1 neighbor 2.2.2.2 ebgp-multihop 255 neighbor 2.2.2.2 update-source Loopback0 neighbor 3.3.3.3 remote-as 1 neighbor 3.3.3.3 ebgp-multihop 255 neighbor 3.3.3.3 update-source Loopback0 no auto-summary
32.BGP实验2
R1: interface Loopback0 ip address 1.1.1.1 255.255.255.255 interface FastEthernet0/0 ip address 12.1.1.1 255.255.255.0 router ospf 1 router-id 1.1.1.1 network 1.1.1.1 0.0.0.0 area 0 network 12.1.1.0 0.0.0.255 area 0 router bgp 12 no synchronization bgp router-id 1.1.1.1 network 1.1.1.1 mask 255.255.255.255 network 12.1.1.0 mask 255.255.255.0 neighbor 2.2.2.2 remote-as 12 neighbor 2.2.2.2 update-source Loopback0 neighbor 2.2.2.2 next-hop-self no auto-summary
R2: interface Loopback0 ip address 2.2.2.2 255.255.255.255 interface FastEthernet0/0 ip address 12.1.1.2 255.255.255.0 interface FastEthernet0/1 ip address 23.1.1.2 255.255.255.0 router ospf 1 router-id 2.2.2.2 log-adjacency-changes network 2.2.2.2 0.0.0.0 area 0 network 12.1.1.0 0.0.0.255 area 0 network 23.1.1.0 0.0.0.255 area 0 router bgp 12 no synchronization bgp router-id 2.2.2.2 network 2.2.2.2 mask 255.255.255.255 network 12.1.1.0 mask 255.255.255.0 network 23.1.1.0 mask 255.255.255.0 neighbor apple peer-group neighbor apple remote-as 3 neighbor apple ebgp-multihop 2 neighbor apple next-hop-self neighbor orange peer-group neighbor orange remote-as 12 neighbor orange update-source Loopback0 neighbor 1.1.1.1 peer-group orange neighbor 23.1.1.3 peer-group apple //配置ebgp,相邻的eBGP路由器只有一个节点,必须用直连接口来做eBGP邻居宣告,不能用loopback口来宣告eBGP路由;如果用loopback口来建的话,必然有路由震荡现象。 no auto-summary
R3: interface Loopback0 ip address 3.3.3.3 255.255.255.255 interface FastEthernet0/1 ip address 23.1.1.3 255.255.255.0 router ospf 1 log-adjacency-changes network 3.3.3.3 0.0.0.0 area 0 network 23.1.1.0 0.0.0.255 area 0 router bgp 3 no synchronization bgp router-id 3.3.3.3 network 3.3.3.3 mask 255.255.255.255 network 23.1.1.0 mask 255.255.255.0 neighbor lemon peer-group neighbor lemon remote-as 12 neighbor lemon ebgp-multihop 2 neighbor lemon next-hop-self neighbor 23.1.1.2 peer-group lemon no auto-summary
1.查看BGP时,相邻的两eBGP节点路由器在show ip route时能看到带有B的路由表,而相同AS的iBGP节点路由器上
查看show ip route却没有带B的路由表,因为iBGP是IGP路由协议类型,在它的节点路由表只有IGP类型的路由表。
2.查看路由表,show ip route为查看通用的路由表,也包括BGP,只不过iBGP类型的路由表不显示带B标记;
而show ip bgp能查到所有iBGP和eBGP路由表,或show ip bgp summary能查看BGP建立的工作时间,如果是
never标识的表示还没有成功建立BGP关系。
补充:
MED属性和Local_Pref属性区别在于:MED用于判断流量进入AS时的最佳路由,Local_Pref属性用于判断流量离开AS时的最佳路由。