BGP难点详解

1.为什么要实现全互联?
如果发送更更新的IBGP邻居没有和所有的IBGP路由器都直接相连.则与之直接相连的路由器将收到BGP更新,而不与之直接相连的路由器收不到,因此它们的IP路由表不同.路由表不一致可能引发路由环路或者黑洞,因为自治系统中所有运行BGP的路由器都默认做出这样的假设,即自治系统中每台BGP路由器都直接与其它所有BGP路由器交换IBGP信息.(默认认为物理上全互联)
通过以全互联的方式连接所有的IBGP邻居,当前自治系统的BGP边界路由器收到来自外部的变化信息后,将负责将其通告给所有的IBGP邻居.IBGP邻居收到更新后,不将其发送给其它任何IBGP邻居,因为它们假设发送该更新的IBGP邻居与所有IBGP发言者都直接相连,它已经将该更新发送给了每个IBGP邻居.(即边界路由器负责把BGP信息发送给所有的IBGP邻居)
因为物理上全互联花费昂贵,所以现网中的网络都不是物理上全互联的,为了达到和物理上全互联一样的效果,那么就要做逻辑上的全互联.

2.总之,自治系统内IBGP邻居之间的路径成为中转路径,这种路径中的所有路由器都必须运行BGP.这些IBGP会话必须是全互联的.(即通过BGP到达目的地的路径上的所有路由器都要有BGP信息)
即数据包在去往目的地的路径上的路由器都必须有去往该目的的路由.

3.如果自治系统没有全互联,那么最好启用同步来防止可能出现的黑洞问题.(每台都启用,同步对内部路由器的影响是不填充路由表,对边界路由器的影响是不填充路由表以及不通告给EBGP邻居)
BGP同步规则指出.BGP路由器不应该使用通过IBGP获悉的路由或将其通告给EBGP邻居,除非该路由是本地的或者通过IGP获悉的.
BGP同步规则确保了整个自治系统中信息的一致性,从而避免自治系统中出现黑洞(例如,将某个目的地通告给外部邻居,而此时并非自治系统中的所有路由器都能到达该目的地)

4.如果本地接收到的open消息经过协商参数是合法的,那么就发送keepalive包进行确认.默认60s,协商成较小的,如果配置为0,那么永不超时,不发送keepalive包.keepalive包报头19字节.

5.AS路径属性.as属性要在EBGP上做.仅当路由器将路由通告给EBGP邻居的时候,才会加上自己的as号,将路由通告给IBGP邻居时不会修改AS属性.

6.本地优先级属性只发送给IBGP邻居,而不发送给EBGP邻居.决定路由器如何出本as.
修改本地优先级.对所有的路由有效.除了从ibgp邻居那里学习到的任何路由.(即从IBGP邻居学习到的路由不会受到修改优先级的影响.依然默认100)

7.MED用于决定路由器如何进入对方as. MED被发送给EBGP邻居,这些路由器在其自治系统内传播MED,自治系统中的路由器将使用它,但不将它再传递给下一个自治系统,将收到的更新传给下一个自治系统的时候,将MED重置为默认0.
注意:默认情况下,仅当路径来自同一个自治系统中的不同邻居时,路由器才比较它们的MED属性.除非配置了命令:bgp always-compare-med,否则仅当所有被考虑的路由的邻接自治系统都相同时,才比较MED.

8.权重.如果是本地发出的路由,权重为32768,学习到的路由权重为0. 最大可以改成65535.
当路由器有多个出as的出口的时候,将根据权重来选择.当多台路由器有多个出as的出口时,将根据本地优先级来选择.

9.如果在第八个条件:IGP的metric是一样的.有配置max-path 2 那么就会形成负载均衡.不再往下比较
注意:虽然做了负载均衡,但是在bgp表中只出现一个>号,但是路由表中会有体现负载.

10.对路由器A和B之间的BGP对等关系会话修改MD5身份验证密钥.必须在保持定时器过期之前在远程路由器上配置相同的密钥(默认180s)

11.路由器停滞于active状态:
表明它已经找到了命令neibgbor中指定的IP地址,并创建和发送了BGP打开分组,但没有收到邻居的相应.

你可能感兴趣的:(路由交换)