2011年9月29日木曜日

BIND to Amazon Route 53 Conversion Tool

スズキです。

今さらですが、下記を試してみました。
BIND to Amazon Route 53 Conversion Tool

まずはPerlモジュールの準備です。(CentOS 6.0)

# yum -y install perl-CPAN
# cpan -i Net::DNS
# cpan -fi Net::DNS::ZoneFile
※Net::DNS::ZoneFileは強制インストールしています。

そして、実際にダウンロードして実行できるようにします。

# curl -OL http://awsmedia.s3.amazonaws.com/catalog/attachments/bindtoroute53.pl
# chmod 755 bindtoroute53.pl

変換対象のゾーンファイルは下記とします。

# cat suz-lab.com.zone 
$TTL  3600
@   IN  SOA    ns.suz-lab.com.  postmaster.suz-lab.com.  (
                 2011093001     ; Serial
                 3600           ; Refresh
                 900            ; Retry
                 3600000        ; Expire
                 3600           ; Minimum
               )
    IN  A      192.168.1.2
    IN  NS     ns.suz-lab.com.
    IN  MX 10  mx.suz-lab.com.
    IN  TXT    "v=spf1 ip4:192.168.1.2 mx ~all"
*   IN  MX 10  mx.suz-lab.com.
mx  IN  A      192.168.1.2
    IN  TXT    "v=spf1 a -all"
ns  IN  A      192.168.1.2

実際の変換は次の通りです。

# ./bindtoroute53.pl --ignore-origin-ns --ignore-soa --origin suz-lab.com < suz-lab.com.zone > suz-lab.com.xml
Ignoring '. 3600 IN SOA ns.suz-lab.com. postmaster.suz-lab.com. (
     2011093001 ; Serial
     3600 ; Refresh
     900 ; Retry
     3600000 ; Expire
     3600 ) ; Minimum TTL', --ignore-soa enabled.
Ignoring '. 3600 IN NS ns.suz-lab.com.', --ignore-origin-ns enabled.

変換後のXMLは下記となります。

# cat suz-lab.com.xml
<?xml version="1.0" encoding="UTF-8"?>
<ChangeResourceRecordSetsRequest xmlns="https://route53.amazonaws.com/doc/2010-10-01/">
 <ChangeBatch>
  <Comment>This change imports a zone file</Comment>
  <Changes>
   <Change>
    <Action>CREATE</Action>
     <ResourceRecordSet>
      <Name>mx.suz-lab.com.</Name>
      <Type>A</Type>
      <TTL>3600</TTL>
      <ResourceRecords>
       <ResourceRecord>
        <Value>192.168.1.2</Value>
       </ResourceRecord>
     </ResourceRecords>
    </ResourceRecordSet>
   </Change>
   <Change>
    <Action>CREATE</Action>
     <ResourceRecordSet>
      <Name>mx.suz-lab.com.</Name>
      <Type>TXT</Type>
      <TTL>3600</TTL>
      <ResourceRecords>
       <ResourceRecord>
        <Value>"v=spf1 a -all"</Value>
       </ResourceRecord>
     </ResourceRecords>
    </ResourceRecordSet>
   </Change>
   <Change>
    <Action>CREATE</Action>
     <ResourceRecordSet>
      <Name>ns.suz-lab.com.</Name>
      <Type>A</Type>
      <TTL>3600</TTL>
      <ResourceRecords>
       <ResourceRecord>
        <Value>192.168.1.2</Value>
       </ResourceRecord>
     </ResourceRecords>
    </ResourceRecordSet>
   </Change>
   <Change>
    <Action>CREATE</Action>
     <ResourceRecordSet>
      <Name>*.suz-lab.com.</Name>
      <Type>MX</Type>
      <TTL>3600</TTL>
      <ResourceRecords>
       <ResourceRecord>
        <Value>10 mx.suz-lab.com.</Value>
       </ResourceRecord>
     </ResourceRecords>
    </ResourceRecordSet>
   </Change>
   <Change>
    <Action>CREATE</Action>
     <ResourceRecordSet>
      <Name>suz-lab.com.</Name>
      <Type>MX</Type>
      <TTL>3600</TTL>
      <ResourceRecords>
       <ResourceRecord>
        <Value>10 mx.suz-lab.com.</Value>
       </ResourceRecord>
     </ResourceRecords>
    </ResourceRecordSet>
   </Change>
   <Change>
    <Action>CREATE</Action>
     <ResourceRecordSet>
      <Name>suz-lab.com.</Name>
      <Type>A</Type>
      <TTL>3600</TTL>
      <ResourceRecords>
       <ResourceRecord>
        <Value>192.168.1.2</Value>
       </ResourceRecord>
     </ResourceRecords>
    </ResourceRecordSet>
   </Change>
   <Change>
    <Action>CREATE</Action>
     <ResourceRecordSet>
      <Name>suz-lab.com.</Name>
      <Type>TXT</Type>
      <TTL>3600</TTL>
      <ResourceRecords>
       <ResourceRecord>
        <Value>"v=spf1 ip4:192.168.1.2 mx ~all"</Value>
       </ResourceRecord>
     </ResourceRecords>
    </ResourceRecordSet>
   </Change>
  </Changes>
 </ChangeBatch>
</ChangeResourceRecordSetsRequest>

実際の"Route 53"への反映は、これを"dnscurl.pl"などで登録することになります。

ブログ書かなきゃ...
--------
http://www.suz-lab.com

0 コメント: