vlan与vlan之间是怎样实现通信的?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vlan与vlan之间是怎样实现通信的?相关的知识,希望对你有一定的参考价值。

vlan与vlan之间是怎样实现通信的?

利用路由器实现不同VLAN之间通信的。

虚拟局域网(VLAN)是一组逻辑上的设备和用户,这些设备和用户并不受物理位置的限制,可以根据功能、部门等因素将它们组织起来,相互之间的通信就好像它们在同一个网段中一样。

vlan与vlan连接方法:

1、通过路由器的不同物理接口与交换机上的每个vlan分别连接:

这种方式的优点是管理简单,缺点是网络扩展难度大。每增加一个新的vlan,都需要消耗路由器的端口和交换机上的访问链接,而且还需要重新布设一条网线。而路由器,通常不会带有太多lan接口的;

2、通过路由器的逻辑子接口与交换机的各个vlan连接:

这种连接方式要求路由器和交换机的端口都支持汇聚链接,且双方用于汇聚链路的协议自然也必须相同;

3、用三层以上交换机代替路由器实现vlan间的通信:

目前市场上有许多三层以上的交换机,在这些交换机中,厂家通过硬件或软件的方式将路由功能集成到交换机中,交换机主要用于园区网中,园区网中的路由比较简单,但要求数据交换的速度较快,因此得到了广泛的应用。

参考技术A 利用路由器实现不同VLAN之间通信的具体操作如下:   ⒈在同一个交换机上创建VLAN1、VLAN2两个不同的VLAN,将端口5和端口10分别分配到两个VLAN中(确保VLAN1、VLAN2所连设备的IP地址在不同的网段上);  ⒉在交换机的快速以太网端口配置模式(SX (config-if) #)下,键入trunk on命令,打开trunk功能;  ⒊在路由器的端口配置模式(RX (config-if) #)下,键入no ip address命令删除原有的IP地址;  ⒋键入interface fastethernet 0/0.1,划分子端口  键入encapsulation isl 1,封装ISL协议  键入ip address ip-address 255.255.255.0(确保ip-address与VLAN1所连设备的IP地址在同一网段);  ⒌键入interface fastethernet 0/0.2,划分子端口2  键入encapsulation isl 2,封装ISL协议  键入ip address ip-address 255.255.255.0(确保ip-address与VLAN2所连设备的IP地址在同一网段)。  建立标准的IP访问列表拒绝特定的主机访问本地计算机  以Cisco26系列路由器为例,下面介绍建立标准的IP访问列表拒绝特定的主机访问本地计算机的步骤:  ⒈查连接线路,确保特定主机与本地计算机能够互相通讯。  ⒉键入config terminal,进入全局配置模式(RX (config) #)。  ⒊键入access-list deny 192.168.Y.1 0.0.0.0(Y为对方路由器编号)。  ⒋键入access-list 1 permit 0.0.0.0 255.255.255.255。  ⒌键入int s0/0,进入串口配置模式(RX (config-if )#)。  ⒍键入ip access-group 1 in,在串口上应用此访问列表。  ⒎在特权模式(RX#)下,键入show ip access-list命令查看IP访问列表。  ⒏特权模式(RX#)下,键入show ip interface serial 0/0命令查看端口的访问列表。  ⒐特定主机上键入ping命令,验证访问列表的作用,此时对方计算机将无法ping通过本地计算机。  实现静态路由  以两台Cisco 26路由器为例,下面将列出实现静态路由具体步骤:  ⒈在路由器的全局配置模式(RX (config) #)下,键入int f0/0命令,进入以太网口的配置模式(RX (config-if) #)。  ⒉在全局配置模式(RX (config) #)下,键入int s0/0命令,进入串口配置模式(RX (config-if) #)。  ⒊在全局配置模式(RX (config) #)下,键入ip route 192.168.y.0 255.255.255.0 192.168.100.y,设置静态路由(y为对方路由器的编号)。  ⒋重复以上步骤,对另一台路由器进行同样的配置。  ⒌在特权模式(RX#)下,键入show ip route命令查看静态路由表。  ⒍键入ping 192.168.y.100命令,测试与对方路由器以太网口的通讯(y为对方路由器的编号)。  利用IGRP路由协议实现动态路由  下面以Cisco26系列路由器为例,介绍利用IGRP路由协议实现动态路由的方法:  ⒈键入config terminal,进入全局配置模式(RX (config) #)。  ⒉键入no ip route 192.168.y.0 255.255.255.0 192.168.100.y,取消静态路由。  ⒊键入router igrp 100,启动IGRP路由协议。  ⒋在路由协议的配置模式(RX (config-router) #)下,键入network 192.168.x.0和network 192.168.100.0(x为路由器的编号),指明与路由器直接相连的网络。  ⒌键入show ip protocols 命令查看IGRP协议的相关信息。  ⒍键入show ip route命令查看动态路由表。  ⒎键入debug ip igrp transaction 命令查看IGRP路由消息。  ⒏键入no debug all命令停止显示。  ⒐Ping对方路由器以太网口的IP地址,检查连通与否。 参考技术B 第一种方式:单臂路由,假设有3个vlan ip分别是1.0、2.0、3.0网段的,通过给路由器配置子接口的IP ,在全局模式下用命令route(config)#interface f0/0.1 ip address 192.168.1.1 255.255.255.0 然后no shutdown激活,那1.1就是1.0的网关了,然后在进入 inteface f0/0.2 ip address 192.168.2.1 255.255.255.0 回车后on shutdown ,同理有多少个vlan 就给子接口配置ip ,客户机的网关就是这个子接口的IP
第二种方式:当vlan太多的时候用单臂路由会使整个网络形成一个瓶颈,影响速度,所以就有了三层交换机来解决,默认三层交换机没有启用路由功能,用ip routing启用后,在全局模式下用interface vlan1 回车后ip add 192.168.1.1 255.255.255.0 这种就是给每个vlan 配置ip,也叫激活svi接口
参考技术C vlan之间默认肯定不能通信的,有两种方式解决:
1:需要路由器,做单臂路由,在路由器上封装dot1q协议实现。
2:如果你的交换机是三层交换机就简单了,开启三层交换机的路由功能,ip routing .OK了,直接就可以通信的。
需要具体命令的话请再联系我。最近下载百度文档时狂缺分,忘采纳。
参考技术D 通过中间的路由器啊(也就是实体路由嘛),你设置完VLAN之后,可以单独给每个VLAN设置路由,如果不设置也可以设置路由器,让他自动完成路由表的创建。

对比如下三种方式实现Vlan之间通信的利与弊

VLAN之间通信

VLAN在分割广播域的同时也限制了不同VLAN间的主机进行二层通信
技术图片
解决vlan间通信方法如下:
? 二层交换机+一台路由器实现vlan之间通信(多臂路由)
? 单臂路由的方式实现vlan之间通信
? 现网中实际运用vlanif逻辑接口来实现vlan之间通信

1.二层交换机+一台路由器实现vlan之间通信

因为不同VLAN之间的主机是无法实现二层通信的,所以必须通过三层路由才能将报文从一个VLAN转发到另外一个VLAN,在二层交换机上配置VLAN,每一个VLAN使用一条独占的物理链路连接到路由器的一个接口上,来实现vlan之间的通信
技术图片

实战演练

技术图片
交换机的配置

#
vlan batch 2 to 3
#
interface GigabitEthernet0/0/1
 port link-type trunk
 port trunk pvid vlan 2
 port trunk allow-pass vlan 2 
#
interface GigabitEthernet0/0/2
 port link-type trunk
 port trunk pvid vlan 3
 port trunk allow-pass vlan 3
#
interface GigabitEthernet0/0/3
 port link-type access
 port default vlan 2
#
interface GigabitEthernet0/0/4
 port link-type access
 port default vlan 3
#

路由器的配置

#
interface GigabitEthernet0/0/0
 ip address 192.168.1.254 255.255.255.0 
#
interface GigabitEthernet0/0/2
 ip address 192.168.2.254 255.255.255.0 
#

连通性的检测
技术图片

分析一下通信过程

PC1访问PC2的过程

PC1自身的SIP是192.168.1.1,访问目标是192.168.2.1,PC1会用自身的掩码和目标IP地址做一个与运算,发现访问的目标和自己不在同一个网段,自己是192.168.1.0/24网段,目标是192.168.2.0/24网段,于是PC1会把数据发往AR1的G0/0/2接口,因为G0/0/2接口的IP地址恰好是我的网关地址,当数据到达交换机的时候,交换机进来会打上PVID是3的tag数据帧,交换机此时做的是解封装和封装停留在二层这块,因为交换机并没有做三层路由功能,查找MAC地址表项后,交换机会从G0/0/1接口发送出去,会剥离tag进行发送,因为路由器一般情况是下是不识别vlan数据帧的。
当PC1的数据包到达AR1的G0/0/0接口后,由于DIP是192.168.2.0/24网段,刚好AR1这边有直连路由,于是AR1查找路由表,发现去往192.168.2.0/24从接口G0/0/2接口发送出去,交换机收到路由器的数据后
交换机会进行解封装和封装动作,交换机从G0/0/2接口收到的数据,会打上vlan 3的数据tag,然后查找MAC地址表项从G0/0/4接口发送出去,会剥离tag进行发送,此时PC2就可以收到该数据了

PC2访问PC1的过程

PC2自身的SIP是192.168.2.1,访问目标是192.168.1.1,PC1会用自身的掩码和目标IP地址做一个与运算,发现访问的目标和自己不在同一个网段,自己是192.168.2.0/24网段,目标是192.168.1.0/24网段,于是PC2会把数据发往AR1的G0/0/2接口,因为G0/0/2接口的IP地址恰好是我的网关地址,当数据到达交换机的时候,交换机进来会打上PVID是3的tag数据帧,交换机此时做的是解封装和封装停留在二层这块,因为交换机并没有做三层路由功能,查找MAC地址表项后,交换机会从G0/0/2接口发送出去,会剥离tag进行发送,因为路由器一般情况是下是不识别vlan数据帧的。
当PC2的数据包到达AR1的G0/0/2接口后,由于DIP是192.168.1.0/24网段,刚好AR1这边有直连路由,于是AR1查找路由表,发现去往192.168.1.0/24从接口G0/0/0接口发送出去,交换机收到路由器的数据后
交换机会进行解封装和封装动作,交换机从G0/0/1接口收到的数据,会打上vlan 2的数据tag,然后查找MAC地址表项从G0/0/3接口发送出去,会剥离tag进行发送,此时PC1就可以收到该数据了

不足点:

1.随着每个交换机上VLAN数量的增加,这样做必然需要大量的路由器接口,而路由器的接口数量是极其有限的。
2.某些VLAN之间的主机可能不需要频繁进行通信,如果这样配置的话,会导致路由器的接口利用率很低

2.单臂路由的方式实现vlan之间通信

将交换机和路由器之间的链路配置为Trunk链路,并且在路由器上创建子接口以支持VLAN路由,配置能够让路由器子接口识别vlan的tag数据
配置路由器子接口封装vlan 在路由器相应的子接口下配置下面两条命令

dot1q termination vid "几"

命令配置子接口对一层tag报文的终结功能,即配置该命令后路由器子接口在接收带有vlan tag 的报文时 将剥掉tag进行三层转发 在发送报文时 会将与该子接口对应vlan的vlan tag添加到报文中

ARP broadcast enable 

命令开启ARP广播的功能 如果不配置该命令 将会导致该子接口无法主动发送ARP广播报文,以及向外转发IP报文
技术图片

实战演练

技术图片
交换机的配置
S2的配置

vlan batch 10 20
#
interface Ethernet0/0/1
 port link-type access
 port default vlan 10
#
interface Ethernet0/0/2
 port link-type access
 port default vlan 20
#
interface GigabitEthernet0/0/2
 port link-type trunk
 port trunk allow-pass vlan 10 20
#
S3的配置
vlan batch 30
#
interface Ethernet0/0/1
 port link-type access
 port default vlan 30
#
interface GigabitEthernet0/0/2
 port link-type trunk
 port trunk allow-pass vlan 30
#

S1的配置

vlan batch 10 20 30
#
interface GigabitEthernet0/0/1
 port link-type trunk
 port trunk allow-pass vlan 10 20 30
#
interface GigabitEthernet0/0/2
 port link-type trunk
 port trunk allow-pass vlan 10 20
#
interface GigabitEthernet0/0/3
 port link-type trunk
 port trunk allow-pass vlan 30
#

路由器的配置

vlan batch 10 20 30
#
interface GigabitEthernet0/0/1.1
 dot1q termination vid 10
 ip address 192.168.1.254 255.255.255.0 
 arp broadcast enable
#
interface GigabitEthernet0/0/1.2
 dot1q termination vid 20
 ip address 192.168.2.254 255.255.255.0 
 arp broadcast enable
#
interface GigabitEthernet0/0/1.3
 dot1q termination vid 30
 ip address 192.168.3.254 255.255.255.0 
 arp broadcast enable
#

结论:
技术图片

分析一下通信过程

PC1访问PC2的过程

PC1自身的SIP是192.168.1.1,访问目标是192.168.2.1,PC1会用自身的掩码和目标IP地址做一个与运算,发现访问的目标和自己不在同一个网段,自己是192.168.1.0/24网段,目标是192.168.2.0/24网段,于是PC1会把数据发往AR1的G0/0/1.1接口,因为G0/0/1.1接口的IP地址恰好是我的网关地址,当数据到达交换机的时候,交换机进来会打上PVID是10的tag数据帧,交换机此时做的是解封装和封装停留在二层这块,因为交换机并没有做三层路由功能,查找MAC地址表项后,交换机会从G0/0/2接口发送出去,会保持tag进行发送,S1交换机收到tag为10的数据后,查找MAC地址表从G0/0/1接口发送出去,保持tag为10的标签进行发送,当这带有tag为10的数据到达AR1的G0/0/1.1接口后,由于该接口配置子接口对一层tag 10报文的终结功能,将剥掉tag 10进行三层转发 路由器查找路由表 发现从G0/0/1.2接口转发,在发送报文时 会将与该G0/0/1.2子接口对应vlan的vlan tag 20添加到报文中 并且由该子接口需要发送arp报文进行数据封装 所以 子接口需要支持主动发送arp报文的功能 所以需要在子接口上面配置该命令 ARP broadcast enable
当S1的数据包收到tag 20的数据后,会从G0/0/2接口发送出去,然后S2收到后,会从Eth0/0/2接口发送给PC2主机

PC2访问PC1的过程

PC2自身的SIP是192.168.2.1,访问目标是192.168.1.1,PC1会用自身的掩码和目标IP地址做一个与运算,发现访问的目标和自己不在同一个网段,自己是192.168.2.0/24网段,目标是192.168.1.0/24网段,于是PC1会把数据发往AR1的G0/0/1.2接口,因为G0/0/1.2接口的IP地址恰好是我的网关地址,当数据到达交换机的时候,交换机进来会打上PVID是20的tag数据帧,交换机此时做的是解封装和封装停留在二层这块,因为交换机并没有做三层路由功能,查找MAC地址表项后,交换机会从G0/0/2接口发送出去,会保持tag进行发送,S1交换机收到tag为20的数据后,查找MAC地址表从G0/0/1接口发送出去,保持tag为20的标签进行发送,当这带有tag为20的数据到达AR1的G0/0/1.2接口后,由于该接口配置子接口对一层tag 20报文的终结功能,将剥掉tag 20进行三层转发 路由器查找路由表 发现从G0/0/1.1接口转发,在发送报文时 会将与该G0/0/1.1子接口对应vlan的vlan tag 10添加到报文中 并且由该子接口需要发送arp报文进行数据封装 所以 子接口需要支持主动发送arp报文的功能 所以需要在子接口上面配置该命令 ARP broadcast enable
当S1的数据包收到tag 10的数据后,会从G0/0/2接口发送出去,然后S2收到后,会从Eth0/0/1接口发送给PC1主机

思考:如果在子接口下面配置DHCP SERVER功能

请问:还需要在子接口上面启用arp广播功能吗?

不足点:

1、 存在单点故障的可能性
2、 此场景需要一台路由器,成本相对较高

3.现网中运用vlanif逻辑接口来实现vlan之间通信

在三层交换机上配置VLANIF接口来实现VLAN间路由

什么是三层交换机

二层交换机和路由器在功能上的集成构成了三层交换机,三层交换机在功能上实现了VLAN的划分、VLAN内部的二层交换和VLAN间路由的功能
技术图片

三层交换机的原理

技术图片
就是二层交换机和路由器的结合体,但是会比这种方式更加高效
三层交换机里面有路由引擎和交换引擎
? 当三层交换机识别到主机发送的DMAC地址不是我自己的时候,就会交给交换引擎,从对应的接口转发出去
? 当三层交换机识别到主机发送的DMAC地址是我自己的时候,就会交给路由引擎处理,三层交换机就会进行路由 从对应的vlan发送出来
? 第一个数据包交给路由引擎处理(CPU处理的)然后会把信息交给交换引擎 同一个数据流的后面的报文不会交给路由引擎处理了 都会交给二层的芯片的转发(更快) 因为芯片转发更快 这些信息包括出接口 arp信息等 这就是一次路由 多次交换

VLANIF接口

华为中低端交换机接口几乎都是二层功能 二层接口不能配置IP地址 但三层交换机需要一个逻辑接口 就是vlanif接口(思科是SVI接口) 这个接口具有三层功能 只要有接口在这个vlan当中 那么 这个vlanif就是up状态
在三层交换机上配置VLANIF接口来实现VLAN间路由。如果网络上有多个VLAN,则需要给每个VLAN配置一个VLANIF接口,并给每个VLANIF接口配置一个IP地址。用户设置的缺省网关就是三层交换机中VLANIF接口的IP地址
技术图片

实战演练

技术图片
交换机的配置

vlan batch 10 20 
#
interface GigabitEthernet0/0/1
 port link-type access
 port default vlan 10
#
interface GigabitEthernet0/0/2
port link-type access
 port default vlan 10
#
interface GigabitEthernet0/0/3
port link-type trunk
 port trunk allow-pass vlan 20
#

结论:
技术图片

分析一下通信过程

PC1访问PC2的过程

PC2访问PC1的过程

以上是关于vlan与vlan之间是怎样实现通信的?的主要内容,如果未能解决你的问题,请参考以下文章

vlan通讯问题?

假装网络工程师4——多VLAN间通信

单臂路由实现不同vlan通信

VLANIF实现VLAN之间的通信

VLANIF实现VLAN之间的通信

思科交换机,划分vlan后怎么实现vlan之间通信