환경
내 LAN 설정은 매우 기본적입니다.
- ISP 모뎀과 인터넷에 연결된 라우터
- 내 개발 컴퓨터가 라우터에 직접 연결되어 있습니다.
라우터는 DHCP를 제공하지만 자체 DNS 서버를 실행하지는 않습니다. 실제로 내 LAN(일반적인 홈 네트워크 설정) 어디에도 호스팅된 DNS 서버가 없습니다. 라우터는 DHCP 임대 정보의 일부로 ISP의 DNS 서버를 보내도록 구성됩니다.
개발 PC에 VirtualBox 시스템을 설정하고 여기에 Debian Squeeze(6.0.4)를 설치했습니다. VirtualBox 네트워크 모드는 Bridged Adapter
내 LAN의 독립형 서버를 시뮬레이션합니다. 물리적 서버가 아니라 VirtualBox 서버라는 것이 중요한 것은 아니지만 완전성을 위해 언급합니다.
질문
각 네트워크 작업은 실행 전에 LAN IP에서 DNS 역방향 조회를 수행하며 서버는 오랜 지연을 겪게 됩니다. 느린 네트워크 작업의 몇 가지 예:
- 내 개발 PC에서 서버로 SSH 연결
- Glassfish 서버의 관리 포트에 연결
netstat -l
(netstat -nl
아주 빠르다)Starting MTA: exim4
시작을 완료하는 데 시간이 오래 걸림
그 중 일부에는 개발 컴퓨터의 IP를 추가하거나 /etc/hosts
DNS 역방향 조회를 피하기 위해 명령별 옵션을 추가하는 등의 해결 방법이 있습니다. 분명히 /etc/hosts
DHCP와 일치하지 않기 때문에 사용법은 지금까지만 가능합니다.
그러나 나는 뭔가를 놓치고 있다는 생각을 지울 수 없습니다. 나는인가?진짜LAN 어딘가에 DNS 서버를 설정해야 합니까? 이것은 내 필요에 비해 엄청나고 쓸모없는 노력처럼 보이며 나와 같은 DHCP 환경에는 다른 옵션이 없다는 것을 믿을 수 없습니다.
이 문제에 대해 온라인에서 많이 검색했는데 올바른 검색어가 없을 수도 있지만 해결책을 찾을 수 없습니다...
BillThor의 답변을 기반으로 한 업데이트 1
호스트 사용(dig는 동일한 결과를 제공합니다):
# ip of stackoverflow.com
$ time host -v 64.34.119.12
Trying "12.119.34.64.in-addr.arpa"
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 15537
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;12.119.34.64.in-addr.arpa. IN PTR
;; ANSWER SECTION:
12.119.34.64.in-addr.arpa. 143 IN PTR stackoverflow.com.
Received 74 bytes from 192.168.1.1#53 in 15 ms
real 0m0.020s
user 0m0.008s
sys 0m0.000s
# ip of dev pc
$ time host -v 192.168.1.50
Trying "50.1.168.192.in-addr.arpa"
;; connection timed out; no servers could be reached
real 0m10.004s
user 0m0.004s
sys 0m0.000s
내 /etc/resolv.conf(설치 중에 자동으로 생성됨)
nameserver 192.168.1.1
공용 IP의 경우 호스트와 발굴 모두 매우 빠르게 반환되지만 LAN IP의 경우 시간 초과되는 데 10초가 걸립니다. 현재 시간 초과 값은 10초인 것 같습니다.
업데이트 2
dev-pc
/etc/hosts 파일 에서 :
$ time getent hosts 192.168.1.50
192.168.1.50 dev-pc
real 0m0.001s
user 0m0.000s
sys 0m0.000s
dev-pc
/etc/hosts 파일에서 찾을 수 없습니다:
$ time getent hosts 192.168.1.50
real 0m10.012s
user 0m0.004s
sys 0m0.000s
역방향 DNS 조회를 시도하는 모든 프로그램에 대한 준비 프로그램 옵션이나 매개변수를 찾아야 할 필요성이 점점 더 커지고 있는 것 같습니다. 내 LAN에서 DNS 서버 역할을 할 수 있는 시스템(가상이든 아니든)은 항상 실행되지 않기 때문입니다. 불행하게도 라우터의 펌웨어에는 DNS 서버가 포함되어 있지 않습니다.
답변1
192.168.1.1이 라우터의 IP 주소입니까?
nameserver 192.168.1.1
라우터가 "ISP의 DNS 서버를 전송"하는 것이 아니라 자신을 DNS 서버로 광고하고 있음을 나타냅니다.
어떤 브랜드와 모델의 라우터를 보유하고 있습니까? 웹 인터페이스에 로그 메시지가 표시됩니까?
귀하의 라우터가 요청을 ISP의 이름 서버로 전달하고 있는지 궁금합니다. 그러나 ISP의 이름 서버는 귀하가 자신의 IP 시스템 이름을 알기를 원하지 않기 때문에 요청을 삭제하고 있습니다 192.168.1.50
.
제안:
- 라우터 설정을 다시 확인하세요. 귀하의 요청에 응답해야합니다개인 네트워크. 라우터의 웹 인터페이스에 정적 호스트 항목을 추가할 수 있을까요?
- 설치를 시도하다넘쳐네트워크의 모든 시스템에서.
- 라우터에 사용하도록 지시구글 퍼블릭 DNS(
8.8.8.8
그리고8.8.4.4
/ 또는오픈 DNS
답변2
홈 네트워크에 로컬 DNS(및 DHCP) 서버를 설정하고 싶지 않은 경우 가능하면 역방향 DNS 조회를 수행하지 않도록 서비스에 지시할 수 있습니다.
예를 들어 SSHD의 역방향 DNS 조회를 비활성화하려면 파일에 다음을 추가합니다 sshd_config
(또는 배포에 따라 유사).
UseDNS no
Exim 구성에서 이 줄을 제거할 수 있습니다. 시작 속도에 영향을 미칠지는 모르겠지만 클라이언트 연결 시 DNS 역방향 조회가 방지됩니다.
host_lookup = *
Glassfish 프로세스를 시작하는 사용자를 위해 이 환경 변수를 내보낼 수 있는 것 같습니다.
export AS_NO_REVERSE_DNS=true
답변3
실패한 DNS 조회는 빠르게 실패합니다. 그러나 나는 일반적으로 호스트 파일을 읽고 해당 항목에 대한 정방향 및 역방향 조회를 제공하는 dnsmasq를 실행합니다. 또한 업스트림 DNS 서버의 로드를 줄이기 위해 DNS 캐싱 서버 역할도 합니다.
host
또는 dig
명령을 사용하여 어떤 검색이 더 느린지 확인할 수 있습니다 . 실행되지 않는 DNS 서버로 리디렉션되는 경우 DNS가 실패하는 데 상당한 시간이 걸립니다. 시간 초과 및 재시도를 조정하여 /etc/resolv.conf
오류 발생 속도를 높일 수 있습니다.
편집: 확인자 응답을 테스트하려면 을 사용해 보십시오 . 이렇게 하면 파일과 DNS time getent hosts 192.168.1.50
에서 조회가 반환됩니다 . 명령 /etc/hosts
은 DNS만 확인합니다. 이 작업이 반환되지만 몇 초가 걸리는 경우 파일이 목록의 이전 항목으로 이동되는 순서 를 변경해야 할 수도 있습니다.host
dig
hosts
/etc/nsswitch.conf
dnsmasq
이름 조회를 위해 DNS에만 의존하는 프로그램이 있는 경우 해당 프로그램을 기본 DNS 이름 서버로 설정하면 문제가 해결됩니다. /etc/resolve.conf
Exim은 기본 조회를 위해 파서를 사용해야 합니다. /etc/hosts
라우터에서 DHCP 서버를 비활성화할 수 없다면 DHCP에 사용할 수 있는 파일이 필요합니다 dnsmasq
. dnsmasq
처리하는 DHCP 요청에 이름이 제공되면 자동으로 등록됩니다.
wins
편집 2: 항상 실행 중인 컴퓨터가 없다면 삼바를 설치하고 nsswitch 구성에서 사용하는 것이 좋습니다 . 속도가 빨라야 하므로 dns
호스트 항목 앞에 넣으면 작동할 수 있습니다.
avahi
링크-로컬 네트워크에서 자동 검색을 활성화하는 유틸리티 설치를 고려할 수도 있습니다 . IPv6 측에서 작동하지만 IPv4 주소를 게시하지 않습니다. 호스트의 기본 도메인은 ".local"입니다. 귀하의 경우에 맞지 않을 수도 있지만 재정의할 수 있습니다. 또한 조회는 wins
nsswitch 구성 mdns
초기에 수행하는 것이 부적절할 수 있는 것보다 빠른 것 같습니다 dns
.
답변4
유동IP에서 고정IP로 변경한 후에도 동일한 문제가 발생했습니다. 내 네트워크는 이제 다음과 같이 구성됩니다. 고정 - IPv6가 없으며 메일 서버가 계획되지 않습니다.
다음을 수행하여 문제를 해결했습니다.
1: dpkg-reconfigure exim4-config 실행
2: DNS 조회에 문제가 있는 경우 -> DNS 조회를 최소로 설정(전화 접속)
이 조회가 작동하지 않는다는 오류가 발생하고 /etc/hosts를 편집할 것을 제안했습니다. 하지만 /etc/hosts에 대해 제가 한 유일한 작업은 ip6-allnodes 및 ip6-allrouters 행을 주석 처리한 것뿐이었습니다.
이제 다시 시작하는 것이 빨라야 합니다(적어도 저에게는).