FreeBSD下ADSL共享上网
概述
利用FreeBSD用户级的PPP做FreeBSD下的ADSL共享,可以使用较低的设备配置,实现
局域网的稳定的网络链路共享。同时还可以增加Squid做上网的代理,进一步增加局域网
上网的速度。
FreeBSD可以对PPP提供两种不同方式的支持,一种是内核级PPP,它将PPP协议代码编译
进内核,并运行一个PPP守护进程pppd,提供对PPP的支持,这是比较传统的方法,但配
置比较困难。另一种为用户级PPP,使用一个应用程序PPP,通过通用tunnel设备传递PPP
数据,配置较为容易。一般情况下可以使用用户级的PPP来建立拨号方式的Internet连接。
准备
安装基本的FreeBSD环境,具体可以参照www.freebsdchina.org李冬的《FreeBSD服务器
指南》。必须安装操作系统源代码中的”sys”部分,下面需要重新编译内核以支持防火墙。
然后还需要确认在/etc/ppp目录中是否存在ppp.conf 或者ppp.conf.sample文件。
实例
Dell gx110 PIII 128M 10G 3com905B-tx 10/100Mbps自适应PCI网络适配器。
安装设置
在 FreeBSD 下上网必须要有 tun 这个伪设备,所以必须在内核中加入对 tun 的支持。
在 tun 后面的 1 指定同时可以使用的 tun 设备的个数。
要让整个局域网上的用户都可以访问 Internet 您的机器必须有两张网卡,一个连接
ADSL设备,一个连接局域网的HUB或者switch。另外必须重新编译一次内核。这些选项
主要是在内核中加入对IP转发的支持。客户机将IP数据包发到FreeBSD,然后FreeBSD
就将这些数据包转发到指定的地址。这就是让 FreeBSD 带动整个局域网上网的基本原理。
实例
在内核文件中添加如下内容:
device tun 1 # 根据实践发现此行内容可以不加。
options IPFIREWALL # 打开防火墙选项
options IPFIREWALL_FORWARD
options IPFIREWALL_VERBOSE # 向系统的注册程序发送注册信息包
options IPFIREWALL_VERBOSE_LIMIT=100 # 限制一台机器注册的次数
options IPFIREWALL_DEFAULT_TO_ACCEPT # 使得缺省的规则允许所有形式的访问
options IPDIVERT # 启用由ipfw divert使用的转向IP套接字
# 这一选项需要与natd联合使用
要启用ipfw,必须设置IPFIREWALL选项,它将通知操作系统的内核检查每个IP数据包,
将它们与规则集进行比较,通过添加IPFIREWALL_VERBOSE选项包括注册支持是一个好主
意,还应该通过添加IPFIREWALL_VERBOSE_LIMIT选项来限制内核注册的数据包的数量。
配置
还需要设置etc/ppp/ppp.conf文件
实例
/etc/ppp/ppp.conf
default:
set log Phase tun command #
set ifaddr 10.0.0.1/0 10.0.0.2/0 #设置本地PPP连接的IP地址
adsl : #配置代号
set device PPPoE: xl1 # 用你的网卡设备名称替代xl1
set authname #你的ADSL登陆名称
set authkey #你的账号密码
set dial
set login
add default HISADDR # 设置默认路由为对方的地址
enable dns #从拨号服务器中获得正确的DNS服务器地址
配置
最后,设置/etc/rc.conf文件打开gateway选项。
实例
编辑/etc/rc.conf 文件
加入:
gateway_enable="YES"
特别提示:如果要实际开机自动拨号,还要增加以下内容到 /etc/rc.conf 文件里!
ppp_enable="YES"
ppp_mode="ddial"
ppp_nat="YES"
ppp_profile="adsl" # 所要拨号的配置代号
配置
在如上述配置完毕,网络访问会有问题,因为防火墙的默认配置是都不可访问。下面需
要配置防火墙规则来允许访问,和禁止访问。
实例
首先用如下命令察看当前的防火墙配置:
/sbin/ipfw
- 最新评论