Ubuntu 20.04 上使用 netplan 進行橋接設定時,一個介面上有兩個 IP 和兩個網關

Ubuntu 20.04 上使用 netplan 進行橋接設定時,一個介面上有兩個 IP 和兩個網關

我有一台 Hetzner 專用伺服器,有單一網路卡和兩個公用 IP 位址(兩個 IP 都有自己的網關)。正確知道它只有一個用 neplan 配置的位址。下面是我的配置

network:
  version: 2
  renderer: networkd
  ethernets:
    enp195s0:
      addresses:
        - x.x.x.x/32        #Main IPv4 address
        - xx.xx.xx.xx::2/64 #IPv6
      routes:
        - on-link: true
          to: 0.0.0.0/0
          via: gx.gx.gx.gx      #Main IPv4 address Gateway IP
      nameservers:
        addresses:
          - 185.12.64.2
          - 185.12.64.1
          - 2a01:4ff:ff00::add:1
          - 2a01:4ff:ff00::add:2

現在我想將網路配置為有兩個公用 IP 作為橋接器,因為我想與 kvm 來賓電腦共用它。這是我的嘗試之一:

network:
  version: 2
  renderer: networkd
  ethernets:
    enp195s0:
      dhcp4: false
      dhcp6: false

  bridges:
    kvmbr0:
      interfaces:
        - enp195s0
      addresses:
        - x.x.x.x/32          #Main IPv4 address
        - y.y.y.y/32          #Additional IPv4 address
      routes:
        - to: 0.0.0.0/0
          via: gx.gx.gx.gx    #Main IPv4 address Gateway IP
          table: 1
          metric: 100
        - to: 0.0.0.0/0
          via: gy.gy.gy.gy    #Additional IPv4 address Gateway IP
          table: 2
          metric: 200
      mtu: 1500
      dhcp4: no
      dhcp6: no
      nameservers:
        addresses:
          - 185.12.64.2
          - 185.12.64.1
          - 2a01:4ff:ff00::add:1
          - 2a01:4ff:ff00::add:2
      parameters:
        stp: false 
        forward-delay: 4 

問題是,在應用netplan之後,我總是失去網路連線:/我有一個腳本,如果我不停止它,它會在幾分鐘後恢復預設的netplan配置,所以我很難檢查伺服器上發生的情況,但我想這與路由有關。我是 netplan 配置的新手,您能幫我找到正確的解決方案嗎?

答案1

我找到了解決方案。就是下面的

network:
  version: 2
  renderer: networkd
  ethernets:
    enp195s0:
      dhcp4: false
      dhcp6: false

  bridges:
    kvmbr0:
      interfaces:
        - enp195s0
      addresses:
        - x.x.x.x/26           # <- netmask here
        - y.y.y.y/29           # <- netmask here
      routes:
        - to: 0.0.0.0/0
          via: gx.gx.gx.gx
          metric: 100
        - to: nx.nx.nx.nx/26   # <- route to main IP network
          via: gx.gx.gx.gx     # <- via main IP gateway
          metric: 100
          table: 1             # <- with routing table assignment 
        - to: 0.0.0.0/0
          via: gy.gy.gy.gy
          metric: 200          
        - to: ny.ny.ny.ny/29   # <- route to additional IP network
          via: gy.gy.gy.gy     # <- via additional IP gateway
          metric: 200
          table: 2             # <- with routing table assignment
      routing-policy:          # <- routing policies for IPs networks 
        - from: nx.nx.nx.nx/26 
          table: 1             # <- appropriate routing table
        - from: ny.ny.ny.ny/29
          table: 2             # <- appropriate routing table
      dhcp4: no
      dhcp6: no
      nameservers:
        addresses:
          - 185.12.64.2
          - 185.12.64.1
          - 2a01:4ff:ff00::add:1
          - 2a01:4ff:ff00::add:2
      parameters:
        stp: true 
        forward-delay: 4

主要問題是網路遮罩。它不應該是 32 位,因為它們不包含網關 IP。這就是我失去網路連線的原因。因此,我將 IP 位址網路中的正確網路遮罩放在那裡。

需要進行其他更改以允許額外的 IP 與互聯網通訊。

相關內容