• netplan说明[整理篇]


     1.介绍

            在启动初期,netplan的“network renderer”将读取/{lib,etc,run}/netplan/*.yaml文件,并将配置写入/run,以将设备控制转交给指定的网络守护进程

            netplan有以下特点:

    • 配置的设备默认由systemd-networkd处理,除非指定了renderer(NetworkManager)
    • 没有被网络配置覆盖的设备,不会被触动;
    • 可用于initramfs(依赖少,速度快)
    • 没有持久生成的配置,只有原始的YAML配置
    • 解析器支持多个配置文件。这就允许像libvirt或lxd等应用打包预期的网络配置(virbr0, lxdbr0),或更改全局默认策略,使用NetworkManager进行所有配置。
    • 保留灵活性,更改后端/策略或调整到删除NetworkManager,因为生成的配置是短暂的。

    2.总体结构

            netplan的配置文件使用YAML格式,将应用所有在/{lib,etc,run}/ netplan / *.yaml的文件。
    ​        netplan配置文件中的顶级节点是“network: ”,且需要包含“version: 2” (curtin、MaaS等目前使用的YAML是版本1),然后是设备类型,例如“ethernets:“, “modems:“, “wifis:“或者“bridges:“。例如:

    1. network:
    2. version: 2
    3. ethernets:
    4. eth0:
    5. addresses:
    6. - 192.168.100.5/24
    7. - 10.10.200.2/24
    8. routes:
    9. - to: default
    10. via: 192.168.100.1
    11. nameservers:
    12. addresses:
    13. - 8.8.8.8
    14. search: []

    3.配置说明

    3.1.设备配置ID

            设备类型(如“ethernets:“)下面的设备名称为“ID”,在整个配置文件中必须是唯一的。(从0.97开始)如果在配置文件中用ID定义接口,它将由适合的renderer启动。

            设备定义有两种物理/结构上的不同类别,ID字段对它们有不同的解释:

    • 物理设备:例如: ethernet,  modem,  wifi,它们可以重启,甚至热插拔。在一般情况下,可以通过匹配条件选择它们(例如名称、MAC地址、驱动程序或设备路径)。不指定匹配规则时,ID字段只是匹配接口名称;当指定匹配规则时,ID字段是一个纯粹不透明的名称,仅用于引用配置中的复合设备定义。
    • 虚拟设备:例如:veth, bridge, bond,它们完全在配置文件和网络堆栈的控制下。也就是说,这些设备是创建的,而不是匹配的。因此match和set-name都不适用,且ID字段是创建的虚拟设备的名称。

    3.2.物理设备的通用属性

    1. match
    2. name:当前接口的名称,支持Globs
    3. macaddress:设备的MAC地址,格式为“XX:XX:XX:XX:XX”。不允许使用Globs
    4. driver:内核驱动名称,支持Globs
    5. 例子:
    6.      • 匹配第2个PCI总线上的所有卡:
    7.          match:
    8.            name: enp2*
    9.      • 匹配MAC地址:
    10.          match:
    11.            macaddress: 11:22:33:AA:BB:FF
    12.      • 匹配驱动为ixgbe的第一张卡:
    13.          match:
    14.            driver: ixgbe
    15.            name: en*s0
    16.      • 匹配驱动为bcmgenet或smsc*的第一张卡:
    17.          match:
    18.            driver: ["bcmgenet", "smsc*"]
    19.            name: en*
    20. set-name
    21. 对满足匹配条件的唯一设备,进行重命名

    3.3.通用属性

    renderer
        指定网络后端,目前支持networkd和NetworkManager。此属性可以在“network:”中全局指定,默认是networkd

    dhcp4
        开启IPv4的DHCP功能,默认关闭

    dhcp6
        开启IPv6的DHCP功能,默认关闭

     link-local
        配置启动的本地链路地址,有效选项包括ipv4和ipv6,缺省只启用IPv6本地链路地址。

    addresses

    1. 配置格式是CIDR符号,即addr/prefixlen。addr可为IPv4或IPv6地址,通过inet_pton(3)和前缀固定子网的位数。
    2. 例子:
    3. addresses: [192.168.14.2/24, "2001:1::1/64"]
    4. ethernets:
    5.   eth0:
    6.     addresses:
    7.       - 10.0.0.15/24:
    8.           lifetime: 0
    9.           label: "maas"
    10.       - "2001:1::1/64"

    gateway4, gateway6

    1. 已弃用,请参见默认路由(routes)。配置IPv4/6的默认网关,用于手动配置。如果需要多条缺省路由,请通过routing-policy定义。
    2. 例子:
    3. gateway4: 172.16.0.1 
    4. gateway6: "2001:4::1"

    nameservers

    1. 设置DNS服务器和搜索域,支持两个字段:“address:”类似于gateway*的IPv4/6地址列表;“search:”搜索域列表。
    2. 例子:
    3. ethernets:
    4.   id0:
    5.       [...]
    6.       nameservers:
    7.         search: [lab, home]
    8.       addresses: [8.8.8.8, "FEDC::1"]

    macaddress

    1. 设置设备的MAC地址,格式为“XX:XX:XX:XX:XX:XX”.
    2. 例子:
    3. ethernets:
    4.     id0:
    5.      match:
    6.         macaddress: 52:54:00:6b:3c:58
    7.       [...]
    8.       macaddress: 52:54:00:6b:3c:59

    routes

    1. 为设备配置静态路由,至少必须指定to字段。
    2.     from
    3.         配置经过该路由流量的源IP地址
    4.     to
    5.         路由的目的地址
    6.     via 
    7.         路由的网关的地址
    8.     on-link 
    9.         当设置为true时,表示路由与接口直接相连
    10.     metric
    11.         路由的相对优先级,必须为正整数。
    12.     type
    13.         路由类型,有效选项包括" unicast "(默认)," anycast "" blackhole "" broadcast "" local "" multicast "" nat "" prohibit "" throw "" unreachable "" xresolve "
    14.     scope
    15.         路由范围,对网络的影响有多大。可能取值为“global”, “link”或“host”。
    16.     table
    17.         路由的表号,取值范围为从1开始的正整数
    18.     mtu
    19.         路由的MTU值,以字节为单位,必须为正整数
    20.     congestion-window 
    21.         路由的拥塞窗口,由段的数量表示,必须为正整数。
    22.     advertised-receive-window
    23. 例子:
    24. eth0:
    25.   [...]
    26.   routes:
    27.   - to: default        #可选,可以是0/00.0.0.0/0
    28.     via: 10.0.0.1
    29.     metric: 100
    30.     on-link: true
    31.   - to: default         #可选,可以是::/0 
    32.     via: cf02:de:ad:be:ef::2
    33. eth1:
    34.   [...]
    35.   routes:
    36.   - to: default
    37.     via: 172.134.67.1
    38.     metric: 100
    39.     on-link: true
    40.     table: 76     #不在主路由表中,与eth0默认路由不冲突     

    routing-policy

    1. 配置设备的策略路由,其可以根据源IP、防火墙标记等对流量进行特殊处理。对于fromto都可以同时识别IPv4和IPv6地址,且必须为addr/prefixlen或addr。
    2.     from
    3.         配置源IP地址,来匹配该策略规则的流量
    4.     to 
    5.         配置目的IP地址,来匹配该策略规则的流量
    6.     table
    7.         路由匹配的表号,取值范围为从1开始的正整数
    8.     priority
    9.         路由策略规则的优先级,以影响处理路由规则的顺序。数字越大,优先级越低。
    10.     mark
    11.         路由策略规则与iptables防火墙标记的流量匹配,取值范围为从1开始的正整数
    12.     type-of-service
    13.         根据流量应用的服务号类型匹配策略规则

    3.4.身份验证

    ​         Netplan支持以太网、wifi接口和单独的wifi网络的高级认证设置。略

     3.5.ethernets的属性

            以太网设备属性,除了上面描述的常见之外,还支持一些可用于SR-IOV设备的附加属性。略

    3.6.modems的属性

            GSM/CDMA modem配置仅支持NetworkManager,systemd-networkd不支持调制解调器。略

    3.7.wifis的属性

            systemd-networkd不支持wifi。如果要让networkd渲染器处理wifi,需要安装wpasupplicant。

    3.8.bridges的属性

    interfaces

    1. 所有匹配此ID列表的设备都将被添加到网桥。这可能是一个空列表,在这种情况下,桥将在没有成员接口的情况下联机。
    2. 例子:
    3. ethernets:
    4. switchports:
    5. match: {name: "enp2*"}
    6. [...]
    7. bridges:
    8. br0:
    9. interfaces: [switchports]

    parameters

    ​        指定桥接选项的特殊参数。时间间隔需要表示为秒或毫秒数,可以使用时间后缀(例如“s”表示秒,“ms”表示毫秒)来限定时间间隔。略

    3.9.bonds的属性

    interfaces​      

    1. 所有匹配此ID列表的设备将被添加到绑定
    2. 例子:
    3. ethernets:
    4. switchports:
    5. match: {name: "enp2*"}
    6. [...]
    7. bonds:
    8. bond0:
    9. interfaces: [switchports]

    parameters

    ​        指定bomds选项的特殊参数。时间间隔需要表示为秒或毫秒数,可以使用时间后缀(例如“s”表示秒,“ms”表示毫秒)来限定时间间隔。略
    mode
            设置接口的绑定模式。缺省情况下为balance-rr(轮询调度)。取值包括balance-rr、active-backup、balance-xor、broadcast、802.3ad、balance-tlb和balance-alb。OpenVSwitch支持active-backup和balance-tcp、balance-slb两种附加模式
    lacp-rate
            配置LACPDUs报文的传输速率。这只在802.3ad模式下有用。可能的值为slow(默认为30秒)和fast(每秒)
    mii-monitor-interval
            MII监控(检测绑定接口是否有载波)的时间间隔,默认为0,禁用MII监控。相当于网络后端的MIIMonitorSec=字段。如果没有指定时间后缀,默认为毫秒
    min-links
            使绑定接口处于up状态的最小连接数
    transmit-hash-policy
            指定用于选择slave的传输哈希策略。这只在balance-xor, 802.3ad和balance-tlb模式下有用。取值为layer2、layer3+4、layer2+3、encap2+3和encap3+4
    ad-select
            设置聚合选择模式。取值包括stable、bandwidth和count。该选项仅在“802.3ad”模式下使用
    all-slaves-active
            如果bond应该丢弃在未激活端口上接收到的重复帧,则将此选项设置为false。如果它们应该被交付,将此选项设置为true。默认值为false,这是适用于大多数情况

    3.10.tunnels的属性

            隧道允许流量像在同一个本地网络上的系统之间一样通过,尽管系统之间可能相距很远。它们可以用于在ISP不提供服务的网络上支持IPv6流量,或者扩展和“连接”独立的本地网络。略

    3.11.vlans的属性

    id

            VLAN ID,范围为0到4094

    link

    1. 用于创建此VLAN的基础设备的ID            
    2. 例子:
    3. ethernets:
    4. eno1: {...}
    5. vlans:
    6. en-intra:
    7. id: 1
    8. link: eno1
    9. dhcp4: yes
    10. en-vpn:
    11. id: 2
    12. link: eno1
    13. addresses: ...

    3.12.nm-devices的属性

            nm-devices设备类型仅供内部使用,不应在普通配置文件中使用

    3.13.后端特定配置参数

            除了可用于配置接口的其他字段外,一些后端可能需要在netplan中记录它们自己的一些参数,特别是当netplan定义是由后端消费者自动生成时。目前,这只用于NetworkManager。

    networkmanager

            保持守护进程用于识别连接的networkmanager特定配置参数。
    name
            设置连接的显示名称
    uuid
            为这个连接定义UUID(唯一标识符),由NetworkManager自身生成
    stable-id
            定义NetworkManager使用的stable ID(连接名的另一种形式),以防止连接名可能发生更改,例如在用户之间共享连接时
    device
            定义应用此连接的接口名称
    passthrough
            可以作为缺少密钥文件设置的回退机制

    4.例子

    1. network:
    2.   version: 2
    3.   #如果指定,将使用NetworkManager作为渲染器,因为networkd不能trender wifi/3G
    4.   renderer: NetworkManager
    5.   ethernets:
    6.     #物理接口的不透明ID,仅由其他节引用
    7.     id0:
    8.       match:
    9.         macaddress: 00:11:22:33:44:55
    10.       wakeonlan: true
    11.       dhcp4: true
    12.       addresses:
    13.         - 192.168.14.2/24
    14.         - 192.168.14.3/24
    15.         - "2001:1::1/64"
    16.       nameservers:
    17.         search: [foo.local, bar.local]
    18.         addresses: [8.8.8.8]
    19.       routes:
    20.         - to: default
    21.           via: 192.168.14.1
    22.         - to: default
    23.           via: "2001:1::2"
    24.         - to: 0.0.0.0/0
    25.           via: 11.0.0.1
    26.           table: 70
    27.           on-link: true
    28.           metric: 3
    29.       routing-policy:
    30.         - to: 10.0.0.0/8
    31.           from: 192.168.14.2/24
    32.           table: 70
    33.           priority: 100
    34.         - to: 20.0.0.0/8
    35.           from: 192.168.14.3/24
    36.           table: 70
    37.           priority: 50
    38.       #只有network可以使用link路由和路由策略
    39. renderer: networkd
    40.     lom:
    41.       match:
    42.         driver: ixgbe
    43.       #如果使用set-name,则需要设置足够严格的匹配规则,这些规则只匹配唯一个设备
    44.       set-name: lom1
    45.       dhcp6: true
    46.     switchports:
    47.       #第二PCI总线上所有未自行配置的卡,将被添加到下面的br0
    48.       match:
    49.         name: enp2*
    50.       mtu: 1280
    51.     wifis:
    52.       all-wlans:
    53.         #在你知道只有一种设备的系统上很有用
    54.         match: {}
    55.         access-points:
    56.           "Joe's home":
    57.           # 模式默认为"infrastructure" (client)
    58.             password: "s3kr1t"
    59.       #这将使用hostapd,且不匹配规则,并在wlp1s0上创建一个AP
    60.       wlp1s0:
    61.         access-points:
    62.           "guest":
    63.             mode: ap
    64.             #没有配置WPA,意味着默认的open
    65.     bridges:
    66.       #key名是已创建的虚拟接口的名称,没有match:和set-name:也是被允许的
    67.       br0:
    68.         interfaces: [wlp1s0, switchports]
    69.         dhcp4: true
  • 相关阅读:
    RabbitMQ 3.9( 续 )
    探索8个顶级的绘图工具
    gride布局
    Mujoco仿真【将urdf文件转化为xml文件】
    JDK安装教程
    2022年9月2号(常用matlab图像处理函数)
    深度学习(小土堆)
    计算机视觉的应用13-基于SSD模型的城市道路积水识别的应用项目
    刷题笔记:二叉树的中序遍历(三种解法-递归,迭代,Morris)
    健身戴什么耳机,盘点几款健身佩戴的耳机推荐
  • 原文地址:https://blog.csdn.net/weixin_35804181/article/details/134241959