精华区 [关闭][返回]

当前位置:网易精华区>>讨论区精华>>电脑技术>>● FreeBSD>>系统管理>>系统设置与技巧>>系统相关之howto>>系统相关的 : 如何架设 PPP 服务器

主题:系统相关的 : 如何架设 PPP 服务器
发信人: 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]

[关闭][返回]