?? 185.html
字號:
<tr><td> </td></tr>
<tr><td align=left><i>作者:</i>王波</td></tr>
<tr><td> </td></tr>
<tr><td><font color=white>通過電話連接使用IP協議有兩種協議,一種為SLIP協議,另一種為PPP協議,FreeBSD支持這兩種協議,但是SLIP協議已經過時,當前已經很少有ISP使用這種方式提供接入服務了,而PPP協議則成為了標準。<br><br> 建立一個PPP連接需要以下過程:<br><br><br>在PPP的兩端建立一條物理連接,通常為電話連接,但也有直接電纜連接或虛擬的tunnel連接的形式。具體如何建立連接,例如撥號等,并不屬于PPP協議本身的任務。<br><br><br>由PPP的服務器端對客戶端進行驗證,可以有最簡單登錄的驗證方式、PAP或CHAP等驗證方式。由于PAP和CHAP并不在線路上傳輸口令本身,因此更為安全,不必擔心口令會泄露出去。<br><br><br>驗證完畢之后,PPP服務器將按照配置,分配給客戶IP地址,并將網關地址和其他的一些配置信息傳送給客戶。如果是Microsoft客戶,還可以按照MS的擴展協議分配給客戶NetBIOS名字服務器的地址。這樣就建立了一條PPP連接。<br><br> FreeBSD對PPP提供了兩種不同方式的支持,一種為內核級PPP,它將PPP協議代碼編譯進內核,并運行一個PPP守護進程pppd,提供對PPP的支持,這是一種傳統的方法,但配置起來較困難。另一種為用戶級PPP,它使用一個應用程序ppp,通過通用tunnel設備傳遞PPP數據,配置較為容易。一般情況下可以使用用戶級PPP 來建立撥號方式的Internet連接。<br><br> 要建立PPP連接,首先要檢查串口、modem和電話線連接是否正確。可以使用一些通信軟件來幫助進行診斷,例如minicom,如果使用minicom能正常撥號,并在撥ISP的撥號服務器時能出現username和password 提示,就說明串口和modem的配置正確無誤。接下來就可以配置PPP連接。<br><br><br>用戶級PPP設置<br><br> 用戶級PPP使用tunnel設備進行PPP數據的傳遞,因此內核中必須支持相應的tunnel設備,通常為 tun0。缺省內核中支持這個偽設備(pesudo-device tun),/dev目錄下也具備相應的設備文件t un0。如果同時需要多個撥號連接,就可以增加內核中支持的偽設備數量和相應的設備文件。<br><br> 要使用ppp,還需要設置它的配置文件,這些文件位于/etc/ppp目錄中。缺省情況下,/etc/ppp 目錄下安裝了這些文件的例子:<br><br># ls -l /etc/ppp<br> total 21<br> drwxr-xr-x 2 root wheel 512 Aug 17 16:18 .<br> drwxr-xr-x 8 root wheel 1536 Aug 29 18:31 ..<br> -rw-r--r-- 1 root wheel 5112 May 20 20:06 ppp.conf.sample<br> -rw-r--r-- 1 root wheel 1130 May 20 20:06 ppp.conf.server.sample<br> -rw-r--r-- 1 root wheel 1894 May 20 20:06 ppp.deny<br> -rw-r--r-- 1 root wheel 1665 May 20 20:06 ppp.dialup.sample<br> -rw-r--r-- 1 root wheel 1402 May 20 20:06 ppp.linkdown.sample<br> -rw-r--r-- 1 root wheel 1422 May 20 20:06 ppp.linkup.sample<br> -rw-r--r-- 1 root wheel 1705 May 20 20:06 ppp.pap.dialup.sample<br> -rw-r--r-- 1 root wheel 313 May 20 20:06 ppp.secret.sample<br> <br> <br><br> 這些以sample結尾的文件都給出了最常用的配置,因此只需復制生成正確的設置文件,再稍加修改,就能用于使用者自己的撥號連接。<br><br><br>手工撥號<br><br> ppp.conf是用戶級PPP的主要配置文件,可以從ppp.conf.sample生成適合自己的ppp.conf。ppp.conf 文件使用帶有冒號的標簽標識不同的選項,第一項標簽通常為default:,用于設置缺省的選項。<br><br>default:<br> set log Phase Chat Connect Carrier LCP IPCP CCP tun command<br> set device /dev/cuaa2<br> set speed 115200<br> deny lqr<br> set dial "ABORT BUSY ABORT NO\\sCARRIER TIMEOUT 5 \"\"<br> AT OK-AT-OK ATE1Q0 OK \\dATDT\\T TIMEOUT 40 CONNECT"<br> <br> <br><br> 注意default:為這一項的標簽,必須位于一行的開始,而其他的行是這一項的具體配置,因此使用一個空白字符開頭。否則語法錯誤就造成不能ppp不能正常建立連接的問題。<br><br> 第一個設置set log用于設置連接過程中要記錄的日志內容,這有助于幫助解決連接過程中出現的故障;第二項設置set device設置連接使用的串口設備,本文件中設為第三個串口cuaa2;第三項設置了串口與mode m的連接速度,115200為PC常用的串口通信芯片UART 16550的最大通信速率;第四項在該medom上屏蔽線路質量請求lpr;最后一項為發送到medom的一些命令和相應的回應,通常稱這些為交談腳本(chat script ),上例中這個設備跨越了兩行,實際上它應該位于同一行內。<br><br> 設置了default項之后,就可以進入ppp程序測試這些設置是否正確了。<br><br># ppp<br>ppp > term<br>atdt 163<br>username: pppuser<br>password: <br>PPP ><br> <br> <br><br> 進入ppp程序之后,輸入term命令可以進入終端模式,這個模式下用戶可以直接輸入modem認可的AT指令控制modem,本例中使用atdt 163撥接163,連接之后系統將進行提示輸入用戶名和口令,此后ppp就建立起PPP連接,而ppp的提示符改變為大寫的PPP。<br><br><br>設置撥號連接<br><br> 使用手工輸入的連接方法不很方便,而且也不適合使用PAP或CHAP等安全認證方式的連接,因此最好在ppp.conf對指定的連接進行配置。這要求對每個要連接的ISP,都配置相應的設置。例如對CHINANET 的接入,使用下列chinanet標簽配置:<br><br>chinanet:<br> set phone 163<br> set login "TIMEOUT 5 ogin:--sername: pppuser word: key123"<br> set timeout 120<br> set ifaddr 10.0.0.1/0 10.0.0.2/0 255.255.255.0 0.0.0.0<br> delete ALL<br> add 0 0 HISADDR<br> <br> <br><br> 這個例子中使用chinanet作為設置的標簽,設置了電話號碼為163,登錄時使用sername匹配對用戶名的提示Username,接收到這個字符串后自動輸入用戶名pppuser,使用word匹配對口令的提示Pas sword,然后自動輸入口令。這里只使用了提示信息的一部分來進行匹配,這是為了避免匹配時出現問題。對于不同的系統,這些提示還有所不同,對于使用Unix作登錄服務器的提示為通常的Login,而大多數專用撥號服務器的提示為U sername。<br><br> set ifaddr用于設置本地PPP連接的IP地址,由于PPP協議在客戶和服務器之間協商客戶的IP地址,通常由撥號服務器從自己控制的自由IP地址池中分配給撥號的計算機一個動態IP地址,因此這里的設置只是客戶端對地址協商進行的限制。可以針對本地要申請的IP地址,和遠端計算機的IP地址進行限制,本地的IP地址和網絡掩碼為s et ifaddr的第一個參數,而遠端的IP地址和網絡掩碼為set ifaddr的第二個參數,前兩個參數的網絡掩碼是用于限制IP地址所在的網絡,可以是真實網絡的網絡掩碼,也可以不是,第三個參數才是用來指定PPP界面使用的網絡掩碼。<br><br> 一般情況下,不需要對雙方的IP地址范圍進行限制,撥號之后可以接受任意的IP地址,就如上例中設置本地IP 地址和遠端IP地址的限制網絡掩碼長度都為0,由于網絡掩碼長度為0使得任意IP地址都符合要求,此時掩碼前面的IP 地址就沒有意義了。<br><br> 如果想讓撥號的計算機擁有一個靜態IP地址,就必須設置網絡掩碼為32,明確指定IP地址,此時也可以省略掩碼,直接使用IP地址本身。例如,本地每次連接都使用靜態IP地址192.168.1.98,另一端的IP地址為19 2.168.1.64,那么這一項就應為:<br><br> set ifaddr 192.168.1.98 192.168.1.64 255.255.255.0<br><br> 使用靜態IP地址就能使FreeBSD使用固定的IP地址,從而能使用DNS域名,以方便提供更多的服務。然而,這個set ifaddr的配置命令可以更靈活,可以在協商IP地址時指定本機使用的IP地址范圍,或者指定對方所在的IP地址范圍,進行地址限制。例如:<br><br> set ifaddr 192.168.1.98/24 192.168.1.64/24 255.255. 255.0<br><br> 這種限制撥號網絡IP地址范圍的機制對于使用自動撥號的情況十分有用,通常可以使用帶參數的命令ppp -a uto將ppp程序放入后臺,一旦有網絡請求就立即撥號建立連接。但是FreeBSD上有多個網絡界面,就需要判斷這個網絡請求需要使用哪個撥號網絡界面進行網絡傳輸,否則如果使用錯誤的撥號網絡進行撥號,即使建立了連接,也不能找到目的計算機建立連接。由于每個連接請求中都具備目的IP地址,便需要根據這個IP地址來進行判斷。然而普通的撥號網絡在建立連接之前是沒有分配IP地址的,因此還是無法確定對這個IP地址的連接請求應該通過那個撥號網絡界面進行傳輸。但是,如果指定了ppp網絡界面的IP地址范圍,就可以根據這個地址范圍來判斷連接請求中的IP地址是否在這個范圍內,以決定是否使用這個網絡界面進行撥號。<br><br> delete all指出刪除不必要的路由配置,add 0 0 HISADDR指出將缺省路由設為對方的地址,由于使用動態IP時,在建立連接前對方的IP是未知的,因此使用HISADDR代替。如果已知撥號服務器的IP地址,也可以直接填上這個IP地址。也可以不將撥號服務器作為缺省路由,而只將它作為對某個子網的路由,那么在這個配置中就不可以使用0作為IP地址和網絡掩碼,必須使用正確的IP地址和子網掩碼進行設置。例如add 192.168. 1.0 255.255.255.0 HISADDR,就將對方作為通向192.168.1子網的路由器。事實上這些設置路由的指令等價于執行對應的route指令,以設置路由,如route add 192.168.1.0 HIS ADDR -netmask 255.255.255.0。<br><br> 然而對于動態分配IP的情況,問題在于在ppp進行撥號的時候,對方的IP地址HISADDR還沒有確定,因此這些設置路由的指令往往不能正確執行。必須在撥號完成,建立了PPP連接之后,HISADDR才能確定,因此設置路由的命令應該放在更合適的位置:ppp連接建立之后立即執行的文件ppp.linkup中。 <br><br>MYADDR:<br> delete 0<br> add 0 0 HISADDR<br>192.168.1.98:<br> add 192.168.1.0 0 HISADDR<br>chinanet:<br> delete ALL<br> add 0 0 HISADDR<br> !bg /etc/ppp/ppp.fetchemail<br> <br> <br><br> ppp.linkup文件格式與ppp.conf文件相同,它在PPP連接建立后執行,執行與撥號使用的標簽相同的項,以及客戶獲得的地址為標簽的項。通常使用MYADDR表示本機得到的IP地址,因此這個標簽下的內容都將執行;而192.168.1.98項表示獲得這個地址時增加下面的路由,最后一項以chinanet為標簽,與ppp. conf相同,表示進行這個chinanet撥號后執行的相關動作,其中包括在后臺執行的取郵件的腳本ppp.fet chmail。<br><br> 如果撥號服務器要求使用PAP或CHAP認證,而不是普通的登錄認證方式,則要在ppp.conf中的使用不同的配置選項:<br><br>chinanet:<br> set phone 163<br> set login<br> set authname pppuser<br> set authkey key123<br> set timeout 120<br> set ifaddr 10.0.0.1/0 10.0.0.2/0 255.255.255.0 0.0.0.0<br> delete ALL<br> add 0 0 HISADDR<br> <br> <br><br> 使用authname和authkey來定義PAP或CHAP認證方式下的用戶名和口令,就能連接到使用PAP或CHAP 的撥號服務器,而具體使用哪種認證方式則由撥號服務器決定。<br><br><br>進行撥號連接<br><br> 設置了針對具體撥號連接的配置之后,撥號就非常方便了,直接使用該撥號服務的標簽進行操作。<br><br># ppp<br>ppp > dial chinanet<br>PPP ><br> <br> <br><br> 使用ppp的dial命令發起連接之后,ppp連接被建立,提示符也由原來的小寫ppp>變為大寫PPP>,這就表示PPP連接已經正確設立了。這個時候如果使用ifconfig進行查看,就可以看到網絡界面tun0 已經設置正確,并可以使用了。<br><br> 當要結束連接時,使用close或quit命令關閉連接。結束連接時將執行/etc/ppp目錄下的ppp.linkdown 腳本。ppp.linkdown腳本和ppp.linkup格式相同,都會依據相同的標簽執行操作。<br><br> 如果使用者租用了一條模擬專線,專門用于Internet連接。這樣就不希望每次傳輸時都重新進行連接,而希望建立一條永久連接,ppp在后臺自動撥號連接到Internet上,并一直維護這個連接。這樣就可以使用-ddial 參數啟動ppp。<br><br># ppp -ddial chinanet<br> <br> <br><br> -ddial參數使得ppp立即使用相應參數對應標簽設置的撥號連接建立永久連接,而不管有沒有實際的數據傳輸。而絕大多數情況下,使用者并沒有租用專線,還是希望在有數據傳輸時才建立網絡連接,在沒有數據傳輸時斷開網絡連接,以減少電話連接時間。這樣就可以使用-auto參數啟動ppp。<br><br># ppp -auto chinanet<br> <br> <br><br> 這樣啟動的ppp將一直停留在后臺,但并不立即進行連接,而是在應用程序發出網絡請求時才進行撥號,這個網絡請求的目的地址應該在chinanet標簽定義的網絡地址范圍內。而如果一段時間內沒有任何數據傳輸,就斷開連接(這個時間由set timeout命令設置,單位為秒)。<br><br># ppp -backgroud chinanet<br> <br> <br><br> -background選項使PPP立即進行撥號,并停留在后臺。但與-auto不同在于,在一段沒有數據傳輸的時間間隔后ppp將斷開連接,但是ppp程序也停止執行,而不象auto參數那樣,ppp一直駐留在后臺監視網絡連接,要再次建立連接必須重新執行ppp程序。這個選項適合最普通的網絡客戶,使用戶能明確什么時候才建立連接。<br><br># ppp -alias -ddial chinanet<br> <br> <br><br> ppp程序的另一個有用的選項是alias。如果撥號用戶內部有自己的局域網,用戶或許希望讓整個網絡內的計算機共享一個撥號連接。使用ppp的alias選項能使FreeBSD將局域網上的網絡連接請求中的本地IP地址替換為FreeBSD系統的ppp網絡使用的IP地址,從而使其他用戶也能訪問外部網絡。-alias參數應該和auto或ddial參數聯合使用,以駐留在后臺提供服務。這種方式比較簡潔、易用,當然代理服務器和網絡地址轉換的方法能提供更多的控制能力。<br><br> 當使用這些參數執行ppp程序時,ppp程序將切換在后臺維護PPP連接。然而由于ppp程序在后臺運行,就無法輸入指令以控制ppp程序的執行。為了方便使用者控制后臺運行的ppp程序,ppp提供了通過socket連接的方式來接受外部輸入。為了支持這個特性,便需要設置set server選項。<br><br> set server 6670 MySecretpassword<br> <br> <br><br> 這個選項將使ppp程序監聽6670端口,并使用MySecretpassword作為連接時認證的口令,以免ppp程序被非法控制。此后,就可以使用pppctl向ppp程序發送指令,這些指令都是ppp的標準指令。<br><br># pppctl -p MySecretpassword 6670 set timeout 300\; dial<br> <br> <br><br> 除了使用標準的Intenet套接字接收pppctl的連接之外,ppp還能通過本地Unix套接字來接收輸入。這就需要設置一個套接字使用的文件及其訪問屬性,具備更好的安全性。<br><br> set server /tmp/ppp MySecretPassword 0177<br> <br> <br><br> 而在pppctl中應該使用對應的參數以指明相應的Unix套接字:<br><br># pppctl -p MySecretpassword /tmp/ppp set timeout 300\; dial<br> <br> <br> <br></font></td></tr>
<tr><td> </td></tr>
<tr><td align=right><i>來源:</i><a href="javascript:if(confirm('http://freebsd.online.ha.cn/ \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?'))window.location='http://freebsd.online.ha.cn/'" tppabs="http://freebsd.online.ha.cn/">http://freebsd.online.ha.cn/</a></td></tr>
</table>
<p> </p>
<p> </p>
<p> </p>
聲明:本站的文章和軟件是本人從網上收集整理的(除本人的作品之外),所有版權屬于作者,<br>
如有侵犯您的權益,請指出,本站將立即改正,謝謝.
<hr width=500>
<br>
<font color=#ffffff>Copyright 2000 <a href="javascript:if(confirm('http://www.newok.com/ \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?'))window.location='http://www.newok.com/'" tppabs="http://www.newok.com/" class=t1>www.newok.com</a></font>
</div>
</body>
</html>
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -