Ubuntu配置VLAN网络
一、技术背景
网络隔离是网络安全的常用手段,业务结构相对简单的团队,可以使用VLAN进行三层网络的逻辑隔离,用来实现基础安全控制的目的。
二、方案设计
Ubuntu18.04版本后,网络管理采用netplan,interfaces的方式不再维护,本案例主要使用netplan方式设置配置文件。
本文总结三种方式的网络配置:
- 单网卡物理绑定VLAN
- 多网卡创建bond并绑定VLAN
- 多网卡创建bond并桥接创建虚拟网桥,然后绑定VLAN
交换机要配置Trunk,让 VLAN 标签能通过;服务器网卡要LACP 捆绑 ,把线变多、变快、变稳,实现主被或堆叠
三、实现过程
3.1、环境确认
注意:一定要确定系统识别的网络设备名称,电口和光口名称有所区别。
bash
ip -d link show

注意:配置文件权限控制最小,root权限只读。
bash
sudo chmod 600 /etc/netplan/*.yaml

3.2.1、单网卡物理绑定VLAN
编辑配置文件,生成如下内容:
bash
sudo nano /etc/netplan/00-single-config.yaml
yaml
network:
ethernets:
ens6f0np0: {}
vlans:
ens6f0np0.32:
id: 32
link: ens6f0np0
addresses: [172.31.32.21/24]
routes:
[{to: default,
via: 172.31.32.254 } ]
nameservers:
addresses: [172.27.3.1, 172.27.3.2]
version: 2

3.2.2、多网卡创建bond并绑定VLAN
编辑配置文件,生成如下内容:
bash
sudo nano /etc/netplan/00-bond-config.yaml
yaml
network:
ethernets:
ens6f0np0: {}
ens8f0np0: {}
bonds:
bond0:
interfaces: [ens6f0np0,ens8f0np0]
parameters:
mode: 802.3ad
lacp-rate: fast
mii-monitor-interval: 100
vlans:
bond0.32:
id: 32
link: bond0
addresses: [172.31.32.21/24]
routes:
[{to: default,
via: 172.31.32.254 } ]
nameservers:
addresses: [172.27.3.1, 172.27.3.2]
version: 2

3.2.3、多网卡创建bond并桥接创建虚拟网桥,然后绑定VLAN
编辑配置文件,生成如下内容:
bash
sudo nano /etc/netplan/00-bond-bridge-config.yaml
yaml
network:
ethernets:
ens6f0np0: {}
ens8f0np0: {}
bonds:
bond0:
interfaces: [ens6f0np0,ens8f0np0]
parameters:
mode: 802.3ad
lacp-rate: fast
mii-monitor-interval: 100
vlans:
vlan32:
id: 32
link: bond0
bridges:
vmbr32:
interfaces: [vlan32]
addresses: [172.31.32.21/24]
routes:
[{ to: default,
via: 172.31.32.254 }]
nameservers:
addresses: [172.27.3.1, 172.27.3.2]
parameters:
stp: false
forward-delay: 0
version: 2

3.3、配置生效
- 应用配置,使网络生效,修改较多时可能需要重启网络服务,甚至重启系统:
bash
sudo netplan apply
sudo systemctl restart systemd-networkd
sudo systemctl restart NetworkManager

- 验证是否生效
以bond绑定VLAN为例:
bash
ip addr
ip -d link show bond0.32
ip route



