📄 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 + -