デュアルスタックipv4およびipv6でローカルホスト名を解決するためにdnsmasqを構成するにはどうすればよいですか?


3

問題:自宅にルーター(openwrt)があり、IPの代わりにホスト名を入力するだけで、コンピューターがローカルサブネット上で相互に接続できるようにします。現在、DNSクエリがルーターに送信されると、ルーターはipv4アドレスのみ(ipv6アドレスなし)で応答します。ルーターがipv4アドレスとipv6アドレスの両方で応答するようにします。

シナリオ:openwrtがインストールされたルーターがあります- CHAOS CALMER (15.05.1, r48532)。ipv4の場合、サブネット192.168.1.0/24があります。LAN上のすべてのコンピューターは、互いに通信/接続できます。インターネット(例:google.com)に接続する場合、ルーターでNATを通過します。基本設定。ipv6の場合、ULAプレフィックス(いくつかのジェネレーターを使用)を作成し、Webインターフェース(luci)を介して構成しました。私はipv6で(ISPから)インターネットを持っていないので、すべての通信はローカルコンピューターに限定されます。

動作:
*コンピューターはルーターからipv4とipv6の両方のipを取得できます
*コンピューターはipv4とipv6の両方を介して相互に通信できます(例pingping6またはssh -4ssh -6
*コンピューターはルーターのDNSサーバーにgoogle.comを要求し、ipv4とipv6の両方を取得できますアドレス
*コンピューターはルーター上のDNSサーバーに別のコンピューターのホスト名を要求し、ipv4アドレスのみを取得
できます*静的ホスト名(luciを介して)をipv6アドレスに設定でき、lan上のコンピューターがそれについて尋ねると、ipv6アドレスを正しく取得できます

ipv6アドレスに対しては有効なホスト名解決を取得できませんが、ipv4に対しては完全に機能するため、奇妙に思えます。

ipv4とipv6の両方でローカルホスト名を解決するようにdnsmasqを構成するにはどうすればよいですか?


/ 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 --version

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.

opkgリストインストール

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

回答:


0

カスタムOpenWrtイメージを使用しない場合、デフォルトのDHCP / DNSコンスタレーションは次のとおりです。

  • dnsmasqはDHCPv4とDNSを実行します
  • dnsmasqはDHCPv6のサポートなしで出荷されます(それがあなたにとって異なる理由です)
  • odhcpdはDHCPv6を行います
  • dnsmasqは、どのような方法でもodhcpdと連動しません

そのため、IPv4アドレスしか取得できません。

odhcpdは、(またはセクションで設定されているもの)の/etc/hosts形式でファイルを作成する/tmp/hosts/odhcpdようです。これが機能するためには、設定する必要がありますの中で。/etc/config/dhcpodhcpdoption dhcpv6 server/etc/config/dhcp

次のいずれかの構成変更を行うことにより、dnsmasqでこのファイルを使用できます。

  • /etc/config/dhcpでのdnsmasqセクションの追加list addnhosts /tmp/hosts/odhcpd
  • /etc/dnsmasq.conf追加addn-hosts=/tmp/hosts/odhcpd

これらのエントリを追加してdnsmasq(/etc/init.d/dnsmasq restart)を再起動すると、dnsmasqはIPv4アドレスとIPv6アドレスの両方で正しく応答します。ただし、利点はありません。

また、DHCPv6を使用しないが、ステートレス自動構成だけのクライアントは、IPv6アドレスと共に表示されないことに注意してください。


私は追加list addnhosts /tmp/hosts/odhcpdし、それはほとんど働いていた- nslookup hostnameルータ上でIPv6アドレスを示しましたが、他のコンピュータ上ではしませんでした。私は行を削除する必要がoption local '/home/'ありoption domain 'home'、その後完全に働き始めました。
ことこ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.