Linux/CentOS實現交換機-簡單的交換機實現

我的理解:html

一、交換機的核心在於Mac地址學習,使其能在全雙工/半雙工下進行轉發工做。linux

二、對於專業的交換機來講,使用的是專業的網絡芯片並本身實現裏面的協議,好比說華爲的,爲何能賣那麼貴,貴在於網絡芯片和系統,設備的零件其實沒幾個錢。網絡

三、專業的交換機走的是芯片級轉發,比用Linux實現的CPU轉發是不一樣級別的速度。對於芯片級的通信採用的是各家硬件廠商提供的標準,與Linux這種不同。工具

四、若是要看下這兩種區別的對比,能夠購買一個Mikrotik RouterOS設備,而後在裏面設置轉發模式(CPU或硬件)來對比二者之間的區別。學習

實現Linux交換機的過程:spa

一、Linux時間簡單的交換機只爲了簡單的瞭解和使用,對於大型網絡環境來講不建議使用,玩一下能夠了。命令行

二、要實現比較專業的交換機,先精簡內核,只保留網絡驅動,實現市面上流行的協議,實現一個Web和命令行管理等等,有時還須要自行研製工控主板來兼容Linux。code

下面是實現簡單的交換機的過程:htm

一、使用brctl工具實現網橋,也就是橋接,把各網卡橋接在一塊兒,橋接已經提供了Mac地址學習功能,因此直接就能夠實現傻瓜交換機的功能。blog

二、使用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>

對於要實現集線器:

一、在上面的網橋基礎上去除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/

相關文章
相關標籤/搜索