更新时间:2022-12-25 10:57:24浏览次数:758+次
本文介绍在Ubuntu系统上使用Netplan配置Linux桥接器/VLAN接口的方法。Netplan是Canonical开发的工具,它提供了一种在Linux系统上配置网络的简单方法,使用包含所需网络接口的所有描述的YAML文件可以轻松创建网络,通常,它从/etc/netplan/*.yaml读取网络配置,在引导期间,netplan在/run中生成后端特定的配置文件,将设备移交给特定的网络守护程序,目前,它支持Systemd-networkd和NetworkManager作为后端/渲染器系统,在Ubuntu 20.04及更高版本中,Netplan取代了使用/etc/network/接口配置网络的传统方法,这样做的主要原因是为了使事情更容易和更集中,当前Netplan默认安装在Ubuntu 20.04及更高版本上,可执行sudo apt install bridge-utils vim -y命令安装所需的软件包。
1、在Ubuntu上使用Netplan创建网桥
使用Netplan创建网桥有两种方法,以下分别介绍。
A、使用DHCP寻址的网桥
这是其中最简单的,因为它不需要IP包含。首先在/etc/netplan/01-network-manager-all.yaml编辑默认YAML:
sudo vim /etc/netplan/01-network-manager-all.yaml
在新安装时,YAML将显示如下:
# Let NetworkManager manage all devices on this system
network:
version: 2
renderer: NetworkManager
您可以选择将渲染器编辑为首选渲染器,例如networkd:
# Let NetworkManager manage all devices on this system
network:
version: 2
renderer: networkd
在本文中,我们将继续使用默认渲染器(NetworkManager)。
使用以下命令获取接口名称:
$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens18: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 42:3a:ef:01:30:2d brd ff:ff:ff:ff:ff:ff
altname enp0s18
inet 192.168.205.22/24 brd 192.168.205.255 scope global noprefixroute ens18
valid_lft forever preferred_lft forever
inet6 fe80::2c01:ccda:29ac:b41/64 scope link noprefixroute
valid_lft forever preferred_lft forever
3: ens19: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether fe:68:0c:29:b7:85 brd ff:ff:ff:ff:ff:ff
altname enp0s19
inet 192.168.205.30/24 brd 192.168.205.255 scope global dynamic noprefixroute ens19
valid_lft 43105sec preferred_lft 43105sec
现在添加以下行以使用DHCP寻址创建网桥:
# Let NetworkManager manage all devices on this system
network:
version: 2
renderer: NetworkManager
ethernets:
ens19:
dhcp4: no
bridges:
br0:
dhcp4: yes
interfaces:
- ens19
根据需要提供接口名称后,保存并应用配置:
sudo netplan apply
一段时间后,网桥接口应显示DHCP,如图所示:
B、使用静态IPv4寻址的网桥
还可以为网桥提供静态IPv4地址(网络掩码、网关、DNS、搜索域)。打开文件进行编辑:
sudo vim /etc/netplan/01-network-manager-all.yaml
对YAML进行以下调整:
# Let NetworkManager manage all devices on this system
network:
version: 2
renderer: NetworkManager
ethernets:
ens19:
dhcp4: true
bridges:
br0:
addresses: [ 192.168.205.26/24 ]
routes:
- to: default
via: 192.168.205.1
mtu: 1500
nameservers:
addresses: [8.8.8.8]
interfaces:
- ens19
YAML的下部定义了网桥的各种静态IPv4地址(br0)。这些是:
192.168.205.26/24:绑定和子网的静态IP地址。
192.168.205.1:网关。
8.8.8.8:名称服务器。
调整完成后,保存并应用配置更改:
sudo netplan apply
几分钟后,桥应显示如下:
以下介绍使用网桥的方法。
您还可以使用下面的ping命令测试网桥是否正常工作:
ping -c 3 192.168.205.26
样本输出:
安装网络工具:
sudo apt install net-tools -y
检查路由配置:
$ route -n
会返回相应的信息。至此,现在可以根据需要使用创建的桥。
2、在Ubuntu上使用Netplan创建VLAN接口
VLAN接口可以定义为连接到配置VLAN的物理网络端口或绑定的虚拟接口。它用于使用适当的VLAN ID标记通过它的流量路由。
与网桥类似,您可以使用Netplan在Ubuntu上轻松创建VLAN接口。打开YAML文件:
sudo vim /etc/netplan/01-network-manager-all.yaml
现在根据需要修改此文件。对于这种情况,我们将使用静态IP信息创建VLAN接口:
# Let NetworkManager manage all devices on this system
network:
version: 2
renderer: NetworkManager
ethernets:
ens19:
dhcp4: true
vlans:
vlan.45:
id: 45
link: ens19
addresses: [ 192.168.205.28/24 ]
routes:
- to: default
via: 192.168.205.1
nameservers:
search: [ domain.local ]
addresses: [8.8.8.8]
保存文件并应用更改:
sudo netplan apply
验证更改:
验证VLAN是否正常工作:
ping -c 3 192.168.205.28
样本输出:
3、使用标记的VLAN配置网桥
使用上述VLAN,我们可以使用DHCP或静态IP从中创建网桥。您需要做的就是提供VLAN接口作为桥接网络的接口。
打开文件进行编辑:
sudo vim /etc/netplan/01-network-manager-all.yaml
现在,在创建的VLAN接口下,添加网桥:
# Let NetworkManager manage all devices on this system
network:
version: 2
renderer: NetworkManager
ethernets:
ens19:
dhcp4: true
vlans:
vlan.45:
id: 45
link: ens19
addresses: [ 192.168.205.28/24 ]
routes:
- to: default
via: 192.168.205.1
nameservers:
search: [ domain.local ]
addresses: [8.8.8.8]
bridges:
br0:
addresses: [ 192.168.205.29/24 ]
mtu: 1500
nameservers:
addresses: [8.8.8.8]
interfaces:
- vlan.45
保存文件并应用更改:
sudo netplan apply
应用后,验证更改:
验证创建的网桥是否正常工作:
ping -c 3 192.168.205.29
样本输出:
至此,配置成功完成。