업데이트: /etc/network/interfaces
사용 중이므로 존재하지 않습니다.netctl
소개.
두 개의 네트워크 어댑터를 사용하여 ArchLinux를 실행하는 VirtualBox 인스턴스를 설정했습니다. Adapter 1
( eth0
)는 NAT( 10.0.2.0/24
) 에 연결되어 있고 Adapter 2
( eth1
)는 호스트 전용 네트워크( 192.168.56.0/24
)에 연결되어 있습니다. 저는 이러한 어댑터에 udev
옛날식 이름을 사용하기 위한 규칙을 사용하고 있습니다(그러나 이름에도 문제가 있습니다).eth0
eth1
enp***
로그인하면 다음과 같은 메시지가 나타납니다.
$ip 라우팅 기본적으로 192.168.56.1 dev eth1 기본값은 10.0.2.2 dev eth0 proto dhcp src 10.0.2.15 metric 202를 전달합니다. 10.0.2.0/24 dev eth0 프로토타입 dhcp 범위 링크 src 10.0.2.15 미터법 202 192.168.56.0/24 dev eth1 프로토타입 커널 범위 링크 src 192.168.56.31
이로 인해
$ ping google.com ping: google.com: 알 수 없는 이름 또는 서비스
내가 이해한 바에 따르면 이는 192.168.56.1
(호스트 전용 인터페이스) NAT 인터페이스보다 낮은 메트릭을 추가하기 때문입니다.
그런 다음 수동으로 수행하는 경우:
$ sudo ip 경로 삭제 기본값 $ip 라우팅 기본값은 10.0.2.2 dev eth0 proto dhcp src 10.0.2.15 metric 202를 전달합니다. 10.0.2.0/24 dev eth0 프로토타입 dhcp 범위 링크 src 10.0.2.15 미터법 202 192.168.56.0/24 dev eth1 프로토타입 커널 범위 링크 src 192.168.56.31
알겠어요
$ ping google.com PING google.com (172.217.12.174) 56(84) 바이트의 데이터. 64바이트 from....1e100.net(172.217.12.174): icmp_seq=1 ttl=52 time=11.9 ms 64바이트 from....1e100.net(172.217.12.174): icmp_seq=2 ttl=52 time=11.7 ms ^C --- google.com 핑 통계 --- 2개의 데이터 패킷 보내기, 2개의 데이터 패킷 수신, 0% 패킷 손실, 시간 3ms rtt 최소/평균/최대/mdev = 11.698/11.782/11.867/0.137밀리초
eth0
그렇다면 아웃바운드 트래픽이 / (호스트 네트워크만 해당) 가 아닌 / 10.0.2.0/24
(호스트에 대한 NAT 인터페이스)를 통해 라우팅되도록 하려면 어떻게 해야 합니까 ?eth1
192.168.56.0/24
이 질문은 VirtualBox와 아무 관련이 없습니다(메트릭을 변경할 수 있는 VirtualBox 설정이 있었다면 상관없습니다).
다음 중 하나를 수행할 수 있는 방법이 있을 것이라고 확신합니다. 1) systemd가 경로를 추가하는 것을 방지 default via 192.168.56.1 dev eth1
하거나 2) default via 10.0.2.2 dev eth0
매번 기본 경로를 수동으로 제거할 필요가 없도록 더 낮은 메트릭을 가진 경로를 추가합니다. 인스턴스를 시작합니다.
아직 고려하지 않은 또 다른 해결 방법이 있을 수 있습니다. 지금까지 이름, 고정 IP 및 DHCP를 가지고 노는 것은 도움이 되지 않았습니다.
게스트 운영 체제는 ArchLinux입니다.
답변1
/etc/network/interfaces
해당 인터페이스 줄을 파일에 추가합니다.
post-up route del default via 192.168.56.1 dev eth1
default via 192.168.56.1 dev eth1
인터페이스가 나타날 때 경로가 제거됩니다.
답변2
다음과 같은@Bob의 제안, 호스트 전용 네트워크에 대한 고정 IP 구성 파일이 게이트웨이를 지정했다는 것이 문제라는 것을 깨달았습니다. 나는 그것을 제거했고 모든 것이 내가 원하는대로 작동했습니다.
이것들은 두 개야네트워크 제어소개:
Description='Host only connection'
Interface=eth1
Connection=ethernet
IP=static
Address=('192.168.56.31/24')
DNS=('192.168.1.1')
그리고
Description='Internet connection via NAT'
Interface=eth0
Connection=ethernet
IP=dhcp
그 결과는 다음과 같습니다.
$ip 라우팅 기본값은 10.0.2.2 dev eth0 proto dhcp src 10.0.2.15 metric 202를 전달합니다. 10.0.2.0/24 dev eth0 프로토타입 dhcp 범위 링크 src 10.0.2.15 미터법 202 192.168.56.0/24 dev eth1 프로토타입 커널 범위 링크 src 192.168.56.31
이것은 완벽할 수도 있고 아닐 수도 있지만 나에게는 효과가 있습니다.
답변3
예, 오래된 질문입니다. 하지만 몇 년 전에 설정했는데 갑자기 작동이 멈춘 시스템 구성에 대해 기본 라우팅이 어떻게 작동하는지 알아보기 위해 여기에 왔습니다.
이 질문에 답하려면 sledgehammer 접근 방식을 사용하고 /etc/networkd-dispatcher/routable.d/50-ifup-hooks 파일을 넣고 거기에서 원하는 최종 라우팅 테이블을 수동으로 만들 수 있습니다. 기본적으로 시스템에서 생성된 경로를 제거하고 자체 경로를 제공합니다.
하지만 파일의 권한이 755인지 확인하세요. 이것이 실행되지 않기 때문에 내 문제입니다 :(