HCIP-5

BGP:边界网关路由协议

工作于AS之间;标准的EGP协议;

AS:自治系统   0-65535  其中1-64511 公有  64512--65535 私有

EGP协议的特征:

1、可控性

2、可靠性

3AS-BY-AS

BGP特点:

  1. 无类别路径矢量 -----距离的升级版---AS-BY--AS
  2. 使用单播更新来发送所有信息;基于TCP 179端口工作
  3. 触发、增量更新
  4. 具有丰富的属性来取代IGP中度量进行选路
  5. 可以在进项和出项对流量实施强大的策略
  6. 默认不被用于负载均衡-----通过各种选路规则仅仅产生一条最佳路径
  7. BGP支持认证和聚合(汇总)

BGP的数据包类型:所有的数据包均基于TCP会话传递

  1. open报文---用于建立邻居关系,默认仅发送一次,存在RID--规则同OSPF一样
  2. Keepalive--用于保活邻居关系,60s周期  180s hold time   实际保活TCP会话
  3. Update -----目标网络号+属性
  4. Notification---报错信息

BGP的工作过程:

  1. IP可达
  2. 建立TCP会话
  3. 使用open 报文建立邻居关系---生成邻居表
  4. 使用update传递路由信息,生成BGP表;之后将BGP中最优路径加载于路由表中
  5. 之后收敛完全,仅keeplive周期保活
  6. 若出现结构变化,进行触发更新,就变化信息发送update即可

名词注解:

EBGP:不同AS间的邻居关系,通过该种邻居学习到的条目管理距离为20

IBGP:同一AS内的邻居关系,通过该种邻居学习到的条目管理距离为200 华为 255

BGP的防环机制----水平分割

  1. EBGP水平分割----条目在传递过程中将记录所有经过的AS号,若接收到条目中,存在本地AS号,将拒绝接收

2、IBGP水平分割-----从一个IBGP邻居处学习到的条目不能传递给下一个IBGP邻居

   解决方法:全连邻居关系    或者使用 联邦和路由反射器来解决;

BGP的路由黑洞问题

由于BGP协议可以非直连建邻,故可能出现控制层面可达,数据层面不可达的情况;

解决方法:

  1. 物理全连
  2. 邻居关系全连
  3. 将BGP路由重发布IGP(LAB)
  4. MPLS (推荐)

配置:

r1(config)#router bgp 1  启动协议时,使用真实AS号,不存在多进程概念

r1(config-router)#

r1(config-router)#bgp router-id 1.1.1.1  建议配置RID

建立邻居关系:

  1. 直连EBGP邻居,直接使用物理接口建立

r1(config-router)#neighbor 12.1.1.2 remote-as 2  对端物理接口ip地址及所在AS号

  1. 建立IBGP邻居关系---使用环回建立邻居关系,链路备份和负载均衡等效果

r2(config)#router bgp 2

r2(config-router)#neighbor 3.3.3.3 remote-as 2

r2(config-router)#neighbor 3.3.3.3 update-source loopback 0  一旦使用环回建立邻居关系,就必须修改更新源地址

华为

ibgp

[R2]bgp 100

[R2-bgp]router-id 2.2.2.2

[R2-bgp]peer 1.1.1.1 as-number 100

[R2-bgp]peer 1.1.1.1 connect-interface lo 0

使用物理接口建立邻居关系

ebgp

[R2]bgp 100

[R2-bgp]peer 23.1.1.2 as-number 101

Ebgp使用环回接口建立邻居关系

[R3]bgp 101

[R3-bgp]router-id 3.3.3.3

[R3-bgp]peer 2.2.2.2 as-number 100

[R3-bgp]peer 2.2.2.2 connect-interface lo 0

[R3-bgp]peer 2.2.2.2 ebgp-max-hop 直接按回车ttl变为255

默认情况下ebgp邻居间的ttl值为1

  1. EBGP邻居关系存在多条路径时,也建议使用环回建立邻居关系

【1】ip可达问题

r4(config)#ip route 5.5.5.0 255.255.255.0 45.1.1.2

r4(config)#ip route 5.5.5.0 255.255.255.0 54.1.1.2

【2】建立BGP邻居关系

r4(config)#router bgp 2

r4(config-router)#neighbor 5.5.5.5 remote-as 3

r4(config-router)#neighbor 5.5.5.5 update-source loopback 0

默认IBGP邻居间TTL值设定为255,EBGP邻居为1;

r4(config-router)#neighbor 5.5.5.5 ebgp-multihop ?

  <1-255>  maximum hop count

       255

r4(config-router)#neighbor 5.5.5.5 ebgp-multihop

华为

[R1]display bgp peer

 BGP local router ID : 1.1.1.1

 Local AS number : 100

 Total number of peers : 1                 Peers in established state : 1

  Peer            V          AS  MsgRcvd  MsgSent  OutQ  Up/Down       State Pre

fRcv

  2.2.2.2         4         100       11       12     0 00:09:56 Established  

当建立邻居配置完成后,邻居间将先建立TCP会话:

r1#show tcp brief

TCB       Local Address           Foreign Address        (state)

64289A10  12.1.1.1.179            12.1.1.2.14396         ESTAB

华为

[R1]display tcp status

TCPCB    Tid/Soid Local Add:port        Foreign Add:port      VPNID  State

b4b1f658 6  /1    0.0.0.0:23            0.0.0.0:0             23553  Listening

b4b1fb68 164/2    0.0.0.0:179           2.2.2.2:0             0      Listening

b4b1fa24 164/6    1.1.1.1:179           2.2.2.2:50778         0      Established

当会话建立后,邻居间使用open报文建立邻居关系,生成邻居表

r1#show ip bgp neighbors   查看邻居关系,但该表过大不易查看

华为

[R1]display  bgp peer verbose

r1#show ip bgp summary

BGP router identifier 1.1.1.1, local AS number 1

BGP table version is 1, main routing table version 1

Neighbor        V    AS MsgRcvd MsgSent   TblVer  InQ OutQ Up/Down  State/PfxRcd

12.1.1.2         4     2      15      15        1    0    0 00:11:25        0

[R1]display  bgp peer

 BGP local router ID : 1.1.1.1

 Local AS number : 100

 Total number of peers : 1                 Peers in established state : 1

  Peer            V          AS  MsgRcvd  MsgSent  OutQ  Up/Down       State Pre

fRcv

  2.2.2.2         4         100       15       16     0 00:13:19 Established   

状态处显示数字即为邻居关系已经建立,数字表示从该邻居处学习到的路由条目数量;

路由宣告:

无论本地路由表中的条目是通过何种方式获取,均可宣告到BGP协议中;

BGP协议可以宣告本地路由表中任何条目,但宣告时必须同本地路由表中的记录完全一致

r1(config)#router bgp 1

r1(config-router)#network 1.1.1.0 mask 255.255.255.0

华为

[R2]bgp 100

[R2-bgp]network 1.1.1.1 32

宣告完成,将生成BGP;用于装载所有本地发出和接收到的条目

r1#show ip bgp

BGP table version is 2, 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  一种属性--起源属性

      Network          Next Hop            Metric LocPrf Weight Path

*>    1.1.1.0/24         0.0.0.0                  0         32768 i

状态 目标网络号                        属性

查看bgp表

[R3]display bgp routing-table

 BGP Local router ID is 3.3.3.3

 Status codes: * - valid, > - best, d - damped,

               h - history,  i - internal, s - suppressed, S - Stale

               Origin : i - IGP, e - EGP, ? - incomplete

 Total Number of Routes: 1

      Network            NextHop        MED        LocPrf    PrefVal Path/Ogn

 *>   1.1.1.1/32         2.2.2.2         1                     0      100i

 *>   标示可用---可以加表(路由表)  

*  不可用----*被r取代---不装载--本地通过其他更好的协议已经学习到了该条目

            被s取代---被人为的抑制--不得传递

>标示优---可以加表,可以传递

   优的条件:1、同步问题---一条条目需要本地通过IGP和BGP同时学习到,为避免路由黑洞;该限制可以关闭,且IOS版本12.2(8)T 以上系列路由器默认关闭该功能

             2、下一跳可达问题---当一条条目传递给EBGP邻居时将自动修改下一跳地

                 址为本地,但若传递给IBGP邻居,将不修改任何参数

r2(config)#router bgp 2

r2(config-router)#neighbor 3.3.3.3 next-hop-self  传递条目到该邻居时,自动修改下一跳为本地

华为

[R3]bgp  101

[R3-bgp]peer 4.4.4.4 next-hop-local

[r2]bgp  101

[r2-bgp]peer 3.3.3.3 next-hop-invariable 下一跳不变,但是必须伴随路由泄漏

BGP的MA网路下一跳问题:

在MA网络由于ICMP重定向,故BGP可以寻找到最佳下一跳地址;

r1#debug ip bgp updates   查看BGP更新包

华为

debugging bgp update

r2#clear ip bgp *  硬重启 断开所有邻居间的TCP会话,让后再重新建立

reset bgp 100

r2#clear ip bgp * soft   软重启,重新收发所有路由信息,不断开邻居关系

reset bgp 100 graceful

r1#clear ip bgp 123.1.1.2  和某个邻居进行硬重启

reset bgp 2.2.2.2

r1#clear ip bgp 123.1.1.2 soft ?   和某个邻居进行软重启,可选择方向

  in   Soft reconfig inbound update

  out  Soft reconfig outbound update

 

reset bgp internal graceful

reset bgp external graceful

reset bgp 2.2.2.2 graceful

r1#show ip bgp neighbors 123.1.1.2 advertised-routes   查看BGP表中本地发送给邻居的条目

r1#show ip bgp neighbors 123.1.1.2 received-routes 查看BGP表中从该邻居处接收到的条目

% Inbound soft reconfiguration not enabled on 123.1.1.2 但默认没有专门的内存用于存在信息

r1(config)#router bgp 1

r1(config-router)#neighbor 123.1.1.2 soft-reconfiguration inbound  创建专门的空间,建议查看

BGP宣告问题:

若BGP协议宣告的条目非本地直连,而是通过其他协议学习;那么在将这些路由传递到BGP中时将携带本地到达目标的度量值,及下一跳;

携带原有度量值,多个EBGP邻居将同一路径传递入本AS时,可以通过他们所携带的度量值来优选路径;本地宣告的路由携带度量值后,传递到其他IBGP邻居处,同时该IBGP邻居需要将该条目再传递到它的EBGP邻居时,将度量值修改为0,因为这个度量值不能代表它自己;------所有存在EBGP邻居的路由器均应该宣告需要向其他AS传递的路由条目;

原有下一跳地址在传递给EBGP邻居时将自动修改为本地;在传递给IBGP邻居时,默认携带原有下一跳,若接收到的条目中下一跳地址为本地接口某个地址将拒绝接收该条目;

BGP中的 no auto-summary问题:

在BGP协议中针对正常宣告的路由,自动汇总功能无意义;

在将IGP重发布到BGP时,自动汇总功能存在影响:

r2(config)#router bgp 2

r2(config-router)#redistribute ospf 1

auto-summary                              no auto-summary

不携带掩码、度量、下一跳                 携带掩码、度量、下一跳

度量值和下一跳规则同上一个问题处理方式完全一致,故若需要将IGP重发布BGP时,应该在所有的EBGP邻居上进行;

H华为

[R3-bgp]summary  automatic

BGP的认证:仅支持MD5;

r1(config)#router bgp 1

r1(config-router)#neighbor 12.1.1.2 password cisco  默认以MD5发出,邻居间需要一致

在run中密码明文显示,可以开启密码密文服务

r1(config)#service password-encryption

华为

[R1-bgp]peer 2.2.2.2 password simple 123

BGP的聚合(汇总):

1、利用BGP的宣告特点;---BGP可以宣告本地路由表任何方式生成的条目

1)先在更新源路由器上配置到达汇总地址的防环空接口路由

r5(config)#ip route 5.5.4.0 255.255.252.0 null 0

2)然后将该条目宣告的BGP协议中--不用逐一宣告明细路由

r5(config)#router bgp 3

r5(config-router)#network 5.5.4.0 mask 255.255.252.0

华为

[R2]ip route-static 192.168.0.0 22 NULL 0

[R2]bgp 100

[R2-bgp]network 192.168.0.0 22

2、BGP的汇聚

1)逐条宣告所有的明细路由

2)再进行标准的BGP聚合配置----更新原上将自动生成空接口防环路由

r5(config)#router bgp 3

r5(config-router)#aggregate-address 5.5.4.0 255.255.252.0

注:此时所有明细路由将同聚合路由一起发出

[R2]bgp 100

[R2-bgp]aggregate 192.168.0.0 22

r5(config-router)#aggregate-address 5.5.4.0 255.255.252.0 summary-only  仅发送聚合条目,其他明细路由被抑制

[R2]bgp 100

[R2-bgp]aggregate 192.168.0.0 22 detail-suppressed

当在发送聚合条目的同时,还需要发送部分的明细条目,那么可以使用抑制列表来进行干涉:

1)定制抑制列表---被抓取的流量反而是需要被抑制的流量

r5(config)#ip prefix-list ss permit 5.5.6.0/24

r5(config)#route-map ss permit 10

r5(config-route-map)#match ip address prefix-list ss

2)调用

r5(config)#router bgp 3

r5(config-router)#aggregate-address 5.5.4.0 255.255.252.0 suppress-map ss

注:以上配置适用于被抑制条目较少时;若被抑制的条目较多时,可以在route-map中deny需要传递的路由,然后允许其他所有

[R2]ip ip-prefix xx permit 192.168.1.0 24

[R2]route-policy yy permit node 10

[R2-route-policy]if-match ip-prefix xx

[R2]bgp 100

[R2-bgp]aggregate 192.168.0.0 22 detail-suppressed suppress-policy yy

另:还可以使用route-map或者前缀列表直接管理发送的条目;

Route-map:

r5(config)#ip prefix-list yy permit 5.5.5.0/24

r5(config)#route-map yy deny 10

r5(config-route-map)#match ip address prefix-list yy

r5(config-route-map)#exit

r5(config)#route-map yy permit 20

r5(config-route-map)#exit

r5(config)#router bgp 3

r5(config-router)#neighbor 4.4.4.4 route-map yy out

华为

[R2]ip ip-prefix vv permit 192.168.1.0 24      

[R2]route-policy ii deny node 10

Info: New Sequence of this List.

[R2-route-policy]if-match ip-prefix vv

[R2-route-policy]quit

[R2]route-policy ii permit node 20

[R2]bgp 100

[R2-bgp]peer 23.1.1.2 route-policy ii export

前缀列表:

r1(config)#ip prefix-list ss deny 1.1.1.0/24

r1(config)#ip prefix-list ss permit 0.0.0.0/0 le 32

r1(config)#router bgp 1

r1(config-router)#neighbor 12.1.1.2 prefix-list ss out

华为

[R2]ip ip-prefix bb deny 192.168.1.0 24

[R2]ip ip-prefix bb permit 0.0.0.0 0 less-equal 32

[R2]bgp  100

[R2-bgp]peer 23.1.1.2 ip-prefix  bb export

你可能感兴趣的:(网络)