前言
对工业异构网络地址的统一分配管理是基于当前工业网络中的两个问题展开的研究。第一,工业网络中存在大量的异构网元设备,例如基于TCP/IP协议的支持IP地址的设备(例如服务器、交换机等),以及不支持IP地址的工业设备(例如工业无线传感器等),二者无法直接利用IP地址进行通信,因此设计一种统一的通信协议是十分必要的;第二,当前的DHCP动态地址分配方式将MAC地址与IP地址进行了绑定,如果网络中的某一设备发生故障需要替换,那么替换之后的新设备由于MAC地址不一样,DHCP服务器分配的IP地址也会不同,网络通信将会被中断,不便于维护,因此设计一种使MAC与IP解绑的方法是有意义的。
工业异构网络地址统一分配管理机制设计
为工业异构网络设备统一分配IPv6地址的方法如下。
为工业IP设备分配地址
为工业IP设备分配地址的流程如下:
1). 首先由工业IP设备向地址分配服务器发送地址请求消息,消息中应携带该设备的名称;
在该步骤中,设备名称即设备的业务标识,是由工业设备的特征信息确定的标准化表示,具体来说是设备的类型(如机械臂、PLC、机床等)以及设备的位置(即设备所在车间和生产线信息,以及生产线上设备的序列号信息)。设备名称的具体编码规则可以由工厂个性化定制,这里给出一个具体示例:设备名称由九位编码组成,前两位代表车间类型,第三位和第四位代表生产线类型,第五位到第七位代表设备类型,最后两位代表该设备在生产线上的序列号。例如,根据某汽车厂焊装车间主焊线上2号位置的机械臂,确定的设备名称编码为”HZZHJXB02”,如下图所示。
2). 地址分配服务器根据地址请求消息中携带的设备名称选取一个IPv6地址,然后将所选地址封装在地址应答消息中并反馈至工业IP设备;
在该步骤中,需要利用到服务器中维护的设备地址绑定表、子网信息表、IPv6地址池表,其中,设备地址绑定表记录了设备名称与IPv6地址的对应关系,如下所示:
设备名称 | IPv6地址 |
---|---|
HZZHJXB01 | 2001:db8:1:1::1/64 |
HZZHJXB02 | 2001:db8:1:1::2/64 |
子网信息表记录了子网ID、子网前缀、车间类型之间的映射关系,如下所示:
子网ID | 子网前缀 | 车间类型 |
---|---|---|
1 | 2001:db8:1:1::/64 | HZ |
2 | 2001:db8:1:2::/64 | TZ |
IPv6地址池表记录了子网ID、起始地址、结束地址之间的关系,如下所示:
起始地址 | 结束地址 | 子网ID |
---|---|---|
2001:db8:1:1::1 | 2001:db8:1:1::100 | 1 |
2001:db8:1:2::1 | 2001:db8:1:2::100 | 2 |
服务器根据设备名称,首先查询其维护的地址绑定表,如果地址绑定表中存在该设备名称,那么之间将与该设备名称对应的地址分配给该设备;如果没有该设备名称,需要进一步查询子网信息表,根据车间类型找到对应的子网ID,再从IPv6地址池表中找到与该子网ID对应的IPv6地址范围,从该范围中选取第一个可用的地址分配给该设备,同时服务器将该设备名称和地址的映射关系记录到地址绑定表中。
3). 工业IP设备将地址应答消息中的IPv6地址配置在相应网卡上。
工业设备除了请求获取IPv6地址外,还可以在必要时(例如,该设备以后不再使用)告知服务器释放IPv6地址,解除工业设备的IPv6地址绑定信息。工业设备的地址释放过程为:
1). 工业IP设备向地址分配服务器发送地址释放消息,消息中携带工业设备的设备名称;
2). 地址分配服务器根据地址释放消息中携带的设备名称字段查询设备地址绑定表,将对应的IPv6地址添加进未分配的IPv6地址池中,并删除相应的IPv6地址绑定记录,最后向工业IP设备反馈应答消息。
以下是为工业IP设备分配地址过程的两个示例:
示例1:
示例2:
为工业非IP设备分配地址
由于非IP设备不支持IP协议,因此不能直接与地址服务器交互IP报文以获取IPv6地址,因此非IP设备的IPv6地址分配过程主要由网关完成,具体包括:
1). 非IP设备也预先配置了标识其业务特征信息的设备名称,当非IP设备入网时,需要向地址转换网关注册其设备名称和其他设备信息,然后地址转换网关将该非IP设备的设备名称和设备ID记录在设备注册表中,如下表所示:
设备名称 | 设备ID | IPv6地址状态 |
---|---|---|
CYZDWDJ01 | 0x0001 | 未分配 |
CYZDYLJ02 | 0x0002 | 未分配 |
2). 网关扫描设备注册表,根据未分配地址的设备名称,构造请求报文,报文中携带一个需要请求分配IPv6地址的设备名称列表;
3). 地址分配服务器解析地址请求报文中携带的设备名称列表,根据列表中的非IP设备的设备名称,通过查询设备地址绑定表,或子网信息表和IPv6地址池表,为其一一选取IPv6地址,并将IPv6地址与设备名称对应封装在地址应答报文中,反馈至网关,同时将设备名称和地址的映射填写到设备地址绑定表中;
4). 网关解析地址应答报文,根据其中携带的IPv6地址与设备名称列表,一一在设备注册表中查找设备名称所对应的设备ID,然后将对应同一设备名称的IPv6地址和设备ID对应记录在地址映射表中,如下所示,完成非IP设备的IPv6地址分配。网关将设备注册表中已获取IPv6地址的非IP设备标记为已分配状态,当新的非IP设备入网时,网关只需为新加入设备构造地址请求报文即可。
设备名称 | IPv6地址 |
---|---|
0x0001 | 2001::1/64 |
0x0002 | 2001::2/64 |
利用该方法,非IP设备在内部网络通信时直接使用设备ID,只有在与外界IP设备通信时通过地址转换网关将设备ID映射为IPv6地址,节省了非IP设备在内部维护128bit的长地址带来的能量开销。此外,当非IP设备由于故障被替换或其他原因导致的设备ID改变,在向网关注册后,由网关根据该非IP设备的设备名称更新设备注册表中的设备ID,同时更新地址映射表中的设备ID,而无需再为该非IP设备请求IPv6地址,提高了IPv6地址的利用率并且节省了重新分配IPv6地址的时间成本。
跨子网服务
为了使工业设备能够主动发现地址分配服务器,而无需为工业设备手动配置服务器的IP地址,与DHCP相同,客户端(工业IP设备或网关)使用链路本地范围的组播地址寻找服务器。若客户端所在链路上不存在服务器,则与客户端在同一链路上的Relay将客户端发送的报文封装在中继报文中,转发至服务器的单播地址或站点本地范围的组播地址,实现不同子网内工业设备IPv6地址的自动分配。跨网段的报文传输过程如下图所示,其中Relay1和Relay2代表参与地址分配过程的两个中继代理,具体步骤包括:
1). Relay1接收到Client向Server发送的地址请求报文后,将其封装在中继报文中进行转发;
2). Relay2接收到Relay1向Server发送的中继报文后,继续将其封装在自身构造的中继报文中进行转发;
3). Server收到Relay2发送的中继报文后进行拆包解析,根据地址请求报文中携带的设备名称字段进行相应操作后构造地址应答报文,并将其封装在中继应答报文中进行反馈;
4). Relay1和Relay2收到中继应答报文后提取其中封装的报文继续进行转发,最终将地址应答报文发送到Client。