Ubuntu 20.04: netplan을 통해 브리지를 추가할 때 브리지 인터페이스는 라우팅 가능한 상태로 유지되고 라우팅 항목이 중복됩니다.

Ubuntu 20.04: netplan을 통해 브리지를 추가할 때 브리지 인터페이스는 라우팅 가능한 상태로 유지되고 라우팅 항목이 중복됩니다.

OS: Ubuntu 20.04.3, 모든 최신 업데이트가 설치되었습니다.

현재(eno1)를 노예화하기 위해 브리지 인터페이스를 생성하려고 합니다.

넷플랜 구성:

# This is the network config written by 'subiquity'
network:
  version: 2
  renderer: networkd

  ethernets:
    eno1:
      dhcp4: false
      dhcp6: false

  bridges:
    br0:
      interfaces: [eno1]
      addresses: [10.20.0.21/24]
      gateway4: 10.20.0.1
      nameservers:
        search: [example.com]
        addresses: [10.20.0.1,10.20.0.10]
      dhcp4: false
      dhcp6: false

"netplan try"를 실행하면 다음이 표시됩니다.

** (generate:2332): WARNING **: 12:54:41.673: Problem encountered while validatingdefault 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 br0 but also in eno1

시스템을 재부팅하면 결과는 다음과 같습니다.

$ route

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         10.20.0.1       0.0.0.0         UG    0      0        0 br0
default         10.20.0.1       0.0.0.0         UG    0      0        0 eno1
10.20.0.0        0.0.0.0        255.255.255.0   U     0      0        0 br0
10.20.0.0        0.0.0.0        255.255.255.0   U     0      0        0 eno1

시스템은 계속 사용할 수 있지만 구성이 분명히 비정상입니다.

$ networkctl

networkctl 
IDX LINK TYPE     OPERATIONAL SETUP     
  1 lo   loopback carrier     unmanaged 
  2 eno1 ether    routable    configured
  3 br0  bridge   routable    configured

$ ip addr show

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eno1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master br0 state UP group default qlen 1000
    link/ether 18:c0:4d:63:da:da brd ff:ff:ff:ff:ff:ff
    inet 10.20.0.21/24 brd 10.1.0.255 scope global eno1
       valid_lft forever preferred_lft forever
3: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether 18:c0:4d:63:da:da brd ff:ff:ff:ff:ff:ff
    inet 10.20.0.21/24 brd 10.1.0.255 scope global br0
       valid_lft forever preferred_lft forever
    inet6 fe80::700e:94ff:fea6:fc98/64 scope link 
       valid_lft forever preferred_lft forever

eno1을 노예화하고 라우팅 항목/IP 주소가 중복되는 것을 방지하려면 어떻게 해야 합니까?

1월 21일 업데이트: 아래에 다른 구성 파일이 없습니다./etc/netplan

답변1

2022년 1월 22일의 해결 방법:

netplan 및/또는 networkd는 현재 IP/경로를 복제하지 않고 언급된 구성을 지원하기에는 버그가 너무 많은 것 같습니다.

해결책은 NetworkManager로 다시 전환하는 것이었습니다.

  1. netplan의 .yaml에서 렌더러 라인을 다음으로 바꾸십시오.

    renderer: NetworkManager
    
  2. /etc/NetworkManager/NetworkManager.conf(아래에 제공된 영향을 받는 섹션)에서 네트워크 관리 인터페이스를 활성화했는지 확인하십시오.

    [ifupdown]
    managed=true
    
  3. etc/NetworkManager/conf.d/10-globally-managed-devices.conf에서 필터링할 인터페이스 유형을 정의합니다.

    [keyfile]
    
    unmanaged-devices=*,except:type:wifi,except:type:wwan,except:type:ethernet
    

    참고: /usr/lib/NetworkManager/conf.d/10-globally-managed-devices.conf 파일이 비어 있는지(0 크기) 확인하세요.

  4. NetworkManager를 다시 시작하거나 시스템을 재부팅하는 것이 좋습니다.

    sudo systemctl restart network-manager
    

    참고: GUI 모드를 사용하는 경우 해당 연결을 활성화할 수 없다고 불평하는 지속적인 NetworkManager를 비활성화하려면 설정>네트워크에서 유선 연결에 대한 자동 시작을 비활성화해야 할 수도 있습니다.

답변2

@KonstantinBoyandin - 여기에 제공된 시스템 정보가 충분하지 않습니다.어느결론. 즉, 귀하가 직면한 상황에 대한 추측은 다음과 같습니다.

IIRC에서는 20.04의 기본 설치가 NetworkManager이미 사용 중입니다. 이는 기본적으로 관찰한 기본 경로를 NetworkManager이미 구성하고 생성했을 가능성이 높다는 것을 의미합니다 .eno1

default         10.20.0.1       0.0.0.0         UG    0      0        0 eno1

두 가지를 모두 사용하는 것을 방해하는 것은 없습니다.NetworkManager 그리고 systemd-networkd- 생각이 안 나네요이유그렇게 하려고 하는데 막는 게 아무것도 없어요. NetworkManager이미 실행 중인 시스템에서 와이어가드 인터페이스를 설정할 때 처리해야 하는 문제를 피하기 위해 이 기능을 활용했습니다.NetworkManager . 그렇게 할 때, 당신은~ 해야 하다예를 들어, 에서 관리하는 물리적 이더넷 어댑터가 NetworkManager다운되면 어떻게 됩니까? 해당 물리적 ​​인터페이스에 의존하는 가상 인터페이스는 실패할 수도 있고 그렇지 않을 수도 있습니다. 가상 어댑터의 구성에 따라 다릅니다.외부에게 NetworkManager.

렌더러를 으로 전환하면 그 시점에서 모든 것이 작동하기 시작했습니다. 이제 구성을 NetworkManager사용하고 있었기 때문입니다.netplanNetworkManager 네트워크 구성을 위한 유일한 서비스로, "교차 구성"을 방지합니다.

이 문제가 발생하는 경우 이 문제를 해결할 수 있는 몇 가지 방법이 있습니다. NetworkManager다른 렌더러로 구성하려는 인터페이스 구성을 중지하거나 NetworkManager완전히 비활성화할 수 있습니다. 제가 선호하는 것은 서버 netplan로 전환하여 systemd-networkd비활성화하는 NetworkManager반면, 데스크톱 Linux에서는 NetworkManager필요할 때만 다른 네트워킹 서비스를 떠나 활용합니다.

일반적인 Ubuntu 20.04 서버에서 netplan을 사용하고 OP 충돌을 피하는 방법은 다음과 같습니다.

  1. 서버 제공(Ubuntu 등 설치)
  2. 원하는 netplan 구성 생성
  3. /etc/network/interfaces다음에서 구성한 인터페이스에 적용되는 모든 섹션을 편집 하고 주석 처리하세요 netplan.
# The primary network interface
# auto eno1
# iface eno1 inet dhcp
  1. 다시 시작(또는 중지) NetworkManager:sudo systemctl <restart|stop> NetworkManager.service
  2. 구성을 테스트하십시오 netplan.sudo netplan try
  3. 모든 것이 올바르게 보이고 작동하는 경우 Enter메시지에 따라 누르십시오.

(선택 과목)

  • 장애를 입히다 NetworkManager:sudo systemctl disable NetworkManager.service

(메모)

  • 분명해야 하지만 위의 내용은 로컬 콘솔 액세스 권한이 있거나 SSH 연결이 구성 중인 인터페이스에 종속되지 않는다고 가정합니다. 연결이 끊어져 구성을 완료할 수 없기 때문입니다.

관련 정보