Linux的 iproute2 配置:以太網(Ethernet)、綁定(Bond)、虛擬局域網(VLAN)、網橋(Bridge)筆記250713

Linux的 iproute2 配置:以太網(Ethernet)、綁定(Bond)、虛擬局域網(VLAN)、網橋(Bridge)筆記250713

在 Linux 中使用 iproute2 工具集配置網絡是現代且推薦的方法,它取代了舊的 ifconfigroutebrctlvconfig 等命令。iproute2 提供了統一的接口 ip 命令及其子命令來管理以太網、綁定 (Bond)、虛擬局域網 (VLAN) 和網橋 (Bridge)。

核心命令:ip

  • ip link: 管理網絡接口(鏈路層)。
  • ip addr: 管理 IP 地址(網絡層)。
  • ip route: 管理路由表。
  • ip netns: 管理網絡命名空間。
  • bridge: 管理網橋(是 iproute2 的一部分,通常單獨調用)。

配置方式:

  1. 臨時配置: 使用 ip 命令直接操作。重啟或網絡服務重啟后失效。
  2. 持久化配置:
    • 編輯配置文件: 修改 /etc/network/interfaces (Debian/Ubuntu) 或 /etc/sysconfig/network-scripts/ifcfg-<interface_name> (RHEL/CentOS 7及更早) 或使用 Netplan (Ubuntu 18.04+) 或 NetworkManager 連接文件 (RHEL/CentOS 8+, Fedora)。
    • 使用網絡管理工具:nmcli (NetworkManager), netplan apply

以下使用 ip 命令進行臨時配置演示:

1. 以太網 (Ethernet) 接口配置

  • 查看接口狀態:
    ip link show
    
    找到你的以太網接口名(如 enp1s0, eth0)。
  • 啟用接口:
    ip link set enp1s0 up
    
  • 禁用接口:
    ip link set enp1s0 down
    
  • 分配 IP 地址 (IPv4):
    ip addr add 192.168.1.100/24 dev enp1s0
    
  • 刪除 IP 地址:
    ip addr del 192.168.1.100/24 dev enp1s0
    
  • 設置默認網關:
    ip route add default via 192.168.1.1
    

2. 綁定 (Bonding / Link Aggregation) 接口配置

綁定需要內核模塊 bonding。確保已加載 (lsmod | grep bondingmodprobe bonding)。

  • 創建 Bond 接口 (bond0):
    ip link add bond0 type bond mode active-backup  # 創建名為 bond0 的綁定接口,使用主備模式
    
    常用模式 (mode):
    • balance-rr (0): 輪詢。
    • active-backup (1): 主備(默認)。
    • balance-xor (2): XOR 哈希(基于源/目標MAC/IP+Port)。
    • broadcast (3): 廣播。
    • 802.3ad (4): LACP (需要交換機支持)。
    • balance-tlb (5): 適配器傳輸負載均衡。
    • balance-alb (6): 適配器傳輸和接收負載均衡 (需要ARP監控)。
  • 配置 Bond 參數 (可選,在創建時或之后設置):
    ip link set bond0 type bond miimon 100  # 設置鏈路監控間隔為100ms
    ip link set bond0 type bond primary eth0  # 設置 eth0 為主接口 (對 active-backup 有用)
    ip link set bond0 type bond xmit_hash_policy layer2+3  # 設置哈希策略 (對 balance-xor, 802.3ad 有用)
    
  • 將物理接口加入 Bond:
    ip link set eth0 master bond0  # 將 eth0 加入 bond0
    ip link set eth1 master bond0  # 將 eth1 加入 bond0
    
  • 啟用 Bond 接口并分配 IP:
    ip link set bond0 up
    ip addr add 192.168.1.200/24 dev bond0
    
  • 查看 Bond 狀態:
    cat /proc/net/bonding/bond0
    

3. 虛擬局域網 (VLAN) 接口配置

需要內核模塊 8021q。確保已加載 (lsmod | grep 8021qmodprobe 8021q)。

  • 在物理接口 eth0 上創建 VLAN ID 10 的接口 (eth0.10):
    ip link add link eth0 name eth0.10 type vlan id 10
    
  • 啟用 VLAN 接口并分配 IP:
    ip link set eth0.10 up
    ip addr add 192.168.10.100/24 dev eth0.10
    
  • (可選) 在 Bond 接口上創建 VLAN (bond0.20):
    ip link add link bond0 name bond0.20 type vlan id 20
    ip link set bond0.20 up
    ip addr add 192.168.20.200/24 dev bond0.20
    

4. 網橋 (Bridge) 接口配置

  • 創建網橋接口 (br0):
    ip link add name br0 type bridge
    
  • 配置網橋參數 (可選):
    ip link set br0 type bridge stp_state 1  # 啟用STP (生成樹協議)
    ip link set br0 type bridge forward_delay 2  # 設置轉發延遲
    
  • 將接口加入網橋 (例如 eth2, tap0):
    ip link set eth2 master br0  # 將物理接口 eth2 加入 br0
    ip link set tap0 master br0  # 將虛擬接口 tap0 (可能用于KVM虛擬機) 加入 br0
    
  • 啟用網橋接口并分配 IP (網橋本身通常需要一個IP作為管理地址或網關):
    ip link set br0 up
    ip addr add 192.168.30.1/24 dev br0
    
  • 查看網橋信息:
    bridge link show  # 顯示哪些接口屬于哪個網橋
    bridge fdb show  # 顯示網橋的MAC轉發表
    

持久化配置提示 (以 Debian/Ubuntu /etc/network/interfaces 片段為例):

# 物理接口 eth0 (不直接配置IP,交給bond)
auto eth0
iface eth0 inet manualbond-master bond0# 物理接口 eth1 (不直接配置IP,交給bond)
auto eth1
iface eth1 inet manualbond-master bond0# Bond 接口 bond0
auto bond0
iface bond0 inet staticaddress 192.168.1.200netmask 255.255.255.0gateway 192.168.1.1# Bond 選項bond-mode active-backupbond-miimon 100bond-primary eth0bond-slaves none # 由上面的eth0/eth1指定# VLAN 接口 (在 bond0 上)
auto bond0.10
iface bond0.10 inet staticaddress 192.168.10.200netmask 255.255.255.0vlan-raw-device bond0# 網橋接口 br0 (用于連接虛擬機/容器)
auto br0
iface br0 inet staticaddress 192.168.30.1netmask 255.255.255.0bridge_ports eth2 tap0 # 加入的接口bridge_stp on          # 啟用STPbridge_fd 2            # 轉發延遲

綜合配置示例

場景:綁定 → VLAN → 網橋
# 1. 創建綁定
modprobe bonding
ip link add bond0 type bond mode 802.3ad
ip link set eth1 down
ip link set eth1 master bond0
ip link set eth2 down
ip link set eth2 master bond0
ip link set bond0 up# 2. 在綁定上創建VLAN
ip link add link bond0 name mgmt_vlan type vlan id 100
ip link set mgmt_vlan up# 3. 創建網橋
ip link add br-mgmt type bridge
ip link set br-mgmt up# 4. 添加VLAN到網橋
ip link set mgmt_vlan master br-mgmt# 5. 配置網橋IP
ip addr add 10.100.0.5/24 dev br-mgmt# 6. 設置默認網關
ip route add default via 10.100.0.1
場景:綁定 + VLAN + 網橋
# 1. 創建綁定
sudo modprobe bonding mode=802.3ad
sudo ip link add bond0 type bond
sudo ip link set enp3s0 down && sudo ip link set enp3s0 master bond0
sudo ip link set enp4s0 down && sudo ip link set enp4s0 master bond0
sudo ip link set bond0 up# 2. 創建VLAN
sudo modprobe 8021q
sudo ip link add link bond0 name vlan10 type vlan id 10
sudo ip link set vlan10 up# 3. 創建網橋
sudo ip link add br0 type bridge
sudo ip link set vlan10 master br0
sudo ip addr add 10.10.10.2/24 dev br0
sudo ip link set br0 up# 4. 添加路由
sudo ip route add default via 10.10.10.1 dev br0
2. Bond + VLAN + Bridge 模板
# 1. 創建bond
sudo ip link add bond0 type bond mode 802.3ad
sudo ip link set eth1 down
sudo ip link set eth2 down
sudo ip link set eth1 master bond0
sudo ip link set eth2 master bond0
sudo ip link set bond0 up# 2. 在bond上創建VLAN
sudo ip link add link bond0 name vlan100 type vlan id 100
sudo ip link set vlan100 up# 3. 創建網橋
sudo ip link add br-vlan100 type bridge
sudo ip link set br-vlan100 up# 4. 將VLAN加入網橋
sudo ip link set vlan100 master br-vlan100# 5. 配置網橋IP
sudo ip addr add 10.100.0.1/24 dev br-vlan100






在 Linux 中,iproute2 套件(核心命令是 ip)是管理網絡接口、路由、策略路由等的現代標準工具集,取代了過時的 net-tools(如 ifconfig, route, arp)。以下是使用 iproute2 配置以太網、綁定(Bond)、虛擬局域網(VLAN)和網橋(Bridge)的指南:

重要前提:

  1. 需要 root 權限: 所有配置命令都需要 sudo 或以 root 用戶身份執行。
  2. 臨時 vs 持久化: ip 命令所做的更改是臨時的,重啟后會丟失。要使配置持久化,你需要:
    • 使用網絡管理器: 如 NetworkManager (nmcli, nmtui), systemd-networkd(配置文件在 /etc/systemd/network/)。
    • 編輯配置文件: 如 Debian/Ubuntu 的 /etc/network/interfaces,或 RHEL/CentOS/Fedora 的 /etc/sysconfig/network-scripts/ifcfg-* (較新版本也轉向 NetworkManager 或 systemd-networkd)。
    • 本文主要關注 ip 命令的運行時配置。持久化方法請參考你的發行版文檔。
  3. 接口命名: 示例中使用通用名稱(eth0, bond0, vlan10, br0)。你的實際物理接口名稱可能不同(如 enp0s3, ens192)。

1. 以太網 (Ethernet) 接口配置

  • 查看接口狀態:

    ip link show              # 顯示所有接口狀態
    ip addr show             # 顯示所有接口的 IP 地址
    ip addr show eth0        # 顯示 eth0 的詳細信息
    ip -s link show eth0     # 顯示 eth0 的統計信息(流量、錯誤等)
    
  • 啟用/禁用接口:

    ip link set eth0 up      # 啟用 eth0
    ip link set eth0 down    # 禁用 eth0
    
  • 分配 IP 地址(臨時):

    ip addr add 192.168.1.10/24 dev eth0   # 添加 IPv4 地址
    ip addr add 2001:db8::10/64 dev eth0   # 添加 IPv6 地址
    ip addr del 192.168.1.10/24 dev eth0   # 刪除 IPv4 地址
    
  • 設置 MTU:

    ip link set dev eth0 mtu 9000   # 設置 MTU 為 9000(Jumbo Frames)
    

2. 綁定 (Bonding / Link Aggregation) 配置

Bonding 將多個物理接口(Slave)聚合成一個邏輯接口(Master)以提供冗余、負載均衡或增加帶寬。

  • 加載內核模塊:

    modprobe bonding          # 加載 bonding 模塊(通常已自動加載)
    
  • 創建 Bond 接口:

    ip link add bond0 type bond mode 802.3ad   # 創建名為 bond0 的接口,使用 LACP (mode 4)
    

    關鍵參數 mode

    • balance-rr (0):輪詢(負載均衡,容錯)。
    • active-backup (1):主備(容錯)。
    • balance-xor (2):基于源/目的 MAC 的 XOR 哈希(負載均衡,容錯)。
    • broadcast (3):廣播(容錯)。
    • 802.3ad (4):LACP(動態聚合,需要交換機支持,負載均衡,容錯) - 常用
    • balance-tlb (5):適配器傳輸負載均衡(容錯)。
    • balance-alb (6):適配器傳輸負載均衡 + 接收負載均衡(ARP 協商)(容錯) - 常用
  • 配置 Bond 參數 (可選):

    ip link set bond0 type bond miimon 100   # 設置鏈路監控間隔為 100ms (重要!)
    ip link set bond0 type bond lacp_rate fast # 設置 LACP 速率 (僅 mode 4)
    
  • 將物理接口加入 Bond:

    ip link set eth0 master bond0   # 將 eth0 加入 bond0 作為 slave
    ip link set eth1 master bond0   # 將 eth1 加入 bond0 作為 slave
    
  • 啟用 Bond 和 Slave 接口:

    ip link set bond0 up
    ip link set eth0 up
    ip link set eth1 up
    
  • 為 Bond 接口分配 IP 地址:

    ip addr add 192.168.1.20/24 dev bond0
    
  • 查看 Bond 狀態:

    cat /proc/net/bonding/bond0   # 查看 bond0 的詳細狀態和 slave 信息
    

3. 虛擬局域網 (VLAN) 配置

VLAN 在單個物理接口上創建邏輯隔離的網絡。

  • 創建 VLAN 接口:

    ip link add link eth0 name eth0.10 type vlan id 10   # 在 eth0 上創建 VLAN ID 10 的接口 eth0.10
    
    • link eth0: 指定父接口 (物理接口或 Bond)。
    • name eth0.10: 指定 VLAN 接口的名稱(習慣命名)。
    • type vlan id 10: 指定類型為 VLAN,ID 為 10。
  • 啟用 VLAN 接口:

    ip link set dev eth0.10 up
    
  • 為 VLAN 接口分配 IP 地址:

    ip addr add 192.168.10.1/24 dev eth0.10   # 分配 VLAN 10 的 IP
    
  • 查看 VLAN 接口:

    ip -d link show eth0.10  # `-d` 顯示詳細信息,能看到 VLAN ID
    

4. 網橋 (Bridge) 配置

網橋創建一個虛擬交換機,將多個接口(物理、虛擬如 VM tap 接口、VLAN、Bond)連接在同一個二層域中。

  • 創建網橋接口:

    ip link add name br0 type bridge   # 創建名為 br0 的網橋
    
  • 配置網橋參數 (可選):

    ip link set dev br0 type bridge stp_state 1   # 啟用 STP (Spanning Tree Protocol) 防止環路
    ip link set dev br0 type bridge forward_delay 2   # 設置轉發延遲 (秒)
    
  • 將接口加入網橋:

    ip link set eth0 master br0   # 將 eth0 加入網橋 br0 (成為橋端口)
    ip link set eth1 master br0   # 將 eth1 加入網橋 br0
    ip link set tap0 master br0   # 將虛擬化 tap 接口 tap0 加入網橋 br0
    ip link set bond0 master br0  # 將 Bond 接口 bond0 加入網橋 br0
    ip link set eth0.10 master br0 # 將 VLAN 接口 eth0.10 加入網橋 br0
    
    • 加入網橋的接口不應該有自己的 IP 地址(管理地址除外)。流量在二層轉發。
  • 啟用網橋和橋端口:

    ip link set dev br0 up        # 啟用網橋
    ip link set dev eth0 up       # 啟用橋端口
    ip link set dev eth1 up
    # ... 啟用其他橋端口 ...
    
  • 為網橋分配 IP 地址 (可選):
    如果你想讓網橋本身具有一個 IP 地址(例如,作為這個橋接網絡的網關或管理地址):

    ip addr add 192.168.1.1/24 dev br0
    
  • 查看網橋信息:

    bridge link show          # 顯示所有橋端口及其狀態
    bridge vlan show          # 顯示網橋上的 VLAN 配置 (如果使用)
    ip link show type bridge  # 顯示所有網橋接口
    ip -d link show br0       # 顯示 br0 的詳細信息
    

總結與關鍵命令回顧

功能核心命令
查看ip link show, ip addr show, ip -s link show, bridge link show, cat /proc/net/bonding/bond0
以太網ip link set ethX up/down, ip addr add/del ... dev ethX
Bondip link add bondX type bond mode ..., ip link set ethX master bondX
VLANip link add link PARENT name NAME type vlan id VID
Bridgeip link add name brX type bridge, ip link set DEV master brX
通用啟用ip link set dev DEV up
分配 IPip addr add ADDR/MASK dev DEV

重要提醒:

  • 這些 ip 命令的配置不是持久的。服務器重啟后配置會丟失。
  • 持久化配置至關重要! 務必根據你的 Linux 發行版使用其網絡配置機制(/etc/network/interfaces, NetworkManager, systemd-networkd, /etc/sysconfig/network-scripts/)將所需的配置保存下來。
  • 在修改生產環境配置前,務必在測試環境驗證或在維護窗口操作。
  • 使用 ip -d link show DEV 查看接口的詳細信息(類型、狀態、參數、從屬關系等)是故障排除的關鍵步驟。

通過熟練掌握這些 iproute2 命令,你可以靈活地配置和管理 Linux 系統中復雜的網絡拓撲結構。



























iproute2 配置模板:Bond、VLAN、Bridge

以下是使用 iproute2 配置 Bond、VLAN 和 Bridge 的完整模板,包含基礎配置和高級組合方案。所有配置均為臨時生效,重啟后會丟失,永久配置方法見最后部分。

bonding
VLAN
VLAN
橋接
IP配置
物理網卡
Bond接口
VLAN接口
網橋
網絡訪問

一、基礎配置模板

1. Bond 綁定接口模板

# 加載bonding模塊
sudo modprobe bonding# 創建bond0接口 (802.3ad LACP模式)
sudo ip link add bond0 type bond mode 802.3ad# 配置bond參數
echo 100 | sudo tee /sys/class/net/bond0/bonding/miimon
echo fast | sudo tee /sys/class/net/bond0/bonding/lacp_rate
echo layer3+4 | sudo tee /sys/class/net/bond0/bonding/xmit_hash_policy# 添加物理接口到bond
sudo ip link set eth1 down
sudo ip link set eth2 down
sudo ip link set eth1 master bond0
sudo ip link set eth2 master bond0# 啟用bond接口
sudo ip link set bond0 up# 配置IP地址
sudo ip addr add 192.168.1.100/24 dev bond0
sudo ip route add default via 192.168.1.1

2. VLAN 接口模板

# 在物理接口上創建VLAN
sudo ip link add link eth0 name vlan10 type vlan id 10# 在bond接口上創建VLAN
sudo ip link add link bond0 name vlan-bond type vlan id 20# 啟用VLAN接口
sudo ip link set vlan10 up
sudo ip link set vlan-bond up# 配置IP地址
sudo ip addr add 10.10.10.2/24 dev vlan10
sudo ip addr add 10.20.20.2/24 dev vlan-bond

3. Bridge 網橋模板

# 創建網橋
sudo ip link add br0 type bridge# 配置網橋參數
sudo ip link set dev br0 type bridge stp_state 0
echo 0 | sudo tee /sys/class/net/br0/bridge/forward_delay# 添加接口到網橋
sudo ip link set eth3 master br0
sudo ip link set vlan10 master br0# 啟用網橋
sudo ip link set br0 up# 配置IP地址
sudo ip addr add 192.168.2.1/24 dev br0
sudo ip route add default via 192.168.2.254

二、高級組合模板

1. Bond + VLAN 模板

# 創建bond0
sudo ip link add bond0 type bond mode active-backup
sudo ip link set eth1 master bond0
sudo ip link set eth2 master bond0
sudo ip link set bond0 up# 在bond上創建VLAN
sudo ip link add link bond0 name vlan100 type vlan id 100
sudo ip link set vlan100 up# 配置IP
sudo ip addr add 10.100.0.2/24 dev vlan100

2. Bond + VLAN + Bridge 模板

# 1. 創建bond
sudo ip link add bond0 type bond mode 802.3ad
sudo ip link set eth1 down
sudo ip link set eth2 down
sudo ip link set eth1 master bond0
sudo ip link set eth2 master bond0
sudo ip link set bond0 up# 2. 在bond上創建VLAN
sudo ip link add link bond0 name vlan100 type vlan id 100
sudo ip link set vlan100 up# 3. 創建網橋
sudo ip link add br-vlan100 type bridge
sudo ip link set br-vlan100 up# 4. 將VLAN加入網橋
sudo ip link set vlan100 master br-vlan100# 5. 配置網橋IP
sudo ip addr add 10.100.0.1/24 dev br-vlan100

3. 多VLAN網橋模板

# 創建網橋
sudo ip link add br-multi type bridge
sudo ip link set br-multi up# 創建并添加VLAN10
sudo ip link add link eth0 name vlan10 type vlan id 10
sudo ip link set vlan10 master br-multi
sudo ip link set vlan10 up# 創建并添加VLAN20
sudo ip link add link eth0 name vlan20 type vlan id 20
sudo ip link set vlan20 master br-multi
sudo ip link set vlan20 up# 配置網橋IP
sudo ip addr add 192.168.10.1/24 dev br-multi

1. Bond (鏈路聚合) 模板

# 創建 Bond 接口 (模式: 802.3ad/LACP)
ip link add bond0 type bond mode 802.3ad \miimon 100 \          # 鏈路監控間隔 (ms)lacp_rate fast \      # LACP 速率 (fast=1s, slow=30s)xmit_hash_policy layer3+4  # 負載均衡策略# 添加物理接口到 Bond
ip link set eth0 master bond0
ip link set eth1 master bond0# 啟用 Bond 并分配 IP
ip link set bond0 up
ip addr add 192.168.1.10/24 dev bond0
常用模式替換
  • 主備冗余:mode active-backup primary eth0
  • 輪詢負載:mode balance-rr
  • 基礎負載均衡:mode balance-xor

2. VLAN (虛擬局域網) 模板

# 在物理接口/Bond 上創建 VLAN
ip link add link bond0 name bond0.10 type vlan id 10  # VLAN ID=10# 啟用 VLAN 接口并分配 IP
ip link set bond0.10 up
ip addr add 192.168.10.1/24 dev bond0.10

3. Bridge (網橋) 模板

# 創建網橋
ip link add br0 type bridge \stp_state 1 \          # 啟用生成樹協議 (防環)forward_delay 2        # 轉發延遲 (秒)# 添加接口到網橋 (物理/VLAN接口)
ip link set eth2 master br0    # 物理接口
ip link set bond0.20 master br0  # VLAN接口# 啟用網橋并分配 IP
ip link set br0 up
ip addr add 192.168.20.1/24 dev br0

4. 組合模板:Bond + VLAN + Bridge

# ===== 1. 創建 Bond =====
ip link add bond0 type bond mode 802.3ad miimon 100
ip link set eth0 master bond0
ip link set eth1 master bond0
ip link set bond0 up# ===== 2. 在 Bond 上創建 VLAN =====
ip link add link bond0 name bond0.10 type vlan id 10  # VLAN 10
ip link add link bond0 name bond0.20 type vlan id 20  # VLAN 20
ip link set bond0.10 up
ip link set bond0.20 up# ===== 3. 創建網橋并加入 VLAN =====
# 網橋1 (VLAN 10)
ip link add br-vlan10 type bridge stp_state 1
ip link set bond0.10 master br-vlan10
ip link set br-vlan10 up
ip addr add 10.10.1.1/24 dev br-vlan10  # 管理IP# 網橋2 (VLAN 20)
ip link add br-vlan20 type bridge
ip link set bond0.20 master br-vlan20
ip link set br-vlan20 up
# (可選) 不分配IP,純二層交換

關鍵命令說明

功能命令
查看鏈路狀態ip link show
查看IP地址ip addr show
查看路由表ip route show
查看網橋端口bridge link show
查看VLAN配置bridge vlan show (或 cat /proc/net/vlan/config)
查看Bond狀態cat /proc/net/bonding/bond0
刪除接口ip link delete bond0
從網橋移除端口ip link set eth0 nomaster

三、永久化配置方法

1. systemd-networkd 配置

# /etc/systemd/network/20-bond0.netdev
[NetDev]
Name=bond0
Kind=bond[Bond]
Mode=802.3ad
MIIMonitorSec=100ms# /etc/systemd/network/21-bond-slaves.network
[Match]
Name=eth1 eth2[Network]
Bond=bond0# /etc/systemd/network/30-vlan100.netdev
[NetDev]
Name=vlan100
Kind=vlan[VLAN]
Id=100# /etc/systemd/network/31-vlan100.network
[Match]
Name=vlan100[Network]
Bridge=br0# /etc/systemd/network/40-br0.netdev
[NetDev]
Name=br0
Kind=bridge# /etc/systemd/network/41-br0.network
[Match]
Name=br0[Network]
Address=192.168.1.1/24
Gateway=192.168.1.254

2. Netplan 配置 (Ubuntu)

network:version: 2renderer: networkdbonds:bond0:interfaces: [eth1, eth2]parameters:mode: 802.3adlacp-rate: fastmii-monitor-interval: 100vlans:vlan100:id: 100link: bond0bridges:br0:interfaces: [vlan100]parameters:stp: falseforward-delay: 0addresses: [192.168.1.1/24]gateway4: 192.168.1.254

3. /etc/network/interfaces 配置 (Debian)

# Bond配置
auto bond0
iface bond0 inet manualbond-mode 802.3adbond-miimon 100bond-lacp-rate fastbond-slaves eth1 eth2# VLAN配置
auto vlan100
iface vlan100 inet manualvlan-raw-device bond0vlan-id 100# 網橋配置
auto br0
iface br0 inet staticbridge_ports vlan100bridge_stp offbridge_fd 0address 192.168.1.1netmask 255.255.255.0gateway 192.168.1.254

持久化配置參考

臨時配置重啟會丟失,持久化需寫入配置文件(根據發行版選擇):

Debian/Ubuntu (/etc/network/interfaces):
# Bond 配置
auto bond0
iface bond0 inet manualbond-mode 802.3adbond-miimon 100bond-slaves eth0 eth1# VLAN 配置
auto bond0.10
iface bond0.10 inet manualvlan-raw-device bond0# Bridge 配置
auto br-vlan10
iface br-vlan10 inet staticaddress 10.10.1.1/24bridge_ports bond0.10bridge_stp on
RHEL/CentOS (ifcfg-bond0):
# /etc/sysconfig/network-scripts/ifcfg-bond0
DEVICE=bond0
TYPE=Bond
BONDING_MASTER=yes
BONDING_OPTS="mode=802.3ad miimon=100"
ONBOOT=yes# /etc/sysconfig/network-scripts/ifcfg-bond0.10
DEVICE=bond0.10
VLAN=yes
PHYSDEV=bond0
ONBOOT=yes
BRIDGE=br-vlan10# /etc/sysconfig/network-scripts/ifcfg-br-vlan10
DEVICE=br-vlan10
TYPE=Bridge
IPADDR=10.10.1.1
NETMASK=255.255.255.0
ONBOOT=yes

四、診斷與維護命令

1. 查看網絡狀態

# 所有接口狀態
ip -c link show# 查看IP配置
ip -c addr show# 查看路由
ip -c route show

2. Bond 診斷

# 綁定狀態
cat /proc/net/bonding/bond0# 從屬接口狀態
grep "" /sys/class/net/bond0/bonding/slave_*

3. VLAN 診斷

# VLAN配置
ip -d link show vlan100# VLAN過濾
bridge vlan show

4. Bridge 診斷

# MAC地址表
bridge fdb show# STP狀態
bridge stp show

五、配置腳本模板

綜合配置腳本

#!/bin/bash
# 網絡配置腳本 - bond0 + vlan100 + br0# 加載模塊
modprobe bonding
modprobe 8021q# 創建bond0
ip link add bond0 type bond mode 802.3ad
echo 100 > /sys/class/net/bond0/bonding/miimon
echo fast > /sys/class/net/bond0/bonding/lacp_rate
ip link set eth1 down
ip link set eth2 down
ip link set eth1 master bond0
ip link set eth2 master bond0
ip link set bond0 up# 創建VLAN
ip link add link bond0 name vlan100 type vlan id 100
ip link set vlan100 up# 創建網橋
ip link add br0 type bridge
echo 0 > /sys/class/net/br0/bridge/forward_delay
ip link set vlan100 master br0
ip addr add 10.100.0.1/24 dev br0
ip link set br0 up# 設置默認路由
ip route add default via 10.100.0.254

服務管理腳本

#!/bin/bash
# 網絡服務管理腳本case "$1" instart)echo "Starting network configuration..."/path/to/network-script.sh;;stop)echo "Resetting network..."ip link del br0 2>/dev/nullip link del vlan100 2>/dev/nullip link del bond0 2>/dev/null;;status)echo "### Bond Status ###"cat /proc/net/bonding/bond0echo -e "\n### Bridge Status ###"bridge link;;*)echo "Usage: $0 {start|stop|status}"exit 1
esac

六、最佳實踐

  1. 接口命名規范

    • Bond接口:bond0, bond1
    • VLAN接口:vlan<ID>vlan100
    • 網橋接口:br<用途>br-mgmt
  2. 配置順序原則

    物理接口
    Bond配置
    VLAN配置
    Bond上的VLAN
    網橋配置
  3. 安全增強

    # 禁用IPv6
    echo 1 > /proc/sys/net/ipv6/conf/all/disable_ipv6# 關閉不必要的協議
    echo 0 > /proc/sys/net/ipv4/conf/all/accept_redirects
    
  4. 性能優化

    # 增加網絡緩沖區
    echo "net.core.rmem_max=16777216" >> /etc/sysctl.conf
    echo "net.core.wmem_max=16777216" >> /etc/sysctl.conf# 啟用GRO/GSO
    ethtool -K eth0 gro on gso on
    

通過這些模板,您可以快速配置各種網絡拓撲。對于生產環境,建議使用 systemd-networkd 或 Netplan 實現永久配置。



























Linux iproute2 配置指南:以太網、綁定、VLAN 和網橋

iproute2 是現代 Linux 系統中強大的網絡配置工具集,提供了靈活的命令行方式來管理各種網絡組件。下面詳細介紹如何使用 iproute2 配置以太網、綁定、VLAN 和網橋。

一、以太網 (Ethernet) 配置

1. 基本配置

# 啟用接口
ip link set eth0 up# 配置IP地址
ip addr add 192.168.1.100/24 dev eth0# 設置默認網關
ip route add default via 192.168.1.1# 配置DNS (需編輯resolv.conf)
echo "nameserver 8.8.8.8" > /etc/resolv.conf

2. 高級選項

# 設置MTU
ip link set eth0 mtu 9000# 更改MAC地址
ip link set eth0 address 00:11:22:33:44:55# 查看接口狀態
ip -s link show eth0

二、綁定 (Bond) 配置

1. 創建綁定接口

# 加載綁定模塊
modprobe bonding# 創建綁定接口
ip link add bond0 type bond mode 802.3ad# 設置綁定參數
echo 100 > /sys/class/net/bond0/bonding/miimon
echo fast > /sys/class/net/bond0/bonding/lacp_rate
echo layer3+4 > /sys/class/net/bond0/bonding/xmit_hash_policy

2. 添加成員接口

# 添加接口到綁定
ip link set eth1 down
ip link set eth1 master bond0ip link set eth2 down
ip link set eth2 master bond0# 啟用綁定接口
ip link set bond0 up# 配置IP
ip addr add 10.0.0.5/24 dev bond0

3. 查看綁定狀態

# 查看綁定狀態
cat /proc/net/bonding/bond0# 查看接口關系
ip link show

三、虛擬局域網 (VLAN) 配置

1. 基本VLAN配置

# 加載802.1Q模塊
modprobe 8021q# 創建VLAN接口
ip link add link eth0 name eth0.100 type vlan id 100# 啟用VLAN接口
ip link set eth0.100 up# 配置IP
ip addr add 192.168.100.10/24 dev eth0.100

2. 在綁定接口上創建VLAN

# 在bond0上創建VLAN
ip link add link bond0 name bond0.200 type vlan id 200# 啟用并配置IP
ip link set bond0.200 up
ip addr add 10.200.0.5/24 dev bond0.200

3. 查看VLAN配置

# 查看VLAN信息
ip -d link show eth0.100# 輸出示例:
# 5: eth0.100@eth0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN 
#    link/ether 00:11:22:33:44:55 brd ff:ff:ff:ff:ff:ff
#    vlan protocol 802.1Q id 100 <REORDER_HDR> 

四、網橋 (Bridge) 配置

1. 創建基礎網橋

# 創建網橋
ip link add br0 type bridge# 設置STP參數
echo 1 > /sys/class/net/br0/bridge/stp_state
echo 2 > /sys/class/net/br0/bridge/hello_time
echo 15 > /sys/class/net/br0/bridge/forward_delay# 啟用網橋
ip link set br0 up

2. 添加接口到網橋

# 添加物理接口
ip link set eth3 down
ip link set eth3 master br0
ip link set eth3 up# 添加VLAN接口
ip link set bond0.200 down
ip link set bond0.200 master br0
ip link set bond0.200 up# 配置網橋IP
ip addr add 172.16.0.10/24 dev br0

3. 高級網橋配置

# 啟用VLAN過濾
echo 1 > /sys/class/net/br0/bridge/vlan_filtering# 配置VLAN成員
bridge vlan add dev eth3 vid 100 pvid untagged
bridge vlan add dev bond0.200 vid 100-200# 查看網橋信息
bridge link show
bridge vlan show

五、綜合配置示例

場景:綁定 → VLAN → 網橋

# 1. 創建綁定
modprobe bonding
ip link add bond0 type bond mode 802.3ad
ip link set eth1 down
ip link set eth1 master bond0
ip link set eth2 down
ip link set eth2 master bond0
ip link set bond0 up# 2. 在綁定上創建VLAN
ip link add link bond0 name mgmt_vlan type vlan id 100
ip link set mgmt_vlan up# 3. 創建網橋
ip link add br-mgmt type bridge
ip link set br-mgmt up# 4. 添加VLAN到網橋
ip link set mgmt_vlan master br-mgmt# 5. 配置網橋IP
ip addr add 10.100.0.5/24 dev br-mgmt# 6. 設置默認網關
ip route add default via 10.100.0.1

六、持久化配置

iproute2 命令重啟后會失效,需要將配置添加到啟動腳本:

1. 創建啟動腳本 (/usr/local/bin/setup-network.sh)

#!/bin/bash# 設置綁定
ip link add bond0 type bond mode 802.3ad
ip link set eth1 down
ip link set eth1 master bond0
ip link set eth2 down
ip link set eth2 master bond0
ip link set bond0 up# 設置VLAN
ip link add link bond0 name mgmt_vlan type vlan id 100
ip link set mgmt_vlan up# 設置網橋
ip link add br-mgmt type bridge
ip link set br-mgmt up
ip link set mgmt_vlan master br-mgmt
ip addr add 10.100.0.5/24 dev br-mgmt# 設置路由
ip route add default via 10.100.0.1

2. 添加執行權限

chmod +x /usr/local/bin/setup-network.sh

3. 創建 systemd 服務 (/etc/systemd/system/network-setup.service)

[Unit]
Description=Custom Network Setup
After=network.target[Service]
Type=oneshot
ExecStart=/usr/local/bin/setup-network.sh[Install]
WantedBy=multi-user.target

4. 啟用服務

systemctl daemon-reload
systemctl enable network-setup.service

七、常用診斷命令

1. 通用狀態查看

# 查看所有接口
ip link show# 查看IP地址
ip addr show# 查看路由表
ip route show# 查看ARP表
ip neigh show

2. 綁定診斷

# 查看綁定狀態
cat /proc/net/bonding/bond0# 查看從屬接口狀態
ip -d link show eth1

3. VLAN診斷

# 查看VLAN配置
ip -d link show eth0.100# 查看VLAN流量統計
ethtool -S eth0 | grep rx_vlan

4. 網橋診斷

# 查看網橋狀態
bridge link show# 查看MAC地址表
bridge fdb show br0# 查看STP狀態
bridge stp show br0

八、高級配置技巧

1. 多IP地址配置

# 添加多個IP地址
ip addr add 192.168.1.100/24 dev eth0
ip addr add 10.0.0.100/24 dev eth0

2. VLAN過濾規則

# 添加VLAN過濾規則
bridge vlan add dev eth0 vid 100
bridge vlan add dev eth0 vid 200
bridge vlan del dev eth0 vid 1  # 刪除默認VLAN# 設置PVID
bridge vlan add dev eth0 vid 100 pvid

3. 網橋監控

# 啟用端口監控
bridge link set dev eth0 monitoring on# 查看監控狀態
bridge -j -p link show dev eth0 | jq

4. 綁定負載均衡優化

# 設置高級哈希策略
echo layer3+4 > /sys/class/net/bond0/bonding/xmit_hash_policy# 可用策略:
# layer2:MAC地址
# layer2+3:MAC+IP
# layer3+4:IP+端口(推薦TCP/UDP)
# encap2+3:隧道場景
# encap3+4:隧道IP+端口

九、故障排除指南

1. 接口無法啟動

# 檢查驅動狀態
ethtool -i eth0# 檢查物理連接
ethtool eth0# 查看內核日志
dmesg | grep eth0

2. VLAN流量不通

# 檢查交換機配置
# 確保交換機端口設置為trunk模式# 檢查VLAN ID
ip -d link show eth0.100 | grep 'vlan id'# 檢查父接口狀態
ip link show eth0

3. 綁定接口故障

# 查看綁定狀態
cat /proc/net/bonding/bond0# 檢查MII監控
cat /sys/class/net/bond0/bonding/miimon# 檢查鏈路狀態
ethtool eth1
ethtool eth2

4. 網橋問題

# 檢查STP阻塞
bridge stp show br0 | grep state# 檢查VLAN過濾
cat /sys/class/net/br0/bridge/vlan_filtering# 刷新MAC表
bridge fdb flush dev eth0

十、性能優化建議

1. 禁用不需要的功能

# 禁用ARP
echo 1 > /proc/sys/net/ipv4/conf/eth0/arp_ignore# 禁用IPv6
sysctl -w net.ipv6.conf.all.disable_ipv6=1

2. 調整網絡參數

# 增加socket緩沖區
sysctl -w net.core.rmem_max=16777216
sysctl -w net.core.wmem_max=16777216# 增加連接跟蹤表
sysctl -w net.netfilter.nf_conntrack_max=1000000

3. 中斷平衡

# 安裝irqbalance
apt install irqbalance# 或手動設置CPU親和性
echo 3 > /proc/irq/$(awk -F: '/eth0/{print $1}' /proc/interrupts)/smp_affinity

十一、替代持久化方案

使用 netplan (Ubuntu 18.04+)

network:version: 2renderer: networkdethernets:eth1: {}eth2: {}bonds:bond0:interfaces: [eth1, eth2]parameters:mode: 802.3adlacp-rate: fastvlans:vlan100:link: bond0id: 100bridges:br0:interfaces: [vlan100]addresses: [10.100.0.5/24]

使用 NetworkManager

nmcli con add type bond con-name bond0 ifname bond0 bond.options "mode=802.3ad"
nmcli con add type bond-slave ifname eth1 master bond0
nmcli con add type vlan con-name vlan100 dev bond0 id 100
nmcli con add type bridge con-name br0 ifname br0
nmcli con add type bridge-slave ifname vlan100 master br0
nmcli con modify br0 ipv4.addresses 10.100.0.5/24 ipv4.method manual

通過 iproute2,您可以構建從簡單到復雜的企業級網絡架構,所有命令都可以通過腳本自動化執行。對于生產環境,建議結合持久化方案和監控工具,確保網絡配置的穩定運行。



























Linux iproute2 配置:Ethernet、Bond、VLAN、Bridge 完全指南

iproute2 是 Linux 系統中最強大的網絡配置工具集,提供了底層網絡接口的控制能力。以下是使用 iproute2 配置以太網卡、綁定接口、VLAN 和網橋的詳細指南。

一、iproute2 工具集概覽

工具功能常用命令
ip接口/路由管理ip link, ip addr, ip route
bridge網橋管理bridge link, bridge fdb
tc流量控制tc qdisc, tc filter
ss套接字統計ss -tuln

二、以太網卡 (Ethernet) 配置

1. 基本配置

# 啟用接口
sudo ip link set dev enp3s0 up# 分配靜態IP
sudo ip addr add 192.168.1.100/24 dev enp3s0# 設置默認網關
sudo ip route add default via 192.168.1.1# 設置DNS(需修改/etc/resolv.conf)
echo "nameserver 8.8.8.8" | sudo tee /etc/resolv.conf

2. 高級配置

# 設置MTU(巨幀)
sudo ip link set dev enp3s0 mtu 9000# 啟用混雜模式
sudo ip link set dev enp3s0 promisc on# 禁用IPv6
sudo sysctl -w net.ipv6.conf.enp3s0.disable_ipv6=1

三、綁定接口 (Bond) 配置

1. 創建綁定接口

# 加載bonding模塊
sudo modprobe bonding mode=802.3ad miimon=100# 創建bond接口
sudo ip link add bond0 type bond mode 802.3ad# 設置LACP速率
echo 1 | sudo tee /sys/class/net/bond0/bonding/lacp_rate

2. 添加從屬接口

# 添加第一個接口
sudo ip link set enp3s0 down
sudo ip link set enp3s0 master bond0
sudo ip link set enp3s0 up# 添加第二個接口
sudo ip link set enp4s0 down
sudo ip link set enp4s0 master bond0
sudo ip link set enp4s0 up# 激活bond接口
sudo ip link set bond0 up

3. 驗證綁定狀態

cat /proc/net/bonding/bond0

輸出示例:

Bonding Mode: IEEE 802.3ad Dynamic link aggregation
Slave Interface: enp3s0
MII Status: up
Slave Interface: enp4s0
MII Status: up

四、虛擬局域網 (VLAN) 配置

1. 創建VLAN接口

# 加載8021q模塊
sudo modprobe 8021q# 創建VLAN接口
sudo ip link add link enp3s0 name vlan10 type vlan id 10# 配置IP地址
sudo ip addr add 10.10.10.2/24 dev vlan10# 啟用接口
sudo ip link set dev vlan10 up

2. 驗證VLAN配置

ip -d link show vlan10

輸出示例:

5: vlan10@enp3s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT group default qlen 1000link/ether 00:11:22:33:44:55 brd ff:ff:ff:ff:ff:ffvlan protocol 802.1Q id 10 <REORDER_HDR> 

五、網橋 (Bridge) 配置

1. 創建基本網橋

# 創建網橋接口
sudo ip link add name br0 type bridge# 設置STP參數
sudo ip link set dev br0 type bridge stp_state 1
sudo ip link set dev br0 type bridge forward_delay 1500  # 毫秒
sudo ip link set dev br0 type bridge hello_time 200     # 毫秒# 啟用網橋
sudo ip link set dev br0 up

2. 添加接口到網橋

# 添加物理接口
sudo ip link set enp3s0 master br0# 添加VLAN接口
sudo ip link set vlan10 master br0# 添加綁定接口
sudo ip link set bond0 master br0

3. 配置網橋網絡

# 分配IP地址
sudo ip addr add 192.168.1.100/24 dev br0# 設置默認網關
sudo ip route add default via 192.168.1.1 dev br0

六、完整配置示例:多層級網絡

場景:綁定 + VLAN + 網橋

# 1. 創建綁定
sudo modprobe bonding mode=802.3ad
sudo ip link add bond0 type bond
sudo ip link set enp3s0 down && sudo ip link set enp3s0 master bond0
sudo ip link set enp4s0 down && sudo ip link set enp4s0 master bond0
sudo ip link set bond0 up# 2. 創建VLAN
sudo modprobe 8021q
sudo ip link add link bond0 name vlan10 type vlan id 10
sudo ip link set vlan10 up# 3. 創建網橋
sudo ip link add br0 type bridge
sudo ip link set vlan10 master br0
sudo ip addr add 10.10.10.2/24 dev br0
sudo ip link set br0 up# 4. 添加路由
sudo ip route add default via 10.10.10.1 dev br0

七、驗證命令

1. 接口狀態

ip -c link show

2. IP地址分配

ip -c addr show

3. 路由表

ip -c route show

4. 網橋信息

bridge -c link show
bridge -c fdb show
bridge -c stp show

5. VLAN配置

cat /proc/net/vlan/config

6. 綁定狀態

cat /proc/net/bonding/bond0

八、持久化配置

iproute2 命令是臨時的,重啟后失效。要實現持久化,需結合系統配置:

1. systemd-networkd (推薦)

# /etc/systemd/network/10-bond0.netdev
[NetDev]
Name=bond0
Kind=bond[Bond]
Mode=802.3ad
LACPTransmitRate=fast

2. /etc/network/interfaces (Debian/Ubuntu)

auto bond0
iface bond0 inet manualbond-mode 802.3adbond-miimon 100bond-slaves enp3s0 enp4s0

3. Netplan (Ubuntu 18.04+)

network:version: 2bonds:bond0:interfaces: [enp3s0, enp4s0]parameters:mode: 802.3ad

九、高級功能

1. 流量控制 (QoS)

# 添加HTB隊列
sudo tc qdisc add dev br0 root handle 1: htb default 10# 添加帶寬限制
sudo tc class add dev br0 parent 1: classid 1:10 htb rate 100mbit

2. 網橋防火墻

# 允許橋接流量
sudo sysctl -w net.bridge.bridge-nf-call-iptables=1# 添加防火墻規則
sudo iptables -A FORWARD -i br0 -j ACCEPT

3. 多播優化

# 啟用IGMP監聽
sudo ip link set br0 type bridge mcast_snooping 1# 設置查詢器
sudo ip link set br0 type bridge mcast_querier 1

十、故障排除

1. 接口不工作

# 檢查驅動
ethtool -i enp3s0# 檢查鏈路狀態
ethtool enp3s0

2. VLAN 不通

# 檢查VLAN標簽
tcpdump -i enp3s0 -nn -e vlan# 驗證交換機配置
# 確保交換機端口設置為Trunk模式

3. 網橋不轉發

# 檢查STP阻塞
bridge stp show br0 | grep "state forwarding"# 禁用STP測試
sudo ip link set br0 type bridge stp_state 0

4. 綁定性能差

# 檢查從屬接口狀態
cat /proc/net/bonding/bond0 | grep "MII Status"# 檢查LACP協商
cat /proc/net/bonding/bond0 | grep "partner lacp rate"

十一、最佳實踐

  1. 命名規范

    # VLAN接口:<父接口>.<vlan_id>
    sudo ip link add link bond0 name bond0.10 type vlan id 10# 網橋:br-<用途>
    sudo ip link add name br-mgmt type bridge
    
  2. 安全加固

    # 禁用未使用的協議
    sudo sysctl -w net.ipv6.conf.br0.disable_ipv6=1# 啟用MAC過濾
    sudo bridge link set dev vlan10 learning off
    sudo bridge link set dev vlan10 flood off
    
  3. 性能優化

    # 增加緩沖區
    sudo sysctl -w net.core.netdev_max_backlog=10000# 啟用GRO/GSO
    sudo ethtool -K enp3s0 gro on gso on
    
  4. 配置備份

    # 導出當前配置
    ip link show > network-config.txt
    ip addr show >> network-config.txt
    ip route show >> network-config.txt
    
  5. 腳本化管理

    #!/bin/bash
    # 網絡配置腳本
    ip link set enp3s0 up
    ip link add bond0 type bond mode 802.3ad
    ip link set enp3s0 master bond0
    ip link set enp4s0 master bond0
    ip link add link bond0 name vlan10 type vlan id 10
    ip link add br0 type bridge
    ip link set vlan10 master br0
    ip addr add 192.168.1.100/24 dev br0
    ip link set br0 up
    ip route add default via 192.168.1.1
    

通過 iproute2,您可以實現從簡單到復雜的各種網絡配置,這些命令提供了對 Linux 網絡棧的底層控制能力。對于生產環境,建議將最終配置持久化到系統網絡配置文件中。



























Linux iproute2 配置:Ethernet, Bond, VLAN, Bridge 詳解

iproute2 是 Linux 強大的網絡配置工具集,提供直接操作內核網絡棧的能力。以下是使用 iproute2 配置各類網絡組件的完整指南:

綁定
VLAN
VLAN
橋接
IP配置
物理網卡
Bond接口
VLAN接口
網橋
網絡訪問

一、以太網卡 (Ethernet) 配置

1. 基礎接口管理

# 啟用/禁用接口
sudo ip link set dev eth0 up
sudo ip link set dev eth0 down# 查看接口狀態
ip link show eth0# 設置MAC地址
sudo ip link set dev eth0 address 00:11:22:33:44:55

2. IP地址配置

# 添加IP地址
sudo ip addr add 192.168.1.100/24 dev eth0# 添加輔助IP
sudo ip addr add 192.168.1.101/24 dev eth0 label eth0:1# 刪除IP地址
sudo ip addr del 192.168.1.100/24 dev eth0# 查看IP配置
ip addr show eth0

3. 路由配置

# 添加默認網關
sudo ip route add default via 192.168.1.1 dev eth0# 添加靜態路由
sudo ip route add 10.0.0.0/8 via 192.168.1.2 dev eth0# 查看路由表
ip route show

二、綁定接口 (Bonding) 配置

1. 加載bonding模塊

# 加載模塊
sudo modprobe bonding# 查看支持的模式
cat /sys/class/net/bond0/bonding/mode

2. 創建綁定接口

# 創建bond0接口
sudo ip link add bond0 type bond mode 802.3ad# 配置參數
echo 100 | sudo tee /sys/class/net/bond0/bonding/miimon
echo fast | sudo tee /sys/class/net/bond0/bonding/lacp_rate# 啟用bond0
sudo ip link set bond0 up

3. 添加從屬接口

# 添加物理接口到bond
sudo ip link set eth1 master bond0
sudo ip link set eth2 master bond0# 查看綁定狀態
cat /proc/net/bonding/bond0# 配置IP
sudo ip addr add 192.168.2.100/24 dev bond0

三、虛擬局域網 (VLAN) 配置

1. 創建VLAN接口

# 在eth0上創建VLAN ID 10
sudo ip link add link eth0 name vlan10 type vlan id 10# 啟用VLAN接口
sudo ip link set vlan10 up# 配置IP
sudo ip addr add 10.10.10.2/24 dev vlan10

2. 高級VLAN配置

# 在bond0上創建VLAN
sudo ip link add link bond0 name vlan-bond type vlan id 20# 設置QoS優先級
sudo ip link set vlan-bond type vlan egress-qos-map 0:1 1:2# 查看VLAN配置
ip -d link show vlan10

四、網橋 (Bridge) 配置

1. 創建網橋

# 創建網橋
sudo ip link add name br0 type bridge# 配置網橋參數
sudo ip link set dev br0 type bridge stp_state 0
echo 0 | sudo tee /sys/class/net/br0/bridge/forward_delay# 啟用網橋
sudo ip link set br0 up

2. 添加接口到網橋

# 添加物理接口
sudo ip link set eth3 master br0# 添加VLAN接口
sudo ip link set vlan10 master br0# 添加綁定接口
sudo ip link set bond0 master br0# 查看網橋狀態
bridge link

3. 配置網橋IP

# 為網橋配置IP
sudo ip addr add 192.168.3.1/24 dev br0# 設置默認網關
sudo ip route add default via 192.168.3.254 dev br0

五、高級組合配置示例

場景:Bonding + VLAN + Bridge

# 1. 創建綁定
sudo ip link add bond0 type bond mode active-backup
sudo ip link set eth1 master bond0
sudo ip link set eth2 master bond0
sudo ip link set bond0 up# 2. 在綁定上創建VLAN
sudo ip link add link bond0 name vlan100 type vlan id 100
sudo ip link set vlan100 up# 3. 創建網橋
sudo ip link add br-vlan100 type bridge
sudo ip link set br-vlan100 up# 4. 將VLAN加入網橋
sudo ip link set vlan100 master br-vlan100# 5. 配置網橋IP
sudo ip addr add 10.100.0.1/24 dev br-vlan100

六、永久化配置方法

1. systemd-networkd 配置文件

# /etc/systemd/network/10-bridge.netdev
[NetDev]
Name=br0
Kind=bridge# /etc/systemd/network/20-slave.network
[Match]
Name=eth0[Network]
Bridge=br0

2. netplan 配置 (Ubuntu)

# /etc/netplan/01-config.yaml
network:version: 2renderer: networkdbonds:bond0:interfaces: [eth1, eth2]parameters:mode: 802.3advlans:vlan100:id: 100link: bond0bridges:br0:interfaces: [vlan100]addresses: [192.168.100.1/24]

3. 啟動腳本 (通用)

#!/bin/bash
# /etc/rc.local# 創建bond
ip link add bond0 type bond mode balance-rr
ip link set eth1 master bond0
ip link set eth2 master bond0
ip link set bond0 up# 創建VLAN
ip link add link bond0 name vlan100 type vlan id 100
ip link set vlan100 up# 創建網橋
ip link add br0 type bridge
ip link set vlan100 master br0
ip addr add 192.168.100.1/24 dev br0
ip link set br0 up

七、診斷與維護命令

1. 通用狀態查看

# 查看所有接口
ip -c link show# 查看IP配置
ip -c addr show# 查看路由
ip -c route show

2. 綁定診斷

# 查看綁定狀態
cat /proc/net/bonding/bond0# 查看從屬接口狀態
grep "" /sys/class/net/bond0/bonding/slave_*

3. VLAN診斷

# 查看VLAN配置
ip -d link show vlan100# 查看VLAN過濾
bridge vlan show

4. 網橋診斷

# 查看網橋信息
bridge fdb show# 查看STP狀態
bridge stp show

八、性能優化技巧

1. 禁用不需要的功能

# 關閉IPv6
echo 1 > /proc/sys/net/ipv6/conf/all/disable_ipv6# 關閉ARP
ip link set dev eth0 arp off

2. 調整內核參數

# 增加網絡緩沖區
echo "net.core.rmem_max=16777216" >> /etc/sysctl.conf
echo "net.core.wmem_max=16777216" >> /etc/sysctl.conf
sysctl -p

3. 中斷平衡

# 安裝工具
sudo apt install irqbalance# 手動設置CPU親和性
echo 3 > /proc/irq/$(grep eth0 /proc/interrupts | cut -d: -f1)/smp_affinity

九、常見問題解決方案

問題診斷命令解決方案
接口不工作ip link showsudo ethtool -s eth0 speed 1000 duplex full autoneg on
VLAN不通tcpdump -i eth0 -nn -e vlan交換機端口配置為trunk模式
綁定故障cat /proc/net/bonding/bond0檢查物理鏈路狀態和綁定模式
網橋環路bridge stp show啟用STP:ip link set br0 type bridge stp_state 1
性能低下ethtool -S eth0啟用GRO/GSO:ethtool -K eth0 gro on gso on

十、命令速查表

功能命令
接口管理ip link set dev eth0 up/down
IP配置ip addr add 192.168.1.2/24 dev eth0
路由配置ip route add default via 192.168.1.1
綁定配置ip link add bond0 type bond mode active-backup
VLAN配置ip link add link eth0 name vlan10 type vlan id 10
網橋配置ip link add br0 type bridge
添加接口ip link set eth0 master br0
狀態查看ip -c addr show

通過掌握這些 iproute2 命令,您可以靈活配置從簡單到復雜的各種網絡拓撲。雖然這些配置是臨時的,但結合系統配置工具可輕松實現永久化。



























Linux iproute2 網絡配置詳解:Ethernet, Bond, VLAN, Bridge

iproute2 是現代 Linux 系統的網絡配置工具集,提供了強大靈活的命令行工具來管理網絡設備。下面將詳細介紹如何使用 iproute2 配置以太網、綁定、VLAN 和網橋。

配置概覽

創建
聚合
添加標簽
添加標簽
加入
加入
加入
物理網卡
以太網接口
綁定接口
VLAN接口
網橋

一、以太網接口 (Ethernet)

基礎配置

# 查看所有網絡接口
ip link show# 啟用/禁用接口
sudo ip link set enp3s0 up
sudo ip link set enp3s0 down# 配置IP地址
sudo ip addr add 192.168.1.100/24 dev enp3s0
sudo ip addr del 192.168.1.100/24 dev enp3s0# 設置默認網關
sudo ip route add default via 192.168.1.1

高級配置

# 更改MAC地址
sudo ip link set dev enp3s0 address 00:11:22:33:44:55# 設置MTU(最大傳輸單元)
sudo ip link set dev enp3s0 mtu 9000# 啟用/禁用混雜模式
sudo ip link set enp3s0 promisc on
sudo ip link set enp3s0 promisc off# 查看接口統計信息
ip -s link show enp3s0

二、綁定接口 (Bonding)

創建綁定接口

# 加載bonding模塊
sudo modprobe bonding# 創建bond接口
sudo ip link add bond0 type bond mode 802.3ad# 配置綁定模式(可選)
sudo ip link set bond0 type bond mode active-backup# 添加從屬接口
sudo ip link set enp3s0 master bond0
sudo ip link set enp4s0 master bond0# 啟用bond接口
sudo ip link set bond0 up# 分配IP地址
sudo ip addr add 192.168.1.100/24 dev bond0

綁定模式詳解

模式說明
balance-rr0輪詢負載均衡
active-backup1主備故障切換
balance-xor2基于哈希的負載均衡
broadcast3所有從屬接口廣播
802.3ad4LACP動態聚合
balance-tlb5傳輸負載均衡
balance-alb6自適應負載均衡

管理綁定接口

# 查看綁定狀態
cat /proc/net/bonding/bond0# 添加新從屬接口
sudo ip link set enp5s0 master bond0# 移除從屬接口
sudo ip link set enp5s0 nomaster# 更改綁定參數
sudo ip link set bond0 type bond miimon 100 lacp_rate fast

三、虛擬局域網 (VLAN)

創建VLAN接口

# 在物理接口上創建VLAN
sudo ip link add link enp3s0 name vlan100 type vlan id 100# 在綁定接口上創建VLAN
sudo ip link add link bond0 name vlan200 type vlan id 200# 啟用VLAN接口
sudo ip link set vlan100 up# 分配IP地址
sudo ip addr add 10.0.100.5/24 dev vlan100

高級VLAN配置

# 設置VLAN優先級 (QoS)
sudo ip link set vlan100 type vlan egress-qos-map 0:1 1:2 2:3# 配置原生VLAN
sudo ip link set vlan100 type vlan reorder_hdr off# 查看VLAN信息
ip -d link show vlan100# 刪除VLAN接口
sudo ip link del vlan100

四、網橋 (Bridge)

創建和管理網橋

# 創建網橋
sudo ip link add name br0 type bridge# 啟用網橋
sudo ip link set br0 up# 添加接口到網橋
sudo ip link set enp3s0 master br0
sudo ip link set vlan100 master br0# 從網橋移除接口
sudo ip link set enp3s0 nomaster# 為網橋分配IP
sudo ip addr add 192.168.1.1/24 dev br0

網橋高級配置

# 啟用STP(生成樹協議)
sudo ip link set br0 type bridge stp_state 1# 設置轉發延遲
sudo ip link set br0 type bridge forward_delay 5# 設置最大生存時間
sudo ip link set br0 type bridge max_age 10# 查看網橋信息
bridge link show
bridge fdb show br0

綜合配置示例

場景:綁定+VLAN+網橋

# 1. 創建綁定接口
sudo ip link add bond0 type bond mode 802.3ad
sudo ip link set enp3s0 master bond0
sudo ip link set enp4s0 master bond0
sudo ip link set bond0 up# 2. 在綁定接口上創建VLAN
sudo ip link add link bond0 name vlan100 type vlan id 100
sudo ip link set vlan100 up# 3. 創建網橋
sudo ip link add name br0 type bridge
sudo ip link set br0 up# 4. 添加VLAN接口到網橋
sudo ip link set vlan100 master br0# 5. 為網橋分配IP
sudo ip addr add 10.0.100.1/24 dev br0# 6. 設置默認網關
sudo ip route add default via 10.0.100.254

狀態查看與診斷

通用診斷命令

# 查看所有接口
ip link show# 查看IP地址配置
ip addr show# 查看路由表
ip route show# 查看ARP表
ip neigh show# 查看網絡統計
ip -s link

組件專用診斷

# 綁定接口狀態
cat /proc/net/bonding/bond0# VLAN信息
ip -d link show | grep vlan# 網橋信息
bridge link
bridge fdb show
bridge vlan show# STP狀態
bridge -j link show | jq '.[] | select(.master == "br0") | .stp_state'

持久化配置

iproute2 的配置是臨時的,重啟后會丟失。要永久保存配置:

方法1:使用 /etc/network/interfaces (Debian/Ubuntu)

# /etc/network/interfaces
auto br0
iface br0 inet staticaddress 192.168.1.1netmask 255.255.255.0bridge_ports enp3s0bridge_stp off

方法2:使用 systemd-networkd

# /etc/systemd/network/br0.netdev
[NetDev]
Name=br0
Kind=bridge# /etc/systemd/network/br0.network
[Match]
Name=br0[Network]
Address=192.168.1.1/24

方法3:創建初始化腳本

#!/bin/bash
# /usr/local/bin/network-setup.ship link add bond0 type bond mode 802.3ad
ip link set enp3s0 master bond0
ip link set bond0 upip link add link bond0 name vlan100 type vlan id 100
ip link set vlan100 upip link add name br0 type bridge
ip link set vlan100 master br0
ip addr add 10.0.100.1/24 dev br0
ip link set br0 up

添加到 systemd 服務:

# /etc/systemd/system/network-setup.service
[Unit]
Description=Custom Network Setup
After=network.target[Service]
Type=oneshot
ExecStart=/usr/local/bin/network-setup.sh[Install]
WantedBy=multi-user.target

高級技巧

1. 網絡命名空間隔離

# 創建網絡命名空間
sudo ip netns add ns1# 在命名空間中創建虛擬接口
sudo ip link add veth0 type veth peer name veth1
sudo ip link set veth1 netns ns1# 將虛擬接口加入網橋
sudo ip link set veth0 master br0

2. 流量監控

# 監控網橋流量
sudo tcpdump -i br0 -n# 監控VLAN流量
sudo tcpdump -i vlan100 -n -e vlan# 監控綁定接口
sudo tcpdump -i bond0 -n

3. 性能優化

# 禁用接口卸載功能
sudo ethtool -K enp3s0 rx off tx off tso off gso off gro off# 增加網橋緩存
sudo sysctl -w net.bridge.bridge-nf-call-iptables=0
sudo sysctl -w net.core.netdev_max_backlog=10000

4. 安全加固

# 禁用VLAN接口的MAC地址學習
sudo bridge link set dev vlan100 learning off# 設置靜態MAC地址表
sudo bridge fdb add 00:11:22:33:44:55 dev vlan100 master static# 啟用網橋防火墻
sudo iptables -A FORWARD -i br0 -j DROP

故障排除

常見問題解決

  1. 接口無法加入網橋

    # 檢查接口狀態
    ip link show enp3s0# 確保接口未激活
    sudo ip link set enp3s0 down
    sudo ip addr flush dev enp3s0
    
  2. VLAN流量不通

    # 檢查物理接口是否支持VLAN
    ethtool -k enp3s0 | grep vlan# 驗證交換機端口配置(trunk模式)
    
  3. 綁定接口無流量

    # 檢查綁定狀態
    cat /proc/net/bonding/bond0# 驗證鏈路狀態
    ethtool enp3s0
    
  4. STP環路問題

    # 臨時禁用STP
    sudo ip link set br0 type bridge stp_state 0# 檢查端口狀態
    bridge link
    

診斷工具

# 網絡連通性測試
ping -I br0 8.8.8.8# 路由追蹤
traceroute -i br0 8.8.8.8# 帶寬測試
iperf3 -c server_ip -i 1 -t 10 -B br0_ip# 丟包檢測
mtr -rwbzc 100 8.8.8.8

通過掌握這些 iproute2 命令,您可以靈活配置和管理復雜的 Linux 網絡環境,從簡單的以太網連接到高級的綁定、VLAN 和網橋配置。



























在 Linux 中,iproute2 套件(核心命令是 ip)是管理網絡接口、路由、策略路由等的現代標準工具集,取代了過時的 net-tools(如 ifconfig, route, arp)。以下是使用 iproute2 配置以太網、綁定(Bond)、虛擬局域網(VLAN)和網橋(Bridge)的指南:

重要前提:

  1. 需要 root 權限: 所有配置命令都需要 sudo 或以 root 用戶身份執行。
  2. 臨時 vs 持久化: ip 命令所做的更改是臨時的,重啟后會丟失。要使配置持久化,你需要:
    • 使用網絡管理器: 如 NetworkManager (nmcli, nmtui), systemd-networkd(配置文件在 /etc/systemd/network/)。
    • 編輯配置文件: 如 Debian/Ubuntu 的 /etc/network/interfaces,或 RHEL/CentOS/Fedora 的 /etc/sysconfig/network-scripts/ifcfg-* (較新版本也轉向 NetworkManager 或 systemd-networkd)。
    • 本文主要關注 ip 命令的運行時配置。持久化方法請參考你的發行版文檔。
  3. 接口命名: 示例中使用通用名稱(eth0, bond0, vlan10, br0)。你的實際物理接口名稱可能不同(如 enp0s3, ens192)。

1. 以太網 (Ethernet) 接口配置

  • 查看接口狀態:

    ip link show              # 顯示所有接口狀態
    ip addr show             # 顯示所有接口的 IP 地址
    ip addr show eth0        # 顯示 eth0 的詳細信息
    ip -s link show eth0     # 顯示 eth0 的統計信息(流量、錯誤等)
    
  • 啟用/禁用接口:

    ip link set eth0 up      # 啟用 eth0
    ip link set eth0 down    # 禁用 eth0
    
  • 分配 IP 地址(臨時):

    ip addr add 192.168.1.10/24 dev eth0   # 添加 IPv4 地址
    ip addr add 2001:db8::10/64 dev eth0   # 添加 IPv6 地址
    ip addr del 192.168.1.10/24 dev eth0   # 刪除 IPv4 地址
    
  • 設置 MTU:

    ip link set dev eth0 mtu 9000   # 設置 MTU 為 9000(Jumbo Frames)
    

2. 綁定 (Bonding / Link Aggregation) 配置

Bonding 將多個物理接口(Slave)聚合成一個邏輯接口(Master)以提供冗余、負載均衡或增加帶寬。

  • 加載內核模塊:

    modprobe bonding          # 加載 bonding 模塊(通常已自動加載)
    
  • 創建 Bond 接口:

    ip link add bond0 type bond mode 802.3ad   # 創建名為 bond0 的接口,使用 LACP (mode 4)
    

    關鍵參數 mode

    • balance-rr (0):輪詢(負載均衡,容錯)。
    • active-backup (1):主備(容錯)。
    • balance-xor (2):基于源/目的 MAC 的 XOR 哈希(負載均衡,容錯)。
    • broadcast (3):廣播(容錯)。
    • 802.3ad (4):LACP(動態聚合,需要交換機支持,負載均衡,容錯) - 常用
    • balance-tlb (5):適配器傳輸負載均衡(容錯)。
    • balance-alb (6):適配器傳輸負載均衡 + 接收負載均衡(ARP 協商)(容錯) - 常用
  • 配置 Bond 參數 (可選):

    ip link set bond0 type bond miimon 100   # 設置鏈路監控間隔為 100ms (重要!)
    ip link set bond0 type bond lacp_rate fast # 設置 LACP 速率 (僅 mode 4)
    
  • 將物理接口加入 Bond:

    ip link set eth0 master bond0   # 將 eth0 加入 bond0 作為 slave
    ip link set eth1 master bond0   # 將 eth1 加入 bond0 作為 slave
    
  • 啟用 Bond 和 Slave 接口:

    ip link set bond0 up
    ip link set eth0 up
    ip link set eth1 up
    
  • 為 Bond 接口分配 IP 地址:

    ip addr add 192.168.1.20/24 dev bond0
    
  • 查看 Bond 狀態:

    cat /proc/net/bonding/bond0   # 查看 bond0 的詳細狀態和 slave 信息
    

3. 虛擬局域網 (VLAN) 配置

VLAN 在單個物理接口上創建邏輯隔離的網絡。

  • 創建 VLAN 接口:

    ip link add link eth0 name eth0.10 type vlan id 10   # 在 eth0 上創建 VLAN ID 10 的接口 eth0.10
    
    • link eth0: 指定父接口 (物理接口或 Bond)。
    • name eth0.10: 指定 VLAN 接口的名稱(習慣命名)。
    • type vlan id 10: 指定類型為 VLAN,ID 為 10。
  • 啟用 VLAN 接口:

    ip link set dev eth0.10 up
    
  • 為 VLAN 接口分配 IP 地址:

    ip addr add 192.168.10.1/24 dev eth0.10   # 分配 VLAN 10 的 IP
    
  • 查看 VLAN 接口:

    ip -d link show eth0.10  # `-d` 顯示詳細信息,能看到 VLAN ID
    

4. 網橋 (Bridge) 配置

網橋創建一個虛擬交換機,將多個接口(物理、虛擬如 VM tap 接口、VLAN、Bond)連接在同一個二層域中。

  • 創建網橋接口:

    ip link add name br0 type bridge   # 創建名為 br0 的網橋
    
  • 配置網橋參數 (可選):

    ip link set dev br0 type bridge stp_state 1   # 啟用 STP (Spanning Tree Protocol) 防止環路
    ip link set dev br0 type bridge forward_delay 2   # 設置轉發延遲 (秒)
    
  • 將接口加入網橋:

    ip link set eth0 master br0   # 將 eth0 加入網橋 br0 (成為橋端口)
    ip link set eth1 master br0   # 將 eth1 加入網橋 br0
    ip link set tap0 master br0   # 將虛擬化 tap 接口 tap0 加入網橋 br0
    ip link set bond0 master br0  # 將 Bond 接口 bond0 加入網橋 br0
    ip link set eth0.10 master br0 # 將 VLAN 接口 eth0.10 加入網橋 br0
    
    • 加入網橋的接口不應該有自己的 IP 地址(管理地址除外)。流量在二層轉發。
  • 啟用網橋和橋端口:

    ip link set dev br0 up        # 啟用網橋
    ip link set dev eth0 up       # 啟用橋端口
    ip link set dev eth1 up
    # ... 啟用其他橋端口 ...
    
  • 為網橋分配 IP 地址 (可選):
    如果你想讓網橋本身具有一個 IP 地址(例如,作為這個橋接網絡的網關或管理地址):

    ip addr add 192.168.1.1/24 dev br0
    
  • 查看網橋信息:

    bridge link show          # 顯示所有橋端口及其狀態
    bridge vlan show          # 顯示網橋上的 VLAN 配置 (如果使用)
    ip link show type bridge  # 顯示所有網橋接口
    ip -d link show br0       # 顯示 br0 的詳細信息
    

總結與關鍵命令回顧

功能核心命令
查看ip link show, ip addr show, ip -s link show, bridge link show, cat /proc/net/bonding/bond0
以太網ip link set ethX up/down, ip addr add/del ... dev ethX
Bondip link add bondX type bond mode ..., ip link set ethX master bondX
VLANip link add link PARENT name NAME type vlan id VID
Bridgeip link add name brX type bridge, ip link set DEV master brX
通用啟用ip link set dev DEV up
分配 IPip addr add ADDR/MASK dev DEV

重要提醒:

  • 這些 ip 命令的配置不是持久的。服務器重啟后配置會丟失。
  • 持久化配置至關重要! 務必根據你的 Linux 發行版使用其網絡配置機制(/etc/network/interfaces, NetworkManager, systemd-networkd, /etc/sysconfig/network-scripts/)將所需的配置保存下來。
  • 在修改生產環境配置前,務必在測試環境驗證或在維護窗口操作。
  • 使用 ip -d link show DEV 查看接口的詳細信息(類型、狀態、參數、從屬關系等)是故障排除的關鍵步驟。

通過熟練掌握這些 iproute2 命令,你可以靈活地配置和管理 Linux 系統中復雜的網絡拓撲結構。



























Linux iproute2 配置指南:以太網、綁定、VLAN、網橋

iproute2 是現代 Linux 網絡配置的核心工具集,提供了強大的命令行接口。以下是使用 iproute2 配置各種網絡組件的完整指南:

一、以太網接口配置

基礎配置:

# 啟用接口
sudo ip link set eth0 up# 配置IP地址
sudo ip addr add 192.168.1.100/24 dev eth0# 添加默認路由
sudo ip route add default via 192.168.1.1# 查看接口狀態
ip -c link show eth0

高級配置:

# 設置MTU(巨型幀)
sudo ip link set eth0 mtu 9000# 啟用混雜模式
sudo ip link set eth0 promisc on# 修改MAC地址
sudo ip link set eth0 address 00:11:22:33:44:55# 啟用硬件特性
sudo ethtool -K eth0 rx on tx on tso on gso on

二、綁定(Bond)接口配置

創建綁定接口:

# 加載bonding模塊
sudo modprobe bonding mode=802.3ad# 創建bond0接口
sudo ip link add bond0 type bond mode 802.3ad lacp_rate=fast# 添加物理接口
sudo ip link set eth0 master bond0
sudo ip link set eth1 master bond0# 啟用綁定
sudo ip link set bond0 up

綁定模式配置:

# 查看可用模式
cat /sys/class/net/bond0/bonding/mode# 更改模式(示例:主備模式)
echo active-backup | sudo tee /sys/class/net/bond0/bonding/mode# 設置主接口
echo eth0 | sudo tee /sys/class/net/bond0/bonding/primary# 查看綁定狀態
cat /proc/net/bonding/bond0

三、VLAN 配置

基礎VLAN配置:

# 在物理接口上創建VLAN
sudo ip link add link eth0 name eth0.10 type vlan id 10# 在綁定接口上創建VLAN
sudo ip link add link bond0 name bond0.20 type vlan id 20# 啟用VLAN接口
sudo ip link set eth0.10 up# 配置IP地址
sudo ip addr add 192.168.10.100/24 dev eth0.10

高級VLAN配置:

# 設置VLAN優先級
sudo ip link set eth0.10 type vlan egress-qos-map 0:1 1:2 2:3# 添加多個VLAN
for id in {10..20}; dosudo ip link add link eth0 name eth0.$id type vlan id $id
done# 查看VLAN配置
cat /proc/net/vlan/config

四、網橋(Bridge)配置

基礎網橋配置:

# 創建網橋
sudo ip link add br0 type bridge# 啟用網橋
sudo ip link set br0 up# 添加接口到網橋
sudo ip link set eth0 master br0
sudo ip link set vlan10 master br0# 配置網橋IP
sudo ip addr add 10.0.0.1/24 dev br0

高級網橋功能:

# 啟用STP
sudo ip link set br0 type bridge stp_state 1# 設置轉發延遲(毫秒)
sudo ip link set br0 type bridge forward_delay 1500# 啟用VLAN過濾
sudo ip link set br0 type bridge vlan_filtering 1# 配置VLAN
sudo bridge vlan add vid 10 dev eth0 pvid
sudo bridge vlan add vid 10,20 dev eth0# 查看網橋狀態
bridge -c link show

五、綜合配置示例:綁定 + VLAN + 網橋

# 1. 創建綁定接口
sudo modprobe bonding mode=802.3ad
sudo ip link add bond0 type bond
sudo ip link set eth0 master bond0
sudo ip link set eth1 master bond0
sudo ip link set bond0 up# 2. 在綁定上創建VLAN
sudo ip link add link bond0 name bond0.100 type vlan id 100
sudo ip link set bond0.100 up# 3. 創建網橋
sudo ip link add br0 type bridge
sudo ip link set br0 up# 4. 添加接口到網橋
sudo ip link set bond0.100 master br0
sudo ip link set eth2 master br0# 5. 配置網橋IP
sudo ip addr add 10.0.0.1/24 dev br0# 6. 啟用STP
sudo ip link set br0 type bridge stp_state 1# 7. 配置VLAN過濾
sudo bridge vlan add vid 100 dev bond0.100 pvid
sudo bridge vlan add vid 100 dev eth2# 8. 查看完整配置
bridge -c link show

六、永久生效配置

Debian/Ubuntu (/etc/network/interfaces):

# 物理接口
auto eth0
iface eth0 inet manualbond-master bond0# 綁定接口
auto bond0
iface bond0 inet manualbond-mode 802.3adbond-slaves eth0 eth1# VLAN接口
auto bond0.100
iface bond0.100 inet manualvlan-raw-device bond0# 網橋
auto br0
iface br0 inet staticbridge_ports bond0.100 eth2address 10.0.0.1netmask 255.255.255.0bridge_stp onbridge_vlan_aware yes

RHEL/CentOS (ifcfg文件):

# /etc/sysconfig/network-scripts/ifcfg-bond0
DEVICE=bond0
TYPE=Bond
BONDING_MASTER=yes
BONDING_OPTS="mode=802.3ad miimon=100"
ONBOOT=yes# /etc/sysconfig/network-scripts/ifcfg-bond0.100
DEVICE=bond0.100
VLAN=yes
ONBOOT=yes
BRIDGE=br0# /etc/sysconfig/network-scripts/ifcfg-br0
DEVICE=br0
TYPE=Bridge
IPADDR=10.0.0.1
NETMASK=255.255.255.0
ONBOOT=yes
STP=yes

七、診斷與監控命令

# 查看鏈路狀態
ip -c link# 查看IP地址配置
ip -c addr# 查看路由表
ip -c route# 查看ARP表
ip -c neigh# 監控網絡流量
tc -s qdisc show dev eth0# 數據包捕獲
tcpdump -i br0 -nnv# 查看連接跟蹤
conntrack -L

八、性能優化技巧

# 啟用多隊列
sudo ethtool -L eth0 combined 8# 調整緩沖區大小
sudo sysctl -w net.core.rmem_max=16777216
sudo sysctl -w net.core.wmem_max=16777216# 增加連接跟蹤表大小
sudo sysctl -w net.netfilter.nf_conntrack_max=1000000# 優化IRQ平衡
sudo apt install irqbalance
sudo systemctl enable irqbalance

九、常見問題解決

VLAN流量不通:

# 檢查VLAN配置
bridge vlan show# 啟用VLAN過濾
sudo ip link set br0 type bridge vlan_filtering 1# 檢查物理接口VLAN支持
ethtool -k eth0 | grep vlan

綁定接口不工作:

# 檢查綁定狀態
cat /proc/net/bonding/bond0# 檢查物理鏈路
ethtool eth0# 檢查模塊參數
modinfo bonding

網橋STP問題:

# 查看STP狀態
bridge stp show# 強制重新計算STP
sudo ip link set dev br0 down
sudo ip link set dev br0 up

提示:對于生產環境,建議:

  1. 先在臨時會話中測試配置
  2. 使用版本控制管理網絡配置文件
  3. 配置前備份現有設置
  4. 使用網絡監控工具如Prometheus+grafana監控網絡狀態

iproute2 提供了強大靈活的網絡配置能力,掌握這些命令可以高效管理各種復雜網絡環境。



























在 Linux 中使用 iproute2 工具集(主要是 ip 命令)配置網絡接口是一種強大且靈活的方式。以下是配置以太網、綁定、VLAN 和網橋的完整指南:


🔧 1. 基本工具

# 安裝 iproute2(通常預裝)
sudo apt install iproute2  # Debian/Ubuntu
sudo yum install iproute  # CentOS/RHEL# 主要命令:
ip link  # 管理網絡接口
ip addr  # 管理IP地址
ip route # 管理路由

🌐 2. 以太網 (Ethernet) 配置

基本操作:
# 查看所有接口
ip link show# 啟用/禁用接口
sudo ip link set enp1s0 up
sudo ip link set enp1s0 down# 設置IP地址
sudo ip addr add 192.168.1.10/24 dev enp1s0# 添加默認網關
sudo ip route add default via 192.168.1.1
持久化配置(使用 netplan):
# /etc/netplan/01-netcfg.yaml
network:version: 2renderer: networkdethernets:enp1s0:addresses: [192.168.1.10/24]gateway4: 192.168.1.1nameservers:addresses: [8.8.8.8, 8.8.4.4]

應用配置:

sudo netplan apply

🔗 3. 綁定 (Bond) 配置

將多個物理接口綁定為單一邏輯接口

步驟:
  1. 加載 bonding 模塊

    sudo modprobe bonding mode=active-backup
    # 可選模式:balance-rr, active-backup, 802.3ad, balance-tlb, balance-alb
    
  2. 創建綁定接口

    sudo ip link add bond0 type bond mode active-backup
    
  3. 添加從屬接口

    sudo ip link set enp1s0 master bond0
    sudo ip link set enp2s0 master bond0
    
  4. 激活并配置 IP

    sudo ip link set bond0 up
    sudo ip addr add 192.168.1.20/24 dev bond0
    
檢查狀態:
cat /proc/net/bonding/bond0

輸出示例:

Bonding Mode: fault-tolerance (active-backup)
Slave Interface: enp1s0 (active)
Slave Interface: enp2s0 (backup)

🏷? 4. 虛擬局域網 (VLAN) 配置

在物理接口或綁定接口上創建 VLAN

# 在 enp1s0 上創建 VLAN ID 100
sudo ip link add link enp1s0 name vlan100 type vlan id 100# 激活并配置 IP
sudo ip link set vlan100 up
sudo ip addr add 192.168.100.10/24 dev vlan100
驗證:
ip -d link show vlan100
# 輸出應包含:vlan protocol 802.1Q id 100

🌉 5. 網橋 (Bridge) 配置

連接虛擬機/容器到物理網絡

# 創建網橋
sudo ip link add name br0 type bridge# 關閉 STP(可選)
sudo ip link set br0 type bridge stp_state 0# 添加接口到網橋
sudo ip link set enp1s0 master br0
sudo ip link set vlan100 master br0  # 可添加 VLAN 接口# 激活并配置 IP
sudo ip link set br0 up
sudo ip addr add 192.168.1.30/24 dev br0
驗證:
bridge link show
# 輸出示例:
# 2: enp1s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 master br0 state forwarding

🧩 6. 組合配置示例

拓撲:綁定接口 → VLAN → 網橋

# 1. 創建綁定
sudo ip link add bond0 type bond mode=802.3ad
sudo ip link set enp1s0 master bond0
sudo ip link set enp2s0 master bond0# 2. 在綁定上創建 VLAN
sudo ip link add link bond0 name bond0.100 type vlan id 100# 3. 創建網橋并添加 VLAN
sudo ip link add br0 type bridge
sudo ip link set bond0.100 master br0# 4. 激活所有設備
sudo ip link set bond0 up
sudo ip link set bond0.100 up
sudo ip link set br0 up# 5. 配置網橋 IP
sudo ip addr add 10.0.100.1/24 dev br0

🔍 7. 實用診斷命令

命令功能
ip -c -br link彩色簡潔接口狀態
ip -d link show dev br0查看設備詳情
bridge fdb show查看網橋MAC表
ip route show查看路由表
ip neigh show查看ARP表

?? 8. 持久化配置

iproute2 命令是臨時的,重啟后失效。持久化方法:

方法1:使用 netplan(Ubuntu)
# /etc/netplan/01-netcfg.yaml
network:version: 2renderer: networkdbonds:bond0:interfaces: [enp1s0, enp2s0]parameters:mode: 802.3advlans:vlan100:id: 100link: bond0bridges:br0:interfaces: [vlan100]addresses: [192.168.100.1/24]
方法2:使用 systemd-networkd

創建 /etc/systemd/network/ 下的配置文件(如前文所述)

方法3:/etc/network/interfaces(Debian)
auto bond0
iface bond0 inet manualbond-slaves enp1s0 enp2s0bond-mode 802.3adauto vlan100
iface vlan100 inet manualvlan-raw-device bond0auto br0
iface br0 inet staticbridge_ports vlan100address 192.168.100.1netmask 255.255.255.0

🛠? 9. 故障排除

問題:虛擬機無法通過網橋通信
解決

# 1. 檢查網橋狀態
bridge link# 2. 允許網橋流量通過防火墻
sudo iptables -I FORWARD -m physdev --physdev-is-bridged -j ACCEPT# 3. 啟用IP轉發
sudo sysctl -w net.ipv4.ip_forward=1

問題:綁定接口不工作
解決

# 檢查綁定模式
cat /proc/net/bonding/bond0# 重新加載模塊
sudo modprobe -r bonding
sudo modprobe bonding mode=active-backup

通過掌握這些 iproute2 命令,您可以靈活配置各種復雜網絡拓撲,無需依賴圖形工具。



























在 Linux 中使用 iproute2 套件(特別是 ip 命令)配置網絡接口(以太網、Bond、VLAN、Bridge)是現代發行版推薦的方式,它比傳統的 ifconfig/route/vconfig/brctl 更強大和統一。

以下是使用 iproute2 配置這些接口類型的基本指南:

重要前提:

  1. 需要 root 權限: 所有命令都需要使用 sudo 或以 root 用戶執行。
  2. 臨時 vs 持久化: ip 命令的配置在重啟后會丟失。要永久生效,你需要將配置寫入網絡配置文件(例如 /etc/network/interfaces - Debian/Ubuntu, /etc/sysconfig/network-scripts/ifcfg-* - RHEL/CentOS 7, /etc/NetworkManager/system-connections/ - NetworkManager, 或使用 netplan - Ubuntu 18.04+)。本文主要關注 ip 命令本身。
  3. 模塊加載: 確保所需內核模塊已加載(通常自動加載):
    • Bonding: modprobe bonding
    • 802.1Q VLAN: modprobe 8021q
    • Bridging: modprobe bridge

1. 以太網接口 (Ethernet)

  • 查看接口信息:

    ip link show # 顯示所有鏈路狀態
    ip addr show # 顯示所有接口的IP地址
    ip addr show eth0 # 顯示特定接口 eth0 的詳細信息
    ip -s link show eth0 # 顯示 eth0 的統計信息
    
  • 啟用/禁用接口:

    ip link set eth0 up
    ip link set eth0 down
    
  • 分配 IP 地址 (IPv4):

    ip addr add 192.168.1.100/24 dev eth0 # 添加IP地址
    ip addr del 192.168.1.100/24 dev eth0 # 刪除IP地址
    
  • 設置默認網關 (IPv4):

    ip route add default via 192.168.1.1 # 添加默認網關
    ip route del default via 192.168.1.1 # 刪除默認網關
    ip route show # 顯示路由表
    
  • 配置 IPv6 地址:

    ip -6 addr add 2001:db8::1/64 dev eth0
    ip -6 route add default via 2001:db8::fe
    

2. 綁定接口 (Bonding / Link Aggregation)

Bonding 將多個物理接口(稱為 slaves)聚合成一個邏輯接口(稱為 bond master),提供冗余或負載均衡。

  • 創建 Bond 接口 (bond0):

    ip link add bond0 type bond mode active-backup # 創建名為 bond0 的 bond,模式為 active-backup
    

    關鍵參數 mode

    • balance-rr (0): 輪詢(負載均衡,基本冗余)。
    • active-backup (1): 主備(僅冗余)。
    • balance-xor (2): 基于源/目標 MAC 的哈希(負載均衡,冗余)。
    • broadcast (3): 所有從接口廣播(極端冗余)。
    • 802.3ad (4): LACP (Link Aggregation Control Protocol) - 需要交換機支持(動態聚合,負載均衡,冗余)。
    • balance-tlb (5): 自適應傳輸負載均衡(無需交換機支持,發送負載均衡)。
    • balance-alb (6): 自適應負載均衡(無需交換機支持,發送和接收負載均衡)。
  • 配置 Bond 參數 (可選,在創建時或之后設置):

    # 在創建時設置(推薦):
    ip link add bond0 type bond mode 802.3ad miimon 100 lacp_rate fast xmit_hash_policy layer3+4# 或在創建后設置:
    ip link set bond0 type bond miimon 100 # 設置鏈路監控間隔為100ms
    

    常用參數:

    • miimon=: 鏈路監控間隔(毫秒)。強烈建議設置(例如 miimon 100)。
    • downdelay=, updelay=: 鏈路失效/恢復延遲(毫秒)。
    • lacp_rate=: LACP 速率 (slow - 30s, fast - 1s),僅對 802.3ad 有效。
    • xmit_hash_policy=: 負載均衡哈希策略(如 layer2, layer2+3, layer3+4),對 balance-xor, 802.3ad, balance-tlb, balance-alb 有效。
    • primary=: 指定首選接口(用于 active-backup 等模式),例如 primary eth0
  • 將物理接口加入 Bond (作為 Slave):

    ip link set eth0 master bond0 # 將 eth0 加入 bond0
    ip link set eth1 master bond0 # 將 eth1 加入 bond0
    
  • 從 Bond 中移除接口:

    ip link set eth0 nomaster # 將 eth0 從 bond 中移除
    
  • 為 Bond 接口分配 IP 地址并啟用:

    ip addr add 192.168.1.200/24 dev bond0
    ip link set bond0 up
    
  • 查看 Bond 狀態:

    cat /proc/net/bonding/bond0 # 查看 bond0 的詳細狀態信息(包括模式、slave 狀態)
    ip link show bond0 # 查看 bond0 的鏈路狀態
    

Bond 模式對比表

模式編號模式名稱冗余負載均衡交換機要求備注
0balance-rr??無特殊要求簡單輪詢,包順序可能亂序
1active-backup??無特殊要求僅一個接口活動,最簡單可靠的冗余
2balance-xor??無特殊要求基于哈希的負載均衡
3broadcast??無特殊要求所有流量在所有接口廣播,極端冗余,帶寬浪費
4802.3ad??必須支持 LACP動態聚合,最佳負載均衡和冗余,需交換機配合
5balance-tlb??無需特殊配置發送負載均衡,接收由活動接口處理
6balance-alb??無需特殊配置發送和接收負載均衡,需ARP協商

3. 虛擬局域網 (VLAN)

VLAN 在單個物理接口上創建多個邏輯接口,通過 VLAN ID (1-4094) 隔離流量。

  • 創建 VLAN 子接口:

    ip link add link eth0 name eth0.10 type vlan id 10 # 在 eth0 上創建 VLAN ID 10 的子接口 eth0.10
    
    • link eth0: 指定父接口(物理接口或 bond)。
    • name eth0.10: 指定新 VLAN 子接口的名稱(約定俗成使用 .)。
    • type vlan id 10: 指定類型為 VLAN,ID 為 10。
  • 為 VLAN 接口分配 IP 地址并啟用:

    ip addr add 192.168.10.1/24 dev eth0.10
    ip link set eth0.10 up
    
  • 物理接口處理:

    • 物理接口 (eth0) 本身需要 IP 地址(除非用于管理 VLAN 本身)。它應該處于 up 狀態:
      ip link set eth0 up
      
    • 物理接口連接的交換機端口需要配置為 Trunk 端口,允許攜帶相應 VLAN ID (10) 的標簽幀通過。

4. 網橋接口 (Bridge)

網橋創建一個二層交換域,將多個接口(物理、虛擬、VLAN)連接在一起,使它們像連接在同一臺交換機上一樣通信。

  • 創建網橋接口 (br0):

    ip link add name br0 type bridge # 創建名為 br0 的網橋
    
  • 配置網橋參數 (可選):

    ip link set dev br0 type bridge stp_state 1 # 啟用生成樹協議 (STP),防止環路
    ip link set dev br0 type bridge forward_delay 2 # 設置轉發延遲(秒)
    ip link set dev br0 type bridge hello_time 1 # 設置HELLO時間(秒)
    
  • 將接口加入網橋:

    ip link set eth0 master br0 # 將 eth0 加入 br0
    ip link set tap0 master br0 # 將虛擬接口 tap0 加入 br0
    ip link set eth0.10 master br0 # 將 VLAN 接口 eth0.10 加入 br0
    
  • 從網橋中移除接口:

    ip link set eth0 nomaster # 將 eth0 從網橋中移除
    
  • 為網橋接口分配 IP 地址并啟用:

    ip addr add 192.168.1.1/24 dev br0 # 通常網橋本身需要一個IP作為網關或管理地址
    ip link set br0 up
    
  • 重要提示:

    • 加入網橋的物理/虛擬接口 (eth0, tap0, eth0.10) 不應該 有自己的 IP 地址。它們應該只處于 up 狀態:
      ip link set eth0 up
      ip link set tap0 up
      ip link set eth0.10 up
      
    • 所有三層通信(路由)都應該發生在網橋接口 (br0) 上。
    • 如果網橋用于連接虛擬機(通過 tap 接口)或容器,這是常見用法。
    • 啟用 STP (stp_state 1) 在網橋連接多個物理接口或有環路風險時非常重要,否則可能產生廣播風暴。

組合示例:帶 VLAN 的 Bond 接入網橋

一個常見場景:將兩個物理接口綁定以提高冗余/帶寬,在 Bond 上配置 VLAN,然后將 VLAN 子接口加入網橋供虛擬機使用。

  1. 創建 Bond:

    ip link add bond0 type bond mode 802.3ad miimon 100
    ip link set eth0 master bond0
    ip link set eth1 master bond0
    ip link set bond0 up
    
  2. 在 Bond 上創建 VLAN:

    ip link add link bond0 name bond0.20 type vlan id 20 # VLAN 20 for Servers
    ip link add link bond0 name bond0.30 type vlan id 30 # VLAN 30 for Guests
    ip link set bond0.20 up
    ip link set bond0.30 up
    
  3. 創建網橋并加入 VLAN 子接口:

    ip link add name br-servers type bridge
    ip link set bond0.20 master br-servers
    ip addr add 10.20.1.1/24 dev br-servers
    ip link set br-servers upip link add name br-guests type bridge
    ip link set bond0.30 master br-guests
    ip addr add 10.30.1.1/24 dev br-guests
    ip link set br-guests up
    
  4. 配置交換機:

    • 連接 eth0eth1 的端口配置為 LACP 聚合組 (mode 4)。
    • 連接聚合組的交換機端口配置為 Trunk 端口,允許 VLAN 20 和 VLAN 30(帶標簽)。

故障排查與狀態查看:

  • ip link show / ip addr show: 查看所有接口狀態和配置。
  • ip route show: 查看路由表。
  • bridge link show: 查看哪些接口屬于哪些網橋。
  • bridge vlan show: 查看網橋上的 VLAN 配置(較新內核)。
  • cat /proc/net/vlan/config: 查看 VLAN 配置。
  • cat /proc/net/bonding/bondX: 查看 Bond 詳細狀態。
  • ethtool ethX: 查看物理接口狀態和協商信息。
  • tcpdump -i <interface>: 抓包分析流量。

持久化配置:

記住 ip 命令是臨時的。配置網絡重啟后不丟失,必須使用你 Linux 發行版的網絡配置機制:

  • Debian/Ubuntu (ifupdown): /etc/network/interfaces
  • RHEL/CentOS 7: /etc/sysconfig/network-scripts/ifcfg-<interface_name> + /etc/sysconfig/network-scripts/ifcfg-<bridge_name> 等。
  • NetworkManager (通用): 使用 nmclinmtui 命令行/文本界面工具配置,配置存儲在 /etc/NetworkManager/system-connections/
  • Ubuntu 18.04+ (Netplan): /etc/netplan/*.yaml 配置文件,然后運行 sudo netplan apply

務必查閱你的發行版文檔以了解持久化配置的具體語法和方法。iproute2ip 命令是配置和調試的基礎工具。



























以下是 iproute2 命令大全,涵蓋網絡接口、IP地址、路由、隧道、ARP 管理等核心功能,基于 Linux 現代網絡管理工具整理。命令需 root 權限執行,臨時生效(重啟失效),持久化需結合網絡配置文件(如 /etc/network/interfacessystemd-networkd)。


?? 一、基礎命令結構

ip [OPTIONS] OBJECT { COMMAND | help }
  • OBJECTlink(接口)、address(IP地址)、route(路由)、neigh(ARP)、tunnel(隧道)等
  • 常用選項
    -s(統計信息)、-4(IPv4)、-6(IPv6)、-d(詳細信息)、-br(簡潔輸出)。

🔧 二、網絡接口管理(ip link

命令功能示例
查看接口顯示所有接口狀態ip link show
啟停接口啟用/禁用接口ip link set eth0 up
ip link set eth0 down
修改MTU設置最大傳輸單元ip link set eth0 mtu 9000
修改MAC更改硬件地址ip link set eth0 address 00:0c:29:xx:xx:xx
多播控制啟用/禁用多播ip link set eth0 multicast on

📡 三、IP地址管理(ip address

命令功能示例
查看IP顯示所有IP地址ip addr show
添加IP分配IPv4/IPv6地址ip addr add 192.168.1.10/24 dev eth0
刪除IP移除指定地址ip addr del 192.168.1.10/24 dev eth0
別名地址添加帶標簽的別名ip addr add 192.168.1.20/24 label eth0:1 dev eth0
清除IP清空接口所有IPip addr flush dev eth0

🗺? 四、路由管理(ip route

命令功能示例
查看路由顯示路由表ip route show
添加路由靜態路由/默認網關ip route add 10.0.0.0/24 via 192.168.1.1
ip route add default via 192.168.1.1
修改路由替換現有路由ip route replace default via 192.168.1.2
刪除路由移除指定路由ip route del 10.0.0.0/24
多表路由查看特定路由表ip route show table local

📡 五、鄰居表管理(ARP,ip neigh

命令功能示例
查看ARP顯示ARP緩存ip neigh show
添加ARP靜態ARP條目ip neigh add 192.168.1.100 lladdr 00:0c:29:xx:xx:xx dev eth0
刪除ARP移除ARP條目ip neigh del 192.168.1.100 dev eth0

?? 六、隧道管理(ip tunnel

命令功能示例
創建GRE隧道建立GRE隧道ip tunnel add gre0 mode gre local 10.1.1.1 remote 20.2.2.1 ttl 255
創建IPIP隧道建立IPIP隧道ip tunnel add ipip0 mode ipip local 10.1.1.1 remote 20.2.2.1
查看隧道顯示隧道信息ip tunnel show
刪除隧道移除隧道接口ip tunnel del gre0

📊 七、Socket統計(ss替代netstat

命令功能示例
監聽端口顯示所有監聽端口ss -l
TCP連接查看所有TCP連接ss -t -a
UDP連接查看所有UDP連接ss -u -a
進程關聯顯示Socket關聯進程ss -p
狀態過濾按狀態篩選(如ESTABLISHED)ss -anltp state established

🎚? 八、策略路由(ip ruleip route

ip rule show  # 顯示策略規則
ip rule add from 192.168.1.10 lookup 100  # 添加策略
ip route add default via 192.168.2.1 table 100  # 為規則表添加路由

💎 總結:核心命令速查表

功能常用命令
接口狀態ip link showip -s link
IP地址ip addr add/delip addr flush
路由ip route add/delip route replace
ARPip neigh showip neigh add/del
隧道ip tunnel add/del
Socket統計ss -lss -tss -p

?? 注意

  • 以上命令需 sudo 執行,重啟后失效,持久化需編輯網絡配置文件(如 NetworkManager 或 /etc/network/interfaces)。
  • 查看詳細信息可加 -d(如 ip -d link show eth0),統計信息用 -s(如 ip -s -s addr)。
    完整文檔見 iproute2 Wiki。





















































在 Linux 系統中,iproute2 工具集(ip 命令)是管理網絡接口的核心工具。以下是針對 以太網(Ethernet)、綁定(Bond)、虛擬局域網(VLAN)、網橋(Bridge) 的配置方法詳解,包含關鍵命令和操作邏輯:


一、以太網(Ethernet)基礎配置

# 查看所有網絡接口
ip link show# 啟用/禁用接口
ip link set eth0 up
ip link set eth0 down# 配置靜態IP地址(臨時生效,重啟失效)
ip addr add 192.168.1.100/24 dev eth0
ip route add default via 192.168.1.1# 刪除IP地址
ip addr del 192.168.1.100/24 dev eth0

二、綁定接口(Bond)配置

綁定模式(如 mode=4 為 LACP 動態聚合):

# 加載 bonding 模塊
modprobe bonding mode=4 miimon=100 lacp_rate=1# 創建 Bond 接口
ip link add bond0 type bond mode 802.3ad# 將物理接口加入 Bond
ip link set eth0 master bond0
ip link set eth1 master bond0# 啟用 Bond 接口并配置IP
ip link set bond0 up
ip addr add 192.168.1.200/24 dev bond0

持久化配置(Debian/Ubuntu 示例):

# /etc/network/interfaces
auto bond0
iface bond0 inet staticaddress 192.168.1.200netmask 255.255.255.0gateway 192.168.1.1bond-mode 4bond-miimon 100bond-lacp-rate 1bond-slaves eth0 eth1

三、虛擬局域網(VLAN)配置

# 創建 VLAN 子接口(父接口為 eth0,VLAN ID=10)
ip link add link eth0 name eth0.10 type vlan id 10# 啟用 VLAN 接口并配置IP
ip link set eth0.10 up
ip addr add 192.168.10.100/24 dev eth0.10# 查看 VLAN 配置
ip -d link show eth0.10

持久化配置(RHEL/CentOS 示例):

# /etc/sysconfig/network-scripts/ifcfg-eth0.10
DEVICE=eth0.10
BOOTPROTO=static
IPADDR=192.168.10.100
NETMASK=255.255.255.0
VLAN=yes
PHYSDEV=eth0

四、網橋(Bridge)配置

# 創建網橋
ip link add name br0 type bridge# 將物理接口或 VLAN 接口加入網橋
ip link set eth2 master br0
ip link set eth0.10 master br0# 啟用網橋并配置IP
ip link set br0 up
ip addr add 192.168.2.1/24 dev br0# 查看網橋信息
bridge link show

典型場景
將虛擬機或容器的虛擬接口(如 vnet0)連接到網橋:

ip link set vnet0 master br0

五、綜合示例:Bond + VLAN + Bridge

# 1. 創建 Bond 接口
ip link add bond0 type bond mode 802.3ad
ip link set eth0 master bond0
ip link set eth1 master bond0
ip link set bond0 up# 2. 在 Bond 上創建 VLAN 子接口
ip link add link bond0 name bond0.20 type vlan id 20
ip link set bond0.20 up# 3. 創建網橋并將 VLAN 接口加入
ip link add name br-vlan20 type bridge
ip link set bond0.20 master br-vlan20
ip link set br-vlan20 up
ip addr add 192.168.20.1/24 dev br-vlan20

六、注意事項

  1. 持久化配置
    使用 ifupdown(Debian)或 network-scripts(RHEL)保存配置,或使用 systemd-networkd

  2. 交換機配置

    • Bonding 模式(如 LACP)需交換機端啟用對應協議。
    • VLAN 需在交換機上配置 Trunk 端口。
  3. 調試工具

    # 查看網絡接口狀態
    ip -s link
    # 查看路由表
    ip route show
    # 查看 ARP 表
    ip neigh show
    

通過以上步驟,您可以靈活組合 iproute2 的功能,實現復雜的網絡拓撲。



























在Linux系統中,使用 iproute2 工具可以靈活地配置以太網、綁定(Bond)、虛擬局域網(VLAN)和網橋(Bridge)。以下是詳細的配置方法和步驟:


1. 以太網(Ethernet)配置

基本操作
  • 啟用/禁用網絡接口

    # 啟用接口 eth0
    ip link set eth0 up
    # 禁用接口 eth0
    ip link set eth0 down
    
  • 分配IP地址

    # 為 eth0 分配 IP 地址 192.168.1.10/24
    ip addr add 192.168.1.10/24 dev eth0
    
  • 刪除IP地址

    ip addr del 192.168.1.10/24 dev eth0
    
  • 查看接口信息

    ip addr show
    
  • 添加默認路由

    ip route add default via 192.168.1.1 dev eth0
    

2. 綁定(Bond)配置

綁定(Bond)將多個物理網卡綁定為一個邏輯接口,用于負載均衡或冗余。

步驟
  1. 創建綁定接口

    ip link add name bond0 type bond
    
  2. 設置綁定模式(如 balance-rractive-backup):

    echo "balance-rr" > /sys/class/net/bond0/bonding/mode
    
  3. 添加從屬接口

    ip link set eth0 master bond0
    ip link set eth1 master bond0
    
  4. 啟用綁定接口

    ip link set bond0 up
    
  5. 分配IP地址

    ip addr add 192.168.1.20/24 dev bond0
    
持久化配置
  • 在 Debian/Ubuntu 中,編輯 /etc/network/interfaces

    auto bond0
    iface bond0 inet staticaddress 192.168.1.20netmask 255.255.255.0bond-mode balance-rrbond-miimon 100bond-slaves eth0 eth1
    
  • 在 RHEL/CentOS 中,編輯 /etc/sysconfig/network-scripts/ifcfg-bond0

    DEVICE=bond0
    TYPE=Bond
    BONDING_MASTER=yes
    BOND_NAME=bond0
    BOND_IFACES=eth0 eth1
    BOND_OPTS="mode=balance-rr miimon=100"
    

3. 虛擬局域網(VLAN)配置

VLAN 用于在物理網絡上劃分邏輯子網。

步驟
  1. 加載 VLAN 內核模塊

    modprobe 8021q
    
  2. 創建 VLAN 接口

    # 在 eth0 上創建 VLAN ID 為 10 的子接口
    ip link add link eth0 name eth0.10 type vlan id 10
    
  3. 啟用 VLAN 接口

    ip link set eth0.10 up
    
  4. 分配 IP 地址

    ip addr add 192.168.10.1/24 dev eth0.10
    
  5. 驗證 VLAN 配置

    ip link show
    ip addr show eth0.10
    
持久化配置
  • 在 Debian/Ubuntu 中,編輯 /etc/network/interfaces

    auto eth0.10
    iface eth0.10 inet staticaddress 192.168.10.1netmask 255.255.255.0vlan-raw-device eth0
    
  • 在 RHEL/CentOS 中,編輯 /etc/sysconfig/network-scripts/ifcfg-eth0.10

    DEVICE=eth0.10
    BOOTPROTO=static
    ONBOOT=yes
    IPADDR=192.168.10.1
    NETMASK=255.255.255.0
    VLAN=yes
    

4. 網橋(Bridge)配置

網橋用于連接多個網絡接口,實現二層轉發。

步驟
  1. 創建網橋接口

    ip link add name br0 type bridge
    
  2. 添加物理接口到網橋

    ip link set eth0 master br0
    ip link set eth1 master br0
    
  3. 啟用網橋接口

    ip link set br0 up
    
  4. 分配 IP 地址

    ip addr add 192.168.1.30/24 dev br0
    
  5. 關閉 STP(生成樹協議)(可選):

    brctl stp br0 off
    
持久化配置
  • 在 Debian/Ubuntu 中,編輯 /etc/network/interfaces

    auto br0
    iface br0 inet staticaddress 192.168.1.30netmask 255.255.255.0bridge_ports eth0 eth1bridge_stp off
    
  • 在 RHEL/CentOS 中,編輯 /etc/sysconfig/network-scripts/ifcfg-br0

    DEVICE=br0
    TYPE=Bridge
    BOOTPROTO=static
    IPADDR=192.168.1.30
    NETMASK=255.255.255.0
    DELAY=0
    STP=off
    BRIDGE_PORTS=eth0 eth1
    

5. 驗證配置

  • 查看網橋狀態

    bridge link show
    
  • 查看 VLAN 狀態

    ip link show
    
  • 測試連通性

    ping 192.168.1.1
    

6. 注意事項

  • 持久化問題iproute2 的配置是臨時的,重啟后會失效。需通過發行版的網絡配置文件或工具(如 NetworkManager)實現持久化。
  • 內核模塊:確保相關內核模塊(如 bridge8021q)已加載。
  • 防火墻規則:檢查防火墻是否阻止了接口間的流量(如 iptablesnftables)。

通過以上步驟,您可以靈活配置 Linux 系統的以太網、綁定、VLAN 和網橋。如果需要更復雜的場景(如 VXLAN、VRF),可以參考《Linux高級路由與流量控制實戰指南》等資源。



























Linux的iproute2工具是配置網絡接口的強大工具,下面介紹如何使用它配置以太網、綁定、VLAN和網橋。

1. 以太網接口配置

使用ip linkip address命令配置物理網卡:

# 激活網卡
ip link set eth0 up# 設置靜態IP地址
ip address add 192.168.1.10/24 dev eth0# 添加默認網關
ip route add default via 192.168.1.1# 查看配置結果
ip address show eth0
ip route show

2. 綁定接口配置

綁定多個物理網卡以增加帶寬或冗余性:

# 創建bond0接口(mode=0為負載均衡)
ip link add bond0 type bond mode balance-rr# 將物理網卡加入bond0
ip link set eth0 master bond0
ip link set eth1 master bond0# 配置bond0的IP地址
ip address add 192.168.1.20/24 dev bond0
ip link set bond0 up# 查看綁定狀態
cat /proc/net/bonding/bond0

3. VLAN接口配置

創建基于物理網卡的VLAN子接口:

# 創建eth0的VLAN 10子接口
ip link add link eth0 name eth0.10 type vlan id 10# 配置VLAN接口IP地址
ip address add 192.168.10.10/24 dev eth0.10
ip link set eth0.10 up# 查看VLAN配置
ip link show

4. 網橋接口配置

創建網橋以連接多個網絡設備:

# 創建網橋br0
ip link add br0 type bridge# 將物理網卡加入網橋
ip link set eth0 master br0# 配置網橋IP地址
ip address add 192.168.1.30/24 dev br0
ip link set br0 up# 查看網橋狀態
bridge link show

持久化配置

以上配置重啟后會丟失,若需持久化,可在/etc/netplan/目錄下創建YAML配置文件(Ubuntu/Debian):

# /etc/netplan/01-network.yaml
network:version: 2renderer: networkdethernets:eth0:dhcp4: nobonds:bond0:interfaces: [eth0, eth1]mode: balance-rraddresses: [192.168.1.20/24]gateway4: 192.168.1.1vlans:eth0.10:id: 10link: eth0addresses: [192.168.10.10/24]bridges:br0:interfaces: [eth0]addresses: [192.168.1.30/24]dhcp4: no

應用配置:

netplan apply

注意事項

  • Bond模式:常見模式有balance-rr(負載均衡)、active-backup(主備)、802.3ad(LACP)等。
  • VLAN標簽:確保交換機端口配置與VLAN ID一致。
  • 網橋轉發:網橋會自動轉發流量,無需額外路由配置。

根據實際需求調整參數,配置完成后可用ipbridgeethtool命令驗證狀態。



























下面給出一份“從 0 到 1”完全用 iproute2ip 命令族)構建
「以太網 → Bond → VLAN → Bridge」四層的完整示例。
所有操作都可以遠程執行,不依賴傳統 ifconfigvconfigbrctl 等已被棄用的工具。


1. 前置約定

物理網卡用途本機名字
第一塊上聯eno1
第二塊上聯eno2
第三塊管理eno3

目標:

  • eno1+eno2 做成 LACP Bond
  • 在 Bond 上起 VLAN 100(業務)、VLAN 200(存儲)
  • 把 VLAN-100 再接到一個 Linux Bridge br100,給 KVM 虛擬機用

2. 載入所需模塊(一次性)

modprobe bonding
modprobe 8021q

3. 創建 Bond 設備(bond0

# 1) 建 bond0,模式 802.3ad(LACP)
ip link add bond0 type bond mode 802.3ad miimon 100# 2) 把兩個物理口塞進去
ip link set eno1 master bond0
ip link set eno2 master bond0# 3) 起鏈路
ip link set eno1 up
ip link set eno2 up
ip link set bond0 up

4. 在 Bond 上起 VLAN 子接口

# VLAN 100
ip link add link bond0 name bond0.100 type vlan id 100
ip link set bond0.100 up# VLAN 200
ip link add link bond0 name bond0.200 type vlan id 200
ip link set bond0.200 up

5. 創建 Linux Bridge(br100)并把 VLAN-100 掛進去

# 1) 建橋
ip link add br100 type bridge# 2) 把 VLAN 接口作為橋的一個“端口”
ip link set bond0.100 master br100# 3) 起橋
ip link set br100 up

6. 給各接口配置地址(舉例)

# 管理口(eno3)——獨立地址
ip addr add 10.0.0.1/24 dev eno3
ip link set eno3 up# VLAN 200 只做存儲,直接給地址
ip addr add 192.168.200.10/24 dev bond0.200# Bridge br100 不需要 IP,宿主機用 VLAN-100 地址
ip addr add 192.168.100.1/24 dev bond0.100

7. 虛擬機/容器如何使用

  • KVM:把虛擬機 tap 設備 vnet0 直接塞進 br100 即可
    ip link set vnet0 master br100

  • Docker/Macvlan:可省略 Bridge 層,直接把容器 macvlan 掛在 bond0.100 上。


8. 永久化(推薦)

把以上命令寫進 systemd-networkdNetplan(Ubuntu)、nmcli(RHEL/CentOS 8+)的
keyfile/native 語法里即可,避免寫 /etc/rc.local


9. 常用排障命令速查

# 查看 bond 狀態
cat /proc/net/bonding/bond0# 查看 VLAN 信息
ip -d link show bond0.100# 查看橋端口
bridge -d link show master br100# 抓 VLAN 100 流量
tcpdump -e -n -i bond0 vlan 100

以上即 只用 iproute2 完成「Ethernet → Bond → VLAN → Bridge」的完整生命周期配置。



























Linux iproute2 配置指南:以太網、綁定、VLAN 與網橋

以下是使用 iproute2 工具管理 Linux 網絡的配置方法,所有命令需 root 權限執行:

一、以太網接口配置
  1. 查看接口
    ip link show
  2. 啟用/禁用接口
    ip link set dev eth0 up  # 啟用
    ip link set dev eth0 down # 禁用
    
  3. 設置 IP 地址
    ip addr add 192.168.1.10/24 dev eth0
    
  4. 設置接口別名
    ip link set dev eth0 alias "Primary Network"
二、綁定(Bonding)配置
  1. 創建綁定接口(模式為 active-backup):
    ip link add bond0 type bond mode active-backup
    
  2. 添加從屬接口
    ip link set eth1 master bond0
    ip link set eth2 master bond0
    
  3. 激活綁定接口
    ip link set bond0 up
    ip addr add 10.0.0.2/24 dev bond0
    

    支持的模式:balance-rr, active-backup, balance-xor

三、VLAN 配置
  1. 創建 VLAN 接口(基于 eth0):
    ip link add link eth0 name eth0.10 type vlan id 10
    
  2. 配置 VLAN IP
    ip addr add 172.16.10.1/24 dev eth0.10
    ip link set dev eth0.10 up
    

    注意:創建后 VLAN 接口默認為 down 狀態

四、網橋(Bridge)配置
  1. 創建網橋
    ip link add br0 type bridge
    
  2. 添加接口到網橋
    ip link set eth0 master br0
    ip link set bond0 master br0
    
  3. 激活網橋
    ip link set br0 up
    ip addr add 192.168.1.1/24 dev br0
    
  4. 查看網橋狀態
    bridge link show
五、持久化配置

以上配置重啟后失效,需通過以下方式持久化:

  1. 寫入 /etc/network/interfaces (Debian)
  2. 使用 Netplan 配置文件 (Ubuntu 18.04+)
  3. 創建 systemd-networkd 配置文件

關鍵提示:所有虛擬鏈路(VLAN/網橋/綁定)創建后默認為 down 狀態,需手動啟用



























以下是使用 Linux 的 iproute2 工具配置以太網(Ethernet)、綁定(Bond)、虛擬局域網(VLAN)和網橋(Bridge)的詳細指南,結合了多篇技術網頁的最佳實踐和注意事項。


一、以太網(Ethernet)基礎配置

1. 查看接口狀態
ip link show          # 查看所有接口狀態
ip -s link show eth0  # 查看 eth0 的統計信息(如流量)
2. 配置靜態 IP 地址
ip addr add 192.168.1.100/24 dev eth0  # 添加 IP
ip link set eth0 up                   # 啟用接口
3. 設置默認網關
ip route add default via 192.168.1.1 dev eth0
4. 修改 MTU
ip link set eth0 mtu 1500  # 設置 MTU 為 1500 字節

二、網絡接口綁定(Bonding)

1. 創建 Bond 接口
ip link add bond0 type bond mode active-backup  # 主動-備份模式
ip link set bond0 up
2. 添加成員接口
ip link set eth0 master bond0
ip link set eth1 master bond0
3. 配置參數(可選)
  • 負載均衡模式mode balance-xor(基于哈希的流量分配)
  • 鏈路監控miimon=100(每 100ms 檢查鏈路狀態)
4. 持久化配置(以 CentOS 為例)

/etc/sysconfig/network-scripts/ifcfg-bond0 中:

DEVICE=bond0
TYPE=Bond
BONDING_MASTER=yes
BONDING_OPTS="mode=active-backup miimon=100"
IPADDR=192.168.1.100
NETMASK=255.255.255.0

三、虛擬局域網(VLAN)配置

1. 創建 VLAN 接口
ip link add link eth0 name eth0.100 type vlan id 100  # 在 eth0 上創建 VLAN 100
ip link set eth0.100 up
2. 配置 IP 地址
ip addr add 192.168.100.1/24 dev eth0.100
3. 持久化配置(以 Ubuntu 為例)

/etc/network/interfaces 中:

auto eth0.100
iface eth0.100 inet staticaddress 192.168.100.1netmask 255.255.255.0vlan-raw-device eth0

四、網橋(Bridge)配置

1. 創建網橋
ip link add br0 type bridge
ip link set br0 up
2. 添加物理接口到網橋
ip link set eth0 master br0  # 將 eth0 加入網橋
ip link set eth0 up          # 啟用接口
3. 移除接口從網橋
ip link set eth0 nomaster
4. 配置網橋 IP
ip addr add 192.168.1.1/24 dev br0  # 網橋本身分配 IP
5. 持久化配置(以 NetworkManager 為例)
nmcli con add type bridge ifname br0
nmcli con modify bridge-slave-eth0 master br0

五、高級場景與注意事項

1. 綁定模式選擇
  • active-backup(默認):高可用性,僅一個接口活躍。
  • 802.3ad:鏈路聚合,需交換機支持 LACP。
  • balance-tlb:基于傳輸負載均衡。
2. VLAN 與網橋結合
# 創建 VLAN 接口并橋接
ip link add eth0.100 type vlan id 100
ip link add br0 type bridge
ip link set eth0.100 master br0
3. 常見問題
  • 接口未加載模塊modprobe 8021q(VLAN)或 modprobe bonding(綁定)。
  • IP 沖突:確保網橋和成員接口不重復分配 IP。
  • STP(生成樹協議):啟用 bridge link set br0 stp_state 1 防止環路。

六、與傳統工具對比

工具優勢適用場景
iproute2動態配置、支持高級策略路由云環境、容器化網絡
ifconfig簡單易用傳統服務器基礎配置
brctl舊版網橋管理兼容舊系統

通過以上步驟,可以靈活配置復雜的網絡拓撲。建議結合 ip -d link showbridge link 命令驗證配置細節。對于生產環境,推薦使用 NetworkManager 或 systemd-networkd 實現持久化配置。



























在Linux中使用iproute2工具可以方便地配置網絡接口,包括以太網、綁定、虛擬局域網(VLAN)和網橋。以下是每種配置的基本步驟和示例:


1. 以太網(Ethernet)配置

以太網是最常見的網絡接口類型。以下是配置以太網接口的基本步驟:

示例:配置以太網接口 eth0
# 設置靜態IP地址
ip addr add 192.168.1.100/24 dev eth0# 設置默認網關
ip route add default via 192.168.1.1# 啟用接口
ip link set dev eth0 up

2. 綁定(Bonding)配置

綁定(Bonding)允許多個以太網接口聚合為一個邏輯接口,以提高帶寬或實現冗余。

示例:創建綁定接口 bond0
# 加載綁定模塊
modprobe bonding# 創建綁定接口并設置模式(例如:平衡輪詢模式)
ip link add bond0 type bond mode balance-rr# 將物理接口 `eth0` 和 `eth1` 添加到綁定接口
ip link set eth0 master bond0
ip link set eth1 master bond0# 啟用綁定接口
ip link set bond0 up# 配置IP地址
ip addr add 192.168.1.100/24 dev bond0

3. 虛擬局域網(VLAN)配置

VLAN允許在物理網絡上劃分多個邏輯網絡。

示例:創建VLAN接口 eth0.10
# 創建VLAN接口
ip link add link eth0 name eth0.10 type vlan id 10# 啟用VLAN接口
ip link set eth0.10 up# 配置IP地址
ip addr add 192.168.10.100/24 dev eth0.10

4. 網橋(Bridge)配置

網橋允許多個網絡接口連接到同一個邏輯網絡,通常用于虛擬化環境。

示例:創建網橋接口 br0
# 創建網橋接口
ip link add name br0 type bridge# 將物理接口 `eth0` 和 `eth1` 添加到網橋
ip link set eth0 master br0
ip link set eth1 master br0# 啟用網橋接口
ip link set br0 up# 配置IP地址
ip addr add 192.168.1.100/24 dev br0

總結

  • 以太網:直接配置物理接口。
  • 綁定:聚合多個物理接口為一個邏輯接口。
  • VLAN:在物理網絡上劃分邏輯網絡。
  • 網橋:連接多個接口到一個邏輯網絡。

根據具體需求選擇合適的配置方式,并確保網絡設備和驅動支持相關功能。



























在Linux中,iproute2 工具集(如 ipbridge 命令)提供了靈活的網絡配置功能。以下是使用 iproute2 配置 以太網(Ethernet)綁定(Bond)虛擬局域網(VLAN)網橋(Bridge) 的分步指南:


1. 以太網(Ethernet)

為物理網卡(如 eth0)配置IP地址并啟用接口:

# 配置IP地址和子網掩碼
sudo ip addr add 192.168.1.10/24 dev eth0# 啟用接口
sudo ip link set dev eth0 up# (可選)添加默認路由
sudo ip route add default via 192.168.1.1

2. 綁定(Bonding)

將多個物理接口綁定為一個邏輯接口(以模式 active-backup 為例):

# 加載bonding內核模塊
sudo modprobe bonding# 創建bond接口(名為bond0)
sudo ip link add bond0 type bond mode active-backup# 添加物理接口到bond(如eth0和eth1)
sudo ip link set dev eth0 master bond0
sudo ip link set dev eth1 master bond0# 啟用bond接口并分配IP
sudo ip link set dev bond0 up
sudo ip addr add 192.168.1.20/24 dev bond0

關鍵參數

  • mode:綁定模式(如 balance-rr, active-backup, 802.3ad, 等)
  • 可通過 cat /proc/net/bonding/bond0 查看bond狀態。

3. 虛擬局域網(VLAN)

在物理接口(如 eth0)上創建VLAN接口(以VLAN ID 100為例):

# 加載8021q模塊(若未加載)
sudo modprobe 8021q# 創建VLAN接口(eth0.100)
sudo ip link add link eth0 name eth0.100 type vlan id 100# 啟用VLAN接口并分配IP
sudo ip link set dev eth0.100 up
sudo ip addr add 192.168.100.1/24 dev eth0.100

4. 網橋(Bridge)

創建網橋(如 br0)并將接口(如 eth0vlan100)加入橋:

# 創建橋接口
sudo ip link add name br0 type bridge# 將接口加入橋(例如將eth0加入橋)
sudo ip link set dev eth0 master br0# 啟用橋接口并分配IP
sudo ip link set dev br0 up
sudo ip addr add 192.168.1.30/24 dev br0# (可選)啟用STP(生成樹協議)
sudo bridge link set dev eth0 cost 100  # 設置端口開銷

持久化配置

以上命令僅在運行時生效,重啟后失效。若需永久生效,需根據發行版配置網絡文件:

  • Debian/Ubuntu:修改 /etc/network/interfaces 或使用 netplan
  • RHEL/CentOS:修改 /etc/sysconfig/network-scripts/ifcfg-* 文件。
  • 通用工具:使用 NetworkManager(如 nmtuinmcli)。

驗證工具

  • 查看接口狀態ip link showip addr
  • 查看路由表ip route
  • 檢查橋接配置bridge link show
  • 驗證VLANcat /proc/net/vlan/config

典型用例示例

  1. 綁定 eth0eth1bond0(模式 802.3ad)。
  2. bond0 上創建 VLAN 100
  3. VLAN 100 的接口加入網橋 br0
  4. br0 分配IP地址。

如有進一步問題(如具體發行版的持久化配置或復雜網絡拓撲),請提供更多細節!



























以下是使用 iproute2 工具集配置 Linux 網絡的核心指南,涵蓋以太網(Ethernet)、綁定(Bond)、虛擬局域網(VLAN)和網橋(Bridge)的配置方法。所有操作均基于 ip 命令,適用于現代 Linux 內核(≥2.2)。


一、以太網(Ethernet)基礎配置

iproute2 取代了傳統的 ifconfig/route,提供更統一的語法:

  • 查看接口狀態
    ip link show          # 所有接口
    ip -s link show eth0  # 指定接口的詳細狀態(含流量統計)
    
  • 配置靜態 IP
    ip addr add 192.168.1.100/24 dev eth0  # 添加 IP
    ip link set eth0 up                     # 啟用接口
    ip route add default via 192.168.1.1    # 設置默認網關
    
  • 多 IP 綁定到單接口(適用于服務隔離):
    ip addr add 192.168.1.101/24 dev eth0 label eth0:1
    ip addr add 192.168.1.102/24 dev eth0 label eth0:2
    

持久化

  • CentOS/RHEL:編輯 /etc/sysconfig/network-scripts/ifcfg-eth0
  • Ubuntu:使用 Netplan(/etc/netplan/*.yaml)或 NetworkManager

二、虛擬局域網(VLAN)配置

通過 ip 命令創建 VLAN 接口(無需 vconfig):

# 創建 VLAN ID 100 的虛擬接口
ip link add link eth0 name eth0.100 type vlan id 100
ip addr add 192.168.100.1/24 dev eth0.100  # 分配 IP
ip link set eth0.100 up                    # 啟用

關鍵點

  • VLAN 接口名格式通常為 主接口.VLANID(如 eth0.100)。
  • 刪除 VLAN:ip link delete eth0.100 type vlan

三、網橋(Bridge)配置

網橋用于連接多個網絡段(如虛擬機網絡):

# 創建網橋并添加物理接口
ip link add name br0 type bridge           # 創建網橋設備
ip link set eth0 master br0                # 將 eth0 加入網橋
ip addr add 192.168.1.100/24 dev br0       # 為網橋分配 IP
ip link set br0 up                         # 啟用網橋

注意事項

  • 物理接口(如 eth0)加入網橋后不再需要獨立 IP,由網橋接管通信。
  • 驗證:bridge link showip link show type bridge

持久化示例(Ubuntu Netplan)

network:version: 2bridges:br0:interfaces: [eth0]dhcp4: yes

四、綁定(Bond)配置

?? 注:iproute2 原生不支持 Bond 創建,需依賴內核模塊(如 bonding)和系統工具。
替代方案

  1. 加載 Bonding 驅動

modprobe bonding mode=802.3ad # 加載驅動(模式如 balance-rr, active-backup)

2. **創建 Bond 接口**:  ```bash
ip link add bond0 type bond
ip link set eth0 master bond0    # 添加從屬接口
ip link set eth1 master bond0
ip link set bond0 up
  1. 配置 IP

ip addr add 192.168.1.100/24 dev bond0

持久化需編輯 `/etc/network/interfaces` 或發行版專用配置(如 CentOS 的 `ifcfg-bond0`)。

五、對比:傳統工具 vs. iproute2

功能net-tools (舊)iproute2 (推薦)
查看接口狀態ifconfigip link show
設置 IPifconfig eth0 192.168.1.100ip addr add 192.168.1.100/24 dev eth0
查看路由route -nip route show
VLAN 創建vconfig add eth0 100ip link add link eth0 name eth0.100 type vlan id 100

六、調試與驗證

  • 路由表ip route show
  • ARP 鄰居表ip neigh show
  • 監聽端口ss -ltnp(替代 netstat
  • 接口統計ip -s link show dev eth0

💡 最佳實踐

  • 優先使用 ip 命令,語法統一且支持新特性(如網絡命名空間、策略路由)。
  • 生產環境務必通過配置文件持久化(如 Netplan、ifcfg 文件)。

通過掌握以上配置,可高效管理 Linux 的復雜網絡環境(如容器網絡、虛擬化集群)。



























在 Linux 中使用 NetworkManager 配置網橋(bridge)時,可以通過 nmcli 命令行工具完成。網橋常用于虛擬化場景(如 KVM/QEMU),將虛擬機連接到物理網絡。


🧱 一、基本概念

  • Bridge(網橋):一種軟件交換機,讓多個網絡接口(包括物理接口和虛擬接口)共享同一個二層網絡。
  • Bridge Slave(網橋從屬接口):加入網橋的接口,例如一個物理網卡或 VLAN 接口。
  • Bridge Master(網橋主接口):即網橋本身(如 br0),它負責管理所有從屬接口。

🛠? 二、配置網橋的步驟(以 eth0 為例)

? 場景說明:

我們希望創建一個名為 br0 的網橋,并把物理接口 eth0 加入其中,然后為網橋分配 IP 地址。


🔧 步驟 1:刪除原有連接(如有)

nmcli con delete eth0

🔧 步驟 2:創建網橋主接口 br0

nmcli con add type bridge ifname br0 con-name br0

🔧 步驟 3:添加物理接口 eth0 作為網橋從屬接口

nmcli con add type bridge-slave ifname eth0 master br0

?? 注意:此時 eth0 不應有 IP 地址,因為它的流量會通過網橋 br0 處理。


🔧 步驟 4:為網橋設置 IP 地址(例如靜態 IP)

nmcli con modify br0 ipv4.addresses 192.168.1.100/24 \ipv4.gateway 192.168.1.1 \ipv4.dns 8.8.8.8 \ipv4.method manual

或者使用 DHCP:

nmcli con modify br0 ipv4.method auto

🔧 步驟 5:啟用網橋連接

nmcli con up br0

這會自動激活網橋及其從屬接口 eth0


? 檢查狀態

nmcli con show
ip addr show br0

📌 三、常見參數說明(nmcli 網橋相關)

參數名含義
type bridge創建網橋主接口
type bridge-slave創建網橋從屬接口
ifname接口名稱(如 br0, eth0
master指定從屬接口所屬的網橋
ipv4.methodIPv4 分配方式(manual / auto / disabled)
ipv4.addresses設置靜態 IP 地址和子網掩碼
ipv4.gateway設置默認網關
ipv4.dns設置 DNS 服務器

💡 四、其他用法示例

示例 1:帶 VLAN 的網橋結構

# 創建 VLAN 接口 vlan10(基于 eth0,VLAN ID 10)
nmcli con add type vlan con-name vlan10 ifname eth0.10 dev eth0 id 10# 創建網橋 br0
nmcli con add type bridge ifname br0 con-name br0# 將 VLAN 接口加入網橋
nmcli con add type bridge-slave ifname eth0.10 master br0# 設置網橋 IP
nmcli con modify br0 ipv4.addresses 192.168.10.100/24 ipv4.method manual# 啟動網橋
nmcli con up br0

示例 2:橋接 + 虛擬機使用

在 KVM 虛擬化中,通常這樣配置:

# 創建 br0 網橋并加入 eth0
nmcli con add type bridge ifname br0 con-name br0
nmcli con add type bridge-slave ifname eth0 master br0
nmcli con modify br0 ipv4.method auto
nmcli con up br0

然后在虛擬機配置中指定 br0 作為虛擬 NIC 的橋接設備即可。


🧪 五、查看當前網橋信息

nmcli con show
nmcli device show
bridge link

📝 六、注意事項

  • 網橋的 IP 地址應該設置在 bridge 接口上,而不是物理接口。
  • 物理接口不能有自己的 IP 地址(除非你明確知道要做什么)。
  • 如果你在遠程服務器操作,請確保不會斷網(建議測試前保留原始連接或使用臨時連接)。
  • 使用 nmcli con reload 可重新加載配置文件。
  • 刪除網橋前請先刪除其從屬接口。

? 總結

操作命令示例
創建網橋nmcli con add type bridge ifname br0
添加從屬接口nmcli con add type bridge-slave master br0 ifname eth0
設置 IPnmcli con modify br0 ipv4.addresses x.x.x.x/xx ...
啟用網橋nmcli con up br0
查看網橋狀態bridge linkip link

如需進一步配置 STP(生成樹協議)、設置混雜模式等高級功能,可以使用 nmcli 的更多選項或編輯 /etc/NetworkManager/system-connections/ 下的 .nmconnection 文件。

如果你需要我幫你寫一個完整的配置腳本或排查問題,請告訴我你的實際環境!



























以太網(Ethernet)配置

以太網接口配置主要涉及IP地址、子網掩碼、網關和DNS服務器的設置。以下是幾種常見的配置方法:

1. 靜態IP配置(以eth0為例)

# 編輯網絡配置文件
sudo nano /etc/netplan/01-netcfg.yaml# 添加以下內容(根據實際情況修改)
network:version: 2renderer: networkdethernets:eth0:dhcp4: noaddresses: [192.168.1.100/24]gateway4: 192.168.1.1nameservers:addresses: [8.8.8.8, 8.8.4.4]# 應用配置
sudo netplan apply

2. DHCP動態獲取IP

network:version: 2renderer: networkdethernets:eth0:dhcp4: yes

綁定(Bond)配置

網絡綁定允許將多個物理網卡組合成一個邏輯接口,提供冗余或增加帶寬。常見模式有balance-rr、active-backup、802.3ad等。

配置示例(active-backup模式)

# 編輯netplan配置
sudo nano /etc/netplan/01-netcfg.yamlnetwork:version: 2renderer: networkdbonds:bond0:interfaces: [eth0, eth1]dhcp4: noaddresses: [192.168.1.100/24]gateway4: 192.168.1.1parameters:mode: active-backupmiimon: 100ethernets:eth0:dhcp4: nooptional: trueeth1:dhcp4: nooptional: true# 應用配置
sudo netplan apply

虛擬局域網(VLAN)配置

VLAN允許在單一物理網絡上創建多個邏輯網絡。

配置示例

# 編輯netplan配置
sudo nano /etc/netplan/01-netcfg.yamlnetwork:version: 2renderer: networkdethernets:eth0:dhcp4: nooptional: truevlans:vlan10:id: 10link: eth0addresses: [192.168.10.10/24]vlan20:id: 20link: eth0addresses: [192.168.20.10/24]# 應用配置
sudo netplan apply

網橋(Bridge)配置

網橋用于連接多個網絡接口,使它們看起來像同一個網絡段。常用于虛擬化環境。

配置示例

# 編輯netplan配置
sudo nano /etc/netplan/01-netcfg.yamlnetwork:version: 2renderer: networkdbridges:br0:interfaces: [eth0]dhcp4: noaddresses: [192.168.1.100/24]gateway4: 192.168.1.1nameservers:addresses: [8.8.8.8, 8.8.4.4]ethernets:eth0:dhcp4: nooptional: true# 應用配置
sudo netplan apply

驗證配置

配置完成后,可以使用以下命令驗證:

# 查看網絡接口狀態
ip addr show# 查看路由表
ip route# 檢查bond狀態
cat /proc/net/bonding/bond0# 檢查網橋狀態
brctl show

以上配置示例基于Netplan(Ubuntu 18.04+),不同Linux發行版可能使用不同的網絡配置工具(如ifupdown、NetworkManager等),配置文件位置和格式會有所不同。



























以下是使用 iproute2 工具集配置 Linux 網絡的核心指南,涵蓋以太網、綁定(Bond)、虛擬局域網(VLAN)和網橋(Bridge)的詳細操作及原理說明。


🔧 一、以太網(Ethernet)基礎配置

1. 接口狀態管理
  • 查看接口狀態
    ip link show                 # 顯示所有接口狀態
    ip -s link show dev eth0     # 查看 eth0 的詳細統計信息 
    
  • 啟用/禁用接口
    ip link set dev eth0 up      # 啟用接口
    ip link set dev eth0 down    # 禁用接口
    
2. IP 地址配置
  • 臨時配置(重啟失效)
    ip addr add 192.168.1.100/24 dev eth0   # 添加 IPv4 地址
    ip addr add 2001:db8::1/64 dev eth0      # 添加 IPv6 地址 
    
  • 刪除地址
    ip addr del 192.168.1.100/24 dev eth0
    
3. 路由設置
  • 默認網關
    ip route add default via 192.168.1.1 dev eth0
    
  • 靜態路由
    ip route add 10.0.0.0/24 via 192.168.1.2 dev eth0 
    

🔗 二、綁定(Bonding)配置

綁定用于聚合多個物理接口,提升帶寬或冗余性。

1. 創建 Bond 接口
ip link add bond0 type bond mode 802.3ad miimon 100
  • 關鍵參數
    • mode:綁定模式(見下表)
    • miimon:鏈路檢測間隔(毫秒)
2. 綁定模式對比
模式編號特點交換機要求
Active-Backupmode 1主備冗余,故障自動切換(無需交換機支持)?
802.3ad (LACP)mode 4動態負載均衡,帶寬聚合(需交換機啟用 LACP)?
Balance-TLBmode 5發送負載均衡,接收流量走主接口(無需交換機支持)?
Balance-ALBmode 6雙向負載均衡,通過 ARP 協商實現(無需交換機支持)?
3. 添加成員接口
ip link set eth0 master bond0
ip link set eth1 master bond0
4. 分配 IP 并啟用
ip addr add 192.168.1.100/24 dev bond0
ip link set bond0 up
5. 驗證狀態
cat /proc/net/bonding/bond0  # 查看綁定狀態 

🌐 三、虛擬局域網(VLAN)配置

1. 加載內核模塊
modprobe 8021q                # 加載 VLAN 支持模塊 
2. 創建 VLAN 接口
ip link add link eth0 name eth0.100 type vlan id 100
  • eth0.100:VLAN 接口名(父接口 + VLAN ID)
  • id 100:VLAN 標簽號(需與交換機一致)
3. 配置 IP 并啟用
ip addr add 192.168.100.1/24 dev eth0.100
ip link set eth0.100 up
4. 高級場景
  • 強制網關在鏈路(無直連路由時):
    ip route add 172.16.0.0/16 via 192.168.100.254 dev eth0.100 onlink 
    

🌉 四、網橋(Bridge)配置

網橋用于連接多個網絡段(如虛擬機網絡)。

1. 創建網橋
ip link add br0 type bridge     # 創建網橋設備
ip link set br0 up
2. 綁定物理/虛擬接口
ip link set eth0 master br0    # 物理接口加入網橋
ip link set veth0 master br0   # 虛擬接口(容器/虛擬機)加入網橋
3. 分配 IP 地址
ip addr add 192.168.1.1/24 dev br0
4. 配置 STP 防環
ip link set br0 type bridge stp_state 1  # 啟用生成樹協議 

?? 五、關鍵注意事項

  1. 配置持久化

    • iproute2 命令重啟后失效,需通過以下方式持久化:
      • 寫入 /etc/rc.local 或系統啟動腳本。
      • 使用 netplan(Ubuntu)或 network-scripts(CentOS)配置文件 。
  2. 工具依賴

    • 安裝 iproute2 包:
      apt install iproute2    # Debian/Ubuntu
      yum install iproute     # CentOS/RHEL
      
  3. 交換機協同

    • Bonding mode 4 (LACP) 需交換機啟用鏈路聚合 。
    • VLAN 需交換機端口配置為 Trunk 模式 。
  4. 常見問題

    • Bonding 不生效:檢查內核模塊 lsmod | grep bonding,或重啟網絡服務。
    • VLAN 不通:確認 8021q 模塊加載,且交換機 VLAN ID 匹配 。

💎 總結

iproute2 提供了從底層接口管理(以太網/IP)、高級聚合(Bonding)、邏輯隔離(VLAN)到虛擬網絡整合(Bridge)的全套能力。相比傳統 ifconfig/route,其優勢在于:

  • 功能全面:支持 IPv6、策略路由、多播等高級特性 。
  • 粒度精細:如 Bonding 的 7 種模式適配不同場景 。
  • 腳本友好:命令輸出結構化,易于自動化處理。

建議結合系統配置工具(如 netplanNetworkManager)實現持久化部署,復雜網絡可參考 /etc/iproute2/ 下的策略表定制路由規則 。



























iproute2 網絡配置模板大全:Bond、VLAN、Bridge

以下是使用 iproute2 配置 Bonding、VLAN 和 Bridge 的實用模板,涵蓋了各種常見場景。這些命令需要持久化配置才能重啟后生效(解決方案在最后)。

一、基礎模板

1. 單綁定接口 (Bond)

# 創建802.3ad模式的綁定接口
sudo ip link add bond0 type bond mode 802.3ad lacp_rate fast# 添加物理接口到綁定
sudo ip link set enp3s0 down
sudo ip link set enp3s0 master bond0
sudo ip link set enp3s0 upsudo ip link set enp4s0 down
sudo ip link set enp4s0 master bond0
sudo ip link set enp4s0 up# 啟用綁定接口
sudo ip link set bond0 up# 分配IP地址
sudo ip addr add 192.168.1.100/24 dev bond0
sudo ip route add default via 192.168.1.1

2. 單VLAN接口

# 在物理接口上創建VLAN 100
sudo ip link add link enp3s0 name vlan100 type vlan id 100# 啟用VLAN接口
sudo ip link set vlan100 up# 分配IP地址
sudo ip addr add 10.0.100.5/24 dev vlan100

3. 單網橋接口

# 創建網橋
sudo ip link add name br0 type bridge# 添加物理接口到網橋
sudo ip link set enp3s0 down
sudo ip link set enp3s0 master br0
sudo ip link set enp3s0 up# 啟用網橋
sudo ip link set br0 up# 分配IP地址
sudo ip addr add 192.168.1.1/24 dev br0

二、高級組合模板

4. 綁定 + VLAN

# 創建綁定接口
sudo ip link add bond0 type bond mode active-backup
sudo ip link set enp3s0 master bond0
sudo ip link set enp4s0 master bond0
sudo ip link set bond0 up# 在綁定接口上創建VLAN
sudo ip link add link bond0 name vlan200 type vlan id 200
sudo ip link set vlan200 up# 分配IP給VLAN接口
sudo ip addr add 172.16.200.10/24 dev vlan200

5. 綁定 + 網橋

# 創建綁定接口
sudo ip link add bond0 type bond mode balance-rr
sudo ip link set enp3s0 master bond0
sudo ip link set enp4s0 master bond0
sudo ip link set bond0 up# 創建網橋
sudo ip link add name br-bond type bridge
sudo ip link set bond0 master br-bond
sudo ip link set br-bond up# 分配IP給網橋
sudo ip addr add 10.10.10.1/24 dev br-bond

6. VLAN + 網橋

# 創建VLAN接口
sudo ip link add link enp3s0 name vlan300 type vlan id 300
sudo ip link set vlan300 up# 創建網橋
sudo ip link add name br-vlan type bridge
sudo ip link set vlan300 master br-vlan
sudo ip link set br-vlan up# 分配IP給網橋
sudo ip addr add 192.168.30.1/24 dev br-vlan

三、企業級綜合模板

7. 綁定 + VLAN + 網橋 (完整三層)

#!/bin/bash
# 企業級網絡配置腳本# 1. 創建綁定接口 (802.3ad LACP)
sudo ip link add bond0 type bond mode 802.3ad lacp_rate fast
sudo ip link set enp3s0 down && sudo ip addr flush dev enp3s0
sudo ip link set enp3s0 master bond0
sudo ip link set enp3s0 upsudo ip link set enp4s0 down && sudo ip addr flush dev enp4s0
sudo ip link set enp4s0 master bond0
sudo ip link set enp4s0 up
sudo ip link set bond0 up# 2. 創建管理VLAN
sudo ip link add link bond0 name mgmt type vlan id 100
sudo ip link set mgmt up
sudo ip addr add 10.0.100.5/24 dev mgmt# 3. 創建數據VLAN并加入網橋
sudo ip link add link bond0 name vlan200 type vlan id 200
sudo ip link set vlan200 up# 4. 創建網橋
sudo ip link add name br-data type bridge
sudo ip link set vlan200 master br-data
sudo ip link set br-data up
sudo ip addr add 192.168.200.1/24 dev br-data# 5. 創建虛擬接口并加入網橋
sudo ip link add veth0 type veth peer name veth1
sudo ip link set veth0 master br-data
sudo ip link set veth0 up
sudo ip link set veth1 up# 6. 設置STP和轉發延遲
sudo ip link set br-data type bridge stp_state 1
sudo ip link set br-data type bridge forward_delay 4# 7. 設置默認路由
sudo ip route add default via 10.0.100.1 dev mgmt

8. 多網橋隔離網絡

#!/bin/bash
# 多網橋配置:LAN、DMZ、Guest# 1. 創建LAN網橋
sudo ip link add name br-lan type bridge
sudo ip link set enp5s0 master br-lan
sudo ip link set br-lan up
sudo ip addr add 192.168.1.1/24 dev br-lan# 2. 創建DMZ網橋
sudo ip link add name br-dmz type bridge
sudo ip link set enp6s0 master br-dmz
sudo ip link set br-dmz up
sudo ip addr add 10.10.10.1/24 dev br-dmz# 3. 創建Guest網橋
sudo ip link add name br-guest type bridge
sudo ip link set br-guest up
sudo ip addr add 172.16.0.1/16 dev br-guest# 4. 配置VLAN接口加入Guest網橋
sudo ip link add link enp7s0 name vlan500 type vlan id 500
sudo ip link set vlan500 master br-guest
sudo ip link set vlan500 up# 5. 禁用Guest網橋的MAC學習
sudo ip link set br-guest type bridge ageing_time 0# 6. 設置防火墻規則
sudo iptables -A FORWARD -i br-guest -j DROP

四、虛擬化專用模板

9. KVM虛擬化網橋

#!/bin/bash
# KVM虛擬化專用網橋# 1. 創建主網橋
sudo ip link add name br0 type bridge
sudo ip link set enp3s0 down
sudo ip addr flush dev enp3s0
sudo ip link set enp3s0 master br0
sudo ip link set enp3s0 up
sudo ip link set br0 up
sudo ip addr add 192.168.1.100/24 dev br0# 2. 創建隔離網橋
sudo ip link add name br-isolated type bridge
sudo ip link set br-isolated up
sudo ip addr add 10.20.30.1/24 dev br-isolated# 3. 優化網橋性能
sudo ethtool -K br0 rx off tx off tso off gso off gro off
sudo ip link set br0 type bridge forward_delay 0
sudo ip link set br0 type bridge stp_state 0# 4. 創建虛擬接口對
sudo ip link add veth-host type veth peer name veth-guest
sudo ip link set veth-host master br0
sudo ip link set veth-host up
sudo ip link set veth-guest up# 5. 設置MAC地址
sudo ip link set dev br0 address 52:54:00:12:34:56

10. Docker容器網絡

#!/bin/bash
# Docker自定義網橋# 1. 創建容器網橋
sudo ip link add name docker-br type bridge
sudo ip link set docker-br up
sudo ip addr add 172.18.0.1/16 dev docker-br# 2. 啟用IP轉發
sudo sysctl -w net.ipv4.ip_forward=1# 3. 創建NAT規則
sudo iptables -t nat -A POSTROUTING -s 172.18.0.0/16 ! -o docker-br -j MASQUERADE
sudo iptables -A FORWARD -i docker-br -o enp3s0 -j ACCEPT
sudo iptables -A FORWARD -i enp3s0 -o docker-br -m state --state RELATED,ESTABLISHED -j ACCEPT# 4. 創建veth對
sudo ip link add veth-host type veth peer name veth-container
sudo ip link set veth-host master docker-br
sudo ip link set veth-host up# 5. 配置容器端
sudo ip netns add container-ns
sudo ip link set veth-container netns container-ns
sudo ip -n container-ns link set lo up
sudo ip -n container-ns link set veth-container name eth0
sudo ip -n container-ns addr add 172.18.0.2/16 dev eth0
sudo ip -n container-ns link set eth0 up
sudo ip -n container-ns route add default via 172.18.0.1

五、持久化配置方案

方案1: systemd-networkd (推薦)

# /etc/systemd/network/05-bond0.netdev
[NetDev]
Name=bond0
Kind=bond
[Bond]
Mode=802.3ad
LACPTransmitRate=fast# /etc/systemd/network/10-enp3s0.network
[Match]
Name=enp3s0[Network]
Bond=bond0# /etc/systemd/network/15-vlan100.netdev
[NetDev]
Name=vlan100
Kind=vlan
[VLAN]
Id=100# /etc/systemd/network/20-br0.netdev
[NetDev]
Name=br0
Kind=bridge
[Bridge]
STP=yes
ForwardDelaySec=4# /etc/systemd/network/25-br0.network
[Match]
Name=br0[Network]
Address=192.168.1.100/24
Gateway=192.168.1.1
DNS=8.8.8.8
VLAN=vlan100

方案2: NetworkManager (桌面環境)

# 創建綁定
sudo nmcli con add type bond con-name bond0 ifname bond0 mode 802.3ad
sudo nmcli con add type ethernet con-name bond0-slave1 ifname enp3s0 master bond0
sudo nmcli con add type ethernet con-name bond0-slave2 ifname enp4s0 master bond0# 創建VLAN
sudo nmcli con add type vlan con-name vlan100 dev bond0 id 100# 創建網橋
sudo nmcli con add type bridge con-name br0 ifname br0
sudo nmcli con add type bridge-slave con-name br0-vlan100 ifname vlan100 master br0# 分配IP
sudo nmcli con mod br0 ipv4.addresses 192.168.1.100/24
sudo nmcli con mod br0 ipv4.gateway 192.168.1.1
sudo nmcli con mod br0 ipv4.dns "8.8.8.8"
sudo nmcli con mod br0 ipv4.method manual# 激活連接
sudo nmcli con up bond0
sudo nmcli con up vlan100
sudo nmcli con up br0

方案3: 使用 ifupdown (Debian/Ubuntu)

# /etc/network/interfaces
auto bond0
iface bond0 inet manualbond-mode 802.3adbond-slaves enp3s0 enp4s0bond-lacp-rate fastauto vlan100
iface vlan100 inet manualvlan-raw-device bond0vlan-id 100auto br0
iface br0 inet staticaddress 192.168.1.100netmask 255.255.255.0gateway 192.168.1.1bridge_ports vlan100bridge_stp onbridge_fd 4

六、驗證命令

通用驗證

# 查看所有接口
ip -c link show# 查看IP配置
ip -c addr show# 查看路由表
ip -c route show

組件專用驗證

# 綁定接口狀態
cat /proc/net/bonding/bond0# VLAN信息
ip -d link show | grep vlan# 網橋狀態
bridge -c link show
bridge -c fdb show# STP狀態
bridge -j stp show | jq

性能測試

# 帶寬測試
iperf3 -c server_ip -i 1 -t 10 -B br0_ip# 延遲測試
ping -c 100 -I bond0 8.8.8.8 | grep min/avg/max# 流量監控
sudo tcpdump -i br0 -nn -c 100

七、故障排除技巧

1. 綁定接口問題

# 檢查物理鏈路
ethtool enp3s0# 查看LACP狀態
grep "" /sys/class/net/bond0/bonding/*# 強制重新協商
echo 1 > /sys/class/net/bond0/bonding/mii_monitor

2. VLAN問題

# 檢查VLAN過濾
bridge vlan show# 監控VLAN流量
sudo tcpdump -i enp3s0 -nn -e vlan# 檢查硬件卸載
ethtool -k enp3s0 | grep vlan

3. 網橋問題

# 查看MAC表
bridge fdb show br0# 檢查STP狀態
bridge -j stp show br0 | jq# 重置網橋狀態
sudo ip link set br0 down && sudo ip link set br0 up

4. 綜合診斷

# 網絡連通性
mtr -rwbzc 100 8.8.8.8# 路由跟蹤
traceroute -n -i br0 8.8.8.8# 端口掃描
nmap -sT -p- 192.168.1.0/24

這些模板覆蓋了從基礎到高級的各種網絡配置場景,您可以根據實際需求調整接口名稱、IP地址和參數值。對于生產環境,建議使用 systemd-networkd 或 NetworkManager 進行持久化配置。



























iproute2 配置模板:綁定(Bond)、虛擬局域網(VLAN)、網橋(Bridge)

以下是使用 iproute2 配置 Bond、VLAN 和 Bridge 的完整模板,包含基礎配置、高級選項和持久化方案。

一、綁定(Bond)配置模板

1. 基礎綁定配置 (模式:active-backup)

# 加載模塊
modprobe bonding# 創建綁定接口
ip link add bond0 type bond mode active-backup# 設置綁定參數
echo 100 > /sys/class/net/bond0/bonding/miimon
echo primary eth1 > /sys/class/net/bond0/bonding/primary# 添加成員接口
ip link set eth1 down
ip link set eth1 master bond0
ip link set eth1 upip link set eth2 down
ip link set eth2 master bond0
ip link set eth2 up# 啟用綁定接口
ip link set bond0 up# 配置IP地址
ip addr add 192.168.1.100/24 dev bond0

2. LACP 綁定配置 (模式:802.3ad)

# 創建LACP綁定
ip link add bond0 type bond mode 802.3ad# 設置LACP參數
echo fast > /sys/class/net/bond0/bonding/lacp_rate
echo layer3+4 > /sys/class/net/bond0/bonding/xmit_hash_policy# 添加成員接口
for iface in eth1 eth2; doip link set $iface downip link set $iface master bond0ip link set $iface up
done# 啟用綁定
ip link set bond0 up
ip addr add 10.0.0.5/24 dev bond0

二、虛擬局域網(VLAN)配置模板

1. 基礎VLAN配置

# 加載VLAN模塊
modprobe 8021q# 在物理接口上創建VLAN
ip link add link eth0 name eth0.100 type vlan id 100# 啟用VLAN接口
ip link set eth0.100 up# 配置IP地址
ip addr add 192.168.100.10/24 dev eth0.100

2. 在綁定接口上創建VLAN

# 在bond0上創建VLAN
ip link add link bond0 name mgmt_vlan type vlan id 200# 啟用并配置
ip link set mgmt_vlan up
ip addr add 10.200.0.5/24 dev mgmt_vlan

三、網橋(Bridge)配置模板

1. 基礎網橋配置

# 創建網橋
ip link add br0 type bridge# 設置STP參數
echo 1 > /sys/class/net/br0/bridge/stp_state
echo 2 > /sys/class/net/br0/bridge/hello_time
echo 15 > /sys/class/net/br0/bridge/forward_delay# 添加成員接口
ip link set eth3 down
ip link set eth3 master br0
ip link set eth3 up# 啟用網橋
ip link set br0 up# 配置IP地址
ip addr add 172.16.0.10/24 dev br0

2. 帶VLAN過濾的網橋

# 創建網橋并啟用VLAN過濾
ip link add br-vlan type bridge
echo 1 > /sys/class/net/br-vlan/bridge/vlan_filtering# 添加接口并配置VLAN
ip link set eth4 down
ip link set eth4 master br-vlan
ip link set eth4 up
bridge vlan add dev eth4 vid 100 pvid untagged
bridge vlan add dev eth4 vid 200# 配置網橋IP
ip link set br-vlan up
ip addr add 10.100.0.1/24 dev br-vlan

四、綜合配置模板:綁定 → VLAN → 網橋

#!/bin/bash
# 綜合配置:物理接口 -> Bond -> VLAN -> Bridge# 1. 創建綁定接口
modprobe bonding
ip link add bond0 type bond mode 802.3ad
echo fast > /sys/class/net/bond0/bonding/lacp_rate
echo layer3+4 > /sys/class/net/bond0/bonding/xmit_hash_policy# 添加成員
for iface in eth1 eth2; doip link set $iface downip link set $iface master bond0ip link set $iface up
done
ip link set bond0 up# 2. 在綁定上創建VLAN
modprobe 8021q
ip link add link bond0 name mgmt_vlan type vlan id 100
ip link set mgmt_vlan up# 3. 創建網橋并添加VLAN
ip link add br-mgmt type bridge
ip link set mgmt_vlan master br-mgmt
ip link set br-mgmt up# 4. 配置網橋IP
ip addr add 10.100.0.5/24 dev br-mgmt# 5. 設置默認路由
ip route add default via 10.100.0.1

五、高級配置模板

1. 帶VLAN過濾的網橋

# 創建網橋
ip link add br-filter type bridge# 啟用VLAN過濾
echo 1 > /sys/class/net/br-filter/bridge/vlan_filtering# 添加端口并配置VLAN
for port in eth5 eth6; doip link set $port downip link set $port master br-filterbridge vlan add dev $port vid 100-200bridge vlan del dev $port vid 1  # 刪除默認VLANip link set $port up
done# 設置PVID
bridge vlan add dev eth5 vid 100 pvid untagged# 啟用網橋
ip link set br-filter up

2. QinQ (雙標簽VLAN)

# 外層VLAN
ip link add link eth0 name eth0.1000 type vlan id 1000# 內層VLAN
ip link add link eth0.1000 name qinq_inner type vlan id 200# 配置IP
ip link set qinq_inner up
ip addr add 192.168.200.5/24 dev qinq_inner

六、持久化配置方案

1. 創建 systemd 服務

/etc/systemd/system/network-setup.service:

[Unit]
Description=Custom Network Setup
After=network.target
Requires=network.target[Service]
Type=oneshot
ExecStart=/usr/local/bin/network-setup.sh
RemainAfterExit=yes[Install]
WantedBy=multi-user.target

2. 網絡配置腳本

/usr/local/bin/network-setup.sh:

#!/bin/bash# 綁定配置
ip link add bond0 type bond mode 802.3ad
echo fast > /sys/class/net/bond0/bonding/lacp_rate
for iface in eth1 eth2; doip link set $iface downip link set $iface master bond0ip link set $iface up
done
ip link set bond0 up# VLAN配置
ip link add link bond0 name mgmt_vlan type vlan id 100
ip link set mgmt_vlan up# 網橋配置
ip link add br0 type bridge
ip link set mgmt_vlan master br0
ip addr add 10.100.0.5/24 dev br0
ip link set br0 up# 路由配置
ip route add default via 10.100.0.1# DNS配置
echo "nameserver 8.8.8.8" > /etc/resolv.conf

3. 設置權限并啟用

chmod +x /usr/local/bin/network-setup.sh
systemctl daemon-reload
systemctl enable network-setup.service

七、診斷與驗證命令

1. 綁定驗證

# 查看綁定狀態
cat /proc/net/bonding/bond0# 查看從屬接口
ip link show type bond_slave

2. VLAN驗證

# 查看VLAN配置
ip -d link show mgmt_vlan# 查看VLAN統計
ethtool -S eth1 | grep vlan

3. 網橋驗證

# 查看網橋信息
bridge link show# 查看VLAN過濾
bridge vlan show# 查看STP狀態
bridge stp show br0

4. 綜合狀態

# 查看所有接口
ip -br link show# 查看IP配置
ip -br addr show# 查看路由
ip route show

八、故障排除模板

1. 綁定故障排查

# 檢查物理連接
ethtool eth1
ethtool eth2# 查看綁定狀態
cat /proc/net/bonding/bond0# 檢查MII監控
cat /sys/class/net/bond0/bonding/miimon# 重置綁定
ip link set bond0 down
ip link set bond0 up

2. VLAN故障排查

# 驗證VLAN配置
ip -d link show mgmt_vlan | grep 'vlan id'# 檢查父接口狀態
ip link show bond0# 檢查交換機配置
# 確保交換機端口配置為trunk模式

3. 網橋故障排查

# 檢查STP阻塞
bridge stp show br0 | grep state# 查看MAC地址表
bridge fdb show br0# 刷新VLAN配置
bridge vlan flush dev eth1

九、性能優化模板

1. 中斷優化

# 設置中斷親和性
for irq in $(grep eth1 /proc/interrupts | cut -d: -f1); doecho 3 > /proc/irq/$irq/smp_affinity
done# 或使用irqbalance
apt install irqbalance
systemctl enable irqbalance

2. 網絡參數優化

# 增加socket緩沖區
sysctl -w net.core.rmem_max=16777216
sysctl -w net.core.wmem_max=16777216# 禁用巨幀卸載(如有問題)
ethtool -K eth1 tso off gso off gro off

3. 網橋優化

# 禁用STP(單接口網橋)
echo 0 > /sys/class/net/br0/bridge/stp_state# 增加哈希表大小
echo 16384 > /sys/class/net/br0/bridge/hash_max

這些模板提供了從基礎到高級的配置方案,您可以根據實際需求調整參數。對于生產環境,建議結合監控工具(如 vnstatiftop)定期檢查網絡狀態。



























本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/914312.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/914312.shtml
英文地址,請注明出處:http://en.pswp.cn/news/914312.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

當信任上鏈解碼區塊鏈溯源系統開發邏輯與產業變革

當信任上鏈&#xff1a;解碼區塊鏈溯源系統的開發邏輯與產業變革在上海某高端超市的進口水果區&#xff0c;消費者王女士拿起一盒車厘子&#xff0c;用手機掃描包裝上的二維碼&#xff0c;屏幕立刻彈出一串動態信息&#xff1a;智利瓦爾帕萊索港口的裝船時間、海關清關的具體日…

可視化DIY小程序工具!開源拖拽式源碼系統,自由搭建,完整的源代碼包分享

溫馨提示&#xff1a;文末有資源獲取方式傳統的小程序開發對技術要求較高&#xff0c;這使得許多非技術人員望而卻步。可視化DIY小程序工具應運而生&#xff0c;它通過拖拽式操作和開源代碼系統&#xff0c;極大地降低了開發門檻&#xff0c;讓更多人能夠快速構建個性化小程序。…

【MLLM】多模態理解GLM-4.1V-Thinking模型

note GLM-4.1V-Thinking模型引入 課程采樣強化學習&#xff08;RLCS, Reinforcement Learning with Curriculum Sampling&#xff09; 策略&#xff0c;在多個復雜推理任務中實現能力突破&#xff0c;整體性能達到 10B 級別視覺語言模型的領先水平。GLM-4.1V-9B-Thinking 通過…

【C++詳解】STL-priority_queue使用與模擬實現,仿函數詳解

文章目錄一、priority_queue使用仿函數控制優先級sort算法里的仿函數二、手撕優先級隊列優先級隊列的容器適配器入堆出堆top/size/empty迭代器區間構造初始化(解耦)三、仿函數仿函數控制冒泡排序仿函數控制priority_queue比較邏輯仿函數使用場景仿函數的其他使用場景源碼一、pr…

在mac m1基于ollama運行deepseek r1

1 下載和安裝 在ollama的官網下載mac m1版本的ollama https://ollama.com/ 最終獲得如下所示的下載地址 https://github.com/ollama/ollama/releases/latest/download/Ollama.dmg 然后點擊安裝&#xff0c;然后測試 ollama list 2 運行deepseek r1 deepseek-r1:8b 比較適…

TCP與UDP協議詳解:網絡世界的可靠信使與高速快遞

> 互聯網的骨架由傳輸層協議支撐,而TCP與UDP如同血管中的紅細胞與血小板,各司其職卻又缺一不可 ### 一、初識傳輸層雙雄:網絡通信的基石 想象你要給朋友寄送重要文件: - **TCP** 如同順豐快遞:**簽收確認+物流追蹤**,確保文件完整送達 - **UDP** 如同普通信件:**直接…

Datawhale AI 夏令營【更新中】

Datawhale AI 夏令營【更新中】夏令營簡介大模型技術&#xff08;文本&#xff09;方向&#xff1a;用AI做帶貨視頻評論分析機器學習&#xff08;數據挖掘&#xff09;方向&#xff1a;用AI預測新增用戶夏令營簡介 本次AI夏令營是Datawhale在暑期發起的大規模AI學習活動&#…

AutoDL掛載阿里云OSS

文章目錄前言AutoDL 設置阿里OSS設置OSS配置相關key 相關競猜時間前言 最近&#xff0c;AutoDL提示北京A區網盤功能要下架&#xff0c;然后需要對網盤中數據進行轉移等操作&#xff0c;我想網盤中數據下載到本地&#xff0c;大概16G&#xff1b;直接在網盤那里下載&#xff0c…

java 基本數據類型所對應的包裝類

一,對應列舉Java 中有 8 種基本數據類型&#xff0c;每種基本數據類型都有對應的包裝類&#xff0c;它們分別是&#xff1a;二,包裝類的作用1. 滿足面向對象編程需求Java 是面向對象的編程語言&#xff0c;基本數據類型不是對象&#xff0c;無法使用面向對象的特性&#xff08;…

牛客網50題-10

1.小苯的數字權值#include <iostream> #include <algorithm> using namespace std;const int max_n 2000000; int d[max_n 1]; int f[max_n 1];int main() {for(int i 1; i<max_n;i){for(int j i; j<max_n;ji){d[j];}}for(int i1; i<max_n;i){f[i] d…

基于springboot的大學公文收發管理系統

博主介紹&#xff1a;java高級開發&#xff0c;從事互聯網行業多年&#xff0c;熟悉各種主流語言&#xff0c;精通java、python、php、爬蟲、web開發&#xff0c;已經做了多年的畢業設計程序開發&#xff0c;開發過上千套畢業設計程序&#xff0c;沒有什么華麗的語言&#xff0…

【機器學習】反向傳播如何求梯度(公式推導)

寫在前面 前期學習深度學習的時候&#xff0c;很多概念都是一筆帶過&#xff0c;只是覺得它在一定程度上解釋得通就行&#xff0c;但是在強化學習的過程中突然意識到&#xff0c;反向傳播求梯度其實并不是一件簡單的事情&#xff0c;這篇博客的目的就是要講清楚反向傳播是如何對…

ALB、NLB、CLB 負載均衡深度剖析

ALB、NLB、CLB 負載均衡深度剖析 前言 筆者在上周的實際工作中遇到了一個典型的負載均衡選擇問題&#xff1a;在使用代理調用相關模型時&#xff0c;最初配置 Nginx 的代理地址為 ALB 的 7 層虛擬 IP&#xff08;VIP&#xff09;&#xff0c;但由于集團網絡默認的超時時間為 3 …

歷史數據分析——云南白藥

醫藥板塊走勢分析: 從月線級別來看 2008年11月到2021年2月,月線上走出了兩個震蕩中樞的月線級別2085-20349的上漲段; 2021年2月到2024年9月,月線上走出了20349-6702的下跌段; 目前月線級別放巨量,總體還在震蕩區間內,后續還有震蕩和上漲的概率。 從周線級別來看 從…

【讀書筆記】《Effective Modern C++》第3章 Moving to Modern C++

《Effective Modern C》第3章 Moving to Modern C 一、區分圓括號 () 與大括號 {} &#xff08;Item?7&#xff09; C11 引入統一初始化&#xff08;brace?initialization&#xff09;&#xff0c;即使用 {} 來初始化對象&#xff0c;與傳統的 () 存在細微差別&#xff1a;避…

Rust基礎-part1

Rust基礎[part1]—安裝和編譯 安裝 ? rust curl --proto https --tlsv1.2 https://sh.rustup.rs -sSf | sh安裝成功 [外鏈圖片轉存中…(img-ClSHJ4Op-1752058241580)] 驗證 ? rust rustc --version zsh: command not found: rustc因為我是用的是zsh&#xff0c;所以zsh配置…

PyQt5布局管理(QGridLayout(網格布局))

QGridLayout&#xff08;網格布局&#xff09; QGridLayout&#xff08;網格布局&#xff09;是將窗口分隔成行和列的網格來進行排列。通常可以使用函數addWidget()將被管理的控件&#xff08;Widget)添加到窗口中&#xff0c;或者使用addLayout() 函數將布局&#xff08;Layou…

Java設計模式之行為型模式(責任鏈模式)介紹與說明

一、核心概念與定義 責任鏈模式是一種行為型設計模式&#xff0c;其核心思想是將請求沿著處理對象鏈傳遞&#xff0c;直到某個對象能夠處理該請求為止。通過這種方式&#xff0c;解耦了請求的發送者與接收者&#xff0c;使多個對象有機會處理同一請求。 關鍵特點&#xff1a; 動…

SQL server之版本的初認知

SQL server之版本的初認知 為什么要編寫此篇文檔呢&#xff0c;主要是因為在最近測試OGG實時同步SQL server數據庫表數據的時候&#xff0c;經過多次測試&#xff0c;發現在安裝了一套SQL server2017初始版本&#xff0c;未安裝任何補丁的時候&#xff0c;在添加TRANDATA的時候…

【前端】jQuery動態加載CSS方法總結

在jQuery 中動態加載 CSS 文件有多種方法&#xff0c;以下是幾種常用實現方式&#xff1a; 方法 1&#xff1a;創建 <link> 標簽&#xff08;推薦&#xff09; // 動態加載外部 CSS 文件 function loadCSS(url) {$(<link>, {rel: stylesheet,type: text/css,href:…