导言
跟着通讯技能、网络技能的迅速发展,很多网络设备接入网络,互联网用户数量正以几何级数增加。研讨标明,IPv4 地址空间将在2011 年前耗尽,因而IPv4 地址资源十分紧缺。SOHO 路由器运用私有网络IP 地址有效地缓解现在 IP 地址缺少的危机,为公司、家庭等小型局域网供给高效、廉价的同享上网计划。当时SOHO 路由器规划,选用
ARM7TDMI+μClinux 规划架构,ARM7 内核微处理器作业频率为50M 左右,而以太网操控芯片作业频率一般为100M,处理器速度难以满意高速接入网用户要求;μClinux 操作体系,不具有内存保护机制,任何程序都有或许导致内核溃散,体系稳定性较差。本文选用ARM920T 内核微处理器,作业频率200M,足以满意高速接入网用户要求,它具有先进的MMU 体系结构,支撑WinCE、EPOC32、Linux 操作体系。Linux 操作体系,具有内存保护机制和强壮的网络操控功用,能避免恶意程序对体系的损坏并完成*滤防火墙,有效地提高了体系的稳定性和安全性。
1 、SOHO 路由器原理
路由器有坐落网络中心的中心路由器、衔接企业级网络的企业路由器以及把家庭或小单位用户接入网络的 SOHO 路由器。SOHO 路由器能够完成主动装备和根本数据包路由、过滤功用。从严厉意义上来讲,SOHO 路由器并不能彻底称之为路由器,它只完成部分传统路由器的功用。SOHO 路由器选用NAT(Network Address TranslaTIon)转化技能,把局域网内部私用有IP 地址转化成一个合法的公网IP 地址,使私有网络中多台主机同享一个合法的 IP 地址拜访因特网。
本文运用 Linux 内核支撑IP Masquerade(IP 假装)技能完成NAT 转化,完成多台主机同享拜访因特网。IP Masquerade 作业原理:客户机将完成IP Masquerade 的Linux 机器设置为缺省网关,当IP Masquerade 的Linux 机器收到客户机的数据包时,对其进行改写,将源地址替换为自己的IP 地址,将源端口号换成一个新的端口号,而且对该进程进行记载;当接收到呼应数据包时,假如其端口号正是从前所指定的端口号则再对该数据包进行改写,将其意图IP 地址及意图端口号替换为本来记载的客户机IP 地址和端口号,然后再发送给客户机。
2、 体系硬件规划
体系以 S3C2410X 微处理器为中心,外扩存储器、以太网操控器、交流操控器、配以必要的调试接口、电源电路和时钟发生电路构成,硬件结构框图如图1 所示。
(1) 微处理器与存储体系
S3C2410X 是SAMSUNG 公司开发的一款贱价、低功耗、高性能运用于PDA、Internet设备的微处理器,作业频率200M,能满意高速处理要求。体系扩展了1 片64MB NANDF1ash 芯片和2 片SDRAM 芯片,NAND F1ash 芯片中存储Bootloader 引导程序和Linux 内核,体系上电复位后从中履行初始化代码。
(2) 以太网操控芯片
DM9000 是一款高性价比以太网操控芯片,具有通用处理接口以太网MAC 操控器,能与10Base-T 的UTP3/4/5 和100Base-T 的UTP5 接口衔接,满意高速接入网要求,也支撑通过MII 接口与其它MII 接口的收发器互联。
(3) 交流操控芯片
RTL8305S 是台湾瑞昱公司最新规划的5 端口10/100Mbps 高速以太网络交流操控芯片,五个端口分红三个组(X 组,Y 组,第五端口),可通过相关引脚灵敏装备;集成了5个MAC(媒体存取操控器)、5 个实体层收发器、1M SRAM 和1K MAC 地址记忆区,有效地削减查表时刻和转储时刻,适用于高速局域网交流器;每一个端口均可支撑100Mbps的100BASE-TX 高速以太网传输或10Mbps 的10BASE-T 的以太网传输。
(4) 体系完成
S3C2410X 微处理器通过体系总线衔接FLASH和SDRAM构成存储体系,体系上电后,微处理器从FLASH 中读取初始化程序,SDRAM 为程序运转和数据处理和转发供给暂时存储空间。以太网操控芯片DM9000,经单端口阻隔变压器和RJ45 接口与互联网相连。DM9000 通过MII(独立媒体接口)与交流操控芯片RTL8305SC 的PORT4 口相连,RTL8305SC 通过4 端口阻隔变压器和四个RJ-45 接口衔接局域网集线器,交流机或电脑,进行数据交流或通过微处理器操控与广域网衔接。
DM9000 与S3C2410X、RJ45 接口电路如图2 所示,DM9000E 芯片的引脚INT 与S3C2410X 芯片的外部中止信号EINT14 相连,S3C2410X 片选信号nGCS4 和地址线MA2别离衔接DM9000 的AEN 引脚和CMD 引脚。SA6 到SA0 对应地址总线,而SA9 与SA8引脚设置为高电平,SA7 引脚设置为低电平,用来片选DM9000;3C2410X 的nOE 引脚衔接DM9000 的读引脚IOR#,nWE 引脚衔接DM9000 的写引脚IOW#,并将S3C2410X 数据线MD[0..15]与DM9000 的数据线SD[0..15]衔接,完成数据传输。将 RTL8305S 第5 端口设定为一个MII 接口与以太网操控芯片DM9000R MII 接口相连,RTL8305S 与四端口阻隔变压器和RJ45 接口与图2 相似。
3 、体系软件构建
软件构建首要包含 Linux 操作体系移植和NAT 技能完成。
3.1 Linux 操作体系移植
(1) Bootloader 移植
Bootloader 是与体系硬件高度相关的初始化代码,担负着初始化硬件和引导操作体系的两层职责。本文运用在嵌入式体系开发中运用最广的引导代码U—BOOT。移植具体步骤:1 针对方针渠道对各装备文件做相应的修正。2 树立相应地装备文件。3 修正U—BOOT的makefile 文件,在其间参加对方针体系的编译支撑,并运转以下指令$make clean、$makesmdk2410-config、$make all 生成方针文件。最终通过JTAG 接口将u-boot.bin 文件烧写到Flash 的零地址,复位后就能够引导体系。
(2) Linux 内核构建、移植与根文件体系完成
1 修正makefile 文件。2 运用make manuconfig 指令来装备内核。3 运用make dep、makezImage 指令对内核进行编译,得到内核紧缩镜像文件zImage 件。4 Bootloader 引导程序通过以太网接口把Linux 内核移到方针体系的Flash 上。5 构建根文件体系。
3.2 Netfilter 结构剖析与NAT 技能完成
Netfilter 是Linux2.4 内核完成数据*滤、数据包处理和NAT 功用的结构。它为每种网络协议(IPv4, IPv6 等)界说一套钩子函数(IPv4 有5 个钩子函数),内核中任何模块能够对协议中的钩子函数进行注册与挂接,这些钩子函数在数据包流经协议栈时被调用,注册后的模块能够查看、修正、丢掉数据包及指示Netfilter 将数据包传入用户空间行列,进行异步处理。一个数据包按图3 所示的进程通过Netfilter 体系。
数 据 包 从 左 边 进 入 系 统 , 进 行 IP 校验后, 数据包通过第一个钩子函数NF_IP_PRE_ROUTING[1]进行处理;然后就进入路由代码,其决议该数据包是需求转发仍是发给本机的;若该数据包是发给本机的,则该数据通过钩子函数NF_IP_LOCAL_IN处理后传递给上层协议;若该数据包应该被转发则它被NF_IP_FORWARD[3]处理;通过发的数据包通过最终一个钩子函数NF_IP_POST_ROUTING[4]处理后,再传输到网络上。
本地发生的数据通过钩子函数NF_IP_LOCAL_OUT[5]处理后,进行路由挑选处理,然后通过NF_IP_POST_ROUTING[4] 处理今后发送到网络上。Netfilter 结构支撑多种NAT,NAT 一般可分为源NAT 与意图NAT。源NAT 在数据包通过NF_IP_POST_ROUTING 时修正数据包的源地址,假装是一个特别的SNAT,意图NAT在数据包通过F_IP_LOCAL_OUT 或NF_IP_PRE—ROUTING 时修正数据包意图地址。
本文运用 IPtables 完成IP 假装、Port Forward 端口转发、ALG。IPtables 是一个在Linux2.4内核中根据Netfilter 结构的数据包挑选体系。地址转化会导致许多对NAT 灵敏的运用协议无法正常作业,而地址转化运用网关(NAT ALG, Application Level Gateway),对载荷中的IP地址和端口号进行替换,然后完成对该协议的通明中继。IPtables 要求数据包流经指定的规矩表,其间设定的规矩用于完成数据*滤,网络地址转化及数据包处理,然后完成多台主机同享一个合法的IP 地址拜访因特网,并完成*滤防火墙。
4 、结束语
提出了一种根据嵌入式 Linux 操作体系的SOHO 路由器规划计划。与现有规划计划比较,本文选用ATM9TDMI+Linux 构架规划SOHO 路由器,能满意高速接入网用户需求,具有更高地体系稳定性和用户安全性。
职责编辑:gt