如何创建子接口

如何创建子接口

kernel : ubuntu server LTS 22.04.1

我正在尝试在 ubuntu 中通过 netplan 创建子接口,但不幸的是,这不起作用,有人能帮助我吗?我宁愿不使用 vlan,但如果您可以使用 vlan 来做到这一点,那将是一个很大的帮助,我觉得使用 netplan 是不可能的,我可以使用任何其他工具吗?

network:   
version: 2   
renderer: networkd   
ethernets:
    eth0:
      dhcp4: no
      dhcp6: no
      addresses:
        - <ip>/24
      gateway4: <gateway>
    eth0:1:
      dhcp4: no
      dhcp6: no

答案1

同一链路上的辅助 IP 与 VLAN 配置之间存在差异。我猜你想在同一链路上使用辅助 IP,而无需 VLAN 配置。同一链路上有多个 IP 的 netplan 文件如下所示

network:   
  version: 2   
  renderer: networkd   
  ethernets:
    ens192:
      dhcp4: no
      dhcp6: no
      addresses:
        - 1.2.3.4/24
        - 1.2.3.5/24   # same subnet 
        - 6.7.8.9/24   # different subnet 

请注意:您可以使用该命令看到辅助 Ips ip a,但使用传统命令则看不到ifconfig

如果您需要 2 个桥接接口并且只有一个物理接口,则必须使用 VLAN。

The netplan config looks like 
network:   
  version: 2   
  renderer: networkd   
  ethernets:
    ens192:
      dhcp4: no
      dhcp6: no

  vlans:
    vlan10:
      accept-ra: no
      id: 10
      link: ens192
    vlan20:
      accept-ra: no
      id: 20
      link: ens192

  bridges:
    br-internal:
      interfaces: [ vlan10 ]
      addresses: [ 10.3.99.25/24 ]


br-external:
  interfaces: [ vlan20 ]

请参阅 netplan 文档以了解所有选项。 https://netplan.io/examples/#configuring-network-bridges

答案2

总结

Netplan 没有别名(按照您的说法是“子接口”)但允许标记接口。

详细答案

我也在寻找类似的东西。这里有几件事需要解析。

首先,“子接口”严格来说是一种接口别名,现在已经“过时”了。根据: https://www.kernel.org/doc/html/latest/networking/alias.html

IP 别名是管理每个接口的多个 IP 地址/掩码的过时方法。较新的工具(如 iproute2)支持每个接口的多个地址/前缀,但为了向后兼容,仍支持别名。

在这个基本层面上,Linux 内核支持别名。不过,我认为为接口创建别名的能力来自较旧的网络配置工具,如ifconfigroute

其次,该iproute2软件包及其实用程序是网络配置的现代方法。它允许为一个接口分配多个地址,而无需别名。

第三,netplan,这是另一种通过 yaml 文件配置网络和接口的新方法。

具体到您的问题,您最终将在您的接口上为每个 IP 地址定义不同的路由。Netplan提供接口标签,但我不认为这对于你实现目标来说是必要的。(摘自文档)

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"

https://netplan.readthedocs.io/en/stable/examples/#how-to-use-multiple-addresses-on-a-single-interface

注意!在 netplan 配置中,gateway4已弃用,因此请routes按照文档中显示的方式使用。(目前还不会出错,但会给出警告。)

https://netplan.readthedocs.io/en/stable/examples/#how-to-use-multiple-addresses-with-multiple-gateways

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

进一步阅读,特定于在环回上添加多个地址的链接,以防有人来寻找。

https://bugs.launchpad.net/ubuntu/+source/netplan.io/+bug/1968287

https://github.com/canonical/netplan.io/pull/225

renderer: networkd
ethernets:
  lo:
    match:
        name: lo
    addresses: [ "127.0.0.1/8", "::1/128", "7.7.7.7/32" ]

相关内容