如何实现不同交换机上的终端在同一VLAN上互联?
如下图:
和PC4在同一VLAN ,PC2和PC3在同一VLAN,怎么实现同一VLAN 上的终端互通呢?
我们知道在交换机不做任何配置的时候,所有端口都在同一个默认vlan下,所以将终端配置好IP地址之后5台PC就可以互通,但是现在为了让它们分离出来,如何实现呢?
1、首先要知道交换机是如何工作的?
交换机是在OSI七层模型的第二层也就是数据链路层下工作的,数据传输单元是帧。只能识别物理地址,不能识别IP地址。
对于PC2和PC3而言:
假设PC2的MAC地址是A,PC3的MAC地址是B
要和PC3进行通信
PC2发送
目的地址 | 源地址 | 类型 | 数据 |
4b | 4b | 2b |
相当于从A---->B
然后到了交换机端口3,对于交换机,它需要:
成表(交换机会自己学习)
形成一个A------3端口的表
查表
查找自身端口上对应的MAC地址,如果没有就以广播数据帧的形式发出去(现在5个PC终端都在同一个VLAN下)去寻找。
接收到广播后,就以单播的方式回应,同样回到交换机的端口上,然在成表,查表回到PC2,这样就形成了通信。
去:成表A----3,广播找到PC3
回:单播B----2,查表找到A就从3端口到PC2
2、使用vlan技术
VLAN的本质:
是通过数据层面进行分析;
交换机为每个VLAN的数据,在2层头部添加一个tag字段,该字段等于vlan号
目的地址 | 源地址 | 类型 | tag | 数据 |
现在将PC2和PC3都放在VLAN10
你会发现你只将switch0的3端口放进vlan10,将switch1的2端口放进10,PC2和PC3竟然没有通信!!
因为你没有将switch0的4端口和switch1的1端口放到vlan10啊。
3、在交换机之间使用trunk技术
经过以上操作,你会发现如果想让PC0和PC4在另一VLAN上进行通信,你会想到在两个交换机之间再端口上再加上一根线就OK了(如下图),可是如果是10个VLAN,20个VLAN呢?这样就造成了浪费,也增加了工作量!
所以使用trunk,也就是主干线,又称为中继。使不同VLAN通过共享链路与其它交换机中的相同VLAN通信。
附:
vlan的创建
1. 创建vlan
switch(config)#vlan+数字
switch(config-vlan)#name+名字 //为vlan改名字2. 配置端口模式
switch(config)#interface fa0/1
switch(config-if)switchport mode access //设置为访问模式3. 端口划分进指定vlan
switch(config-if)#switchport access vlan+数字4. 对配置的ip进行测试
switch#show vlan brief
思科交换机默认有5个系统vlan,这些vlan不可以修改与删除。Trunk:
Trunk 模式的链路,可以同时传输所有VLAN的数据;
配置命令:
switch(config)#int fa 0/1 //某个端口
switch(config-if)#switchport mode trunk
验证命令:
show interface trunk
某些交换机需要:
switchport trunk encapsulation dot1q //指定一个封装协议才能配置trunk
转载于:https://blog.51cto.com/13452945/1980240