1

Проблема: у меня дома есть маршрутизатор (openwrt), и я хочу, чтобы компьютеры соединялись друг с другом в локальной подсети, просто набирая имя хоста вместо их ip. Прямо сейчас, когда DNS-запрос отправляется на маршрутизатор, маршрутизатор отвечает только IPv4-адресом (без IPV6-адреса). Я хочу, чтобы маршрутизатор отвечал с адресами ipv4 и ipv6.

Сценарий: у меня установлен роутер с openwrt - CHAOS CALMER (15.05.1, r48532) . Для ipv4 у меня есть подсеть 192.168.1.0/24. Все компьютеры на локальной сети могут общаться / общаться друг с другом. Если они хотят подключиться к Интернету (например, google.com), они проходят через NAT на маршрутизаторе. Базовая конфигурация. Для ipv6 я создал префикс ULA (с некоторым генератором) и настроил его через веб-интерфейс (luci). У меня нет интернета (от провайдера) с ipv6, поэтому все общение ограничено локальными компьютерами.

Что работает:
* компьютеры могут получать ipv4 и ipv6 ip с маршрутизатора
* компьютеры могут общаться друг с другом через ipv4 и ipv6 (например, ping , ping6 или ssh -4 , ssh -6)
* компьютеры могут запросить DNS-сервер на маршрутизаторе для google.com и получить адреса ipv4 и ipv6
* компьютеры могут запросить DNS-сервер на маршрутизаторе для имени хоста другого компьютера и получить только IPv4-адрес
* Я могу установить статическое имя хоста (через luci) на адрес ipv6, и когда компьютеры в локальной сети спрашивают об этом, они получают адрес ipv6 правильно

Я не могу получить рабочее разрешение имени хоста для адресов ipv6, что мне кажется странным, потому что для ipv4 это работает отлично.

Как мне настроить dnsmasq для разрешения локальных имен хостов как с ipv4, так и с ipv6?


/ И т.д. / конфигурации / 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 - версия

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

1 ответ1

0

Если вы не используете пользовательский образ OpenWrt, по умолчанию используется следующее сочетание DHCP/DNS:

  • dnsmasq делает DHCPv4 и DNS
  • dnsmasq поставляется без поддержки DHCPv6 (не знаю, почему это отличается от вас)
  • odhcpd делает DHCPv6
  • dnsmasq никак не взаимодействует с odhcpd

Вот почему вы получаете только адреса IPv4.

Похоже, что odhcpd создает файл в формате /etc/hosts в /tmp/hosts/odhcpd (или в том, что установлено в /etc/config/dhcp в разделе odhcpd ). Чтобы это работало, вам нужно установить option 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-адресом.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .