Dnsmasq phân giải tên máy chủ cục bộ thành 127.0.0.1 trên mạng


8

Dnsmasq của tôi được cấu hình:

  • Trên máy chủ 'rtfm.lan'
  • Tên miền 'lan'
  • Có một số cài đặt trước DHCP bao gồm tên máy chủ

Tất cả các máy chủ '* .lan' được đăng ký qua DHCP đều giải quyết ổn: dnsmasq biết IP nào được gán cho tên máy chủ nào. Tuy nhiên, 'rtfm.lan' được đọc từ / etc / hosts và giải quyết thành 127.0.0.1.

Tôi có thể ngăn dnsmasq đọc / etc / hosts và thêm địa chỉ thủ công:

no-hosts
address=/rtfm.lan/192.168.1.2

Nhưng điều này không linh hoạt: nếu một ngày nào đó tôi quyết định thay đổi IP của mình - tôi cũng sẽ phải thay đổi nó trong dnsmasq.conf.

Làm cách nào tôi có thể bảo dnsmasq sử dụng tên máy chủ cục bộ với IP thực của nó?


Chỉ trong trường hợp .. đây là cấu hình DNSmasq của tôi:

# Never forward plain names (without a dot or domain part)
domain-needed
# Never forward addresses in the non-routed address spaces.
bogus-priv
# Read resolv.conf serially
strict-order

#==========[ NAMESERVER ]==========#

# Cache size
cache-size=4096
# Don't read /etc/hosts
no-hosts
# Read additional hosts-file (not only /etc/hosts) to add entries into DNS
addn-hosts=/etc/hosts-dnsmasq
# Auto-append <domain> to simple entries in hosts-file
expand-hosts

#=== HOSTNAME OVERRIDES
address=/localhost/127.0.0.1 # *.localhost => 127.0.0.1

#==========[ DHCP ]==========#
# Enable for the local network?
dhcp-authoritative
# Tell MS Windows to release a lease on shutdown
dhcp-option=vendor:MSFT,2,1i

#=== DHCP
# Domain name
domain=lan
# DNS-resolve hosts in these domains ONLY from /etc/hosts && DHCP leases
local=/lan/

# DHCP range & lease time
dhcp-range=192.168.1.70,192.168.1.89,24h 
# Default route
dhcp-option=3,192.168.1.1

#=== FIXED LEASES
# LAN MY HOSTS
dhcp-host=00:23:54:5d:27:fa,                    rtfm.lan,               192.168.1.2
dhcp-host=00:23:54:5d:27:fb,                    rtfm.lan,               192.168.1.2
dhcp-host=c8:0a:a9:45:f1:03, 00:1e:64:9e:e9:5e, wtf.lan,                192.168.1.3

Câu trả lời:


10

Thông thường, bạn sẽ xác định máy chủ tĩnh trong /etc/hostsvà bật hoststrong dnsmasq.conftệp của mình . dnsmasqcho phép bạn chỉ định một tên thay thế cho tập tin này.

Nếu bạn muốn rtfm.lanđược giải quyết như 192.168.1.2sau đó thêm một dòng đọc 192.168.1.2 rtfm.lanvào /etc/hosts. Thông thường, tập tin máy chủ lưu trữ của bạn cho dnsmasq nên có thể được chuyển đến tất cả các máy chủ của bạn.

Trên rtfm.lanngăn xếp IP sẽ đoản mạch định tuyến và không gửi lưu lượng truy cập lên mạng.

Nếu bạn cập nhật /etc/hoststệp và tín hiệu của mình dnsmasqbằng HUPtín hiệu, tệp máy chủ sẽ được đọc lại và thay đổi được áp dụng.

EDIT: dnsmasq không được thiết kế để phục vụ địa chỉ máy chủ động cho máy chủ của chính nó. Như đã lưu ý, nó phục vụ các tên từ tệp cho thuê của nó cho các máy khách DHCP.

Nếu máy chủ của bạn là một cổng Internet, nó thường sẽ phục vụ một địa chỉ tĩnh cục bộ. Cung cấp địa chỉ cổng Internet có thể gây ra sự cố định tuyến và tường lửa.

Bạn có thể định cấu hình ứng dụng khách DHCP của mình để ghi tệp lưu trữ một dòng. Tùy chọn dnsmasq addn-hostcó thể được sử dụng để có được dnsmasq để đọc tệp này ngoài /etc/hosts. Nếu địa chỉ có khả năng thay đổi, thì máy khách DHCP có thể ghi lại tệp và gửi HUPtín hiệu dnsmasq về thay đổi địa chỉ IP.


Vậy .. không có cách nào để khiến dnsmasq sử dụng IP hiện tại được lấy từ giao diện?
kolypto

Không phải theo mặc định, nhưng bạn có thể nhận ứng dụng khách DHCP của mình để cung cấp dữ liệu cần thiết. Tôi không chắc tại sao bạn sẽ phục vụ một địa chỉ động cho máy chủ từ dnsmasq.
BillThor

4

dnsmasq có thể giải quyết tên máy chủ của riêng mình bằng cách vô hiệu hóa việc đọc từ / etc / hosts và định cấu hình tệp cấu hình khác để đọc tên máy chủ bao gồm chính nó.

cấu hình dnsmasq (/etc/dnsmaq.conf):

no-hosts
addn-hosts=/etc/dnsmasq_hosts

Trong / etc / dnsmasq_hosts, định cấu hình điểm tên máy chủ riêng cho địa chỉ IP mà người ta cần (cũng như các tên máy chủ khác trong lan cục bộ).

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.