내 Linux 상자에는 현재 다른 서브넷의 네트워크에 연결할 수 있는 네트워크 인터페이스가 있습니다. 네트워크 인터페이스가 나타날 때 라우팅 테이블을 수정하여 이를 달성합니다. "원격" 네트워크에도 DNS 서버가 있으므로 인터페이스를 활성화할 때 이를 /etc/resolv.conf 파일에 추가하고 싶습니다.
내 /etc/network/interfaces
파일에는 현재 다음 내용이 있습니다.
# Secondary network interface (using NAT)
allow-hotplug eth1
iface eth1 inet dhcp
post-up route add -net 172.16.0.0 netmask 255.255.255.0 gw 10.0.3.2
post-up echo 'Up and running...' >> /home/sysadmin/net-result.txt; date >> /home/sysadmin/net-result.txt
post-up sed -i '1inameserver 172.16.0.1' /etc/resolv.conf
post-down sed -i '/^nameserver 172.16.0.1/d' /etc/resolv.conf
(이 줄은 post-up echo...
명령이 실행 중이고 파일 시스템에 액세스할 수 있다는 것을 증명하기 위한 것입니다.)
명령줄을 사용하여 인터페이스를 제어하면 제대로 작동합니다. 예상대로 선이 ifup eth1
나타나고 사라집니다.ifdown eth1
nameserver 172.16.0.1
/etc/resolv.conf
그러나 어떤 이유로 시스템 시작 시 작동하지 않습니다. route
명령예실행 중이고(라우팅 테이블에서 수정 사항을 볼 수 있듯이) 파일이 /home/sysadmin/net-status.txt
예상대로 수정되었지만 /etc/resolv.conf
변경 사항은 없습니다.
문제가 어디에 있는지 모르겠습니다. 누구든지 어떤 제안이 있습니까?
(리눅스 박스는 실제로 가상 머신이고 원격 네트워크는 VPN을 통해 액세스되지만 이러한 세부 사항은 이 맥락에서 질문과 관련이 없다고 생각합니다.)