设为首页收藏本站language→→ 语言切换

鸿鹄论坛

 找回密码
 论坛注册

QQ登录

先注册再绑定QQ

查看: 2487|回复: 2
收起左侧

新型的LRP架构Linux路由器/防火墙

[复制链接]
发表于 2010-9-20 14:58:25 | 显示全部楼层 |阅读模式
 在基于TCP/IP协议的网络结构中,路由器/防火墙的重要性不言而喻。作为伴随着互联网成长的操作系统,Linux在架构路由器/防火墙方面具有天然的优势。LRP源自Linux Router Project(Linux路由器计划),其目标是要实现微内核结构的瘦服务器,用于网关/路由器/防火墙。与发行版Linux架构的路由器相比,LRP路由器显著的优点是系统效率高、硬件成本低。本文以某具体网络拓扑结构为背景,探讨用LRP方案架构路由器/防火墙的过程及其相关问题。
  
  从硬盘启动LRP
  一般而言,LRP软件仅用一张软盘便可容纳。其最基本的工作方式是由软盘启动,在内存中建立映像文件系统,并开始工作。系统投入运行后,不再需要该软盘。但实践发现,由于软盘在可靠性、容量等方面的先天不足,在应用中难免会有软盘损坏或功能受限的情形发生。因此,完全可以用硬盘启动取代软盘启动。
  
  首先从http://lrp.steinkuehler.net下载LRP软件,软件名为dachstein-v1.0.2-1680.exe。准备两张空白3英寸软盘,一张格式化为1.44MB,另一张则用刚下载的程序制作成1.68MB的LRP软盘,这就是从软盘启动的LRP。将新制成的软盘上除Linux内核和ldlinux.sys以外的其它文件,复制到1.44MB软盘中,修改其中的配置文件syslinux.cfg,把软盘引导参数“boot=/dev/fd0,msdos”改为硬盘引导参数“boot=/dev/hda1,msdos”。
  
  为了能够从硬盘启动,我们需要一个能够支持硬盘的系统内核linux+IDE.bin,将其从网上下载后改名为Linux。此外,还需要一个Linux引导加载程序syslinux.com,可以从上述网站下载,也可以从http://www.kernel.org/pub/linux/utils/boot/syslinux下载最新的版本。另准备一张MSDOS启动盘,将新内核Linux和syslinux.com复制上去。
  
  现在开始安装LRP。为每个LRP准备一台PC机,CPU至少是486,内存12MB以上。实际选用了P5/100和16MB内存,一块IDE硬盘(容量不必太大,10MB即可),两块网卡(10/100MB)。用DOS启动盘引导机器,执行fdisk命令,确保在硬盘上仅有一个DOS主分区(标记为Active)。待重新引导机器后,执行如下命令:
  
  #format c:
  
  #syslinux -s c:
  
  #copy linux c:
  格式化新分区,安装Linux引导加载程序,并将内核文件Linux复制到硬盘。换上1.44MB的LRP软盘,将盘上内容全部复制到硬盘根目录下。至此,LRP软件安装完毕。取出软盘,重启机器,LRP开始引导,待login提示符出现后,键入root,进入LRP系统。
  
  配置网络接口
  
  首先考虑网卡驱动程序。LRP系统已经包含几个常用的网卡驱动程序模块,如3c509、3c59x和eepro100等,但没有包含D-Link 530TX(Rev A1/B1/B2)网卡驱动程序。可以从LRP网站下载一个与内核版本对应的530TX网卡驱动程序,名为via-rhine.o,复制到DOS软盘上。注意,DOS文件名为8+3制,长文件名via-rhine.o最好先改短,如改成via.o。在LRP机器上,插入软盘,执行如下命令:
  
  #mount -t msdos /dev/fd0 /mnt
  
  #cp /mnt/via.o /lib/modules/via-rhine.o
  
  #umount /dev/fd0
  
  将网络驱动模块复制到内存映像文件系统的/lib/modules目录中。注意,每次修改内存映像文件系统都需要及时备份.lrp文件,保存所做的变化。键入lrcfg命令,选择配置选单的“Back-up ramdisk”条目,再选“modules”,备份modules.lrp即可。接着配置驱动程序,选择配置选单的第3项“Package settings”,再选“modules”,编辑/etc/modules文件(也可以在命令行键入命令edit /etc/modules),加入以下两行:
  
  pci-scan
  
  via-rhine
  
  保存退出,并注意备份etc.lrp。
  
 

  
图1 校园网拓扑结构简图

  
  图1是一张简化的校园网拓扑结构图,其中网关1、网关2、伪网桥和防火墙都是LRP机器,两个机房通过路由器/网关接入校园网。假定机房1的网络地址为192.168.1.0/24,网关为192.168.1.254;网关1出口端地址为192.168.0.253,默认网关为192.168.0.254。机房2类似。注意,路由器两边都是静态IP地址。在默认设置中,LRP设定自己是外网的DHCP客户,同时又是内网的DHCP服务器。因此,我们需要做一些改变,取消DHCP服务。执行如下命令:
  
  #mount -t msdos /dev/hda1 /mnt
  
  #edit /mnt/syslinux.cfg
  
  #umount /dev/hda1
  
  在编辑文件时删除“LRP=”中dhclient和dhcpd两项。再使用如下命令:
  
  #edit /etc/network..conf
  
  把其中的EXTERN_DHCP开关项改为NO。备份etc.lrp后,键入命令:
  
  #shutdown -r now
  
  重新启动机器。
  
  现在来配置接口参数。选择配置选单的第1项“Network settings”,再选“Network Configuation”,编辑/etc/network.conf文件,进行如下配置:
  
  IF_AUTO="eth0 eth1"
  
  eth0_IPADDR=192.168.0.253
  
  eth0_MASKLEN=24
  
  eth0_BROADCAST=192.168.0.255
  
  eth0_DEFAULT_GW=192.168.0.254
  
  eth1_IPADDR=192.168.1.254
  
  eth1_MASKLEN=24
  
  eth1_BROADCAST=192.168.1.255
  
  保存并备份etc.lrp。执行下面命令:
  
  #/etc/init.d/network reload
  
  使刚配置的接口生效。可以用ping命令来测试网络的连通性。
  
  LRP的工作模式
  LRP的一般工作模式有三种:直接路由方式、过滤式路由方式和防火墙方式。只要在/etc/network.conf文件中设置:
  
  IPFWDING_KERNEL=YES
  
  IPFILTER_SWITCH=none
  
  就构成了直接路由方式(网关)。前一项相当于做echo 1 > /proc/sys/net/ipv4/ip_forward,允许IP包转发。后一项则意味着不做包过滤。这种方式比较简单,但也带来了问题,机房中的所有IP包将不受控制地涌向校园网络,给网络带来额外的负担。解决的方法就是加上IP包过滤,即过滤式路由方式。
  
  同样在/etc/network.conf文件中设置:
  
  IPFWDING_KERNEL=FILTER_ON
  
  IPFILTER_SWITCH=router
  
  对流经LRP路由器的数据包进行有选择地转发。如果要对两个机房的流量集中控制,可以在出口网关和路由交换机之间增加一个“透明网桥”(不必改变它们原有的路由关系),利用ARP代理来传递“网桥”两端路由设备的ARP消息,实现一种透明连接。通过对LRP的网络接口设置:
  
  eth0_PROXY_ARP=YES
  
  eth1_PROXY_ARP=YES
  
  相当于
  
  echo 1 > /proc/sys/net/ipv4/conf/eth0/proxy_arp
  
  echo 1 > /proc/sys/net/ipv4/conf/eth1/proxy_arp
  
  就能实现这样的连接。由于这种连接是在网络层(链路层的上一层)实现的一种伪网桥,因此可以在其上控制流经的数据包。
  
  LRP的第三种工作模式就是防火墙。设置防火墙方式如下:
  
  IPFWDING_KERNEL=FILTER_ON
  
  IPFILTER_SWITCH=firewall
  
  此外,除了要配置网络接口eth0和eth1外,还要进一步指出外网接口和内网接口:
  
  EXTERN_IF="eth0"
  
  EXTERN_IP= 221.xxx.xxx.1
  
  INTERN_IF="eth1"
  
  INTERN_NET=192.168.0.0/24
  
  INTERN_IP=192.168.0.254
  
  MASQ_SWITCH=YES
  
  外部IP地址由ISP提供,内外接口的IP地址要与ethX_IPADDR中的地址一致。上面最后一项是启用IP伪装,即NAT(网络地址转换)。LRP已经安排好了一组基本的防火墙规则。当然,也可以制定自己的防火墙规则。
  
  防火墙与DMZ
  DMZ代表非军事区(Demilitarized Zone),是介于内网和外网之间的一个单独的网段,其上的服务器用来提供对外服务。DMZ是LRP防火墙的高级应用方式。
  
  在作为防火墙的LRP机器上增加一块网卡,用于连接DMZ。配置网络接口eth2,启用DMZ:
  
  IF_AUTO="eth0 eth1 eth2"
  
  eth2_IPADDR=221.xxx.xxx.249
  
  eth2_MASKLEN=29
  
  eth2_BROADCAST=221.xxx.xxx.255
  
  DMZ_SWITCH=YES
  
  DMZ_IF="eth2"
  
  DMZ_NET=221.xxx.xxx.0/29
  
  DMZ网络使用ISP提供的一组公用IP地址。开放DMZ中的服务器:
  
  DMZ_OPEN_DEST="tcp_${DMZ_NET}_www tcp_${DMZ_NET}_ftp"
  
  允许外部访问WWW和FTP服务器。利用端口转发技术,LRP也支持一个独立的内部网段作为DMZ,将内部服务器用于对外服务。
  
  远程管理LRP
  配置好的LRP机器可以放到机架上,通过SSH(Secure Shell)实施远程控制。从LRP网站下载三个文件:libz.lrp、sshd.lrp和sshkey.lrp,分别是OpenSSH的库文件、守护程序和密钥生成器。将三个文件复制到DOS启动盘上,用DOS启动盘引导LRP机器,将三个文件复制到硬盘。取出软盘,重启机器,执行如下命令:
  
  #mount -t msdos /dev/hda1 /mnt
  
  #cd /mnt
  
  #lrpkg -i libz
  
  #lrpkg -i sshd
  
  #lrpkg -i sshkey
  
  #cd /
  
  #makekey
  
  #edit /mnt/syslinux.cfg
  
  #umount /dev/hda1
  
  动态安装三个文件,生成密钥。为保证下次启动时自动安装SSH,编辑/etc/syslinux.cfg文件,在“LRP=”中添加libz.lrp和sshd.lrp两项。注意,这
发表于 2011-7-2 18:34:42 | 显示全部楼层
沙发 2011-7-2 18:34:42 回复 收起回复
回复 支持 反对

使用道具 举报

发表于 2012-9-12 09:00:06 | 显示全部楼层
谢谢楼主分享
板凳 2012-9-12 09:00:06 回复 收起回复
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 论坛注册

本版积分规则

QQ|Archiver|手机版|小黑屋|sitemap|鸿鹄论坛 ( 京ICP备14027439号 )  

GMT+8, 2025-1-24 19:24 , Processed in 0.070113 second(s), 11 queries , Redis On.  

  Powered by Discuz!

  © 2001-2025 HH010.COM

快速回复 返回顶部 返回列表