netplan이 0.0.0.0/0에 대한 기본 경로를 생성하지 못하도록 방지

netplan이 0.0.0.0/0에 대한 기본 경로를 생성하지 못하도록 방지

저는 2개의 이더넷 네트워크 카드로 Ubuntu 18.04를 실행하고 있습니다. 두 네트워크 카드 모두에서 DHCP를 사용합니다. netplan이 두 장치 모두에서 0.0.0.0/0에 대한 기본 경로를 생성하지 못하도록 하려면 어떻게 해야 합니까? 하나의 NIC는 게이트웨이를 통해 0.0.0.0/0으로 라우팅하고 다른 NIC는 특정 /24 서브넷으로 라우팅하고 싶습니다. netplan 구성에 경로를 추가할 수 있다는 것을 알고 있지만 항상 0.0.0.0/0에 대한 기본 경로가 생성됩니다.

답변1

~에 따르면이 답변, 그것~해야 한다작동 dhcp4-overrides하지만 18.04 Ubuntu부터 이를 지원하지 않습니다. 내 해결 방법은 /etc/networkd-dispatcher/routable.d/기본 경로를 제거 하는 후크 스크립트를 만드는 것이었습니다 .

#!/bin/sh

# Only remove the default route on the second interface, e.g. eth1
[ "$IFACE" != eth1 ] && exit 0

# delete the default route for this interface
ip route del default dev eth1

파일 소유자와 그룹이 root실행 가능한지 확인하십시오.

네트워크 스케줄러에 대한 자세한 내용은 여기에서 확인할 수 있습니다.https://gitlab.com/craftyguy/networkd-dispatcher

답변2

NIC를 더 잘 제어하려면 두 어댑터 모두를 정적으로 유지하거나하나 이상의 어댑터.

이는 해당 MAC 주소에 대해 해당 DHCP 서버에 두 개의 IP를 예약하여 특정 범위 내에서 쉽게 수행할 수 있습니다.DHCP에 대한 제한 사항 그 중 전부 또는 일부를 수동으로 구성합니다.

(예를 들어, 회사 정책에 따라 고정 IP를 사용할 때 완전히 다른 IP 범위를 사용해야 하는 경우에도 위의 하이브리드 기술을 사용할 수 있습니다.)

답변3

super@gitlab:~$ lsb_release -dc
Description:    Ubuntu 18.04.4 LTS
Codename:   bionic
super@gitlab:~$ cat /etc/netplan/50-cloud-init.yaml 
# This file is generated from information provided by
# the datasource.  Changes to it will not persist across an instance.
# To disable cloud-init's network configuration capabilities, write a file
# /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg with the following:
# network: {config: disabled}
network:
    ethernets:
        ens18:
            addresses:
            - 172.16.104.177/24
            dhcp4: false
            gateway4: 172.16.104.1
            nameservers:
                addresses:
                - 172.16.104.1
                search: []
        ens19:
            dhcp4: true
            dhcp4-overrides:
                use-routes: false
            routes:
              - to: 10.0.0.0/16
                via: 10.0.90.1
    version: 2
super@gitlab:~$ ip r
default via 172.16.104.1 dev ens18 proto static 
10.0.0.0/16 via 10.0.90.1 dev ens19 proto static 
10.0.90.0/24 dev ens19 proto kernel scope link src 10.0.90.21 
172.16.104.0/24 dev ens18 proto kernel scope link src 172.16.104.177 
super@gitlab:~$

답변4

dhcp4-overrides우분투 20.04에서는 작동하지 않습니다.

예를 들어, 다양한 인터페이스에 대해 별도의 파일을 만들어 보십시오.

기본 경로를 추가하려는 첫 번째 인터페이스의 경우 eth0을 가정해 보겠습니다.

/etc/netplan/00-eth0.yaml

network:
  version: 2
  ethernets: 
    eth0: 
      dhcp4: true

그런 다음 기본 경로 eth1을 피하려는 다른 경로에 대해 다른 파일을 만듭니다.

/etc/netplan/01-eth1.yaml

network:
  version: 2
  renderer: networkd
  ethernets: 
    eth1: 
      dhcp4: true

그런 다음 달리고 sudo netplan apply경로를 확인하세요.ip r

네트워크를 렌더러로 사용하면 기본 경로가 생성되지 않는 것 같습니다.

관련 정보