当前位置: 首页 > news >正文

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.lryc.cn/news/587407.html

相关文章:

  • python3的可变参数如何传递元组和字典
  • 第七章 算法题
  • 016_Token计数与成本管理
  • python:使用openpyxl库,实现excel表格的创建、查询(读取)、修改、插入数据
  • 在新版本的微信开发者工具中使用npm包
  • 开源工具DeepFilterNet:实时语音降噪
  • AI驱动的软件工程(上):人机协同的设计与建模
  • Vue 3 TypeScript 接口(Interface)使用
  • (一)SAP Group Reporting (GR) 集团财务合并解决方案套件概述
  • 数智管理学(三十三)
  • [论文阅读] 软件工程 | 首个德语软件工程情感分析黄金标准数据集:构建与价值解析
  • 【读书笔记】《Effective Modern C++》第二章:auto
  • 【论文阅读】Think Only When You Need with Large Hybrid-Reasoning Models
  • Datawhale AI 夏令营2025科大讯飞AI大赛<夏令营:用AI做带货视频评论分析>
  • 业务访问控制-ACL与包过滤
  • 【OpenGL ES】手撕一个mini版的Android native渲染框架
  • 串口学习和蓝牙通信HC05(第八天)
  • AI交互中的礼貌用语:“谢谢“的效用与代价分析
  • 09.获取 Python 列表的首尾元素与切片技巧
  • LLM大模型微调技术全景:从IFT、SFT到RLHF、DPO与PPO强化学习
  • 华擎B150M Pro4S魔改bios上8代U
  • AutoLabor-ROS-Python 学习记录——第一章 ROS概述与环境搭建
  • vue3 el-select默认选中
  • (33)记录描述窗体组件属性的枚举量 enum Qt :: WidgetAttribute, 简记为 WA_
  • 大模型微调(一):基于Swift框架进行自我认知微调(使用Lora微调Qwen3-8B模型)
  • MCU中的系统控制器(System Controller)是什么?
  • pthread_mutex_unlock函数的概念和用法
  • 手写muduo笔记
  • Clojure和Golang中的Channel有什么异同(TBC)
  • NumPy 中 np.c_ 的用法解析