Ubuntu 20.04에서 netplan을 사용하는 브리지 구성의 하나의 인터페이스에 2개의 IP와 2개의 게이트웨이

Ubuntu 20.04에서 netplan을 사용하는 브리지 구성의 하나의 인터페이스에 2개의 IP와 2개의 게이트웨이

단일 네트워크 카드와 두 개의 공용 IP 주소(두 IP 모두 자체 게이트웨이가 있음)가 있는 Hetzner 전용 서버가 있습니다. 네플랜으로 구성된 주소는 단 하나뿐입니다. 아래는 내 구성입니다

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

이제 kvm 게스트 시스템과 공유하고 싶기 때문에 두 개의 공용 IP를 브리지로 갖도록 네트워크를 구성하고 싶습니다. 내 시도 중 하나는 다음과 같습니다.

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가 인터넷과 통신할 수 있도록 하려면 다른 변경 사항이 필요했습니다.

관련 정보