저는 나와 룸메이트를 위해 홈 인트라넷을 설정하는 작업을 하고 있습니다. 내 생각은 부엌 서랍 등의 서랍보다 더 접근하기 쉬운 곳에 과거 공과금 같은 것들을 보관할 수 있다는 것입니다. 어쨌든 저는 Apache 2를 Raspberry Pi와 LAN에서 실행하고 있습니다. IP 주소를 사용하면 Pi에서 제공되는 페이지에 액세스할 수 있습니다. 나는 내 아파트에 서비스를 제공하기 위해 네트워킹에 대해 더 많이 배우기 위해 이 프로젝트를 수행하고 있으므로 내 네트워크가 내 LAN에 대한 호스트 이름 확인을 제공할 수 있다면 멋질 것이라고 생각했습니다. 따라서 내 브라우저가 Pi의 IP 주소인 을 가리키는 대신 (호스트 이름) 192.168.1.151
을 가리키고 oberon
Pi가 제공하는 웹 페이지를 볼 수 있습니다.
이제 나는 이 일을 하고 싶은 첫 번째 사람이 아니라는 것을 알고 인터넷 검색을 시작했습니다. Unix와 Linux에서도 이 질문이 나에게 큰 도움이 되었습니다.호스트 이름을 사용하여 LAN에서 머신에 액세스할 수 있게 만드는 방법. 이 시점에서 나는 확인된 답변에 있는 모든 것을 시도했습니다. 나는 그 hosts
파일을 사용하는 것에 대해 생각했지만, 그것은 룸메이트들에게 그들의 컴퓨터를 구성하라고 말해야 한다는 것을 의미하지만 나는 그들이 그렇게 하도록 하고 싶지 않습니다. 내 라우터(NETGEAR WNR1000v2(일명 N150))에서 Pi에 대한 DHCP 임대를 예약하려고 했는데 예약이 작동했지만 호스트 이름 확인은 작동하지 않았습니다. 라우터에 Pi의 IP를 알려주었기 때문에 이런 종류의 좌절감을 느꼈습니다.그리고호스트 이름이 있지만 여전히 내 LAN의 클라이언트에 이 정보를 제공하지 않습니다.
이 두 가지 방법이 작동하지 않아서 dnsmasq
Pi에 설치하기로 결정했습니다. 구성이 간단해 보였고 새로운 도구를 배우게 되어 기뻤습니다. 나는 설치하고 잘 작동하고 있습니다. dig
또는 Pi의 별명( 및 로 nslookup
설정 )을 사용하면 올바른 결과를 얻을 수 있습니다. Google 과 를 백업 서버로 설정했기 때문에 와 같은 인터넷 이름에 대해서도 동일한 작업을 수행하고 정답을 얻을 수 있습니다 . 이것 좀 봐:/etc/hosts
oberon
homenet
yahoo.com
8.8.8.8
8.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
is : SERVER
는 자체 IP 주소를 찾고 있습니다. 이것이 내가 보기를 기대했던 것입니다. 내가 그렇게 하면 출력은 동일합니다 . 이 출력으로 인해 제대로 작동하고 있다고 생각합니다 . 그래서 이를 다음 단계로 끌어올리고 싶습니다.127.0.0.1
oberon
dig oberon @localhost
dnsmasq
모두oberon
내 LAN에 있는 클라이언트가 브라우저에 입력하고 oberon
의 색인 페이지 로 이동할 수 있도록 합니다 . 이를 위해서는 라우터를 구성해야 한다는 것을 알고 있습니다(이것이 Unix 및 Linux 영역에서 벗어나면 사과드립니다).
나는 꽤 친숙한 Netgear WNR1000v2를 가지고 있습니다. Pi에 SSH로 연결할 수 있도록 포트 전달을 구성했으며 다른 설정에서도 살펴보았습니다. 이 프로젝트를 시작하기 전에는 ISP로부터 DNS 서버를 가져오고 있었지만 이제는 해당 DNS 서버를 주로 사용하고 192.168.1.151
마지막 확인으로 도 사용하고 싶습니다 . 그래서 라우터의 DNS 구성을 다음과 같이 변경했습니다.
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
내 Windows 컴퓨터에서 네트워크 어댑터를 재설정하거나 dnsflushing
네트워크 어댑터를 사용해도 아무 것도 변경되지 않습니다.
이제 제가 여기서 머리를 뽑는 이유는 다음과 같습니다.
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
잘 작동하고 있습니다. 192.168.1.151
이름을 확인하는 데 사용하도록 Windows 상자에 지시하면 oberon
모든 것이 정상입니다( .lan
도메인은 구성의 일부이므로 dnsmasq
거기에서 볼 수 있을 것으로 예상했습니다). Windows 컴퓨터가 DNS 쿼리를 할 때 사용하도록 라우터에 지시할 수 있다면 192.168.1.151
좋을 것입니다!
192.168.1.151
따라서 문제는 내 라우터에 있는 것 같지만 이미 포함하도록 DNS 서버를 변경하는 것 외에는 무엇을 해야 할지 알 수 없습니다 . 누구든지 나를 도와줄 수 있나요? 원하는 추가 정보를 제공하도록 노력하겠습니다.
답변1
문제는 해당 DNS 서버가 사용되는 방식에 대한 오해에 있습니다. Windows에서 쿼리할 DNS 서버를 선택하는 데 사용하는 방법에 대한 정확한 세부 정보는 모르지만 기본 > 보조 > 3차 /always/에 베팅합니다. 그리고 라운드 로빈이 아니더라도 3번 중 2번은 여전히 도움이 되지 않는 서버에 쿼리하게 될 것입니다.
무슨 일이 일어날지 기본 서버가 쿼리됩니다. 해당 시간이 1~2초 정도 초과되면 다음 서버에 쿼리됩니다. DNS는 "합의" 시스템이 아닙니다. 원격 서버 중 하나가 쿼리되는 경우 결국 인터넷 DNS 서버의 관점에서 호스트 이름이 정식으로 존재하지 않는다는 결과를 발견하게 됩니다.
기본 DNS 서버로 자체 LAN DNS가 필요합니다. 다른 사람들은 적절한 백업 서버를 만들겠지만 나는 그것을 완전히 삭제하는 것을 고려할 것입니다.
또한 역방향 DNS(IP에서 이름 조회)는 "hostname.lan"으로 확인되지만 순방향 확인 테스트는 호스트 이름만 사용합니다. 또한 어딘가에 호스트 이름.lan에 대한 전달 확인이 설정되어 있어야 합니다. 호스트에 대한 "이름 주소" 정방향 조회가 많이 있을 수 있지만 IP에서 이름에 대한 역방향 조회가 있을 것으로 예상되며, 결과적으로 해당 IP 레코드와 일치하는 이름을 갖게 됩니다. 항상 중요한 것은 아니며 로그 파일이 때때로 윙윙거리게 만들지만, 어떤 것들은 다른 것보다 이것에 더 민감합니다.
또한 모든 작업이 완료되면 설치한 호스트 파일 오류를 제거하는 것을 잊지 마십시오. (그게 dnsmasq와 관련이 있는지는 모르겠지만 사용한 적이 없습니다. ISC-BIND 이름을 사용하여 유사하지만 더 복잡한 구성이 있습니다. 사용 중인 다른 서버로의 전달을 구성하거나 단순히 자체적으로 전체 이름 확인을 수행하는 비전달 DNS 서버로 사용할 수 있습니다. 이것이 제가 설정한 것입니다.
말할 필요도 없이, 처음에 이 설정을 수행하는 데 혼자가 아닐 것이라고 추측한 것처럼 합리적으로 개발된 거의 모든 기업 LAN과 과도하게 개발된 수많은 홈 LAN이 이러한 종류의 설정을 갖추고 있을 것입니다.
답변2
조금 늦었을 수도 있지만 무선 어댑터에서 ipv6을 비활성화하면 문제가 해결되었습니다.