2.15. DNSの設定

プロキシDNSおよび、DNSリゾルバ機能をサポートしています。

プロキシDNSは、クライアント端末からの名前解決要求をルータが中継して代理応答する機能で、UDPとTCPに対応しています。 DNSサーバーへの問い合わせはUDPとなります。 512byteを超える応答パケットを中継可能です。

2.15.1. プロキシDNSの設定

../_images/16_dns1.svg

図 2.15.1 プロキシDNSの構成

以下にプロキシDNS登録のための設定および基本的な動作を説明します。

  • グローバルコンフィグモード

    項目

    説明

    proxy-dns server

    DNSサーバーのアドレス指定と優先度設定

    proxy-dns interface

    PPP/DHCPで取得したDNSサーバーの優先度設定

    proxy-dns ip/ipv6 enable

    プロキシDNSの有効設定

    proxy-dns ip/ipv6 max-sessions

    最大セッション数の設定

    proxy-dns ip/ipv6 query-interval

    DNS要求パケット送信間隔の設定

    proxy-dns ip/ipv6 query-response

    DNS応答パケット待ち時間の設定

    proxy-dns ip/ipv6 query-retries

    DNS要求パケット再送回数

    proxy-dns ip/ipv6 access-list

    DNSリゾルバのアクセス制限

    proxy-dns ip/ipv6 request

    DNS要求パケット転送方法の設定

  • 表示コマンド

    項目

    説明

    show proxy-dns

    プロキシDNS設定状態の表示

    リスト 2.15.1 設定例
    プロキシDNSとDHCPを組み合わせた設定
    
    ip dhcp profile ge0.0
      assignable-range 192.168.0.1 192.168.0.10
      dns-server 192.168.0.254
    !
    interface GigaEthernet0.0
      ip address 192.168.0.254/24
      ip dhcp enable
      ip dhcp binding ge0.0
      no shutdown
    !
    interface GigaEthernet1.0
      ip address dhcp receive-default
      proxy-dns ip enable
      no shutdown
    

2.15.1.1. DNSサーバーの優先度の設定

複数のサーバーを登録した場合に優先度を設定することができます。 優先度は、固定設定ではサーバー単位、動的設定では取得するインタフェース単位に設定することができ、数値の大きい方を優先します。

同じ場合は以下の順で優先されます。

  • 固定的に登録したサーバーは動的に取得したサーバーより優先されます

  • 先に設定(取得)したサーバーが優先されます。

    リスト 2.15.2 設定例
    proxy-dns server 172.16.1.10 priority 50
    proxy-dns server 172.16.1.20 priority 40
    proxy-dns interface GigaEthernet0.0 priority 60
    proxy-dns interface GigaEthernet1.0 ignore
    
    この場合の優先度は以下のとおりとなります。
      (1)GigaEthernet0.0 から取得したDNSサーバー
      (2)172.16.1.10
      (3)172.16.1.20s
    

IPv4リゾルバからの要求、またはIPv6リゾルバからの要求を、IPv4サーバー、IPv6サーバーどちらのサーバーにもプロキシすることができます。 IPv4サーバー、IPv6サーバーが混在している場合でも、サーバーの優先度にしたがって問い合わせを行います。 同じ優先度の場合は、リゾルバと同じプロトコルのサーバーが優先されます。

2.15.1.2. DNSサーバーへの要求/応答の設定

DNSサーバーへの要求の応答時間,再送間隔,再送回数を設定することができます。

../_images/16_dns2.svg

図 2.15.2 DNSのシーケンス

リスト 2.15.3 設定例
送信回数3回,送信間隔2秒,応答時間20秒に設定

proxy-dns ip query-response 20
proxy-dns ip query-retries 3
proxy-dns ip query-interval 2
proxy-dns server 172.16.1.10

再送間隔の時間にDNSサーバーから応答がない場合再送を行います。 複数のDNSサーバーが存在する場合は、次のDNSサーバーへ要求を送信します。 設定した再送回数の送信を行い、次の再送周期を過ぎても応答がない場合、タイムアウトとなります。

応答時間を設定した場合は、最初の送信から設定した応答時間を過ぎてもDNSサーバーから応答がない場合は、再送回数、再送間隔の時間が残っていてもタイムアウトとなります。 先に再送によるタイムアウトが発生した場合は、その時点でタイムアウトとなり、応答時間は無視されます。

DNSサーバーからFailure受信時、複数のDNSサーバーが存在する場合は、次の再送周期に次のDNSサーバーに送信を行います。Failure受信時には再送間隔を待たずに次のDNSサーバーへ送信を行います。

2.15.1.3. DNSリゾルバのアクセス制限

プロキシするDNSリゾルバのアクセス制限を行うことができます。

リスト 2.15.4 設定例
192.168.0.0/24からの要求のみ許可する

ip access-list resolver-acl permit ip src 192.168.0.0/24 dest any
!
proxy-dns ip access-lst resolver-acl
proxy-dns server 10.0.0.1
interface GigaEthernet1.0
  proxy-dns ip enable

2.15.1.4. DNS問合せ出力指定

DNSリゾルバ、Proxy-DNSともにIPv4のDNSサーバーへの問合せを指定したインタフェースから送信できます。 インタフェースを指定する場合は「ip name-server」、「proxy-dns server」コマンドにオプションをつけて設定を行ってください。

また、IPCP/DHCPで動的に取得したDNSサーバーへの問合せは取得したインタフェースから送信されます(Proxy-DNSも同様)。

2.15.1.5. インタフェース単位のProxy-DNSサーバー有効化設定

インタフェースコンフィグモードにenableコマンドを設定することで特定のインタフェースでのみ機能を有効にすることができます。

意図しないインタフェースへの問合せを防止することが可能です。

2.15.2. DNSリゾルバの設定

DNSリゾルバは、DNSサーバーへDNS情報取得要求を出し、登録されているサーバーからDNS情報を取得する機能です。IPv4, IPv6ともに利用可能です。

DNSリゾルバは、ping, ping6, traceroute, traceroute6, nslookup で使用することができます。

EDNS0と512byte以上の応答をサポートしています。 TCPでの問合せはサポートしておりません。

../_images/16_dns3.svg

図 2.15.3 DNSリゾルバの構成

DNSサーバーはDHCPv4やIPCP、DHCPv6-PDで自動取得されたものを使用しますが、自動で取得しない場合は以下の設定を行います。

DNSサーバーを複数設定している場合、設定順に問い合わせを行います。

DNSの問い合わせ順番は以下となります。

  • IPv4優先(dns transport-priority ip)の場合【デフォルト設定】

    • 固定で設定したIPv4のDNSサーバー(登録順)

    • 固定で設定したIPv6のDNSサーバー(登録順)

    • DHCPv4、IPCPで学習したDNSサーバー(学習順)

    • DHCPv6-PDで学習したDNSサーバー(学習順)

  • IPv6優先(dns transport-priority ipv6)の場合

    • 固定で設定したIPv6のDNSサーバー(登録順)

    • 固定で設定したIPv4のDNSサーバー(登録順)

    • DHCPv6-PD、IPCPで学習したDNSサーバー(学習順)

    • DHCPv4、IPCPで学習したDNSサーバー(学習順)

  • グローバルコンフィグモード

    項目

    説明

    ip/ipv6 name-server

    DNSのIPv4/IPv6アドレスを固定的に設定

    dns transport-priority

    DNS問い合わせIPv4, IPv6優先設定

    リスト 2.15.5 設定例
    ip name-server 172.16.1.10
    ip name-server 172.16.1.20 GigaEthernet1.0
    !
    interface GigaEthernet0.0
      ip address 192.168.0.254/24
      no shutdown
    !
    interface GigaEthernet1.0
      ip address 172.16.1.1/24
      no shutdown
    

2.15.3. FQDN指定対応

指定したFQDNの名前解決を行い、対応するアドレスを使用することができます。

FQDNに対して定期的に名前解決を行い、対応するアドレス情報の更新を行います。

対応している機能は以下になります。

  • IKEv1/IPsec

    • ike policyのピア指定

    • ipsec auto-mapのピア指定

  • IKEv2

    • IKEv2のピア指定(ikev2 peer-fqdn-ipv4/ikev2 peer-fqdn-ipv6)

  • Tunnel

    • 宛先アドレス

各機能から要求時、および定期的にFQDNの名前解決を行います。 名前解決した情報はFQDNデータベースに記録されます。 名前解決が一度も成功していない状態では、FQDNに対応したアドレスが分からないため、FQDNを使用した通信等を行うことができません。 一度名前解決が成功した後は、定期的な解決に失敗した場合でも、解決済みのアドレスを使用し続けます。

定期的な更新については、更新周期とリトライ回数、タイムアウト時間を設定できます。1度も名前解決が成功していない時の名前解決周期と1度名前解決が成功した後の名前解決周期は別な値を設定することができます。 複数サーバー設定時は、タイムアウト時間をサーバー台数分で等分した間隔で名前解決を行います。

設定は以下のとおりです。

  • グローバルコンフィグモード

    項目

    説明

    dns fqdn-database initial-interval

    アドレス更新周期(名前解決前)

    dns fqdn-database update-interval

    アドレス更新周期(名前解決後)

    dns fqdn-database resolver retry

    名前解決のリトライ回数

    dns fqdn-database resolver timeout

    名前解決のタイムアウト時間

  • 表示コマンド

    項目

    説明

    show dns fqdn-database

    FQDNデータベースの表示

    リスト 2.15.6 設定例1
    一度も名前解決していない時の更新周期を50秒、
    名前解決後の更新周期を24時間(86400秒)に設定
    
    dns fqdn-database initial-interval 50
    dns fqdn-database update-interval 86400
    
    リスト 2.15.7 設定例2
    名前解決できない場合、20秒間隔で3回までリトライを行う
    (初回を含めて4回送信を行います)
    
    dns fqdn-database resolver retry count 3
    dns fqdn-database resolver timeout 20
    
    上記設定でサーバーが2台の場合、10秒(20秒の1/2)間応答がない場合、
    次のサーバーに送信します。
    

2.15.4. DNSサーバーアクセス振り分け

指定したドメインの名前解決サーバーのアクセスを指定することができます。

複数のISPを使い分ける場合などに指定したドメインを利用したいISPのDNSサーバーへのアクセスの振り分けを行います。

../_images/16_dns4.svg

図 2.15.4 DNSサーバーアクセス振り分けの構成

リスト 2.15.8 設定例
example.comドメインへのDNS問い合わせをISP2のDNSサーバーへ、それ以外のDNS問い合わせをISP1のDNSサーバーへと行う。

ip route default GigaEthernet0.0
ip route 172.16.1.0/24 GigaEthernet1.0
proxy-dns interface GigaEthernet1.0 url-list isp2 priority 200
!
url-list isp2 permit domain *example.com
!
ip dhcp profile gigaethernet2.0
  assignable-range 192.168.0.1 192.168.0.10
  dns-server 192.168.0.254
!
interface GigaEthernet0.0
  ip address 10.1.1.1/24
  no shutdown
!
interface GigaEthernet1.0
  ip address 172.16.1.1/24
  no shutdown
!
interface GigaEthernet2.0
  ip address 192.168.0.254/24
  ip dhcp enable
  ip dhcp binding gigaethernet2.0
  proxy-dns ip enable
  no shutdown

2.15.5. ローカルDNSサーバー

クライアント端末から指定したドメインの名前解決要求を、外部サーバーにアクセスする代わりにルータが指定したIPアドレスレコードで名前解決応答を行うことができます。

ルータが名前解決要求を受信し、ルータが応答するか外部サーバーに問い合わせるかを振り分けるため、プロキシDNSの併用が必要となります。

リスト 2.15.9 設定例
example.comドメインへのDNS問い合わせをルータがAレコード(192.168.0.200)で応答し、
それ以外のDNS問い合わせを外部DNSサーバーへ行う。

ip route default GigaEthernet0.0
!
dns host example.com ip 192.168.0.200
!
ip dhcp profile gigaethernet2.0
  assignable-range 192.168.0.1 192.168.0.10
  dns-server 192.168.0.254
!
interface GigaEthernet0.0
  ip address 10.1.1.1/24
  no shutdown
!
interface GigaEthernet2.0
  ip address 192.168.0.254/24
  ip dhcp enable
  ip dhcp binding gigaethernet2.0
  proxy-dns ip enable
  no shutdown

注釈

  • IPv4アドレスでの登録レコードは、名前解決要求のQuery TypeがAまたはANYの場合に適用します。

  • IPv6アドレスでの登録レコードは、名前解決要求のQuery TypeがAAAAまたはANYの場合に適用します。 それ以外のQuery Typeの場合は、外部サーバーへ問合せを行います。