以太网以其简单灵活、成熟稳定的特性成为许多分布式系统内部通信的首选方式。在这些系统内部采用的以太网结构中,如何合理利用与配置地址信息(包括MAC地址和IP地址)成为提高系统可用性与灵活性的关键。
在OSI七层网络协议参考模型中,第2层为数据链路层。MAC地址位于此层,它由网络设备制造商生产时写在硬件内部。MAC地址一般采用6字节48位,前24位是生产网络设备的厂商向IEEE申请的厂商地址,后24位由厂商自行分配。这样的分配使得世界上任意一个拥有48位MAC地址的网络设备都有唯一的标识。
在TCP/IP网络中,每个主机都有唯一的地址。IP协议要求在每次与TCP/IP网络建立连接时,每台主机都必须为这个连接分配一个唯一地址(IPV4为32位,IPV6为128位)。这个分配给各主机的地址就称为IP地址。它分为互连网上的公共IP地址和局域网上的内部IP地址两种。
分布式系统的内部结构对用户是完全透明的,其内部一般采用嵌入式结构。嵌入式结构中的地址信息一般都固化在只读存储器ROM中,当系统启动时自动加载这些信息。这种地址配置模式比较通用,适合于一般的分布式系统;但对于某些复杂的分布式系统,这种模式可能带来一些问题,如增加生产成本、生产周期较长、调试过程复杂、工作效率低以及地址资源利用率低等。本文结合实际项目,提出分布式系统内部以太网中MAC地址和IP地址的动态配置方法,从根本上解决了传统配置方法所带来的问题。下面介绍MAC地址和IP地址的动态配置方法。
1 项目背景
国家数字交换系统工程技术研究中心(NDSC)承担了国家863项目高性能IPv6核心路由器的研发工作。该核心路由器采用分布式系统结构,由线卡、转发、交换、主控等模块组成。其中线卡、转发、交换模块统称为单板模块。这些单板模块利用自己的嵌入式处理机板的以太网网口单元,通过以太网和主控模块相连。各处理机板用VxWorks嵌入式实时操作系统,可单独处理各单板模块的实时任务。主控模块用Linux操作系统,有良好的人机对话窗口,可通过以太网和各单板模块取得联系,其结构如图1所示。
由于分布式系统中的各单板模块需要通过内部以太网和主控模块进行通信,因此必须给各单板模块上的嵌入式处理机板的网口单元分配相应的MAC地址和IP地址。这些地址信息一般固化在ROM当中,系统启动时自动读取。
这里需要指出的是,下面讨论的MAC地址和IP地址配置与传统意义上的地址分配出发点是不同的。传统意义上的IP地址分配是指通过DHCP协议(动态主机配置协议)将与互联网相连的计算机(可以是通过服务器与互联网相连的局域网中的计算机)分配一个互联网上的公共IP地址,使之在互连网上能唯一地标识自己。这里讨论的分布式系统结构中的内部以太网和外部网络是相隔离的,不需要将互联网上的公共IP地址分配给各单板模块上的嵌入式处理机板的网口单元。各网口单元只需要在局域网内部唯一地标识自己,只对应一个局域网内部IP地址;而MAC地址对于每个网络设备都是唯一的。下面讨论的配置方式是指如何将局域网内部的IP地址和MAC地址配置给每个网口单元。
2 传统静态配置方法
根据项目的设计要求,首先要申请若干MAC地址,同时选定一些局域网内部IP地址(由于是内部以太网,和外界是隔离的,IP地址也可任意选定)。然后将这些MAC地址和IP地址的信息固化在ROM中,由生产厂家生产这些ROM。ROM出厂后,将它们焊接在各嵌入式处理机板上进行调试。这种方法有以下缺点:
①根据MAC地址和IP地址的定义,每个处理机板上的以太网网口单元的MAC地址和IP地址是不一样的。不能把相同的地址信息固化在不同的ROM当中,因此每个ROM的信息不同,只能单独制作,不能进行批量生产。这样一来就增加了成本,而且生产周期较长。
②由于制作好的各嵌入式处理机板的网口单元的MAC地址和IP地址不同,调试各嵌入式处理机板时要区别对待。因此要根据不同的地址分别设置不同的配置信
息,这样的调试过程复杂、工作效率低。
③在具体应用中,为防止设备的损坏,备用设备是必不可少的,因此生产的嵌入式处理机板个数要多于实际需要的数量。因为处理机板上的网口单元个数要和处理机板个数相一致,所以需要申请的MAc地址数量也要和处理机板的生产数量相一致,要多于正常工作所需要的数量。如果工作中的处理机板都能工作正常,不需要使用备用处理机板,那样分配给备用处理机板上的MAC地址资源就得不到应用。当工作中的处理机板出现问题时需要使用备用板时,有问题的处理机板的MAC地址一样不能得到应用。因此多于工作所需数量的MAC地址必定得不到应用而被浪费。
针对以上问题,对核心路由器项目分布式系统中的嵌入式处理机板的网口地址信息采用了动态配置方法。
3 动态配置方法
Flash的可擦写性和非易失性在当今的嵌入式系统中得到了广泛的应用。由于ROM出厂时内容已写定,不能更改,因此复杂的嵌入式系统一般利用Flash的可擦写性进行系统的配置。由于单板模块的复杂性,需要调整嵌入式处理机板的配置信息来保证其正常工作,因此,可以充分利用Flash的作用,将其和ROM的配置有效地结合起来。在分布式路由器中采取以下.MAC地址和IP地址的动态配置方法:
①按照正常工作所需量申请MAC地址(与静态配置相比,没有备用的MAC地址),这样资源可以得到有效利用。
②设置嵌入式处理机板嵌入式系统访问MAC地址和IP地址信息的顺序。系统启动读取ROM信息,当读到网口地址信息时转到Flash中相关地址访问,如果存在相关信息则读取;如果Flash中没有相关信息则读取ROM中的地址信息,过程如图2所示。
③从申请到的MAC地址中任选一个,同时选一个局域网IP地址。将这些硬件信息和嵌入式系统访问MAC地址和IP地址顺序的信息统一编程固化到各个ROM当中,并成批量生产这些ROM。这样可以有效降低成本,减少生产周期。
④将这些ROM分别焊接到各嵌入式处理机板上,并把处理机板上Flash中的相关MAC地址和IP地址信息置O,这样处理机板就读取ROM中的地址信息进行配置。因为各个ROM中的MAC地址和IP地址信息相同,因此各处理机板的调试过程相同。这样步骤一致,简单易行。
⑤处理机板调试完毕后,把申请到的MAC地址分配给各个单板模块不同的处理机板的网口;同时选一些局域网IP地址,保证它们在以太网内部是唯一的。然后可以通过调试工具(Linux下用Minicom,Windows下用远程终端)将已分配好的MAC地址和IP地址等硬件信息分别写到工作中的各处理机板上的Flash中。通过以上分配方式,所有工作的处理机板都将自己Flash中的地址作为唯一的MAC地址和IP地址了。嵌入式系统启动时就读到了分配给各自的地址信息。接下来就可以进行处理机板和各单板模块的综合调试了。
⑥当工作中的处理机板出现问题需要使用备用处理机板时,可以将出现问题的处理机板上Flash中MAC地址和IP地址重新分配给备用的处理机板。这样就有效地利用了所申请的MAC地址资源。
通过以上MAC地址和IP地址的动态配置方法,可以有效地克服静态配置方法中存在的各种问题。相对于静态配置方法,动态配置方法结合了F1ash和ROM的灵活应用,有以下优点:
①能成批量生产内容一致的ROM,降低系统成本,减少生产周期。
②各个处理机板的调试步骤一致,简单易行。
③所申请的MAC地址得到有效的利用,节省地址资源。
结 语
分布式系统中MAC地址和IP地址动态配置与静态配置的根本区别在于F1ash的灵活应用。随着分布式系统的应用日益广泛和设计的日益复杂,动态配置方法所提供的低生产成本、短生产周期和高地址资源利用率以及简公司提供的QHartus II和SOPC Builder开发工具可以在完成接口功能设计后,快速进行系统的集成设计和系统仿真,最终可以在Altera提供的Cyclone系列芯片上实现整个系统设计。对Nios处理器重新编程可以在不改变系统硬件框架的基础上,方便地增加系统的功能和处理效率,对系统的升级和再开发有很大的便利。