CN105391655B - 一种linux平台下配置节点为二层交换设备的方法 - Google Patents

一种linux平台下配置节点为二层交换设备的方法 Download PDF

Info

Publication number
CN105391655B
CN105391655B CN201510656621.XA CN201510656621A CN105391655B CN 105391655 B CN105391655 B CN 105391655B CN 201510656621 A CN201510656621 A CN 201510656621A CN 105391655 B CN105391655 B CN 105391655B
Authority
CN
China
Prior art keywords
node
bridge
port
configuration
network
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
Application number
CN201510656621.XA
Other languages
English (en)
Other versions
CN105391655A (zh
Inventor
张贺
刘智刚
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Inspur Electronic Information Industry Co Ltd
Original Assignee
Inspur Electronic Information Industry Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Inspur Electronic Information Industry Co Ltd filed Critical Inspur Electronic Information Industry Co Ltd
Priority to CN201510656621.XA priority Critical patent/CN105391655B/zh
Publication of CN105391655A publication Critical patent/CN105391655A/zh
Application granted granted Critical
Publication of CN105391655B publication Critical patent/CN105391655B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/35Switches specially adapted for specific applications
    • H04L49/354Switches specially adapted for specific applications for supporting virtual local area networks [VLAN]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4604LAN interconnection over a backbone network, e.g. Internet, Frame Relay
    • H04L12/462LAN interconnection over a bridge based backbone
    • H04L12/4625Single bridge functionality, e.g. connection of two networks over a single bridge
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2101/00Indexing scheme associated with group H04L61/00
    • H04L2101/60Types of network addresses
    • H04L2101/618Details of network addresses
    • H04L2101/622Layer-2 addresses, e.g. medium access control [MAC] addresses

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Small-Scale Networks (AREA)

Abstract

本发明公开了一种LINUX平台下配置节点为二层交换设备的方法,其实现过程为:首先将节点搭载的所有网络端口绑定在虚拟的网桥上;节点接收数据包后并通过网桥查找其对应的端口,从而使节点对于全网的MAC地址信息都可以学习到,并建立和维护它自己的地址表;通过自动化脚本,自动检索节点搭载的所有网络端口名称,然后将启用网桥配置的过程以及取消网桥配置的过程分别定义成新的自定义命令,实现二层交换设备的一键配置或取消。该一种LINUX平台下配置节点为二层交换设备的方法与现有技术相比,可以节省实验室中的交换机资源,在交换机资源有限的情况下,减少更换交换机网络的频率,避免对其他人员的测试工作造成影响,整体提高测试工作的效率。

Description

一种LINUX平台下配置节点为二层交换设备的方法
技术领域
本发明涉及计算机技术领域,具体地说是一种实用性强、LINUX平台下配置节点为二层交换设备的方法。
背景技术
二层交换机工作于OSI模型的第2层(数据链路层),故而称为二层交换机。二层交换技术是发展比较成熟,二层交换机属数据链路层设备,可以识别数据包中的MAC地址信息,根据MAC地址进行转发,并将这些MAC地址与对应的端口记录在自己内部的一个地址表中。
服务器研发测试中,为方便对多个节点的管理,经常需要二层交换设备扩展网口数量。对于仅搭载万兆网卡的节点,需要使用价格昂贵的万兆交换机,市面上的万兆交换机设计时主要考虑实现大量节点的二层交换,而在单节点的研发测试中需要实现二层交换的节点数量较少,在这种应用背景下使用万兆交换机无疑是对价格昂贵的万兆交换机资源的浪费。相比于其他应用背景,实验室节点资源更为丰富,所以考虑在Linux系统下将多网口节点配置为二层交换设备,实现交换机功能,本发明提供一种LINUX平台下配置节点为二层交换设备的方法。
发明内容
本发明的技术任务是针对以上不足之处,提供一种实用性强、LINUX平台下配置节点为二层交换设备的方法。
一种LINUX平台下配置节点为二层交换设备的方法,其具体实现过程为:
首先将节点搭载的所有网络端口绑定在虚拟的网桥上;
节点接收数据包后并通过网桥查找其对应的端口,从而使节点对于全网的MAC地址信息都可以学习到,并建立和维护它自己的地址表;
通过自动化脚本,自动检索节点搭载的所有网络端口名称,然后将启用网桥配置的过程以及取消网桥配置的过程分别定义成新的自定义命令,实现二层交换设备的一键配置或取消。
所述节点接收数据包并查找其对应的端口过程为:
节点从其中一个端口收到一个数据包,先读取包头中的源MAC地址,这样节点就知道源MAC地址的机器是连在哪个端口上的;
再去读取包头中的目的MAC地址,并在地址表中查找相应的端口;
当表中有与这目的MAC地址对应的端口时,则把数据包直接复制到这端口上;
当表中找不到相应的端口则把数据包广播到所有端口上,且目的主机对源主机回应时,该节点学习到目的MAC地址与哪个端口对应,在下次传送数据时无需对所有端口进行广播了。
所述节点配置前包括测试平台搭建的过程,该过程包括准备测试环境、完成操作系统的安装配置的过程。
所述测试环境的准备过程包括操作系统的选择、磁盘分区及软件包的选择、BIOS中设置项修改确认。
所述操作系统的安装配置过程为:
启用配置过程;
取消bashrc原有的自定义配置,关键词为BRIDGE;
检索节点搭载的网络端口名称;
定义命令列别名BREN,配置启用后,使用BREN命令一键配置节点为二层交换设备;
定向入bashrc文件中的内容结尾加入BRIDGE 标志,方便awk工具定位自定义内容,取消配置;
定义命令列别名BRDIS,使用BRDIS命令取消节点的二层交换功能,使其恢复为一台普通的节点;
启动取消配置过程;
取消bashrc原有的自定义配置,关键词为BRIDGE。
所述命令列BREN中完成的操作包括:1)建立网桥;2)将所有检索到的网络端口加入网桥;3)关闭stp服务;4)释放掉所有网络端口原有IP;5)启用网桥;
所述命令列BRDIS中完成的操作包括:1)将所有端口从虚拟网桥中移除;2)关闭虚拟网桥;3)关闭NetworkManager服务;4)重启网络服务。
本发明的一种LINUX平台下配置节点为二层交换设备的方法,具有以下优点:
本发明的一种LINUX平台下配置节点为二层交换设备的方法,配置过程友好简单,运行脚本后只需进行一步交互即可完成配置的生效或取消;使用过程简单,功能的开启与关闭分别只需要执行一条命令即可实现;兼容性,自动检索端口名称,兼容不同系统对端口的命名方式;节省实验室中的交换机资源,在交换机资源有限的情况下,减少更换交换机网络的频率,避免对其他人员的测试工作造成影响,整体提高测试工作的效率,实用性强,易于推广。
附图说明
附图1为运行脚本Enble设置示意图。
附图2为启用自定义网桥示意图。
具体实施方式
下面结合附图和具体实施例对本发明作进一步说明。
本发明提供一种LINUX平台下配置节点为二层交换设备的方法,其具体实现过程为:
使用bridge-utils网桥配置工具,将节点搭载的所有网络端口绑定在虚拟出的网桥上。这样节点就可以完成以下过程循环:
从某个端口收到一个数据包,它先读取包头中的源MAC地址,这样它就知道源MAC地址的机器是连在哪个端口上的;
再去读取包头中的目的MAC地址,并在地址表中查找相应的端口;
如表中有与这目的MAC地址对应的端口,把数据包直接复制到这端口上;
如表中找不到相应的端口则把数据包广播到所有端口上,当目的主机对源主机回应时,又可以学习到目的MAC地址与哪个端口对应,在下次传送数据时就不再需要对所有端口进行广播了。
不断的循环这个过程,节点对于全网的MAC地址信息都可以学习到。如同二层交换机的工作流程,建立和维护它自己的地址表。
通过自动化脚本,自动检索节点搭载的所有网络端口名称,然后将启用网桥配置的过程以及取消网桥配置的过程分别定义成新的自定义命令,实现二层交换设备的一键配置或取消。
实例:
本发明中需要使用以下工具。
brctl:Linux系统中brctl工具用来管理以太网桥,在内核中建立,维护,检查网络配置。可以用来连接多个不同网络,不同网络间可以像一个网路一样进行通讯。网桥工作在数据链路层,根据MAC地址在两个LAN间转发数据帧,可以看作一个“底层路由器”。
alias:用户可利用alias自定义命令或一系列命令的别名。alias仅作用于该次登陆的作业。
/etc/bashrc:以RHEL6.2为例,用户每次登录系统.bash_profile脚本会调用bashrc脚本,所以为实现每次登录时自定义命令列的别名都自动设置好,可以在bashrc中加入alias设置。
一、搭建测试平台,以RHEL 6.2为例;
二、准备测试环境:
包括操作系统OS的选择、磁盘分区及软件包的选择;
包括BIOS中设置项修改确认。
三、系统安装配置。
RHEL 6.2采取完全安装,系统自带bridge-utils工具。
部分脚本内容如下(针对需要实现二层交换功能的节点):
#运行配置脚本后提示输入,以启用[E]或取消[D]配置,不区分大小写:
echo -ne "[E]nable Or [D]isable configuration: "
read CHECK。
#启用配置则:
if [ "$CHECK" == "E" ] || [ "$CHECK" == "e" ]; then
#取消bashrc原有的自定义配置,关键词为BRIDGE:
sed -i '/BRIDGE/d' /etc/bashrc
#检索节点搭载的网络端口名称,当前脚可检索不多于4个网口的节点,多于4个网口须对脚本稍作更改,此处为兼容不同操作系统对网络设备的命名差异:
nic0=`cat /etc/sysconfig/network-scripts/ifcfg-eth0 |grep DEVICE |awk-F= '{print $2}'`
nic1=`cat /etc/sysconfig/network-scripts/ifcfg-eth1 |grep DEVICE |awk-F= '{print $2}'`
nic2=`cat /etc/sysconfig/network-scripts/ifcfg-eth2 |grep DEVICE |awk-F= '{print $2}'`
nic3=`cat /etc/sysconfig/network-scripts/ifcfg-eth3 |grep DEVICE |awk-F= '{print $2}'`
#定义命令列别名BREN,配置启用后,可以使用BREN命令一键配置节点为二层交换设备;
#命令列中完成的操作包括:(1)建立网桥;(2)将所有检索到的网络端口加入网桥;(3)关闭stp服务,在研发测试过程中搭建的局域网中几乎不会出现多个路由器的情况,关闭此服务可以减少网络环境的数据包污染;(4)释放掉所有网络端口原有IP;(5)启用网桥;
#定向入bashrc文件中的内容结尾加入BRIDGE 标志,方便awk工具定位自定义内容,取消配置:
echo "alias BREN='brctl addbr br0;brctl addif br0 "$nic0" "$nic1" "$nic2" "$nic3";brctl stp br0 off;ifdown "$nic0" "$nic1" "$nic2" "$nic3";ifconfig "$nic0" 0.0.0.0 up;ifconfig "$nic1" 0.0.0.0 up;ifconfig "$nic2"0.0.0.0 up;ifconfig "$nic3" 0.0.0.0 up;ifconfig br0 up' #BRIDGE" >>/etc/bashrc;
#定义命令列别名BRDIS,可以使用BRDIS命令取消节点的二层交换功能,使其恢复为一台普通的节点;
#命令列中完成的操作包括:(1)将所有端口从虚拟网桥中移除;(2)关闭虚拟网桥;(3)关闭NetworkManager服务,因为NetworkManager服务与network同时管理网路端口可能发生冲突,导致network服务重启失败;(4)重启网络服务;
#结尾同上加入BRIDGE标志:
echo "alias BRDIS='brctl delif br0 "$nic0" "$nic1" "$nic2" "$nic3";ifconfig br0 down;brctl delbr br0;service NetworkManager stop;service networkrestart' #BRIDGE" >>/etc/bashrc
exit
fi
#取消配置则:
if [ "$CHECK" == "D" ] || [ "$CHECK" == "d" ]; then
#取消bashrc原有的自定义配置,关键词为BRIDGE:
sed -i '/BRIDGE/d' /etc/bashrc
else
#非法输入则:
echo "Invalid value: $CHECK"
fi
四、运行脚本Enble设置,并重新登录,此时BREN与BRDIS命令已经可用:
如附图1所示的设置示意图中,测试用节点搭载的网卡只有两个网口,所以无法检索到eth2、eth3,此处cat报错属正常现象。
五、使用自定义命令BREN可以启用网桥:
如附图2所示的启用网桥示意图中,此处接口报错原因同上,属正常现象。此时节点的两个网口工作在二层交换模式,相当于二层交换机的两个端口。
使用自定义命令BRDIS可以关闭网桥。
设计通过自动化配置脚本,为当前应用的Linux系统新增了两条自定义命令BREN和BRDIS,可以实现一键配置节点工作于二层交换模式成为二层交换设备,并可一键取消二层交换模式使其恢复为一台普通的节点。
合理利用此方法可大大缓解实验室中交换机资源有限的现状,避免在需要为少数节点更换局域网络时去更换交换机接入的网络而对其他人造成影响。
上述具体实施方式仅是本发明的具体个案,本发明的专利保护范围包括但不限于上述具体实施方式,任何符合本发明的一种LINUX平台下配置节点为二层交换设备的方法的权利要求书的且任何所述技术领域的普通技术人员对其所做的适当变化或替换,皆应落入本发明的专利保护范围。

Claims (2)

1.一种LINUX平台下配置节点为二层交换设备的方法,其特征在于,其具体实现过程为:
首先将节点搭载的所有网络端口绑定在虚拟的网桥上;
节点接收数据包后并通过网桥查找其对应的端口,从而使节点对于全网的MAC地址信息都可以学习到,并建立和维护它自己的地址表,所述节点接收数据包并查找其对应的端口过程为:节点从其中一个端口收到一个数据包,先读取包头中的源MAC地址,这样节点就知道源MAC地址的机器是连在哪个端口上的;再去读取包头中的目的MAC地址,并在地址表中查找相应的端口;当表中有与这目的MAC地址对应的端口时,则把数据包直接复制到这端口上;当表中找不到相应的端口则把数据包广播到所有端口上,且目的主机对源主机回应时,该节点学习到目的MAC地址与哪个端口对应,在下次传送数据时无需对所有端口进行广播了;
通过自动化脚本,自动检索节点搭载的所有网络端口名称,然后将启用网桥配置的过程以及取消网桥配置的过程分别定义成新的自定义命令,实现二层交换设备的一键配置或取消;
所述节点配置前包括测试平台搭建的过程,该过程包括准备测试环境、完成操作系统的安装配置的过程;
所述操作系统的安装配置过程为:
启用配置过程;
取消bashrc原有的自定义配置,关键词为BRIDGE;
检索节点搭载的网络端口名称;
定义命令列别名BREN,配置启用后,使用BREN命令一键配置节点为二层交换设备;
定向入bashrc文件中的内容结尾加入BRIDGE 标志,方便awk工具定位自定义内容,取消配置;
定义命令列别名BRDIS,使用BRDIS命令取消节点的二层交换功能,使其恢复为一台普通的节点;
启动取消配置过程;
取消bashrc原有的自定义配置,关键词为BRIDGE;
所述命令列BREN中完成的操作包括:1)建立网桥;2)将所有检索到的网络端口加入网桥;3)关闭stp服务;4)释放掉所有网络端口原有IP;5)启用网桥;
所述命令列BRDIS中完成的操作包括:1)将所有端口从虚拟网桥中移除;2)关闭虚拟网桥;3)关闭NetworkManager服务;4)重启网络服务。
2.根据权利要求1所述的一种LINUX平台下配置节点为二层交换设备的方法,其特征在于,所述测试环境的准备过程包括操作系统的选择、磁盘分区及软件包的选择、BIOS中设置项修改确认。
CN201510656621.XA 2015-10-12 2015-10-12 一种linux平台下配置节点为二层交换设备的方法 Active CN105391655B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510656621.XA CN105391655B (zh) 2015-10-12 2015-10-12 一种linux平台下配置节点为二层交换设备的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510656621.XA CN105391655B (zh) 2015-10-12 2015-10-12 一种linux平台下配置节点为二层交换设备的方法

Publications (2)

Publication Number Publication Date
CN105391655A CN105391655A (zh) 2016-03-09
CN105391655B true CN105391655B (zh) 2018-11-20

Family

ID=55423501

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510656621.XA Active CN105391655B (zh) 2015-10-12 2015-10-12 一种linux平台下配置节点为二层交换设备的方法

Country Status (1)

Country Link
CN (1) CN105391655B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107957901A (zh) * 2017-11-24 2018-04-24 郑州云海信息技术有限公司 一种抓取测试节点开机日志的方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1612538A (zh) * 2003-10-30 2005-05-04 华为技术有限公司 一种以太网二层交换设备绑定硬件地址和端口的方法
CN102368732A (zh) * 2011-10-18 2012-03-07 深圳市共进电子股份有限公司 一种网桥模式下对转发报文进行路由的方法
CN102647359A (zh) * 2012-04-26 2012-08-22 网经科技(苏州)有限公司 基于DSA TAG及自定义协议栈的网桥IGMP Snooping实现方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1612538A (zh) * 2003-10-30 2005-05-04 华为技术有限公司 一种以太网二层交换设备绑定硬件地址和端口的方法
CN102368732A (zh) * 2011-10-18 2012-03-07 深圳市共进电子股份有限公司 一种网桥模式下对转发报文进行路由的方法
CN102647359A (zh) * 2012-04-26 2012-08-22 网经科技(苏州)有限公司 基于DSA TAG及自定义协议栈的网桥IGMP Snooping实现方法

Also Published As

Publication number Publication date
CN105391655A (zh) 2016-03-09

Similar Documents

Publication Publication Date Title
CN105847023B (zh) 业务系统网络拓扑关系获取方法及装置
CN103917967B (zh) 用于配置中间盒的网络控制系统
CN104718723B (zh) 用于虚拟网络中的联网和安全服务的框架
CN103856350B (zh) 面向对象的网络
JP4838342B2 (ja) 仮想ネットワーク・トポロジの生成
US7242665B2 (en) Network device virtual interface
CN103477593B (zh) 网络系统、交换机和连接终端检测方法
JP4008432B2 (ja) ネットワーク機器のトポロジを探索する装置および方法
CN106685787B (zh) 基于OpenStack的PowerVM虚拟化网络管理方法及装置
CN104717081B (zh) 一种网关功能的实现方法及装置
JP6248938B2 (ja) 通信システム、仮想ネットワーク管理装置、仮想ネットワークの管理方法及びプログラム
US20080235430A1 (en) Creation and Management of Routing Table for PCI Bus Address Based Routing with Integrated DID
CN105915427A (zh) 一种报文发送、接收方法及设备
JP4715920B2 (ja) 設定方法および管理装置
CN107113219A (zh) 虚拟环境中的vlan标记
CN103946834A (zh) 虚拟网络接口对象
CN102158421A (zh) 创建三层接口的方法及单元
JP2000349778A (ja) トポロジ情報自動構築方法及びその装置並びにプログラムを記録した機械読み取り可能な記録媒体
CN111556110B (zh) 一种用于私有云系统的不同物理业务网络自动化适配方法
CN104601428B (zh) 虚拟机之间的通信方法
CN103716181A (zh) 一种在网关设备路由模式下lan_wan虚拟通道的实现方法
CN105721487B (zh) 信息处理方法及电子设备
JP2009194675A (ja) ネットワーク構成管理プログラム、ネットワーク構成管理装置、ネットワーク構成管理方法
CN110519147A (zh) 数据帧传输方法、装置、设备和计算机可读存储介质
CN105391655B (zh) 一种linux平台下配置节点为二层交换设备的方法

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