华为配置篇-BGP实验

BGP

一、简述

  • IBGP 水平分割:从一个 IBGP 对等体学到的路由,不会再通告给其他的 IBGP 对等体。在一个 AS 内部,路由器之间通过 IBGP 交换路由信息。如果没有水平分割机制,当多个路由器之间形成全连接的 IBGP 对等关系时,就可能会出现路由在 AS 内不断循环的情况。
  • EBGP 水平分割:从一个 EBGP 对等体学到的路由,不会再通告给这个 EBGP 对等体的同一 AS 内的其他 EBGP 对等体。当一个 AS 与另一个 AS 之间通过 EBGP 连接时,为了防止 AS 间的路由环路,采用了这样的规则。

二、常用命令总结

bash 复制代码
display bgp peer #查看 BGP 对等体
display bgp routing-table	#查看 BGP 路由表

#在R1上通过 network 命令发布路由
[R1]bgp 64513
[R1-bgp] network 10.1.1.1 24

#在R2上将路由的下一跳地址修改为自身
[R2]bgp 64512
[R2-bgp] peer 10.0.3.3 next-hop-local	#向对等体10.0.3.3宣告自己知道的路由时,告诉它将路由的下一跳都改为我R2。
[R2-bgp] peer 10.0.4.4 next-hop-local

三、实验

背景

你是公司的网络管理员。公司的网络采用了 BGP 协议作为路由协议。公司的网络由多个自治系统组成,不同的分支机构使用了不同的 AS 号,现在你需要完成公司网络的搭建工作。在公司总部使用了 OSPF 作为 IGP,公司内部不同分支机构使用的是私有的 BGP AS 号。在完成网络搭建以后,你还需要观察 BGP 路由信息的传递。

拓扑

配置

R1

bash 复制代码
[V200R003C00]
#
 sysname R1
#
interface GigabitEthernet0/0/0
 ip address 10.0.1.1 255.255.255.0 
#
interface LoopBack0
 ip address 1.1.0.1 255.255.255.255 
#
interface LoopBack1
 ip address 1.1.1.1 255.255.255.0 
#
bgp 64513						#创建区域64513
 router-id 1.1.0.1				#和ospf类似,设置router-id
 peer 2.2.0.2 as-number 64512 	#有个EBGP对等体,在区域64512
 peer 2.2.0.2 ebgp-max-hop 2 	#与这个对等体最大跳数设为2
 peer 2.2.0.2 connect-interface LoopBack0	#与这个对等体连接用LoopBack0接口
 #
 ipv4-family unicast	#默认的
  undo synchronization	#默认的
  network 1.1.1.0 255.255.255.0 
  peer 2.2.0.2 enable	#默认的
#
ip route-static 2.2.0.2 255.255.255.255 10.0.1.2
#
return

R2

bash 复制代码
[V200R003C00]
#
 sysname R2
#
interface GigabitEthernet0/0/0
 ip address 10.0.1.2 255.255.255.0 
#
interface GigabitEthernet0/0/1
 ip address 10.0.2.2 255.255.255.0 
#
interface LoopBack0
 ip address 2.2.0.2 255.255.255.255 
#
bgp 64512
 router-id 2.2.0.2
 peer 1.1.0.1 as-number 64513 
 peer 1.1.0.1 ebgp-max-hop 2 
 peer 1.1.0.1 connect-interface LoopBack0
 peer 3.3.0.3 as-number 64512 
 peer 3.3.0.3 connect-interface LoopBack0
 peer 4.4.0.4 as-number 64512 
 peer 4.4.0.4 connect-interface LoopBack0
 #
 ipv4-family unicast
  undo synchronization
  peer 1.1.0.1 enable
  peer 3.3.0.3 enable
  peer 3.3.0.3 next-hop-local 
  peer 4.4.0.4 enable
  peer 4.4.0.4 next-hop-local 
#
ospf 1 router-id 2.2.0.2 
 area 0.0.0.0 
  network 2.2.0.2 0.0.0.0 
  network 10.0.2.2 0.0.0.0 
#
ip route-static 1.1.0.1 255.255.255.255 10.0.1.1
#
return

R3

bash 复制代码
[V200R003C00]
#
 sysname R3
#
interface GigabitEthernet0/0/1
 ip address 10.0.2.3 255.255.255.0 
#
interface GigabitEthernet0/0/2
 ip address 10.0.3.3 255.255.255.0 
#
interface LoopBack0
 ip address 3.3.0.3 255.255.255.255 
#
bgp 64512
 router-id 3.3.0.3
 peer 2.2.0.2 as-number 64512 
 peer 2.2.0.2 connect-interface LoopBack0
 peer 4.4.0.4 as-number 64512 
 peer 4.4.0.4 connect-interface LoopBack0
 #
 ipv4-family unicast
  undo synchronization
  peer 2.2.0.2 enable
  peer 4.4.0.4 enable
#
ospf 1 router-id 3.3.0.3 
 area 0.0.0.0 
  network 3.3.0.3 0.0.0.0 
  network 10.0.2.3 0.0.0.0 
  network 10.0.3.3 0.0.0.0 
#
return

R4

bash 复制代码
[V200R003C00]
#
 sysname R4
#
interface GigabitEthernet0/0/0
 ip address 10.0.4.4 255.255.255.0 
#
interface GigabitEthernet0/0/2
 ip address 10.0.3.4 255.255.255.0 
#
interface LoopBack0
 ip address 4.4.0.4 255.255.255.255 
#
bgp 64512
 router-id 4.4.0.4
 peer 2.2.0.2 as-number 64512 
 peer 2.2.0.2 connect-interface LoopBack0
 peer 3.3.0.3 as-number 64512 
 peer 3.3.0.3 connect-interface LoopBack0
 peer 5.5.0.5 as-number 64514 
 peer 5.5.0.5 ebgp-max-hop 2 
 peer 5.5.0.5 connect-interface LoopBack0
 #
 ipv4-family unicast
  undo synchronization
  peer 2.2.0.2 enable
  peer 2.2.0.2 next-hop-local 
  peer 3.3.0.3 enable
  peer 3.3.0.3 next-hop-local 
  peer 5.5.0.5 enable
#
ospf 1 router-id 4.4.0.4 
 area 0.0.0.0 
  network 4.4.0.4 0.0.0.0 
  network 10.0.3.4 0.0.0.0 
#
ip route-static 5.5.0.5 255.255.255.255 10.0.4.5
#
return

R5

bash 复制代码
[V200R003C00]
#
 sysname R5
#
interface GigabitEthernet0/0/0
 ip address 10.0.4.5 255.255.255.0 
#
interface LoopBack0
 ip address 5.5.0.5 255.255.255.255 
#
interface LoopBack1
 ip address 5.5.1.5 255.255.255.0 
#
bgp 64514
 router-id 5.5.0.5
 peer 4.4.0.4 as-number 64512 
 peer 4.4.0.4 ebgp-max-hop 2 
 peer 4.4.0.4 connect-interface LoopBack0
 #
 ipv4-family unicast
  undo synchronization
  network 5.5.1.0 255.255.255.0 
  peer 4.4.0.4 enable
#
ip route-static 4.4.0.4 255.255.255.255 10.0.4.4
#
return

总结

  • R2、 R3、 R4 之间基于 Loopback0 接口建立全互联的 IBGP 对等体关系:R2与R3、R2与R4;R3与R2、R3与R4;R4与R2、R4与R3。
  • 默认情况下, EBGP 连接允许的最大跳数为 1,这导致 EBGP 对等体之间只能使用直连链路建立 EBGP 对等体关系, 为使用环回口作为更新源需要手动修改 EBGP 连接允许的最大跳数(直连1个、环回口1个,共2个EBGP对等体连接)。
  • R3 上已经学习到 R1、 R5 上发布的 BGP 路由, 但是都是非有效路由 , 这是因为它们的下一跳在 R3 上都不可达, 为此可以在 R2、 R4 上通过 next-hop-local 命令修改下一跳地址为 R2、 R4 的更新源地址。(R2告诉R3,将自己发给它的BGP路由的下一跳都改为R2自己,R4同理
  • 通过本次实验,有了更多理解,EBGP和IBGP之间通过对等体有一个大框架的路由 ,可以使用networkimport-route将本AS内路由导入bgp路由 ,进而在某一路由器下,ip路由表获得了bgp提供的一些路由。
    例如,本实验,在R1上通过bgp路由表导入ip路由的只有R5的loopback1,只有这两个的loopback1之间能ping通,而R1的ip路由表中没有到R3、R4的路由,所以无法ping通。
相关推荐
CodeByV1 分钟前
【C++】C++11:右值引用和移动语义
开发语言·c++
一水鉴天6 分钟前
整体设计 全面梳理复盘 之37 元级自动化引擎三体项目(Designer/Master/Transformer)划分确定 + 自用规划工具(增强版)
开发语言·算法·transformer·公共逻辑
自学互联网20 分钟前
python爬虫入门案例day05:Pexels
开发语言·爬虫·python
头发还没掉光光25 分钟前
C/C++类型转换
c语言·开发语言·c++
馨谙32 分钟前
RHEL 存储堆栈完全解析:从硬件到应用的存储管理指南
服务器·开发语言·php
二川bro1 小时前
第38节:WebGL 2.0与Three.js新特性
开发语言·javascript·webgl
李纲明1 小时前
Wordpress如何选择适合外贸的模板主题?
微信小程序·php
MediaTea1 小时前
Python 第三方库:Markdown(将文本渲染为 HTML)
开发语言·前端·python·html
Halo_tjn1 小时前
Java 基于分支和循环结构的专项实验
java·开发语言·计算机
洛_尘1 小时前
数据结构--9:反射、枚举以及lambda表达式(了解即可)
java·开发语言·数据结构