netplan是什么?

Netplan is a utility for easily configuring networking on a linux system. You simply create a YAML description of the required network interfaces and what each should be configured to do. From this description Netplan will generate all the necessary configuration for your chosen renderer tool.

在 Ubuntu 中,Netplan 是用于配置网络接口的工具。它使用 YAML 格式的配置文件来定义网络设置。以下是一些在 Ubuntu 上使用 Netplan 配置网络的示例方案:

netplan的工作原理是什么?

2023-10-31T07:32:36.png

Netplan reads network configuration from /etc/netplan/*.yaml which are written by administrators, installers, cloud image instantiations, or other OS deployments. During early boot, Netplan generates backend specific configuration files in /run to hand off control of devices to a particular networking daemon.

Netplan currently works with these supported renderers

netplan与networkmanager之间的关系是什么?

Netplan 和 NetworkManager 都是用于配置网络的工具,但它们在配置的方式和工作原理上有一些区别。

Netplan 是一个用于配置网络的命令行工具,它使用 YAML 格式的配置文件来描述网络配置。您可以创建一个 Netplan 配置文件(通常位于 /etc/netplan/ 目录下),然后使用 netplan apply 命令将配置应用到系统中。Netplan 会将配置转换为底层网络管理器(如 systemd-networkd 或 NetworkManager)所需的配置文件。Netplan 的目标是提供一个统一的网络配置接口,无论底层使用的是哪个网络管理器。

NetworkManager 是一个网络管理服务,提供了图形化和命令行界面,用于配置网络连接。它可以管理以太网、Wi-Fi、VPN、移动宽带等各种类型的网络连接。NetworkManager 会监视系统中的网络设备和连接,并根据配置文件或用户的操作来进行网络配置。它可以与不同的网络管理器(如 systemd-networkd、dhclient 等)进行交互,以实现网络连接的配置和管理。

在 Ubuntu 中,默认情况下,Netplan 与 NetworkManager 是一起使用的。Netplan 会生成 NetworkManager 的配置文件,然后 NetworkManager 会根据这些配置文件来管理网络连接。您可以使用 Netplan 来配置一些基本的网络设置,如 IP 地址、网关和 DNS 服务器。对于更复杂的网络配置(如 Wi-Fi、VPN 等),您可以使用 NetworkManager 的工具来进行配置。

总结起来,Netplan 提供了一个统一的网络配置接口,用于生成底层网络管理器所需的配置文件,而 NetworkManager 则是一个网络管理服务,负责实际的网络连接管理和配置。它们可以一起使用,以便在 Ubuntu 中进行灵活且全面的网络配置。

常用配置举例

1. 配置静态 IP 地址

network:
  version: 2
  renderer: networkd
  ethernets:
    eth0:
      dhcp4: no
      addresses: [192.168.1.100/24]
      routes: 
        - to: defaulat
          via: 192.168.1.1
      nameservers:
        addresses: [8.8.8.8, 8.8.4.4]

上述配置将 eth0 网络接口配置为静态 IP 地址为 192.168.1.100/24,网关为 192.168.1.1,DNS 服务器为 Google 的 DNS 服务器 8.8.8.88.8.4.4

2. 配置 DHCP

network:
  version: 2
  renderer: networkd
  ethernets:
    eth0:
      dhcp4: true

上述配置将 eth0 网络接口配置为使用 DHCP 获取 IP 地址。

3. 配置桥接网络

network:
  version: 2
  renderer: networkd
  ethernets:
    eth0:
      dhcp4: no
  bridges:
    br0:
      interfaces: [eth0]
      addresses: [192.168.1.100/24]
      routes: 
        - to: defaulat
          via: 192.168.1.1
      nameservers:
        addresses: [8.8.8.8, 8.8.4.4]

上述配置将 eth0 网络接口桥接到 br0,并为 br0 分配静态 IP 地址、网关和 DNS 服务器。

4. 配置子接口

network:
  version: 2
  renderer: networkd
  ethernets:
    eth0:
      dhcp4: true
  vlans:
    vlan10:
      id: 10
      link: eth0
      addresses: [192.168.1.10/24]
      routes: 
        - to: defaulat
          via: 192.168.1.1
    vlan20:
      id: 20
      link: eth0
      addresses: [192.168.2.10/24]
      routes: 
        - to: defaulat
          via: 192.168.2.1

上述配置示例中,除了 vlan10 子接口外,还添加了一个名为 vlan20 的子接口。vlan10 的 VLAN ID 是 10,而 vlan20 的 VLAN ID 是 20。每个子接口都有自己的 IP 地址和网关。

5. 配置第二地址

network:
  version: 2
  renderer: networkd
  ethernets:
    eth0:
      dhcp4: no
      addresses: [192.168.1.100/24, 10.0.0.100/24]
      routes: 
        - to: defaulat
          via: 192.168.1.1
      nameservers:
        addresses: [8.8.8.8, 8.8.4.4]

上述配置示例中,eth0 网络接口配置了两个 IP 地址:192.168.1.100/24 和 10.0.0.100/24。这样,eth0 接口将拥有两个 IP 地址。

6. 配置环回地址

network:
  version: 2
  renderer: networkd
  ethernets:
    eth0:
      dhcp4: true
  lo:
    addresses: [127.0.0.1/8]

7. 配置明细路由

network:
  version: 2
  renderer: networkd
  ethernets:
    eth0:
      dhcp4: true
      routes:
        - to: 192.168.2.0/24
          via: 192.168.1.1
        - to: 10.0.0.0/24
          via: 192.168.1.1

上述配置示例中,eth0 接口配置了两个明细路由。第一个路由是将流量发送到目标网络 192.168.2.0/24,通过网关 192.168.1.1。第二个路由是将流量发送到目标网络 10.0.0.0/24,同样通过网关 192.168.1.1。

8.配置ipv6

使用 DHCPv6:如果您的网络支持 IPv6,并且您想通过 DHCPv6 获取 IPv6 地址,可以使用 dhcp6: true 配置。例如:

network:
  version: 2
  renderer: networkd
  ethernets:
    eth0:
      dhcp6: true

上述配置示例中,eth0 接口启用了 DHCPv6。

9.配置mac地址

配置网络设备的 MAC 地址:如果您需要手动指定网络设备的 MAC 地址,可以使用 match 字段和 macaddress 子字段。例如:

network:
  version: 2
  renderer: networkd
  ethernets:
    eth0:
      match:
        macaddress: aa:bb:cc:dd:ee:ff
      dhcp4: true

上述配置示例中,eth0 接口配置了 MAC 地址为 aa:bb:cc:dd:ee:ff。

10. 连接openvpn服务器

是的,Netplan 支持配置与 OpenVPN 的连接。您可以使用 Netplan 配置文件来设置 OpenVPN 客户端连接。下面是一个示例:

network:
  version: 2
  renderer: networkd
  ethernets:
    eth0:
      dhcp4: true
  vpn:
    - type: openvpn
      config: /path/to/openvpn/client.conf

在上述配置示例中,eth0 接口配置为使用 DHCP 获取 IPv4 地址。然后,通过 vpn 字段指定了一个 OpenVPN 连接,其中 type 设置为 openvpn,并指定了 OpenVPN 客户端配置文件的路径。

这些只是 Netplan 的一些示例配置方案。您可以根据您的网络需求和环境进行相应的配置。完成配置后,使用 sudo netplan apply 命令来应用配置更改。

请注意,具体的配置方案可能会因您的网络环境和要求而有所不同。建议在进行任何网络配置更改之前备份您的原始配置文件,并确保您对网络配置有一定的了解。

希望这些示例能帮助到您!如果您有任何进一步的问题,请随时提问。

最后修改:2024 年 05 月 11 日
如果觉得我的文章对你有用,请随意赞赏