로컬 호스트 이름 확인에 DNSMasq 사용


9

저와 룸메이트를 위해 홈 인트라넷을 설정하고 있습니다. 내 생각은 과거 유틸리티 요금과 같은 것을 부엌 등의 서랍보다 접근하기 쉬운 곳에 저장할 수 있다는 것입니다. 어쨌든, 나는 Apache 2를 Raspberry Pi에서, LAN에서 실행하고 있습니다. IP 주소로 Pi에서 제공되는 페이지에 액세스 할 수 있습니다. 아파트에 서비스를 제공하기 위해 네트워킹에 대해 배우기 위해이 프로젝트를 더 많이하고 있기 때문에 내 네트워크가 LAN에 호스트 이름 확인을 제공 할 수 있다면 멋질 것이라고 생각했습니다. 따라서 브라우저가 192.168.1.151Pi의 IP 주소 인을 가리 키지 않고 oberon(호스트 이름) 을 가리키고 Pi가 제공하는 웹 페이지를 볼 수 있습니다.

이제 나는 이것을하기를 원하는 사람이 처음이라는 것을 알았으므로 Googling에서 시작했습니다. 이 질문은 유닉스와 리눅스에서도 상당히 도움이되었습니다 : 호스트 이름을 사용하여 LAN에서 머신에 액세스 할 수있게하는 방법 . 이 시점에서 나는 검증 된 답변으로 모든 것을 시도했습니다. hosts파일 사용에 대해 생각 했지만 룸메이트에게 컴퓨터를 구성하도록 지시해야한다는 것을 의미합니다. 라우터 (NETGEAR WNR1000v2 (일명 N150))에서 Pi에 대한 DHCP 임대를 예약하려고했지만 예약이 진행되는 동안 호스트 이름 확인이 이루어지지 않았습니다. 라우터에 Pi의 IP 호스트 이름을 말했지만 여전히 LAN에있는 클라이언트에게이 정보를 제공하지 않기 때문에 이런 종류의 불만 이 있습니다.

이 두 가지 방법이 작동하지 않아서 dnsmasqPi 에 설치하기로 결정했습니다 . 구성이 간단 해 보였고 새로운 도구를 배우게되어 기쁩니다. 나는 설치하고 잘 작동시켰다. 내가 할 수있는 dignslookup(내가 설정 파이의 별명 /etc/hostsoberon하고 homenet올바른 결과를) 얻을. yahoo.comGoogle 8.8.8.88.8.4.4백업 서버를에서 설정했기 때문에 인터넷 이름과 같은 방식으로 동일한 답변을 얻을 수 있습니다 /etc/dnsmasq.conf. 이것 좀 봐:

me@oberon~$ dig oberon

; <<>> DiG 9.8.4-rpz2+rl005.12-P1 <<>> oberon
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 10787
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;oberon.                                IN      A

;; ANSWER SECTION:
oberon.                 0       IN      A       192.168.1.151

;; Query time: 10 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Sun Oct  6 18:59:18 2013
;; MSG SIZE  rcvd: 40

(가) 있습니다 SERVER이다는 127.0.0.1: oberon자체에 자신의 IP 주소를 찾고 있습니다. 이것이 내가 기대했던 것입니다. 내가하면 출력이 동일합니다 dig oberon @localhost. 이 결과로 인해 dnsmasq제대로 작동 한다고 생각 합니다. 따라서 한 단계 높은 수준으로 끌어 올리기 위해 LAN의 모든 클라이언트 oberon가 브라우저 에 입력 하여 oberon색인 페이지 로 이동할 수 있기를 바랍니다 . 이를 위해 라우터를 구성해야한다는 것을 알고 있습니다 (유닉스 및 Linux 영역을 엄격하게 벗어난 경우 사과).

상당히 익숙한 Netgear WNR1000v2가 있습니다. 포트 포워딩을 구성하여 Pi에 SSH로 연결할 수 있으며 다른 설정에서도 찔렀습니다. 이 프로젝트를 시작하기 전에 ISP에서 DNS 서버를 가져오고 있었지만 이제는 주로 해당 DNS 서버를 사용 192.168.1.151하고 마지막 확인 으로 사용하고 싶습니다 . 그래서 라우터의 DNS 구성을 다음과 같이 변경했습니다.

라우터의 새로운 DNS 구성.  ISP가 처음 두 항목을 제공한다고 말할 때 저를 믿으십시오

따라서이 구성을 사용하면 nslookup oberon(Windows) 데스크톱 에서 작업을 수행 하고 결과를 얻을 수있을 것으로 기대했습니다 192.168.1.151. 그러나 이것은 일어나지 않습니다. 이것이 일어나는 일입니다.

C:\Users\me>nslookup oberon
Server:  UnKnown
Address:  fe80::226:f2ff:fefa:bea

*** UnKnown can't find oberon: Non-existent domain

dnsflushingWindows 컴퓨터의 재설정 또는 네트워크 어댑터는 아무 것도 변경하지 않습니다.

이제 여기에 머리카락이 찢어지는 이유가 있습니다.

C:\Users\me>nslookup oberon 192.168.1.151
Server:  oberon.lan
Address:  192.168.1.151

Name:    oberon
Address:  192.168.1.151

분명히, dnsmasq잘 작동하고 있습니다. Windows 상자에 192.168.1.151이름 을 확인하는 데 사용하도록 지시 oberon하면 모든 것이 정상입니다 ( .lan도메인은의 구성의 일부 dnsmasq이므로 거기에서 볼 것으로 예상됩니다). 라우터가 Windows 컴퓨터 192.168.1.151가 DNS 쿼리를 할 때 사용하도록 지시 할 수 있다면 좋을 것입니다!

따라서 내 라우터에 문제가있는 것 같습니다.하지만 192.168.1.151이미 가지고있는 것처럼 포함하도록 DNS 서버를 변경하는 것 외에는 무엇을 해야할지 알 수 없습니다 . 누구든지 나를 도울 수 있습니까? 원하는 추가 정보를 제공하려고 노력할 것입니다.


pi를 첫 번째 DNS 서버로 설정하면 작동합니까?
terdon

1
라우터가이 작업을 수행하기에 적합한 장소입니다. 어떤 이유로 라우터가 Pi의 이름을 제공하지 못하면 Pi에서 dnsmasq를 실행하고 DNS 서버가 작동하는 것처럼 라우터가 Pi를 제공하도록하십시오. 문제가 라우터를 올바르게 구성하고있는 것 같습니다.
Gilles 'SO- 악마 그만해

라우터에서 DNS 설정을 업데이트 한 후 클라이언트에서 DHCP 임대를 다시 갱신 하시겠습니까? DNS 구성은 DHCP 임대로 전송되므로 새 설정을 얻으려면 새 임대를 가져와야합니다. 대체 솔루션으로 mDNS / zeroconf / avahi를 살펴볼 수도 있습니다.
Patrick

답변:


2

귀하의 문제는 DNS 서버가 사용되는 방식에 대한 오해에 있습니다 .Windows가 쿼리 할 DNS 서버를 선택하는 데 사용하는 방법의 정확한 세부 사항을 알지 못하지만 기본> 보조> 3 차 / always /에 베팅하고 있습니다. 그리고 그것이 아니고 라운드 로빈이더라도, 당신은 여전히 ​​도움이되지 않는 서버 2를 3 번 ​​쿼리 할 것입니다.

기본 서버가 쿼리됩니다. 두 번째 또는 두 번째 시간이 초과되면 다음 서버가 쿼리됩니다. DNS는 "합의 된"시스템이 아니며, 원격 서버 중 하나를 쿼리하는 경우 인터넷 DNS 서버라는 관점에서 호스트 이름이 존재하지 않는 결과를 발견하게됩니다.

기본 DNS 서버로 고유 한 LAN DNS가 필요합니다. 다른 사람들은 적절한 백업 서버를 만들지 만 완전히 삭제하는 것을 고려할 것입니다.

또한 역방향 DNS (IP- 이름 조회)는 "hostname.lan"으로 확인되지만 정방향 확인 테스트는 호스트 이름 만 사용됩니다. 또한 hostname.lan에 대한 정방향 해상도가 설정되어 있어야합니다. 호스트에 대해 많은 "이름 대 주소 지정"정방향 조회가있을 수 있지만 이름에 대한 IP의 역방향 조회가있을 것으로 예상되며 해당 IP 레코드와 일치하는 이름이있을 것으로 예상됩니다. 항상 중요하지는 않으며 로그 파일을 울리는 경우도 있지만 일부는 다른 것보다 더 민감합니다.

또한, 일단 모든 작업이 완료되면 배치 한 호스트 파일 bodgery를 제거하는 것을 잊지 마십시오 (dnsmasq와 관련된 것이거나 사용하지 않은 경우 모르겠습니다 .ISC-BIND 이름을 사용하여 비슷하지만 더 복잡한 구성이 있습니다. 서버를 사용하면 다른 서버로 전달을 구성하거나 단순히 전체 이름 확인을 수행하는 전달하지 않는 DNS 서버로 사용할 수 있습니다.

말할 것도없이, 당신이 처음으로 추측했을 때, 당신은이 설정을하는 데있어서 혼자있는 것과는 매우 거리가 멀기 때문에, 합리적으로 개발 된 거의 모든 회사 LAN과 매우 많은 과도하게 개발 된 홈 LAN은 이런 종류의 설정을 할 것입니다.


1
당신의 도움 iain에 감사드립니다! DNS가 합의 시스템이 아닌 방법에 대해 말한 것을 이해하므로 Pi를 라우터의 기본 DNS 서버로 설정했습니다. 그런 다음 Windows 컴퓨터에서 DHCP 임대를 갱신했습니다. 그러나 nslookup oberon여전히 작동하지 않습니다. 원래 게시물의 텍스트에서 언급하지 않은 한 가지는 nslookup실패 했을 때 사용 된 서버가 fe80IPv6 주소라는 것입니다. 그러나 그것이 DNS에 어떤 의미가 있는지 모르겠습니다. 내 Windows 상자가 자체 쿼리합니까? dnsflush이 동작은 변경하지 않습니다.
c.anna

그리고 가치가 있기 때문에 LAN 호스트 이름 확인은 iOS 기기에서도 작동하지 않습니다. Windows에 대해 훨씬 내성적 인 힘을 가지고 있기 때문에 아직 언급하지 않았지만 문제가 실제로 Windows에서 엄격하게 발생하는 경우 이러한 장치에 동일한 문제가 발생하지 않을 것입니다.
c.anna

또한 .lan도메인 에 대한 우려를 줄이기 위해 dnsmasq간단한 호스트 이름을 자동으로 확장하여 추가 하도록 구성 했습니다 .lan. Running nslookup oberon.lan 192.168.1.151은 예상 결과를 반환합니다Name: oberon.lan Address: 192.168.1.151
c.anna

직장이나 무언가에 "창문주의"가 있는지 궁금해서 최상위 도메인 ( 'oberon') 바로 아래에 호스트 이름을 지정하는 것이 다소 이상합니다. oberon.lan이 훨씬 더 합리적입니다. 알아 두어야 할 한 가지는 도메인 접미사와 '검색 도메인'이 종종 이름을 추가하여 이름을 추가한다는 것입니다. 예를 들어, lan이 검색 도메인에 있으면 "oberon"을 확인하고 "oberon.lan"으로 찾을 수 있습니다. 그러나 위의 쿼리는이 경우를 보여주지 않는 것 같습니다. 발굴은 특히 호스트 이름에 종료 기간이 있지만 테스트 할 때 그 사실을 알고 있어야합니다!
iain

흠, 기본 DNS를 수정 한 후 창을 다시 DHCP해야합니다 (어댑터를 재설정해야 함). ipconfig /all사용중인 올바른 DNS 서버가 표시되는지 확인하십시오. 그렇다면 플러시해야 할 수도 있습니다. 그러나 나는 다른 것을 생각할 수 없으며 작동해야합니다.
sourcejedi 2016 년

1

어쩌면 조금 늦었지만 내 무선 어댑터에서 ipv6를 비활성화하면 트릭이 발생했습니다.


공감 : 항상 좋은 생각입니다. 시스템이 벗겨져 있지 않으면 필요하지 않습니다. 그리고 지금까지 (2017 년 9 월) 해당 범주를 충족하는 가정용 사용자 장비는 거의 없습니다.
SDsolar
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.