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可达

参考

相关推荐
記億揺晃着的那天6 小时前
NAS 内网域名访问为什么需要浏览器授权
网络·nginx·js·nas
chunmiao30326 小时前
DeepSeek V4-Pro 正式版上线,API 8月17日起分时调价
网络·安全
迪康Defender8 小时前
AI 重构终端安全运营:智能分析中枢 AI Insight 模块架构与落地场景深度解析
运维·网络·人工智能·其他·安全·重构·架构
0x539 小时前
Java网络编程(二)
java·服务器·网络
微硬创新9 小时前
老旧产线改造:耐达讯自动化16路4‑20mA转PROFINET的工程实践
人工智能·网络协议·自动化·信息与通信
西安景驰电子11 小时前
《PTP精确时间协议系列》第一篇:从原理到应用,全面解读IEEE 1588
linux·运维·服务器·开发语言·网络·windows·php
Bruce_Liuxiaowei11 小时前
基于微步在线威胁情报的公网 IP 攻击迹象监测:threatbook_query 脚本全解析与 BruceSec 平台整合实践
数据库·tcp/ip·安全·网络安全·智能体
ZGi.ai11 小时前
多模型回答不稳定:路由规则与评测方法
网络·人工智能·大模型评测·多模型·模型路由·zgi·模型网关
80s77712 小时前
独享住宅IP、长效代理ip是什么?有哪些作用?
网络·网络协议·tcp/ip
IPdodo_12 小时前
静态 IP、住宅 IP 和固定出口有什么区别?开发场景选型指南
服务器·网络·网络协议·tcp/ip·代理ip