论坛: 系统集成 标题: 关于VLAN中的数据传输 复制本贴地址    
作者: tuzi [tuzi]    版主   登录

最近这几个礼拜全在看VLAN  下面把VLAN的数据被处理的过程写出来 希望对各位学习VLAN的朋友有所帮助
下面所涉及到的VLAN都是基于端口划分
VLAN可以在一台交换机上实现 同样也可以跨越交换来实现  不同的VLAN间默认是不能通信的 只有设定了相关的策略才可以通信 

VLAN是交换机的交换模块和路由模块的事 PC是不知道的 它更无权干涉

首先是一台交换机上VLAN的通信情况
假设这台交换机没有路由模块 也没有外接路由器 但是它可以划分VLAN  只是不同的VLAN不能通信而已

交换机上处于同一个VLAN的机子进行通信

1 这两个机子网络号是一样的

源比较目的的网络号 发现是同一网络的机子 源查看自己的缓存 如果有目的MAC 那就直接封装好 数据包到了交换机 交换机查看CAM表 发现目的的MAC是同一个VLAN的某个接口 然后就直接转发到目的 如果缓存中没有目的的MAC 就走ARP查询  目的可以收到这个ARP查询并作出ARP应答 这样就和上面一样 可以通信了

2  这两个机子的网络号不一样(CISCO建议 VLAN和IP子网 一一对应)

源比较目的的IP 发现不是同一个网络 这时候ARP要跨路由 就必须对默认网关发出一个ARP查询    是要获得目的的MAC  而现在没有路由模块 也没有外置路由器 所以不存在默认的网关 查询失败 最终没有获得目的的MAC  封装数据包的工作不能完成 不能通信

交换机上处于不同VLAN的机子进行通信

1  网络号不一样

这个交换机上两个不同的VLAN(VLAN1 VLAN2)  现在处于VLAN1的某个接口的PC1要和VLAN2中 PC2的通信 首先PC1比较目的的IP 发现不是同一个网络的 它需要目的MAC 于是它对默认网关发出一个ARP查询    是要获得目的的MAC  而现在没有路由模块 也没有外置路由器 所以不存在默认的网关 查询失败 最终没有获得目的的MAC  封装数据包的工作不能完成 不能通信
如果缓存中我们人为的添加的目的MAC  这时候就不需要ARP查询 直接封装数据 不过这个数据包到了交换机 交换机知道不存在路由模块 就把数据包给抛弃 最终结果还是不能通信

2 网络号是一样的
 
这个交换机上两个不同的VLAN(VLAN1 VLAN2)  现在处于VLAN1的某个接口的PC1要和VLAN2
某个接口的PC2通信  PC1 发现目的PC2的网络号是和他一样的  于是PC1就简单的发出一个ARP查询
交换机知道自己有两个VLAN 但是它不可以把这个ARP查询发到VLAN2中 所以查询失败 最终没有获得目的的MAC  封装数据包的工作不能完成 不能通信
如果缓存中我们人为的添加的目的MAC  这时候就不需要ARP查询 直接封装数据 不过这个数据包到了交换机 交换机知道不存在路由模块 就把数据包给抛弃 最终结果还是不能通信

关于2这种情况 只能是理论实验下 实际工程中不会把两个不同的VLAN的网络号设置成一样的 因为这是白痴行为  如果有人这么做我想应该是做测试

以上是一个交换机上VLAN通信的情况

下面是跨越交换机的VLAN通信

跨越交换机的VLAN能够通信 必须要支持干道端口 必须配置成干道链路
A-------------------B---------------------C
                    |
                    D
A B C D全是交换机 他们之间的连接全是干道链路 接口是干道借口 没有起用VTP STP
现在A和C上有相同的VLAN 

1 VLAN中网络号是一样的
A上某个机子要和C上属于同一VLAN的某个机子通信 网络号是一样的  源比较目的的网络号 发现是一样的
源查看自己的缓存 如果没有目的MAC 源就走ARP查询(这个ARP查询只能在这个VLAN中 不可能发到其他VLAN中)当PC的ARP查询到了交换机A的时候 A就把这个查询发送到属于这个VLAN的每个接口 源端口除外
  PS:干道端口属于任何一个VLAN
所以这个查询从干道端口发出来 并被打上标记(ISL OR 802.1Q) 这时候这个被标记过的帧到了B
现在问题是B怎么处理这个标记过的帧

如果B上有和这个VLAN相同的VLAN 就直接广播 源端口除外 这样到了C和D D同样执行和B一样的相同的动作
目的地在C上 最终可以做出应答
如果B上没有这个VLAN  并且没有对未知的帧做出相应的处理意见 那就抛弃这个数据帧 这样的话数据包在B交换机上就被抛弃了 目的地是收不到ARP查询 自然不会有ARP应答 通信不能建立 D也收不到这个ARP包

2 VLAN中网络号不一样
那就比较 先走ARP 因为没有默认的网关 所以不能通信 原因和上面是一样的

不同的VLAN之间的通信

网上有相关的文章 http://www.jashow.com/pcjob/nettech/other/

看完以上的 应该对VLAN的数据传输有一定的了解了


水平所限 错误难免 欢迎跟贴批评指正

地主 发表时间: 04-05-09 15:54

回复: Achieve [achieve]   版主   登录
引用:
VLAN可以在一台交换机上实现 同样也可以跨越交换来实现  不同的VLAN间默认是不能通信的 只有设定了相关的策略才可以通信

错了。这句话,说的没有根据,两个局域网,你设啥玩意儿策略也不能通,就像两个岛屿,你不建立一座实实在在的桥,是不会通的。这样才会通:各vlan设置不同的逻辑网段,之间再用路由器路由。
引用:
VLAN是交换机的交换模块和路由模块的事 PC是不知道的 它更无权干涉

错。vlan是用软件在数据链路层控制硬件使其不能记录某些数字,归根到底是电子学的触发器咚咚,不关交换模块的事,更加不关路由模块的事。
引用:
如果缓存中我们人为的添加的目的MAC  这时候就不需要ARP查询 直接封装数据 不过这个数据包到了交换机 交换机知道不存在路由模块 就把数据包给抛弃 最终结果还是不能通信
说不通,这个时候根本用不上路由模块,又和没有是一样的,有,他也不路由阿,网络地址一样啊。
引用:
关于2这种情况 只能是理论实验下 实际工程中不会把两个不同的VLAN的网络号设置成一样的 因为这是白痴行为  如果有人这么做我想应该是做测试
说得好!.
引用:
跨越交换机的VLAN能够通信 必须要支持干道端口 必须配置成干道链路
这是cisco的一家之言,看书的时候不要蛮看,蛮看花了时间学不到东西...
============================================================================
以上纯属个人观点


[此贴被 Achieve(achieve) 在 05月09日16时25分 编辑过]

B1层 发表时间: 04-05-09 16:23

回复: tuzi [tuzi]   版主   登录
引用:
--------------------------------------------------------------------------------
如果缓存中我们人为的添加的目的MAC  这时候就不需要ARP查询 直接封装数据 不过这个数据包到了交换机 交换机知道不存在路由模块 就把数据包给抛弃 最终结果还是不能通信
--------------------------------------------------------------------------------

说不通,这个时候根本用不上路由模块,又和没有是一样的,有,他也不路由阿,网络地址一样啊。


我觉得老A说不对 网络地址一样不需要路由 可是处于不同的VLAN 不管它网络号一样不一样 都需要路由 难道说 不同VLAN 网络号一样的机子要通信 就不需要路由的支持了

B2层 发表时间: 04-05-09 18:15

回复: tuzi [tuzi]   版主   登录
引用:
--------------------------------------------------------------------------------
跨越交换机的VLAN能够通信 必须要支持干道端口 必须配置成干道链路
--------------------------------------------------------------------------------

这是cisco的一家之言,看书的时候不要蛮看,蛮看花了时间学不到东西...


这个我还真是不懂 看的全是CISCO的书 还请老A指点

B3层 发表时间: 04-05-09 18:22

回复: Achieve [achieve]   版主   登录
网络地址一样不需要路由 处于不同的VLAN 网络号一样也不需要路由
因为网络地址一样的话你的终端根本不会把他交给网关,明白了吧

B4层 发表时间: 04-05-09 18:34

回复: tuzi [tuzi]   版主   登录
老A你的说法是正确的  但是误解我的意思了 
我主要是强调不同VLAN之间通信是需要路由支持的

你说的那个意思我能够明白  不同VLAN的相同网络号  就算到了路由器那  路由器一看是同一个网络的 也会不予理睬  正是因为这样 所以就不能通信了

B5层 发表时间: 04-05-09 21:04

论坛: 系统集成

20CN网络安全小组版权所有
Copyright © 2000-2010 20CN Security Group. All Rights Reserved.
论坛程序编写:NetDemon

粤ICP备05087286号