動的IPアドレスを持つコンピューターのDNSを登録する必要がある場合があります。 これを行う簡単な方法は、最近のトピックで説明した
dyndnsタイプのサービスを使用
することで、ドメインと動的IPを
バインドします 。 このアプローチは非常にうまく機能しない場合があります。 
      
        
        
        
      
    
      
        
        
        
      
     たとえば、私の状況では、プロバイダーがパブリックIPアドレスを変更する
ことがあります。 通常、これは数か月ごとに発生します。 また、自宅のコンピューターが再起動することはほとんどありません。 この間、以前に使用したdyndnsサービスは、「未使用」アカウントを無効にするために、非アクティブな通知を数回送信することができました。 手動で割り当てられたDNSゾーンへの切り替えも失敗します。これは、アドレスが変更される場合があるためです。 また、通常、ここで自宅のコンピューターにアクセスする必要があるときに、そのことを確認します。 
      
        
        
        
      
    
      
        
        
        
      
     説明した方法を実装するには、インターネット上のサーバーにDNSバインドサーバーが必要です。 また、コンピューターに割り当てるサブドメインであるドメインゾーン。  LinuxコンピューターをLinuxサーバーに接続するオプションについて説明します。 他のオペレーティングシステムを使用するには、マニュアルを読み、いくつかの手順を変更する必要があります。 
      
        
        
        
      
    
      
        
        
        
      
    
      
        
        
        
      
     だから: 
      
        
        
        
      
      1. server.orgドメインでbind9サーバーをインストールしました 
      
        
        
        
      
      2.ゾーンclient.server.org.zoneを作成します。 
      
        
        
        
      
    
      
        
        
        
      
     $ORIGIN . 
      
        
        
        
      
     $TTL 10 ; 10 seconds 
      
        
        
        
      
     client.server.net IN SOA ns1.server.net. hostmaster.server.net. ( 
      
        
        
        
      
     18 ; serial 
      
        
        
        
      
     10800 ; refresh (3 hours) 
      
        
        
        
      
     3600 ; retry (1 hour) 
      
        
        
        
      
     604800 ; expire (1 week) 
      
        
        
        
      
     10 ; minimum (10 seconds) 
      
        
        
        
      
     ) 
      
        
        
        
      
     $TTL 3600 ; 1 hour 
      
        
        
        
      
     NS ns1.server.net. 
      
        
        
        
      
     NS ns2.server.net. 
      
        
        
        
      
     MX 10 client.server.net.
      
      
        
        
        
      
    
        
        
        
      
      
        
        
        
      
    
     
      
        
        
        
      
     
      
        
        
        
      
     ここで、サーバーns1.server.netおよびns2.server.netはゾーンのDNSサーバーであり、client.server.netはホームコンピューターのアドレスです。 
      
        
        
        
      
    
      
        
        
        
      
      3.クライアントでキーを生成します。 
      
        
        
        
      
     client# cd /etc/namedb/keys 
      
        
        
        
      
     client# dnssec-keygen -b 512 -a HMAC-MD5 -v 2 -n HOST client.server.net.
      
      
        
        
        
      
    
        
        
        
      
      
        
        
        
      
    
     
      
        
        
        
      
     
      
        
        
        
      
      4.サーバー上にキーを持つファイルを作成します。 
      
        
        
        
      
     server# cd /var/named/chroot/etc 
      
        
        
        
      
     server# vim keys.conf :
      
      
        
        
        
      
    
        
        
        
      
      
        
        
        
      
    
     
      
        
        
        
      
     
      
        
        
        
      
     key client.server.net. { 
      
        
        
        
      
     algorithm "HMAC-MD5"; 
      
        
        
        
      
     secret "omr5O5so/tZB5XeGuBBf42rrRJRQZB8I9f+uIIxxei8qm7AVgNBprxtcU+FQMzBvU/Y+nyM2xbs/C8kF3eJQUA=="; 
      
        
        
        
      
     };
      
      
        
        
        
      
    
        
        
        
      
      
        
        
        
      
    
     
      
        
        
        
      
     
      
        
        
        
      
     この場合、対称キーが使用されますが、これは安全ではありません。誰かがサーバー上のキーを持つファイルにアクセスできる場合、そのキーを使用してゾーン内のデータを変更できます。 この場合、非対称キーを使用できます。 
      
        
        
        
      
    
      
        
        
        
      
     キーを使用してファイルにアクセス許可を設定します。 
      
        
        
        
      
     server# chmod 640 keys.conf 
      
        
        
        
      
     server# chown root:named keys.conf
      
      
        
        
        
      
    
        
        
        
      
      
        
        
        
      
    
     
      
        
        
        
      
     
      
        
        
        
      
      5.ゾーンをnamed.confに追加します。 
      
        
        
        
      
     include "/etc/keys.conf" 
      
        
        
        
      
     zone "client.server.net" { 
      
        
        
        
      
     type master; 
      
        
        
        
      
     file "zones/client.server.net"; 
      
        
        
        
      
     allow-update{ 
      
        
        
        
      
     key client.server.net; 
      
        
        
        
      
     }; 
      
        
        
        
      
     };
      
      
        
        
        
      
    
        
        
        
      
      
        
        
        
      
    
     
      
        
        
        
      
     
      
        
        
        
      
     ここでは、ゾーンデータの更新を許可するパラメーターを指定します。 一般に、マニュアルを読んだ後、特定のキーに対してゾーン内の1つのレコードのみを更新できるこのパラメーターのオプションを見つけることができます。 つまり、client1、client2などのサブドメインが登録されたゾーンを持つことができます キーkey1、key2などで認証されます。 
      
        
        
        
      
    
      
        
        
        
      
      6. DNSサーバーを再起動します。 
      
        
        
        
      
     server# /etc/init.d/named reload
      
      
        
        
        
      
    
        
        
        
      
      
        
        
        
      
    
     
      
        
        
        
      
     
      
        
        
        
      
      7.ゾーンデータを更新するクライアントでスクリプトを作成します。 
      
        
        
        
      
     #!/bin/bash 
      
        
        
        
      
     IFACE="wlan0" 
      
        
        
        
      
     TTL=3600 
      
        
        
        
      
     SERVER=ns1.example.com 
      
        
        
        
      
     HOSTNAME=foo.example.com 
      
        
        
        
      
     ZONE=example.com 
      
        
        
        
      
     KEYFILE=/root/ddns-keys/Kfoo.example.com.+157+12345.private 
      
        
        
        
      
     
      
        
        
        
      
     new_ip_address=`ifconfig $IFACE | grep "inet addr:" | awk '{print $2}' | awk -F ":" '{print $2}'` 
      
        
        
        
      
     new_ip_address=${new_ip_address/ /} 
      
        
        
        
      
     
      
        
        
        
      
     nsupdate -v -k $KEYFILE << EOF 
      
        
        
        
      
     server $SERVER 
      
        
        
        
      
     zone $ZONE 
      
        
        
        
      
     update delete $HOSTNAME A 
      
        
        
        
      
     update add $HOSTNAME $TTL A $new_ip_address 
      
        
        
        
      
     send 
      
        
        
        
      
     EOF
      
      
        
        
        
      
    
        
        
        
      
      
        
        
        
      
    
     
      
        
        
        
      
     
      
        
        
        
      
     スクリプトの最初に、対応するパラメーター、インターフェース、サーバーおよびゾーン名、キーのあるファイルの場所が記載されています。 
      
        
        
        
      
    
      
        
        
        
      
      8. DNSを変更するときに、アドレスの自動実行/自動変更を構成するためにのみ残ります。 
      
        
        
        
      
      NetworkManagerのスクリプトを使用してこれを行います。 
      
        
        
        
      
     ファイル/etc/NetworkManager/dispatcher.d/20-dyndns.shを作成します。 
      
        
        
        
      
     #!/bin/sh 
      
        
        
        
      
     
      
        
        
        
      
     iface=$1 
      
        
        
        
      
     state=$2 
      
        
        
        
      
     
      
        
        
        
      
     if [ "x$state" == "xup" ] ; then 
      
        
        
        
      
     /etc/namedb/ddns-update 
      
        
        
        
      
     elif [ "x$state" == "xdown" ]; then 
      
        
        
        
      
     true 
      
        
        
        
      
     fi
      
      
        
        
        
      
    
        
        
        
      
      
        
        
        
      
    
     
      
        
        
        
      
     
      
        
        
        
      
     実行可能にし、rootユーザーが所有します。 
      
        
        
        
      
    
      
        
        
        
      
     実行チェック使用。 
      
        
        
        
      
    
      
        
        
        
      
      Upd:動作しない場合は、ファイルclient.server.org.zoneが存在するフォルダーに書き込むための名前付き権限をサーバーにチェック(インストール)します 
      
        
        
        
      
      namedはclient.server.org.zone.jnlファイルを作成します 
      
        
        
        
      
    
      
        
        
        
      
     次の材料が使用されました。 
      
        
        
        
      
      http://www.freebsdwiki.net/index.php/BIND,_dynamic_DNS 
      
        
        
        
      
      http://blog.jasonantman.com/2010/04/bind9-dynamic-dns/ 
      
        
        
        
      
      http://www.oceanwave.com/technical-resources/unix-admin/nsupdate.html 
      
        
        
        
      
     指定されたキーはそこから取得されます。