내 eth1이 10.50.1.11 및 10.50.1.12 DNS 서버를 사용하도록 하고 내 eth0 인터페이스는 8.8.8.8 및 8.8.4.4 DNS 서버를 사용하려고 합니다. 저는 xenserver 6.5에서 centos 7 가상 머신을 실행하고 있습니다. eth1은 폐쇄 회로 VLAN이고 eth0은 공용 네트워크입니다. 내가 겪고 있는 문제는 내 centos 클라이언트가 어떤 인터페이스가 먼저 나타나는지에 따라 사용하는 DNS 서버를 자동으로 선택한다는 것입니다. /etc/network-scripts/ifcfg-eth0 또는 /etc/network-scripts/ifcfg-eth1에 DNS 서버를 정의하면 /etc/resolv.conf 안에 인쇄되지만 해결 방법을 찾을 수 없다는 것을 알고 있습니다. 이것. 다른 네트워크 인터페이스에 다른 DNS 서버를 할당할 수 있는지 아는 사람이 있습니까?
답변1
아니요, 지오코딩 작동 방식으로 인해 이 작업을 수행할 수 없습니다.
머신의 프로세스가 연결을 원할 때, 예를 들어,example.comgetaddrinfo
, 먼저 또는 같은 라이브러리 루틴을 호출합니다 gethostbyname
. 이러한 루틴의 목적은 DNS 이름을 IP 주소로 변환하는 것입니다. 따라서 그들은 /etc/resolv.conf
DNS 서버의 IP 주소를 보고 읽고, 해당 서버에 DNS 쿼리 패킷을 보내고, 응답을 받고, 결과 IP 주소를 호출자에게 반환합니다.
이 시점에서 프로세스는 확인된 IP 주소를 가져와 시스템 호출(예: )에 전달합니다 connect
. 여기에서 커널이 개입하여 라우팅 테이블을 보고 해당 주소에 연결하는 데 사용할 인터페이스를 파악합니다.
즉, 인터페이스 자체의 선택은 DNS 설정에 따라 달라지므로 DNS 설정은 통신에 사용되는 인터페이스에 전혀 의존할 수 없습니다.