Csdn-Blog <script language="javascript" src="http://www.023rcsc.com/count/count2.asp"></script>
本人在CU的第一篇文章,献丑了
在VMWare5.0上实现FreeBSD5.4的PPPoE网关(PPP+IPFW+NAT)(2005.11.24)
Hobit
zy5451@gmail.com 缘起:
本人宿舍上网用的是电信的ADSL,五六个人共享一条线,Modem作NAT路由,映射了几个端口供eMule和BT用,一直很稳定。由于内网经常三四个人一起eMule、BT下载,流量很大,两三天要重启一次猫。前段时间有了点问题:经常网速其慢,莫名的断流。刚开始以为可能是是猫的负荷太重,决定使用一台老爷机代替猫来拨号,随便控制内网下载的流量。
由于那台老爷机暂时还没有到位,所以我想先用虚拟机练习一下,搞了几个晚上终于OK了。 试验环境: 硬件准备:
一台能跑VMWare的普通机器
ADSL的Modem 交换机 软件准备:
WindowsXPsp2
VMWare5.0(现在出到5.5了)
最小化安装的FreeBSD5.4
ppp和pppd(内置) IPFW(内置) 网络连接环境:
ADSL接交换机,局域网内的机器都是单网卡接交换机,也就是最常见的用ADSL路由的及接法。 原理:
采用以上的连接方法时,可以让Modem自动拨号,开启NAT,下面的每台机只可以通过Modem路由上网。还有一种情况是其中任意一台机(Windows系统)拨号,在“网络连接”中把PPPoE产生的那个连接共享,就可以让其他机器通过NAT上网了。
我所做的仅仅是把第二种情况下的拨号的那台机器用我的虚拟机代替了。 步骤:
__.1.__系统安装
VMWare上新建客户机,虚拟两块网卡,采用第一种连接,也就是桥接的方式,最小化安装FreeBSD5.4,安装内核源码。在连接外网的NIC上不需要配置IP地址,只要ifconfig把这个接口UP起来即可,在内网地址上可以配置静态IP地址,作为FW/NAT使用。 __.2.__编译
运行#cp/sys/i386/conf/GENERICfirewall_test (把默认的内核配置文件复制为firewall_test)
在内核配置文件中加入如下行:
#内核开启IPFW防火墙,并允许启用NAT功能
optionsIPFIREWALL
optionsIPFIREWALL_VERBOSE
optionsIPFIREWALL_VERBOSE_LIMIT=5
optionsIPFIREWALL_DEFAULT_TO_ACCEPT
optionsIPDIVERT
#内核允许PPPoE的拨号
optionsNETGRAPH#netgraph(4)system
optionsNETGRAPH_ASYNC
optionsNETGRAPH_BPF
optionsNETGRAPH_CISCO
optionsNETGRAPH_ECHO
optionsNETGRAPH_FRAME_RELAY
optionsNETGRAPH_HOLE
optionsNETGRAPH_IFACE
optionsNETGRAPH_KSOCKET
optionsNETGRAPH_LMI
optionsNETGRAPH_MPPC_ENCRYPTION
optionsNETGRAPH_PPP
optionsNETGRAPH_PPPOE
optionsNETGRAPH_PPTPGRE
optionsNETGRAPH_RFC1490
optionsNETGRAPH_SOCKET
optionsNETGRAPH_TEE
optionsNETGRAPH_TTY
optionsNETGRAPH_UI
optionsNETGRAPH_VJC 保存配置文件,
运行#cp/usr/sbin/configfirewall_test,若成功,则提醒你到相应的目录里去编译。
运行#cd../compile/firewall_test
运行#makedepend;make;makeinstall
系统会自动完成内核的编译和安装
__.3.__ 配置
编译和安装成功后,修改ppp配置文件/etc/ppp/ppp.conf:
default:#orname_of_service_provider
setdevicePPPoE:lnc0 #lnc0为VMWare的网卡接口设备名
setMRU1490
setMTU1490
setauthnameYOURLOGINNAME#PPPoE用户名
setauthkeyYOURPASSWORD #PPPoE密码
setlogPhasetuncommand
setdial
setlogin
setifaddr10.0.0.1/010.0.0.2/0
adddefaultHISADDR
enabledns #从/etc/resolv.conf中获取DNS
natenableyes
setcdoff
setcrtsctsoff
setredial00 papchap:
setauthname #PPPoE用户名
setauthkey #PPPoE密码
注意:此文件中除“default:”和“papchap:”两行顶格外,其余的行都要缩进哪怕是一个空格。
__.4.__ 启动
如果一切顺利,那么可以设置FireWall和PPPoE为自动启动,在/etc/rc.conf中添加如下配置:
hostname="FireWall_test"
ifconfig_lnc1="inet192.168.0.1netmask255.255.255.0" #这块网卡是局域网的网关
ppp_enable="YES"
ppp_mode="background" #ppp_mode设置断线重拨的功能
#ppp_mode="dedicated"
ppp_nat="YES"
ppp_profile="default" #
gateway_enable="YES"
firewall_enable="YES"
firewall_quiet="YES"
firewall_type="open" #设置防火墙的类型
natd_interface="lnc0" #连接Modem的网卡
natd_enable="YES"
保存后,reboot重启系统,FB就会自动拨号,开启NAT了。 小结:
1.这整个过程虽说只是一个试验,我用上面这个虚拟的FreeBSD带了7台机但在我的局域网里已经跑了4天了。在我那台老爷机到位之后,可以按照这些步骤很快把一台FreeBSD的PPPoE防火墙+NAT网关安装完成。
2.如果仅仅作为试验,这样的一个系统还有待研究,像IPFW的端口映射等。
3.VMWare的确是一个强大的工具,我接触她也有3年多了,个人以为在Window上装VM,在VM里玩其他的系统,简直完美的组合。Window拿来日常使用,VM拿来学习其他的系统。
在VMWare5.0上实现FreeBSD5.4的PPPoE网关(PPP+IPFW+NAT) src="http://www.023rcsc.com/count/iframe2.asp" frameborder="0" width="650" scrolling="no" height="160">
在VMWare5.0上实现FreeBSD5.4的PPPoE网关(PPP+IPFW+NAT)
bsp本人在CU的第一篇文章,献丑了
在VMWare5.0上实现FreeBSD5.4的PPPoE网关(PPP+IPFW+NAT)(2005.11.24)
Hobit
zy5451@gmail.com 缘起:
本人宿舍上网用的是电信的ADSL,五六个人共享一条线,Modem作NAT路由,映射了几个端口供eMule和BT用,一直很稳定。由于内网经常三四个人一起eMule、BT下载,流量很大,两三天要重启一次猫。前段时间有了点问题:经常网速其慢,莫名的断流。刚开始以为可能是是猫的负荷太重,决定使用一台老爷机代替猫来拨号,随便控制内网下载的流量。
由于那台老爷机暂时还没有到位,所以我想先用虚拟机练习一下,搞了几个晚上终于OK了。 试验环境: 硬件准备:
一台能跑VMWare的普通机器
ADSL的Modem 交换机 软件准备:
WindowsXPsp2
VMWare5.0(现在出到5.5了)
最小化安装的FreeBSD5.4
ppp和pppd(内置) IPFW(内置) 网络连接环境:
ADSL接交换机,局域网内的机器都是单网卡接交换机,也就是最常见的用ADSL路由的及接法。 原理:
采用以上的连接方法时,可以让Modem自动拨号,开启NAT,下面的每台机只可以通过Modem路由上网。还有一种情况是其中任意一台机(Windows系统)拨号,在“网络连接”中把PPPoE产生的那个连接共享,就可以让其他机器通过NAT上网了。
我所做的仅仅是把第二种情况下的拨号的那台机器用我的虚拟机代替了。 步骤:
__.1.__系统安装
VMWare上新建客户机,虚拟两块网卡,采用第一种连接,也就是桥接的方式,最小化安装FreeBSD5.4,安装内核源码。在连接外网的NIC上不需要配置IP地址,只要ifconfig把这个接口UP起来即可,在内网地址上可以配置静态IP地址,作为FW/NAT使用。 __.2.__编译
运行#cp/sys/i386/conf/GENERICfirewall_test (把默认的内核配置文件复制为firewall_test)
在内核配置文件中加入如下行:
#内核开启IPFW防火墙,并允许启用NAT功能
optionsIPFIREWALL
optionsIPFIREWALL_VERBOSE
optionsIPFIREWALL_VERBOSE_LIMIT=5
optionsIPFIREWALL_DEFAULT_TO_ACCEPT
optionsIPDIVERT
#内核允许PPPoE的拨号
optionsNETGRAPH#netgraph(4)system
optionsNETGRAPH_ASYNC
optionsNETGRAPH_BPF
optionsNETGRAPH_CISCO
optionsNETGRAPH_ECHO
optionsNETGRAPH_FRAME_RELAY
optionsNETGRAPH_HOLE
optionsNETGRAPH_IFACE
optionsNETGRAPH_KSOCKET
optionsNETGRAPH_LMI
optionsNETGRAPH_MPPC_ENCRYPTION
optionsNETGRAPH_PPP
optionsNETGRAPH_PPPOE
optionsNETGRAPH_PPTPGRE
optionsNETGRAPH_RFC1490
optionsNETGRAPH_SOCKET
optionsNETGRAPH_TEE
optionsNETGRAPH_TTY
optionsNETGRAPH_UI
optionsNETGRAPH_VJC 保存配置文件,
运行#cp/usr/sbin/configfirewall_test,若成功,则提醒你到相应的目录里去编译。
运行#cd../compile/firewall_test
运行#makedepend;make;makeinstall
系统会自动完成内核的编译和安装
__.3.__ 配置
编译和安装成功后,修改ppp配置文件/etc/ppp/ppp.conf:
default:#orname_of_service_provider
setdevicePPPoE:lnc0 #lnc0为VMWare的网卡接口设备名
setMRU1490
setMTU1490
setauthnameYOURLOGINNAME#PPPoE用户名
setauthkeyYOURPASSWORD #PPPoE密码
setlogPhasetuncommand
setdial
setlogin
setifaddr10.0.0.1/010.0.0.2/0
adddefaultHISADDR
enabledns #从/etc/resolv.conf中获取DNS
natenableyes
setcdoff
setcrtsctsoff
setredial00 papchap:
setauthname #PPPoE用户名
setauthkey #PPPoE密码
注意:此文件中除“default:”和“papchap:”两行顶格外,其余的行都要缩进哪怕是一个空格。
__.4.__ 启动
如果一切顺利,那么可以设置FireWall和PPPoE为自动启动,在/etc/rc.conf中添加如下配置:
hostname="FireWall_test"
ifconfig_lnc1="inet192.168.0.1netmask255.255.255.0" #这块网卡是局域网的网关
ppp_enable="YES"
ppp_mode="background" #ppp_mode设置断线重拨的功能
#ppp_mode="dedicated"
ppp_nat="YES"
ppp_profile="default" #
gateway_enable="YES"
firewall_enable="YES"
firewall_quiet="YES"
firewall_type="open" #设置防火墙的类型
natd_interface="lnc0" #连接Modem的网卡
natd_enable="YES"
保存后,reboot重启系统,FB就会自动拨号,开启NAT了。 小结:
1.这整个过程虽说只是一个试验,我用上面这个虚拟的FreeBSD带了7台机但在我的局域网里已经跑了4天了。在我那台老爷机到位之后,可以按照这些步骤很快把一台FreeBSD的PPPoE防火墙+NAT网关安装完成。
2.如果仅仅作为试验,这样的一个系统还有待研究,像IPFW的端口映射等。
3.VMWare的确是一个强大的工具,我接触她也有3年多了,个人以为在Window上装VM,在VM里玩其他的系统,简直完美的组合。Window拿来日常使用,VM拿来学习其他的系统。
在VMWare5.0上实现FreeBSD5.4的PPPoE网关(PPP+IPFW+NAT) src="http://www.023rcsc.com/count/iframe2.asp" frameborder="0" width="650" scrolling="no" height="160">