实验拓扑图

实验目的和需求

掌握bgp协议的基本原理和功能,了解ebgp和ibgp的区别和作用,学习如何配置bgp进程、建立对等体关系、引入和宣告路由、修改路由属性和控制选路策略,观察并分析bgp路由信息在不同AS之间的交换和传递过程。

需求:让r1和r5能过互相访问对方的5.5.5.5和1.1.1.1。

实验步骤

  • 基本配置:配置路由器的名称、接口IP地址、环回口等基本参数。

  • 配置IGP协议:在同一个AS内部,配置IGP(这里以OSPF为例)协议,实现内部网络互通。

  • 配置BGP协议:在不同AS之间,配置BGP进程、邻居关系等参数,建立ebgp或ibgp连接。

  • 路由宣告和引入:在BGP进程中,使用network命令宣告本地路由或使用import命令引入其他协议的路由,并观察邻居间的路由更新信息。

  • 用户测试:在各个网络节点上,使用ping或traceroute等工具测试网络连通性和数据流向

  1. 基本配置

各个路由器的端口ip地址配置如下


[r1]dis ip int brief 
Interface                         IP Address/Mask      Physical   Protocol  
GigabitEthernet0/0/0              12.1.1.1/24          up         up           
LoopBack0                         1.1.1.1/32           up         up(s)                             

[r2]dis ip int brief
Interface                         IP Address/Mask      Physical   Protocol  
GigabitEthernet0/0/0              12.1.1.2/24          up         up        
GigabitEthernet0/0/1              23.1.1.2/24          up         up            
LoopBack0                         2.2.2.2/32           up         up(s)     

[r3]dis ip int brief 
Interface                         IP Address/Mask      Physical   Protocol      
GigabitEthernet0/0/1              23.1.1.3/24          up         up        
GigabitEthernet0/0/2              34.1.1.3/24          up         up        
LoopBack0                         3.3.3.3/32           up         up(s)       

[r4]dis ip int brief 
Interface                         IP Address/Mask      Physical   Protocol  
GigabitEthernet0/0/0              45.1.1.4/24          up         up           
GigabitEthernet0/0/2              34.1.1.4/24          up         up        
LoopBack0                         4.4.4.4/32           up         up(s)        

[r5]dis ip int brief 
Interface                         IP Address/Mask      Physical   Protocol  
GigabitEthernet0/0/0              45.1.1.5/24          up         up          
LoopBack0                         5.5.5.5/32           up         up(s)     
  1. 配置IGP协议

在同一个AS内部,配置IGP(这里以OSPF为例)协议,实现内部网络互通,为BGP协议打底,因为想要建立起BGP的邻居关系,要跟邻居TCP可达,也就是能够通信。


[r2]
ospf 1 
 area 0.0.0.0 
#
interface GigabitEthernet0/0/1 
 ospf enable 1 area 0.0.0.0
#
interface LoopBack0
 ospf enable 1 area 0.0.0.0

[r3]
ospf 1 
 area 0.0.0.0 
  network 0.0.0.0 255.255.255.255

[r4]
ospf 1 
 area 0.0.0.0 
#
interface GigabitEthernet0/0/2 
 ospf enable 1 area 0.0.0.0
#
interface LoopBack0
 ospf enable 1 area 0.0.0.0
  1. 配置BGP协议

  • 在R1上配置BGP进程和EBGP邻居关系。


[r1]
bgp 100
 router-id 1.1.1.1
 peer 12.1.1.2 as-number 200     
  • 在R2上配置BGP进程,EBGP邻居关系和IBGP邻居关系。


[r2]
bgp 200
 router-id 2.2.2.2
 peer 4.4.4.4 as-number 200 
 peer 4.4.4.4 connect-interface LoopBack0
 peer 12.1.1.1 as-number 100              
 peer 4.4.4.4 next-hop-local 
  • 在R4上配置BGP进程,EBGP邻居关系和IBGP邻居关系。

注意:r3上不需要配置bgp协议。


[r4]
bgp 200
 router-id 4.4.4.4
 peer 2.2.2.2 as-number 200 
 peer 2.2.2.2 connect-interface LoopBack0
 peer 45.1.1.5 as-number 300              
 peer 2.2.2.2 next-hop-local 
  • 在R5上配置BGP进程,EBGP邻居关系。


[R5]
bgp 300
 router-id 5.5.5.5
 peer 45.1.1.4 as-number 200 
  • 查检查R1 R2 R4 R5的邻居关系是否起来。


[r1]dis bgp peer 
  Peer            V          AS  MsgRcvd  MsgSent  OutQ  Up/Down       State PrefRcv

  12.1.1.2        4         200       41       40     0 00:37:35 Established       2

[r2]dis bgp peer
  Peer            V          AS  MsgRcvd  MsgSent  OutQ  Up/Down       State PrefRcv

  4.4.4.4         4         200       40       42     0 00:37:55 Established       1
  12.1.1.1        4         100       41       43     0 00:38:23 Established       1

[r4]dis bgp peer
  Peer            V          AS  MsgRcvd  MsgSent  OutQ  Up/Down       State PrefRcv

  2.2.2.2         4         200       42       41     0 00:38:24 Established       2
  45.1.1.5        4         300       41       42     0 00:38:54 Established       1

[r5]dis bgp peer
  Peer            V          AS  MsgRcvd  MsgSent  OutQ  Up/Down       State PrefRcv

  45.1.1.4        4         200       42       42     0 00:39:26 Established       1

状态为Established 表示邻居关系建立成功。

  1. 路由宣告和引入

  • 在BGP进程中,使用network命令宣告本地路由或使用import命令引入其他协议的路由,并观察邻居间的路由更新信息。


[r1]
bgp 100
  network 1.1.1.1 255.255.255.255

[r5]
bgp 300
  network 5.5.5.5 255.255.255.255
  • 查看路由更新信息


[r1-bgp]dis bgp routing-table 
      Network            NextHop        MED        LocPrf    PrefVal Path/Ogn

 *>   1.1.1.1/32         0.0.0.0         0                     0      i
 *>   5.5.5.5/32         12.1.1.2                              0      200 300i

[r5-bgp]dis bgp routing-table 
      Network            NextHop        MED        LocPrf    PrefVal Path/Ogn

 *>   1.1.1.1/32         45.1.1.4                              0      200 100i
 *>   5.5.5.5/32         0.0.0.0         0                     0      i

[r2]dis bgp routing-table 
      Network            NextHop        MED        LocPrf    PrefVal Path/Ogn

 *>   1.1.1.1/32         12.1.1.1        0                     0      100i
 *>i  5.5.5.5/32         4.4.4.4         0          100        0      300i

[r4]dis bgp routing-table 
      Network            NextHop        MED        LocPrf    PrefVal Path/Ogn

 *>i  1.1.1.1/32         2.2.2.2         0          100        0      100i
 *>   5.5.5.5/32         45.1.1.5        0                     0      300i
  • 此时路由已经传过去了,但是r1和r5之间现在是ping不通的,因为在r3中出现了路由黑洞,它没有去往r1和r5的路由


[r3]dis ip routing-table
Route Flags: R - relay, D - download to fib
------------------------------------------------------------------------------
Routing Tables: Public
         Destinations : 13       Routes : 13       

Destination/Mask    Proto   Pre  Cost      Flags NextHop         Interface

        2.2.2.2/32  OSPF    10   1           D   23.1.1.2        GigabitEthernet0/0/1
        3.3.3.3/32  Direct  0    0           D   127.0.0.1       LoopBack0
        4.4.4.4/32  OSPF    10   1           D   34.1.1.4        GigabitEthernet0/0/2
       23.1.1.0/24  Direct  0    0           D   23.1.1.3        GigabitEthernet0/0/1
       23.1.1.3/32  Direct  0    0           D   127.0.0.1       GigabitEthernet0/0/1
     23.1.1.255/32  Direct  0    0           D   127.0.0.1       GigabitEthernet0/0/1
       34.1.1.0/24  Direct  0    0           D   34.1.1.3        GigabitEthernet0/0/2
       34.1.1.3/32  Direct  0    0           D   127.0.0.1       GigabitEthernet0/0/2
     34.1.1.255/32  Direct  0    0           D   127.0.0.1       GigabitEthernet0/0/2
      127.0.0.0/8   Direct  0    0           D   127.0.0.1       InLoopBack0
      127.0.0.1/32  Direct  0    0           D   127.0.0.1       InLoopBack0
127.255.255.255/32  Direct  0    0           D   127.0.0.1       InLoopBack0
255.255.255.255/32  Direct  0    0           D   127.0.0.1       InLoopBack0

这时我们要在r2和r4中的ospf进程下引入bgp路由,让r3学习到这两条路由。


[r2]ospf 1
[r2-ospf-1]import-route bgp

[r4]ospf 1
[r4-ospf-1]import-route bgp

此时再去看r3的路由表。


[r3]dis ip routing-table 
Route Flags: R - relay, D - download to fib
------------------------------------------------------------------------------
Routing Tables: Public
         Destinations : 15       Routes : 15       

Destination/Mask    Proto   Pre  Cost      Flags NextHop         Interface

        1.1.1.1/32  O_ASE   150  1           D   23.1.1.2        GigabitEthernet0/0/1
        2.2.2.2/32  OSPF    10   1           D   23.1.1.2        GigabitEthernet0/0/1
        3.3.3.3/32  Direct  0    0           D   127.0.0.1       LoopBack0
        4.4.4.4/32  OSPF    10   1           D   34.1.1.4        GigabitEthernet0/0/2
        5.5.5.5/32  O_ASE   150  1           D   34.1.1.4        GigabitEthernet0/0/2
       23.1.1.0/24  Direct  0    0           D   23.1.1.3        GigabitEthernet0/0/1
       23.1.1.3/32  Direct  0    0           D   127.0.0.1       GigabitEthernet0/0/1
     23.1.1.255/32  Direct  0    0           D   127.0.0.1       GigabitEthernet0/0/1
       34.1.1.0/24  Direct  0    0           D   34.1.1.3        GigabitEthernet0/0/2
       34.1.1.3/32  Direct  0    0           D   127.0.0.1       GigabitEthernet0/0/2
     34.1.1.255/32  Direct  0    0           D   127.0.0.1       GigabitEthernet0/0/2
      127.0.0.0/8   Direct  0    0           D   127.0.0.1       InLoopBack0
      127.0.0.1/32  Direct  0    0           D   127.0.0.1       InLoopBack0
127.255.255.255/32  Direct  0    0           D   127.0.0.1       InLoopBack0
255.255.255.255/32  Direct  0    0           D   127.0.0.1       InLoopBack0

r3学习到了去往1.1.1.1和5.5.5.5的路由。

  1. 用户测试


<r1>ping -a 1.1.1.1 5.5.5.5
  PING 5.5.5.5: 56  data bytes, press CTRL_C to break
    Reply from 5.5.5.5: bytes=56 Sequence=1 ttl=252 time=40 ms
    Reply from 5.5.5.5: bytes=56 Sequence=2 ttl=252 time=50 ms
    Reply from 5.5.5.5: bytes=56 Sequence=3 ttl=252 time=30 ms
    Reply from 5.5.5.5: bytes=56 Sequence=4 ttl=252 time=30 ms
    Reply from 5.5.5.5: bytes=56 Sequence=5 ttl=252 time=40 ms
<r1>tracert -a 1.1.1.1 5.5.5.5
 traceroute to  5.5.5.5(5.5.5.5), max hops: 30 ,packet length: 40,press CTRL_C to break 
 1 12.1.1.2 30 ms  10 ms  10 ms 
 2 23.1.1.3 20 ms  20 ms  20 ms 
 3 34.1.1.4 50 ms  30 ms  30 ms 
 4 45.1.1.5 30 ms  40 ms  40 ms 

<r5>ping -a 5.5.5.5 1.1.1.1
  PING 1.1.1.1: 56  data bytes, press CTRL_C to break
    Reply from 1.1.1.1: bytes=56 Sequence=1 ttl=252 time=40 ms
    Reply from 1.1.1.1: bytes=56 Sequence=2 ttl=252 time=40 ms
    Reply from 1.1.1.1: bytes=56 Sequence=3 ttl=252 time=40 ms
    Reply from 1.1.1.1: bytes=56 Sequence=4 ttl=252 time=50 ms
    Reply from 1.1.1.1: bytes=56 Sequence=5 ttl=252 time=40 ms
<r5>tracert -a 5.5.5.5 1.1.1.1
 traceroute to  1.1.1.1(1.1.1.1), max hops: 30 ,packet length: 40,press CTRL_C to break 
 1 45.1.1.4 20 ms  30 ms  20 ms 
 2 34.1.1.3 20 ms  20 ms  20 ms 
 3 23.1.1.2 40 ms  20 ms  30 ms 
 4 12.1.1.1 40 ms  30 ms  40 ms 

实验完成。

  1. 总结

BGP协议是一种用于在不同自治系统(AS)之间交换网络层可达性信息的路由选择协议。BGP协议的特点有以下几点

  • BGP是基于策略的路由选择协议,它不使用传统的内部网关协议(IGP)的指标,而使用基于路径、网络策略或规则集来决定路由。

  • BGP使用TCP作为其传输层协议,提高了协议的可靠性。BGP报文有五种类型:Open、Update、Notification、Keepalive和Route-refresh。

  • BGP有两种运行模式:内部BGP(iBGP)和外部BGP(eBGP)。iBGP用于在同一个AS内部交换路由信息,eBGP用于在不同AS之间交换路由信息。

  • BGP维护自己的主路由表,称为Loc-RIB(本地路由信息库),以及针对每个邻居的Adj-RIB-In(入站邻接路由信息库)和Adj-RIB-Out(出站邻接路由信息库)。

  • BGP有六种状态,分别是Idle、Connect、Active、Open-Sent、Open-Confirm和Established。只有当双方都处于Established状态时,才能交换路由信息。

  • BGP具有丰富的路由属性,可以对特定的路由进行描述、过滤和选择。常用的属性有Origin、AS_Path、Next-Hop等。

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐