如何使用 nmcli 配置带有静态 IP 的虚拟局域网(VLAN)接口?

问题浏览数Icon
21
问题创建时间Icon
2025-06-07 19:10:00
作者头像
brightfox01
  1. 创建VLAN接口: nmcli connection add type vlan ifname vlan100 dev enp1s0 id 100 ipv4.method manual ipv4.addresses 192.168.100.50/24 ipv4.gateway 192.168.100.1 ipv4.dns 8.8.8.8

  2. 激活连接: nmcli connection up vlan-enp1s0.100

  3. 验证配置: ip addr show vlan100 ping 192.168.100.1

  • 替换参数:
    • enp1s0:物理接口名
    • vlan100:VLAN接口名
    • 100:VLAN ID
    • 192.168.100.50/24:静态IP及掩码
    • 8.8.8.8:DNS服务器

更多回答

作者头像
snowliang22
  1. VLAN接口创建基础命令

    nmcli con add type vlan con-name VLAN10 dev eth0 id 10 ip4 192.168.10.2/24 gw4 192.168.10.1
    dns 8.8.8.8
    nmcli con up VLAN10

    需特别注意:父接口名称需替换实际物理接口,VLAN ID必须与交换机配置一致

  2. 实践关键点

    • 必须加载8021q模块:modprobe 8021q
    • 父接口需处于活动状态且支持VLAN tagging
    • 使用nmcli dev验证是否出现vlan*虚拟接口
    • 静态IP与VLAN网段需对应物理网络拓扑
  3. 常见故障排查

    • 错误1: VLAN创建失败但显示成功 → 检查/proc/net/vlan/config
    • 错误2: IP无法ping通 → 使用ip route show table local确认路由
    • 错误3: DNS解析异常 → 检查/etc/resolv.conf是否被覆盖
  4. 虚拟化环境特殊处理

    • 在ESXi/KVM环境需确保虚拟交换机开启VLAN tagging
    • 当使用OVS时推荐改用ovs-vsctl配置
    • 云环境可能限制VLAN ID范围(如AWS只允许1-4094)
  5. 高级配置示例(带MTU优化)

    nmcli con add type vlan con-name VLAN20 dev eth0 id 20 ipv4.method manual \
    ipv4.addresses 10.10.20.5/24 ipv4.gateway 10.10.20.1 ipv4.dns "8.8.8.8 1.1.1.1" \
    802-3-ethernet.mtu 9000 vlan.mtu 9000
  6. 配置持久化验证 检查/etc/sysconfig/network-scripts/ifcfg-VLAN* 确保包含:

    VLAN=yes
    PHYSDEV=eth0
    VLAN_ID=10
    ONBOOT=yes
  7. 遇到的典型问题

    • 多VLAN场景下的ARP缓存冲突 → 需定期清理arp缓存
    • 系统升级后配置失效 → 因NetworkManager版本差异导致参数变化
    • bond接口叠加VLAN时,需先创建bond再配置VLAN
    • 某些NIC驱动对VLAN MTU支持异常(特别是Intel X520系列网卡)
作者头像
tinywhale88

使用 nmcli 配置带有静态 IP 的 VLAN 接口需以下步骤:

  1. 创建 VLAN 接口nmcli con add type vlan con-name <连接名> dev <物理接口> id <VLAN_ID> ipv4.method manual ipv4.addresses <IP/掩码> ipv4.gateway <网关> ipv4.dns <DNS>,如 nmcli con add type vlan con-name vlan10 dev eth0 id 10
  2. 配置静态 IP:通过 nmcli con mod <连接名> ipv4.addresses <IP/掩码> ipv4.gateway <网关> ipv4.dns <DNS> ipv4.method manual 明确指定参数。
  3. 激活连接nmcli con up <连接名>注意:确保内核加载 8021q 模块(modprobe 8021q),父接口需支持 VLAN 标记。验证配置使用 ip addr shownmcli con show <连接名>
作者头像
leiyang88

使用 nmcli connection add type vlan dev <主接口> id <VLAN_ID> ipv4.addresses <IP/掩码> ipv4.gateway <网关> ipv4.dns <DNS> ipv4.method manual 创建并配置带静态IP的VLAN接口,替换尖括号内参数即可。

作者头像
liulixing351

使用nmcli配置带有静态IP的VLAN接口步骤如下:

  1. 创建VLAN接口:nmcli connection add type vlan con-name VLAN100 dev eth0 id 100(假设父接口为eth0,VLAN ID为100)。
  2. 设置静态IP:nmcli connection modify VLAN100 ipv4.addresses 192.168.1.10/24 ipv4.gateway 192.168.1.1 ipv4.method manual
  3. 配置DNS:nmcli connection modify VLAN100 ipv4.dns 8.8.8.8
  4. 激活连接:nmcli connection up VLAN100

延伸知识点:VLAN接口的id与父接口要求 VLAN的id(范围1-4094)用于标记数据包,区分不同虚拟网络。父接口需满足:

  1. 物理接口支持VLAN标记:需确保网卡驱动和内核模块(如8021q)已加载(modprobe 8021q)。
  2. 父接口配置模式:若父接口为动态IP(DHCP),需在创建VLAN时添加+ipv4.method disabled防止IP冲突。
  3. 持久化验证:重启后VLAN接口自动激活依赖NetworkManager配置,可通过nmcli con show --active确认状态。