对于FreeBSD PPPoE设置的知识,我们今天就来系统地讲解一下。那么分为四个步骤来帮助大家学习。首先是环境,看看我们的搭建环境以及一些相应的条件。之后对于编译,配置和启动内容再来详细看看。
FreeBSD PPPoE设置== .0. == 环境
网络环境:
*DSL PPPoE连接;
硬件准备:
- - pentium II 233mhz MMX
- - 10G
- - 128 meg RAM
- - 2 x Intel eepro100
- - alcatel 1000 DSL external modem
- - one ethernet interface connected to DSL modem (10Mbit, half duplex)
- - one ethernet interface on LAN (100Mbit, half duplex)
软件准备:
最小化安装的FreeBSD (3.4+或4.1+)
c/c++编译环境
内核源代码树
ppp和pppd (内置)
在一般情况下,推荐使用FreeBSD 4.8 / 4.9及配套源代码
注意:
在连接外网的NIC上不需要配置IP地址,只要ifconfig把这个接口UP起来即可,在内网地址上可以配置静态IP地址,作为FW/NAT使用。
性能: 在233M CPU的机器上,运行FreeBSD 4.8作为一个NAT/PPPoE网关,当系统内存为48M时,平均负载大约为4%,在celeron 800 + 128M Ram时,负载低于1%;在更多的网络客户端连接和更大流量情况下,负载会有一定上升;如果启用了较多的防火墙规则或使用了状态检测的话,可能需要更多内存(但是一般情况下128M足够了)。
FreeBSD PPPoE设置== .1. == 编译
在内核配置文件中加入如下行(FreeBSD 4.1以上版本):
- 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
- {
- 在FreeBSD 3.*版本中配置如下:
- options NETGRAPH
- 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_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
- }
根据你所选择的防火墙类型(Ipfilter或IPFW),可能还需要加入如下配置:#p#
- ## (for ipfilter)
- options IPFILTER
- options IPFILTER_LOG
- options IPFILTER_DEFAULT_BLOCK
- ##
- ## (for IPFW)
- options IPFIREWALL
- options IPFIREWALL_DEFAULT_TO_ACCEPT
- options IPFIREWALL_VERBOSE
- options IPDIVERT
- ##
配置完成之后,编译并安装:
# cd /usr/src && make buildkernel KERNCONF=配置名 && make installkernel KERNCONF=配置名
FreeBSD PPPoE设置== .2. == 配置
编译和安装成功后,修改ppp配置文件/etc/ppp/ppp.conf:
- ##
- default: # or name_of_service_provider
- set device PPPoE:fxp0 #替换fxp0为你的网卡接口设备名
- 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
- nat enable yes
- set cd off
- set crtscts off
- set redial 0 0
- papchap:
- set authname #PPPoE用户名
- set authkey #PPPoE密码
- ##
配置完成后,运行:
# ppp -dedicated
FreeBSD PPPoE设置== .3. == 启动
如果一切顺利,那么可以设置fw和PPPoE为自动启动,在/etc/rc.conf中添加如下配置:
- ## /etc/rc.conf
- ppp_enable="YES"
- ppp_mode="dedicated"
- ppp_nat="YES"
- ppp_profile="default"
- ## (如果使用IPFW)
- gateway_enable="YES"
- firewall_enable="YES"
- firewall_quiet="YES"
- natd_interface="fxp0"
- natd_enable="YES"
- ## (如果使用ipfilter)
- gateway_enable="YES"
- ipfilter_enable="YES"
- ipnat_enable="YES"
***,就根据你自己的情况进行防火墙规则的配置吧。