?? ppp-howto.txt
字號:
間(因為核心沒有任何一個部份可以被置換到記憶體外,但可載入模組在未使用 時會自動被移除). 要這樣做的話,你需要打開可載入模組的支援: _________________________________________________________________ Enable loadable module support (CONFIG_MODULES) [Y/n/?] y _________________________________________________________________ 要加入 PPP 的核心支援,回答下列這個問題:- _________________________________________________________________ PPP (point-to-point) support (CONFIG_PPP) [M/n/y/?] _________________________________________________________________ 要做成可載入模組的話,回答 M 即可,否則就編譯成核心的一部份,回答 Y 就 是. 與 1.2.13 的核心不同的是,2.0.x 的核心視需要自動建立 PPP 設備并且一點都 不需要去研究原始程式碼以增加可用的 PPP 設備. 7.5 PPP-2.2 與 /proc/net/dev 的注意事項 如果你在使用 PPP-2.2,你會發現建立 PPP 裝置的一個副作用就是如果你觀察 /proc/net 檔案系統看不到 PPP 的裝置, 直到開始使用 pppd 裝置才會被建立 起來:- _________________________________________________________________ [hartr@archenland hartr]$ cat /proc/net/devInter-| Receive | Transmit face |packets errs drop fifo frame|packets errs drop fifo colls carrier lo: 92792 0 0 0 0 92792 0 0 0 0 0 eth0: 621737 13 13 0 23 501621 0 0 0 1309 0 _________________________________________________________________ 一旦你有一個(或更多) PPP 服務啟動後,你會看到像這樣的項目(從一部 PPP 伺 服器上取得):- _________________________________________________________________ [root@kepler /root]# cat /proc/net/devInter-| Receive | Transmit face |packets errs drop fifo frame|packets errs drop fifo colls carrier lo: 428021 0 0 0 0 428021 0 0 0 0 0 eth0:4788257 648 648 319 650 1423836 0 0 0 4623 5 ppp0: 2103 3 3 0 0 2017 0 0 0 0 0 ppp1: 10008 0 0 0 0 8782 0 0 0 0 0 ppp2: 305 0 0 0 0 297 0 0 0 0 0 ppp3: 6720 7 7 0 0 7498 0 0 0 0 0 ppp4: 118231 725 725 0 0 117791 0 0 0 0 0 ppp5: 38915 5 5 0 0 28309 0 0 0 0 0 _________________________________________________________________ 7.6 配置核心的一般考量 如果你要把你的 Linux PC 設為一臺 PPP 伺服器的話,那麼你必須把 IP forwarding 的支援編譯進去. 如果你想使用 Linux 連接兩個區域網路或將區域 網路連接到網際網路上的話這個選項也是需要的. 如果你要連接一個區域網路到網際網路上(或者甚至只是連接兩個區域網路), 你應該要關心安全上的問題.在核心中加入 IP firewalls 的支援可能是必須 的! 如果你想要用 IP 偽裝連接使用前述任何一個‘未連線’IP 網路號碼的區域網路 那麼你也需要這個配置. 要使用 IP 偽裝與 IP firewalling,你必須在 make config 過程中的第一個問 題上回答 yes:- _________________________________________________________________ Prompt for development and/or incomplete code/drivers (CONFIG_EXPERIMENTAL)? _________________________________________________________________ 雖然這聽起來對新使用者有些困難,許多人仍愉快地使用 Linux 2.0.X 核心的 IP 偽裝與 IP firewalling 功能而沒有問題. 一旦你完成新核心的安裝以及重新啟動之後,你就可以開始配置并測試你的 PPP 連結. 8. 取得你所需的 PPP 伺服器資訊 在你可以建立到某臺伺服器的 PPP 連線之前,你需要取得下列的資訊(從 PPP 伺服器的系統管理/使用者支援人員取得):- * 撥接服務的電話號碼 如果你是在私用交換機(PABX)系統下,你還需要撥出外線信號的私用交換機 號碼 - 通常是 0 或 9. * 伺服器使用動態或靜態的 IP 號碼? 如果伺服器使用靜態的 IP 號碼,那麼你需要知道在 PPP 連線中你這端要使 用哪個 IP 號碼. 如果你的 ISP 提供你一合法 IP 號碼的次網路,你需要 知道你能使用的 IP 號碼及網路遮罩. 大部分的網際網路服務提供者都使用動態的 IP 號碼.如前述,這對於你可 以使用的服務會有些限制. 然而,即使你使用靜態的 IP 號碼,大部份的 PPP 伺服器也不允許(為了安 全理由)客戶端自行指定 IP 號碼,因為這有安全風險. 你仍然必須知道這 些資訊. * ISP 的領域名稱伺服器 IP 號碼是什麼? 雖然只需要一個但最少應該得要有兩個. 這里可能會有一個問題.微軟的 Windows 95 PPP 設定允許讓 DNS 的地址在 連線過程中傳到客戶端. 因此你的 ISP (或公司的諮詢室)可能會告訴你不 需要知道 DNS 伺服器的 IP 位址. 對於 Linux 來說,你必須至少知道一個 DNS 的位址. 目前 Linux 的 PPP 實作中不允許在連立連線之時動態地指定 DNS 的 IP 號碼 - 很可能將來也 不會. 注意: 雖然,Linux (作為 PPP 的客戶端)不能從伺服器中接受 DNS 的位址 ,然而,作為 PPP 伺服器時, 它可以用 pppd 的選項 dns-addr 為客戶端 指定這個資訊. * 該伺服器是否需要使用 PAP/CHAP? 如果是這樣你需要知道你用來連線 "id" 以及 "secret" .(這大概會是你 的在這個 ISP 的使用者名稱以及密碼). * 伺服器會自動起動 PPP 或者在一旦你簽入之後需要發出任何指令來起動伺服 端的 PPP? 如果你必須下某個指令來起動 PPP 的話,它是什麼? * 如果伺服器是微軟的 Windows NT 系統,它是否使用微軟的 PAP/CHAP 系 統? 許多公司的區域網路似乎是使用 Windows NT 的系統以增加安全性. 仔細地注意這些資訊 - 你馬上要使用它們! 9. 設定你的數據機及串列埠 你應該確認你的數據機設定正確而且你知道它連接到哪個串列埠. 謹記:- * DOS com1: = Linux /dev/cua0 (and /dev/ttyS0) * DOS com2: = Linux /dev/cua1 (and /dev/ttyS1) 等等 還要提醒你就是如果你有四個串列埠,標準 PC 上讓 com1 與 com3 共用 IRQ4 且讓 com2 與 com4 共用 IRQ3. 如果你有其它機裝置和串列埠共用一個 IRQ 的話可能會有問題. 你必須確定你 的數據機串列埠擁有它自己,唯一的一個 IRQ.許多現在的串列埠卡(與品質較佳 的主機板上的串列埠)允許你將串列埠上的 IRQ 移開. 如果你在用 Linux 2.0.X 核心,你可以用 cat /proc/interrupts 檢查使用中的 IRQ,你會看到像這樣的輸出結果 _________________________________________________________________ 0: 6766283 timer 1: 91545 keyboard 2: 0 cascade 4: 156944 + serial 7: 101764 WD801310: 134365 + BusLogic BT-95813: 1 math error15: 3671702 + serial _________________________________________________________________ 這里顯示了一個串列埠在 IRQ4 (一個滑鼠)與一個串列埠在 IRQ15. (也有一串 列埠在 com2, IRQ3 與 com4 是在 IRQ14,但并未使用,沒有顯示出來). 請小心 - 如果你要調你的 IRQ 的話你要確實知道你在做些什麼! 你不只需要打 開你的電腦外殼,將界面卡拔下并調整 jumper,你還需要知道那個占用什麼 IRQ. 以我的例子來說,這完全是以 SCSI 為主的 PC,因此我將主機板上的通常 會占用 IRQ14 與 15 的 IDE 界面關掉. 你還需要注意如果你的 PC 還跑了其它的作業系統,更動 IRQ 的位址可能使那個 作業系統啟動不正常,或根本開不了機! 如果真的將串列埠移到了非標準的 IRQ,那麼你需要告訴 Linux 每一個埠所用的 IRQ 位址. 這可以用 setserial 指令達成,而且最好將它放到 rc.local,或在 SysV 系統中由 rc.local 所呼叫的 rc.serial 里面成為開機過程的一部份. 以 我上面所列的機器來說,用這樣的指令 _________________________________________________________________ /bin/setserial -b /dev/ttyS2 IRQ 11/bin/setserial -b /dev/ttyS3 IRQ 15 _________________________________________________________________ 然而,如果你使用由 kerneld 行程所負責的動態載入串列模組,你不能像這樣每 次開機時設定一次 IRQ 後就把它忘了. 這是因為如果串列模組被移除,Linux 就會忘了這些特殊的設定. 因此,如果你以動態方式載入串列模組,你必須要在每入載入模組時重新設定 IRQ 才行. 9.1 串列埠與速度相容性的注意事項 如果你使用高速(外接式)數據機(14,400 baud 或更高),你的串列埠速度必須能 夠處理這種數據機所產生的資料量,特在是當數據機在壓縮資料時. 你的串列埠需要一種新型的 UART (Universal Asynchronous Receiver Transmitter),像是 16550(A). 如果你在使用一部舊的機器(或舊的串列卡), 很可能串列埠上只有舊的 8250 UART,這在你使用高速數據機時可能會發生問題 . 使用這個指令 setserial -a /dev/ttySx 讓 Linux 回報你使用的 UART 類型.如果你沒有 16550A 型的 UART,去買一塊 新的串列卡(不到 $50). 當你買一塊新卡時,確定你能調整上面的 IRQ! 注意: 最早版本的 16550 UART 晶片上有瑕疵.這點很快就被發現了而且也發行 了新版的晶片 - 16550A UART. 但仍有少部份有瑕疵的晶片流入了市面.雖然不 太可能剛好就讓你買到,但你還是應該看一下晶片類型是不是 16550A,特別是在 一些較早期的串列卡上. 9.2 串列埠名稱 以前,Linux 用 cuaX 表示撥出的串列埠名而 ttySx 表示撥入的名稱. 自核心 2.0.X 之後這樣的要求已經改變了,所以你應該可以用 ttySx 同時表示 撥入及撥出的名稱. 據我了解 cuaX 的裝置名稱在未來版本的核心中可能會取消 . 9.3 配置你的數據機 為使用 PPP 你將得正確地配置你的數據機 - 要完成這件工作請閱讀你的數據機 使用手冊! 大部分的數據機都有 PPP 所需求的的出廠預設選項. 最基本的配置 是:- * 硬體流量控制 (RTS/CTS) (&K3 在許多采用 Hayes 指令集的數據機) 你應該要研究的其它設定(使用標準 Hayes 指令)是: * E1 開啟指令的本地回應 (chat 運作所需) * Q0 回報執行結果代碼 (chat 運作所需) * S0=0 關閉自動回應 (除非你想讓你的數據機接聽電話) * &C1 只在連線之後偵測載波 * &S0 Data Set Ready (DSR)永遠設為開啟 * (看情況) Data Terminal Ready 有一個站臺提供你不斷增加的數據機款式的設定,可能會對你有所幫助,在 [36]Modem setup information. 在你的電腦與數據機之間的數據機串列面界面如何運作也值得研究了解. 大部分 現代的數據機都允許你以固定的速度使用串列界面,即使電話線路界面切換到最 高的速度它跟遠端數據機都能夠處理. 這稱為 split speed operation.如果你的數據機能支援這項功能,把數據機的 串列界面鎖定在它的最高速度(通常是 115,200 baud ,但對 14,400 數據機來 說可能是 38,400 baud). 使用你的通訊軟體(例如 minicom)找出關於你數據機的配置資訊并且設為 PPP 所需的設定. 許多數據機會在 AT&V 指令的回應中回報它們目前的設定狀況,但 是你應該查看一下你的數據機使用手冊. 如果你把設定全都弄亂了,那麼你可以藉由發出 AT&F 指令回到穩定狀態(通常 可以) - 回到出廠設定. (在我遇過的大部分現代數據機中,出廠的設定包含 所有使用 PPP 所需的設定 - 但是你應該做個檢查). 一旦你找出了必要的設定字串就把它寫下來.然後你必須做個決定: 你可以將這 些設定值存在數據機上的非揮發性記憶體中這樣可以用適當的 AT 指令就可叫出 . 另一個做法是將這些正確的設定在 PPP 的撥號過程中傳入. 如果你只從 Linux 下使用數據機連接到 ISP 伺服器,最簡單的做法就是將這些 設定值存入數據機上的非揮發性記憶體(non-volatile RAM). 另一方面,如果你要還在其它的應用程式或作業系統上使用數據機,最保險的做 法是在每次撥號時才將這些資訊傳入, 如此可以確保在每次撥號時數據機總是在 正確的狀態.(記下這些設定字串還有個好處就是在數據機遺失了記憶體的內容時 ,這確實可能發生). 9.4 串列流量控制注意事項 當資料在串列通訊線路上流動的時候,可能會發生資料到達的比電腦能處理的還 要快這種情況(電腦可能忙著做其它的事 - 記得,Linux 是一個多使用者,多 工的作業系統). 為了確保資料不會漏失(在緩沖區中的資料不會超載而因此漏 失掉),需要某些控制資料流量的方法. 有兩種方法可以在串列線路上達成這個目的:- * 使用硬體信號(Clear To Send/Request to Send - CTS/RTS) * 使用軟體信號(control S and control Q, also known as XON/XOFF). 雖然後者用在終端機(文字)連結上可能很好,但是在 PPP 上的資料使用整個 8 bits 編碼空間 - 而且在資料中的某個地方相當可能存在會被轉成 control S 以及 control Q 的位元組. 所以,如果數據機設成使用軟體流量控制的話, 那麼傳輸很容易被擾亂! 對於使用 PPP 的高速連結(使用 8 bits 資料編碼)來說硬體流量控制是很重要 的,因此你必須使用硬體流量控制.
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -