如何最简单地使用FreeBSD来建立一个网关,针对的目标是现在大家普遍使用的PPPoE,本文不会涉及到传统的电话拨号、IPFW和IPfilter的内容,因为这部分内容较为复杂,而且已经有太多的文章可供参考。
一、设定:
1.本文操作环境是FreeBSD 4.8-RELEASE,使用系统默认内核。
2.视ADSL Modem只是一个拨号器,它不带任何附加功能(如路由)。使用FreeBSD自带的ppp来达到PPPoE拨号功能,实现最基本的目的是:供内部网络中所有客户机通过FreeBSD网关用NET方式(透明网关)连接到Internet,这种方式最大的好处是内部网络的客户机不需特殊配置就能连接到外部网络。
3.服务器IP和DNS设定
第一块网卡
IP:192.168.1.1
子网掩码:255.255.255.0
网关:NONE
第二块网卡
IP:192.168.1.2
子网掩码:255.255.255.0
网关:NONE
因为笔者的操作环境是一个小型局域网,所以其它客户机的IP都是在192.168.1这个网段内。ADSL Modem连接在服务器的第一块网卡上,服务器的第二块网卡连接的是HUB,所有客户机都连接在HUB上。
二、设置一个使用PPPoE的ppp呼出
将/etc/ppp/ppp.conf进行备份,以下是修改后的ppp.conf内容(除标签名为,以下每行前面都必须空一格):
default:
set device PPPoE:fe1 #fe1为连接ADSL Modem的网卡名称,应替换成你使用的设备名
enable dns #自动获取DNS
adsl: #标签名,可任意命名
set authname ******** #ADSL用户名
set authkey ******** #ADSL密码
set dial
set login
add default HISADDR
以上只有三处需要进行修改,即连接ADSL Modem的网卡名称、上网用户名上密码。如果你不知道自己的网卡名称,可以通过ifconfig -a命令得到。
三、设置启动时自动连接
将下面这些行加到/etc/rc.conf文件中:
ppp_enable="YES"
ppp_mode="ddial" #断线重拨
ppp_mprofile="adsl" #这里的adsl对应的是/etc/ppp/ppp.conf中的标签名
getway_enable="YES"
ppp_nat="YES"
netd_enable="YES"
natd_interface="tun0" #ADSL Modem设备名
如果你想手动连接,则可以通过以下命令实现:
ppp -nat -ddial adsl
这样,FreeBSD网关服务器端已经设置完成,下面来设置客户机,以Windows XP为例。
四、设置客户机
客户机的设置非常简单简单,只需要设定网关和DNS即可上网,具体步骤如下:打开“控制面板”中的“网络连接”窗口,右键单击“本地连接”图标,从弹出的快捷菜单中选择“属性”,出现“本地连接 属性”对话框,双击列表框中的“Internet协议(TCP/IP)”,然后将“默认网关”DNS服务器地址都设置为FreeBSD上连接ADSL Modem的网卡的IP地址,即192.168.1.1。
至此,FreeBSD网关设置完成。当然,就其功能来说,是无法与IPFW和IPfilter相比的,然而,这毕竟提供了一种简单的网络连接共享方案,况且这种方案还具备一定的防火墙作用,对于小型企业或组织将自己的本地网络接入Internet非常实用,开设网吧也可采用这种方式。