netplan配置

配置

要配置 netplan,请在下面保存带有扩展名的配置文件(例如 ),然后运行 。此命令解析配置并将其应用于系统。写入磁盘的配置将在两次重新启动之间保留。/etc/netplan/``.yaml``/etc/netplan/config.yaml``sudo netplan apply``/etc/netplan/

使用 DHCP 和静态寻址

要让名为“enp3s0”的接口通过 DHCP 获取地址,请使用以下内容创建 YAML 文件:

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

要改为设置静态 IP 地址,请使用地址密钥,该密钥采用(IPv4 或 IPv6)、地址列表以及子网前缀长度(例如 /24)。也可以提供 DNS 信息,并且可以通过默认路由定义网关:

network:
  version: 2
  renderer: networkd
  ethernets:
    enp3s0:
      addresses:
        - 10.10.10.2/24
      nameservers:
        search: [mydomain, otherdomain]
        addresses: [10.10.10.1, 1.1.1.1]
      routes:
        - to: default
          via: 10.10.10.1

使用 DHCP 连接多个接口

许多系统现在包含多个网络接口。服务器通常需要连接到多个网络,并且可能要求到 Internet 的流量通过特定接口,尽管所有这些接口都提供有效的网关。

可以通过为通过 DHCP 检索的路由指定指标来实现所需的 DHCP 上的确切路由,这将确保某些路由优先于其他路由。在此示例中,“enred”优先于“engreen”,因为它的路由指标较低:

network:
  version: 2
  ethernets:
    enred:
      dhcp4: yes
      dhcp4-overrides:
        route-metric: 100
    engreen:
      dhcp4: yes
      dhcp4-overrides:
        route-metric: 200

连接到开放的无线网络

Netplan 轻松支持连接到开放的无线网络(不受密码保护的网络),只需定义接入点:

network:
  version: 2
  wifis:
    wl0:
      access-points:
        opennetwork: {}
      dhcp4: yes

连接到 WPA 个人无线网络

无线设备使用“wifis”密钥,并与有线以太网设备共享相同的配置选项。还应指定无线接入点名称和密码:

network:
  version: 2
  renderer: networkd
  wifis:
    wlp2s0b1:
      dhcp4: no
      dhcp6: no
      addresses: [192.168.0.21/24]
      nameservers:
        addresses: [192.168.0.1, 8.8.8.8]
      access-points:
        "network_ssid_name":
            password: "**********"
      routes:
        - to: default
          via: 192.168.0.1

连接到 WPA 企业无线网络

使用WPA或WPA2 Enterprise保护的无线网络也很常见,这需要额外的身份验证参数。

例如,如果使用 WPA-EAP 和 TTLS 保护网络:

network:
  version: 2
  wifis:
    wl0:
      access-points:
        workplace:
          auth:
            key-management: eap
            method: ttls
            anonymous-identity: "@internal.example.com"
            identity: "joe@internal.example.com"
            password: "v3ryS3kr1t"
        dhcp4: yes

或者,如果使用 WPA-EAP 和 TLS 保护网络:

network:
  version: 2
  wifis:
    wl0:
      access-points:
        university:
          auth:
            key-management: eap
            method: tls
            anonymous-identity: "@cust.example.com"
            identity: "cert-joe@cust.example.com"
            ca-certificate: /etc/ssl/cust-cacrt.pem
            client-certificate: /etc/ssl/cust-crt.pem
            client-key: /etc/ssl/cust-key.pem
            client-key-password: "d3cryptPr1v4t3K3y"
      dhcp4: yes

支持许多不同的加密模式。请参阅网络计划参考页面。

在单个界面上使用多个地址

地址键可以获取要分配给接口的地址列表:

network:
  version: 2
  renderer: networkd
  ethernets:
    enp3s0:
      addresses:
          - 10.100.1.37/24
          - 10.100.1.38/24:
              label: enp3s0:0
          - 10.100.1.39/24:
              label: enp3s0:some-label
      routes:
          - to: default
            via: 10.100.1.1

将多个地址与多个网关一起使用

与上述示例类似,具有多个地址的接口可以是 配置了多个网关。

network:
  version: 2
  renderer: networkd
  ethernets:
    enp3s0:
      addresses:
        - 10.0.0.10/24
        - 11.0.0.11/24
        routes:
        - to: default
          via: 10.0.0.1
          metric: 200
        - to: default
          via: 11.0.0.1
          metric: 300

我们使用子网网关的地址将各个路由配置为默认值(或 0.0.0.0/0)。应调整该值,以便按预期进行路由。metric

DHCP 可用于接收接口的其中一个 IP 地址。在这种情况下,该地址的默认路由将自动配置为值 100。metric

使用网络管理器作为渲染器

Netplan支持网络和网络管理器作为后端。您可以使用密钥指定应使用哪个网络后端来配置特定设备。您还可以通过仅指定密钥将网络的所有配置委托给网络管理器本身:renderer``renderer

network:
  version: 2
  renderer: NetworkManager

配置接口绑定

绑定是通过声明具有物理接口列表和绑定模式的绑定接口来配置的。下面是使用 DHCP 获取地址的主动备份绑定示例:

network:
  version: 2
  renderer: networkd
  bonds:
      bond0:
          dhcp4: yes
          interfaces:
              - enp3s0
              - enp4s0
          parameters:
              mode: active-backup
              primary: enp3s0

下面是一个充当路由器的系统示例,具有各种绑定接口和不同类型的路由器。请注意“可选:true”键声明,这些声明允许在不等待这些接口完全激活的情况下进行引导。

network:
  version: 2
  renderer: networkd
  ethernets:
      enp1s0:
          dhcp4: no
      enp2s0:
          dhcp4: no
      enp3s0:
          dhcp4: no
          optional: true
      enp4s0:
          dhcp4: no
          optional: true
      enp5s0:
          dhcp4: no
          optional: true
      enp6s0:
          dhcp4: no
          optional: true
  bonds:
      bond-lan:
          interfaces: [enp2s0, enp3s0]
          addresses: [192.168.93.2/24]
          parameters:
              mode: 802.3ad
              mii-monitor-interval: 1
      bond-wan:
          interfaces: [enp1s0, enp4s0]
          addresses: [192.168.1.252/24]
          nameservers:
              search: [local]
              addresses: [8.8.8.8, 8.8.4.4]
          parameters:
              mode: active-backup
              mii-monitor-interval: 1
              gratuitious-arp: 5
          routes:
              - to: default
                via: 192.168.1.1
      bond-conntrack:
          interfaces: [enp5s0, enp6s0]
          addresses: [192.168.254.2/24]
          parameters:
              mode: balance-rr
              mii-monitor-interval: 1

配置网桥

要创建由使用 DHCP 的单个设备组成的非常简单的网桥,请编写:

network:
  version: 2
  renderer: networkd
  ethernets:
      enp3s0:
          dhcp4: no
  bridges:
      br0:
          dhcp4: yes
          interfaces:
              - enp3s0

一个更复杂的例子,要让libvirtd使用带有标记vlan的特定网桥,同时继续提供未标记的接口,将涉及:

network:
  version: 2
  renderer: networkd
  ethernets:
      enp0s25:
          dhcp4: true
  bridges:
      br0:
          addresses: [ 10.3.99.25/24 ]
          interfaces: [ vlan15 ]
  vlans:
      vlan15:
          accept-ra: no
          id: 15
          link: enp0s25

然后,通过将以下内容添加到 下的新 XML 文件中,将 libvirtd 配置为使用此桥。<网桥>标签以及<名称>中的网桥名称需要与使用 netplan 配置的网桥设备的名称匹配:/etc/libvirtd/qemu/networks/

XML br0

将 VLAN 连接到网络接口

要使用重命名的接口配置多个 VLAN:

network:
  version: 2
  renderer: networkd
  ethernets:
      mainif:
          match:
              macaddress: "de:ad:be:ef:ca:fe"
          set-name: mainif
          addresses: [ "10.3.0.5/23" ]
          nameservers:
              addresses: [ "8.8.8.8", "8.8.4.4" ]
              search: [ example.com ]
          routes:
              - to: default
                via: 10.3.0.1
  vlans:
      vlan15:
          id: 15
          link: mainif
          addresses: [ "10.3.99.5/24" ]
      vlan10:
          id: 10
          link: mainif
          addresses: [ "10.3.98.5/24" ]
          nameservers:
              addresses: [ "127.0.0.1" ]
              search: [ domain1.example.com, domain2.example.com ]

到达直连网关

这允许使用“on-link”关键字设置默认路由或任何路由,其中网关是直接连接到网络的 IP 地址,即使该地址与接口上配置的子网不匹配。

network:
  version: 2
  renderer: networkd
  ethernets:
      ens3:
          addresses: [ "10.10.10.1/24" ]
          routes:
            - to: default # or 0.0.0.0/0
              via: 9.9.9.9
              on-link: true

对于IPv6,配置将非常相似,显着的区别是额外的作用域:需要将链路主机路由到路由器的地址:

network:
  version: 2
  renderer: networkd
  ethernets:
      ens3:
          addresses: [ "2001:cafe:face:beef::dead:dead/64" ]
          routes:
            - to: "2001:cafe:face::1/128"
              scope: link
            - to: default # or "::/0"
              via: "2001:cafe:face::1"
              on-link: true

配置源路由

可以将路由表添加到特定接口,以允许在两个网络之间进行路由:

在下面的示例中,ens3 位于 192.168.3.0/24 网络上,ens5 位于 192.168.5.0/24 网络上。这使任一网络上的客户端能够连接到另一个网络,并允许响应来自正确的接口。

此外,默认路由仍分配给 ens5,允许任何其他流量通过它。

network:
  version: 2
  renderer: networkd
  ethernets:
      ens3:
          addresses:
            - 192.168.3.30/24
          dhcp4: no
          routes:
            - to: 192.168.3.0/24
              via: 192.168.3.1
              table: 101
          routing-policy:
            - from: 192.168.3.0/24
              table: 101
      ens5:
          addresses:
            - 192.168.5.24/24
          dhcp4: no
          routes:
            - to: default
              via: 192.168.5.1
            - to: 192.168.5.0/24
              via: 192.168.5.1
              table: 102
          routing-policy:
            - from: 192.168.5.0/24
              table: 102

配置环路接口

Networkd 不允许创建新的环回设备,但用户可以向标准环路接口 lo 添加新地址,以便将其视为计算机上的有效地址以及自定义路由:

network:
    version: 2
    renderer: networkd
    ethernets:
        lo:
            addresses: [ "127.0.0.1/8", "::1/128", "7.7.7.7/32" ]

与 Windows DHCP 服务器集成

对于由 Windows Server 使用 dhcp 标识符密钥提供 DHCP 的网络,允许互操作性:

network:
  version: 2
  ethernets:
      enp3s0:
          dhcp4: yes
          dhcp-identifier: mac

连接 IP 隧道

隧道允许管理员通过配置两个端点来跨 Internet 扩展网络,这两个端点将连接一个特殊的隧道接口并执行所需的路由。Netplan 支持 SIT、GRE、IP-IN-IP (IPIP、IPIP6、IP6ip6)、IP6GRE、VTI 和 VTI6 隧道。

隧道的常见用途是在仅支持 IPv4 的网络上启用 IPv6 连接。下面的示例显示了如何配置此类隧道。

在这里,1.1.1.1 是客户端自己的 IP 地址;2.2.2.2 是远程服务器的 IPv4 地址,“2001:dead:beef::2/64”是隧道定义的客户端 IPv6 地址,“2001:dead:beef::1”是远程服务器的 IPv6 地址。

最后,“2001:café:face::1/64”是路由 IPv6 前缀内客户端的地址:

network:
  version: 2
  ethernets:
      eth0:
          addresses:
              - 1.1.1.1/24
              - "2001:cafe:face::1/64"
          routes:
              - to: default
                via: 1.1.1.254
  tunnels:
      he-ipv6:
          mode: sit
          remote: 2.2.2.2
          local: 1.1.1.1
          addresses:
              - "2001:dead:beef::2/64"
          routes:
              - to: default
                via: "2001:dead:beef::1"

配置 SR-IOV 虚拟功能

对于 SR-IOV 网卡,可以为每个配置的物理功能动态分配虚拟功能接口。在netplan中,VF是通过具有指向父PF的链接:属性来定义的。

network:
  version: 2
  ethernets:
      eno1:
          mtu: 9000
      enp1s16f1:
          link: eno1
          addresses : [ "10.15.98.25/24" ]
      vf1:
          match:
              name: enp1s16f[2-3]
          link: eno1
          addresses : [ "10.15.99.25/24" ]
posted @ 2023-02-20 15:25  Huihcuanf  阅读(3280)  评论(0编辑  收藏  举报