一、什么是Netplan
Netplan是Ubuntu 17.10版本及以后版本的网络配置工具,目的是简化和统一Linux网络配置的方式,能够简化网络配置文件的编写并增强网络配置的可读性和可管理性。它是用YAML格式编写的,易于阅读和理解,更加灵活、易于扩展和维护,也支持多种网卡驱动程序和网络协议。
Netplan的主要特点有:
- 采用YAML格式,语法简单易懂、可读性高
- 可以管理各种网络设备,包括ethernet、wifi、bonding、VLAN、bridge等
- 支持IPv4、IPv6、DHCP、静态IP等多种IP配置方式
- 可以在系统启动时自动执行配置
二、Netplan如何使用
Netplan包含两个主要的配置文件:
- Netplan配置文件:/etc/netplan/*.yaml
- Network配置文件:/etc/network/interfaces
作为Netplan的实现,systemd-networkd服务已经默认开启并运行在Ubuntu 17.10或更高版本。
默认情况下,Netplan工具会在以下的文件中搜索配置文件并按照字典序依次处理:
- /etc/netplan/* .yaml
- /lib/netplan/* .yaml
如果配置文件都是有效的,那么Netplan将会在系统启动时自动执行这些配置。
三、Netplan配置样例
network: version: 2 renderer: networkd ethernets: eno1: dhcp4: no dhcp6: no addresses: [192.168.1.10/24] gateway4: 192.168.1.1 nameservers: addresses: [8.8.8.8, 8.8.4.4] eno2: dhcp4: yes
以上是一个简单的Netplan配置样例,具体内容说明如下:
- 版本号:当前仅支持version: 2
- renderer:指定网络渲染器,可以使用networkd或network-manager,默认是networkd
- ethernets:指定以太网网卡的名称,可以添加多个以太网网卡的配置
- dhcp4/dhcp6:指定是否启用DHCP来获取IPv4/IPv6地址
- addresses:分配到该网卡的IPv4/IPv6地址,可以指定多个地址
- gateway4:指定IPv4网关
- nameservers.addresses:指定DNS服务器的IP地址
四、Netplan常用命令
常用Netplan命令如下:
sudo netplan generate # 生成配置 sudo netplan apply # 应用配置 sudo netplan try # 尝试执行配置,如果有错误,则恢复原来的配置,并给出错误提示 sudo netplan --debug apply # 应用配置并打印调试信息
五、Netplan实例:静态IP、DHCP、VLAN、Bonding
1. 静态IP
下面的示例中,我们为enp2s0f0网卡分配静态IP地址
network: version: 2 renderer: networkd ethernets: enp2s0f0: addresses: - 192.168.1.100/24 - 2001:db8::1000/64 gateway4: 192.168.1.1 gateway6: "2001:db8::1" nameservers: addresses: - 192.168.1.1 - "2001:4860:4860::8888" search: [mydomain, otherdomain]
2. DHCP
下面的示例中,我们为enp2s0f0网卡启用DHCP分配IP地址
network: version: 2 renderer: networkd ethernets: enp2s0f0: dhcp4: yes dhcp6: yes
3. VLAN
下面的示例中,我们将enp2s0f0网卡分配到VLAN 100,并分配静态IP地址
network: version: 2 renderer: networkd vlans: vlan.100: id: 100 link: enp2s0f0 addresses: - 192.168.1.100/24 - 2001:db8::1000/64 gateway4: 192.168.1.1 gateway6: "2001:db8::1" nameservers: addresses: - 192.168.1.1 - "2001:4860:4860::8888" search: [mydomain, otherdomain]
4. Bonding
下面的示例中,我们将enp2s0f0和enp2s0f1网卡进行绑定,并分配静态IP地址
network: version: 2 renderer: networkd bonds: bond0: dhcp4: no interfaces: - enp2s0f0 - enp2s0f1 addresses: - 192.168.1.100/24 - 2001:db8::1000/64 gateway4: 192.168.1.1 gateway6: "2001:db8::1" nameservers: addresses: - 192.168.1.1 - "2001:4860:4860::8888" search: [mydomain, otherdomain] parameters: mode: balance-rr lacp-rate: fast primary: enp2s0f0
六、总结
这篇文章我们介绍了Ubuntu Netplan的基本概念和使用方法,并通过实例对静态IP、DHCP、VLAN和Bonding等常见场景进行了说明。Netplan的YAML配置方式让Linux网络配置更加简单、易于扩展和管理,值得广大Linux爱好者学习和使用。