一种用软件实现1:N VLAN替换的方法技术

技术编号:9173581 阅读:494 留言:0更新日期:2013-09-19 22:59
本发明专利技术公开提供一种用软件实现1:N?VLAN替换的方法。对于不支持1:N?VLAN替换操作的芯片,可用该方法弥补其不足,使得入方向N:1替换的数据包回行方向能替换成原先的Tag。该方法包含如下步骤:1)用户将N:1VLAN替换条目绑定到端口;2)软件将绑定条目信息记录到表1,同时更新替换后VID所对应的原始VID的数目值;3)软件接收MAC添加消息,设置ACL表项实现N:1及1:NVLAN替换;4)软件接收MAC删除消息,删除步骤(3)所述的ACL设置及软件表项。

【技术实现步骤摘要】
一种用软件实现1:NVLAN替换的方法
本专利技术涉及数据通信技术,尤其涉及一种用软件实现1:N虚拟局域网(VLAN)替换的方法。
技术介绍
VLANMapping也称为VLAN映射,其主要功能是将用户报文中的私网VLAN标签(Tag)替换为公网的VLANTag,使其按照公网的网络规划进行传输。在报文被发送到对端用户私网时,再按照同样的规则将VLANTag恢复为原有的用户私网VLANTag,使报文正确到达目的地。该功能通常采用芯片来实现,由芯片自动将用户报文VLANTag替换。然而,有些芯片由于功能的限制,仅支持N:1VLAN替换,却不支持反向替换。对于这种芯片,需要通过软件来实现,以弥补硬件功能不足的缺陷。目前软件1:NVLAN替换的方法,通常采用所有包送CPU的方式实现。由CPU的收包处理函数判断是否需要替换,若需要则设置硬件,在进入转发表之前将包的原始VID改为新的VID,同时在回行方向转发表转发之后将新的VID改为原始VID,且该MAC的数据包不再送CPU。但上述方法需要由CPU处理数据报文,会加重CPU的负荷。为了不干扰CPU的正常运行,必须对网络进行限速,但限速又会造成丢包。同时,对于无须替换的MAC表项,也需要设置硬件不再送CPU。这样将导致占用过多的硬件表项,不适合MAC较多的情况下的网络应用。
技术实现思路
有鉴于此,本专利技术的主要目的在于提供一种用软件实现1:NVLAN替换的方法,以弥补硬件芯片不支持1:NVLAN替换的不足,又不会导致CPU负荷的增加,从而实现在不改变硬件的条件下,提高设备适应网络的能力。为达到上述目的,本专利技术的技术方案是这样实现的:一种用软件实现1:N虚拟局域网(VLAN)替换的方法,该方法包括:A、将N:1VLAN替换条目绑定到端口;B、若绑定条目为N:1或1:1操作,则将绑定条目信息记录到第一表中,同时增加替换后虚拟局域网号VID的计数值;C、当软件接收媒体访问控制(MAC)添加消息,若VID值与绑定条目匹配则进行访问控制列表ACL设置,使得MAC+VID的数据流的外层标签Tag替换成新的VID进行转发;回行方向根据MAC+新VID将数据包的外层Tag替换成原始VID,同时软件表项记录上述设置;D、软件接收MAC删除消息,删除步骤C所述的ACL设置及软件表项。其中:所述软件接收的MAC添加和MAC删除消息,由设备硬件发出;每当转发表增加一条表项,该硬件向所述软件发送一条MAC添加消息;每当转发表删除一条表项,该硬件向所述软件发送一条MAC删除消息。所述硬件向所述软件发送的MAC添加和MAC删除消息,其参数包括端口号、MAC地址和原始VID。所述转发表以MAC+VID作为索引。本专利技术所提供的用软件实现1:NVLAN替换的方法,具有以下优点:1)减少了下发访问控制列表(ACL)的条数,节省了软件表的空间和硬件ACL表项数:需要翻译的包下两条ACL,分别到VFP和IFP表项,无需翻译的包不下发ACL。原先不仅需要翻译的包下两条ACL,无需翻译的包也要下一条ACL表明不再送CPU。2)无需CPU限速也无需户在每个端口单独使能/禁用(enable/disable)基于ACL的VLAN翻译,减轻了CPU的负担。3)使用方便。用户无需关心芯片是否支持1:N。附图说明图1为数据包在交换芯片中的流向示意图;图2为VLAN翻译条目绑定到端口的处理流程图;图3为VLAN翻译条目从端口解绑定的处理流程图;图4为网络拓扑示意图;图5为本专利技术的数据包转发过程示意图。具体实施方式下面结合附图及本专利技术的实施例对本专利技术的方法作进一步详细的说明。图1为数据包在交换芯片中的流向示意图。如图1所示,其中VFP、VLAN翻译、转发表及IFP均为所有端口共用,VFP表项操作与VLAN翻译操作均在转发表之前执行,可依次执行,该步操作完毕后,进行转发表学习,同时确定需要转发的端口,随后进行IFP表项操作。图2为VLAN翻译条目绑定到端口的处理流程图。如图2所示,当端口绑定VLAN替换条目时,若芯片支持1:N或不是入方向替换操作则直接调用硬件接口绑定,否则将端口号、起始和结束虚拟局域网号(VID)及mapVID保存到软件表1,同时mapVID计数表累加新增VLAN数目。MapVID计数值变化情况及处理如下:1)0->1,表明为1:1替换操作,需要下硬件表项(即下载到硬件的表项)由芯片VLAN翻译实现,软件同时记录计数值1;2)0->n,软件记录计数值n;3)1->1,需要下硬件表项(即下载到硬件的表项)由芯片VLAN翻译实现;4)1->n,表明由1:1变成了1:N替换操作,删除硬件表项,软件记录计数值n;5)m->n,软件记录计数值n。不同端口原始VID相同只计算一次;多个端口下1:1VLAN替换,结果为同一个VID的视为N:1。图3为VLAN翻译条目从端口解绑定的处理流程图。如图3所示,用户将VLAN替换条目从端口解绑定时,若芯片支持1:N或不是入方向替换操作,则调用硬件接口解绑定,否则从软件表1删除相关条目,同时mapVID计数表减去删除的VLAN数,mapVID计数表变化及处理如下:1)1->0,删除硬件VLAN翻译表项;2)1->1,删除硬件VLAN翻译表项;3)n->0,删除所有相关VFP,IFP表项;4)n->1,删除所有相关VFP,IFP表项,下VLAN翻译表项(1:1用芯片实现);5)n->m,删除减掉的VID对应的VFP,IFP表项。图4为网络拓扑示意图。如图4所示,搭建拓扑并将VLAN替换条目绑定在端口1、端口2的入方向,当收到转发表表项添加消息时,模块接收到端口号,数据包原始VID和MAC值后,将根据该VID查软件表1,判断是否在该端口绑定的VLAN翻译条目的替换范围内,是则查找mapVID计数表,若计数值大于1则写一条VFP表项,将源MAC为上述值,外层为VID的数据包的VID改为mapVID;同时写一条IFP表项,将mapVID对应VLAN中目的MAC为上述值,外层为mapVID的数据包的mapVID改为VID,然后将该表项记录到软件表2。当收到转发表表项删除消息时,模块根据MAC查询软件表2,删除VFP表和IFP表中相应条目。图5为本专利技术的数据包转发过程示意图。如图5所示,所述数据包转发过程包括如下步骤:步骤51:用户将N:1VLAN替换条目绑定到端口。步骤52:软件将绑定条目信息记录到表1,同时将替换后虚拟局域网号VID的计数值增加N。这里,软件判断绑定条目是否为N:1或1:1替换操作,若是则记录端口号、原始VID、替换后的VID到表1,同时将替换后虚拟局域网号VID的计数值增加N。步骤53:软件接收MAC添加消息,设置ACL表项实现N:1及1:NVLAN替换。这里,软件接收MAC添加消息,若VID值与绑定条目匹配则进行ACL设置,使得MAC+VID的数据流的外层Tag替换成新的VID进行转发;回行方向根据MAC+新的VID将数据包的外层Tag替换成原始VID,软件同时记录端口号、MAC、新旧VID到表2。步骤54:软件接收MAC删除消息,删除步骤53所述的ACL设置及软件表项。软件接收MAC删除消息,以转发表项的本文档来自技高网...
一种<a href="http://www.xjishu.com/zhuanli/62/201310218473.html" title="一种用软件实现1:N VLAN替换的方法原文来自X技术">用软件实现1:N VLAN替换的方法</a>

【技术保护点】
一种用软件实现1:N虚拟局域网VLAN替换的方法,其特征在于,该方法包括:A、将N:1?VLAN替换条目绑定到端口;B、若绑定条目为N:1或1:1操作,则将绑定条目信息记录到第一表中,同时增加替换后虚拟局域网号VID的计数值;C、当软件接收媒体访问控制MAC添加消息,若VID值与绑定条目匹配则进行访问控制列表ACL设置,使得MAC+VID的数据流的外层标签Tag替换成新的VID进行转发;回行方向根据MAC+新VID将数据包的外层Tag替换成原始VID,同时软件表项记录上述设置;D、软件接收MAC删除消息,删除步骤C所述的ACL设置及软件表项。

【技术特征摘要】
1.一种用软件实现1:N虚拟局域网VLAN替换的方法,其特征在于,该方法包括:A、将N:1VLAN替换条目绑定到端口;B、若绑定条目为N’:1或1:1操作,则将绑定条目信息记录到第一表中,同时将替换后虚拟局域网号VID的计数值增加N,其中N’>1,1:1替换操作时下载到硬件的表项,由芯片VLAN翻译实现,1:N’替换操作时删除硬件表项;C、当软件接收媒体访问控制MAC添加消息,若VID值与绑定条目匹配则进行访问控制列表ACL设置,使得MAC+VID的数据流的外层标签Tag替换成新的VID进行转发;回行方向根据MAC+新VID将数据包的外层Tag替换...

【专利技术属性】
技术研发人员:谢文娟李松华程友清王一鸣
申请(专利权)人:武汉烽火网络有限责任公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1