




已阅读5页,还剩55页未读, 继续免费阅读
(信号与信息处理专业论文)arpvlan、ip路由和访问表技术的研究及其在iag中的实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
a r p nl a n . ip 路由 和访问 表技术的 研究及工 在ia g的实 现 第1 章 a r p / v l a n . i p 路由和访问表技术概述 随着宽带通信的发展,宽带网络技术被应用到各个领域,同时带动了路由和交 换技术的飞跃发展,千兆路由器和a t m 交换机被广泛应用于宽带核心网。下一代的 i p网络必须能够支持一些非缺省的服务才是具有实用价值的, 这些非缺省服务可能 是安全性、服务等级 ( c o s )、q o s 、组播 ( m u l t i c a s t )、服务级别保证 ( s l a )等。 但核心的路由和交换技术仍将是下一代网络技术发展的主题。 本章简单介绍 a r p / v l a n . i p路由 和访问表等高层网络技术的一些基本概念, 着重于描述这些技术与综合接入网关 工 a g开发中相关的内容。 , 。 , a r p技术 a r p是一个简单的地址解析协议。 地址解析协议 ( a r p ) 用于实现 i p地址到网 络接口硬件地址的映射.常见的以太网网络接口硬件地址长度为4 8 b i t . 当某主机要向以太网中另一台主机发送 i i i 数据时,它首先根据目的主机的 i p 地址在 a r p高速缓存中查询相应的以太网地址,a r p高速缓存是主机维护的一个 i p地址到相应以太网地址的映射表。如果查到匹配的结点,则相应的以太网地址被 写入以太网帧首部,数据报被加入到输出队列等候发送。如果查询失败,a r p会先 保留待发送的i p数据报,然后广播一个询问目的主机硬件地址的a r p报文,等收 到回答后再将 i p数据报发送出去。 a r p在 r f c 8 2 6 p l u m m e r 4 8 2 中定义。 1 . 1 . 1 a r p和路由的关系 在 路 由表。 n e t 3的 t c p / i p协议栈实现c h ,由 a r p . a r p高速缓存 已不再是一个独立的表 路由协议和系统 i o共同维护系统 而成为系统路由表的一部分。旧版 比 京邮电人学硕j 3 b f 究生毕业论文第 5页 共 5 8灭 a r p nl a n . ip 路山 和访问 表 技术的 研究 及1 ( 在ia g的实 现 本 a r p的地址缓存结构的各个成员也被分散放在各种路由结构中。 n e t / 3中 a r p和 路由表的关系可由图 1 - 1 - 1 描述。 1 ) l l i n f o _ a r p 结构的双向链表包含了每一个a r p己知的硬件地址的少量信息。 同名全局变量l l i n f o _ a r p 是该链表的头结点, 图中没有画出 第一位的l a - p r e v 指针指 向最后一项,最后一项的l a _ n e x t 指针指向第一项。该链表由a r p时钟函数每隔 5 分钟处理一次。 2 )每一个已知硬件地址的 i p地址都对应一个路由表结点( r t e n t r y结构) 。 l l i n f o a r p 结构的l a r t 指针成员用来指向相应的r t e n t r y 结构,同样地,r t e n t r y 结构 的 r t l l i n f o指针成员指向 l l i n f o _ a r p结构。图中对应主机 s u n ( 1 4 0 . 2 5 2 . 1 3 . 3 3 ) , s v r 4 ( 1 4 0 . 2 5 2 . 1 3 .3 4 ) 和 b s d i ( 1 4 0 .2 5 2 . 1 3 .3 5 ) 的三个路由表结点各 自具有相应的 l l i n f o _ a r p 结构。 3 ) 而在图的最左边第四个路由表结点则没有对应的l l i n f o _ a r p 结构, 该结点对 应于本地以 太网( 1 4 0 . 2 5 2 . 1 3 . 3 2 ) 的路由 项。 该结点的r t _ fl a g s 中设置了c比 特, 表明 该结点是被用来复制形成其他结点的。 设置接口i p 地址功能的i n i f i n i t 函数通过调 用r t i n i t 函数来创建该结点。 其他三个结点是主机路由结点( h标志) , 并由b s d i 向 其 他机器发送数据时通过a r p间接调用路由相关函数产生的( l标志) 。 4 ) r t e n t r y 结构中的r t - g a t e w a y 指针成员指向一个s o c k a d d r d l 结构变量。如果 保存物理地址长度的结构s d l_ a l e n 成员为6 , 那么s o c k a d d r d l 结构就包含相应的 硬 件地址信息。 5 )地址解析协议 ( a r p )用于实现 i p地址到网络接口硬件地址的映射。常见 的以太网网络接口硬件地址长度为4 8 b i t o 当某主机要向以太网中另一台主机发送 i p数据时,它首先根据目的主机的 i p 地址在 a r p高速缓存中查询相应的以太网地址,a r p高速缓存是主机维护的一个 i p地址到相应以太网地址的映射表.如果查到匹配的结点,则相应的以太网地址被 写入以太网帧首部,数据报被加入到输出队列等候发送。如果查询失败,a r p会先 保留待发送的 i p数据报,然后广播一个询问目的主机硬件地址的 a r p报文,等收 到回答后再将 i p数据报发送出去。 ) 路由 结点变量的r t _ i f p成员的相应指针成员指 向刘应网络设备接口的i f n e t 结构。 中间的两个路由结点对应的是以太网上的其他主 机,这两个结点都指向 1 e _ s o f t c 0 。而右边的路由结点对应的是 b s d i ,指向环回结 构l o i f 。 因为r t _ i f p . i f o u t p u t 指向输出函数, 所以目的为本机的数据报被路由至环回 比 京邮i u 人学硕十研究生毕 业论文第 6灭 共 5 8灭 a r p a f a n . i p 路山 和访问 表技术的 研究r i t, 在ia g的 实 现 接 口。 6 ) 每一个路由 结点还有指向 相应的i n _ i f a d d r 结构的指针变量。在本图中, 我 们只显示一个路由结点的相应指向.其余的路由结点具有同样的性质。而一个接口 如 l e o ,可以同时设置多个 i p地址,每个i p地址都有对应的i n _ i f a d d r 结构,这就 是为什么除了r t _ i 印之外还需要r t _ i f a 的原因。 7 ) l a h o l d成员是指向m b u f 链表的指针。当要向某个 i p传送数据报时,就需 要广播一个a r p请求。当内核等待a r p回答时, 存放该待发数据报的m b u f 链的头 结点的地址信息就存放在l a h o l d 里。当 收到a r p 回答后, l a h o l d 指向 的m b u f 链 表中的 i p数据被发送出去。 8 ) 路由表结点中r t _ m e t r i 。 结构的变量r m x _ e x p i r e 存放的是与对应的a r p结点 相关的定时信息,用来实现删除超时( 通常2 。 分钟) 的a r p结点。 一 二二 a -十一 叫_ _ 十 一 一 州 _ 图1 - 1 - 1 a r p与路由表和接口结构的关系 北京的 n s l 匕 人 学硕i :研究生毕 业论文 第 7灭 共 5 8灭 a r p nf a n . ip路山 和it 问 表技术的iff 究及i t h : i a g的 实现 1 . 1 . 2 a r p实现的功能和工作原理 a r p完成的功能和工作原理可以通过 a r p函数与其他内核函数的关系描述。 图 1 - 1 - 2 准确阐明了a r p函数与其他内核函数的关系。 图 1 - 1 - 2 f p + 1 所f t 1 :t 人 网r份的 i f a _ r 比e q u e s f lr j欲 a r p函数与其他内核函数的关系 可以通过以下几个途径理解图 1 - 1 - 2中的函数关系。 1 ) a r p 启动时, 将有如t函数调用过程: i f c o n f g, i n _ i f i n i t a r p w h o h a s a r p r e q u e s t - ( e t h e r _ o u t p u t ) 。 通过这些函数调用, 设备从以 太网口 发出一个目 的 工 p 地址是自己的a r p 请求, 用于通知直连网络的网络拓扑的变化,同时验证直连网 络中有没有地址冲突。 2 ) a r p启动时同时完成了另一项工作。当以太网设备驱动程序获得了赋予该 接口的 i p地址后, r t i n i t 增加一个网络路由。于是 r t r e q u e s t 函数被调用,参数是 r t m _ a d d , 标志位是r t f _ u p 和r t f _ c l o n i n g 。即如下函数调用过程:i f c o n fi g 一 i n i fi n i t一 r t i n i t r t r e q u e s t a r p _ r t r e q u e s t . ir 京iliin i l 人学硕 i : 研究生毕业论文 第 8页 共 5 8页 a r p nl a n . ip路由 和访问表技术的研究及i t 在 a g的实 现 3 ) a r p地址解析时的函数调用过程:i p _ o u t p u t e t h e r _ o u t p u t ( i p o u t p u t ) 一 a r p r e s o l v e 、a r p l o o k u p a r p w h o h a s , r t a l l o c l一 r t r e q u e s t a r p _ r t r e q u e s t 一a r p r e q u e s t 当系统发送或转发一个数据包时,上层模块调用 i p _ o u t p u t 进行选路,在链路层调 用 a r p r e s o l v e完成 i p 到 m a c的地址解析。 相应的 a r p高速缓存时调用 r t r e q u e s t r t a l l o c l 创建新的a r p 结点返回然后在 a r p l o o k u p 完成的是查找操作,当找到 a r p r t r e q u e s t完成地址解析,否则由 a r p r e s o l v e 处调用a r p w h o h a s一 a r p r e q u e s t 发送a r p请求,等待a r p应答完成地址解析。 4 ) a r p 中断处理时的函 数调用过程: a r p i n t r - - i n _ a r p i n p u t 一 a r p l o o k u p - - r t a l l o c l r t r e q u e s t - - a r p _ r t r e q u e s t a a r p中断处理系统收到的a r p 请求和 应答包 5 ) 主要完成对请求包的应答和 a r p 缓存。 a r p 相关的 1 0 操作手工配置的函数调用过程: a r p 程序选路插口 一 r o u t e _ o u t p u t 厂 r t r e q u e s t a r p _ r t r e q u e s t 匕 _r t al l o cl 一s y s c t l _ r t a b l e a r p 程序选路插口可从命令接口键入,也可由选路进程调用。通过这条途径可 以手工添加、删除a r p 结点,获取 a r p 信息。选路进程通过此调用可为新增加的路 由关联出口对应的 a r p信息,为无效的路由标记并删除 a r p结点 ( 最终由 a r p _ r t r e q u e s t 完成)。 6 ) a r p 高速缓存刷新过程的函数调用过程: a r p t i m e r 一 a r p f r e e - r t r e q u e s t a r p _ r t r e q u e s t 。系统每 5 分钟调用 a r p t i m e r 对 a r p 缓存进行检查,当某个结 点超时调用a r p f r e e 释放,最终的内存释放工作由a r p _ r t r e q u e s t 完成,当超时的 结点没有被使用时将直接被删除,若正在被使用则先标记超时,在用完后由 a r p _ r t r e q u e s t 删除。 1 . 1 . 3 a r p结构 在以太网中传送的a r p分组的格式图1 - 1 - 3 所示( a r p可以用于其他类型的网 络, 可以解析 i p地址以外的地址。 紧跟着帧类型字段的前四个字段指定了最后四个 字段的类型和长度)。 北京邮i l 人学6 y i h j f 究生毕 业论 文 第 9页 共 5 8贝 a r p nl a n . ip路山 和访 问表 技术的研究及7 u i a a g的实 现 浦日 牡 111 k !r h r 己 f a i 4 : f p . n 艺 r p ) a - 4 ( c t e e : i t y p s _ = 目 r - p 1 1 . it h i i ! 7 0 : b “ r _ 七 v p . 。协. 砚 收h l i . - 4 1 . ( 6 ) 1” 口 ro : 二 ) 一半 一 ; 比 . r d n 口 , 七n 下 h” ? _ h o n 匕已t o -l o 由 iltlll)丛 p . 人网日的 i 以人p 4 f .c ! 耽灿1地j 6 h)1cx g . in 1,% 6 态 p 1|叫 一 一 . 妇r x 曰口. 1 2】 , lr p i y .y , 1 月 . . . 口 . . 目. . . . . . . 曰自口 甘 】 气 . 二 六 ,袒门 地, d .i iiti6y1iip;hls 气 元 j 人 矛七 1 , j 爹 . 侣 卜 . 里 - . , , , 图1 - 1 - 3以太网上使用时a r p 请求或回答的格式 1 . 2 v l a n技术 随着网络的不断扩展,接入设备逐渐增多,网络结构日趋复杂,必须使用更多 的路由器刁 能将不同的用户划分到各自的广播域中。在不同的局域网之间提供网络 互连,从而导致网络时延逐渐加长,网络数据传输速度的下降.交换技术的发展, 解决了网络数据传输速度和时延问题,但大大增加了网络中所有设备之间的数据流 量, 很有可能出现广播风暴, 导致整个网络无法使用。 基于交换的v l a n技术, 可 以很好地解决广播风暴问题,同时加强了网络的安全,简化了网络的管理。 v l a n是与 l a n交换技术相关的一项重要而有益的应用,是一种第二层的交 换技术。一方面,v l a n建立在局域网交换机的基础之上;另一方面,v l a n是局 域交换网的灵魂。从定义上说,v l a n是一个广播域,其中的成员利用 l a n交换 进行通信,仿佛共享同一物理网段一样。在v l a n中,划分在同一广播域中的成员 并没有任何物理或地理上的限制,它们可以连接到一个交换网络中的不同交换机 上。广播分组、未知分组及成员之间的数据分组都被限定在v l a n之内。对v l a n 的另一个定义是,它能够使单一的交换结构被划分成多个小的广播域。 在交换式以太网中,利用 v l a n技术,可以将由交换机连接成的物理网络划分 1友多个逻辑子网。也就是说,一个 v l a n中的站点所发送的广播数据包仅转发转发 至属于同一v l a n的站点。 而在传统局域网中,由于物理网络和逻辑子网的对应关 系,因此任何一个站点所发送的广播数据包都将被转发至网络中的所有站点。 在交换式以太网中,各站点可以分别属于不同的v l a n 。构成v l a n的站点不 拘泥于所处的物理位置,它们既可以挂接在同一个交换机中,也可以挂接在不同的 交换机中。v l a n技术使得网络的拓朴结构变得非常灵活,例如位于不同楼层的用 户或者不同部门的用户可以根据需要加入不同的v l a n . 日前以太网交换机上的v l a n实现可划分成以下几类:基于端口的v l a n,基 北京邮电人 学硕 i : 研 究生毕业论文 第 1 0页 共 5 8贝 a r p nl a n . ip路山 和访 问 表技术的 v m及其在ia g的 实现 于 ma c地址的 vl a n、基于网络层地址 ( 主要是 i p地址)的 v l a n和基于 i p组 播的 v l a n。不同的划分方法有各自的优缺点,但基于端口划分的v l a n是最简单 而j l 乎所有以太网交换机都支持的一种缺省方式。 1 . 2 . 1 u l a n中的帧封装格式 本节主要讨论i e e e 8 0 2 . 1 q标准中的帧封装格式。 v l a n中 传 送两 种格式的 帧: u n t a g g e d f r a m e s ( u ) 和t a g g e d f r a m e s ( t ) , 其中 t a g g e d f r a m e s ( t ) 分为v l a n - t a g g e d( 含v i d ) 和p r i o r i t y - t a g g e d( 只有优先级信 息 )。 在以太网和 i e e e 8 0 2 . 3两种环境下,根据 e t h e r n e t t y p e - e n c o d e d ( e ) a n d l l c - e n c o d e d ( l ) i n f o r m a t i o n , f r a m e s ( e i t h e r e o r l ) i n w h i c h a n y . ma c a d d r e s s e s e m b e d d e d i n t h e ma c d a t a a r e c a r r i e d i n c a n o n i c a l ( c ) o r n o n - c a n o n i c a l ( n ) f o r m a t 及 f r a m e s t h a t c a r r y s o u r c e - r o u t i n g i n f o r m a t i o n ( r ) , o r f r a m e s t h a t a r e b r i d g e d t r a n s p a r e n t l y ( t ) ,就有了8 种组合 ( 如e - c - t , l - c - t等),针对这些不同的类型 就有了不同的帧结构。图1 - 2 - 1 显示了有t a g 头的8 种帧封装格式。 o c l 如 i c i c i 吹 甘 t卜v c t c - r c t f - nr c . t 巷丁睁“朽肠打怡竹 以 从 l a g l k 亩 1 阳 . i p .c ! 卜 c 门 n c m w 侧 , 溺, 打 . i 拐 i c s 切h m i n g p , l aa卜仁 oft;dy a . t 2 c . n ; . n sc : 队 阶 ta g fk o lel f t mic i, cf i r ! , . r 【 口 . 只。3 伪 n c i i - c o f i f n配wn cn 幽 口n l 1 a 妇 + j 6 一 ! t - 住 4 a 口 c s 以 s 入 ta g 尧 忠f t p n 1i - r l e n f - 闷r 支 2 - - r - 3 0 1 n o卜ca1 4 f l o c 胜 i s t i c- cd a b川a d at l l c 时i k t a , f ad 0 2 - r p2:os p f :s t a t i c r: bgp a : ftpte l ne t5 n w : : 1 v 田i ; s : r i颐礴 t g ulan bag m u x / de mu x a n d l2 f i l t e r arp 一 、 、 、. v x w o r k s v i d r 一 一 一一 尸 洲 f r end f ri at m i w f at m en刃 e t h end et h en刃 f raal s ces dr i v e r s cc 肠. 扮e r f cc dr i v e r mc c ( mu f t i - c h a n n e l )at m dr i v er . _ _ _ _ _ _ _ _ 一 i 2 m i n t e r f a c e ?- 一决 -一二 _ , ut o p i a i n t erf a c e 二 牛 决佑 万共嗽 幼注 l o o m 几户- 一亏凡_ 1 0 m 图2 - 1 - 1 i a g系统软件结构 从软件结构图中可以看到v x wo r k s 的mu x为系统的核心,由它负责各个物理 驱动的数据收发复用和分发,其承上启下的作用。向下与各种物理接口的 e n d驱 动相连接,接口统一。向上与系统的 i p协议栈 ( 网络层协议)相连接。mu x统一 调度驱动程序缓存物理接口收到的链路层数据报文,进行协议拆装,根据以太网协 议类型调用事先注册的网络层处理函数。从网络层接收待发送的协议数据报,进行 链路层的地址解析和数据封装,根据路由所指示的物理端口发送数据报文,由驱动 程序完成物理层适配、数据缓冲等,保证数据帧的可靠传输。 非 i p业务,即f r和 a t m的网络互通和业务互通以i wf模块为核心,它负责 在f r的逻辑通道 ( 由端口、时隙组和d l c i 标识) 和a t m虚通道 ( 由v p i 和v c i 标识)建立映射关系。从f r协议模块接收的f r帧经过协议变换成 a a l 5 p d u发 送给a t m驱动,从a t m驱动接收a a l 5 p d u经协议变换成f r帧发送给f r , 2 m 端 一 ! 。 木论文研究的a r p / v l a n , i p 路由和访问表模块属于i a g中的高层模块。 i l i i d 1is 1 l 人学硕一 i : 研究生毕业论文 第 2 3页 共 5 8页 a r p n l a n . 1p 路山 和 访问 表 技术的 t o v 7 i 及 j l 在ia g中 的 实 现 第3 章 v l a n技术在i a g中的实 现 3 . 1 i a g中v l a n功能需求 i a g技术规范中指出下行口数据链路层 ( 第二层)支持i e e e在8 0 2 . 2 和 8 0 2 . 3 中定义的帧格式,第三层支持 i e t f在 r f c 1 0 4 2 和 r f c 8 9 4中定义的以太网帧中封 装 i p报文的格式。下行口数据连路层 ( 第二层)还支持 i e e e在 8 0 2 . l q中定义的 v l a n帧格式,第三层支持 i e t f在r f c 1 0 4 2 和 r f c 8 9 4中定义的以太网帧中封装 i p报文的格式。 由于i a g是一种兼有二三层功能的接入设备, 与以太网交换杯互连时至少要支 持前三种 v l a n方式,可以通过字符界面的方式进行配置,目前不支持 g v r p和 g mr p 动态注册v l a n成员和v l a n发现。 i a g的v l a n模块需要支持i e e e 8 0 2 . 1 q 中规定的v l a n t a g , 能够接收和发 送具有v l a n t a g 的以太网m a c 帧, 进行v l a n 数据帧的拆装, 自学习源 ma c地址和源 i p地址所对应的v l a n i d, 进行 v l a n i d 表的管理和维护,接收时完成v l a n i d和源ma c源 i p地址的匹配检查,发送时 支持目的 i p到 v l a n i d的映射。同一v l a n的不同 i p网段互通、v l a n的相同 i p网段互通、以及不同v l a n间的地址解析等问题需要进一步研究。 网络管理员需要通过字符菜单界面配置i a g所属的v l a n ,接那些v l a n i d , 是否支持不同v l a n间的互通, 是否支持ma c地址或 i p地址的v l a n映射, v l a n 与ma c地址和i p 地址间的绑定关系和过滤策略等等。 i a g与以太网交换机相连时, 以太网端口应该配置成 t r u n k模式,否则需要管理员逐一配置多个 v l a n.需要注 意的是 i a g在发送 ma c帧时是以目的主机的 ma c地址和 i p地址为索引项进行 v l a n查询的。 比 京邮电人学r o i l 研究生毕业论文第 2 8孤 共 印 灭 a r p nl a n . ip 路山 和访问 表技术的研究mu i i a g中的 实现 3 . 2 i a g中v l an模块的设计 为了实现 v l a n封装/ 解封装、不同 v l a n之间的互通,要求 i a g能正确识别 用户对应的 v l a n i d ( v i d)。 间的映射是一种比较 自然的想法 由于 i a g是第三层的设备 ,建立用户 v i d和 i p之 。另外,除了能手工配置这种映射关系外,从 i a g 收到的数据包中学习是一个主要的途径。考虑系统的性能、v l a n工作在链路层及 用户 v l a n信息的及时刷新, 只需从收到的a r p包中学习i p和 v i d即可。因此在 具体的实现中, v l a n和第 4 章讲到的a r p是捆绑在一起的。 这两部分共同维护一 个v l a n表。 v l a n表体现了i p . ma c和v i d之间的映射关系, 具体结构如图3 - 2 - 1 所示。 i p a d d r ( 4 b y te )m a c ( 6 b y t e ) a v i d ( 2 b y te ) i t a g ( l b y te ) 图3 - 2 - 1 v l a n表项结构 t a g项用于标记该 v l a n 表项是通过 v l a n 学习注册的还是系统配置的。 v l a n表和a r p 高 速缓存由a r p t i m e r 同 时刷新, 保证v i d , i p 和m a c 之间的一致 性。v l a n表可以手工添加也可学习得到,存在互斥操作。 兼于上述分析, 为了实现v l a n功能, 必须提供v l a n表的维护, v l a n的手 工配置, v l a n学习, v l a n封装/ 解封装, 基于端口v l a n的 a r p广播( 支持 v l a n 环境下的 a r p ),不同 v l a n之间的互通资略等接口。 3 . 3 i a g中vl a n模块的实现 . v l a n表的维护 表的维护由一个互斥信号量控制。在系统初始化时,v l a n表将被初始化 ( 全 置为0 )。每隔 5 分钟,v l a n表和a r p高速缓存同步刷新。 . v l a n手工配置 这部分提供 s h e l l 静态配置 v l a n接口,包括创建 v l a n表项、删除 v l a n表 项、显示配置表中的v l a n表项等。创建和删除操作有成功和失败两种可能的操作 结果,操作失败时返回失败原因。这部分功能类似于 v x wo r k s 提供的 a r p l i b库的 功能。 创建 v l a n表项时,需提供 i p地址、ma c地址、v i d及 f l a g标记等参数。 如:s t a t u s b a g _ a r p a d d ( c h a r * i p a d d r , c h a r * e a d d r , u s h o r t v i d , i n t fl a g ) ; 删除v l a n表项时,需提供 i p地址作为索引。 比 京邮电人学硕卜 研究生毕业论 文第 2 7页 共 5 8 a a r p nl a n . i p 路由 和访 问 表 技术的研究fl i t 在ia g中的 实现 如:s t a t u s b a g - a r p d e l ( c h a r * i p a d d r ) ; 显示配置中的 v l a n表项不需提供任何参数。 如:v o i d b a g _ a r p s h o w ( v o i d ) ; . v l a n学习 当v l a n学习时, 若源主机是本机则忽略, 否则添加 v l a n表项。当收到同一 源主机的不同信息时,将及时刷新对应的 v l a n表项。v l a n学习在 i p接收函数 中进行, 需修改i p r e c e i v e r t n 函 数0 1in t v la n l e a r n ( m _ b l k _ id p m b ik , l l _ h d r _ in f o * p l in k h d r in fo , u n s ig n e d s h o r t ty p e , s tr u c t ifn e t p lf p ) ; i . v l a n封装/ 解封装 i a g对所有接收到的数据包进行 v l a n解封装,对所有待发送的数据包进行 v l a n封装。v l a n信息从a r p - v l a n共同维护的v l a n表中获取. v l a n解封装功能从接收到的数据包中取出第二层的信息,包括目的 ma c地 址的偏移量和长度、源 ma c地址的偏移量和长度、协议类型及实际数据在接收包 中的偏移量. e n d库中的相应函数支持e t h e r n e t 2 和i e e e 8 0 2 网络, 但不支持v l a n 封装的数据包,因此必须修改这个函数以支持v l a n封装。 v l a n封装功能根据从上层接口传下来的参数,包括目的ma c地址、源 ma c 地址、协议类型,形成第二层的包头。两个函数分别用于不同的物理类型,前者是 i e e e 8 0 2 ,后者是e t h e r n e t 2 . e n d库中的这两个函数不支持v l a n封装的数据包, 因此必须修改这个函数以支持v l a n封装。 其中v l a n信息是根据目的ma c地址 查询 v l a n表实现的。 根据 v x wo r k s系统协议栈的实现,实现 v l a n封装/ 解封装只需修改注册到 e n d上的下面几个函数: ( 1 ) v l a n解封装 s t a t u s e n d e f h e r p a c k s t d a t a g e t ( m _ b l k _ i d p m b i k , l l _ h d r i n f o p l i n k h d r l n f o ) ( 2 ) v l a n封装 m _ b l k旧e n d e t h e r a d d r e s s f o r m ( m b l k _ 旧p m b ik , m _ b l k _ 旧p s r c a d d r , m _ b l k _ i d p d s t a d d r ) m , b l k _ 旧e n d 8 0 2 3 a d d r e s s f o r m ( m _ b l k _ 旧p m b lk , m _ b l 左i d p s r c a d d r , m b l k _ 旧p d s t a d d r ) . 基于端口v l a n的广播发送 这主要针对 a r p包而言,除普通封装发送外,另需支持 v l a n广播。基于端 1:7 配置 v l a n封装需配置和维护端口v l a n。由于端口一般配置多个 v l a n,广播 包时需同 一内容的包封装不同的v l a n, 拷贝发送。因此, 需提供数据包拷贝函数。 端1= 1 v l a n封装函数,另外需提供获取下一个端 口v l a n i d的函数。支持端口配 比 京邮电人学硕 i : 研究生毕业论文第 2 8页 共 5 8 i 1 a r p nl a n , i p路由 和访问表技术的 j f j i: m (- ( l ja g中的实现 置 v l a n的封装,需修改下面函数: s t a t u s_ mu x t k s e n d( m u 礼i d mu x l d , m _ s l k _ i d p n b u f f , c h a r . d s t m a c a d d r u s h or t n e l t y p e , v o i d. p s p a r e d a t a . f u n c p t r s e n d r t n ) 为了支持基于端口v l a n的广播发送,必须维护基于端口配置的v l a n,提供 专门的配置接口。 . v l a n互通策略 通过在 l a n s w i t c h上划分 v l a n 来隔离用户。当对 一 l a n s w i t c h的端口划分 v l a n后, 同一个 v l a n内部的数据互通很容易实现, 但不同 v l a n之间是相互隔 离的, 因此需要在不同v l a n之间转发数据报文。 在i a g的以太网口上按照8 0 2 . i q 规范实现 v l a n功能支持多个v l a n之间i p数据报文的转发功能,通过给每个以 太网接口创建多个子接口每个子接口相当于一个完全独立的以太网 接 口的方式,可 以在一个物理以太网接口上实现多个v l 人 n之间的数据转发, 能有效节约接口资源。 i a g中根据v i d可以通过三种方式实现过滤。( 1 ) 直接基于端口配置的v l a n ; ( 2 ) 基于端口配置的v l a n互通策略; ( 3 ) 访问表中提供v l a n过滤。 i a g中这 三种方式都已实现,最终的想法是将这三种方式进行综合,即在收包的入口处根据 端口配置的v l a n初步过滤, 在转发之前进行 v l a n互通过滤, 在高层进行访问表 过滤。这里主要讨论基于端口配置的v l a n互通策略, 需提供专门的配置接口和过 滤接口。另外,要充分考虑和测试v l a n互通策略对系统性能的影响。 3 . 4 vl an模块的测试 主要是功能测试, 包括v l a n表和端口v l a n的配置 v l a n学习, v l a n封 装/ 解封装,基于端口v l a n的广播发送等。这里主要介绍 v l a n环境下的通信测 试,验证 v l a n模块能否正常工作。 3 . 4 . 1 同一子网内的通信 通信方式包括:l a n与 l a n. l a n与 v l a n、相同 v l a n、不同 v l a n. 硬件测试环境如图 3 - 4 - 1 : 比京邮电大学硕 i : 研究生毕业论文 第 2 9 页 共 5 8灭 a r p nl a n . ip 路山 和访问 表 技术的 研究及 1 1: 在ja g中的 实 现 i a g 2 0 2 . 1 1 2 . 1 1 1 . 1 3 4 忱 普通i e t h e r n e t1 01 t a g 3 c o n s w i t c h v l a n 3 1 0 0 1 u n t a g v l a n 11 01 u n t a g r t o s 1 2 0 2 . 1 1 2 . 1 1 1 . 1 1 1 q i f p c 2 0 2 . 1 1 2 . 1 1 1 . # 图3 - 4 - 1 子网内不同v l a n的互通 上图的配置构成r t o s i 和q i f p c位于i a g某一物理口 ( i o m) 的同一侧 ( 即 同一物理连接口),且r t o s i 和q i f p c位于同一逻辑子网。上图的配置基于某一 通信方式 ( 不同 v l a n),在实际测试中会不断改变配置,以测试各种不同的通信 方式。 测试内容:验证i a g , r t o s 1 和q i f p c之i(b 1 的互通。 3 . 4 . 2 不同子网间的通信 通信方式包括:与同一子网内相同. 硬件测试环境如图3 - 4 - 2 : 右图的配置构成 r t o s 1 和 s u n o s 位于 i a g不同物理口的相连的不同子网 通信方式为v l a n与l a n。在实际测试 中会不断改变配置,以测试各种不同的 通信方式。 测试内容:验证i a g , r t o s i 和 s u n o s之间的互通。 图3 - 4 一 子网间不同v l a n的互通 比 京邮电人学映 l : 研究生毕业论文 第 3 0更 共 5 8次 a r p nl a n . t p 路山和wr 问表 技术 的研究及t t 6 : i a g中的实 现 第4 章 a r p 技术在i a g中的实现 4 . 1 i a g中a r p功能需求 a r p地址解析包含两层意思:1 )在网络协议层发送协议数据报时需要有一个 机制能找到目的主机的链路层地址将其组装成完整的链路层数据帧。2 )在未知目 的主机的链路层地址时,能够通过一种地址解析协议主动地询问获取所需的地址。 通过m u x a d d r r e s f u n c a d d ( i f r y p e , p r o t o c o l , a d d r r e s f u n c ) 可以 将a d d r r e s f u n c 指向的函数注册到系统中, 注册的是一个i f r y p e 和p r o t o c o l 的 对偶, 即 特定的网络 协议在某一种物理媒体或设备驱动物理接口上的地址解析对应关系。在 mu x发送 数 据 时根 据物理 接 口类 型和将 要发送 的网络 层 数据 报 协议 类 型调 用 m u x a d d r r e s f u n c g e t 获取注册的地址解析函数,由其完成真正意义上的网络层地址 到链路层地址的映射,至于如何映射,可能是来自于 ma c地址 c a c h e也可能通过 地址解析协议临时获得,非 mu x层所关心。它属于第一层的意思。 v x wo r k s 中系统中的 a r p协议, 即 r f c 8 2 6 所描述的地址解析协议, 是将 a r p 协议作为以太网链路的地址解析协议注册到 mu x之上作为一种网络层协议而存在 的, 它通常与 i p协议绑定到相同的物理接口。它负责接收 a r p请求和发送 a r p应 答并维护接口的ma c地址表。网络地址解析函数也支持组播的映射。 i a g中的 a r p地址解析模块是系统地址解析协议的扩展,可以称之为函数派 ! i : , 它继承系统 a r p地址解析的所有功能之外, 需要提供基于 v l a n的 a r p功能, 完成 ma c地址的自学习,维护和缓存 ma c地址表,在必要时截获用户的 a r p报 文进( t“ 欺骗”卜 卜 应答。 a r p欺骗不是 a r p p r o x y,仅用在 一 种情况:连在 i a g设各不同物理端 口的 i un iii 电大学硕 1 : e l f 究生毕业论文第 3 1灭 共 5 8贝 a r p nl a n . ip 路由 和访问 表 技术的ij f 究及j i; p _ ia g中的 实现 两个相同子网间的通信,两个子网是包含关系。 4 , 2 i a g包处理流程 i a g包处理流程如图 4 - 2 - 1 所示。 i需配置一些困定v i ; 2需配置i a g i晓口上的y l a n l i s t ( 支持掩码); 图 4 - 2 -i a g包处理流程图 l 京邮电人学14 i i : i ii) f 究生毕业论文 第 3 2页 共 58 斑 a r p i v l a n . t p 路山 和访何 表技术 的ii) f 究及i c , 玉a g中 的实现 4 . 3 i a g中a r p模块的实现 i a g中 a r p封装了v x wo c k s 系统协议栈中的 a r p协议. 注册了系统的地址解 析函数,完成第一层意思的功能。因此主要是对第二层意思的功能进行扩展。 . 发送a r p请求 在 i a g中,转发 i p数据包时.首先调用系统的地址解析功能。若在系统地址 高速缓存中找到匹配的结点, 则取出目的主机的ma c地址, 然后根据此ma c地址 查询 v l a n表,以确认目的主机是否 v l a n用户,若是 v l a n用户则对数据进行 v l a n t a g封装, 否则进行普通以太网封装转发。 若在系统地址高 速缓存中没有找 到匹配的结点, 则调用系统的地址解析功能,广播发送 a r p请求。 此时需发送两种 a r p请求,一种是普通以太网封装的a r p请求,另一种是基于端口配置v l a n的 t a g封装的 a r p请求。 . 接收a r p 请求 当收到 a r p请求包时,首先根据接收端口的网段配置和 v l a n表中的信息判 断源主机和目的主机是否v l a n用户,是否在同一子网。若源主机和目的主机同是 v l a n用户或同是普通以太网用户,且在同一子网,则丢弃该请求包。若源主机和 目的主机同是 v l a n用户或同是普通以太网用户, 但在不同子网, 则应答
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 肾内科医生外出进修汇报
- 消防基本常识与公共基础知识题库(含答案)
- 2025年事业单位工勤技能-海南-海南水土保持工三级(高级工)历年参考题库含答案解析
- 2025-2030中国糖蜜行业供需态势及消费趋势预测报告
- 2025年事业单位工勤技能-浙江-浙江医技工三级(高级工)历年参考题库含答案解析(5套)
- 2025年事业单位工勤技能-河南-河南防疫员三级(高级工)历年参考题库含答案解析
- 2025年事业单位工勤技能-河南-河南管道工一级(高级技师)历年参考题库含答案解析
- 2025年事业单位工勤技能-河南-河南林木种苗工三级(高级工)历年参考题库含答案解析
- 2025年事业单位工勤技能-河北-河北防疫员五级(初级工)历年参考题库含答案解析
- 2025年事业单位工勤技能-江西-江西环境监测工四级(中级工)历年参考题库含答案解析(5套)
- 2024年工会财务知识竞赛试题及答案
- 26个英语字母描红练习(素材)-小学英语
- DL∕T 686-2018 电力网电能损耗计算导则
- 糖尿病医疗广告宣传指南
- 2023年河南省中考数学试卷及答案
- 中外民歌欣赏(高中音乐课件)
- Revit-基础教程课件
- 大学美育(第二版) 课件 第五单元:书法艺术
- 消防工程技术咨询合同
- 从《史记》看司马迁的命运观
- 高中新外研版单词总表(必修123+选修1234)
评论
0/150
提交评论