www.138139.cn

返回总目录 上一页 目录页 下一页

完全替代bbi的小型网关/路由器制作


    小型网关/路由器指南









----Internet是由网络互联而成的网络,而实现网际互联的设备就是网关。任何用户都是通过网关连接到Internet的。Internet上的网关多数是专用的路由器和(三层以上)交换机,但也有为数不少的网关是由运行Linux/BSD的PC机配置而成,它们多兼有防火墙/NAT的功能。因为Linux和FreeBSD等系统都是在Internet上起源和发展的,与生俱来有强大的网络功能和丰富的网络应用软件,其TCP/IP栈的实现尤为成熟,Linux更是号称拥有业界最强的路由功能,加之两者都非常灵活、容易定制,所以深受资深网管和高水平用户的青睐。在一些中小型网络环境中得到了广泛的应用。




----这些小型网关的典型应用环境主要有如下三种,如所示。




局域网用户共享网关上的Internet连接。
连接若干个不同的网段(为了划分冲突域或施行安全策略设置)。
连接两个远程的局域网(通过拨号、无线网等方式)。





----目前,Linux/BSD的通用性越来越强,网关/防火墙机器出于安全性和稳定性考虑,很少再运行其他服务,而网关使用的功能模块只是系统非常小的一部分,系统中各种无关的服务和进程占用了大量的资源,影响了网关的工作效率并提高了对系统硬件配置的要求。为了解决这个问题,Internet上一些高水平开发者对Linux/BSD进行精简和定制后推出了Linux/BSD的网关专用版。这些版本可以仅通过一张软盘来运行,有效降低了对硬件资源的要求并提高了工作效率。现在,这些专用版本主要有基于FreeBSD开发的PicoBSD和基于Linux开发LRP(LinuxRouterProject)以及Freesco。它们都声称可以在386以上的PC机上顺畅运行,而且只需8MB以上的内存,这并不奇怪,因为它们都只需要完成特定的功能。事实上,它们的用途和设计思路和嵌入式系统是非常类似的。




----三者的工作原理比较一致,配置步骤也大同小异,不同之处在于PicoBSD的配置方法相对比较原始,每一步都需要命令行或修改配置文件来进行,而LRP和Freesco都另外提供了交互式的选单向导配置程序,更易于操作,但同时也向用户掩盖了很多配置细节。为了能够充分说明这些小型网关的本质,下面以PicoBSD为例,介绍配置一个连接局域网和Internet的网关实例。




----所用机器的配置为Pentium100、16MB内存、两块ISA网卡。事先将网卡都设为NE2000(Jumpless)模式,使用设置程序把I/O地址和中断请求值分别设为0x280/10和0x300/5。在PicoBSD站点http://people.freebsd.org/~picobsd/picobsd/doc/intro.html或http://people.freebsd.org/~picobsd/picobsd225/上下载PicoBSD的软盘映像文件,针对不同的应用需求,网站上主要提供了拨号网络版、拨号服务器版和路由器版三种缺省的影像文件。这里下载的是路由器版,下载完毕后使用rawrite或fdimage写到软盘,然后使用软盘启动并登录,如所示。然后按照如下步骤进行:





----1.配置网卡使用PicoBSD自带的ee编辑器编辑/etc/rc.conf文件(这是系统最主要的配置文件),将




----network_interfaces="lo0!www.163164.com
----改为
----network_interfaces="lo0ed0ed1!www.163164.com




----即加上两个NE2000网卡网络接口。这里,ed0和ed1分别代表两块网卡,ed代表NE2000,其余型号的网卡代号各有不同,如IntelEtherExpress系列为fxp等。修改完毕运行update命令,将改动写回软盘,然后重新启动系统。这时会看到类似如下的信息:




----ed0at0x280-0x29firq10onisa
----ed0:address00:80:c8:e1:f2:20,typeNE2000(16bit)
----ed1at0x300-0x31firq5onisa
----ed1:address00:00:e8:2e:32:2a,typeNE2000(16bit)




----这说明内核已经正确识别两块网卡。如果启动时刷新太快,也可以在启动后使用“dmesg”命令查看这些信息。




----2.配置TCP/IP再次编辑修改/etc/rc.conf文件,在“ifconfig_lo0="inet127.0.0.1"#defaultloopbackdeviceconfiguration.”一行下面加上:




----ifconfig_ed0="inet202.106.189.34netmask0xffffffe0!www.163164.com
----ifconfig_ed1="inet192.168.15.1netmask0xffffff00!www.163164.com




----这里假设ed0接外部网线,绑定一个InternetIP202.106.189.34,子网掩码是十六进制的ffffffe0,即十进制的255.255.255.224;ed1接内部网线,绑定一个保留地址192.168.15.1,子网掩码是十六进制的ffffff00,即255.255.255.0。其实,这里设定的是ifconfig命令的参数,如果不修改rc.conf文件,还可以使用ifconfig命令直接指定,例如,ed0一行等同于如下的命令行命令:




----#ifconfiged1inet202.106.189.34netmask0xffffffe




----然后再按照表1进行修改。





表1
修改前改为说明
“defaultrouter="NO"“defaultrouter="202.106.189.33"制订缺省网关
gateway_enable="NO"gateway_enable="YES"启用IP转发功能




----配置完成后(如果是修改配置文件,应该运行update命令后重新启动),可以使用ifconfig命令来查看网卡是否以成功绑定IP:




----#ifconfig-a




----ed0:flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST>mtu1500
----inet202.106.189.34netmask0xffffffe0broadcast202.106.189.63
----ether00:80:c8:e1:f2:20




----ed1:flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST>mtu1500
----inet192.168.15.1netmask0xffffff00broadcast192.168.15.255
----ether00:00:e8:2e:32:2a




----还可以用netstat-nr命令来查看本机路由表,以便验证缺省网关的设置。




----3.启动NAT首先添加一个natd服务,即在/etc/services文件尾部加入一行:




----natd8086/divert




----然后,使用内核的divert功能将所有网络包转给natd端口。即运行命令:




----#ipfwadddivertnatdallfromanytoanyviaed0




----最后,启动natd服务:




----#natd-interfaceed0




----调试成功后,可以将两条指令写入/etc/rc.conf.local。即使用ee编辑/etc/rc.conf.local,然后执行命令“chmod+x/etc/rc.conf.local”为脚本文件加上可执行属性。以后再开机时便会自动启动nat。这时,只要把内部局域网中所有机器的IP设为与192.168.15.x,子网掩码设为255.255.255.0,网关设为192.168.15.1,就可以透明地访问Internet了。




----在这个实例中,接入Internet的设备为网卡(ed0),在实际应用中,PicoBSD、LRP以及Freesco还支持其他几乎所有的Internet连接设备,可参见表2。其实,这些小型系统对设备的支持范围取决于其母系统,举例来说,如果LRP不支持某种设备,我们可以在Linux系统中为内核加上补丁程序,重新定制一个LRP的内核或者将相应的模块编译出来即可使用。这几种系统都提供了详细的文档来指导用户定制自己的版本。更重要的是,这几个小型网关软件的开发者像大多数自由软件开发者一样,很乐意为用户排忧解难。





表2小型网关特性一览表
用途共享Internet连接,小型防火墙、拨号服务器、传真服务器。




适用范围家庭、宿舍、小型办公单位网络,以及其他使用Linux/BSD/Windows系统作为网关的网络环境。




安全性使用软盘介质,将软盘写保护后,系统的启动介质就成为只读。而整个系统在内存文件系统上运行,即使系统遭到入侵,也很容易恢复。
可靠性不需要硬盘,可减少系统散热,降低系统故障率。
稳定性系统高度精简,降低了软件出错概率。
所支持的Internet连接设备Modem、网卡、ISDN设备、xDSL、CableModem、卫星微波接收设备、无线网络设备。
系统硬件要求386SX、8MB以上内存的PC兼容机。不需要硬盘,仅在安装调试时需要显示器。可有效利用运行稳定但配置过时的机器。
不足没有800电话和上门服务。
技术支持通过Internet,使用邮件列表或新闻组。




----LRP和Freesco的配置更为简便,如果用户更愿意自己完全控制整个配置进程,完全可以通过命令行来进行配置。三者的多数命令乃至命令参数格式也相似或相同。三者相比较,LRP具有最多的变体,因为它具有最长的历史和数量最多的开发者及用户,相关的文档也更丰富。Freesco出现最晚,但从最开始就有明确的开发定位,易用性是三者中最好的。如果仅对于普通用户而言,PicoBSD几乎乏善可陈:缺乏交互式的安装向导,仅有有限的文档,且需要一定的FreeBSD使用经验。但有经验的用户一定会认为PicoBSD提供了最佳的灵活性和最高的性能。




----无论物理配置如何,网关/路由器是非常重要的网络设备,对稳定性的要求很高。其实,LRP、Freesco和PicoBSD都有很高的灵活性,完全可以根据用户的需要定制到从普通软盘、大容量软盘乃至光盘的各种介质中——仅取决于用户的DIY水平。然而,对于多数用户来说这或许有些困难。而软盘的缺点也是显而易见的,短暂的停电和盘面的物理损坏会导致整个网络无法访问Internet。对此,使用多个备份或把磁盘映像做成可启动光盘都是可行之策。通常,您可以在一个FreeBSD系统中使用诸如ddif=/dev/rfd0of=picobsd.flpcount=1bs=512之类的命令来制作软盘的备份映像文件。





LRP小档案
自述:一个用于路由器、远程访问服务器、瘦客户机、网络设备及嵌入式系统的小型网络Linux发行版。
主页:http://www.linuxrouter.org
最新版本:2.9.7
版权:GPL




我的网关在哪里?




----如果您是拨号用户,可能从来不曾注意您的网关。因为无需设置,通常在拨号连接建立过程种已经指定使用ISP方的默认网关,如果您是通过局域网连接Internet的用户,您就有机会直接接触网关设置了,在网络属性中的TCP/IP设置里就有关于网关的一项,如右图所示。









了解NAT
NAT一种最常用的使局域网的多台计算机共享一个IP地址访问Internet的技术。通常局域网上的机器使用内部IP,即Internet保留IP,通过NAT把内部地址翻译成合法的IP地址,在Internet上使用。





网关和路由器
----在网络技术领域,路由器一般指网络层的连接设备,而网关通常是网络层以上的连接和转换设备,本文中的网关是指连接两个IP子网或连接IP子网和广域网的设备。两者在很多情况下能够通用。其实,网关是一个应用范围很广的逻辑概念,任何两种协议、两种应用之间的接口功能模块都可以叫做网关,最有名的例子是公共网关接口(CommonGatewayInterface,CGI)。路由器则一般用来指称某个具体设备。




Freesco小档案
自述:名字由来是Freecisco的缩写,开发者希望Freesco能代替网络上的专用路由器。目前的版本基于Linux2.0.38内核。
主页:http://www.freesco.org
最新版本:0.2.6
版权:开放源码自由软件。





下载地址是http://www.sohupc.com/soft/bsd/pbsd225D.ziphttp://www.sohupc.com/soft/bsd/pbsd225i.zip




http://www.sohupc.com/soft/bsd/pbsd225n.zip
写磁盘工具是
http://www.sohupc.com/soft/bsd/rawrite.exe




http://www.sohupc.com/soft/bsd/fdimage.exe

址163164.cn 微信1631640 QQ3149886

返回总目录 上一页 目录页 下一页