Board logo

標題: [轉帖]浮動式IP架站相關資料 [列印本頁]

作者: kangtacat     時間: 2005-5-1 10:47 PM    標題: [轉帖]浮動式IP架站相關資料

前題:
使用Hinet等撥接上網、無固定IP
申請網域並設定

什麼是 DNS ?
如果你常常在台灣上網路的話,應該都知道奇摩站的網址為 www.kimo.com.tw 吧!所以你在瀏覽器的網址列上打入 http://www.kimo.com.tw 就可以連上 奇摩站了!好啦,那我們知道其實 Internet 上面用來認識你的電腦的門牌都是使用 IP 來進行的,例如 奇摩站 的 IP 其實是 202.1.237.21,所以如果你在網址列打上 http://202.1.237.21 同樣也可以連上 奇摩站 的!雖然使用 IP 即可連上主機,但是由於 IP 是一堆數字的集合,很難記憶,所以才會有 DNS 這種網址列的出現,這樣一來,只要你記得 kimo 就大概可以知道他的網址列,而不用死記一堆 IP 數字了!
舉個簡單的例子,你知道教育的英文吧(education),另外我們也知道 WWW 為一般的網頁主機開頭,所以如果你要登入台灣的教育部首頁,直接在網址列打上 www.edu.tw 就可以啦,那你就不用去記 IP 了!所以,簡單的來說,DNS只是要幫我們記憶一些名稱以對應相對的 IP 的一個系統。

那網址列的名稱有沒有什麼意義呢?其實是有的,網址列的最後幾個字母代表的意義如下:
  名稱 代表意義
com 公司、行號、企業
org 組織、機構
edu 教育單位
gov 政府單位
net 網路、通訊
mil 軍事單位


我對 DNS 的瞭解也不是很深,大概有的只是一些概念而已,如果你想要對 DNS 有更深一層的瞭解,建議到 study-area 來看看!


--------------------------------------------------------------------------------

去申請免費的動態 DNS 系統
好了,既然知道了 DNS 系統了,那什麼叫 動態DNS 呢?這是由於近年來撥接網路的盛行,而撥接網路所分給你的 IP 並非固定的,例如以 seednet 為例,你每次重新開機而 seednet 給你的 IP 大致上是分佈在 211.74.XXX.XXX 這一個 IP !所以你每次撥接上網的 IP 是隨機分配的!
那就會產生一個問題,如果你架設了一個網站,但是你的 IP 卻一直變來變去,那用戶端如何跟你連線呢?這時就有所謂的動態 DNS 出現了,他的運作原理是這樣:你每次開機的時候,寫一個小程式去向這個動態DNS主機 要求更改你的 IP ,這個主機會將你申請的名稱與 IP 重新作一個調整,因此,只要別人知道你的主機名稱,不論你的 IP 為何,他一定可以連上你的主機(因為 IP 跟著你的主機而變!)這對於我們這種使用動態 IP 的人是很有幫助的!

目前就我所知,台灣地區有一個試驗性的免費動態 IP 系統,由於是試驗性的,所以他並不保證完全可以讓你的DNS永遠沒有問題!不過,如果你有心去架設一個網站的話,可以去申請需要付費的動態DNS系統!那應該會比較好一些!至於申請的方式,你可以到底下的網址去看看,這裡就不多作介紹了!

免費動態 DNS :
台灣地區免費動態DNS系統
付費動態 DNS 系統:
荻恩斯科技
當然還有很多的動態DNS系統,你可以多多比較了!不過,目前我所申請的是免費的 DNS 系統,你可以上去看看囉。

--------------------------------------------------------------------------------

偵測小技巧
申請了 動態DNS系統 當然是希望在每次重新連線的時候可以自動將你的 IP 送上主機去更改了,這時你就需要用到 crontab 這種例行性檢查的服務了!
crontab:
在 Linux 系統當中,由於有些服務是必須在某些時刻開啟的,因此就有 crontab 服務的產生, crontab 可以讓你在固定的時候執行某些動作!關於系統的 crontab 你可以到 /etc/crontab 這個檔案去看看, RedHat 6.1 預設的 crontab 有點像這樣:
  SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/
# run-parts
01-59/3 * * * * root run-parts /etc/cron.min <= 我加上的一行
01 * * * * root run-parts /etc/cron.hourly
02 4 * * * root run-parts /etc/cron.daily
22 4 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly

上面的說明是這樣的:

MAILTO:如果底下執行的動作發生了一些訊息,這些訊息應該傳給誰?由於 root 沒有辦法在其他的機器上登入以取得郵件,因此這一行我都會改成我的 ID帳號!
另外,在 run-parts 部分,(注意: # 後面接的是註解,並不會被執行)共有五個數字(如果沒有數字的話,必須以 * 來代替),這五個數字的意義是:
  1 2 3 4 5
分鐘(0-59) 小時(0-23) 每月的第幾天 月份(1-12) 星期幾(0-6)

例如 01 * * * * root run-parts /etc/cron.hourly 表示每個小時的 1 分鐘執行 /etc/cron.hourly 這個目錄中的所有執行檔,而 42 4 1 * * root run-parts /etc/cron.monthly 則表示每個月的一號的4點42分執行 /etc/cron.montly 這個目錄下的所有執行檔,然後我通常會在run-parts 當中加入如上表中黃色顯示的那一行,那一行表示:在每隔三分鐘之後執行 /etc/cron.min 這個目錄下的所有執行檔!因此,我必須在 /etc 中先建立一個名為 cron.min 的目錄: mkdir /etc/cron.min,然後將我所需要的例行性執行檔寫在這個目錄中!
一個範例:
以下是我寫的一個小程式,你可以看看:
  #!/bin/sh
# 這個小批次檔將可以讓你的 DNS 更改你目前的 IP ,
# 並請注意,這個批次檔是在 seednet 的網域中寫的,
# 在 hinet 或其他的 ISP 中我還不能肯定是否可以執行!
# 我的系統是 Redhat 6.1,核心是 2.2.18 ,
# 另外,我的 eth0 是內部網路的接線, eth1 是連接到 ATU-R 上的!
# 我使用的撥接程式是 rp-pppoe-2.6.1 這一個!
# 所以我的撥接執行檔在 /usr/sbin/adsl-start !
#                                 VBird 2001/08/18
# ============== 請輸入必要的參數  ==========================
# 1. 請輸入你的 eth0 這張網路卡的 IP (虛擬 IP )
#    以我為例,我是使用 192.168.1.2 這一個 IP ,請依你的設定來寫!
  ETH0IP=192.168.1.2
  PASSWD=xxxxxx
  EMAIL=xxx@xxx.xxx.xxx
  HOSTNAME=xxx.adsldns.org
# ===========================================================
  PATH=$PATH:/sbin

# 建立搜尋檔案!  
   Base=`pwd`
   CardFile="no"
   [ -f ${Base}/card1 ] && CardFile="yes"
   if [ "$CardFile" = "no" ]; then
echo card1 > ${Base}/card1
   else
qq=qq
   fi

# 搜尋你目前主機上的 IP  
   IP1=`/sbin/ifconfig eth0|grep 'inet' |awk '{print $2}' |sed -e "s/addr\://"`
   IP2=`/sbin/ifconfig eth1|grep 'inet' |awk '{print $2}' |sed -e "s/addr\://"`
   IP3=`/sbin/ifconfig ppp0|grep 'inet' |awk '{print $2}' |sed -e "s/addr\://"`
   IP11=`echo $IP1 |awk -F '.' '{print $1}'`
   IP21=`echo $IP2 |awk -F '.' '{print $1}'`
   IP31=`echo $IP3 |awk -F '.' '{print $1}'`
   workIP=`ifconfig ppp0|grep 'inet' |awk '{print $2}' |sed -e "s/addr\://"`
   LANIP=`ifconfig eth0|grep 'inet' |awk '{print $2}' |sed -e "s/addr\://"`

# 你上一次登入的 IP 為何?  
   CARDIP=`cat ${Base}/card1`

# 1. 沒有任何的撥接網路被啟動
if [ "$IP3" = "" ]; then
        ifdown eth1
        /usr/sbin/adsl-stop
        /usr/sbin/adsl-start
        IP3=`/sbin/ifconfig ppp0|grep 'inet' |awk '{print $2}' |sed -e "s/addr\://"`
fi
if [ "$IP3" = " " ]; then
        ifdown eth1
        /usr/sbin/adsl-stop
        /usr/sbin/adsl-start
        IP3=`/sbin/ifconfig ppp0|grep 'inet' |awk '{print $2}' |sed -e "s/addr\://"`
fi

# 2. 舊的登錄 IP 是錯的!
if [ "$CARDIP" = " " ]; then
        ifdown eth1
        /usr/sbin/adsl-stop
        /usr/sbin/adsl-start
        IP3=`/sbin/ifconfig ppp0|grep 'inet' |awk '{print $2}' |sed -e "s/addr\://"`
fi
if [ "$CARDIP" = "" ]; then
        ifdown eth1
        /usr/sbin/adsl-stop
        /usr/sbin/adsl-start
        IP3=`/sbin/ifconfig ppp0|grep 'inet' |awk '{print $2}' |sed -e "s/addr\://"`
fi

# 3. 是否需要重新修改你的 IP ?
if [ "$IP3" = "$CARDIP" ]; then
exit 1
else
        IP3=`/sbin/ifconfig ppp0|grep 'inet' |awk '{print $2}' |sed -e "s/addr\://"`
# send your IP to kevin.adsldns.org
echo 'passwd='$PASSWD'&email='$EMAIL'&hostname='$HOSTNAME'&debug=1&forceip='$IP3'' | lynx http://www.adsldns.org/clientupdate.php -post_data
# repleas your card1 file
echo $IP3 > ${Base}/card1
fi

上面這個批次檔你可以在這裡下載,並請注意,上面黃色的字的地方是你需要修改的東西,ETH0IP為你的內部網路的通訊閘的 IP ,其他的項目則是你在 www.adsldns.org 申請的時候所附上的資訊!請填寫這些東西就可以了,然後將這個檔案放置到你剛剛建立的 /etc/cron.min 這個目錄中,然後修改他的屬性成為: chmod 744 /etc/cron.min/ping_net_card.sh,如此一來,則每三分鐘系統會去偵測你的網路是否存在,若不存在則會重新啟動你的撥接程式,並且在撥接之後將會直接更新你在 www.adsldns.org 的 DNS 囉!


以上來自鳥哥的 Linux 與 ADSL 私房菜
http://www.vbird.org/linux_server/redhat6.1/linux_23dynamicDNS.php
作者: kangtacat     時間: 2005-5-1 10:50 PM
所謂動態DNS是指不固定IP的主機,隨IP的改變去設定網域名稱與IP的對應關係。

【實例說明】
我已註冊了一個網域名稱:dyndns.idv.tw,但我所使用的網路連線是不固定IP
的ADSL計時制服務,以前我並不能用它來架設網站,因為我的IP並非固定IP
無法用來指定DNS,但現在有了動態DNS服務後,我將可以以我的網域名稱來
架設主機及網站。

當我啟用了動態DNS弁鄎寣A每次我的主機開機,TWNIC 之動態DNS伺服器,
將會自動去取得及對應我的主機當時上線的IP, 假設而且此次我的主機開機時
所取得IP是61.128.9.1,此時利用動態DNS服務,會將我的dyndns.idv.tw自動設定
對應到61.128.9.1去;又假設我的主機重開機時所取得的IP是 61.240.8.10 則利用
動態DNS服務,又會自動再將我的dyndns.idv.tw對應到61.240.8.10去, 如此解決
了不固定IP 無法對應到網域名稱的困擾,並且這對欲瀏覽我的網站的人來說,
並無任何影響,只需輸入 http://dyndns.idv.tw 即可連結至我的網站。




【服務對象】
凡已註冊有.com.tw/.org.tw/.net.tw/.idv.tw之英文網域名稱者,不論所屬受理註冊
機構皆可使用本服務。




【什麼情形需要動態DNS】
不固定IP的主機 ( 如使用 PPPOE的ADSL,DHCP的Cable,撥接用戶 ),欲架設
Web、Mail或者FTP 等Server,或者使用者需要網路身份(網域名稱)者。

其可能情形如下:
1‧ SOHO族或利用ADSL或Cable架設網站。

2‧ 以撥接、ADSL或Cable 連線方式需要和朋友做網路遊戲連線 ( 你朋友不
知道你這次連線IP為何,但用網域名稱即可與你連線)。

3‧ 以ADSL或Cable 連線方式和國外親友作網路電話連線(Netmeeting),此時
只要你上線,他們即可利用網域名稱與你線上交談。

4‧ 和朋友利用網路芳鄰來分享檔案,朋友只要記得網域名稱即可連線

5‧ 經常到外面開會,每次開會因地點的不同,所使用的IP亦不相同,辦公
室的mail server會擋掉外部IP,而導政無法寄信,此時啟動動態DNS之?
能,mail server 只要辨認我的網域名稱即可正常寄信。

6‧ 希望在辦公室能使用 Netmeeting 與家中電腦連線,透過網路攝影機、麥
克風、喇叭,來看到家中小孩狀況並與其溝通,此時只需啟動動態DNS
並且家中電腦為開機狀態,電腦即會自動利用網域名稱與您進
行Netmeeting連線。

步驟一:
請到資料修改作業之DNS設定下,將DNS修改如下 ---
‧ ns1.twnic.net.tw  203.73.24.9
‧ ns2.twnic.net.tw  211.72.210.241

  
*若是 idv.tw 的網域名稱請選擇 DNS 模式
*如要設定動態DNS請先登錄管理系統

步驟二:
為了能正確設定動態 DNS,您的電腦需安裝 client 程式以配合 server 來做設定,
請選擇您適合的作業系統平台下載程式 ---
* 目前支援的版本:
   ‧windows: win9x/me/2000/nt/xp
  ‧Linux RPM: redhat linux 5.2 (含)以上
  ‧Linux tar.gz: redhat linux 5.2 (含)以上
‧FreeBSD tar.gz: 版本 4.0 (含)以上

以上資料來自網路中文
http://www.net-chinese.com.tw/script/nc_ddns_setup.asp




歡迎光臨 下班後論壇-不明所以版  華麗登場 (http://www.eightwing.idv.tw/discuz!/) Powered by Discuz! 3.1.2 Plus