OSPFv2 ipv4

OSPFv3 ipv6
OSPF 为了解决静态路由可能会存在路径不优的问题

Router ID

eNSP 模拟 OSPF + IBGP Full Mesh_ospf
•OSPF Router-ID用于在OSPF domain中唯一地表示一台OSPF路由器,从OSPF网络设计的角度,我们要求全OSPF域内,禁止出现两台路由器拥有相同的Router-ID。
•OSPF Router-ID的设定可以通过手工配置的方式,或者通过协议自动选取的方式。当然,在实际网络部署中,强烈建议手工配置OSPF的Router-ID,因为这关系到协议的稳定。

  • OSPF Router-ID的建议绑定到 Loopback 网卡

DR & BDR

eNSP 模拟 OSPF + IBGP Full Mesh_ospf_02
在广播多路访问网络(Multi Access)中,所有的路由器的接口都是相同网段,这些接口两两建立OSPF邻居关系,这就意味着,网络中共有:n(n-1)/2。维护如此多的邻居关系不仅额外消耗资源,更增加了网络中LSA的泛洪数量。
•为减小多路访问网络中的 OSPF 流量,OSPF 会在每一个MA网络(多路访问网络)选举一个指定路由器 (DR) 和一个备用指定路由器 (BDR)。
•DR选举规则:最高OSPF接口优先级拥有者被选作DR,如果优先级相等(默认为1),具有最高的OSPF Router-ID的路由器被选举成DR,并且DR具有非抢占性。
•指定路由器 (DR):DR 负责使用该变化信息更新其它所有 OSPF 路由器(DR Rother)。
•备用指定路由器 (BDR):BDR 会监控 DR 的状态,并在当前 DR 发生故障时接替其角色。
•注意OSPF为“接口敏感型协议”,DR及BDR的身份状态是基于OSPF接口的。
•MA网络中,所有的DRother路由器均只与DR和BDR建立邻接关系,DRother间不建立全毗邻邻接关系。
•如此一来,该多路访问网络中设备需要维护的OSPF邻居关系大幅减小:M= (n-2)×2+1,LSA的泛洪问题也可以得到一定的缓解。

IBGP(Internal BGP)

位于相同自治系统的BGP路由器之间的BGP邻接关系。
•两台路由器之间要建立IBGP对等体关系,必须满足两个条件:
•两个路由器所属AS需相同(也即AS号相同)。
•在配置BGP时,Peer命令所指定的对等体IP地址要求路由可达,并且TCP连接能够正确建立

EBGP(External BGP)

位于不同自治系统的BGP路由器之间的BGP邻接关系。
•两台路由器之间要建立EBGP对等体关系,必须满足两个条件:
•两个路由器所属AS不同(也即AS号不同)。
•在配置BGP时,Peer命令所指定的对等体IP地址要求路由可达,并且TCP连接能够正确建立.

eNSP 模拟 OSPF

首先我们要将 BGP AS123 自治域内的网络通过 OSPF 打通,这样使路由可达,能达到 ​​Established​​ 的连接状态,这样便可以将 BGP 域内的 ​​179​​ 端口可达,BGP是需要 179 端口进行组播通信。

这样就可以使 AR1 和 AR3 成为 IBGP 的对等体,IBGP Peer。
eNSP 模拟 OSPF + IBGP Full Mesh_bgp_03

AR1 配置

通过 ​​LoopBack0​​ 口配置地址来宣告 router-id ,这样可以预防网络抖动。因为​​LoopBack0​​ 不会关闭。

<Huawei>system-view 
[Huawei]sysname AR1

[AR1]interface GigabitEthernet 0/0/0
[AR1-GigabitEthernet0/0/0]ip address 10.1.12.1 24
May 21 2022 18:12:31-08:00 AR1 %%01IFNET/4/LINK_STATE(l)[0]:The line protocol IP
on the interface GigabitEthernet0/0/0 has entered the UP state.
[AR1-GigabitEthernet0/0/0]dis this
[V200R003C00]
#
interface GigabitEthernet0/0/0
ip address 10.1.12.1 255.255.255.0
#

[AR1-GigabitEthernet0/0/0]interface l0
[AR1-LoopBack0]ip a 1.1.1.1 32
[AR1-LoopBack0]dis this
[V200R003C00]
#
interface LoopBack0
ip address 1.1.1.1 255.255.255.255
#
return
[AR1-LoopBack0]q
[AR1]ospf 1 router-id 1.1.1.1
[AR1-ospf-1]area 0
[AR1-ospf-1-area-0.0.0.0]network 1.1.1.1 0.0.0.0
[AR1-ospf-1-area-0.0.0.0]network 10.1.12.0 0.0.0.255
[AR1-ospf-1-area-0.0.0.0]display this
[V200R003C00]
#
area 0.0.0.0
network 1.1.1.1 0.0.0.0
network 10.1.12.0 0.0.0.255
#
return

AR2 配置

<Huawei>system-view 
Enter system view, return user view with Ctrl+Z.
[Huawei]sysname AR2
[AR2]interface GigabitEthernet 0/0/0
[AR2-GigabitEthernet0/0/0]ip a 10.1.12.2 24
[AR2-GigabitEthernet0/0/0]dis this
[V200R003C00]
#
interface GigabitEthernet0/0/0
ip address 10.1.12.2 255.255.255.0
#
return
[AR2-GigabitEthernet0/0/0]int G 0/0/1
[AR2-GigabitEthernet0/0/1]ip a 10.1.23.1 24
[AR2-GigabitEthernet0/0/1]dis this
[V200R003C00]
#
interface GigabitEthernet0/0/1
ip address 10.1.23.1 255.255.255.0
#
return
[AR2-GigabitEthernet0/0/1]inter l0
[AR2-LoopBack0]ip a 2.2.2.2 32
[AR2-LoopBack0]dis this
[V200R003C00]
#
interface LoopBack0
ip address 2.2.2.2 255.255.255.255
#
return

[AR2-LoopBack0]q
[AR2]ospf 1 router-id 2.2.2.2
[AR2-ospf-1]area 0
[AR2-ospf-1-area-0.0.0.0]network 2.2.2.2 0.0.0.0
[AR2-ospf-1-area-0.0.0.0]network 10.1.12.0 0.0.0.255
[AR2-ospf-1-area-0.0.0.0]network 10.1.23.0 0.0.0.255
[AR2-ospf-1-area-0.0.0.0]display this
[V200R003C00]
#
area 0.0.0.0
network 2.2.2.2 0.0.0.0
network 10.1.12.0 0.0.0.255
network 10.1.23.0 0.0.0.255
#
return

AR3 配置

<Huawei>system-view 
[Huawei]sysname AR3
[AR3]interface GigabitEthernet 0/0/0
[AR3-GigabitEthernet0/0/0]ip a 10.1.23.2 24
[AR3-GigabitEthernet0/0/0]dis this
[V200R003C00]
#
interface GigabitEthernet0/0/0
ip address 10.1.23.2 255.255.255.0
#
return
[AR3-GigabitEthernet0/0/0]inter l0
[AR3-LoopBack0]ip a 3.3.3.3 32
[AR3-LoopBack0]dis this
[V200R003C00]
#
interface LoopBack0
ip address 3.3.3.3 255.255.255.255
#
return
[AR3-LoopBack0]q
[AR3]ospf 1 router-id 3.3.3.3
[AR3-ospf-1]area 0
[AR3-ospf-1-area-0.0.0.0]network 3.3.3.3 0.0.0.0
[AR3-ospf-1-area-0.0.0.0]network 10.1.23.0 0.0.0.255
[AR3-ospf-1-area-0.0.0.0]dis this
[V200R003C00]
#
area 0.0.0.0
network 3.3.3.3 0.0.0.0
network 10.1.23.0 0.0.0.255
#
return
[AR3-ospf-1-area-0.0.0.0]

查看 ospf peer 状态

OSPF 建立连接 通过 224.0.0.5 发送组播包
eNSP 模拟 OSPF + IBGP Full Mesh_ospf_04
ospf 邻居状态建立过程
eNSP 模拟 OSPF + IBGP Full Mesh_ospf_05

[AR1]display ospf peer brief 

OSPF Process 1 with Router ID 1.1.1.1
Peer Statistic Information
----------------------------------------------------------------------------
Area Id Interface Neighbor id State
0.0.0.0 GigabitEthernet0/0/0 2.2.2.2 Full
----------------------------------------------------------------------------

[AR2]display ospf peer brief

OSPF Process 1 with Router ID 2.2.2.2
Peer Statistic Information
----------------------------------------------------------------------------
Area Id Interface Neighbor id State
0.0.0.0 GigabitEthernet0/0/0 1.1.1.1 Full
0.0.0.0 GigabitEthernet0/0/1 3.3.3.3 Full
----------------------------------------------------------------------------

[AR3]display ospf peer brief

OSPF Process 1 with Router ID 3.3.3.3
Peer Statistic Information
----------------------------------------------------------------------------
Area Id Interface Neighbor id State
0.0.0.0 GigabitEthernet0/0/0 2.2.2.2 Full
----------------------------------------------------------------------------

查看 AR1 - AR3 路由

至此,通过 OSPF 将 AR1 至 AR3 的链路打通,为了后边使用 BGP 的 179 端口做了基础准备
eNSP 模拟 OSPF + IBGP Full Mesh_ensp_06
eNSP 模拟 OSPF + IBGP Full Mesh_bgp_07
eNSP 模拟 OSPF + IBGP Full Mesh_ensp_08
eNSP 模拟 OSPF + IBGP Full Mesh_ensp_09

IBGP Peer

IBGP 的对等体需要 建立 full mesh 的全连接状态。
同时为了方式 AS 内产生环路,IBGP 不会从 IBGP Peer 学习到的路由通告给其他的 IBGP Peer。
eNSP 模拟 OSPF + IBGP Full Mesh_bgp_10

AR1 BGP 配置

[AR1]bgp 123  
[AR1-bgp]router-id 1.1.1.1
[AR1-bgp]peer 2.2.2.2 as-number 123
[AR1-bgp]peer 2.2.2.2 connect-interface l0
[AR1-bgp]dis this
[V200R003C00]
#
bgp 123
router-id 1.1.1.1
peer 2.2.2.2 as-number 123
peer 2.2.2.2 connect-interface LoopBack0
#
ipv4-family unicast
undo synchronization
peer 2.2.2.2 enable
#
return

AR2 BGP 配置

[AR2]bgp 123
[AR2-bgp]router-id 2.2.2.2
[AR2-bgp]peer 1.1.1.1 as-number 123
[AR2-bgp]peer 1.1.1.1 connect-interface l0
[AR2-bgp]peer 3.3.3.3 as-number 123
[AR2-bgp]peer 3.3.3.3 connect-interface l0
[AR2-bgp]dis this
[V200R003C00]
#
bgp 123
router-id 2.2.2.2
peer 1.1.1.1 as-number 123
peer 1.1.1.1 connect-interface LoopBack0
peer 3.3.3.3 as-number 123
peer 3.3.3.3 connect-interface LoopBack0
#
ipv4-family unicast
undo synchronization
peer 1.1.1.1 enable
peer 3.3.3.3 enable
#
return
[AR2-bgp]
May 21 2022 18:59:46-08:00 AR2 %%01BGP/3/STATE_CHG_UPDOWN(l)[0]:The status of th
e peer 1.1.1.1 changed from OPENCONFIRM to ESTABLISHED. (InstanceName=Public, St
ateChangeReason=Up)
[AR2-bgp]

AR3 BGP 配置

[AR3]bgp 123
[AR3-bgp]router-id 3.3.3.3
[AR3-bgp]peer 2.2.2.2 as-number 123
[AR3-bgp]peer 2.2.2.2 connect-interface l0
[AR3-bgp]display this
[V200R003C00]
#
bgp 123
router-id 3.3.3.3
peer 2.2.2.2 as-number 123
peer 2.2.2.2 connect-interface LoopBack0
#
ipv4-family unicast
undo synchronization
peer 2.2.2.2 enable
#
return

查看 BGP 连接状态

BGP Peer 状态为 Established 即为正常,表示 179 端口可达
eNSP 模拟 OSPF + IBGP Full Mesh_bgp_11

[AR1]display bgp peer
[AR2]display bgp peer
[AR3]display bgp peer

eNSP 模拟 OSPF + IBGP Full Mesh_bgp_12
eNSP 模拟 OSPF + IBGP Full Mesh_bgp_13
eNSP 模拟 OSPF + IBGP Full Mesh_ospf_14

AR3 宣告路由,AR1 能否学习到?

AR1 和 AR3 是 IBGP 对等体。
验证水平分割
eNSP 模拟 OSPF + IBGP Full Mesh_ensp_15

<AR3>system-view 
Enter system view, return user view with Ctrl+Z.
[AR3]interface l1
[AR3-LoopBack1]ip a 33.33.33.33 32
[AR3-LoopBack1]dis this
[V200R003C00]
#
interface LoopBack1
ip address 33.33.33.33 255.255.255.255
#
return
[AR3-LoopBack1]q

[AR3-bgp]display this
[V200R003C00]
#
bgp 123
router-id 3.3.3.3
peer 2.2.2.2 as-number 123
peer 2.2.2.2 connect-interface LoopBack0
#
ipv4-family unicast
undo synchronization
peer 2.2.2.2 enable
#
return

[AR3-bgp]network 33.33.33.33 255.255.255.255
[AR3-bgp]dis this
[V200R003C00]
#
bgp 123
router-id 3.3.3.3
peer 2.2.2.2 as-number 123
peer 2.2.2.2 connect-interface LoopBack0
#
ipv4-family unicast
undo synchronization
network 33.33.33.33 255.255.255.255
peer 2.2.2.2 enable
#
return

AR3 BGP 路由

display bgp routing-table

eNSP 模拟 OSPF + IBGP Full Mesh_bgp_16

AR2 BGP路由

AR2 可以正常学习到 AR3 发布的路由
eNSP 模拟 OSPF + IBGP Full Mesh_bgp_17

AR1 BGP 路由

AR1 并不能学习到 AR3 的路由,因为 AR1 和 AR3 并未建立连接
eNSP 模拟 OSPF + IBGP Full Mesh_ospf_18

AR1 AR3 建立连接

注意,此时建立连接是依赖于 OSPF 底层网络建立完毕,179 端口可达的基础上。

AR1

[AR1]bgp 123
[AR1-bgp]peer 3.3.3.3 as-number 123
[AR1-bgp]peer 3.3.3.3 connect-interface l0
[AR1-bgp]dis
[AR1-bgp]display this
[V200R003C00]
#
bgp 123
router-id 1.1.1.1
peer 2.2.2.2 as-number 123
peer 2.2.2.2 connect-interface LoopBack0
peer 3.3.3.3 as-number 123
peer 3.3.3.3 connect-interface LoopBack0
#
ipv4-family unicast
undo synchronization
peer 2.2.2.2 enable
peer 3.3.3.3 enable
#
return

AR3

[AR3]bgp 123
[AR3-bgp]peer 1.1.1.1 as-number 123
[AR3-bgp]peer 1.1.1.1 connect-interface l0
[AR3-bgp]dis this
[V200R003C00]
#
bgp 123
router-id 3.3.3.3
peer 1.1.1.1 as-number 123
peer 1.1.1.1 connect-interface LoopBack0
peer 2.2.2.2 as-number 123
peer 2.2.2.2 connect-interface LoopBack0
#
ipv4-family unicast
undo synchronization
network 33.33.33.33 255.255.255.255
peer 1.1.1.1 enable
peer 2.2.2.2 enable
#
return

查看 BGP Peer 连接状态

eNSP 模拟 OSPF + IBGP Full Mesh_ensp_19
eNSP 模拟 OSPF + IBGP Full Mesh_ensp_20

再次查看AR1 BGP 路由

此时建立连接以后,就可以正常学习到 AR3 发布的 BGP 路由了。
并且此路由只有 BGP 宣告,没有经过 OSPF,所以此条路由也是最优路由,并且是可达的。
eNSP 模拟 OSPF + IBGP Full Mesh_ensp_21
eNSP 模拟 OSPF + IBGP Full Mesh_ensp_22
至此,eNSP 模拟 OSPF + IBGP Full Mesh 的实验就进行完毕,对 BGP 有一个简单的认识,然后方便我们下节理解 calico 的 BGP Full Mesh。