[网络] Netplan下vlan配置手册

Netplan VLAN 配置手册

一、基础概念

1.1 VLAN 在 Netplan 中的角色

VLAN 允许单个物理接口承载多个逻辑网络接口,每个逻辑接口具有独立的 IP 配置和网络策略。

1.2 配置前提

  • 物理接口已正确连接
  • 交换机/路由器已配置相应 VLAN
  • 知道正确的 VLAN ID、IP 地址、网关等信息

二、配置语法

2.1 基本结构

network:
  version: 2
  renderer: networkd  # 或 NetworkManager
  ethernets:
    <物理接口名>:
      dhcp4: false
      # 注意:物理接口通常不配置IP地址
  
  vlans:
    <VLAN接口名>:
      id: <VLAN_ID>
      link: <物理接口名>
      addresses:
        - <IP地址/前缀>
      # 其他可选配置

2.2 命名约定

VLAN 接口名通常使用格式:物理接口名.VLAN_ID
示例:eth0.100enp3s0.200

三、配置示例

3.1 单 VLAN 配置

network:
  version: 2
  renderer: networkd
  
  ethernets:
    eth0:
      dhcp4: false
      # 物理接口不配IP
  
  vlans:
    eth0.100:
      id: 100
      link: eth0
      addresses:
        - 192.168.100.10/24
      routes:
        - to: default
          via: 192.168.100.1
      nameservers:
        addresses: [8.8.8.8, 8.8.4.4]

3.2 多 VLAN 配置

network:
  version: 2
  
  ethernets:
    eth1:
      dhcp4: false
  
  vlans:
    # VLAN 10 - 管理网络
    eth1.10:
      id: 10
      link: eth1
      addresses:
        - 10.0.10.50/24
    
    # VLAN 20 - 业务网络
    eth1.20:
      id: 20
      link: eth1
      addresses:
        - 172.16.20.100/24
      routes:
        - to: 172.16.0.0/16
          via: 172.16.20.1
    
    # VLAN 30 - 存储网络
    eth1.30:
      id: 30
      link: eth1
      addresses:
        - 192.168.30.50/24

3.3 混合配置(物理接口 + VLAN)

network:
  version: 2
  
  ethernets:
    eth0:
      dhcp4: false
      addresses:
        - 192.168.1.100/24  # 物理接口IP
      routes:
        - to: default
          via: 192.168.1.1
    
    eth1:
      dhcp4: false  # 仅用于VLAN
  
  vlans:
    eth1.100:
      id: 100
      link: eth1
      addresses:
        - 10.10.100.50/24

四、完整配置参数

4.1 VLAN 专用参数

vlans:
  <接口名>:
    id: <VLAN_ID>          # 必须,1-4094
    link: <物理接口>       # 必须,父接口名
    
    # IP配置
    addresses: []          # IP地址列表
    gateway4: <网关地址>   # IPv4默认网关(较新版本)
    gateway6: <网关地址>   # IPv6默认网关
    
    # 路由配置
    routes:
      - to: <目标网络>     # 如: 0.0.0.0/0 或 10.0.0.0/8
        via: <网关地址>    # 下一跳地址
        metric: <跃点数>   # 可选,默认100
        table: <路由表>    # 可选
    
    # DNS配置
    nameservers:
      addresses: []
      search: []
    
    # DHCP
    dhcp4: true/false
    dhcp6: true/false
    
    # MTU
    mtu: <数值>
    
    # 其他
    accept-ra: true/false  # 接受路由通告
    critical: true/false   # 关键连接

4.2 路由优先级控制

vlans:
  eth0.100:
    id: 100
    link: eth0
    addresses:
      - 192.168.100.10/24
    routes:
      - to: default
        via: 192.168.100.1
        metric: 100        # 较高metric,优先级低
      - to: 10.0.0.0/8
        via: 192.168.100.1
        metric: 50         # 较低metric,优先级高

五、实际应用案例

5.1 服务器多网段访问

# 场景:Web服务器需要访问多个内部网络
network:
  version: 2
  
  ethernets:
    enp3s0:
      dhcp4: false
  
  vlans:
    # 互联网出口
    enp3s0.10:
      id: 10
      link: enp3s0
      addresses:
        - 203.0.113.100/24
      routes:
        - to: default
          via: 203.0.113.1
    
    # 数据库网络
    enp3s0.20:
      id: 20
      link: enp3s0
      addresses:
        - 10.10.20.100/24
    
    # 存储网络
    enp3s0.30:
      id: 30
      link: enp3s0
      addresses:
        - 172.16.30.100/24
      routes:
        - to: 172.16.30.0/24
          via: 172.16.30.1

5.2 虚拟化主机配置

# 场景:KVM/QEMU宿主机
network:
  version: 2
  
  ethernets:
    bond0:
      dhcp4: false
  
  vlans:
    # 管理网络
    bond0.100:
      id: 100
      link: bond0
      addresses:
        - 192.168.100.10/24
    
    # 虚拟机业务网络
    bond0.200:
      id: 200
      link: bond0
      addresses:
        - 10.10.200.1/24
    
    # 存储网络
    bond0.300:
      id: 300
      link: bond0
      addresses:
        - 172.16.100.10/24
      mtu: 9000  # Jumbo frames for storage

六、操作命令

6.1 配置应用

# 测试配置语法(测试90秒,按Enter接受)
sudo netplan try

# 直接应用配置
sudo netplan apply

# 生成配置到系统目录
sudo netplan generate

6.2 状态检查

# 查看所有网络接口
ip addr show

# 查看VLAN接口详情
ip -d link show <接口名>

# 查看路由表
ip route show
route -n

# 测试连通性
ping -I <VLAN接口> <目标IP>

# 查看数据包流向
ip route get <目标IP>

6.3 故障排查

# 查看Netplan日志
sudo journalctl -u systemd-networkd

# 查看网络设备状态
networkctl status

# 查看特定接口
networkctl status eth0.100

七、注意事项

7.1 配置要点

  1. VLAN ID必须匹配:Netplan中的id必须与交换机配置一致
  2. 物理接口不配IP:VLAN的父接口通常不配置IP地址
  3. 命名规范:建议使用ethX.YYY格式命名
  4. 默认路由:系统只能有一个活动的默认路由

7.2 常见错误

# 错误:物理接口和VLAN接口都配置IP
eth0:
  addresses: [192.168.1.100/24]  # 错误
vlans:
  eth0.100:
    addresses: [192.168.100.10/24]

# 正确:物理接口不配IP
eth0:
  dhcp4: false  # 正确,不配IP
vlans:
  eth0.100:
    addresses: [192.168.100.10/24]

7.3 配置顺序

  1. 获取网络规划信息(VLAN ID、IP、网关等)
  2. 确认交换机端口已配置为Trunk模式
  3. 编写Netplan配置文件
  4. 使用netplan try测试
  5. 应用配置并验证连通性

八、最佳实践

8.1 配置文件管理

# 建议的配置文件位置
/etc/netplan/01-primary-vlan.yaml
/etc/netplan/02-secondary-vlans.yaml

# 文件命名建议
# 使用数字前缀控制应用顺序
# 使用描述性名称

8.2 版本控制

# 在配置文件中添加注释说明
network:
  version: 2
  # 配置文件:prod-server-vlans.yaml
  # 创建日期:2024-01-15
  # 用途:生产服务器VLAN配置
  # VLAN规划:
  #   - 100: 管理网络 (10.10.100.0/24)
  #   - 200: 业务网络 (192.168.200.0/24)
  #   - 300: 备份网络 (172.16.30.0/24)

8.3 备份与恢复

# 备份当前配置
sudo cp /etc/netplan/*.yaml ~/netplan-backup/

# 快速恢复
sudo cp ~/netplan-backup/*.yaml /etc/netplan/
sudo netplan apply
posted on 2026-01-28 16:41  风惊庭前叶  阅读(0)  评论(0)    收藏  举报