相同的 IP 但用于两个不同的接口 netplan

相同的 IP 但用于两个不同的接口 netplan

我在一台笔记本电脑上安装了 ubuntu server 22.04,有两个接口 wlp3s0(无线)和 enp3s0(以太网)。家里使用无线连接,办公室使用以太网连接。

场景是这样的。 办公室必须是静态 IP,网关为 192.168.80.1。我必须添加 DNS 名称服务器才能连接到互联网。 也必须是相同的静态 IP。网关是 192.168.80.32(路由器的 IP)。

单独使用时,我可以让每个功能都正常工作,但每次登录时都需要更改配置文件。但一起使用时,我只能启用静态 IP,而不能连接到互联网。这是配置文件

network:
  version: 2
  renderer: networkd
  ethernets:
    enp3s0:
      dhcp4: false
      dhcp6: false
      optional: true
      addresses:
        - 192.168.80.111/24
      routes:
        - to: default
          via: 192.168.80.1
          table: 200
      nameservers:
        addresses:
          - 55.11.22.33
          - 55.11.22.34
  wifis:
    wlp3s0:
      dhcp4: false
      dhcp6: false
      optional: true
      addresses: [192.168.80.111/24]
      nameservers:
        addresses: [192.168.80.32]
      access-points:
        "wifi_conn":
          password: "passconn"
      routes:
        - to: default
          via: 192.168.80.32

默认渲染器已联网。如何确保两个接口使用相同的 IP 并将它们分别连接到互联网(无论是无线还是以太网)?

答案1

我设法将两个配置放在一个文件中,使其正常工作。当尝试生成 netplan 配置时,出现此错误。

Problem encountered while validating default route consistency.Please set up multiple routing tables and use `routing-policy` instead.
Error: Conflicting default route declarations for IPv4 (table: main, metric: default), first declared in enp0s25 but also in wlp3s0

来自其中一条评论这里我添加了两个属性,metric并且optionalmetric用于解决默认路由冲突,而optional设置为 true,因此在启动期间我们不必等待网络启动。我不会将此视为最终解决方案,因为它更像是反复试验。

network:
  version: 2
  renderer: networkd
  ethernets:
    enp0s25:
      dhcp4: false
      dhcp6: false
      optional: true
      addresses:
        - 192.168.80.111/24
      routes:
        - to: default
          via: 192.168.80.1
          metric: 100
      nameservers:
        addresses:
          - 55.11.22.33
          - 55.11.22.34
network:
  version: 2
  renderer: networkd
  wifis:
    wlp3s0:
      dhcp4: false
      dhcp6: false
      optional: true
      addresses: [192.168.80.111/24]
      nameservers:
        addresses: [192.168.80.1, 8.8.8.8]
      access-points:
        "wifi_conn":
          password: "passconn"
      routes:
        - to: default
          via: 192.168.80.32
          metric: 200
            #table: 100

尽管如此,我并不认为这个问题已经解决了,因为还有更好的解决方案。

答案2

您是否尝试设置绑定?通过设置绑定,您可以为两个接口设置一个 IP。也许通过一些调整就可以实现您想要的效果。

network:
  version: 2
  renderer: networkd
  ethernets:
    enp3s0:
      dhcp4: true
      dhcp6: false
      optional: true
  wifis:
    wlp3s0:
      dhcp4: true
      dhcp6: false
      optional: true
      access-points:
        "wifi_conn":
          password: "passconn"
  bonds:
    bond0:
      interfaces:
        - enp3s0
        - wlp3s0
      parameters:
        mode: active-backup
        primary: enp3s0
        mii-monitor-interval: 100
        fail-over-mac-policy: active
      dhcp4: false
      addresses: [192.168.80.111/24]
      nameservers:
        addresses: [192.168.80.32]

相关内容