FreeBSD下配置ADSL共享上网

利用FreeBSD用户级的PPP做FreeBSD下的ADSL共享上网,可以使用较低的设备配置,实现局域网的稳定的网络链路共享。同时还可以增加Squid做上网的代理,进一步增加局域网上网的速度。

FreeBSD可以对PPP提供两种不同方式的支持,一种是内核级PPP,它将PPP协议代码编译进内核,并运行一个PPP守护进程pppd,提供对PPP的支持,这是比较传统的方法,但配置比较困难。另一种为用户级PPP,使用一个应用程序PPP,通过通用tunnel设备传递PPP数据,配置较为容易。一般情况下可以使用用户级的PPP来建立拨号方式的Internet连接。

准备

安装基本的FreeBSD环境。然后确认在/etc/ppp目录中是否存在ppp.conf 或者ppp.conf.sample文件。

安装设置

要让整个局域网上的用户都可以访问 Internet ,您的机器必须有两张网卡,一张连接ADSL设备,一张连接局域网的HUB或者交换机。此外,重新编译一次内核是必须的,因为我们需要在内核中加入对IP转发的支持,客户机将IP数据包发到FreeBSD,然后FreeBSD作为网关,将这些数据包转发到指定的地址,这就是整个局域网上网的基本原理。

实例

视ADSL Modem只是一个拨号器,它不带任何附加功能(如路由)。使用FreeBSD自带的ppp来达到PPPoE拨号功能,实现最基本的目的:供内部网络中所有客户机通过FreeBSD网关用nat方式(透明网关)连接到Internet,这种方式最大的好处是内部网络的客户机不需特殊配置就能连接到外部网络。

一、服务器IP设定:

第一块网卡
IP:192.168.1.1
子网掩码:255.255.255.0
网关:NONE

第二块网卡
IP:192.168.2.1
子网掩码:255.255.255.0
网关:NONE

二、设置一个使用PPPoE的ppp呼出

将/etc/ppp/ppp.conf进行备份,以下是修改后的ppp.conf内容(除标签名为,以下每行前面都必须空一格):

default:
set device PPPoE:eth0 #eth01为连接ADSL Modem的网卡名称,应替换成你使用的设备名
enable dns #自动获取DNS
adsl: #标签名,可任意命名
set mru 1492
set mtu 1492
set authname myadslusername #ADSL用户名
set authkey myadslpassword #ADSL密码
set dial
set login
add default HISADDR

以上只有三处需要进行修改,即连接ADSL Modem的网卡名称、上网用户名上密码。如果你不知道自己的网卡名称,可以通过ifconfig -a命令得到。

三、设置启动时自动连接

将下面这些行加到/etc/rc.conf文件中:

getway_enable=”YES”

ppp_enable=”YES”
ppp_mode=”ddial” #断线重拨
ppp_profile=”adsl” #这里的adsl对应的是/etc/ppp/ppp.conf中的标签名
ppp_nat=”YES”

如果你想手动连接,则可以通过以下命令实现:

ppp -nat -ddial adsl

这样,FreeBSD网关服务器端已经设置完成,设置客户端的网关为192.168.1.1即可上网,如果需要自动分配IP地址,可另行安装dhcpd,如果需要进行网络的加速,可另行安装squid。