2012年4月1日

dns ipv6設定備忘錄

網路上有很多文章都在寫dns的正解與反解,卻是很多人都看不懂,或者做不出來。自己也摸索很久,把一些自己認為該記的記下來和自己曾犯的錯誤,以免日後自己再次犯錯。
1.正解:從英文->數字
2.反解:從數字->英文

在linux會用到的指令
nslookup
dig
ifconfig

你要弄懂的
1.ip的意思:在ipv4時它是由4組數字組成,每個數字不會超過255,在ipv6時則變成網段+mac,每組由4個文字(可以是數字和英文),中間用:分開
2.你自己管的網段在哪裡:以目前ipv4來說大校多數是一個C網段,也就是說前3組數字是你不能動的,第4組才是你可以設定的,而ipv6時則是上面給你的網段是不能動的,後面則是接mac或是你要自己設定(現在好像是L3 switch會自動發ipv6的ip,而發的原則多數是用網段+mac)

例如:我現在這台電腦的ipv4和ipv6是什麼,可以用ifconfig來看
eth0      Link encap:Ethernet  HWaddr f2:2c:08:0a:b7:83 
          inet addr:163.20.108.6  Bcast:163.20.108.255  Mask:255.255.255.0
          inet6 addr: 2001:288:2263:5:f02c:8ff:fe0a:b783/64 Scope:Global
          inet6 addr: fe80::f02c:8ff:fe0a:b783/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:21974328 errors:0 dropped:513198 overruns:0 frame:0
          TX packets:27783475 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:10528998034 (10.5 GB)  TX bytes:39513685412 (39.5 GB)
          f2:2c:08:0a:b7:83是網卡的mac。163.20.108.6是ipv4的ip,2001:288:2263:5:f02c:8ff:fe0a:b783是ipv6,你有沒有注意到ipv6的後半段是mac。

接下來要知道要設定dns要用到哪些東西?
1.安裝套件,在ubuntu指令是
sudo apt-get update
sudo apt-get install bind9  

2.要設定哪些檔案,以ubuntu而言,在/etc下有一個資料夾bind9,這裡管理所有設定。很多文件都會叫你去設定named.conf,然而你打開文件卻只看到短短幾個字。

// This is the primary configuration file for the BIND DNS server named.
//
// Please read /usr/share/doc/bind9/README.Debian.gz for information on the
// structure of BIND configuration files in Debian, *BEFORE* you customize
// this configuration file.
//
// If you are just adding zones, please do that in /etc/bind/named.conf.local

include "/etc/bind/named.conf.options";
include "/etc/bind/named.conf.local";
include "/etc/bind/named.conf.default-zones";
include "/etc/bind/named.conf.logging";
很多人到這裡就不知所錯了,稍微注意一下,有沒有看到include這幾個字?會寫程式的人就知道原來它去呼叫幾個檔案(/etc/bind/named.conf.options,/etc/bind/named.conf.local,/etc/bind/named.conf.default-zones,/etc/bind/named.conf.logging),再仔細看你會用到的是/etc/bind/named.conf.local這個檔案,如果你不喜歡它可以改,這也就是為什麼有人用他自己方法設定也可以,因為在這裡改了。

接下來 /etc/bind/named.conf.local這個檔案要記些什麼:
1.檔然是zone,就是你的整個dns記錄表,從最上層到自這一層
2.localhost(這個地方有時可以省略,因為系統常會自動幫你設定,因為localhost就是127.0.0.1 和::1 我看過有些系統是安裝起來時就被include進來)
3.你的正解設定和反解設定。
/etc/bind/named.conf.local裡我記下重要地方,多數設定可以抄網路文章

//163.20.108網段的反解設定
zone "108.20.163.in-addr.arpa" {
     type master;
     file "/etc/bind/zones/rev.108.20.163.in-addr.arpa";
};

//wdps.ntpc.edu.tw網段正解設定
zone "wdps.ntpc.edu.tw" {
        type master;
        file "/etc/bind/zones/wdps.ntpc.edu.tw.db";
        };

//公文管理轉址新北市公文管理設定
zone "doc-manage.tpc.gov.tw" {
    type forward;
    forwarders { 203.72.153.5; 172.18.1.1; };
};

// ::1 的反解檔
zone "1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa."{
     type master;
     file "/etc/bind/zones/localhost.rev";
};


//2001:288:2263/48
//  ipv6的反解檔
zone "3.6.2.2.8.8.2.0.1.0.0.2.ip6.arpa" {
     type master;
     file "/etc/bind/zones/200102882263.rev";
};
比較討厭的是反解,它不是直接用數字而是要把數字相反過來,例如163.20.108的反解要寫成108.20.163.in-addr.arpa,而ipv6就更難懂了,但做法一樣把網段反過來,2001:288:2263就變成了3.6.2.2.8.8.2.0.1.0.0.2.ip6.arpa
再來有沒有看到每一段都有一個file ".......";這就是告訴電腦某一個網段設定你去找file "..."中的檔案。
所以你把/etc/bind/named.conf.local設定好了後還要去建構裡面的每個file ""中的檔案。

以正解為例,我的是/etc/bind/zones/wdps.ntpc.edu.tw.db,裡面內容大致是
@      IN      SOA     ntpdc.wdps.ntpc.edu.tw. u10.wdps.ntpc.edu.tw. (
;// Do not modify the following lines!
                                                        2006081401
                                                        28800
                                                        3600
                                                        604800
                                                        38400
 )

@      IN      NS              ntpdc.wdps.ntpc.edu.tw.
mail.wdps.ntpc.edu.tw.      IN      MX     40       mail.wdps.ntpc.edu.tw.
wdps.ntpc.edu.tw.    IN    MX    50    mail.wdps.ntpc.edu.tw.
ntpdc              IN      A       163.20.108.1
media        IN    A    163.20.108.6
...
紅色字的地方要注意,這是你向上層註冊時用的主機名稱,很多單位在經歷多年多任資訊組,這個名稱都不見了,文件也未留下,個人遇過,都設定沒問題,但解析起來就是怪怪的,因為當上層要問你這層時會用它的設定,也就是紅色字那台,而你又沒設定這一台,解析起來就怪怪的。
A是ipv4主機
AAAA是ipv6主機
mx是郵件
CNAME是別名


反解設定
@ IN SOA ntpdc.wdps.ntpc.edu.tw. sysadm.dns.wdps.ntpc.edu.tw. (
                        2011040701;
                        28800;
                        604800;
                        604800;
                        86400
)
@                    IN    NS     ntpdc.wdps.ntpc.edu.tw.
1        IN      PTR      ntpdc.wdps.ntpc.edu.tw.
......
反解就是把ip對應英文注意後面最好有.結束。

ipv6反解
$ORIGIN 3.6.2.2.8.8.2.0.1.0.0.2.ip6.arpa.
@ IN SOA dns.wdps.ntpc.edu.tw. root.dns.wdps.ntpc.edu.tw. (
                        2006081401;
                        28800;
                        604800;
                        604800;
                        86400;
)

@                    IN    NS     ntpdc.wdps.ntpc.edu.tw.
6.d.7.5.a.2.e.f.f.f.9.2.c.0.2.0.5.0.0.0.3.6.2.2.8.8.2.0.1.0.0.2.ip6.arpa.    IN    PTR    www.wdps.ntpc.edu.tw.
......

$ORIGIN 3.6.2.2.8.8.2.0.1.0.0.2.ip6.arpa.這一段是什麼,紅色就是你的網段反過來寫的。
我怎麼知道是"6.d.7.5.a.2.e.f.f.f.9.2.c.0.2.0.5.0.0.0.3.6.2.2.8.8.2.0.1.0.0.2.ip6.arpa."這一段呢?要慢慢反寫也可以,我發現一個方法可以快速知道,就是先把正解寫好,用nslookup指令查詢
nslookup
>set type=aaaa
>www.wdps.ntpc.edu.tw
 這個時候電腦會告訴你www.wdps.ntpc.edu.tw的ipv6位址是2001:288:2263:5:20c:29ff:fe2a:57d6,你再問電腦2001:288:2263:5:20c:29ff:fe2a:57d6是誰
>2001:288:2263:5:20c:29ff:fe2a:57d6
電腦會回答你"6.d.7.5.a.2.e.f.f.f.9.2.c.0.2.0.5.0.0.0.3.6.2.2.8.8.2.0.1.0.0.2.ip6.arpa"查不到,而這一段就是你要留下來的。

張貼留言