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

    技术2022-05-11  47

    本人在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 sp2VMWare 5.0 (现在出到5.5了)最小化安装的FreeBSD 5.4ppp和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 IPFIREWALLoptions IPFIREWALL_VERBOSEoptions IPFIREWALL_VERBOSE_LIMIT=5options IPFIREWALL_DEFAULT_TO_ACCEPToptions 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 0papchap:   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拿来学习其他的系统。

    最新回复(0)