Tôi đang làm việc để thiết lập một mạng nội bộ gia đình cho tôi và bạn cùng phòng của tôi. Ý tưởng của tôi là chúng tôi sẽ có thể lưu trữ những thứ như hóa đơn tiện ích trong quá khứ ở nơi dễ truy cập hơn ngăn kéo trong nhà bếp, v.v ... Dù sao, tôi có Apache 2 chạy trên Raspberry Pi, trên mạng LAN của tôi và nếu tôi sử dụng địa chỉ IP của nó, tôi có thể truy cập các trang đang được phục vụ trên Pi. Vì tôi đang thực hiện dự án này nhiều hơn để tìm hiểu về kết nối mạng để cung cấp dịch vụ cho căn hộ của mình, tôi nghĩ sẽ thật tuyệt nếu mạng của tôi có thể cung cấp độ phân giải tên máy chủ cho mạng LAN của tôi. Vì vậy, thay vì trỏ trình duyệt của tôi tới 192.168.1.151
địa chỉ IP của Pi, tôi có thể trỏ nó đến oberon
(tên máy chủ của nó) và xem các trang web được cung cấp bởi Pi.
Bây giờ tôi biết tôi không phải là người đầu tiên muốn làm điều này, vì vậy tôi đã bắt đầu bởi Googling. Câu hỏi này, cũng trên Unix & Linux, đã giúp tôi rất nhiều: Làm thế nào để làm cho một máy có thể truy cập từ mạng LAN bằng tên máy chủ của nó . Tại thời điểm này, tôi đã thử mọi cách trong câu trả lời được xác minh. Tôi đã nghĩ về việc sử dụng hosts
tệp, nhưng điều đó có nghĩa là tôi sẽ phải nói với bạn cùng phòng của mình cấu hình máy của họ, điều mà tôi không muốn họ phải làm. Tôi đã cố gắng đặt trước một hợp đồng thuê DHCP cho Pi trên bộ định tuyến của mình (NETGEAR WNR1000v2 (còn gọi là N150)) và trong khi bảo lưu hoạt động, độ phân giải tên máy chủ không hoạt động. Kiểu này làm tôi thất vọng vì tôi đã nói với bộ định tuyến của mình IP của Pi và tên máy chủ của nó, nhưng nó vẫn không cung cấp thông tin này cho khách hàng trên mạng LAN của tôi.
Với hai phương thức này không hoạt động, tôi quyết định cài đặt dnsmasq
trên Pi. Nó có vẻ đơn giản để cấu hình và tôi sẽ rất vui khi học một công cụ mới. Tôi đã cài đặt và có nó chạy tốt (có vẻ như). Tôi có thể dig
hoặc nslookup
biệt danh của Pi (mà tôi đặt trong /etc/hosts
để oberon
và homenet
) và có được kết quả chính xác. Tôi có thể làm tương tự cho các tên internet như yahoo.com
và nhận được câu trả lời chính xác vì tôi đã thiết lập Google 8.8.8.8
và 8.8.4.4
làm máy chủ dự phòng /etc/dnsmasq.conf
. Xem cái này:
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
Lưu ý rằng SERVER
là 127.0.0.1
: oberon
được nhìn lên địa chỉ IP riêng của mình trên chính nó. Đây là những gì tôi mong đợi để xem. Đầu ra là như nhau nếu tôi làm dig oberon @localhost
. Vì đầu ra này, tôi nghĩ rằng nó dnsmasq
đang hoạt động tốt. Vì vậy, để đưa nó lên cấp độ tiếp theo, tôi muốn tất cả các máy khách trong mạng LAN của mình có thể nhập oberon
vào trình duyệt của chúng và được đưa đến oberon
trang chỉ mục. Đối với điều này, tôi biết rằng tôi cần phải định cấu hình bộ định tuyến của mình (xin lỗi nếu điều này tránh khỏi lãnh thổ Unix & Linux).
Tôi có một Netgear WNR1000v2 mà tôi khá quen thuộc. Tôi đã định cấu hình chuyển tiếp cổng để tôi có thể SSH vào Pi và tôi cũng đã tìm kiếm trong các cài đặt khác. Tôi biết rằng trước khi tôi bắt đầu dự án này, tôi đã nhận được các máy chủ DNS từ ISP của mình, nhưng bây giờ tôi muốn sử dụng các máy chủ DNS đó chủ yếu nhưng cũng sử dụng 192.168.1.151
như một kiểm tra cuối cùng. Vì vậy, tôi đã thay đổi cấu hình DNS của bộ định tuyến của mình thành như sau:
Vì vậy, với cấu hình này, tôi hy vọng có thể thực hiện nslookup oberon
trên máy tính để bàn (Windows) của mình và nhận được kết quả 192.168.1.151
. Nhưng điều này không xảy ra. Đây là những gì xảy ra:
C:\Users\me>nslookup oberon
Server: UnKnown
Address: fe80::226:f2ff:fefa:bea
*** UnKnown can't find oberon: Non-existent domain
Đặt lại hoặc dnsflushing
bộ điều hợp mạng trên máy Windows của tôi không thay đổi gì cả.
Bây giờ đây là lý do tại sao tôi xé tóc ra đây:
C:\Users\me>nslookup oberon 192.168.1.151
Server: oberon.lan
Address: 192.168.1.151
Name: oberon
Address: 192.168.1.151
Rõ ràng, dnsmasq
đang làm việc tốt. Nếu tôi bảo hộp Windows của mình sử dụng 192.168.1.151
để phân giải tên oberon
, mọi thứ đều ổn ( .lan
tên miền là một phần của cấu hình dnsmasq
, vì vậy tôi dự kiến sẽ thấy nó ở đó). Nếu tôi có thể yêu cầu bộ định tuyến của mình báo cho máy Windows của tôi sử dụng 192.168.1.151
khi thực hiện truy vấn DNS, tôi sẽ ổn!
Vì vậy, dường như vấn đề nằm ở bộ định tuyến của tôi, nhưng tôi không thể biết phải làm gì ngoài việc thay đổi máy chủ DNS để bao gồm 192.168.1.151
như tôi đã có. bất cứ ai có thể giúp tôi ở đây? Tôi sẽ cố gắng cung cấp thêm thông tin mong muốn.