CN103312580B - 一种用软件实现1:n vlan替换的方法 - Google Patents
一种用软件实现1:n vlan替换的方法 Download PDFInfo
- Publication number
- CN103312580B CN103312580B CN201310218473.4A CN201310218473A CN103312580B CN 103312580 B CN103312580 B CN 103312580B CN 201310218473 A CN201310218473 A CN 201310218473A CN 103312580 B CN103312580 B CN 103312580B
- Authority
- CN
- China
- Prior art keywords
- software
- mac
- vid
- vlan
- hardware
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开提供一种用软件实现1:N VLAN替换的方法。对于不支持1:N VLAN替换操作的芯片,可用该方法弥补其不足,使得入方向N:1替换的数据包回行方向能替换成原先的Tag。该方法包含如下步骤:1)用户将N:1 VLAN替换条目绑定到端口;2)软件将绑定条目信息记录到表1,同时更新替换后VID所对应的原始VID的数目值;3)软件接收MAC添加消息,设置ACL表项实现N:1及1:N VLAN替换;4)软件接收MAC删除消息,删除步骤(3)所述的ACL设置及软件表项。
Description
技术领域
本发明涉及数据通信技术,尤其涉及一种用软件实现1:N虚拟局域网(VLAN)替换的方法。
背景技术
VLAN Mapping也称为VLAN映射,其主要功能是将用户报文中的私网VLAN标签(Tag)替换为公网的VLAN Tag,使其按照公网的网络规划进行传输。在报文被发送到对端用户私网时,再按照同样的规则将VLAN Tag恢复为原有的用户私网VLAN Tag,使报文正确到达目的地。该功能通常采用芯片来实现,由芯片自动将用户报文VLAN Tag替换。然而,有些芯片由于功能的限制,仅支持N:1VLAN替换,却不支持反向替换。对于这种芯片,需要通过软件来实现,以弥补硬件功能不足的缺陷。
目前软件1:N VLAN替换的方法,通常采用所有包送CPU的方式实现。由CPU的收包处理函数判断是否需要替换,若需要则设置硬件,在进入转发表之前将包的原始VID改为新的VID,同时在回行方向转发表转发之后将新的VID改为原始VID,且该MAC的数据包不再送CPU。
但上述方法需要由CPU处理数据报文,会加重CPU的负荷。为了不干扰CPU的正常运行,必须对网络进行限速,但限速又会造成丢包。同时,对于无须替换的MAC表项,也需要设置硬件不再送CPU。这样将导致占用过多的硬件表项,不适合MAC较多的情况下的网络应用。
发明内容
有鉴于此,本发明的主要目的在于提供一种用软件实现1:N VLAN替换的方法,以弥补硬件芯片不支持1:N VLAN替换的不足,又不会导致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:N VLAN替换的方法,具有以下优点:
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)及map VID保存到软件表1,同时map VID计数表累加新增VLAN数目。Map VID计数值变化情况及处理如下:
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删除相关条目,同时map VID计数表减去删除的VLAN数,map VID计数表变化及处理如下:
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翻译条目的替换范围内,是则查找map VID计数表,若计数值大于1则写一条VFP表项,将源MAC为上述值,外层为VID的数据包的VID改为map VID;同时写一条IFP表项,将map VID对应VLAN中目的MAC为上述值,外层为map VID的数据包的map VID改为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:N VLAN替换。
这里,软件接收MAC添加消息,若VID值与绑定条目匹配则进行ACL设置,使得MAC+VID的数据流的外层Tag替换成新的VID进行转发;回行方向根据MAC+新的VID将数据包的外层Tag替换成原始VID,软件同时记录端口号、MAC、新旧VID到表2。
步骤54:软件接收MAC删除消息,删除步骤53所述的ACL设置及软件表项。软件接收MAC删除消息,以转发表项的端口号+VID为索引在表2中查找,若找到匹配项则删除相应的ACL表项,同时从表2中删除相应表项。
具体实施过程如下:当端口1发往上联口3的带VLAN 11Tag的数据包进入交换芯片时,转发表学到如下表项:
MAC | VID | port |
MAC1 | 11 | 1 |
硬件将该新增表项发送到软件模块。由于找不到出端口,数据包将不能从端口3发送,但软件模块通过查找软件表1,发现该VID在端口1所绑定的VLAN翻译条目的替换范围内(11-20),会写一条VFP表项,将源端口为端口1,源MAC为MAC1的外层VID从11改为30,同时写一条IFP表项,将VLAN 30中目的MAC为MAC1,外层VID为30的数据包外层VID改为11。当满足VFP上述表项替换条件的下一个数据包进入交换芯片时,首先进行VFP操作,将VID改为30,然后进行转发表学习,此时转发表表项变成如下形式:
MAC | VID | port |
MAC1 | 11 | 1 |
MAC1 | 30 | 1 |
硬件同样将该表项作为新增表项发送到软件模块。此时VID 30不在端口1的替换范围内,将不作操作。该数据包在VLAN 30中洪泛,从端口3发送出去。当端口3目的MAC为MAC1,VID为30的数据包进入交换芯片时,通过转发表查找,确定出端口为端口1,随后进行IFP操作,将VID改为11,然后从端口1发送出去。这样就实现了上联口回行方向的1:N替换操作。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。
Claims (3)
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替换成原始VID,同时软件表项记录上述设置;
D、软件接收MAC删除消息,删除步骤C所述的ACL设置及软件表项;
所述软件接收的MAC添加和MAC删除消息,由设备硬件发出;每当转发表增加一条表项,该硬件向所述软件发送一条MAC添加消息;每当转发表删除一条表项,该硬件向所述软件发送一条MAC删除消息。
2.根据权利要求1所述用软件实现1:N VLAN替换的方法,其特征在于,所述硬件向所述软件发送的MAC添加和MAC删除消息,其参数包括端口号、MAC地址和原始VID。
3.根据权利要求1所述用软件实现1:N VLAN替换的方法,其特征在于,所述转发表以MAC+VID作为索引。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310218473.4A CN103312580B (zh) | 2013-06-04 | 2013-06-04 | 一种用软件实现1:n vlan替换的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310218473.4A CN103312580B (zh) | 2013-06-04 | 2013-06-04 | 一种用软件实现1:n vlan替换的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103312580A CN103312580A (zh) | 2013-09-18 |
CN103312580B true CN103312580B (zh) | 2017-04-12 |
Family
ID=49137381
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310218473.4A Active CN103312580B (zh) | 2013-06-04 | 2013-06-04 | 一种用软件实现1:n vlan替换的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103312580B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104639663A (zh) * | 2015-03-17 | 2015-05-20 | 四川天邑康和通信股份有限公司 | 多台光猫同时自动升级软件的方法和系统 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100694296B1 (ko) * | 2005-11-08 | 2007-03-14 | 한국전자통신연구원 | 가상 인터페이스 기반의 2 계층 멀티캐스트 스위칭 및 3계층 멀티캐스트 라우팅 동시 제공 시스템 및 그 방법 |
CN101237378B (zh) * | 2008-03-11 | 2012-11-28 | 杭州华三通信技术有限公司 | 虚拟局域网的映射方法和设备 |
CN101668238B (zh) * | 2009-10-20 | 2013-04-17 | 上海市共进通信技术有限公司 | Epon中实现vlan n:1汇聚和1:n转换的方法、装置及光网络单元 |
CN102055669B (zh) * | 2010-12-20 | 2012-11-21 | 武汉烽火网络有限责任公司 | 10gpon系统中实现n:1 vlan映射的方法 |
US20120294192A1 (en) * | 2011-05-19 | 2012-11-22 | Hitachi, Ltd. | Method and apparatus of connectivity discovery between network switch and server based on vlan identifiers |
-
2013
- 2013-06-04 CN CN201310218473.4A patent/CN103312580B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN103312580A (zh) | 2013-09-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7957384B2 (en) | Multiple virtual local area network databases in a switch with a relational lookup engine | |
Afanasyev et al. | ndnSIM: NDN simulator for NS-3 | |
US9219698B2 (en) | Providing a layer-3 interface | |
CN105515992A (zh) | Vxlan网络中的流表项处理方法及装置 | |
EP1919127B1 (en) | A data packet transmission method and a lan switch device based on the vlan | |
WO2020073685A1 (zh) | 转发路径确定方法、装置、系统、计算机设备及存储介质 | |
CN101160832A (zh) | 一种桥接转发方法和装置 | |
US9794111B2 (en) | Communication system, virtual network management apparatus, virtual network management method and program | |
CN105634901B (zh) | 基于cas vxlan的mac地址信息同步方法及装置 | |
WO2014116610A1 (en) | Systems and methods for configuring a network switch appliance | |
JP2010087585A (ja) | 転送装置、転送方法、およびコンピュータプログラム | |
JP2006295937A (ja) | スイッチの入力ポートにおけるフレームフィルタリング | |
CN103152269B (zh) | 一种基于nat的报文转发方法和设备 | |
CN109729012A (zh) | 一种单播报文传输方法和装置 | |
CN105763437A (zh) | 报文转发的方法及网络设备 | |
EP2573988A1 (en) | Method, apparatus, and system for forwarding packet in multi-topology network | |
CN104486229B (zh) | 一种实现vpn网络报文转发的方法及设备 | |
CN104125128A (zh) | Linux软桥支持VLAN的方法 | |
CN106453091B (zh) | 路由器转发平面的等价路由管理方法和装置 | |
CN107104900A (zh) | 一种组播信息处理方法和装置 | |
CN102325077B (zh) | 分支机构间的通信方法及分支机构的出口路由器 | |
JP5526047B2 (ja) | パケット中継装置およびパケット中継装置における出力先決定方法 | |
CN100553222C (zh) | 一种保障报文硬件转发的方法及装置 | |
CN106470171B (zh) | 组播转发表项的下发方法及装置 | |
EP2323318B1 (en) | Method and device for providing service for the duplicate mac address users |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20190114 Address after: 430074 No. 6, High-tech Fourth Road, Donghu High-tech Development Zone, Wuhan City, Hubei Province Patentee after: Fenghuo Communication Science &. Technology Co., Ltd. Address before: 430074 3rd Floor, Optical Communication Building, No. 5 Dongxin Road, Donghu Development Zone, Wuhan City, Hubei Province Patentee before: Wuhan Fenghuo Network Co., Ltd. |
|
TR01 | Transfer of patent right |