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

参考

相关推荐
njnu@liyong34 分钟前
图解HTTP-HTTP报文
网络协议·计算机网络·http
是Dream呀2 小时前
Python从0到100(七十八):神经网络--从0开始搭建全连接网络和CNN网络
网络·python·神经网络
kaixin_learn_qt_ing2 小时前
了解RPC
网络·网络协议·rpc
安全小王子3 小时前
Kali操作系统简单介绍
网络·web安全
Hacker_LaoYi4 小时前
【漏洞分析】DDOS攻防分析(四)——TCP篇
网络·tcp/ip·ddos
Sun_12_25 小时前
SQL注入(SQL lnjection Base)21
网络·数据库
loong_XL5 小时前
服务器ip:port服务用nginx 域名代理
服务器·tcp/ip·nginx
网络安全Jack6 小时前
网络安全概论——身份认证
网络·数据库·web安全