动态路由协议之BGP(Ⅰ)

AS:Autonomous System 自治系统,它的意义在于限制了路由更新的传播范围,使域内的BGP设备更快的达到收敛状态;


因为在互联网中存在着数以万台的BGP设备,如果没有AS的概念,那么任何一台设备的路由变化都有可能影响到网络的稳定性。这是AS存在的根本意义。


现行的BGP协议为版本4.0,支持无类路由,较之前的版本只支持有类路由,V4.0有了较大的发展。


BGPv4.0支持4字节长度的AS号,范围是1至4294967295,当前常用的AS范围是1至65535,其中公有AS号为1-64511,私有AS号为64512-65535。


BGP协议使用TCP 179(此为目标端口号)建立会话,因此BGP协议不属于网络层,而是应用层。


建立BGP主要涉及到3个进程:BGP router、BGP I/O、BGP Scanner,其中BGP router为主进程,BGP Scanner每60s扫描一次BGP表和RIB表,以确认下一跳是否可达。查看命令:show processes memory | include BGP;


正因为BGP使用的是TCP这种面向连接的协议,因此它的可靠性很高。


BGP Speaker:配置了BGP进程的路由器等设备;


BGP Peer:设备之间形成了BGP的邻居关系;


BGP在建立的过程当中,涉及到6种状态和4种报文:


①6种状态:Idle→Connect→Active→Opensend→Openreceive→Established;


②4种报文:Hello、Keepalive、Update、Notification;

wKiom1MIWLTyB2R4AAPTqgcYjKM588.jpg

成功建立起BGP邻居最为关键的因素之一,是要保证底层互通,即neighbour后面的那个IP地址,另外还有一个需要注意的地方就是:会话的发起方不能是通过默认路由达到对方的neighbour地址,但应答方可以。这里就有一个问题:如何控制路由器成为应答方或发起方?在BGP的进程模式下,执行neighbour ×.×.×.× transport connection-mode active/passive ,参数active即为发起方,passive即为应答方;


IGP是为BGP服务的,IGP保证底层路由互通,这时BGP才能成功建立;


BGP同步规则,准确的说应该是IBGP与IGP的同步规则,即:当自己从IBGP邻居收到路由信息后,然后再传递给其他的邻居前,必须保证这些路由在IGP路由表中也存在;


BGP的属性分类:公认强制(Origin+As-path+Next-hop)、公认自选、可选可传递、可选不可传递;


BGP的13种属性:


wKioL1MIWTagJ3ddAAPpHgYiSio564.jpg


①权重:思科私有,只影响本地路由器,默认值为32768,取值范围0至65535;


②本地优先级:只影响本自治域的BGP设备,默认值为100,取值范围0至4294967295,更改默认值:(config-router)#bgp default local-preference 数值


③本地始发的路由:由自身宣告出去的路由信息;


④最短As-path:越短越优先,使用命令(config-router)#bgp maxas-limit 数值,可以控制所收路由的as-path长度;


⑤起源:IGP(origin=0)>EGP(origin=1)>Incomplete(origin=3);


⑥MED:Multi_Exit_Disc,影响于多出口或多入口的情况下,类似于METRIC概念;


⑦EBGP优于IBGP:相同的路由条目,从EBGP邻居收到的更优先,原因是:EBGP的ad=20,IBGP的ad=200;


⑧IGP metric更小的下一跳优先:如果路由条目相同,上述7条仍无法比较出最佳路由,那么就比较它们的下一跳谁更优先,如:下一跳地址一个是从rip学到的,另一个是从ospf学到的,毫无疑问优选通过ospf学到下一跳的那个BGP路由更新条目;


⑨负载均衡:上述8条如还未产生最佳路由,那么在此就要执行负载均衡了,但前提是此功能你要打开,因为默认BGP的负载均衡是关闭的,命令如下:maximum-paths [1-16]和maximum-paths ibgp[1-16] 前者为EBGP负载均衡,后者为IBGP负载均衡;


补充知识:


as-path长度最长为255,as-path欺骗时最多10;


公、私有AS号相互交替出现时,通过命令remove-private-as不能达到移除私有as号的目的,且IBGP邻居之间,此命令无效;


在进行AS欺骗时,ibgp邻居不能通过as-prepend形成新的ibgp邻居关系或ebgp邻居关系;


在操作BGP时难免会出现误操作,为了在一定程度上防止所带来的稳定性问题,BGP有如下措施:


①advertisement-interval:ibgp默认为5s,ebgp默认为30s,也就是说,路由条目在被宣告时,并不是立即就生效的,而是有一个“等待时间”;


②BGP dampening:惩罚值1000,抑制值2000,半衰期15min,释放值750,最大抑制值12000,最大抑制时间60min(以上值都是默认值,可以更改),只在ebgp邻居之间生效,不能单独针对某个ebgp邻居使用;


BGP的对等体组,可以简化配置,并且能减少对cpu、内存的消耗;


BGP的能力capabilities:


①route refresh:相比soft-reconfiguration inbound ,能减少对CPU、内存的消耗;


②orf:nei ×.×.×.× capability orf prefix-list send/receive/both


③nsf:graceful-restart;


瞬时黑洞避免机制:防止IGP与BGP在启动时由于时间差的存在(建立邻居关系快慢不一样),而导致的诸多问题,ospf和is-is就提供了一个这样的避免机制,相关命令:max-metric router-lsa on-startup wait-for-bgp;


BGP的策略问题:


①出站策略优先顺序:prefix-list/distribute-list>filter-list>route-map;


②入站策略优先顺序:route-map>filter-list>prefix-list/distribute-list;


③应用于network后面的策略优先于应用于neighbour后面的策略;


EBGP邻居的建立:


①neighbour ×.×.×.× ebgp-multihop [1-255]


②neighbour ×.×.×.× ttl-security hops [1-255];


BGP的backdoor路由:只影响本地路由器,不涉及到邻居,从而优选IGP路由条目;


BGP rib-failure原因:


①内存出错;


②在IGP中存在更优的路由条目;


(待续。。。)




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章