저는 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
네트워크를 렌더러로 사용하면 기본 경로가 생성되지 않는 것 같습니다.