免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3665 | 回复: 4
打印 上一主题 下一主题

[VMware] 在VMWare5.0上实现FreeBSD5.4的PPPoE网关(PPP+IPFW+NAT) [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-11-24 16:46 |只看该作者 |倒序浏览
本人在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
交换机

软件准备:
Windows XP sp2
VMWare 5.0 (现在出到5.5了)
最小化安装的FreeBSD 5.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/ GENERIC firewall_test   (把默认的内核配置文件复制为firewall_test)

在内核配置文件中加入如下行:
#内核开启IPFW防火墙,并允许启用NAT功能
options IPFIREWALL
options IPFIREWALL_VERBOSE
options IPFIREWALL_VERBOSE_LIMIT=5
options IPFIREWALL_DEFAULT_TO_ACCEPT
options IPDIVERT

#内核允许PPPoE的拨号
options NETGRAPH #netgraph(4) system
options NETGRAPH_ASYNC
options NETGRAPH_BPF
options NETGRAPH_CISCO
options NETGRAPH_ECHO
options NETGRAPH_FRAME_RELAY
options NETGRAPH_HOLE
options NETGRAPH_IFACE
options NETGRAPH_KSOCKET
options NETGRAPH_LMI
options NETGRAPH_MPPC_ENCRYPTION
options NETGRAPH_PPP
options NETGRAPH_PPPOE
options NETGRAPH_PPTPGRE
options NETGRAPH_RFC1490
options NETGRAPH_SOCKET
options NETGRAPH_TEE
options NETGRAPH_TTY
options NETGRAPH_UI
options NETGRAPH_VJC

保存配置文件,
运行 #cp /usr/sbin/config firewall_test,若成功,则提醒你到相应的目录里去编译。
运行#cd ../ compile/firewall_test
运行 #make depend;make;make install
系统会自动完成内核的编译和安装

__ .3. __  配置

编译和安装成功后,修改ppp配置文件/etc/ppp/ppp.conf:
default: # or name_of_service_provider
   set device PPPoE:lnc0      # lnc0为VMWare的网卡接口设备名
  set MRU 1490
   set MTU 1490
   set authname YOURLOGINNAME #PPPoE用户名
  set authkey YOURPASSWORD   #PPPoE密码
  set log Phase tun command
   set dial
   set login
   set ifaddr 10.0.0.1/0 10.0.0.2/0
   add default HISADDR
   enable dns          #从/etc/resolv.conf中获取DNS
   nat enable yes
   set cd off
   set crtscts off
   set redial 0 0
papchap:
   set authname             #PPPoE用户名
  set authkey             #PPPoE密码

注意:此文件中除“default:”和“papchap:”两行顶格外,其余的行都要缩进哪怕是一个空格。


__ .4. __   启动

如果一切顺利,那么可以设置FireWall和PPPoE为自动启动,在/etc/rc.conf中添加如下配置:

hostname="FireWall_test"
ifconfig_lnc1="inet 192.168.0.1 netmask 255.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拿来学习其他的系统。

[ 本帖最后由 Hobit 于 2005-11-24 17:07 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2005-11-24 17:00 |只看该作者
感谢,,,,正需要!~

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
3 [报告]
发表于 2005-11-24 17:03 |只看该作者
不错^_^

论坛徽章:
0
4 [报告]
发表于 2005-12-19 12:41 |只看该作者
原帖由 Hobit 于 2005-11-24 16:46 发表
本人在CU的第一篇文章,献丑了


在VMWare5.0上实现FreeBSD5.4的PPPoE网关(PPP+IPFW+NAT)(2005.11.24)

                                   Hobit
                                        [email]zy ...


为什么在ppp.conf 中写了俩个
  1. set authname YOURLOGINNAME #PPPoE用户名
复制代码

  1. set authkey YOURPASSWORD   #PPPoE密码
复制代码

论坛徽章:
0
5 [报告]
发表于 2005-12-19 18:56 |只看该作者
可以精简一下。。呵呵
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP