FreeBSD 5.0 ADSL安装指南

发表于:2007-06-09来源:作者:点击数: 标签:
现在这样的配置差不多没有什么问题了,这几天我还会再调一下的,会对这个文档进行不断的更新到稳定为止。另外我使用的是FreeBSD5.0,主要是因为5.0支持我做网关的笔记本中的pcm以及fxp0+xl0(3compccardnic)。 请大家多多提意见,让我完善这份文档。 FreeBSD5

现在这样的配置差不多没有什么问题了,这几天我还会再调一下的,会对这个文档进行不断的更新到稳定为止。另外我使用的是FreeBSD 5.0,主要是因为5.0支持我做网关的笔记本中的pcm以及fxp0+xl0(3com pclearcase/" target="_blank" >ccard nic)。
请大家多多提意见,让我完善这份文档。 

FreeBSD 5.0 ADSL安装指南


1. 配置ADSL
1.1. 配置你的新kernel
为ADSL的PPPOE协议在kernel配置文件中加入以下内容:
# ADSL PPPOE Sup
options         NETGRAPH
options         NETGRAPH_ETHER
options         NETGRAPH_SOCKET
options         NETGRAPH_PPPOE

1.2. 设置一个使用PPPOE的PPP呼出
将/etc/ppp中的ppp.conf进行备份,以下是新的ppp.conf中的内容:
default:
 set log Phase Chat LCP IPCP CCP tun command
 nat enable yes
 nat same_ports yes
 nat use_sockets yes
 set redial 15 28800
 set reconnect 15 28800
pppoe:
 #加入在kernel中配置的会连接ADSL设备的网卡的名称,我的是fxp0
 set device PPPoE:fxp0:
 set mru 1492
 set mtu 1492
 set speed sync
 enable lqr
 set lqrperiod 5
 set cd 5
 set dial
 set login
 set timeout 0
 set authname Your UserName used to login 
 set authkey Your Password used to login
 set ifaddr 10.0.0.1/0 10.0.0.2/0 255.255.255.0 0.0.0.0
 add default HISADDR# Add a (sticky) default route
 enable dns
#注意:只有三处需要进行更改的地方,它们是PPPoE:fxp0: 以及用户名和密码

1.3. 设置启动时自动进行连接
在/etc/rc.conf中加入以下参数(ppp_mode设置断线重拨的功能):
ppp_enable="YES" 
ppp_mode="ddial"
ppp_profile="pppoe"

2. 设置防火墙
2.1. 在kernel中加入防火墙配置
在kernel配置文件中加入以下选项参数:
options IPFIREWALL
options IPFIREWALL_VERBOSE
options IPFIREWALL_VERBOSE_LIMIT=100
2.2. 设置系统启动时参数
在/etc/rc.conf中加入以下设置:
ipfirewall_enable="YES"
firewall_type="open"

3. 设置NAT服务
3.1. 启动PPP的NAT支持
在/etc/ppp/ppp.conf中加入以下设置:
nat enable yes
这样会打开ppp内置的NAT服务。
3.2. 设置系统启动参数
同时还需要指定本台FreeBSD为一个网关服务器。在/etc/rc.conf中设置gateway选择以及ppp的拨号选项:
gateway_enable=”YES”
ppp_nat="YES"
natd_enable="YES"
natd_interface="tu0"
gateway_enable="YES"
3.3. 配置文件总结
3.3.1. /etc/rc.conf
ppp_enable="YES" 
ppp_mode="ddial"
ppp_nat="YES"
ppp_profile="cncadsl"

natd_enable="YES"
natd_interface="tu0"
gateway_enable="YES"

firewall_enable="YES"
firewall_type="open"
3.3.2. /etc/ppp/ppp.conf
set log Phase Chat LCP IPCP CCP tun command
 nat enable yes
 nat same_ports yes
 nat use_sockets yes
 set redial 15 28800
 set reconnect 15 28800
cncadsl:
 set device PPPoE:fxp0:
 set mru 1492
 set mtu 1492
 set speed sync
 enable lqr
 set lqrperiod 5
 set cd 5
 set dial
 set login
 set timeout 0
 set authname MyUserName
 set authkey MyUserPassword
 set ifaddr 10.0.0.1/0 10.0.0.2/0 255.255.255.0 0.0.0.0
 add default HISADDR# Add a (sticky) default route
 enable dns
3.3.3. kernel配置文件
# ADSL PPPOE Sup
options         NETGRAPH
options         NETGRAPH_ETHER
options         NETGRAPH_SOCKET
options         NETGRAPH_PPPOE

# IP Firewall Sup
options         IPFIREWALL
options         IPFIREWALL_VERBOSE
options         IPFIREWALL_VERBOSE_LIMIT=100

 Fun-FreeBSD 回复于:2003-03-31 19:01:56
好啊,可惜我用不到adsl

 红袖添香 回复于:2003-03-31 19:04:09
...

好啊,支持楼主的共享精神!

 hdcola 回复于:2003-03-31 19:34:22
[quote:157e29eb6d="红袖添香"]...

好啊,支持楼主的共享精神![/quote:157e29eb6d]
今天会再放上来freebsd cvsupd建设指南 

 quakelee 回复于:2003-03-31 21:49:15
黄哥,我在4.7下面内核里面有NETGRAPH的时候好像一用user ppp就会报错,5.0不是这样么??

 hdcola 回复于:2003-04-01 00:32:52
我在kernel中配置了ppp的,到现在没有出过错呀。ppp我用的很少,只要能通我就什么都不管了。你细给我说说user ppp?

 quakelee 回复于:2003-04-01 00:43:53
你用的是什么ppp呀,我印象中kernel ppp不支持PPPoE的,如果你运行的时候打开的伪设备是tun的话那只是user ppp并不通过内核的
推荐你用mpd这个是一个kernel级的ppp工具,可以用来做VPN网关,很多功能的

 hdcola 回复于:2003-04-01 00:46:27
mpd有没好的for freebsd的说明文档?

 quakelee 回复于:2003-04-01 00:50:48
mpd是freebsd的专属软件,只能用在freebsd上面,非常令我奇怪的是这玩艺为什么一直没有加入系统中,到现在core team还抱着哪个该死的kernel ppp不放,真是奇怪
http://www.dellroad.org/mpd/index

 quakelee 回复于:2003-04-01 01:01:51
我用mpd来做ADSL网关还有点问题,昨天装的网关不能正常工作,不知道是什么问题,还没有时间去看到底是那里出的问题

 oneflower 回复于:2003-04-01 11:20:57
我修改了标题,接着加为精华.

建议楼主继续完善该贴.

 a9711 回复于:2003-04-01 12:53:36
??natd_interface="tu0" 

有点疑问,,既然tun0是adsl外网卡。。

那对tun0:80端口的访问如何转到内网的某一台机子上??
nat的配置语法不是这样的吗??如下:

redirect_port tcp 10.10.0.05:80 10.0.0.1:80
后面表示网关地址,前面表示实际服务地址。但此处网关地址是固定的。。。。。TUN0是动态变的吧。。

 ihweb 回复于:2003-04-01 13:09:17
[quote:9d343fca46="a9711"]??natd_interface="tu0" 

有点疑问,,既然tun0是adsl外网卡。。

那对tun0:80端口的访问如何转到内网的某一台机子上??
nat的配置语法不是这样的吗??如下:

redirect_port tcp 10.10.0.05:80 10.0.0.1:80
后面表示网关地址,前面表示实际服务地址。但此处网关地址是固定的。。。。。TUN0是动态变的吧。。[/quote:9d343fca46]我也是遇到以上问题啊。

 oneflower 回复于:2003-04-01 13:22:37
natd_interface="tun0" 
natd_flags="-redirect_port tcp 192.168.0.2:21 8021 "

我的adsl网关服务器的配置命令。

使用你自己设的固定ip地址,就是连接adsl的那块网卡。

 hdcola 回复于:2003-04-01 13:28:48
natd_interface="tun0" 这个通不过的,是我昨天感觉可以写上去的,你们的这句配置可以通过吗?

 quakelee 回复于:2003-04-01 16:24:09
我从来没用伪设备做过转发界面,从来都是设置我的网卡

 oneflower 回复于:2003-04-01 16:46:51
你不能通过,是因为tun0还没有分配到ip地址。

我是在rc.firewall里面加了
sleep 30

目的是延缓启动进程,让tun0有足够的时间获得ip地址。

 quakelee 回复于:2003-04-01 16:49:10
[quote:a2a5f9571a="oneflower"]你不能通过,是因为tun0还没有分配到ip地址。

我是在rc.firewall里面加了
sleep 30

目的是延缓启动进程,让tun0有足够的时间获得ip地址。[/quote:a2a5f9571a]
原来是这样~
是在第一行加么?

 troy 回复于:2003-04-01 16:52:04
经历了痛苦的调试后,我还是觉得ADSL设置为硬件拨号,然后安装任何系统时设置为DHCP或者指定的IP就可以直接连通网络,简单即是美!

 ihweb 回复于:2003-04-01 16:58:19
[quote:d3de997e5d="oneflower"]natd_interface="tun0" 
natd_flags="-redirect_port tcp 192.168.0.2:21 8021 "

我的adsl网关服务器的配置命令。

使用你自己设的固定ip地址,就是连接adsl的那块网卡。[/quote:d3de997e5d]

经过刚才的实验,还是不行,提示:
natd: aliasing address not given

 quakelee 回复于:2003-04-01 17:03:52
算了你还是把转发界面设在你的网卡上面吧

 ihweb 回复于:2003-04-01 18:39:22
[quote:c8f3e550a2="quakelee"]算了你还是把转发界面设在你的网卡上面吧[/quote:c8f3e550a2]quakelee 把你的rc.conf 和ppp.conf 或rc.firewall 和natd.conf email给我吧:webmaster@kingisme.com

 quakelee 回复于:2003-04-01 19:15:42
我现在没有,等过两天吧,服务器不在我这

 ihweb 回复于:2003-04-01 20:31:04
[quote:8469bfe07c="quakelee"]我现在没有,等过两天吧,服务器不在我这[/quote:8469bfe07c]刚才又调试了一个半小时,有点点头绪了,可还是不行!!一涉及到tun0就不行,不知道是否和route 有关?哎…………黑命!

 ihweb 回复于:2003-04-01 21:07:47
一朵花班长、Quakelee老师、红高工、马博士…………等论坛各位大虾们,真的要帮帮小弟啊,小弟搞到头都大了!!!真想哭、真想把机器给砸了!!

 quakelee 回复于:2003-04-01 21:12:34
你还在那里搞呢,PFpF哈哈哈~

 i2era 回复于:2003-04-01 21:17:50
[quote:aeac5dca7a="ihweb"]一朵花班长、Quakelee老师、红高工、马博士…………等论坛各位大虾们,真的要帮帮小弟啊,小弟搞到头都大了!!!真想哭、真想把机器给砸了!![/quote:aeac5dca7a]
千万别,偶现在缺凳子的,送给偶吧~~~
#netstat -nr

 hdcola 回复于:2003-04-01 21:55:53
[quote:89314d73ea="troy"]经历了痛苦的调试后,我还是觉得ADSL设置为硬件拨号,然后安装任何系统时设置为DHCP或者指定的IP就可以直接连通网络,简单即是美![/quote:89314d73ea]

我需要的是这样的功能:
port mapping
好像adsl不能实现 

 ihweb 回复于:2003-04-02 08:20:37
[quote:035e3a653f="i2era"]
千万别,偶现在缺凳子的,送给偶吧~~~
#netstat -nr[/quote:035e3a653f]

什么意思啊?我都看过啦!!

[quote:035e3a653f="hdcola"]
我需要的是这样的功能: 
port mapping 
好像adsl不能实现 [/quote:035e3a653f]

我现在就查这个东西老调不好!!!!不要拦我………………我要跳楼!

 hdcola 回复于:2003-04-02 09:43:32
跳罢!
一朵花从这里跳下去了
Quakelee也从这里跳下去了
你为什么不跳呢?
我们试目以呆!

 ihweb 回复于:2003-04-02 09:49:06
[quote:43348909a5="hdcola"]跳罢!
一朵花从这里跳下去了
Quakelee也从这里跳下去了
你为什么不跳呢?
我们试目以呆![/quote:43348909a5]咣当!!!!!

 oneflower 回复于:2003-04-02 09:53:41
[quote:887c9a2d6e="quakelee"]
原来是这样~
是在第一行加么?[/quote:887c9a2d6e]

rc.firewall也是一个shell程序

我是放在第一行。

你可以看一下rc.firewall完美的编程艺术。

 oneflower 回复于:2003-04-02 10:37:58
一些朋友利用freebsd+adsl,启用natd代理整个局域网上网。
以上的简单功能可以用ppp自带的natd功能实现,而且不用编译内核。

但是如果要使用较高级的natd功能,比方说端口转化。那就需要用到firewall的natd功能。

我贴上我的配置配件,提供大家参考。
1。首先,内核文件里必须有这样两条参数
    options IPFIREWALL
      options IPDIVERT
   
     为了以后的方便,再加两条
    options IPFIREWALL_DEFAULT_TO_ACCEPT
      options IPFIREWALL_VERBOSE

2。为了使用firewall的natd,必须关掉ppp的natd
     我的ppp.conf
gateway# cat ppp.conf
default:
        set log Phase tun command
        set ifaddr 10.0.0.1/0 10.0.0.2/0

adsl:
        set device PPPoE:rl0
        set authname ad50097566
        set authkey B9iqV8UL
        set mru 1492
        set mtu 1492
        set dial
        set login
        add default HISADDR

3.我的rc.conf,同样不能打开ppp的natd的功能

gateway# cat rc.conf

# -- sysinstall generated deltas -- # Mon May 27 17:55:36 2002
# Created: Mon May 27 17:55:36 2002
# Enable network daemons for user convenience.
# Please make all changes to this file, not to /etc/defaults/rc.conf.
# This file now contains just the overrides from /etc/defaults/rc.conf.
gateway_enable="YES"
hostname="gateway.xxx.com"
ifconfig_rl0="inet 192.168.0.1  netmask 255.255.255.0"
kern_securelevel_enable="NO"
sshd_enable="YES"
ppp_enable="YES"
ppp_mode="ddial"
#ppp_nat="YES"
ppp_profile="adsl"

firewall_enable="YES" 
firewall_type="OPEN" 
natd_enable="YES" 
natd_interface="tun0" 
natd_flags="-redirect_port tcp 192.168.0.2:21 21"

4。由于tun0设备时自动获得ip,所以要给它一点时间绑定获得ip。
我在rc.firewall的开头部分加入

#########################
###add by flower
sleep 30
###end bye flower
#####################################

 ihweb 回复于:2003-04-02 12:10:50
有一个疑问和一个不幸!
疑问是:rc.firewall那里没有

ipfw add divert natd ip from any to any via tun0

这句行吗?

第二,当我完全按照以上的操作了,我发现缺少

ipfw add 00400 divert natd ip from any to any via tun0

的时候,客户机器是不能上网的。

当添加了 以上这句后,客户机可以上网了;可redirect_port 还是不行!!!!哎………………难道真是我黑吗?

 hdcola 回复于:2003-04-03 19:39:00
在一朵花同志的提示呀,在quaklee同志的引诱下。我的测试得到了进一步的成果。在今天或是最晚下周六会放上2.0版本。主要加入
pppoe
pppoe+nat
pppoe+natd
mpd pppoe
mpd pppoe +natd
我还想加入
mpd pptp
mpd pptp+nat
mpd pptpd
希望大家多多提出自己已经有的资料,谢谢。

 ihweb 回复于:2003-04-03 19:50:40
[quote:0cda352247="hdcola"]在一朵花同志的提示呀,在quaklee同志的引诱下。我的测试得到了进一步的成果。在今天或是最晚下周六会放上2.0版本。主要加入
pppoe
pppoe+nat
pppoe+natd
mpd pppoe
mpd pppoe +natd
我还想加入
mpd pptp
mpd pptp+nat
mpd pptpd
希望大家多多提出自己已经有的资料,谢谢。[/quote:0cda352247]麻烦你先搞
pppoe 
pppoe+nat 
pppoe+natd 

谢谢。

 quakelee 回复于:2003-04-03 20:35:31
我已经完成了mpd PPPoE + natd
但是端口转发没机会试验了,刚刚查到natd支持界面动态ip的能力,但是不知道效果怎么样,hdcola贡献点东西来作实验吧~~

 ihweb 回复于:2003-04-03 20:39:17
再盘星星、盼月亮。

 hdcola 回复于:2003-04-03 21:03:33
[quote:b72a628ad9="quakelee"]我已经完成了mpd PPPoE + natd
但是端口转发没机会试验了,刚刚查到natd支持界面动态ip的能力,但是不知道效果怎么样,hdcola贡献点东西来作实验吧~~[/quote:b72a628ad9]
怎么不上qq呢?
我的nat做上去了,可是没有做用呀
natd -n ng0
启动后不成呀
用ppp时
natd -n tu0
也不成 

 quakelee 回复于:2003-04-03 21:26:05
来我来教给你哈哈哈~~~

 hdcola 回复于:2003-04-04 00:26:34
原因找到了nat要求参数顺序严格 -n参数必须在最后

 quakelee 回复于:2003-04-04 06:11:57
这么快就找到
手动不能启动的原因拉?

 hdcola 回复于:2003-04-20 19:32:51
本文最新情况请见:
http://chinaunix.net/forum/viewtopic.php?t=53023
或是
http://www.huangdong.com/bbs/showthread.php?s=6a3493dcb081329dc370689ecdb7d439&postid=162#post162

 7770 回复于:2003-08-13 11:54:56
完整 !!!  

斑竹是否能整理一下各个版本的freebsd的上网教程 

用adsl的  用宽带的  这些资料都少  各系统的文件不同   有的不说是什么系统的

我看了不知他说什么  呵呵~~~~~  我是莱鸟  不要笑~~~

 sohupc 回复于:2003-08-25 04:12:50
tun是个伪设备

 zero-B 回复于:2003-10-07 21:01:49
强,可惜好多看不懂

 freeunix 回复于:2003-10-07 22:19:45
哪位能告诉我,为什么无论我如何设置,在用TUN0这个伪设备进行拔号时,我的缺省网关是sqr-24-24-24-24.tw.能从ISP处得到IP,能PING通ISP的两个DNS的IP,也能TRACEROUTE到ISP的DNS服务器的IP,但就是不能PING通本地的电信的IP,WWW。XXXX。NET,请告诉我努力的方向。我找了许多的HOWTO 和手册,但就是做不成功。包括从水木清华的FREEBSD区域得到的东西。我用的是FREEBSD5。1RELASE .

原文转自:http://www.ltesting.net