HMS工业网络

V1

2023/01/13阅读:22主题:自定义主题1

【完】PROFINET 网络拓扑图是如何生成的?

一些 PROFINET 网络调试和诊断工具,如西门子公司的 PRONETA 软件和 HMS 旗下 PROCENTEC Atlas 产品,能够在线扫描并生成整个 PROFINET 网络的拓扑图,这种拓扑图是如何生成的呢?


拓扑生成依赖 LLDP 协议

PROFINET 设备(Conformance Class - A)都需要支持 IEEE 802.1 AB 规范所定义的链路层发现协议(Link Layer Discovery Protocol)简称 LLDP,相互连接的 PROFINET 设备之间使用 LLDP 协议来交互连接信息,诊断工具通过读取这些信息来生成拓扑图。

💡 Tips

在 PROFINET 网络中应避免使用不支持 LLDP 协议的设备,如交换机等网络组件。

PROFINET 设备在启动后,将定期地通过每个已连接的端口对外发送 LLDP 以太网报文。


LLDP 报文格式

LLDP 以太网报文格式
LLDP 以太网报文格式
  • 目标 MAC 使用固定的多播地址 01:80:C2:00:00:0E, 确保所有的 PROFINET 设备都能正确接收此以太网帧,但任何收到此以太网帧的设备都不应进行转发。

  • 源 MAC 使用的是发送该以太网帧的 PROFINET 设备端口 MAC,同一个设备如果有多个端口,那么每个端口发送的 LLDP 源 MAC 都是不一样的

💡 Tips

PROFINET 设备有多个 MAC 地址,设备本身有 MAC 地址,设备的每一个端口也有其唯一的 MAC 地址。

  • 以太网类型使用固定值 0x88CC
Wireshark 实际抓包报文
Wireshark 实际抓包报文
  • LLDPDU 数据字段包含多个 IEEE 802.1AB 规定和 PNIO 扩展的 TLV(Type Length Value)

每一个 TLV 都至少包含以下三个字段:

  • 类型(Type)
  • 信息字符串长度(Information String Length)
  • 信息字符串(Information String)

下面为大家介绍 LLDPDU 里面包含的各种 TLV 内容。


LLDPDU 中 TLV 介绍

Chassis ID TLV

Chassis ID TLV 是 IEEE 802.1AB 规定的必需项

  • 当 PROFINET 设备的设备名称还未分配上,则 Sub Type=4,Chassis ID 里面实际包含的是 PROFINET 设备的设备 MAC
  • 当 PROFINET 设备的设备名称已经分配,则 Sub Type=7,Chassis ID 里面实际包含的是 PROFINET 设备的设备名称
Wireshark 实际抓包报文
Wireshark 实际抓包报文

Port ID TLV

Port ID TLV 是 IEEE 802.1AB 规定的必需项

里面包含的是发送该数据帧的设备端口号的字符串表示。

Wireshark 实际抓包报文
Wireshark 实际抓包报文

TTL TLV

TTL TLV 是 IEEE 802.1AB 规定的必需项

TTL 给出了数据的有效时长,单位为秒,由于只有 2 个字节长,因而最大有效时间是 65536 秒

如果在这个时间到期了还没有新的 LLDPDU 被收到,则该 TLV 所属的那个 LLDPDU 携带的信息会被从 MIB 中删除。

Wireshark 实际抓包报文
Wireshark 实际抓包报文

Management Address TLV

大多数 PROFINET 设备在发送 LLDP 帧时也会填充可选的 Management Address, TLV Type=8, 该 TLV 包含的是 PROFINET 设备正在使用的 IP 地址信息

Wireshark 实际抓包报文
Wireshark 实际抓包报文

当 TLV Type=127 时,Information String 中的格式可由其他组织进行扩展。


IEEE 802.3 TLV

IEEE 802.3 (OUI = 00:12:0F) 扩展了设备的 MAC/PHY 配置和状态信息,用于通知接收方其支持的 MAU 类型和当前使用的配置信息。

Wireshark 实际抓包报文
Wireshark 实际抓包报文

PNIO TLV

PNIO (OUI = 00:0E:CF) 通过扩展 LLDP 可以向接收方通知其延时测量值、端口状态、MRP 连接状态、设备 MAC 地址等信息。

Wireshark 实际抓包报文
Wireshark 实际抓包报文

End of LLDPDU TLV

在 LLDPDU 的最后都需要包含一个 End of LLDPDU TLV, 用于指示接收方

Wireshark 实际抓包报文
Wireshark 实际抓包报文

PROFINET 设备如何存储 LLDP 信息

支持 LLDP 的设备,会定期对外发送 LLDP 数据帧,也会实时更新其每个端口接收到的 LLDP 数据帧并进行解析。通过这种方式,LLDP 设备能够获悉其每个端口连接的邻居设备的详细信息,并会将这些信息保存到设备内部

PROFINET Conformance Class – A 等级的设备会将这些信息保存到 PDev 数据库中.

PROFINET Conformance Class – B 等级的设备也会向这些数据保存到 LLDP-MIB (Management Information Base) 数据库中。

PROFINET 网络调试和诊断工具,如西门子公司的 PRONETA 软件,可以通过扫描网络上所有设备,并读取设备上保存的 LLDP 信息,生成网络连接表,也可以通过可视化的方式生成网络拓扑图。

  • PDev 中保存的信息可以通过 PROFINET 非周期读取索引 PDPortDataReal
  • LLDP-MIB 中的信息可以通过标准的 SNMP 协议读取(需要设备是 PROFINET Conformance Class – B 等级)
  • 或者使用 PROFINET DCP 读取命令读取 StationNameAlias

示例

上图所示的连接通过读取网络上所有设备保存的 LLDP 信息,可以生成如下表所示的网络设备连接表,用于图形化的显示

💡 Tips

自 2022 年 9 月起,Ethernet/IP 设备如需一致性认证也需要支持 LLDP 协议


这就是本期文章的全部内容,希望能帮助您了解到更多 PROFINET 协议的知识。

作为一家深耕于工业网络的企业,HMS 也会努力为大家提供最新、最专业的工业网络技术知识。如果你喜欢本篇文章,欢迎持续关注我们,获取更多精彩内容。

如果对本文中的内容有任何疑问或建议,也欢迎在评论区留言,谢谢。

我们下期再见!

分类:

后端

标签:

后端

作者介绍

HMS工业网络
V1