Ubuntu 20.04 のネットプランを使用したブリッジ構成で、1 つのインターフェースに 2 つの IP と 2 つのゲートウェイを設定する

Ubuntu 20.04 のネットプランを使用したブリッジ構成で、1 つのインターフェースに 2 つの IP と 2 つのゲートウェイを設定する

私はHetzner専用サーバーを所有しており、ネットワークカードが1枚とパブリックIPアドレスが2つあります(両方のIPに独自のゲートウェイがあります)。現在、neplanで設定されているアドレスは1つだけです。以下は私の設定です。

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

そして、ネットワークをブリッジとして 2 つのパブリック IP を持つように構成します。これは、KVM ゲスト マシンと共有するためです。これが私の試みの 1 つです。

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

主な問題はネットマスクでした。ゲートウェイ IP が含まれていないため、32 ビットであってはなりません。これがネットワーク接続が失われる原因でした。そこで、IP アドレス ネットワークから正しいネットマスクをそこに入力しました。

追加の IP がインターネットと通信できるようにするには、他の変更が必要でした。

関連情報