BGP深入理解

1.BGP属性

  可支持ipv4和ipv6单播,也支持vpnv6等。

2.BGP的三张表

  1. table邻居表 show ip bgp summary/neighbors
  2. BGP table转发数据库 show ip bgp
  3. IP routing table路由表 show ip route bgp

3.BGP应用场景

  • 应用BGP的环境

    1. 当允许数据包穿越As号去访问其他AS号的时候

    2. 对于一个用户的AS号,如果他需要同时连接到多个AS号时。

    3. 当需要对数据进入或离开AS,进行人为控制/操纵的时候

  • 不应该应用BGP的环境

    1. 与isp只有单连接,没有同时连接到多个ISP

    2. 如果链路带宽不足,或者硬件设备的档次不够

    3. 对BGP路由操纵理解有限,无法预计BGP后的结果

4.BGP路由传递规则(很重要)!!!!

  1. 从EBGP学习到的路由会传递给所有的IBGP邻居

  2. 从IBGP学习到的路由不会传递给任何IBGP邻居(在AS内部避免环路)

  3. 从IBGP学习到的路由会不会传递给EBGP邻居,看是否开启了同步功能

    • 若开启了同步功能,则会查看从IBGP学习到的路由是否存在于IGP路由表中,存在则传递给EBGP,不存在则不传递给EBGP
    • 若关闭了同步功能,则直接传递给EBGP

5.宣告路由的方式

  1. Network方式(i)
  2. redistribute方式 (?)

6.BGP4中的IBGP

6.1 IGP中的network

  • 传递路由
  • 从network包含的接口中发出hello

6.2 IBGP
  IBGP使用环回口建立邻居,TTL=255。使用环回口建邻居时,注意BGP报文的源IP地址,通常采用路由更新源update-source(可以只写一边)。使得环回口间互相通信时,默认路由无效,必须使用明细;

router bgp 100
    neighbors 2.2.2.2 remote-as 100
    neighbors 2.2.2.2 update-source loopback0

  从EBGP学习到的路由传递给IBGP时,由于默认不更改下一跳,会导致IBGP邻居对该路由的下一跳不可达,需要更改为当前设置。因此, 解决下一跳不可达的办法 可以采用两种方式:

  • .使用静态或IGP使下一跳可达
  • .next-hop-self,该命令使其下一跳强制为更新源地址 [控制层面解决] neighbor 2.2.2.2 next-hop-self;一般放在边界EBGP路由上.

7.BGP4中的EBGP

  EBGP一般使用直连口建立,也可使用多跳方式(注意update-source和multihop)。BGP建立邻居的TCP连接时随机的,邻居间都会建立两条TCP连接,但会随机DOWN一条。

  • 直连方式(TTL=1)
router bgp 100
  neighbors 12.1.1.1 remote-as 200
  • 环回口方式(修改TTL)
    若使用环回口建立EBGP邻居关系

    1. 将TTL设置成大于1
    2. 使用静态路由或IGP使得环回口间能互相通讯
    3. 建邻居接口不要宣告BGP中,否则会导致BGP邻居关系翻滚
router bgp 100
    neighbor 2.2.2.2 remote-as 200
    neighbor 2.2.2.2 ebgp-multihop 2
  #ebgp-multihop 2 这个是重点

手工写静态路由NULL 0
network 汇总路由

 ip route 172.16.0.0 255.255.248.0 Null 0
 outer bgp 1
 network 172.16.0.0 mask 255.255.248.0

8.BGP聚合

聚合属性仅在本地使用,通常用在RR上。

  1. BGP在汇总路由时,默认会发出汇总和明细路由,如果想阻止明细发出,可在后面添加summary-only;
    aggregate-address 3.3.0.0 255.255.252.0 summary-only

  2. 聚合后,AS-PATH信息会丢失,可能导致路由环路,可加入as-set将其还原;
    aggregate-address 3.3.0.0 255.255.252.0 summary-only as-set

9.BGP的防环机制

  1. EBGP之间使用as-path进行防环;
  2. IBGP之间使用水平分割法则防环;
    水平分割:从IBGP路由之间,只能传递一跳;

10.解决水平分割

  1. 全互联
  2. 路由反射器:客户端和非客户端; 非非不传 ;适用于星型网络;
    客户端——客户端 可传递
    非客户端——客户端 可传递
    客户端——非客户端 可传递
    非客户端——非客户端 不可传递
//该配置是在RR机器上配置,neighbor为各个需要反射的客户端设备IP
router bgp 123
neighbor 1.1.1.1 route-reflecctor-client
  1. 联邦:适用于线型网络;
router bgp 65060
bgp confederation identifier 100  //bgp联盟为100
bgp confederation peers 65050   //bgp联盟内的EBGP邻居AS
neighbor 20.0.0.1 remote-as 65050   //指定联盟内部的EBGP邻居
neighbor x.x.x.x remote-as 65060  //指定联盟内部的IBGP邻居

11.BGP的PEER-GROUP配置方式

用途
1.简化配置,适用于EBGP或者IBGP
2.减少buffer(缓冲)

配置BGP

router bgp 200
  neighbor IBGP1 peer-group
  neighbor IBGP1 remote-as 200
  neighbor IBGP1 update-source Loopback0
  neighbor IBGP1 router-reflector-client
  neighbor 2.2.2.2 peer-group IBGP1
  neighbor 4.4.4.4 peer-group IBGP1
 neighbor 5.5.5.5 peer-group IBGP1

  通常配置完BGP后,需要软清理进行刷新,do clear ip bgp * soft

12.BGP的同步规则

  BGP默认开启synchronization,关闭可以执行命令

no synchronization

  从IBGP学到的路由必须在IGP中有对应的条目才会发送给EBGP,防止路由黑洞的出现。
解决路由黑洞:MPLS等

13.本地优先级Local preference

  作用:在本AS中决定离开本AS的流量出口是谁;默认本地优先为100,越大越优。通常在in方向上做策略,若限制范围,可以在本AS内的neighbor设置时挂载routermap,配置local-preference属性,来指定从该邻居获取路由的优先级并选路设备。

//该条范围较大,较少使用。作用于IBGP内部,较少使用。
  router bgp 100
  bgp default local-preference 200
//通常采用某路由设置本地优先级
  access-list 1 permit 1.1.1.1
  route-map  LP per 10
    match ip add 1
    set local-preference 300
  neighbor 1.1.1.1 route-map LP in

14.MED值(BGP中的metric值)

  作用:其他AS设备进入本AS的流量的入口是谁,值越小越优,默认metric值为0。通常是在out方向做策略。若限制范围,可以在本AS内的neighbor设置时挂载routermap,配置MED属性。

//该条范围较大,较少使用。作用于IBGP内部,较少使用。
  router bgp 100
  bgp default local-preference 200

#AS域内第一台设备
ip prefix-list match1 permit 1.1.1.1/32
route-map MED per 10
  match ip add prefix-list match1
  set metric 200
router bgp 100
  neighbor 4.4.4.4 route-map LP out

#AS域内第二台设备
ip prefix-list match1 permit 1.1.1.1/32
route-map MED per 10
  match ip add prefix-list match1
  set metric 300
router bgp 100
  neighbor 4.4.4.4 route-map LP out

##因此,本AS域内发现路由中第一台设备的metric值较小,优先选择该线路

15.AS Path设置

access-list 1 permit 1.1.2.1
route-map ASPATH per 10
  match ip add 1
  set as-path prepend 800 700 600
  //set as-path last-as 3   添加最后的AS号三次,增长路径属性
route-map ASPATH per 20   //放行其他

16.Community团体属性

16.1 主要作用

  1. 控制路由传递范围
  2. 对路由做标记打tag
    注意:团体属性 必须调neighbor A.B.C.D send-community使能发送,默认不带community。

16.2 分类

  1. 公有community----实现<1>

    <1>no-advertise 存在本地。
    <2>local-as 无法传递到下一个联邦AS。
    <3>no-export 无法传递到下一个AS。
    <4>internet 可以全局传递。

  2. 私有community----实现<2>
    标准格式:(0x00000000-0Xffff0000)
    ip community-list standard Word {deny|permit} AA:NN
    扩展格式:(正则表达式,可以范围)
    ip community-list expanded Word {deny|permit} Word

发表评论

邮箱地址不会被公开。 必填项已用*标注