openwrt: FQDN이 아닌 호스트 이름을 확인하기 위해 DNS 서버 설정을 변경할 수 없습니다.

openwrt: FQDN이 아닌 호스트 이름을 확인하기 위해 DNS 서버 설정을 변경할 수 없습니다.

내 서버(버전 10.03.1-RC6)에 SSH로 연결하면 openwrtDNS 서버에 문제가 있음이 표시됩니다.

root@OpenWrt:~# nslookup starkill
Server:    127.0.0.1
Address 1: 127.0.0.1 localhost.

nslookup: can't resolve 'starkill': Name or service not known

하지만,

root@OpenWrt:~# nslookup starkill.skails.home
Server:    127.0.0.1
Address 1: 127.0.0.1 localhost.

Name:      starkill.skails.home
Address 1: 192.168.112.138 starkill.skails.home

보시다시피 openwrt의 로컬 DNS 서버(dnsmasq)는 FQDN이 아닌 호스트 이름을 확인할 수 없습니다. 내 인트라넷 도메인을 연결하면 문제가 해결되지만 나에게는 작동하지 않습니다.

내 인트라넷에서 DNS 서버가 실행 중이므로 적어도 openwrt의 dnsmasq가 내 기본 DNS 서버에 문의하도록 하고 싶습니다.

그래서 네트워크 구성을 계속해서 확인했지만 무엇이 잘못되었거나 누락되었는지 파악할 수 없었습니다. 그럼 파일 /etc/config/network도 확인해봤는데수동.

파일은 처음에 다음과 같습니다.

[...]
config 'interface' 'lan'
        option 'type' 'bridge'
        option 'ifname' 'eth0.0'
        option '_orig_ifname' 'eth0.0 wl0'
        option '_orig_bridge' 'true'
        option 'proto' 'static'
        option 'ipaddr' '192.168.112.253'
        option 'netmask' '255.255.255.0'
        option 'gateway' '192.168.112.112'
        option 'broadcast' '192.168.112.255'
        option 'stp' '1'
        list 'dns' '192.168.112.112'
[...]

네트워크 구성에 의해 삽입된 "list dns"가 있는데 내가 기대했던 일반적인 "옵션"과 같지 않습니다. 그래서 나는 노력했다

    option 'dns' '192.168.112.112'

또한 가능한 모든 방법으로 "dns-search" 옵션을 시도했습니다.

   option 'dns-search' 'skails.home'
   list 'dns-search' 'skails.home.'

재시작 네트워크를 사용할 때마다 /etc/init.d/network reload. dns-search 절을 확인할 수 없으므로 제거해야 합니다.

위에서 "lan" 인터페이스 항목을 보여드린 것을 알 수 있을 것입니다. 그 이유는 WRT54G만 액세스 포인트로 사용하기 때문입니다. WAN 인터페이스를 사용하는 대신 4개의 LAN 이더넷 인터페이스(나머지 인트라넷에 연결되고 인터넷 게이트웨이가 있는 곳) 중 하나를 사용하고 기본적으로 내 장치의 안테나를 사용하여 인바운드 네트워킹 및 인터넷 액세스 무선 네트워크 장치를 제공합니다.

어쨌든, /etc/config/network를 변경하려고 해도 예상한 결과가 나오지 않았고 여전히 FQDN이 아닌 호스트 이름을 확인할 수 없습니다.

/etc/resolv.conf더욱이, 명시적으로 또는 직접적으로 네임서버를 제안할 때 다음 사항을 해결할 수도 없습니다 nslookup.

root@OpenWrt:~# nslookup starkill 192.168.112.112
Server:    192.168.112.112
Address 1: 192.168.112.112 stargaze.skails.home

nslookup: can't resolve 'starkill': Name or service not known

이 시점에서 나는 길을 잃었다. 내가 여기서 무엇을 놓치고 있는 걸까요?

답변1

dnsmasq는 현재 내 장벽 차단기에서 약간 신뢰할 수 없으며 그 결과

nslookup: can't resolve 'starkill': Name or service not known

이름은 일반적으로 문제 없이 구문 분석될 수 있지만 여기서도 마찬가지입니다.

먼저 시도해 보세요

killall -HUP dnsmasq

dnsmasq가 실제로 요청을 제대로 처리하는지 확인하려면 다시 시작할 수도 있습니다.

둘째, dnsmasq에는 FQDN을 자동 완성하는 옵션이 있습니다. 여기서는 다음 구성(/etc/config/dhcp)을 사용하여 이 작업을 수행합니다.

config dnsmasq
    option domainneeded '1'
    option boguspriv '1'
    option localise_queries '1'
    option rebind_protection '1'
    option rebind_localhost '1'
    option local '/lan/'
    option domain 'lan'
    option expandhosts '1'
    option readethers '1'
    option leasefile '/tmp/dhcp.leases'
    option resolvfile '/tmp/resolv.conf.auto'
    option filterwin2k '1'
    list addnhosts '/var/adblock/block.hosts'

Expandhosts는 /etc/hosts에서만 작동하므로 대부분은 설정에 적용되지 않지만 로컬 및 도메인이 도움이 될 것이라고 생각합니다.

내 /etc/config/network에는

option dns '192.168.200.1'

네트워크 다시 로드가 실제로 지시문을 적용하려면 클라이언트에서 트리거해야 하는 dhcp 임대를 다시 바인딩하는 방식으로 dnsmasq도 다시 로드하는지 지금은 알 수 없습니다.

nslookup을 사용하여 DNS 서버에 직접 쿼리할 때 DNS 서버에서 tcpdumping을 시도해 보셨나요? 요청이 도착했나요? 이것은 문제가 실제로 openwrt 상자에 있는지 확인하는 첫 번째 지침이 될 것입니다...

dnsmasq가 일관되게 서비스 요청을 수행할 수 있는 방법을 찾으면 알려 주시기 바랍니다. 이로 인해 상황이 매우 불안정해집니다.

/etc/dnsmasq.conf를 전혀 편집할 수 있는지는 모르겠지만 마음대로 사용할 수 있는 옵션이 많이 있습니다. 나는 전체 Linux Boxen에서 dnsmasq를 몇 번 사용했고 항상 내 필요에 맞게 구성할 수 있었지만 openwrt에서는 다음과 같기 때문에 조금 다른 것 같습니다..

아래의 해당 섹션도 확인하세요(보조 DNS). http://wiki.openwrt.org/doc/howto/dhcp.dnsmasq#add_a_secondary_dns

답변2

밑줄 친 옵션이 정확합니다.

option dns_search 'my.local.domain'

관련 정보