夜明け前の最も暗いとき

技術的なやったことをメモするブログ

CiscoルータでOCNのIPoEを使ってみる (DNS設定編)

前回、OCNのIPoEの設定を実施しました。今回はDNSを設定します。というのも、IPv6パススルーを使うとDNSがRAアドバタイズとDHCPv6によって通知されるため、自動的にISPDNSサーバとなってしまいます。LAN内に自前のサーバがある都合上、DNS(Proxy)サーバを用いてIPv4で名前解決をできるようにします。

OCNのDNSサーバではIPv4からの問い合わせはIPv6のAAAAレコードを返しません(AAAAフィルタリング)。

[jinglan@localserver]$ nslookup -type=a www.google.com 192.168.11.1 
Server:         192.168.11.1
Address:        192.168.11.1#53

Non-authoritative answer:
Name:   www.google.com
Address: 172.217.25.196

[jinglan@localserver]$ nslookup -type=aaaa www.google.com 192.168.11.1
Server:         192.168.11.1
Address:        192.168.11.1#53

Non-authoritative answer:
*** Can't find www.google.com: No answer

Authoritative answers can be found from:

[jinglan@localserver]$ 

そのため、IPv4IPv6に対応したDNSキャッシュサーバを立て、IPv4の問い合わせに対してAAAAレコードも返せるようにします。

まずは、CentOSサーバにdnsmasqをインストールします。

[jinglan@localhost ~]$ sudo yum install dnsmasq

dnsmasqは以下のように設定しました。DHCPCiscoルータがするので今回は使いません。

[jinglan@localhost ~]$ cat /etc/dnsmasq.conf
# Configuration file for dnsmasq.
domain-needed
bogus-priv
resolv-file=/etc/resolv.conf
local=/domain.local/

interface=eth0
no-dhcp-interface=eth0

expand-hosts
cache-size=500

[jinglan@localhost ~]$
[jinglan@localhost ~]$ sudo systemctl restart dnsmasq

また、LAN内のサーバをhostsファイルに記述しておきます。

[jinglan@localhost ~]$ cat /etc/hosts
192.168.11.9 svr.domain.local localserver
192.168.11.11 dns0.domain.local dns-server

IPアドレス、ホスト名、別名という並びで記述します。

次に、ファイアウォールの設定を変更します。

[jinglan@localhost ~]$ sudo firewall-cmd --list-all --zone=public --permanent
public
  target: default
  icmp-block-inversion: no
  interfaces: 
  sources: 
  services: ssh dhcpv6-client
  ports: 
  protocols: 
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 

[jinglan@localhost ~]$ sudo firewall-cmd --add-service=dns --zone=public --permanent
success
[jinglan@localhost ~]$ sudo firewall-cmd --reload
success

別ホストから名前解決ができるかテストします。

[jinglan@localserver]$ nslookup -type=a www.google.com 192.168.11.11
Server:         192.168.11.11
Address:        192.168.11.11#53

Non-authoritative answer:
Name:   www.google.com
Address: 172.217.25.196

[jinglan@localserver]$ nslookup -type=aaaa www.google.com 192.168.11.11
Server:         192.168.11.11
Address:        192.168.11.11#53

Non-authoritative answer:
www.google.com  has AAAA address 2404:6800:4004:818::2004

Authoritative answers can be found from:

[jinglan@localserver]$

IPv4でAAAAレコード問い合わせができています。DHCOサーバからDNSサーバのアドレスを配布するようにします。

ip dhcp pool DHCPPOOL
 network 192.168.11.0 255.255.255.0
 dns-server 192.168.11.11
 default-router 192.168.11.1
 lease 2

実際にはクライアント側でDHCPv6を無効にすることが必要ですが、IPv4で両方の名前解決ができるようになりました。 IPv6で通信しているかどうかはブラウザで確認できます。Firefoxのアドレスバーにabout:networkingを入力するとDNS情報を見ることができます。 f:id:jianlan:20181227212544p:plain YoutubeGoogleなどのIPv6に対応しているサイトでIPv6アドレスが確認できればOKです。