Làm cách nào để định cấu hình dnsmasq để phân giải tên máy chủ cục bộ với dualstack ipv4 & ipv6?


3

Vấn đề : Tôi có một bộ định tuyến (openwrt) ở nhà và tôi muốn các máy tính kết nối với nhau trên mạng con cục bộ bằng cách chỉ cần gõ tên máy chủ thay vì ip của chúng. Ngay bây giờ khi truy vấn dns được gửi đến bộ định tuyến, bộ định tuyến chỉ trả lời với địa chỉ ipv4 (không có địa chỉ ipv6). Tôi muốn bộ định tuyến đáp ứng với cả địa chỉ ipv4 và ipv6.

Kịch bản : Tôi có bộ định tuyến với cài đặt openwrt - CHAOS CALMER (15.05.1, r48532). Đối với ipv4 tôi có mạng con 192.168.1.0/24. Tất cả các máy tính trên lan có thể nói chuyện / kết nối với nhau. Nếu họ muốn kết nối với internet (ví dụ google.com), họ sẽ thông qua NAT trên bộ định tuyến. Cấu hình cơ bản. Đối với ipv6 tôi đã tạo tiền tố ULA (với một số trình tạo) và định cấu hình nó thông qua giao diện web (luci). Tôi không có internet (từ ISP) với ipv6, vì vậy mọi giao tiếp chỉ giới hạn ở các máy tính cục bộ.

Điều gì làm việc:
* máy tính có thể có được cả IPv4 và IPv6 ip từ router
* máy tính có thể giao tiếp với nhau thông qua cả IPv4 và IPv6 (ví dụ ping, ping6hoặc ssh -4, ssh -6)
* máy tính có thể yêu cầu máy chủ dns trên router cho google.com và nhận được cả IPv4 và IPv6 địa chỉ
* máy tính có thể yêu cầu máy chủ dns trên bộ định tuyến cho tên máy chủ của máy tính khác và chỉ nhận địa chỉ ipv4
* Tôi có thể đặt tên máy chủ tĩnh (thông qua luci) thành địa chỉ ipv6 và khi máy tính trên lan hỏi về nó, họ sẽ nhận được địa chỉ ipv6 chính xác

Tôi không thể làm việc với độ phân giải tên máy chủ cho các địa chỉ ipv6, điều này có vẻ lạ đối với tôi, vì đối với ipv4, nó hoạt động hoàn hảo.

Làm cách nào để định cấu hình dnsmasq để phân giải tên máy chủ cục bộ bằng cả ipv4 VÀ ipv6?


/ etc / config / dhcp

config dnsmasq                      
        option localise_queries '1'        
        option rebind_protection '1'
        option rebind_localhost '1'        
        option authoritative '1'                 
        option readethers '1'                    
        option leasefile '/tmp/dhcp.leases'       
        option noresolv '1'                       
        list server '127.0.0.1#5353' # <-- I am using dnscrypt
        list server '/pool.ntp.org/2620:0:ccc::2' 
        list server '/pool.ntp.org/2620:0:ccd::2' 
        list server '/pool.ntp.org/208.67.222.222'
        list server '/pool.ntp.org/208.67.220.220'
        option local '/home/'  
        option domain 'home'   
        option nonegcache '1' 
        option domainneeded '1'
        option boguspriv '1'  

config dhcp 'lan'         
        option interface 'lan'
        option start '100'    
        option limit '150'   
        option leasetime '12h'  
        option force '1'      
        option ra 'server'      
        option dhcpv6 'server'  
        option ra_default '1'
        option ra_management '1'

config dhcp 'wan'          
        option interface 'wan'              
        option ignore '1'                            

config odhcpd 'odhcpd'                               
        option maindhcp '0'                          
        option leasefile '/tmp/hosts/odhcpd'         
        option leasetrigger '/usr/sbin/odhcpd-update'

dnsmasq - chuyển đổi

Dnsmasq version 2.73  Copyright (c) 2000-2015 Simon Kelley
Compile time options: IPv6 GNU-getopt no-DBus no-i18n no-IDN DHCP DHCPv6 no-Lua TFTP no-conntrack no-ipset no-auth no-DNSSEC loop-detect inotify

This software comes with ABSOLUTELY NO WARRANTY.
Dnsmasq is free software, and you are welcome to redistribute it
under the terms of the GNU General Public License, version 2 or 3.

danh sách opkg được cài đặt

base-files - 157.2-r48532
busybox - 1.23.2-1
bzip2 - 1.0.6-2
ca-certificates - 20150426
ddns-scripts - 2.4.3-2
dnscrypt-proxy - 1.4.3-1
dnsmasq-dhcpv6 - 2.73-1
dropbear - 2015.67-1
firewall - 2015-07-27
fstools - 2016-01-10-96415afecef35766332067f4205ef3b2c7561d21
hostapd-common - 2015-03-25-1
ip6tables - 1.4.21-1
iptables - 1.4.21-1
iw - 3.17-1
jshn - 2015-11-08-10429bccd0dc5d204635e110a7a8fae7b80d16cb
jsonfilter - 2014-06-19-cdc760c58077f44fc40adbbe41e1556a67c1b9a9
kernel - 3.18.23-1-dbb19f09b72b69f418ee332a4882bbad
kmod-cfg80211 - 3.18.23+2015-03-09-3
kmod-crypto-aes - 3.18.23-1
kmod-crypto-arc4 - 3.18.23-1
kmod-crypto-core - 3.18.23-1
kmod-eeprom-93cx6 - 3.18.23-1
kmod-gpio-button-hotplug - 3.18.23-1
kmod-ip6tables - 3.18.23-1
kmod-ipt-conntrack - 3.18.23-1
kmod-ipt-core - 3.18.23-1
kmod-ipt-nat - 3.18.23-1
kmod-ipv6 - 3.18.23-1
kmod-leds-gpio - 3.18.23-1
kmod-lib-crc-ccitt - 3.18.23-1
kmod-lib-crc-itu-t - 3.18.23-1
kmod-mac80211 - 3.18.23+2015-03-09-3
kmod-nf-conntrack - 3.18.23-1
kmod-nf-conntrack6 - 3.18.23-1
kmod-nf-ipt - 3.18.23-1
kmod-nf-ipt6 - 3.18.23-1
kmod-nf-nat - 3.18.23-1
kmod-nf-nathelper - 3.18.23-1
kmod-nls-base - 3.18.23-1
kmod-ppp - 3.18.23-1
kmod-pppoe - 3.18.23-1
kmod-pppox - 3.18.23-1
kmod-rt2800-lib - 3.18.23+2015-03-09-3
kmod-rt2800-mmio - 3.18.23+2015-03-09-3
kmod-rt2800-pci - 3.18.23+2015-03-09-3
kmod-rt2800-soc - 3.18.23+2015-03-09-3
kmod-rt2x00-lib - 3.18.23+2015-03-09-3
kmod-rt2x00-mmio - 3.18.23+2015-03-09-3
kmod-rt2x00-pci - 3.18.23+2015-03-09-3
kmod-slhc - 3.18.23-1
kmod-usb-core - 3.18.23-1
kmod-usb-ohci - 3.18.23-1
kmod-usb2 - 3.18.23-1
libacl - 20140812-1
libattr - 20150220-1
libblobmsg-json - 2015-11-08-10429bccd0dc5d204635e110a7a8fae7b80d16cb
libbz2 - 1.0.6-2
libc - 0.9.33.2-1
libgcc - 4.8-linaro-1
libip4tc - 1.4.21-1
libip6tc - 1.4.21-1
libiwinfo - 2015-06-01-ade8b1b299cbd5748db1acf80dd3e9f567938371
libiwinfo-lua - 2015-06-01-ade8b1b299cbd5748db1acf80dd3e9f567938371
libjson-c - 0.12-1
libjson-script - 2015-11-08-10429bccd0dc5d204635e110a7a8fae7b80d16cb
liblua - 5.1.5-1
libnl-tiny - 0.1-4
libopenssl - 1.0.2g-1
libpcre - 8.38-1
libpolarssl - 1.3.14-1
libpthread - 0.9.33.2-1
librt - 0.9.33.2-1
libsodium - 1.0.2-1
libubox - 2015-11-08-10429bccd0dc5d204635e110a7a8fae7b80d16cb
libubus - 2015-05-25-f361bfa5fcb2daadf3b160583ce665024f8d108e
libubus-lua - 2015-05-25-f361bfa5fcb2daadf3b160583ce665024f8d108e
libuci - 2015-08-27.1-1
libuci-lua - 2015-08-27.1-1
libustream-polarssl - 2015-07-09-c2d73c22618e8ee444e8d346695eca908ecb72d3
libxtables - 1.4.21-1
lua - 5.1.5-1
luci - git-16.018.33482-3201903-1
luci-app-ddns - 2.2.4-1
luci-app-firewall - git-16.018.33482-3201903-1
luci-base - git-16.018.33482-3201903-1
luci-lib-ip - git-16.018.33482-3201903-1
luci-lib-nixio - git-16.018.33482-3201903-1
luci-mod-admin-full - git-16.018.33482-3201903-1
luci-proto-ipv6 - git-16.018.33482-3201903-1
luci-proto-ppp - git-16.018.33482-3201903-1
luci-ssl - git-16.018.33482-3201903-1
luci-theme-bootstrap - git-16.018.33482-3201903-1
mtd - 21
netifd - 2015-12-16-245527193e90906451be35c2b8e972b8712ea6ab
odhcp6c - 2015-07-13-024525798c5f6aba3af9b2ef7b3af2f3c14f1db8
odhcpd - 2015-11-19-01d3f9d64486ac1daa144848944e877e7f0cb762
openssl-util - 1.0.2g-1
opkg - 9c97d5ecd795709c8584e972bfdf3aee3a5b846d-9
ppp - 2.4.7-6
ppp-mod-pppoe - 2.4.7-6
procd - 2015-10-29.1-d5fddd91b966424bb63e943e789704d52382cc18
px5g - 3
rpcd - 2015-01-10-f00890cd6eb47ad9bb5da0fb6c50aedc8406e7c5
swconfig - 10
tar - 1.28-2
ubox - 2015-11-22-c086167a0154745c677f8730a336ea9cf7d71031
ubus - 2015-05-25-f361bfa5fcb2daadf3b160583ce665024f8d108e
ubusd - 2015-05-25-f361bfa5fcb2daadf3b160583ce665024f8d108e
uci - 2015-08-27.1-1
uhttpd - 2015-11-08-fe01ef3f52adae9da38ef47926cd50974af5d6b7
uhttpd-mod-ubus - 2015-11-08-fe01ef3f52adae9da38ef47926cd50974af5d6b7
usign - 2015-05-08-cf8dcdb8a4e874c77f3e9a8e9b643e8c17b19131
wget - 1.17.1-1
wpad-mini - 2015-03-25-1
zlib - 1.2.8-1

Câu trả lời:


0

Nếu bạn không sử dụng hình ảnh OpenWrt tùy chỉnh, chòm sao DHCP / DNS mặc định như sau:

  • dnsmasq không DHCPv4 và DNS
  • tàu dnsmasq không có hỗ trợ DHCPv6 (dunno tại sao điều đó khác với bạn)
  • odhcpd không DHCPv6
  • dnsmasq không giao tiếp với odhcpd theo bất kỳ cách nào

Vì vậy, đó là lý do tại sao bạn chỉ nhận được địa chỉ IPv4.

Có vẻ odhcpd tạo ra một tập tin trong /etc/hostsđịnh dạng tại /tmp/hosts/odhcpd(hoặc bất kỳ được thiết lập ở /etc/config/dhcptrong odhcpdphần). Để làm việc này, bạn cần phải thiết lập option dhcpv6 servertrong /etc/config/dhcp.

Bạn có thể khiến dnsmasq sử dụng tệp này bằng cách thực hiện một trong những thay đổi cấu hình sau:

  • Trong /etc/config/dhcptrong dnsmasqphần thêmlist addnhosts /tmp/hosts/odhcpd
  • trong /etc/dnsmasq.confaddaddn-hosts=/tmp/hosts/odhcpd

Sau khi thêm các mục đó và khởi động lại dnsmasq ( /etc/init.d/dnsmasq restart), dnsmasq trả lời chính xác với cả địa chỉ IPv4 và IPv6. Bạn không có lợi thế mặc dù.

Cũng lưu ý rằng các máy khách không sử dụng DHCPv6 mà chỉ tự động cấu hình không trạng thái sẽ không xuất hiện cùng với địa chỉ IPv6 của chúng.


Tôi đã thêm list addnhosts /tmp/hosts/odhcpdvà sau đó nó gần như hoạt động - nslookup hostnametrên bộ định tuyến hiển thị địa chỉ ipv6, nhưng trên các máy tính khác thì không. Tôi đã gỡ bỏ dòng option local '/home/'option domain 'home'và sau đó bắt đầu làm việc một cách hoàn hảo.
kotoko
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.