DATACOM-IP单播路由(BGP)-复习-实验

DATACOM-IP单播路由BGP-复习-实验

bash 复制代码
update 2024.12.20

BGP

边界网关协议BGP(Border Gateway Protocol)是一种实现自治系统AS(Autonomous System)之间的路由可达,并选择最佳路由的距离矢量路由协议。单播IPv4网络使用的版本是BGP-4,IPv6使用的版本是MP-BGP。
BGP基于TCP 179端口,按照TCP/IP协议,数据-ip-tcp,它是应用层协议

RIP基于UDP,数据-ip-udp,它是应用层协议

OSPF基于IP交换,数据-ip报文,它是网络层协议

原理

自治系统AS(Autonomous System)

AS是指在一个实体管辖下的拥有相同选路策略的IP网络。BGP网络中的每个AS都被分配一个唯一的AS号,用于区分不同的AS
不同AS之间(EBGP)需要直连链路,或者VPN构造逻辑直连链路(GRE Tunnel等)建邻

BGP邻居(对等体)

BGP邻居类型按照运行方式分为EBGP(External/Exterior BGP)和IBGP(Internal/Interior BGP)
EBGP:运行于不同AS之间的BGP称为EBGP。为了防止AS间产生环路,当BGP设备接收EBGP对等体发送的路由时,会将带有本地AS号的路由丢弃。
IBGP:运行于同一AS内部的BGP称为IBGP。为了防止AS内产生环路,BGP设备不将从IBGP对等体学到的路由通告给其他IBGP对等体,并与所有IBGP对等体建立全连接。为了解决IBGP对等体的连接数量太多的问题,BGP设计了路由反射器和BGP联盟。
一般对等体的建立使用逻辑接口IP,考虑到冗余、可靠性,一条物理链路down了,其他链路备份

报文

BGP属性

BGP路由生成

display bgp routing-table可以查看生成的路由条目

bgp路由只存在于对等体之间,display bgp peer可以查看对等体

BGP本身不会发现并计算生成路由,他需要通过人工将IGP或直连或静态注入到BGP路由表中,并通过update报文传递给其他对等体
两种注入方式:network、import-route

IBGP-路由反射器

为了解决IBGP对等体的连接数量太多的问题,BGP设计了路由反射器和BGP联盟。

客户机只需要与RR之间建立IBGP连接,不需要与其他客户机建立IBGP连接,从而减少了IBGP连接数量。

RR只将自己使用的最优bgp路由进行反射,这意味着别的对等体收到的只是RR到客户机的路由,需要看准nexthop
为了增加网络可靠性,可以配置一个备份RR

集群中的所有RR必须使用相同的Cluster ID,以避免RR之间的路由环路
一个AS内可以有多个集群

RR可以分级,RR-2相当于RR-1的客户机

多集群,同级RR

IBGP-BGP联盟

为了解决IBGP对等体的连接数量太多的问题,BGP设计了路由反射器和BGP联盟。
联盟将一个AS划分为若干个子AS。每个子AS内部建立IBGP全连接关系,子AS之间建立联盟EBGP连接关系,但联盟外部AS仍认为联盟是一个AS。

应用

配置

bash 复制代码
# 启动bgp
sys
router id [x.x.x.x]
bgp [as-number]
bash 复制代码
# 配置bgp对等体
peer [x.x.x.x] as-number [as-number]
bash 复制代码
# 配置BGP引入路由
#
#import 方式
ipv4-family  {unicast | multicast | vpnv4 } #进入地址簇
import-route [protocol] [ process-id ] {med [med] | route-policy [route-policy-name]} #引入其他协议
#[可选]default-route imported允许BGP引入本地IP路由表中已经存在的缺省路由import-route (BGP)
#
#network方式
ipv4-family  {unicast | multicast | vpnv4 }
network [x.x.x.x] [mask] route-policy [name]
bash 复制代码
# 配置路由反射器
#
sys
bgp [as-number]
ipv4-family  {unicast | multicast | vpnv4 } #进入地址簇
peer { group-name | ipv4-address | ipv6-address } reflect-client #配置路由反射器及其客户
# reflector cluster-id cluster-id #可选,配置路由反射器的集群ID
# undo reflect between-clients #禁止客户机之间的路由反射
bash 复制代码
# 检查功能
display bgp peer [ verbose ] # 查看所有BGP对等体的信息
display bgp peer ipv4-address { log-info | verbose } # 查看指定BGP对等体的信息
display bgp routing-table #查看bgp路由条目

实验

BGP

配置BGP的基本功能

接口、ibgp、ebgp配置

bash 复制代码
R1:
#
sysname R1
#
router id 1.1.1.1
#
interface Ethernet0/0/0
 ip address 192.168.1.2 255.255.255.0
#
interface LoopBack0
 ip address 1.1.1.1 255.255.255.255
#
bgp 65008
 peer 192.168.1.1 as-number 65009
 #
 ipv4-family unicast
  undo synchronization
  peer 192.168.1.1 enable
#
bash 复制代码
R2:
#
sysname R2
#
router id 2.2.2.2
#
interface Ethernet0/0/0
 ip address 192.168.1.1 255.255.255.0
#
interface Ethernet0/0/1
 ip address 172.16.1.1 255.255.255.0
#
interface LoopBack0
 ip address 2.2.2.2 255.255.255.255
#
bgp 65009
 peer 172.16.1.2 as-number 65009
 peer 172.16.2.2 as-number 65009
 peer 192.168.1.2 as-number 65008
 #
 ipv4-family unicast
  undo synchronization
  peer 172.16.1.2 enable
  peer 172.16.2.2 enable
  peer 192.168.1.2 enable
#
bash 复制代码
R3:
#
sysname R3
#
router id 3.3.3.3
#
interface Ethernet0/0/0
 ip address 172.16.1.2 255.255.255.0
#
interface Ethernet0/0/1
 ip address 172.16.3.1 255.255.255.0
#
interface LoopBack0
 ip address 3.3.3.3 255.255.255.255
#
bgp 65009
 peer 172.16.1.1 as-number 65009
 peer 172.16.3.2 as-number 65009
 #
 ipv4-family unicast
  undo synchronization
  peer 172.16.1.1 enable
  peer 172.16.3.2 enable
#
bash 复制代码
#
sysname R4
#
router id 4.4.4.4
#
interface Ethernet0/0/0
 ip address 172.16.2.2 255.255.255.0
#
interface Ethernet0/0/1
 ip address 172.16.3.2 255.255.255.0
#
interface LoopBack0
 ip address 4.4.4.4 255.255.255.255
#
bgp 65009
 peer 172.16.2.1 as-number 65009
 peer 172.16.3.1 as-number 65009
 #
 ipv4-family unicast
  undo synchronization
  peer 172.16.2.1 enable
  peer 172.16.3.1 enable
#



可以看到配置完对等体后,bgp路由表上没有任何路由条目,在R2上手动注入自己的直连路由后观察路由表变化

bash 复制代码
bgp 65009
import-route direct

R1、3、4的ospf路由表上多了R2的直连路由

使用network方式注入路由,观察路由表

bash 复制代码
R2:
bgp 65009
ipv4-family unicast
undo import-route direct
network 2.2.2.2 32


配置BGP路由反射器

bash 复制代码
省略配置接口IP、对等体建邻

在R2上network 2.2.2.2 32 后观察其他设备路由表

只有R1和R3学到了该路由,因为R2的对等体只有它们


想让整个bgp网络设备都学到该路由,就需要全连接,全连接有太过消耗资源

所以就有了路由反射器和联盟,在R1上布置路由反射器,指定R2、3为客户机

bash 复制代码
R1:
sys
bgp 65009
ipv4-family unicast
peer 10.1.4.2 reflect-client
peer 10.1.5.2 reflect-client
bash 复制代码
R4同理

在R2上注入2.2.2.2bgp路由,观察其他设备路由表变化,发现R7上虽然有R2的路由但是下一跳不在R7的路由表上,于是不可达

尝试在R1上向bgp注入直连路由import-route direct,观察R7路由表,R2可达

参考

相关推荐
其实防守也摸鱼11 分钟前
CTF密码学综合教学指南--第五章
开发语言·网络·笔记·python·安全·网络安全·密码学
不会敲代码11 小时前
TCP/IP 与前端性能:从数据包到首次渲染的底层逻辑
前端·tcp/ip
S1998_1997111609•X2 小时前
论mysql国盾shell-sfa犯罪行为集团下的分项工程及反向注入原理尐深度纳米算法下的鐌檵鄐鉎行为
网络·数据库·网络协议·百度·开闭原则
AI精钢2 小时前
AI Agent 从上线到删库跑路始末
网络·人工智能·云原生·aigc
笨笨饿3 小时前
69_如何给自己手搓一个串口
linux·c语言·网络·单片机·嵌入式硬件·算法·个人开发
geneculture4 小时前
《智能通信速分多次传输技术(VDMT)》专利文件的全文汉英双语对照版本
服务器·网络·人工智能·融智学的重要应用·哲学与科学统一性·融智时代(杂志)·人机间性
xrui585 小时前
2026实战:深度解析 Gemini 3.1 镜像站函数调用在自动化运维工单中的应用
linux·服务器·网络
Python私教5 小时前
GenericAgent记忆系统深度解析:四层架构如何让AI拥有永不遗忘的大脑
网络·人工智能·架构
时空系6 小时前
第9篇:成员功能——为结构体添加能力 Rust中文编程
开发语言·网络·rust
@encryption6 小时前
VLAN --- 深度学习
网络