- 收藏
- 加入书签
基于LLDP、OSPF协议的网元随遇接入实现
摘要:传统网元设备在接入网络时,除了默认的基础的预置配置(如网元IP地址,端口模式,主要协议配置等出厂配置)外,还需要根据互联网元设备的端口IP地址,配置本端端口同网段IP地址,手动将IP地址所在网段配置到OSPF(OSPF: Open Shortest Path First,开放式最短路径优先)协议中,并将端口IP地址、OSPF路由配置进行保存,从而实现网元设备的接入。该方法不能实现网元设备的随遇接入,不适合大规模网元组网部署、具备快速网络开通要求的网络环境。本文介绍了一种基于LLDP协议(LLDP:Link Layer Discovery Protocol,链路层发现协议)选举产生网络中的MasterInterface,由SlaveInterface节点发起IP地址请求,MasterInterface节点统一给SlaveInterface节点分配唯一的IP地址,并自动在OSPF域中宣告路由,从而实现网元设备的随遇接入的实现方法。
关键词: LLDP协议,OSPF路由,快速开通,随遇接入
引言
传统网元设备接入网络时,需要手动添加互联端口的IP地址、配置OSPF动态路由配置,并把相应的配置永久性的保存在设备配置中,从而实现网元设备再次上电时,网络自动互联互通。该接入方法不能适应大规模网元组网的特性:设备多、网元设备拓扑可变化、新网元随遇接入、任意替换在网设备等特性。大规模网络组网初期需求人工规划网络拓扑,规划相应互联端口IP地址,并花费大量时间生成设备初始化配置。且当网元设备发生变化,或者网元设备互联端口发生变化时,不能自动更新端口IP地址、OSPF路由配置,从而导致网络拓扑发生变化后,路由不能自愈,而需要人工干涉,根据拓扑变化,重新配置端口IP地址、更新OSPF路由配置并重新永久性保存。针对传统网元设备的不足,本文设计了一种自动IP地址分配、自动宣告OSPF路由的方法,基于该方法,可大大降低大规模网络开通时间。同时当网络拓扑发生变化时,互联端口之间可自行协商IP地址,并自动更新OSPF路由,从而实现不需要人工干预,即可重新打通网络路由,从而大大提高了网络的自愈能力。
一、实现方案
本方法基于LLDP二层链路发现协议实现互联设备端口间的MasterInterface选举,未被选举为MasterInterface的网元设备端口均为SlaveInterface。MasterInterface节点从地址池取出合法IP地址,并通过LLDP扩展报文发送IP地址给邻居的SlaveInterface节点,SlaveInterface节点收到扩展LLDP报文后,从邻居列表中取出与自身MAC地址匹配的节点信息,获取其中的IP地址,并把IP地址配置到本地端口上,从而实现IP地址的自动配置。完成端口IP地址配置后,通知OSPF模块,宣告端口IP地址所在网段到OSPF域中,将该端口网段在OSPF域中扩散,从而实现网元设备之间的路由自动打通。
二、软件设计
(一)端口IP地址自动分配
1、选举MasterInterface
(1)二层链路发现协议扩展
标准以太网报文格式封装的LLDP帧如下:
相关各字段说明如下:
DA:目的MAC地址,LLDP报文的目的地址固定为组播地址0180.C200.000E。
SA:源MAC地址,为设备端口MAC地址或设备MAC地址(如果端口有地址则用端口MAC地址,否则用设备MAC地址)。
EthType:协议类型,LLDP的协议号为0x88CC。
DATA:载荷部分为各个TLVs,本文描述的方法主要依靠增加扩展的TLVs实现选举、IP地址分配。
FCS:帧校验。
LLDP报文的数据部分采用TLVs格式封装,TLV即Type+Length+Value。其中type表示TLV类型,length是以字节为单位的TLV长度,value是该TLV的值。其中Chassis ID、Port ID、Time To Live以及End of LLDPDU是强制必须包含的部分。
为了满足本文设计,利用LLDP报文中的保留字段进行扩展,增加MasterInterface、选举属性、邻居三种TLVs,个字段作用说明如下:
MasterInterface TLV:内容为MasterInterface节点的MAC地址,当子网内的各端口完成选举后,该TLV填充选举的MasterInterface节点的MAC地址。该TLV为可选TLV,即互联网元未完成选举时,该TLV不填。
选举属性 TLV:该TLV包含本端口IP地址、端口类型、端口优先级等选举属性。端口优先级的范围为1~100,值越大,优先级越高。通过配置端口的优先级,可人为地指定端口为MasterInterface。该TLV为MasterInterface选举所必须,因此该TLV为必须TLV。
邻居TLV:该TLV包含本子网内所有邻居节点信息,包括所有邻居MAC地址、端口IP地址等。该TLV为可选TLV,即互联网元未完成LLDP交互时,该TLV不填。
(2)选举流程
网元设备完成上电启动加载后,开始交互LLDP报文,未完成选举时LLDP报文不包含MasterInterface TLV和邻居TLV,只包含选举属性 TLV。
网元设备首次接收邻居网元LLDP报文后,记录邻居网元MAC地址、邻居端口IP地址以及邻居端口优先级,设置邻居节点状态为初始化状态。网元设备接收邻居网元LLDP报文,发现邻居LLDP报文中的邻居TLV包含本端MAC地址,则将邻居状态设置为连接建立,并进入选举流程。
互联的网元设备独立完成选举,若互联的网元设备端口优先级不相同,则优先级高的端口直接成为MasterInterface,进入IP地址分配流程。若互联的网元设备端口优先级相同,则通过比较本地MAC地址与邻居MAC地址实现MasterInterface选举,MAC地址大的作为MasterInterface,其余接口均为SlaveInterface。
完成MasterInterface选举后,若本端口被选举为MasterInterface,进入IP地址分配流程,更新本端邻居链表、选举属性TLV以及本地端口角色。发送LLDP报文内容时,添加MasterInterface TLV和邻居TLV。若本端口为SlaveInterface,则等待MasterInterface节点分配IP地址,发送的LLDP报文,添加本地选举产生的MasterInterface TLV和邻居TLV。
完成选举后,若MasterInterface接收的邻居LLDP报文中的MasterInterface与本端的一致,且邻居状态为连接建立,则进入IP地址分配流程,否则删除本地MasterInterface信息,重新进行MasterInterface选举。
2、IP地址分配
(1)IP地址表示方式
在大规模网元设备组网环境中,由于所有网元设备端口地址均通过OSPF扩散,如果网络中出现某两个网元端口IP地址相同,则会造成IP地址冲突,导致OSPF路由震荡,影响网络的稳定性。网络中的网元设备有一个唯一的IP地址表示该网元IP地址,该IP地址也会在OSPF域中进行扩散。为确保全网IP地址的唯一性,本文使用一种IP生成规则,IP地址表示形式如下所示:
网元IP地址:网元IP地址转化成16进制后的高16bit,假设网元IP地址为32.1.0.1,则自动分配的端口IP地址可确定为32.1.x.x。
端口序号:由于网元设备的端口序号范围一般是1~128,如果互联端口为10,则自动分配的端口IP地址可确定为32.1.10.x。考虑到软件的兼容性可通过调整端口序号与主机号占用bit位数,扩展端口序号和主机号数量。
主机号:主机号由8个bit表示,且255为广播地址,0为无效地址,因此正常可用的主机号为1~254。考虑到软件的兼容性可通过调整端口序号与主机号占用bit位数,扩展端口序号和主机号数量。在本文叙述的算法中MasterInterface固定配置的主机号为1,SlaveInterface则根据所在邻居链表中的位置从2开始依次分配,假如MasterInterface邻居链表中有2个邻居,他们在邻居链表中的位置分别是第1个和第2个,则他们的主机号为2,3。
如下图2所示,网络中有3个网元,其网元IP地址分别是23.1.0.1、23.2.0.1、23.3.0.1,其三台网元设备之间互联口分别是PORT10、PORT11、PORT12,则最终三台设备互联端口上的IP地址分别为:23.1.10.1/24、23.1.10.2/24、23.1.10.3/24.
(2)IP地址分配流程
MasterInterface节点完成选举后,如果接收到邻居LLDP报文后,检测到邻居携带的MasterInterface节点 TLV为自己的MAC地址,则进入IP地址分配流程。MasterInterface节点首先从IP地址池中取一个IP地址给本端口,已使用的IP地址不能再从地址池中取得。给本端口分配IP地址后,遍历邻居链表,依次给各邻居分配IP地址。
SlaveInterface节点接收到MasterInterface节点发送的LLDP报文后,检查LLDP报文中携带的MasterInterface节点 TLV中的MAC地址和本地MasterInterface选举结果一致,则从邻居链表中提取出本端信息,获取信息中的IP地址,并将IP地址配置到端口上,完成IP地址配置流程。
(二)OSPF路由宣告
新入网网元设备互联端口IP地址完成自动分配后,还需要在OSPF域中进行宣告,才能把端口IP地址网段扩散到网络中,使得网络中的其他设备可以路由到新入网设备。网元设备端口IP地址完成配置后,通知OSPF模块配置IP地址所在网络号到OSPF域中,由OSPF将该网段扩散到全网。本文主要叙述单个域的OSPF路由宣告,不涉及多域OSPF路由,因此OSPF宣告路由时,默认均为域0路由。
网元互联端口需要配置相同的hello报文发包间隔、老化时间、以及端口网络模式,在本文设计的软件中所有网元互联端口hello报文发包间隔固定为10s,老化时间固定为40s,由于网络组网形式可能存在一对一或者一对多的互联方式,因此端口网络模式固定为broadcast模式。
网元设备端口IP地址发送变化时,如果新IP地址网段相同,则无需处理OSPF路由配置。如果新IP地址网段与原端口IP地址网段不同,则需要将原来宣告的网段从OSPF域中删除,并添加新的网段到OSPF域中。
三、功能验证
(一)端口优先级相同的IP地址分配
预置条件:测试网元设备拓扑如下图3所示,网元A和网元B通过PORT 3互联,两设备出厂配置均配置了网元IP地址,且均使能了LLDP。网元A的PORT 3和网元B的PORT 3端口优先级均为10,端口上均未配置IP地址。
测试结果:由于网元A的PORT 3和网元B的PORT 3的端口优先级均为10,因此通过比较网元B和网元A的MAC地址进行MasterInterface选举。由图可见网元B的MAC地址比网元A的大,因此网元B的PORT 3被选举为MasterInterface,网元A的PORT 3则为SlaveInterface。完成选举后两网元端口上的IP地址如下图所示,且在网元A上可直接ping通网元B的IP地址。
(二)端口优先级不同的IP地址分配
预置条件:测试网元设备拓扑如下图4所示,网元A和网元B通过PORT 3互联,两设备出厂配置均配置了网元IP地址,且均使能了LLDP。网元A的PORT 3的端口优先级为50,网元B的PORT 3端口优先级为10,端口上均未配置IP地址。
测试结果:网元A的MAC地址小于网元B的MAC地址,但网元A的PORT 3的端口优先级为50,网元B的PORT 3的端口优先级为10,因此不需要比较端口MAC地址即可指定网元A的PORT 3为MasterInterface,网元B的PORT 3则为SlaveInterface。两网元端口上的IP地址如下图所示,且在网元A上可直接ping通网元B的IP地址。
(三)新网元随遇接入
预置条件:测试网元设备拓扑如下图5所示,网元A和网元B通过PORT 3互联,两设备出厂配置均配置了网元IP地址,且均使能了LLDP。网元A的PORT 3和网元B的PORT 3端口优先级均为10,端口上自动完成IP地址配置如下图5所示。网元C以进行了出厂配置其网元IP地址为23.3.0.1,MAC地址为MAC:0001.0002.0012,使能了LLDP协议,网元C的PORT2,3端口优先级均为10,两端口均未配置IP地址。
操作步骤:网元C的PORT 2通过有线连接网元B的PORT 2,网元C的PORT 3通过有线连接网元A的PORT 2。
测试结果:网元A的PORT 2与网元C的PORT 3端口优先级均为10,且网元C的MAC地址比网元A的大,因此网元C的PORT3作为MasterInterface分配IP地址,网元A的PORT2端口IP地址为23.3.3.2/24,网元C的PORT 3端口IP地址为23.3.3.1/24。网元B的PORT 2与网元C的PORT 2端口优先级均为10,且网元C的MAC地址比网元B的大,因此网元C的PORT 2作为MasterInterface分配IP地址,网元B的PORT 2端口IP地址为23.3.2.2/24,网元C的PORT 2端口IP地址为23.3.2.1/24,且三个网元设备两两之间均能ping通。
四、结束语
本文针对传统规模组网场景下,网络开通耗费大量人力进行网络拓扑规划、端口IP地址规划,网络拓扑发生变化时,不能自动更新各端口IP地址、自动更新OSPF路由宣告配置等缺点,设计实现了一种基于LLDP自动IP地址分配,自动在OSPF域中宣告相应IP地址网段,从而实现不需要人工干预情况下的随遇接入。本实现只需出厂固化网元IP地址、使能LLDP协议,不需要预先规划全网端口IP地址,且在网络拓扑发生变化时,能自动分配新的IP地址,更新OSPF路由信息,从而提升了网络的自愈能力。
参考文献:
陈国良,郑松奕.IP地址分配和用户权限控制的部署与优化[J].数字技术与应用.2023,第010期.
戴翰,黄俊文,芩加文.5G终端用户面IP地址分配技术[J].广播电视网络.2021,第010期.
王一蓉,周颖,王艳茹.电力无线虚拟专网组网架构及IP地址分配研究[J].电力信息与通信技术.2014,第006期.
作者简介:黄柏华,工程师,现就职于中国电子科技集团公司第三十四研究所,主要研究方向为光传输技术,OTN设备研发和网络协议开发。






京公网安备 11011302003690号