BGP进程工作步骤

BGP进程
输入输出进程(BGP I/O):它为TCP和BGP之间提供了一个接口。(1)它从TCP套接字(socket)中读取消息,并把它们放到BGP输入队列,以便被BGP Router进程操作;(2)积聚在输出中的消息也被BGP I/O进程到TCP套接字中
路由器(BGP Router):这是BGP的主进程,它负责初始化其他的BGP进程,维护与邻居的BGP会话
扫描仪(BGP Scanner):主要功能是BGP的内部管理BGP Scanner进程对BGP RIB执行周期性的扫描,以确定是否应该删除前缀和属性,以及是否应该属性路由映射或者过滤缓存。比如前缀的下一跳可达性,通常是60s执行一次扫描


BGP路由器进程详细工作步骤

*默认情况下一个路由条目在发送给邻居的同时,在内存中要保存上述四份路由条目,所以BGP消耗内存较大

r2(config-router-af)#neighbor 12.1.1.1 soft-reconfiguration inbound
加上该命令即使路由被过滤,但是BGP进程仍然保留着被过滤条目

BGP路由决策
BGP的RIB包括三部分:
Adj-RIBs-In:存储了从对等体学习到的路由里新的还未经处理的路由信息,这些包含在Adj-RIBs-In中的路由被认为是可行路由。
Local-RIB:包含了BGP发言者对Adj-RIBs-In中的路由应用本地策略之后选定的路由
Adj-RIBs-Out:包含了BGP发言者向对等体宣告路由。
BGP有三个部分既可以是3个不同的数据库,也可以是利用指针来区分不同部分的单一数据库。BGP路由决策通过对Adj-RIBs-In中的路由应用本地路由策略,且向Loc-RIB 和Adj-RIBs-Out中输入选定或修改的路由进行路由选择。其有三个阶段。
第一阶段:计算每条可行路由的优先级
第二阶段:从所有可用路由中为特定目的地选出最佳路由,并将其安装到Loc-RIB中。
第三阶段:将相应的路由加入到Adj-RIBs-Out中,以便向对等体进行宣告。

BGP能力协商(BGP是应用层协议)
BGP能力协商是Open报文选项中需要协商的东西:AS,router-ID,holdtime,Capability negotiation
能力代码1:多协议扩展
能力代码2:路由刷新 clear ip bgp * in   | clear ip bgp * soft in or out | clear ip bgp *
能力代码64:优雅重启动(Graceful-Restart)NSF
{
neighbor {ip-address | peer-group-name} soft-reconfiguration inbound
优雅重启动,用于在BGP策略更改后,例如distribute-list route-map等,默认情况下需要重新启动BGP会话
使用此条命令后将不需要重启BGP会话,soft-reconfiguration将不管入站策略,将邻居的update存放到内存中,
因此inbound将消耗很多内存,而outboound 由于不消耗内存,所以是默认打开的
}
能力代码128:路由刷新的旧版本
能力代码130:出站路由过滤(ORF)

BGP单播能力(默认)
no bgp default ipv4-unicast 关闭自动建立IPv4邻居
router bgp 5
 address-family ipv4   进入IPv4地址家族
 nei 45.1.1.5 activate   激活邻居

Router#debug ip bgp(可以通过该命令来查看Hello信息)

ORF(出向的路由过滤 / Outbound Route Filter)的协商
能够将本地的入向过滤推向对端作出向过滤(能够使得R2协商该能力,使R1不再发送R2不接受的路由条目,节省硬件资源)
r2(config)#ip prefix-list FR1 permit 1.1.1.0/24
r2(config-router)#nei 12.1.1.1 prefix-list FR1 in
r2(config-router-af)#nei 12.1.1.1 capability orf prefix-list both

r1(config-router)#nei 12.1.1.2 capability orf prefix-list both

r1#show ip bg nei 2.2.2.2 advertised-routes                                    
BGP table version is 4, local router ID is 1.1.1.1                             
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
              r RIB-failure, S Stale                                           
Origin codes: i - IGP, e - EGP, ? - incomplete                                 
                                                                               
Originating default network 0.0.0.0                                            
                                                                               
   Network          Next Hop            Metric LocPrf Weight Path              
                                                                               
Total number of prefixes 0                                                     

BGP中的“火星地址”
ip prefix-list MARTIAN seq 5 deny 0.0.0.0/8
ip prefix-list MARTIAN seq 10 deny 10.0.0.0/8
ip prefix-list MARTIAN seq 15 deny 127.0.0.0/8
ip prefix-list MARTIAN seq 20 deny 168.254.0.0/16
ip prefix-list MARTIAN seq 25 deny 172.16.0.0/12
ip prefix-list MARTIAN seq 30 deny 192.0.2.0/24
ip prefix-list MARTIAN seq 35 deny 224.0.0.0/4
ip prefix-list MARTIAN seq 40 deny 224.0.0.0/4
ip prefix-list MARTIAN seq 45 deny 240.0.0.0/0


*BGP快速外部切断特性不能工作在eBGP多跳的情况下,并且对等体地址必须和物理接口地址相同
ip bgp fast-external-fallover [permit | deny]
bgp fast-external-fallover


BGP收敛调整
1,有关TCP的考虑
主要有两个参数影响TCP性能,最大分段尺寸MSS和TCP窗口大小
A>MSS
一个Session 的MSS会在初始化的时候确定,Cisco默认值按RFC971定为536,可以按照MTU1500将其修改为1460(20byte IP header,20byte TCP header),减少报文ACK的数量
B>窗口大小
TCP窗口大小用来控制TCP数据报发送速度的一种机制,后文队列优化将详细讲 如何调整窗口大小
C>路径MTU发现
对于一个路由器可以通过PMTUD自动发现路径上的MTU,对于一个环状网络,若所有接口为POS口,则MTU为4470,如果其中加入一段FastEthernet链路,则MTU降为1500将严重影响性能,不过GigabyteEthernet中有了Jumbo Frame的概念来消除MTU影响


 

原文地址:https://www.cnblogs.com/cyrusxx/p/12824203.html