科技讯息网 – 程序员的那点事!

首页 > 编程资料 > Solaris > 正文

pppoe+ipfilter在sol8下用ADSL代理局域网机器上网

浏览次数:次 2004年05月04日 作者:nimysun 字号:

下面我就说说我是如何使用solaris?8(sparc)代理局域网机器上网的。

========================
硬件准备,SUN?SPARC工作站1台,网卡两个,直连线两根(1根用来连接hme0和HUB,另一根用来连接hme1和ADSL?modem)。
=================================================
软件准备:
??1、安装Solaris?8操作系统,安装过程中选择最终用户模式,在安装的下一步选择自定义安装,补上两个ppp相关的软件包。
??2、给系统打上最新的sol8?recommended_patch(可选,我的系统是108528-13,并没有升级最新的patch)。
??3、添加一些配置文件。
========================
一、系统基本设置
#?touch?/etc/ppp/pppoe.if
重启系统后会创建拨号相关的文件

#?touch?/etc/gateways
重启后会添加IP路由功能

#?touch?/etc/hostname.hme1
重启后会添加上第二块网卡,该网卡如果已经添加,那么可省去此步。通过ifconfig?-a可以查看该网卡是否启用。该网卡hme1是和adsl?modem相连的网卡。

#?echo?"nameserver?202.96.134.133"??>;?/etc/resolv.conf
添加上离你最近的DNS服务器,重启生效,可以在此文件中添加多个DNS?server。

#?cp?/etc/nsswitch.dns?/etc/nsswitch.conf
此步骤的目的是修改/etc/nsswitch.conf,当然直接改动/etc/nsswitch.conf。

=================================================
二、PPPOE基本设置
确认系统中已经安装上如下的软件:
SUNWpppd?-?Solaris?PPP?Device?Drivers
SUNWpppdr?-?Solaris?PPP?configuration?files
SUNWpppdt?-?Solaris?PPP?Tunneling
SUNWpppdu?-?Solaris?PPP?daemon?and?utilities
SUNWpppdx?-?Solaris?PPP?64-bit?(ONLY?needed?for?SPARC's?with?64-bit?kernels)?
如果没有,那么从solaris的第二张安装光盘盘中进行补装。有两个ppp的大软件包,选上即可。

#?reboot?--?-r
重新进入系统之后,going?on.......
#?ls?/dev?|?grep?ppp???????????确认存在sppp和sppptun
#?grep?sppp?/etc/name_to_major
sppp?146
sppptun?147?

编辑拨号配置文件
#?vi?/etc/ppp/peers/bohao 添加如下几行
sppptun
plugin?pppoe.so
connect?"/usr/lib/inet/pppoec?hme1" #hme1是与MODEM相连的网卡
persist #自动重播
user?"USERNAME" #?username
noauth
noipdefault
noccp
novj
noaccomp
nopcomp
defaultroute
存盘退出
由于你的ISP需要对你进行密码验证,所以你还要编辑一下密码文件,但是ISP可能用到的文件是/etc/ppp/chap-secrets和/etc/ppp/pap-secrets
因此分别要到这两个文件中的最后一行中追加:
username?*?password
我要提醒的是:上行中的字段之间是TAB键分割的,而不是空格。
到此为止,配置已经结束了,接下来就是拨号。
绑定网卡
#?sppptun?plumb?pppoed?hme1
#?sppptun?plumb?pppoe?hme1
#?sppptun?query 检查是否绑定成功
#?/usr/lib/inet/pppoec?-i?hme1?探测与hme1相连的ISP网卡的MAC地址信息,主要是确保物理线路是否存在问题。
#?/usr/bin/pppd?call?bohao bohao为/etc/ppp/peers的一个拨号配置文件。
#?ifconfig?-a 验证是否出现sppp0的网口,如果网络不畅,此处可能需要等一段时间。
可以把上述的操作简单的写成一个教本,开机自动执行。
#?vi?/etc/rc2.d/S48bohao 添加如下几行
sppptun?plumb?pppoed?hme1
sppptun?plumb?pppoe?hme1
/usr/bin/pppd?call?bohao
存盘退出
#?chmod?u+x?/etc/rc2.d/S48bohao
到此,服务器的拨号设置告一段落。

===========================================
三、IP?Filter的配置。
我的方法比较简单。
上网上下载二进制文件ipf-3.4.31-sol8-sparc32-64.gz
参考网址:http://anders.fix.no/solaris/pkg/sol8/sparc32-64/
在文件的当前目录解压
#?gzip?-d?ipf-3.4.31-sol8-sparc32-64.gz
#?pkgadd?-d?ipf-3.4.31-sol8-sparc32-64.gz
如果没有提示什么错误,那么安装就成功了,接下来继续进行配置
/etc/opt/ipf/ipf.conf是配置规则使用的文件,该文件为空,不建议改动。
编辑文件/etc/opt/ipf/ipnat.conf,并添加如下内容:
map?ppp0?192.168.0.0/24?->;?0/32?proxy?port?ftp?ftp/tcp
map?ppp0?192.168.0.0/24?->;?0/32?portmap?tcp/udp?10000:40000
map?ppp0?192.168.0.0/24?->;?0/32
存盘退出,好啦,就这么简单。重启18414。
#?reboot
#?ifconfig?-a
#?ipnat?-l

需要提示的是:如果采用源码编译的话,那么不敢保证编译成功、安装成功,就一定配置成功。我测试过多个版本的IPFILTER。我上面提到的这个ipfilter最稳定。其他版本多少会有点问题,比如上网正常,而FTP无论如何配置都失败。如果实在要编译,那么请到北大FTP上下载make、autoconf、automake和GCC,到http://coombs.anu.edu.au/~avalon/下载ipfilter的源码。
确认一下你的PATH正确,存在/usr/ucb?/usr/ccs?/usr/ucb/bin/?/usr/ccs/bin和/usr/local/bin等路径。如果没有,那么需要设置一下PATH。
#?PATH=$PATH:/usr/ucb:/usr/ccs:/usr/ucb/bin/:/usr/ccs/bin:/usr/local/bin
#?export?PATH
确认make程序到底是用的那个。
which?make
正常情况下应该是:/usr/local/bin/make。
========================
客户端的设置就是
修改网关为,该服务器的网卡地址。DNS设置为服务器中的/etc/resolv.conf中的DNS地址。
前提要保证网络的联通性。



?youlvniao 回复于:2004-03-16 11:51:57

崇拜,不过我只有一个ss5闲着,装上solaris?8之后慢的跟蜗牛一样,连我都懒的碰了,只能用pc机拨号了。


?wind521 回复于:2004-03-16 12:42:45

不错,收藏


?bulletming 回复于:2004-03-19 11:02:52

老孙,dns是可以随便设的呀


?网络痞子 回复于:2004-03-19 14:57:12

ok,good,


?sgcydd 回复于:2004-05-04 22:52:53

:)?感谢各位的热情指导!