Linux/CentOS实现交换机-简单的交换机实现

个人理解:

1、交换机的核心在于Mac地址学习,使其能在全双工/半双工下进行转发工作。

2、对于专业的交换机来说,使用的是专业的网络芯片并自己实现里面的协议,比如说华为的,为什么能卖那么贵,贵在于网络芯片和系统,设备的零件其实没几个钱。

3、专业的交换机走的是芯片级转发,比用Linux实现的CPU转发是不同级别的速度。对于芯片级的通讯采用的是各家硬件厂商提供的标准,与Linux这种不一样。

4、如果要看下这两种区别的对比,可以购买一个Mikrotik RouterOS设备,然后在里面设置转发模式(CPU或硬件)来对比两者之间的区别。

实现Linux交换机的过程:

1、Linux时间简单的交换机只为了简单的了解和使用,对于大型网络环境来说不建议使用,玩一下可以了。

2、要实现比较专业的交换机,先精简内核,只保留网络驱动,实现市面上流行的协议,实现一个Web和命令行管理等等,有时还需要自行研制工控主板来兼容Linux。

下面是实现简单的交换机的过程:

1、使用brctl工具实现网桥,也就是桥接,把各网卡桥接在一起,桥接已经提供了Mac地址学习功能,所以直接就可以实现傻瓜交换机的功能。

2、使用vconfig实现vlan的划分(我没实践过这个)

下面是常用的命令:

创建 Bridge:brctl addbr [BRIDGE NAME]
删除 Bridge:brctl delbr [BRIDGE NAME]
attach 设备到 Bridge:brctl addif [BRIDGE NAME] [DEVICE NAME]
从 Bridge detach 设备:brctl delif [BRIDGE NAME] [DEVICE NAME]
查询 Bridge 情况:brctl show
创建 VLAN 设备:vconfig add [PARENT DEVICE NAME] [VLAN ID]
删除 VLAN 设备:vconfig rem [VLAN DEVICE NAME]
设置 VLAN 设备 flag:vconfig set_flag [VLAN DEVICE NAME] [FLAG] [VALUE]
设置 VLAN 设备 qos:
vconfig set_egress_map [VLAN DEVICE NAME] [SKB_PRIORITY] [VLAN_QOS]

vconfig set_ingress_map [VLAN DEVICE NAME] [SKB_PRIORITY] [VLAN_QOS]

查询 VLAN 设备情况:cat /proc/net/vlan/[VLAN DEVICE NAME]
创建 VETH 设备:ip link add link [DEVICE NAME] type veth
创建 TAP 设备:tunctl -p [TAP DEVICE NAME]
删除 TAP 设备:tunctl -d [TAP DEVICE NAME]
查询系统里所有二层设备,包括 VETH/TAP 设备:ip link show
删除普通二层设备:ip link delete [DEVICE NAME] type [TYPE]
查看 MAC 学习表:brctl showmacs <bridge-name>

对于要实现集线器:

1、在上面的网桥基础上去除Mac地址学习即可

# 比如br1的网桥
brctl setageing br1 0
brctl setfd br1 0

 

 

参考:

https://www.ibm.com/developerworks/cn/linux/1310_xiawc_networkdevice/index.html

https://www.thegeekstuff.com/2017/06/brctl-bridge/

转载于:https://www.cnblogs.com/EasonJim/p/9752031.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值