【P2P_BMA_P2MP_NBMA】

基本概念介绍

1. BMA(Broadcast)

广播型多路访问技术,在一个MA(多路访问,在一个网段内的节点数量不限制。)网络中同时存在广播机制。

  • 特点:
    • 允许将数据包广播到网络上的所有主机。
    • 路由器之间可以通过广播方式交换路由信息。
  • 适用场景:
    • 用于局域网(LAN)中,主机数量较少且需要广播通信的情况。
    • 例如以太网是一种广播类型网络,适用于办公室、家庭等环境。

2. NBMA类型(Non-broadcast multiple access)

非广播型多路访问技术,在一个MA网络中没有广播机制

  • 特点:
    • 无法通过广播方式传播路由信息。
    • 路由器之间不能直接进行广播通信,需要通过其他方式交换路由信息。
  • 适用场景:
    • 用于需要非广播且多点可达的网络,例如使用Frame Relay、X.25等技术的广域网(WAN)。

3. P2MP类型(Point-to-Multipoint)

  • 特点:
    • 允许一个路由器与多个目标路由器之间建立直接连接。
    • 目标路由器之间不一定直接相连。
  • 适用场景:
    • 用于构建星型或树状拓扑结构的网络,其中一个路由器充当源,向多个目标路由器发送数据。

4. P2P类型(Point-to-Point)

在一个网段内只能存在两个节点,即便强制连接第三节点,最终也无法正常的通讯。

  • 特点:
    • 允许两个路由器之间直接建立连接。
    • 形成一条点到点的链路,适用于只有两个节点之间通信的场景。
  • 适用场景:
    • 用于建立专用连接或VPN连接等只需要两个节点之间通信的情况。

P2P/BMA/P2MP/NBMA实验

这个实验主要基于OSPF来进一步理解上面的概念。

实验拓扑

华为拓扑图-第 1 页.drawio.png

实验要求

  1. 通过SW1部署网络实现R1与R2,R3能够通信,R2,R3不能直接互通。(仅在155.1.0.0/24网段中不能互通)
  2. 使用适当不同的网络类型实现150.1.X.X/32互通。

实验分析与配置

基本配置

配置环回口IP和端口IP

# R1
interface GigabitEthernet0/0/0
 ip address 155.1.0.1 255.255.255.0 
interface LoopBack0
 ip address 150.1.1.1 255.255.255.255 
# R2
interface GigabitEthernet0/0/0
 ip address 155.1.0.2 255.255.255.0 
interface GigabitEthernet0/0/1
 ip address 155.1.23.2 255.255.255.0 
interface LoopBack0
 ip address 150.1.2.2 255.255.255.255 
#R3
interface GigabitEthernet0/0/0
 ip address 155.1.0.3 255.255.255.0 
interface GigabitEthernet0/0/1
 ip address 155.1.23.3 255.255.255.0 
interface LoopBack0
 ip address 150.1.3.3 255.255.255.255

配置VLNA

通过VLAN进行控制,限制R2和R3之间二层的访问。此时R1可以与R2和R3互通,但R2和R3之间不能互通。(仅在155.1.0.0/24网段中不能互通)

# SW1
interface GigabitEthernet0/0/1
 port hybrid pvid vlan 10
 port hybrid untagged vlan 10 20 30
interface GigabitEthernet0/0/2
 port hybrid pvid vlan 20
 port hybrid untagged vlan 10 20
interface GigabitEthernet0/0/3
 port hybrid pvid vlan 30
 port hybrid untagged vlan 10 30

配置OSPF

选择OSPF传递路由信息。

# R1 R2 R3
ospf 1 
 area 0.0.0.0 
  network 150.1.0.0 0.0.255.255 
  network 155.1.0.0 0.0.255.255 

小tip:可以把R2和R3上的G 0/0/1端口的OSPF的网络类型设置为P2P。原因:该网段只有这两台设备,设置为P2P可以不用进行DR和BDR的选举,可以快速收敛。

# R2 R3
interface GigabitEthernet0/0/1
 ospf network-type p2p

BMA实现互通

在配置OSPF之后,R2和R3之间仍然不能互相通信。(R2和R3的G 0/0/1端口shutdown的情况下)原因:通过查看路由表可以得知,R2和R3的路由下一条指的都是彼此,但是因为二层隔离,他们彼此的报文在交换机上被丢弃了。
解决方法:配置静态ARP,欺骗R2和R3下一跳是R1,让R1充当网关的作用,转发R2和R3的报文。(方法不唯一)

# R2
arp static 155.1.0.3 00e0-fc3b-058c
# R3
arp static 155.1.0.2 00e0-fc3b-058c

P2MP实现互通

由于网络是部分互联,R1相当于充当转发源,转发R2和R3的报文信息,这个不就是P2MP特性。所以可以直接配置OSPF的链路类型为P2MP。(配置前,记得清楚BMA实现互通的配置)

# R1 R2 R3
interface GigabitEthernet0/0/0
 ospf network-type p2mp

配置之后R2的路由表信息如下:
Clip_2024-07-14_09-50-58.png
由图可见,配置P2MP后,R2去往R3的路由信息直接指向R1,不用再写静态ARP。

NBMA实现互通

为了完成NBMA互通,需要在交换机上进行筛选,筛选掉组播报文。具体配置如下:

# SW1
acl number 3000
 rule 5 deny ip destination 224.0.0.0 15.255.255.255
interface GigabitEthernet0/0/1
 traffic-filter outbound acl 3000
interface GigabitEthernet0/0/2
 traffic-filter outbound acl 3000
interface GigabitEthernet0/0/3
 traffic-filter outbound acl 3000

配置完之后,由于交换机隔离了组播报文,因此路由器收不到对方的Hello报文,一段时间后,OSPF的邻居会断开。下图是R1的OSPF的邻居表:
Clip_2024-07-14_10-28-16.png
因此OSPF可以用NBMA类型进行通信,因为NBMA类型依靠单播进行通信。具体配置如下:

#R1 R2 R3
interface GigabitEthernet0/0/0
 ospf network-type nbma
#R1
ospf 1 
 peer 155.1.0.2
 peer 155.1.0.3
# R2 R2
ospf 1 
 peer 155.1.0.1

配置之后R1的路由表如下:
Clip_2024-07-14_10-37-25.png
可见,OSPF已经可以正常通信,但是此时,R2与R3之间仍然不能互相通信。原因同BMA实现互通中一样,由于二层隔离,配置静态ARP即可。

参考文献

wlijslmz(2024).OSPF 支持的网络类型:广播、NBMA、P2MP和P2P类型.阿里云开发者社区.检索于2024年7月13号
155和150(2024).OSPF-网络类型(P2P,BMA).哔哩哔哩.检索于2024年7月13号
影子&(2024).网络类型(P2P、MA、BMA、NBMA).CSDN.检索于2024年7月13日

相关推荐

  1. <span style='color:red;'>P</span><span style='color:red;'>2</span><span style='color:red;'>P</span>应用

    P2P应用

    2024-07-18 07:48:01      65 阅读
  2. p2p原理

    2024-07-18 07:48:01       40 阅读
  3. 【<span style='color:red;'>P</span><span style='color:red;'>2</span><span style='color:red;'>P</span>】

    P2P

    2024-07-18 07:48:01      38 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-18 07:48:01       70 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-18 07:48:01       74 阅读
  3. 在Django里面运行非项目文件

    2024-07-18 07:48:01       62 阅读
  4. Python语言-面向对象

    2024-07-18 07:48:01       72 阅读

热门阅读

  1. cv2:Laplacian详解

    2024-07-18 07:48:01       23 阅读
  2. 自然语言处理NLP--LDA面试题

    2024-07-18 07:48:01       20 阅读
  3. uniapp 获取自定义组件的高度

    2024-07-18 07:48:01       23 阅读
  4. 控制台小游戏制作——贪吃蛇

    2024-07-18 07:48:01       19 阅读
  5. Python高级函数技术:闭包、装饰器与回调

    2024-07-18 07:48:01       25 阅读
  6. 07. Hibernate 会话工厂(SessionFactory)

    2024-07-18 07:48:01       23 阅读
  7. 网络抓包工具tcpdump的使用

    2024-07-18 07:48:01       22 阅读
  8. 构建之源:深入解析Gradle的settings.gradle文件

    2024-07-18 07:48:01       22 阅读