FreeBSD 下 ADSL 共享上网
作者:黄丽红
邮件:kinki@freebsdchina.org
日期:2002年08月19日
概述
利用FreeBSD用户级的PPP做FreeBSD下的ADSL共享上网,可以使用较低的设备配置,实现局域网的稳定的网络链路共享。同时还可以增加Squid做上网的代理,进一步增加局域网上网的速度。

准备
安装基本的FreeBSD环境,具体可以参照www.freebsdchina.org李冬的《FreeBSD服务器指南》。必须安装操作系统源代码中的"sys"部分,下面需要重新编译内核以支持防火墙。


--------------------------------------------------------------------------------
实例
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

编辑/etc/ppp/ppp.conf文件
default:
set log Phase tun command # you can add more detailed logging if you wish
set ifaddr 10.0.0.1/0 10.0.0.2/0

adsl : #配置代号
set device PPPoE: xl1 # 用你的网卡设备名称替代xl1
set authname 你的ADSL登陆名称
set authkey 你的账号密码
set dial
set login
add default HISADDR

编辑/etc/rc.conf 文件
gateway_enable="YES"
#
# 以下内容为开机自动拨号
ppp_enable="YES"
ppp_mode="ddial"
ppp_nat="YES"
ppp_profile="adsl" # 所要拨号的配置代号


--------------------------------------------------------------------------------

参考资料:
http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/pppoe.html