大前提 ルータの設定(IPフィルタ等)はすでに終わっている。 一通りDNS(BIND9)が設定できる。 FreeBSDのカーネルが作成できる。 設定を外部から確認するためにsshが使えるマシンか別回線を用意できる。 主な機材 master DNS server (FreeBSD 4系 P3-800MHz) 外部にハウジングして稼動中 slave DNS server (FreeBSD 7系 P3-866MHz) NAT配下のプライベートマシン local DNS server (Windows 2000 server SP4 C2Q-2.4GHz) 元default gatewayのマシン クライアントPC(Windows XP Pro SP2 C2Q-2.4GHz)SSH作業マシン NTT-ME製 ISDNルータ MN128-SOHO SL10(フレッツISDN、固定IP1個契約) BUFFALO製 無線BBルータ WHR-HP-G(フレッツADSL専用線、動的IP契約) Corega製 ギガビットスイッチングハブ CG-SW08GTV2 割り当てIP master DNS (203.141.151.2 lemon.akane.ws) slave DNS (192.168.2.31 minerva.peach.ne.jp.private) local DNS server (192.168.2.30 athena.peach.ne.jp.private) クライアントPC (192.168.2.20 artemis.peach.ne.jp.private) 固定IP 203.141.134.114 MN128 (192.168.2.3 isdn-gw.peach.ne.jp.private) 動的グローバルIP WHR-HP-G (192.168.2.5 adsl-gw.peach.ne.jp.private) LAN系はIP再割り当てを実行しました。 WAN系はWHR2-G54(192.168.2.4 ADSL電話共有)があったけど解約。近々Bフレッツ固定IPにする予定。 +-- WHR-HP == ADSLモデム == ADSL専用回線 (これがデフォルトの経路) |+- WHR2-G54 == 未接続 ||+ local DNS ||| GbE SW-HUB ||| ||+ WinXP |+- slave DNS +- MN128 == ISDN回線(ネームサーバ用の経路) LAN内は192.168.2.0/24を利用 ドメイン利用までの手順 予め、マスターサーバでbindの設定を行う。 稼動したマスターサーバを上位ドメインに登録する。 (今回はpeach.ne.jpなのでJPRSへのns1.peach.ne.jp登録) スレーブサーバを設定して稼動させる。 固定IPの53番ポートをスレーブサーバ(192.168.2.31)に振り向ける。 (MN128でのNAT設定とIPフィルタ設定) 稼動したスレーブサーバを上位ドメインに登録する。 (今回はpeach.ne.jpなのでJPRSへのns2.peach.ne.jp登録) ドメインの確認 マスター側から lemon$ dig @ns1.peach.ne.jp peach.ne.jp soa lemon$ dig @ns2.peach.ne.jp peach.ne.jp soa スレーブ側から minerva$ dig @ns1.peach.ne.jp peach.ne.jp axfr minerva$ dig @ns1.peach.ne.jp peach.ne.jp soa minerva$ dig @192.168.2.31 peach.ne.jp soa WinXP(クライアント)から C:\>nslookup -q=soa peach.ne.jp
補足 このページを作成した時点のBINDバージョンは9.4.1-P1です。 スレーブへのゾーン転送にはTCP53ポートが利用されるので設定を忘れずに。 sshの接続制限は /etc/hosts.allow で行える。 ipfwはデフォルトが 65535 deny ip from any to any で遮断されるので リモートから操作する場合はsshのセッションが切られないように注意する。 うかつに ipfw flush や delete すると死にます(汗) 参考ページ:JPRS DNS に関連する技術情報
マスターサーバの主な設定 /etc/named/named.conf acl my_nameservers { 203.141.151.2; /* lemon.akane.ws (ns1.peach.ne.jp) */ 203.141.134.114; /* minerva.peach.ne.jp (ns2.peach.ne.jp) */ }; options { . . . listen-on { 203.141.151.2; }; allow-transfer { localhost; my_nameservers; }; allow-query { any; }; recursion yes; . . . }; zone "peach.ne.jp" { type master; file "z/peach.ne.jp"; }; /etc/named/z/peach.ne.jp $TTL 24H @ IN SOA ns1.peach.ne.jp. root.peach.ne.jp. ( 200709298 ; Serial 60M ; Refresh 30M ; Retry 2W ; Expire 30M ) ; Minimum IN NS ns1.peach.ne.jp. IN NS ns2.peach.ne.jp. IN MX 10 mx.peach.ne.jp. IN A 203.141.151.2 ns1 IN A 203.141.151.2 ns2 IN A 203.141.134.114 minerva IN A 203.141.134.114 mx IN A 203.141.151.2 www IN A 203.141.151.2
スレーブサーバの主な設定(SSH、DNS、NTP以外は許可していない) kernel config に以下を追加してipfwの転送を有効にする options IPFIREWALL #firewall options IPFIREWALL_VERBOSE #enable logging to syslogd(8) options IPFIREWALL_VERBOSE_LIMIT=100 #limit verbosity options IPFIREWALL_FORWARD #packet destination changes /etc/rc.conf defaultrouter="192.168.2.5" hostname="minerva.peach.ne.jp.private" ifconfig_nge0="inet 192.168.2.31 netmask 255.255.255.0" sshd_enable="YES" firewall_enable="YES" firewall_type="/etc/ipfw.conf" /etc/ipfw.conf # allow loop back add 100 allow ip from any to any via lo0 # deny IP fragments add 110 deny ip from any to any frag # # DNS packet to 192.168.2.3 add 1000 allow udp from any to me 53 in add 1010 allow udp from 203.141.151.2 53 to me in add 1020 fwd 192.168.2.3 udp from me 53 to any out add 1030 fwd 192.168.2.3 udp from me to 203.141.151.2 53 out add 1100 allow tcp from any to me 53 in add 1110 allow tcp from 203.141.151.2 53 to me in add 1120 fwd 192.168.2.3 tcp from me 53 to any out add 1130 fwd 192.168.2.3 tcp from me to 203.141.151.2 53 out # # allow TCP if succeeded add 2000 allow tcp from any to any established # allow ssh connections add 2010 allow tcp from any to me 22 setup # allow outgoing TCP connections add 2020 allow tcp from me to any setup # deny other packets add 2999 deny tcp from any to any setup # # NTP packet add 3000 allow udp from me to any 123 keep-state # /etc/hosts.allow ALL : localhost 127.0.0.1 : allow sshd: 127.0.0.1 192.168.2.0/255.255.255.0 : allow snmpd: 127.0.0.1 192.168.2.31 : allow sendmail : localhost : allow sendmail : ALL : allow ALL : ALL : deny /var/named/etc/named.conf acl my_nameservers { 203.141.151.2; /* lemon.akane.ws (ns1.peach.ne.jp) */ 203.141.134.114; /* minerva.peach.ne.jp (ns2.peach.ne.jp) */ }; options { . . . listen-on { 192.168.2.31; }; forwarders { 203.141.151.2; }; allow-transfer { localhost; my_nameservers; }; allow-query { any; }; recursion yes; allow-recursion { localnets; localhost; my_nameservers; }; allow-query-cache { localnets; localhost; my_nameservers; }; . . . }; zone "peach.ne.jp" { type slave; file "slave/peach.ne.jp"; masters { 203.141.151.2; }; }; ping/tracerouteを許可する場合は以下を追加する /etc/ipfw.conf # allow icmp packets add 120 allow icmp from any to any out icmptype 8 add 130 allow icmp from any to any in icmptype 0,3,11