B模块 安全通信网络 第二门课 核心网路由技术-2-BGP通告原则-IBGP水平分割-路由反射器

今日目标

01 BGP通告原则

02 IBGP水平分割

03 路由反射器

04 路由反射器实验

05 环回口建立IBGP邻居


1 BGP通告原则

  • BGP传递给路由时需要遵循以下原则
    第一条原则:只发布最优且有效(即下一跳地址可达)路由
    第二条原则:从EBGP邻居获取的路由,会发布给所有邻居
    第三条原则:从IBGP邻居获取的路由,不会再发送给其他IBGP邻居(IBGP水平分割)
    第四条原则:该条规则被称为BGP同步原则

2 IBGP水平分割

  • AS200内部R1/R2/R3逐跳建立IBGP邻居
  • 配置步骤:
    R4和R1建立EBGP邻居
    R3和R5建立EBGP邻居
    AS200内部部署OSPF
    R1和R2建立IBGP邻居
    R2和R3建立IBGP邻居
    在R4和R5中注入路由

配置命令

  • 配置R4
bash 复制代码
[R4]bgp 100
[R4-bgp]router-id 4.4.4.4
[R4-bgp]peer 192.168.14.1 as 200
[R4-bgp]network 10.10.4.4 32
  • 配置R1
bash 复制代码
[R1]bgp 200
[R1-bgp]router-id 1.1.1.1
[R1-bgp]peer 192.168.14.4 as 100
[R1-bgp]peer 192.168.12.2 as 200
[R1-bgp]peer 192.168.12.2 next-hop-local
  • 配置R2
bash 复制代码
[R2]bgp 200
[R2-bgp]router-id 2.2.2.2
[R2-bgp]peer 192.168.12.1 as 200
[R2-bgp]peer 192.168.23.3 as 200
  • 配置R3
bash 复制代码
[R3]bgp 200
[R3-bgp]router-id 3.3.3.3
[R3-bgp]peer 192.168.23.2 as 200
[R3-bgp]peer 192.168.23.2 next-hop-local
[R3-bgp]peer 192.168.35.5 as 300
  • 配置R5
bash 复制代码
[R5]bgp 300
[R5-bgp]router-id 5.5.5.5
[R5-bgp]peer 192.168.35.3 as 200
[R5-bgp]network 10.10.5.5 32
  • 验证与测试
bash 复制代码
dis ospf peer br			:查看ospf邻居
dis bgp peer				:查看bgp邻居关系
dis bgp routing-table		:查看BGP路由表

发现R4中没有去往10.10.5.5的路由了

发现R5中没有去往10.10.4.4的路由了为什么没有路由呢?

因为R2从R1哪里学来的路由,不会传递给R3

因为R2从R3哪里学来的路由,不会传递给R1

为什么会这样?因为IBGP水平分割

IBGP水平分割

  • BGP通告原则三
    从IBGP邻居学习到的BGP路由,不会再发送给其他IBGP邻居。
    该条原则也被称为"IBGP水平分割"。
    IBGP水平分割的作用:防止AS内部路由环路
  • IBGP水平分割的不足
    由于IBGP水平分割的限制,导致R2和R3之间的路由无法传递
  • 如何突破IBGP水平分割的限制
    IBGP全互联
    路由反射器

3 路由反射器

IBGP水平分割

  • IBGP水平分割
    作用:用于防止AS内部产生环路
    存在问题:BGP路由在AS内部无法传递
    解决方案:BGP邻居全互联、路由反射器、····

IBGP全互联的不足

  • 邻居数量多:一个AS内有n台设备,需建立的邻居数为n(n-1)/2
  • 当设备数目很多时,设备配置十分复杂、路由维护十分复杂
  • 当设备数目很多时,网络资源和设备资源的消耗都非常大

路由反射器

  • 反射器角色
    路由反射器:RR(Route Reflector)
    客户机
    非客户机
  • 反射器原理
    客户机只需与RR之间建立IBGP连接,不需要与其他客户机建立BGP连接,从而减少了IBGP连接数量;
    RR会将学习的路由反射出去,从而使得BGP路由在AS内传播无需建立IBGP全互联,路由器反射器突破了IBGP水平分割限制;

反射规则

  • 反射规则
    RR从非客户机收到的路由会反射给客户机,会发布给EBGP邻居
    RR从非客户机收到的路由不会反射给其他非客户机
    RR从客户机收到的路由会反射给其他客户机和所有非客户机
    RR从EBGP邻居收到的路由,会发布给所有的客户机、非客户机
  • 反射规则一
    RR从非客户机学到的路由,会发布给EBGP邻居,会反射给客户机,但是不会反射给另外一个非客户机
  • 反射规则二
    RR从客户机学到的路由,会发布给EBGP邻居,会反射给其他客户机和所有的非客户机
  • 反射规则三
    RR从EBGP邻居收到的路由,会发布给所有的客户机、非客户机

4 路由反射器实验

  • 实现AS100内的10.10.4.4和AS300内的10.10.5.5互通

配置步骤

  • 配置步骤
    R4和R1建立EBGP邻居
    R3和R5建立EBGP邻居
    AS200内部配置OSPF
    R1和R2建立IBGP邻居
    R2和R3建立IBGP邻居
    在R4和R5中注入路由
    把R2配置为路由反射器,把R1配置为客户机

配置命令

  • 配置R4
bash 复制代码
[R4]bgp 100
[R4-bgp]router-id 4.4.4.4
[R4-bgp]peer 192.168.14.1 as 200
[R4-bgp]network 10.10.4.4 32
  • 配置R1
bash 复制代码
[R1]bgp 200
[R1-bgp]router-id 1.1.1.1
[R1-bgp]peer 192.168.14.4 as 100
[R1-bgp]peer 192.168.12.2 as 200
[R1-bgp]peer 192.168.12.2 next-hop-local
  • 配置R2
bash 复制代码
[R2]bgp 200
[R2-bgp]router-id 2.2.2.2
[R2-bgp]peer 192.168.12.1 as 200
[R2-bgp]peer 192.168.23.3 as 200
  • 配置R3
bash 复制代码
[R3]bgp 200
[R3-bgp]router-id 3.3.3.3
[R3-bgp]peer 192.168.23.2 as 200
[R3-bgp]peer 192.168.23.2 next-hop-local
[R3-bgp]peer 192.168.35.5 as 300
  • 配置R5
bash 复制代码
[R5]bgp 300
[R5-bgp]router-id 5.5.5.5
[R5-bgp]peer 192.168.35.3 as 200
[R5-bgp]network 10.10.5.5 32
  • 在R2中配置路由反射器,把192.168.12.1做成客户机
bash 复制代码
[R2]bgp 200
[R2-bgp]peer 192.168.12.1 reflect-client   //指定192.168.12.1为客户机

验证与测试

  • 验证与测试
bash 复制代码
dis ospf peer br			:查看ospf邻居
dis bgp peer				:查看bgp邻居关系
dis bgp routing-table		:查看BGP路由表
dis ip routing-table		:查看IP核心路由表
在R4中 ping -a 10.10.4.4 10.10.5.5

5 环回口建立IBGP邻居

BGP的稳定性

  • IBGP:
    一般使用环回口建立BGP邻居,从而提高稳定性
    指定建立IBGP邻居的源地址为loopback地址

环回口建立IBGP邻居

  • 利用环回口建立IBGP邻居,实现10.10.4.4和10.10.5.5互通

配置步骤

  • 配置步骤
    R4和R1建立EBGP邻居
    R3和R5建立EBGP邻居
    AS200内部配置OSPF,把loopback接口地址宣告进OSPF
    R1和R2建立IBGP邻居,利用loopback接口
    R2和R3建立IBGP邻居,利用loopback接口
    在R4和R5中注入路由
    把R2配置为路由反射器,把R1配置为客户机

配置命令

  • 配置R4
bash 复制代码
  [R4]bgp 100
  [R4-bgp]router-id 4.4.4.4
  [R4-bgp]peer 192.168.14.1 as 200
  [R4-bgp]network 10.10.4.4 32
  • 配置R1
bash 复制代码
 [R1]bgp 200
 [R1-bgp]router-id 1.1.1.1
 [R1-bgp]peer 192.168.14.4 as 100
 [R1-bgp]peer 10.10.2.2 as-number 200
 [R1-bgp]peer 10.10.2.2 connect-interface LoopBack0
 [R1-bgp]peer 10.10.2.2 next-hop-local
  • 配置R2
bash 复制代码
 [R2]bgp 200
 [R2-bgp]router-id 2.2.2.2
 [R2-bgp]peer 10.10.1.1 as-number 200
 [R2-bgp]peer 10.10.1.1 connect-interface LoopBack0
 [R2-bgp]peer 10.10.3.3 as-number 200
 [R2-bgp]peer 10.10.3.3 connect-interface LoopBack0
 [R2-bgp]peer 10.10.1.1 reflect-client
  • 配置R3
bash 复制代码
 [R3]bgp 200
 [R3-bgp]router-id 3.3.3.3
 [R3-bgp]peer 10.10.2.2 as-number 200
 [R3-bgp]peer 10.10.2.2 connect-interface LoopBack0
 [R3-bgp]peer 10.10.2.2 next-hop-local
 [R3-bgp]peer 192.168.35.5 as-number 300
  • 配置R5
bash 复制代码
[R5]bgp 300
[R5-bgp]router-id 5.5.5.5
[R5-bgp]peer 192.168.35.3 as 200
[R5-bgp]network 10.10.5.5 32
  • 验证与测试
bash 复制代码
dis ospf peer br				:查看ospf邻居
dis bgp peer   					 :查看bgp邻居关系
dis bgp routing-table			:查看BGP路由表
dis ip routing-table  		  :查看IP核心路由表
在R4中 ping -a 10.10.4.4 10.10.5.5

配置案例

IBGP水平分割

路由器反射器

利用环回口建立IBGP邻居


1 IBGP水平分割

1.1 问题

1.2 方案

搭建实验环境,如图所示。

1.3 步骤

实现此案例需要按照如下步骤进行。

1)配置网络设备 -- R4

  • 1)R4的接口配置:
bash 复制代码
[R4]int g0/0/0
[R4-G0/0/0]ip add 192.168.14.4 24
[R4-G0/0/0]int lo0
[R4-LoopBack0]ip add 10.10.4.4 32
  • 2)R4的BGP配置:
bash 复制代码
[R4]bgp 100
[R4-bgp]router-id 4.4.4.4
[R4-bgp]peer 192.168.14.1 as 200    //和R1建立外部邻居
[R4-bgp]network 10.10.4.4 32        //注入路由

2)配置网络设备 -- R1

  • 1)R1的接口配置:
bash 复制代码
[R1]int g0/0/0
[R1-G0/0/0]ip add 192.168.12.1 24
[R1-G0/0/0]int g0/0/1
[R1-G0/0/1]ip add 192.168.14.1 24
  • 2)R1的OSPF配置:
bash 复制代码
[R1]ospf 1 router-id 1.1.1.1
[R1-ospf-1]area 0
[R1-ospf-1-area-0.0.0.0]network 192.168.12.0 0.0.0.255
  • 3)R1的BGP配置:
bash 复制代码
[R1]bgp 200 
[R1-bgp]router-id 1.1.1.1
[R1-bgp]peer 192.168.14.4 as 100 
[R1-bgp]peer 192.168.12.2 as 200 
[R1-bgp]peer 192.168.12.2 next-hop-local
  • 1)R2的接口配置:
bash 复制代码
[R2]int g0/0/0
[R2-G0/0/0]ip add 192.168.12.2 24
[R2-G0/0/0]int g0/0/1
[R2-G0/0/1]ip add 192.168.23.2 24
  • 2)R2的ospf配置:
bash 复制代码
[R2]ospf 1 router-id 2.2.2.2
[R2-ospf-1]area 0
[R2-ospf-1-area-0.0.0.0]network 192.168.12.0 0.0.0.255
[R2-ospf-1-area-0.0.0.0]network 192.168.23.0 0.0.0.255
  • 3)R2的BGP配置:
bash 复制代码
[R2]bgp 200
[R2-bgp]router-id 2.2.2.2
[R2-bgp]peer 192.168.12.1 as 200    //和R1建立内部邻居
[R2-bgp]peer 192.168.23.3 as 200    //和R3建立内部邻居
  • 1)R3的接口配置:
bash 复制代码
[R3]int g0/0/0
[R3-G0/0/0]ip add 192.168.23.3 24
[R3-G0/0/0]int g0/0/1
[R3-G0/0/1]ip add 192.168.35.3 24
  • 2)R3的OSPF配置
bash 复制代码
[R3]ospf 1 router-id 3.3.3.3
[R3-ospf-1]area 0
[R3-ospf-1-area-0.0.0.0]network 192.168.23.0 0.0.0.255
  • 3)R3的BGP配置:
bash 复制代码
[R3]bgp 200
[R3-bgp]router-id 3.3.3.3
[R3-bgp]peer 192.168.23.2 as 200    
[R3-bgp]peer 192.168.23.2 next-hop-local 
[R3-bgp]peer 192.168.35.5 as 300
  • 1)R5的接口配置:
bash 复制代码
[R5]int g0/0/0
[R5-G0/0/0]ip add 192.168.35.5 24
[R5-G0/0/0]int lo0
[R5-LoopBack0]ip add 10.10.5.5 32
  • 2)R5的BGP配置:
bash 复制代码
[R5]bgp 300
[R5-bgp]router-id 5.5.5.5
[R5-bgp]peer 192.168.35.3   as  200 
[R5-bgp]network 10.10.5.5  32
bash 复制代码
dis ospf peer br       :查看ospf 邻居
dis bgp peer             :查看bgp邻居关系
dis bgp routing-table     :查看BGP路由表
bash 复制代码
发现R4中没有去往10.10.5.5 的路由了
发现R5中没有去往10.10.4.4 的路由了
为什么没有路由呢?
因为R2从R1哪里学来的路由,不会传递给R3
因为R2从R3哪里学来的路由,不会传递给R1

为什么会这样? 因为IBGP水平分割

2 路由器反射器

2.1 问题

2.2 方案

搭建实验环境,如图所示。

2.3 步骤

实现此案例需要按照如下步骤进行。

1)配置网络设备 -- R4

  • 1)R4的接口配置:
bash 复制代码
[R4]int g0/0/0
[R4-G0/0/0]ip add 192.168.14.4 24
[R4-G0/0/0]int lo0
[R4-LoopBack0]ip add 10.10.4.4 32
  • 2)R4的BGP配置:
bash 复制代码
[R4]bgp 100
[R4-bgp]router-id 4.4.4.4
[R4-bgp]peer 192.168.14.1 as 200    //和R1建立外部邻居
[R4-bgp]network 10.10.4.4 32        //注入路由

2)配置网络设备 -- R1

  • 1)R1的接口配置:
bash 复制代码
[R1]int g0/0/0
[R1-G0/0/0]ip add 192.168.12.1 24
[R1-G0/0/0]int g0/0/1
[R1-G0/0/1]ip add 192.168.14.1 24
  • 2)R1的OSPF配置:
bash 复制代码
[R1]ospf 1 router-id 1.1.1.1
[R1-ospf-1]area 0
[R1-ospf-1-area-0.0.0.0]network 192.168.12.0 0.0.0.255
  • 3)R1的BGP配置:
bash 复制代码
[R1]bgp 200  //开启BGP,配置AS200
[R1-bgp]router-id 1.1.1.1
[R1-bgp]peer 192.168.14.4 as 100      //和R4建立外部邻居
[R1-bgp]peer 192.168.12.2 as 200      //和R2建立内部邻居
[R1-bgp]peer 192.168.12.2 next-hop-local   //修改下一跳

3)配置网络设备 -- R2

  • 1)R2的接口配置:
bash 复制代码
[R2]int g0/0/0
[R2-G0/0/0]ip add 192.168.12.2 24
[R2-G0/0/0]int g0/0/1
[R2-G0/0/1]ip add 192.168.23.2 24
  • 2)R2的ospf配置:
bash 复制代码
[R2]ospf 1 router-id 2.2.2.2
[R2-ospf-1]area 0
[R2-ospf-1-area-0.0.0.0]network 192.168.12.0 0.0.0.255
[R2-ospf-1-area-0.0.0.0]network 192.168.23.0 0.0.0.255
  • 3)R2的BGP配置:
bash 复制代码
[R2]bgp 200
[R2-bgp]router-id 2.2.2.2
[R2-bgp]peer 192.168.12.1 as 200    //和R1建立内部邻居
[R2-bgp]peer 192.168.23.3 as 200    //和R3建立内部邻居
  • 4)在R2中配置路由反射器,把192.168.12.1 做成客户机
bash 复制代码
[R2]bgp 200  
[R2-bgp]peer 192.168.12.1 reflect-client     //指定192.168.12.1 为客户机

4)配置网络设备 -- R3

  • 1)R3的接口配置:
bash 复制代码
[R3]int g0/0/0
[R3-G0/0/0]ip add 192.168.23.3 24
[R3-G0/0/0]int g0/0/1
[R3-G0/0/1]ip add 192.168.35.3 24
  • 2)R3的OSPF配置
bash 复制代码
[R3]ospf 1 router-id 3.3.3.3
[R3-ospf-1]area 0
[R3-ospf-1-area-0.0.0.0]network 192.168.23.0 0.0.0.255
  • 3)R3的BGP配置:
bash 复制代码
[R3]bgp 200
[R3-bgp]router-id 3.3.3.3
[R3-bgp]peer 192.168.23.2 as 200    //和R2建立内部邻居
[R3-bgp]peer 192.168.23.2 next-hop-local  //修改下一跳
[R3-bgp]peer 192.168.35.5 as 300    //和R5建立外部邻居

5)配置网络设备 -- R5

  • 1)R5的接口配置:
bash 复制代码
[R5]int g0/0/0
[R5-G0/0/0]ip add 192.168.35.5 24
[R5-G0/0/0]int lo0
[R5-LoopBack0]ip add 10.10.5.5 32
  • 2)R5的BGP配置:
bash 复制代码
[R5]bgp 300
[R5-bgp]router-id 5.5.5.5
[R5-bgp]peer 192.168.35.3 as 200   //和R3建立外部邻居
[R5-bgp]network 10.10.5.5 32       //注入路由
  • 6)验证与测试
bash 复制代码
<R4>ping -a 10.10.4.4  10.10.5.5   

3 利用环回口建立IBGP邻居

3.1 问题

1)利用环回接口配置IBGP邻居

2)配置路由反射器,实现10.10.4.4 和10.10.5.5互通

3.2 方案

搭建实验环境,如图所示。

3.3 步骤

实现此案例需要按照如下步骤进行。

bash 复制代码
sysname R4
#
interface GigabitEthernet0/0/0
  ip address 192.168.14.4  24
#
interface LoopBack0
  ip address 10.10.4.4 32
#
bgp 100       
  router-id 4.4.4.4
  peer 192.168.14.1 as-number 200    //R4和R1建立EBGP邻居
  network 10.10.4.4  32             //注入路由 
sysname R1
#
interface GigabitEthernet0/0/1
  ip address 192.168.14.1  24 
#
interface GigabitEthernet0/0/0
  ip address 192.168.12.1  24
#
interface LoopBack0
  ip address 10.10.1.1  32
#
bgp 200
  router-id 1.1.1.1
  peer 10.10.2.2 as-number 200           //R1和R2建立IBGP邻居
  peer 10.10.2.2 connect-interface LoopBack0   //使用loopback接口建立IBGP邻居   
  peer 10.10.2.2 next-hop-local       
  peer 192.168.14.4 as-number 100     
   
#
ospf 1 router-id 1.1.1.1 
  area 0.0.0.0 
    network 10.10.1.1     0.0.0.0
    network 192.168.12.0  0.0.0.255
sysname R2
#
interface GigabitEthernet0/0/0
  ip address 192.168.12.2  24
#
interface GigabitEthernet0/0/1
  ip address 192.168.23.2  24
#
interface LoopBack0
  ip address 10.10.2.2  32 
#
bgp 200
  router-id 2.2.2.2
  peer 10.10.1.1 as-number 200    //R2和R1建立IBGP邻居
  peer 10.10.1.1 connect-interface LoopBack0    
  peer 10.10.3.3 as-number 200     //R2和R3建立IBGP邻居
  peer 10.10.3.3 connect-interface LoopBack0    
  peer 10.10.1.1 reflect-client    //指定R1为客户机
  
  //备注:如果配置下面这条命令:
  peer 10.10.3.3 reflect-client    //代表指定R3为客户机
  //如果没有配置这条命令: 代表,R3是我的非客户机
#
ospf 1 router-id 2.2.2.2 
  area 0.0.0.0 
    network 10.10.2.2  0.0.0.0
    network 192.168.12.0 0.0.0.255 
    network 192.168.23.0 0.0.0.255
sysname R3
#
interface GigabitEthernet0/0/0
  ip address 192.168.23.3 255.255.255.0 
#
interface GigabitEthernet0/0/1
  ip address 192.168.35.3 255.255.255.0 
#
interface LoopBack0
  ip address 10.10.3.3  32
#
bgp 200
  router-id 3.3.3.3
  peer 10.10.2.2 as-number 200     
  peer 10.10.2.2 connect-interface LoopBack0   
  peer 10.10.2.2 next-hop-local 
       
  peer 192.168.35.5 as-number 300    //R3和R5建立EBGP邻居
#
ospf 1 router-id 3.3.3.3 
  area 0.0.0.0 
    network 10.10.3.3    0.0.0.0 
    network 192.168.23.0 0.0.0.255
sysname R5
#
interface GigabitEthernet0/0/0
  ip address 192.168.35.5  24
#
interface LoopBack0
  ip address 10.10.5.5  32
#
bgp 300
  router-id 5.5.5.5
  peer 192.168.35.3  as-number 200   //R5和R3通过直连网段建立EBGP邻居
  network 10.10.5.5  32              //注入路由

验证与测试

bash 复制代码
<R4>ping -a 10.10.4.4  10.10.5.5
相关推荐
这儿有一堆花2 小时前
服务器安全:防火墙深度配置指南
服务器·安全·php
不当菜虚困3 小时前
centos7虚拟机配置网络
运维·服务器·网络
chao1898443 小时前
C#实现OMRON FINS-TCP协议与PLC通信
网络·tcp/ip·c#
金士镧(厦门)新材料有限公司3 小时前
稀土抑烟剂:让PVC膜“安静”又安全
科技·安全·全文检索·生活·能源
橘颂TA3 小时前
【Linux 网络】应用层自定义协议和序列化
linux·运维·服务器·网络·tcp·结构与算法·序列化和反序列
龙亘川3 小时前
GB/Z167-2025《系统控制图》全维度解析
运维·网络·智慧城市·内涝监测·技术标准
友莘居士3 小时前
SecretFlow 2.0 中安全执行计划SEP原理
安全·隐私计算·secretflow
xiatianxy3 小时前
云酷智能安全带(阵列):筑牢登高安全防线的关键力量
安全·智能安全带
开开心心就好3 小时前
内存清理工具显示内存,优化释放自动清理
java·linux·开发语言·网络·数据结构·算法·电脑