CCNP---BGP笔记之二

·BGP用Open报文建邻居,用KeepaLive报文作平常联系网络

·OPEN消息中包含如下内容:
  一、版本
  二、自主系统号
  三、hold time 注意:这个时间是能够协商的,取两个BGP邻居中较小的保持时间。
  四、BGP 路由器的 router-id,选择方法与OSPF中相同
  五、可选参数tcp

·一个UPDATE 消息一次能够只通告一条路由,并携带多个属性。
一个UPDATE 消息一次也可通告多条路由,但它们的全部属性必须相同。
一个UPDATE 消息能够同时撤消多条路由。ide

实际上也就是说一个UPDATE中只能有一组相同的路径属性,也就是说只能有一条路径,但能够有多个目标网络号。oop

BGP的邻居关系:
BGP邻居也叫BGP对等体,分两种:
  EBGP--位于当前AS以外的,属于其它AS的邻居,一般要求直连。
  IBGP--位于同一个AS以内的邻居,无需彼此相连,只要它们可以彼此到达对方,完成TCP握手便可。学习

·建议EBPG之间用直链接口来建邻居
·建议IBGP中用环回口建邻居优化

·从EBGP邻居学到的路由管理距离是20
·从IBGP邻居学到的路由管理距离是200ui

BGP的防环机制:
·BGP's Split Horizon Rule:
IBGP:从IBGP邻居收到的路由再也不传给其余的IBGP邻居。
EBGP:不接收携带本AS号的路由更新。命令行

BGP路由黑洞问题:
·BGP路由黑洞的解决方法:
  1)物理线路的Full Mesh
  2)BGP重分布进IGP
  3)IGP内全部路由器都运行BGP
  4)MPLS/×××
  5)BGP邻居的Full Meshdebug

·IBGP水平分割的解决方法:
1)Full Mesh
2)BGP's Partial Mesh (路由反射器/联邦)
  3)不接收含有本AS号的BGP路由调试

·若是是宣告一个主类网络,则它的掩码不会在BGP路由表中显示出来,表示默认使用主类网络的标准掩码。

BGP的配置
 

<BGP试验>

例一:用物理接口创建BGP邻居关系

 

R4和R2建EBGP邻居关系:
R4:
router bgp 4
  bgp router-id 4.4.4.4
  neighbor 24.1.1.2 remote-as 123   //指定EBGP邻居

R2:
router bgp 123
  bgp router-id 2.2.2.2
  neighbor 24.1.1.4 remote-as 4     //指定EBGP邻居


R2和R3创建IBGP邻居关系:(须要先在AS123内部运行IGP)
R1:
router ospf 110
router-id 1.1.1.1
network 12.1.1.0 0.0.0.255 area 0
network 13.1.1.0 0.0.0.255 area 0
network 1.1.1.0 0.0.0.255 area 0

R2:
router ospf 110
router-id 2.2.2.2
network 12.1.1.0 0.0.0.255 area 0
network 2.2.2.0 0.0.0.255 area 0

router bgp 123
  neighbor 3.3.3.3 remote-as 123 利用环回口来创建邻居关系   
  neighbor 13.1.1.3 next-hop-self   //IBGP中,边界路由器须要对邻居打上这一命令

R3:
router ospf 110
router-id 3.3.3.3
network 13.1.1.0 0.0.0.255 area 0
network 3.3.3.0 0.0.0.255 area 0

router bgp 123
  neighbor 12.1.1.2 remote-as 123    
  neighbor 12.1.1.2 next-hop-self

 

例二:用环回接口创建BGP邻居关系:

 
R4和R2建EBGP邻居关系:
R4:
ip route 2.2.2.0 255.255.255.0 24.1.1.2  //先确保有去邻居的路由
router bgp 4
  bgp router-id 4.4.4.4
  neighbor 2.2.2.2 remote-as 123         //指定EBGP邻居
  neighbor 2.2.2.2 update-source lo0     //指定自已的更新源
  neighbor 2.2.2.2 ebgp-multihop 2       //设置EBGP的多跳

R2:
ip route 4.4.4.0 255.255.255.0 24.1.1.4  //先确保有去邻居的路由
  router bgp 123
  bgp router-id 2.2.2.2
  neighbor 4.4.4.4 remote-as 4          //指定EBGP邻居
  neighbor 4.4.4.4 update-source lo0    //指定自已的更新源
  neighbor 4.4.4.4 ebgp-multihop 2      //设置EBGP的多跳

R2和R3创建IBGP邻居关系:(须要先在AS123内部运行IGP)
R2:
router bgp 123
  neighbor 3.3.3.3 remote-as 123
  neighbor 3.3.3.3 update-source lo0
  neighbor 3.3.3.3 next-hop-self    

R3:
router bgp 123
  neighbor 2.2.2.2 remote-as 123
  neighbor 2.2.2.2 update-source lo0
  neighbor 2.2.2.2 next-hop-self

其它命令:

·宣告路由进BGP,注意BGP的network可以通告路由表中的全部非BGP路由量。
router bgp 123
  network 172.16.1.0 mask 255.255.255.0   //宣告网络时要说明掩码

·下面这条命令修改对全部邻居的keepalive-interval和hold-time
router bgp 123
  timers bgp keepalive-interval hold-time

·下面这条命令修改对特定邻居的keepalive-interval和hold-time。
router bgp 123
  neighbor 1.1.1.1 times keepalive-interval hold-time

·各种显示命令:
show ip bgp summary      //摘要的邻居邻居信息
show ip bgp 2.2.2.0/24   //显示明细路由的详细信息
show tcp brief           //能够看到是谁发起的TCP连接
show ip bgp neighbors    //详细的邻居信息
show ip bgp rib-failure  //能够看到提示有更高AD的路由

show ip bgp neighbors 2.2.2.2 advertised-routes  //看向这个邻居发了哪些路由信息
show ip bgp neighbors 3.3.3.3 received-routes    //看这个邻居给我发了哪些路由信息,必须在本路由器上用下面这条命令开启后才能用
R2(config-router)#neighbor 3.3.3.3 soft-reconfiguration inbound  //开启查看接收到的路由信息的功能

debgu ip routing        //查看路由表调试信息
debug ip bgp updata     //查看BGP更新信息

------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------

<关于更新源>Update-Source
路由器用来和邻居创建邻居关系的地址,咱们称之为更新源地址。

注意:在BGP建邻居过程当中,neighbor命令所指定的邻居的IP地址,也必须是邻居用来和本路由器创建TCP链接的地址。若是不匹配,两端创建不起邻居关系。

“show ip bgp summary中的Neighbor” / “show ip bgp中的Next Hop ”
都是指Update-Source。

能够在路由器上用如下命令指定使用哪一个接口来和邻居创建联系,这个接口就是自已的更新源:
router bgp 123
  neighbor 3.3.3.3 update-source loopback 0

BGP的邻接状态机:

一、idle  空闲--查找是否有去往邻居的路由
二、connect  链接--创建TCP三次握手
三、Active  活动--协商还未成功
四、open sent  打开发送--互发参数进行协商,也就是发送open报文
五、open confirm  打开确认--协商取得一致
六、established   创建

IDLE:       State when BGP peer refuses any incoming connections.
n CONNECT:  State in which BGP peer is waiting for its TCPconnection to be 
completed.
n ACTIVE:    State in which BGP peer is trying to acquire a peer by listening and 
accepting TCP connection.
n OPENSENT:  BGP peer is waiting for OPEN message from its peer.
n OPENCONFIRM:  BGP peer is waiting for KEEPALIVE or NOTIFICATION
message from its peer.
n ESTABLISHED:  BGP peer connection is established and exchanges UPDATE,
NOTIFICATION, and KEEPALIVE messages with itspeer.

只有当链接处于创建状态时,才能交换更新、存活和通知消息

若是一直停在idle状态,则可能:
   一、没有去往邻居的路由
   二、neighbor命令指错了邻居的地址

若是一直停在active状态,则可能:
   一、邻居没有过来的路由
   二、邻居没有指neighbor命令
   三、邻居neighbor中指的地址错误
   四、两端的AS号不匹配 

<BGP的下一跳机制>
BGP是一个AS-by-AS的路由协议,而不是一个router-by-router的路由协议。

BGP路由的下一跳并非指下一个路由器的IP地址,而是指到达下一个AS的IP地址。

因此,默认状况下,从EBGP邻居学到的路由再向其它的IBGP邻居传递的时候,下一跳不改变。

<MA网络的下一跳问题>

 

当在R4上宣告172.16.1.0的路由进入BGP后,你会在R3上发现以下状况:

R3:
sh ip bgp
   Network          Next Hop            Metric LocPrf Weight Path
*> 172.16.1.0/24   10.1.1.2                1             0 64513 i

router#debug ip bgp updates

MA网络的下一跳:当把一条路由发送给EBGP邻居时,若是接收这条路由的接口与EBGP邻居的更新源地址在同一网段的时候,路由的下一跳不改变。

<Peer-Group>对等体组,相似于创建一个批处理文件
BGP中,创建邻居关系的时候,有可能要对邻居指上多条命令,peer-group能够将多条命令组合在一块儿,用来在建邻居关系的时候一次性调用。减小了配置量。

BGP为每一个邻居都占用一部分Buffer,使用Peer-Group可使多个邻居共用同一部分Buffer。减小资源占用。
并且针对比较多的邻居关系,能够减小配置量。

router bgp 123
  neighbor CCNP peer-group              //定义一个peer-group组
  neighbor CCNP remote-as 64513         //向组中加入命令
  neighbor CCNP update-source loopback 0

  neighbor 2.2.2.2 peer-group CCNP      //调用

network---关于BGP中的宣告:
注意:本命令只会宣告路由,不会激活一个接口进入BGP域

·在BGP中,network的特色是:
  一、可以通告路由表中的全部非BGP路由量、只要是路由表中有的路由,它均可以宣告,直连的,静态的,即便从IGP学到的也能够
  二、默认状况下必须精确宣告网络和掩码
  三、只起到宣告做用,不建邻居
  四、可宣告IGP学到的路由,并携带Metric和Next-hop

auto-summary 不携带原有的下一跳和metric值,并且会自动汇总
            
NO auto-summary   携带原有的下一跳和metric值,并且会自动汇总

·Auto-summary对于network的影响:
   一、能够是主类方式宣告(如:network 3.0.0.0),条件是:在路由表中必须有子网路由;
   二、也能够是明细方式宣告,必须带mask(如:network 3.3.3.0 mask 255.255.255.0),条件是:必须和IGP表的路由精确匹配。
   三、若是是用no auto-summary,那么network只能用明细方式宣告(除非是主类网络)。一般都会用这一方式。

R4(config-router)#network 4.4.4.0 mask 255.255.255.0 (在no auto-summary时,严格按照IP地址掩码通告,不加mask按主类掩码匹配)
R4(config-router)#network 100.0.0.0 (在auto-summary时,也能够主类方式通告,前提是有一条明细)

若是路由器从IGP和IBGP都学到一条路由,因为IBGP路由的AD值为200,一般会大于IGP学到的路由,因此它会选择从IGP学到的放进路由表,并在IBGP路由的前面打上r,表示自已有一条一样的IGP路由。在与其竞争时IBGP路由失败了。

<Synchronization>同步。只针对IBGP邻居

·Do not use or advertise to an external neighbor a route learned by IBGP
until a matching route has been learned from an IGP.
解释:开启同步的状况下,AS内的一个路由器从IBGP邻居处学到一条路由,不用也不传,除非是从IGP(RIP,igrp,eigrp,OSPF,is-is)学到一样一条路由。(网络号和掩码都必须彻底同样)
BGP路由优化的条件
一、同步(从IGP学习到路由或者关掉同步)
二、下一跳不可达(静态路由/next-hop-self)

同步规则是为了在一个不是full-mesh的网络中解决路由黑洞而产生的。若是路由器认为一条BGP路由存在黑洞的可能性,它就不会去传这条路由。因为同步规则会对路由的传递产生影响,因此建议关闭它。

router bgp 123
  no synchronization    


BGP路由不优的2个缘由:
1)同步问题
2)下一跳是否可达 

解决方案:

router bgp 123
   no synchronization     //关闭同步,高版本IOS默认开启
   neighbor 3.3.3.3 next-hop-self

Peer Group 做用:减小Buffer,减小命令行 router bgp 123 bgp router-id 1.1.1.1 neighbor shxke peer-group 创建一个peer-group的模板 neighbor shxke next-hop-self 定义模板的内容 neighbor shxke update-source loopback0 定义模板的内容 neighbor 2.2.2.2 peer-group shxke 调用peer-group模板 neighbor 3.3.3.3 peer-group shxke 调用peer-group模板

相关文章
相关标签/搜索