华为配置篇-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通。
相关推荐
程序媛学姐1 分钟前
SpringKafka错误处理:重试机制与死信队列
java·开发语言·spring·kafka
唐青枫2 分钟前
php8 ?-> nullsafe 操作符 使用教程
php
2401_8401922710 分钟前
如何学习一门计算机技术
开发语言·git·python·devops
巷北夜未央24 分钟前
Python每日一题(14)
开发语言·python·算法
雾月551 小时前
LeetCode 914 卡牌分组
java·开发语言·算法·leetcode·职场和发展
Y.O.U..1 小时前
今日八股——C++
开发语言·c++·面试
weixin_307779131 小时前
使用C#实现从Hive的CREATE TABLE语句中提取分区字段名和数据类型
开发语言·数据仓库·hive·c#
Xiaok10181 小时前
解决 Hugging Face SentenceTransformer 下载失败的完整指南:ProxyError、SSLError与手动下载方案
开发语言·神经网络·php
绿草在线1 小时前
Mock.js虚拟接口
开发语言·javascript·ecmascript
go_bai2 小时前
Linux环境基础开发工具——(2)vim
linux·开发语言·经验分享·笔记·vim·学习方法