?系列文章目录
第八课:eNSP 链路聚合2种方式(手工模式和LACP模式)拓扑配置教程
第九课:eNSP VRRP虚拟路由冗余协议配置教程(防火墙双机热备)
第十课:eNSP 静态NAT/动态NAT/动态NAPT/Easy IP/静态NAPT 5种NAT配置教程
BGP(Border Gateway Protocol)是一种用于Internet核心的路由协议,用于在自治系统之间传递路由信息。BGP协议由互联网工程任务组(IETF)开发,并已成为IPv4和IPv6核心路由的标准协议。
BGP的主要功能是建立和维护一个可靠的、自治系统之间的路由表,使得路由器可以知道到达其他自治系统的最佳路径。通过BGP协议,路由器之间可以共享路由信息,并根据路径属性(如跳数、带宽、负载等)选择最佳路径。
BGP协议具有以下特点:
- 路径选择:BGP使用路径向量协议进行路由选择,每个BGP路由器维护一个路径向量,包括到达目的地的下一跳地址和经过的自治系统序列。
- 可靠传输:BGP使用TCP(传输控制协议)作为传输协议,确保可靠的数据传输。
- 策略路由:BGP支持策略路由,允许管理员根据特定的条件(如源/目的IP地址、应用或安全策略)来选择最佳路径。
- 路由聚合:BGP支持路由聚合,将多个路由聚合为一个聚合地址,以减少路由表的大小。
- 增量更新:BGP支持增量更新,只发送更改的部分而不是整个路由表,以减少带宽和CPU资源的使用。
- 支持多协议:BGP可以与其他内部网关协议(IGP)协同工作,支持多种网络层协议(如IPv4和IPv6)和传输层协议(如TCP和UDP)。
命令 | 说明 |
router-id <IP> | Router-ID是一个用于标识OSPF(Open Shortest Path First)路由器身份的IP地址。在OSPF协议中,每台路由器都需要有一个唯一的Router-ID,以便在OSPF区域内唯一标识该路由器。 Router-ID通常使用点分十进制格式的IP地址来表示,例如"1.1.1.1"。在华为路由器上,可以通过手动配置或自动选择接口IP地址的方式来设置Router-ID。手动配置时,可以使用命令"router-id"后跟具体的IP地址来设置Router-ID。 |
peer <IP> as-number <AS_ID> | “peer 12.1.1.2 as-number 20”表示与路由器之间的对等体(peer)IP地址为12.1.1.2,并使用AS号(自治系统号)20进行标识。 在路由协议中,对等体是指与其他路由器共享路由信息的路由器。通过与对等体交换路由信息,路由器可以构建完整的路由表,从而将数据包转发到目的地。 AS号用于标识不同的自治系统,以便在不同的自治系统之间进行路由选择。在BGP(边界网关协议)等路由协议中,使用AS号来标识不同的自治系统并建立路由表。 |
peer <IP> connect-interface LoopBack0 | “peer 4.4.4.4 connect-interface LoopBack0”表示与对端路由器之间的对等体IP地址为4.4.4.4,并使用LoopBack0接口进行连接。 LoopBack接口是一种虚拟接口,常用于路由器之间的连接。LoopBack接口可以提供稳定的、可预测的IP地址,用于在路由器之间建立BGP(边界网关协议)等路由协议的对等体关系。通过LoopBack接口,路由器可以与对端路由器建立稳定的连接,并交换路由信息。 在配置BGP对等体时,可以使用“peer”命令指定对等体的IP地址,并使用“connect-interface”命令指定用于与对等体通信的接口。LoopBack接口通常具有稳定的IP地址和较低的延迟,因此常用于建立BGP对等体关系。 |
peer <IP> next-hop-local | “peer 4.4.4.4 next-hop-local”表示在与IP地址为4.4.4.4的对等体通信时,将下一跳设置为本地地址。 在BGP(边界网关协议)中,当路由器收到对等体发送的路由更新信息时,它会根据路径选择算法选择最佳路径,并将数据包转发到最佳路径的下一跳地址。如果使用“next-hop-local”命令,则表示将下一跳设置为本地地址,即将数据包直接发送回对等体。 这种配置通常用于避免路由环路或特殊路由策略的场景。例如,当路由器收到一条从对等体学习到的路由,但该路由的目的地与对等体的IP地址在同一网段时,为了避免路由环路,可以将下一跳设置为本地地址,即将数据包直接发送回对等体。 |
?
参考拓扑图进行配置
在同一个AS内部,配置IGP(这里以OSPF为例)协议,实现内部网络互通,为BGP协议打底,因为想要建立BGP邻居关系,需跟邻居TCP可达,也就是能够通信。
R2:
ospf 1?
area 0.0.0.0?
int g0/0/1?
ospf enable 1 area 0.0.0.0
q
int LoopBack 0
ospf enable 1 area 0.0.0.0
R3:
ospf 1?
area 0.0.0.0?
network 0.0.0.0 255.255.255.255
R4:
ospf 1?
area 0.0.0.0?
int g0/0/2?
ospf enable 1 area 0.0.0.0
q
int??LoopBack 0
ospf enable 1 area 0.0.0.0
在R1上配置BGP进程和EBGP邻居关系:
bgp 10
router-id 1.1.1.1
peer 12.1.1.2 as-number 20
在R2上配置BGP进程,EBGP邻居关系和IBGP邻居关系:
bgp 20
router-id 2.2.2.2
peer 4.4.4.4 as-number 20
peer 4.4.4.4 connect-interface LoopBack0
peer 12.1.1.1 as-number 10? ? ? ? ? ? ?
peer 4.4.4.4 next-hop-local
在R4上配置BGP进程,EBGP邻居关系和IBGP邻居关系:
注意:r3上不需要配置bgp协议。
bgp 200
router-id 4.4.4.4
peer 2.2.2.2 as-number 20
peer 2.2.2.2 connect-interface LoopBack0
peer 45.1.1.1?as-number 30 ? ? ? ? ? ?
peer 2.2.2.2 next-hop-local
在R5上配置BGP进程,EBGP邻居关系:
bgp 30
router-id 5.5.5.5
peer 45.1.1.2?as-number 20
查检R1 R2 R4 R5的邻居关系是否起来,状态为Established 表示邻居关系建立成功:
R1:
R2:
R4:
R5:
在BGP进程中,使用network命令宣告本地路由或使用import命令引入其他协议的路由,并观察邻居间的路由更新信息。
R1:
bgp 10
network 1.1.1.1 255.255.255.255
R5:
bgp 30
network 5.5.5.5 255.255.255.255
R1:
R5:
R2:
R4:
此时路由已经传过去了,但是r1和r5之间现在是ping不通的,因为在r3中出现了路由黑洞,它没有去往r1和r5的路由
这时我们要在r2和r4中的ospf进程下引入bgp路由,让r3学习到这两条路由。
R2:
ospf 1
import-route bgp
R4:
ospf 1
import-route bgp
此时再去看r3的路由表。r3学习到了去往1.1.1.1和5.5.5.5的路由: