聚會時間公告: 因應COSCUP 2011, Kalug 8月份休會一次

九月 23, 2012
» 輕量級的Dyndns update client inadyn

最近剛好換Server想幫只有動態IP的電腦裝個新的動態DNS(Dynamic DNS) Client來連線使用.
apt serarch一下跑一堆perl的package出來… 開機跑這個略嫌重口味了點.
後來找到一套binrary 只有28k的inadyn

# apt-get install inadyn
# cp /usr/share/doc/inadyn/examples/inadyn.conf /etc
# vim inadyn.conf

刪除掉example 1 
#  1.
#Some comment about inadyn cfg file
#--username test --password test --update_period 60000 
#    --alias test.homeip.net --alias my.second.domain
修改 example2:
--username yendewei # user
--password password
update_period 60000  # some other param without '--'
alias hods.dyndns.org
--background
--syslog

修改 /etc/rc.local 將下行加到 #!/bin/sh -e 以下, exit 0以上的位址

/usr/sbin/inadyn

之後開機就會自動執行了。
第一次用手動執行 

# /usr/sbin/inadyn

檢查看看有沒有更新dyndns的資料,如果沒有就再跑一次

# killall inadyn
# /usr/sbin/inadyn

八月 20, 2012
» DNS Server on Debian 6

由於前工作的關係讓凍仁對 DNS 有了更進一步的了解,也請了 .tw 的網域名稱(Domain Name)來練習。原先是直接使用 FreeDNS 來代管,但隨著測試環境的增加預設的 30 筆紀錄(Record)已早不足,索性就開個子網域自己架 DNS Server 自己管了。

1. 環境介紹

  • 網域名稱
    • 網域名稱: drx.tw。
    • 子網域名稱: test.drx.tw。
  • DNS Server
    • 作業系統: Debian 6 (Squeeze)。
    • 套件: bind9 (DNS Server)

2. 上層 DNS 設定

查詢 test.drx.tw 的 DNS 紀錄時,因有 NS 紀錄,故主要參照 dns.test.drx.tw 此台 DNS Server,且 dns.test.drx.tw 必須為 A 或 AAA 紀錄;若設定顛倒則下層 DNS Server 無法提交紀錄給上層,也就是只有手動在本機加入 1.2.3.4 的 DNS Server 才可使用。

設定 test.drx.tw 的 NS 紀錄為 ns.test.drx.tw。

設定 ns.test.drx.tw 的 A 紀錄為 1.2.3.4。

3. 伺服器設定

3.1. 安裝

3.1.1. 尋找 bind 於 Debian 上的套件名稱。
[ jonny@squeeze ~ ]
$ aptitude search bind [Enter]
p   bind9     - Internet Domain Name Server

3.1.2. 安裝 bind。
[ jonny@squeeze ~ ]
$ sudo aptitude install bind9 [Enter]

3.2. 設定

3.2.1. 開始編輯前建議先備份原始的設定檔,以免搞砸。
[ jonny@squeeze ~ ]
$ sudo cp /etc/bind/named.conf.local /etc/bind/named.conf.local.ori [Enter]

[ jonny@squeeze ~ ]
$ sudo cp /etc/bind/named.conf.options /etc/bind/named.conf.options.ori [Enter]

3.2.2. 正反解設定: 於 named.conf.local 定義管轄內的區域(Zone)名稱及相關檔案。
[ jonny@squeeze ~ ]
$ sudo vi /etc/bind/named.conf.local [Enter]
 1 //
2 // Do any local configuration here
3 //
4
5 // Consider adding the 1918 zones here, if they are not used in your
6 // organization
7 //include "/etc/bind/zones.rfc1918";
8
9 //新增正解區域(Zone)。
10 zone "test.drx.tw" {
11 type master;
12 file "/etc/bind/db.test.drx.tw";
13 };
14
15 //新增反解區域(Zone)。
16 zone "4.3.2.1.in-addr.arpa" {
17 type master;
18 file "/etc/bind/db.4.3.2.1";
19 };

3.2.3. 建立正解區域設定檔。
[ jonny@squeeze ~ ]
$ sudo vi /etc/bind/db.test.drx.tw [Enter]
 1 ;
2 ; BIND data file for test.drx.tw
3 ;
4 $TTL 604800
5 @ IN SOA ns.test.drx.tw. ns1.test.drx.tw. (
6 2 ; Serial [註1]
7 604800 ; Refresh
8 86400 ; Retry
9 2419200 ; Expire
10 604800 ) ; Negative Cache TTL
11 ;
12 @ IN NS ns.test.drx.tw.
13 test.drx.tw. IN NS ns.test.drx.tw.
14 ns.test.drx.tw. IN A 1.2.3.4
15
16 ; record wth myself.
17 www.test.drx.tw. IN A 1.2.3.4
18 jonny.test.drx.tw. IN CNAME www.test.drx.tw.

# [註1] 其長度為 2^32 - 1,一般慣用年月日加兩碼亂數做辨別 (例如 2012082001),有跑 Slave 時請多加注意,若數字過長、超過上限則會以餘數計算。

3.2.4. 修改 Bind 參數
[ jonny@squeeze ~ ]
$ sudo vi /etc/bind/named.conf.options [Enter]
 1 {
2 directory "/var/cache/bind";
3 dump-file "/var/cache/bind/cache_dump.db";
4 statistics-file "/var/cache/bind/named.stats";
5 managed-keys-directory "/etc/bind";
6
7 # 自訂 bind 回應版本。
8 version "None of your business";
9
10 # 減輕 bind 負載,並將未管轄網域轉到其他機器。
11 forwarders {
12 8.8.4.4; 8.8.8.8; 168.95.192.1;
13 };
14
15 auth-nxdomain no; # conform to RFC1035
16 listen-on-v6 { none; };
17
18 # 認證網域。
19 allow-query { any; };
20
21 # 停用全域轉送 (Master 與 Slave 間的傳送)。
22 allow-transfer { none; };
23 };

3.2.5. 重新啟動服務,要是嫌重新啟動的時間過長,也可改用 reload。
[ jonny@squeeze ~ ]
$ sudo /etc/init.d/bind9 restart [Enter]
* Stopping domain name service... bind         [ OK ]
* Starting domain name service... bind          [ OK ]

4. 除錯

在設定 Bind 時,log 幫了凍仁不少的忙,相信只要把錯誤訊息拿去 Google 搜尋都會有解答的。
[ jonny@squeeze ~ ]
$ sudo tail -f /var/log/daemon.log | nl [Enter]
1 Jun 11 12:26:45 drx named[27036]: client 192.168.1.1#46910: query (cache) 'www.google.com/A/IN' denied
......
4 Jun 12 21:59:06 drx named[1735]: dns_rdata_fromtext: /etc/bind/db.test.drx.tw:10: near eol: unexpected end of input
5 Jun 12 21:59:06 drx named[1735]: zone test.drx.tw/IN: loading from master file /etc/bind/db.test.drx.tw failed: unexpected end of in put
6 Jun 12 21:59:06 drx named[1735]: zone test.drx.tw/IN: not loaded due to errors.
......
15 Jun 11 15:54:55 drx named[29705]: zone test.drx.tw/IN: dns.test.drx.tw/NS 'test.drx.tw' has no address records (A or AAAA)

# CentOS 的 log 位置為 /var/log/message
  • 第 1 行 denied:認證網域中不含 192.168.1.1,換句話說就是權限開的不夠大。
  • 第 4 ~ 6 行: dns 正(反)解區域設定檔語法有誤。
  • 第 15 行: 預代管的子網域 test.drx.tw 必須為 A 或 AAA 紀錄才行。

5. 驗證

[ jonny@squeeze ~ ]
$ dig test.drx.tw [Enter]
; <<>> DiG 9.8.1-P1 <<>> test.drx.tw
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 16804
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0

;; QUESTION SECTION:
;test.drx.tw. IN A

;; AUTHORITY SECTION:
test.drx.tw. 10783 IN SOA ns.test.drx.tw. ns1.test.drx.tw. 2 604800 86400 2419200 604800

;; Query time: 1 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Wed Jun 13 13:57:50 2012
;; MSG SIZE rcvd: 71

[ jonny@squeeze ~ ]
$ host ns.test.drx.tw [Enter]
ns.test.drx.tw has address 1.2.3.4

凍仁還記得第一次聽到 DNS 這名詞是高中上計概課的時候,一直到現在才有融會貫通的感覺,真的挺開心挺感動的,不過由於沒有反解的環境,就先不列入了。

# 以上的 test.drx.tw, test.drx.tw 以及 1.2.3.4 請自行更換。

相關連結:
bind9 - 提供 Domain Name 與 IP 對應的服務 - 不自量力 の Weithenn

資料來源:
DNS Server - 鳥哥的 Linux 私房菜
毓林園地:[ubuntu]設定 DNS
Ubuntu 10.10 Server 安裝 DNS Server @ 暉獲無度的步烙閣 :: 隨意窩 Xuite日誌

十二月 20, 2011
» 於 Windows 7 安裝 host, dig 以及 whois

在 Linux 上凍仁一直都是使用 dig, host, whois 這些指令來檢視網域名稱(Domain name)的資訊,相對的 Windows 預設只有 nslookup 可用,這時凍仁就會開始懷念 Linux ..,其實它們老早就能在 Windows 上使用了,只要幾個小步驟就可將其帶回家,何樂而不為!

dig 於 Windows 7 上的 mintty 擷圖。

1. 下載相關檔案

http://members.shaw.ca/nicholas.fong/dig/dig-files3.zip

2. 驗證檔案完整性 (可略過)

解壓縮並使用壓縮檔內的 sha1sum 來檢驗檔案完整性。
cd E:\dig [Enter]

E:\dig> sha1sum * [Enter]
489a8ca7c7851088ade58c404ddde1a926559003 cygwin1.dll
57487baeaa0eb2848557b7ca54ed9183eafc73fa dig.exe
97dbd755d67a5829c138a4708be7a4f26ed0894c host.exe
d22e4b8956e1831ff0f9d07620ec19bf171f0c29 libbind9.dll
81588f0be7d3c6b320edc314532d9f2d0a105594 libdns.dll
e0bd7187bbc01003abfe7472e64b68cd1bdb6bab libeay32.dll
f445362e728a902796ec6871a79c6307054974e4 libisc.dll
b3255c0e4808a703f95c217a91ffcd6940e680c9 libisccfg.dll
dfbde4f9e25fd49a0846e97fd813d6876dc94067 liblwres.dll
61b8f573db448ae6351ae3475c2e7c482d81533c msvcr70.dll
da39a3ee5e6b4b0d3255bfef95601890afd80709 resolv.conf
4a578ecd09a2d0c8431bdd8cf3d5c5f3ddcddfc9 sha1sum.exe
9d9ec0e2cf59e14d9db618d10b55b881bb7d195b whois.exe

3. 安裝

3.1

將 resolv.conf 複製到 %systemroot%\system32\drivers\etc\

3.2

E:\dig 底下除 resolv.conf 之外的檔案皆複製到 C:\cygwin\bin\

4. 新增環境變數

4.1 於我的電腦上點選右鍵 → 內容。
4.2 進階系統設定。

4.3 環境變數 (N)。

4.4 更改使用者變數 PATH。

4.5 於最後方補上「;C:\cygwin\bin」。

4.6 更改系統變數 PATH。

4.7 於最後方補上「;C:\cygwin\bin」。

5. 重新開機


註:E:\dig, C:\cygwin\bin\ 可依需求更換路徑。

資料來源:
dig, a DNS query tool for Windows and replacement for nslookup
Install dig On Windows 7, Get dig Working On Windows 7 64-Bit OS

六月 1, 2010
» PPPoE 撥接上網 by network-manager on Ubuntu 9.10

network-manager 是 Ubuntu 以及 Gnome(X Windows 的一種) 預設使用的網路管理員,凍仁習慣用 pppoeconf 來撥接,之前在 OpenSuSE 11.2 都可正常撥接,而 Ubuntu 9.10 預設的 network-manager 卻不行。

不巧蝦蝦伙伴的中華電信光世代就不吃 pppoeconf 這套,雖然跑 network-manager 對一般人會比較方便,若用 pppoeconf 來管理網路,到時要改用固定IP時還得手動改 /etc/network/interfaces

加入 Network-manager on launchpad 的軟體來源。

jonny@ubuntu:~$ sudo vi /etc/apt/sources.list
...
# network-manager
deb http://ppa.launchpad.net/network-manager/trunk/ubuntu karmic main
deb-src http://ppa.launchpad.net/network-manager/trunk/ubuntu karmic main

移除原有的 network-manager。
jonny@ubuntu:~$ sudo apt-get remove network-manager

更新軟體清單。
jonny@ubuntu:~$ sudo apt-get update

安裝 Network-manager on launchpad
jonny@ubuntu:~$ sudo apt-get install network-manager

重新開機。
jonny@ubuntu:~$ sudo shutdown -r now

修改網路設定,只留 lo。
jonny@ubuntu:~$ sudo vi /etc/network/interfaces
auto lo
iface lo inet loopback

啟用 network-manager
jonny@ubuntu:~$ sudo vi /etc/NetworkManager/nm-system-settings.conf
...
[ifupdown]
managed=true  # 預設為 false

手動新增 dns 地址
jonny@ubuntu:~$ sudo /etc/resolv.conf
...
nameserver 168.95.192.1
nameserver 168.95.1.1

使用 network-manager 圖形化介面中的 dsl 設定 PPPoE,並取消自動連線以及套用所有使用者。

資料來源:
Ubuntu-tw | 無法上網

相關連結:
Hepha |「手把手」調教 Ubuntu 9.10  圖型介面 ADSL 不行撥號嗎?

support:

biggo.com.tw

biggo.sg

A Django site.