在 RHEL 上創建埠綁定的正確方法是什麼?
我的伺服器上有數據介面:eno5、eno6、ens3f0 和 ens3f1。我需要使用 VLAN ID 101 和綁定名稱 data0 的這四個介面創建埠綁定。
更多資訊:
- RHEL 7.6
- 檢查介面名稱。(我已經拔掉了電纜,一個介面壞了)
- 我很可能會為此設置使用模式 4。(不是網路人..)
- UUID 已經在配置文件中。我什麼都沒改變。
編輯:更多資訊:
- 沒有虛擬化。我們在這裡談論的是物理機器。
- 交換機配置已全部設置。
- 這是一個全新的、最小化的安裝。是否有任何必要的軟體包、核心模組或系統配置?
**第一次嘗試:**在這個 RHEL 文件中做了所有的事情:https ://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/6/html/deployment_guide/sec-configuring_a_vlan_over_a_bond
除了這個文件有兩個介面,但我有四個。我用自己的值更改了介面和鍵名。而且當然; IP、網關和子網也是我自己的。
結果: systemctl restart network 沒問題。但是介面甚至不能ping它自己的網關……
關於這個嘗試:
- 模式選擇在文件上完全相同
**第二次嘗試:**完全完成了本文件中的所有內容:http: //villasyslog.net/rhel-bonding-and-vlan-tagging/
再一次,我有四個介面,所以改變了值。
結果: systemctl restart network 失敗。我的債券沒有得到 IPv4 地址。相反,它顯示了我的一些愚蠢的 IPv6 東西。
關於這個嘗試:
- 沒有 /etc/modprobe.d/bonding.conf 文件。
第一次嘗試時,我在 /etc/sysconfig/network-scripts/ifcfg-* 下有四個介面的文件和一個綁定配置文件(總共 5 個)。
第二份文件建議更多文件。四個介面,一個用於綁定,一個用於 VLAN 標記。不幸的是,我沒有第一個配置文件,但我有第二個。他們來了:
ifcfg-數據0
DEVICE=data0 BOOTPROTO=none ONBOOT=yes USERCTL=no BONDING_MODULE_OPTS="mode=4 miimon=100" BONDING_SLAVE0=ens3f1 BONDING_SLAVE1=ens3f0 BONDING_SLAVE2=eno6 BONDING_SLAVE3=eno5 VLAN=yes IPV6INIT=no
ifcfg-data0.101
DEVICE=data0.101 BOOTPROTO=none ONBOOT=yes IPADDR=host IP NETMASK=netmask GATEWAY=gateway NETWORK=first IP of network BROADCAST=broadcast IP USERCTL=no BONDING_MODULE_OPTS="mode=4 miimon=100" BONDING_SLAVE0="ens3f1" BONDING_SLAVE1="ens3f0" BONDING_SLAVE2="eno6" BONDING_SLAVE3="eno5" VLAN=yes IPV6INIT=no
其他四個介面:
TYPE=Ethernet BOOTPROTO=none UUID=device uuid DEVICE=eno5 ONBOOT=yes MASTER=data0 SLAVE=yes NM_CONTROLLED=no TYPE=Ethernet BOOTPROTO=none UUID=device uuid DEVICE=eno6 ONBOOT=yes MASTER=data0 SLAVE=yes NM_CONTROLLED=no TYPE=Ethernet BOOTPROTO=none UUID=device uuid DEVICE=ens3f0 ONBOOT=yes MASTER=data0 SLAVE=yes NM_CONTROLLED=no TYPE=Ethernet BOOTPROTO=none UUID=device uuid DEVICE=ens3f1 ONBOOT=yes MASTER=data0 SLAVE=yes NM_CONTROLLED=no
/proc/net/綁定請求:
我在 /proc/net/bonding 下看到兩個文件。其中之一是bond0,我不知道那是什麼:
債券0
Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011) Bonding Mode: load balancing (round-robin) MII Status: down MII Polling Interval (ms): 0 Up Delay (ms): 0 Down Delay (ms): 0
數據
Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011) Bonding Mode: load balancing (round-robin) MII Status: up MII Polling Interval (ms): 100 Up Delay (ms): 0 Down Delay (ms): 0 Slave Interface: ens3f1 MII Status: up Speed: 10000 Mbps Duplex: full Link Failure Count: 1 Permanent HW addr: (MAC is here) Slave queue ID: 0 Slave Interface: ens3f0 MII Status: up Speed: 10000 Mbps Duplex: full Link Failure Count: 1 Permanent HW addr: (MAC is here) Slave queue ID: 0 Slave Interface: eno6 MII Status: up Speed: 10000 Mbps Duplex: full Link Failure Count: 1 Permanent HW addr: (MAC is here) Slave queue ID: 0 Slave Interface: eno5 MII Status: up Speed: 10000 Mbps Duplex: full Link Failure Count: 1 Permanent HW addr: (MAC is here) Slave queue ID: 0
systemctl 重啟網路:
Job for network.service failed because the control process exited with error code. See "systemctl status network.service" and "journalctl -xe" for details.
systemctl 狀態網路:
● network.service - LSB: Bring up/down networking Loaded: loaded (/etc/rc.d/init.d/network; bad; vendor preset: disabled) Active: failed (Result: exit-code) since Fri 2020-02-28 13:48:49 +03; 32s ago Docs: man:systemd-sysv-generator(8) Process: 37887 ExecStart=/etc/rc.d/init.d/network start (code=exited, status=1/FAILURE) Feb 28 13:48:49 (host name here) network[37887]: RTNETLINK answers: File exists Feb 28 13:48:49 (host name here) network[37887]: RTNETLINK answers: File exists Feb 28 13:48:49 (host name here) network[37887]: RTNETLINK answers: File exists Feb 28 13:48:49 (host name here) network[37887]: RTNETLINK answers: File exists Feb 28 13:48:49 (host name here) network[37887]: RTNETLINK answers: File exists Feb 28 13:48:49 (host name here) network[37887]: RTNETLINK answers: File exists Feb 28 13:48:49 (host name here) systemd[1]: network.service: control process exited, code=exited status=1 Feb 28 13:48:49 (host name here) systemd[1]: Failed to start LSB: Bring up/down networking. Feb 28 13:48:49 (host name here) systemd[1]: Unit network.service entered failed state. Feb 28 13:48:49 (host name here) systemd[1]: network.service failed.
起初,NetworkManager 正在執行。我已禁用它,但 systemctl restart network 仍然失敗。systemctl status NetworkManager 的輸出:
● NetworkManager.service - Network Manager Loaded: loaded (/usr/lib/systemd/system/NetworkManager.service; disabled; vendor preset: enabled) Active: inactive (dead) since Fri 2020-02-28 13:46:58 +03; 2min 13s ago Docs: man:NetworkManager(8) Main PID: 35612 (code=exited, status=0/SUCCESS) Feb 27 16:26:51 (host name here) NetworkManager[35612]: <info> [1582810011.3824] agent-manager: req[0x56187f15d3c0, :1.936/nmcli-connect/0]: agent registered Feb 27 16:26:51 (host name here) NetworkManager[35612]: <info> [1582810011.3830] audit: op="connection-activate" uuid="09bce14a-449a-3065-8d1b-d4bcde243bd8" name="Vlan data0.744" result="fail" reason="Failed to find a compatible device for this connection" Feb 28 13:46:58 (host name here) systemd[1]: Stopping Network Manager... Feb 28 13:46:58 (host name here) NetworkManager[35612]: <info> [1582886818.8800] caught SIGTERM, shutting down normally. Feb 28 13:46:58 (host name here) NetworkManager[35612]: <info> [1582886818.8846] device (ens3f0): released from master device data.744 Feb 28 13:46:58 (host name here) NetworkManager[35612]: <info> [1582886818.8851] device (ens3f1): released from master device data.744 Feb 28 13:46:58 (host name here) NetworkManager[35612]: <info> [1582886818.8856] device (eno5): released from master device data.744 Feb 28 13:46:58 (host name here) NetworkManager[35612]: <info> [1582886818.8860] device (eno6): released from master device data.744 Feb 28 13:46:58 (host name here) NetworkManager[35612]: <info> [1582886818.8890] exiting (success) Feb 28 13:46:58 (host name here) systemd[1]: Stopped Network Manager.
首先,感謝所有對我的問題的評論。
據我所知,埠綁定有點像正則表達式。每個人都會在指南中寫一些東西,並且不知何故它對他們有用。好吧,不適合我。
直到最近幾天我還不清楚我需要實現什麼。但現在,我得到了它的工作。只剩下故障轉移測試。
所有這些有什麼意義?
- 我有四個 10 Gbit 乙太網埠。
- 我希望這四個一起工作並處理 40 Gbit 流量(理論上)。
- 因此,我需要使用 lacp 模式進行埠綁定。
- 必須在交換機端配置給定埠,以便與具有給定埠通道的 lacp 進行埠綁定。這都是網路工作。不是我的。
那麼,如何實現呢?首先,我需要確保 NetworkManager 沒有執行和禁用:
systemctl stop NetworkManager systemctl disable NetworkManager
然後,檢查介面是否啟動。為此,您需要確保網路服務正在執行:
systemctl status network #check if working systemctl start network #start if not working
列出所有介面:
ip a
如果任何介面上有 IP,請確保與您的綁定沒有衝突。
要放置您自己的配置,請停止網路服務:
systemctl stop network
你的配置文件應該在**/etc/sysconfig/network-service/**目錄下。
從站範例:
ifcfg-eno5
DEVICE=eno5 NAME=bond0-slave3 TYPE=Ethernet ONBOOT=yes MASTER=bond0 SLAVE=yes NM_CONTROLLED=no
讓我們一行一行地走。
- 這是 RHEL 本身看到的介面名稱。
- 名稱是可選的。它適用於 TUI 或 GUI 軟體。這個是bond的3號奴隸,名為bond0。因此,名稱是bond0-slave3(記住,我有四個奴隸。這是最後一個。其他的像bond0-slave2(1, 0)。
其餘的是,這是經典的乙太網介面。MASTER 將是bond0,是的,這是一個奴隸。網路管理器不應控制此介面。
債券範例:
ifcfg-債券0
DEVICE=bond0 NAME=bond0 TYPE=Bond BONDING_MASTER=yes ONBOOT=yes BOOTPROTO=none BONDING_OPTS="mode=4 miimon=100 lacp_rate=slow" NM_CONTROLLED=no
- DEVICE 是綁定的名稱。我給了bond0。
- NAME 與上述相同。
- TYPE 不是乙太網。這是一個大寫為 B 的債券。
- 此虛擬設備是綁定主機。
- 它在啟動時啟動。
- 不知道那是什麼。
- 不同類型的鍵合選項會有所不同。這是速度較慢的 lacp 鍵合,也稱為鍵合模式 4。
- 網路管理器不應控制此虛擬介面。
實際上,埠綁定是在這裡完成的(除了我們需要定義 IP、子網和網關)。正如我所聽到的,直到這次我已經設法配置為“訪問模式”。這意味著,只有一個 VLAN 可以在此交換機上工作。但這不是我們想要的,switch 也不期望這種配置。所以我需要定義一個 VLAN ID 並告訴那個交換機。這種類型的配置稱為“中繼模式”。
假設我的 VLAN ID 是 111。
VLAN 標記範例:
ifcfg-bond0.111
DEVICE=bond0.111 TYPE=Vlan NAME=vlan-bond0.111 BOOTPROTO=none ONPARENT=yes IPADDR=IP adresi NETMASK=subnet mask GATEWAY=gateway VLAN=yes VLAN_ID=111 NM_CONTROLLED=no
我給我的虛擬設備起了一個名字。名稱必須是 BOND_NAME.VLAN_ID 因此我使用了 bond0.111
類型是必不可少的。這既不是乙太網也不是邦德。這是一個Vlan。該界面與伺服器啟動無關。如果父母已經起來(我的意思是bond0),這也應該出現。
IP、網路遮罩和網關線路自行定義。
VLAN=是的!!!!RHEL 文件說明了這一點,這是必不可少的。但我不知道。TYPE is Vlan 為什麼我也要在 VLAN 上設置一個 yes 標誌?任何。
到目前為止,我沒有在任何文件上看到 VLAN_ID。這是我的 VLAN 的 ID。
設置好所有配置文件後,
systemctl start network
這應該可以正常工作。為我工作。