如何实现不同交换机上的终端在同一VLAN上互联?

下图:

如何实现不同交换机上的终端在同一VLAN上互联?_VLAN

  PC0,PC1PC4在同一VLAN ,PC2PC3在同一VLAN,怎么实现同一VLAN 上的终端互通呢?

 

    我们知道在交换机不做任何配置的时候,所有端口都在同一个默认vlan下,所以将终端配置好IP地址之后5PC就可以互通,但是现在为了让它们分离出来,如何实现呢?

1、首先要知道交换机是如何工作的?

     交换机是在OSI七层模型的第二层也就是数据链路层下工作的,数据传输单元是帧。只能识别物理地址,不能识别IP地址。

     对于PC2PC3而言:

     假设PC2MAC地址是APC3MAC地址是B

     PC2要和PC3进行通信


PC2发送 



目的地址

源地址

类型

数据

4b

4b

2b


      

相当于从A---->B

然后到了交换机端口3,对于交换机,它需要:

    成表(交换机会自己学习)

        形成一个A------3端口的表

    查表

        查找自身端口上对应的MAC地址,如果没有就以广播数据帧的形式发出去(现在5PC终端都在同一个VLAN下)去寻找。

        PC3接收到广播后,就以单播的方式回应,同样回到交换机的端口上,然在成表,查表回到PC2,这样就形成了通信。

     去:成表A----3,广播找到PC3

     回:单播B----2,查表找到A就从3端口到PC2

2使用vlan技术

VLAN的本质:

是通过数据层面进行分析;

    交换机为每个VLAN的数据,在2层头部添加一个tag字段,该字段等于vlan


目的地址

源地址

类型

tag

数据


    现在将PC2PC3都放在VLAN10

    你会发现你只将switch03端口放进vlan10,将switch12端口放进10PC2PC3竟然没有通信!!

    因为你没有将switch04端口和switch11端口放到vlan10啊。

 

3、在交换机之间使用trunk技术

    经过以上操作,你会发现如果想让PC0PC4在另一VLAN上进行通信,你会想到在两个交换机之间再端口上再加上一根线就OK了(如下图),可是如果是10VLAN20VLAN呢?这样就造成了浪费,也增加了工作量!


如何实现不同交换机上的终端在同一VLAN上互联?_VLAN_02


 

所以使用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