发信人: neal()
整理人: hahalee(1999-04-22 02:54:21), 站内信件
|
From: [email protected] (KO) Newsgroups: tw.bbs.comp.386bsd Subject: 如果架PPP Server in Freebsd Date: 6 Aug 1997 23:28:59 GMT 如何让FreeBSD成为PPP拨接伺服器 (特定MODEM对特定IP) 本文举例如何以kernel mode PPP, 即pppd(8), 提供PPP 拨接伺服器的功能。 请注意所用MODEM必须是可以 1. auto answer incoming call, and 2. can auto reset when DTR signal drops. ZZ. AA.让kernel 支援ppp device BB.设定MODEM CC.设定/etc/ttys DD.决定PPP 两端的IP EE.设定pppd的options FF.怎麽用? AA. 请确定您所用的kernel 支援ppp device. 如果没有的话您必须修改它。 (FreeBSD handbook, 5.3.8. Networking, pseudo-device ppp number) 如果有支援,那麽打ifconfig -a 大概会有如下这样的讯息: ppp0: flags=8010<POINTOPOINT,MULTICAST> mtu 1500 ppp1: flags=8010<POINTOPOINT,MULTICAST> mtu 1500 显示有两个ppp device。 BB. 接下来请参照modem的说明书将他设定为前述的: 1. auto answer. 2. Reset when DTR signal drops, 以及 3. 关掉command line echo. 4. 不要display result code. 当然您必须要先有适当的cable连接modem 和主机的RS-232 port。 连接好了之後可以用cu 指令来跟modem讲话(通常只有root才可以用cu): # cu -l /dev/cuaa1 -s 115200 connected 当cu 打开/dev/cuaa1 时,连接cuaa1 的modem 的DTR灯会亮。 在cu 下,可打~. 跳出。 CC. 您必须知道如何接序列埠的terminal,(FreeBSD handbook, 11. Serial Communications, 11.2.3. Configuration) 例如/etc/ttys中: # Serial terminals ttyd0 "/usr/libexec/getty std.9600" unknown off secure ttyd1 "/usr/libexec/getty std.115200" vt100 on insecure ttyd2 "/usr/libexec/getty std.9600" unknown off secure ttyd3 "/usr/libexec/getty std.9600" unknown off secure 设定ttyd1使能□上相连的terminal,连线速度(transmittion speed between modem and the interface)固定115200bps,当作vt100 terminal 对待,不允许root login。 如果您的modem 已经□上com2 (ttyd1),这时kill -1 1 就会见到modem 上 的DTR灯亮起 表示主机已经待命。如果modem DTR灯没有亮起来,那就。。。。 至此您可以用普通terminal 模拟程式拨进那台modem 看看,拨通之後应该可以看到 FreeBSD的login画面。 login 进去後,再logout, 则modem 挂断。 DD. 每一个dialup连上後要用掉两个IP,local端与remote端各一,也就是 server端与client端各一。除非您拥有正式核发的IPs,不然请千万从 Private IP里挑选您喜欢的来用。 10.0.0.0 - 10.255.255.255 (10/8 prefix) 172.16.0.0 - 172.31.255.255 (172.16/12 prefix) 192.168.0.0 - 192.168.255.255 (192.168/16 prefix) 比如设server端为 172.16.0.10 client端为 172.16.0.20 这样为 一对,一个client拨上来要用掉 一对 IP。 假如您提供两个或三个MODEM让人拨接,那麽就需要两对或三对IP。 EE. 设定/etc/ppp/options 档。 /etc/ppp/options 内容设定了pppd(8)启动後的动作,options 可以在 命令行里指定,不过/etc/ppp/options这个档必须是存在的。它可用来当作 对各个ttyd?的default设定,ttyd?的个别设定可以放在/etc/ppp/options.ttyd? 之中。 /etc/ppp/options crtscts # Hardware flow control netmask 255.255.255.0 # netmask ( not required 因为好像改了也没 用...呵) domain abc.efg.net # your domain passive # wait for LCP modem # modem line /etc/ppp/options.ttyd1 172.16.0.10:172.16.0.20 # local:remote IP # i.e. server-side will get IP 172.16.0.10 # client-side will get IP 172.16.0.20 FF. 拨通後,login,打pppd就开始ppp pocket-mode. ===================================================================== From: [email protected] (Eddie Wang) Newsgroups: tw.bbs.comp.386bsd Subject: 另一个架ppp server的方式 Date: Sun, 10 Aug 1997 14:08:00 GMT 在这提供一种简单架设ppp server的方法,主要是利用 [email protected] 所提供的pppkit.tgz来使FreeBSD 成为一个使用系统密码档及pap方式认证的terminal server。 大家可以在下列地方取得pppkit.tgz ftp://ftp.hilink.com.au/pub/FreeBSD/pppkit.tgz or ftp://freebsd.csie.nctu.edu.tw/pub/jdli/collect/ppp/pppkit.tgz 除此之外我还参考了handbook第11、12章以及FAQ第十章, 有兴趣的人可顺便看一下。 我的系统是 2.2 stable (0803) cuaa0==>GVC 宝时捷33.6k cuaa1==>创巨 modem blaster 28.8k 以下的说明皆以我的系统为□例,请自行依需要修改。 解开pppkit.tgz後的档案如下: pppkit/etc/ppp/ppp.ports 指定由ttyxx拨入後将得到的ip pppkit/etc/ppp/ppp.disabled 设定哪些人不可用pap ppp的方式拨入 pppkit/etc/ppp/options 设定给拨入端的DNS server pppkit/etc/ppp/ppp.users 设定给某些特定的user固定ip,前提是这些user用一般的 Login:/Password:提示符号login的而不是用pap(设定方法请 参考README) pppkit/etc/gettytab 参考用的 pppkit/bin/ppplogin.sh 提供给ppp user的login shell并且也让getty去启动pppd pppkit/bin/fancyppplogin.sh 同上 pppkit/usr/sbin/pppd-22 提供给2.2+使用者的pppd pppkit/usr/sbin/pppd-215 给2.1.5+的pppd pppkit/usr/libexec/getty 2.1.5的user需要将原来的getty换成这个 pppkit/README 说明文件,我这篇post 80%+都在里面有说明 开始吧 * 先确定kernel中有ppp interface,并把modem接好,power on。 * cp pppkit/usr/sbin/pppd-22 /usr/sbin/pppd (这是README说的,我没做:p ) chown root.bin /usr/sbin/pppd ; chmod 4555 /usr/sbin/pppd * cp pppkit/etc/ppp/* /etc/ppp * 修改/etc/ppp/options 将给拨入端的的dns server ip填入 假如你预备将ppp0的ip设定成和你网卡的ip相同的话,请加上 proxyarp这个keyword * 修改/etc/ppp/ppp.ports 我只预备将ttyd1提供拨入,因此只要 设定一行"d1 xxx.xxx.xxx.xxx" * cp pppkit/bin/ppplogin.sh /usr/local/bin 并修改其中 LOCAL=xxx.xxx.xxx.xxx 将xxx....换成你预备指定 给local端的ip(如上所说,可设定成和网卡相同) * 编辑一个/etc/ppp/ppp.shells 格式如同/etc/shells 至少要加上/usr/local/bin/ppplogin.sh以及你预备提供拨接服务 的user所用的shell * 看看/etc/ppp/ppp.disabled中少列了哪些你不想让他拨入的,加上去。 * 将/etc/ttys中关於ttyd1那行改成: ttyd1 "/usr/libexec/getty std.57600" dialup on insecure * 将/etc/gettytab中开头是std.57600那项设定改成: std.57600|57600-baud:\ :np:sp#57600:pp=/usr/local/bin/ppplogin.sh 大致设定完成了,现在请 kill -HUP 1;ps -ax应该会看到这行 13143 ?? I 0:00.01 /usr/libexec/getty std.57600 ttyd1 现在要设定数据机了,handbook上说要上数据机能够正常提供dialin 的话必须: 1.CD asserted when connected (&C1) 2.DTR asserted for operation; dropping DTR hangs up line & resets modem (&D2) 3.CTS transmitted data flow control (&K3) 4.Disable XON/XOFF flow control (找不到:p,不过这项在rc.serial 应该已经是预设的了) 5.RTS received data flow control (&K3) 6.Quiet mode (no result codes) (Q1) 7.No command echo (E0) 另外我想要把这些设定储存起来 (&W0) 以及要modem在响一声後自动接电话 (S0=1) 翻翻modem的手册,我的modem blaster应设定如下: AT&C1&D2&K3E0Q1S0=1&W0 要设定modem请先在/etc/remote中加上一行: cuaa1:dv=/dev/cuaa1:br#57600:pa=none 然後就可以用tip cuaa1来设定了,设定完用"~."结束。 现在可以试拨看看了。在拨入端的设定和一般拨SEEDNet(非广告) 一样,不论是95,nt,or FreeBSD都很顺利。当初我在测试的时候 用cuaa0拨到ttyd1,然後用ifconfig -a去看..真是精采:) 以上如有疏漏之处,欢迎在板上指正。 -- 王守谦 (Eddie Wang) mailto:[email protected]
-- ※ 来源:.网易 BBS bbs.netease.com.[FROM: dmx320.resnet.ust.hk]
|
|