上篇博客讲了什么是虚拟局域网,以及如何搭建虚拟局域网。这篇博客讲述如何在不同虚拟局域网之间进行通信。

不同虚拟局域网通信需要路由设备进行转发。路由设备可以是路由器也可以是具有路由功能的三层交换机。

上篇博客:认识虚拟局域网及搭建(https://mp.csdn.net/postedit/80199792)

1、利用二层交换机——路由器方式来实现不同虚拟局域网之间的访问

方式一:

我们称为双臂路由法,所谓双臂是指交换机到路由器有两个线路,其实三个也行,但是路由器接口很少,很少使用这种双臂路由法实现不同虚拟局域网通信。不过,话虽如此,方法还是要讲出来的,请看下图:

上图中,我们用两根直通线将路由器和交换机连接在一起, 在交换机中划分两个子网,192.168.1.0/24和192.168.2.0/24。

用交换机划分两个虚拟局域网vlan10 和Vlan20。Vlan10虚拟局域网中有两台主机pc0和pc5,Vlan20虚拟局域网中有一台pc1主机。

交换机接路由器的端口fa0/3和fa0/4都设置为Access模式,fa0/3设置为Vlan10,fa0/4设置为vlan20。这样交换机的两个虚拟局域网分别都有到路由器的的通道了。虚拟局域网vlan10的数据通过fa0/3端口转发到路由器fa0/0端口,Vlan20的数据通过fa0/4端口转发到路由器fa0/4端口,这样两个虚拟局域网之间可以相互访问。

下图是虚拟局域网Vlan10的pc0来ping虚拟局域网vlan20的pc1,ping通了,说明不同虚拟局域网之间实现了访问。

方式二:

单臂路由:

单臂路由的意思就是只有一条物理数据链路到路由器,简单来说路由器和交换机之间只有一条线相连,不像双臂一样每个虚拟局域网都要一跟线与路由器相连。

这里有个问题,只用一个物理线路的话,路由器是怎么识别交换机发来的数据到底是Vlan10虚拟局域网的数据还是Vlan20的呢?

这里就使用到了二种协议,IEEE802.1Q协议和ISL协议。这两个协议就是给数据帧标记虚拟局域网号的,这样路由器就知道数据是从哪个虚拟局域网传来的数据了。IEEE802.1Q和ISL,下面是协议的简单介绍:

802.1Q:基本标准的IEEE协议,属业界标准。 ISL(Inter-Switch Link):Cisco专有的Trunk封装方式。 802.1q协议是在以太网帧的源MAC个和Type字段之间插入4个字节的Tag字段,并将原有的FCS重写。TAG字段里包括priority和VLANID,TPID=0X8100表示是以太网帧。

ISL协议是在以太网帧的最外层加了26字节的帧头,重新计算的CRC放在帧尾。在26字节的报头里有15bit用来表示VLAN,但只用到低10位。即1024个VLAN数目。在26字节的报头里有15bit用来表示VLAN,但只用到低10位。即1024个VLAN数目。

ISL(Inter-Switch Link):Cisco专有的Trunk封装方式。 802.1q协议是在以太网帧的源MAC个和Type字段之间插入4个字节的Tag字段,并将原有的FCS重写。TAG字段里包括priority和VLANID,TPID=0X8100表示是以太网帧。 ISL协议是在以太网帧的最外层家个26字节的帧头,重新计算的CRC放在帧尾。在26字节的报头里有15bit用来表示VLAN,但只用到低10位。即1024个VLAN数目。在26字节的报头里有15bit用来表示VLAN,但只用到低10位。即1024个VLAN数目。

这里我们只用802.1q,因为这个协议是业界标准,所以推荐使用802.1q协议。

先给拓扑图看看:

我们用主机pc0来ping 主机pc5。

我们先来看看一般数据链路层封装的以太网帧是什么样子。下图主机pc0正常发送交换机switch0的Ethernet II帧格式和实例,属于以太网帧格式的一种,共有四种,读者可以自己百度其他三种格式。

从上面可以看出以太网帧中,并没有标注这个数据帧是属于哪个虚拟局域网的。正常情况下,这个数据帧应该是交换机直接转发出去,不做任何修改。但是当交换机转发的端口使用了8021.q协议后,就会将上面的以太网帧进行封装标记。看下图,交换机转发出去的以太网帧格式和实例。

增加的的字段说明:

Start-of-Frame Delimiter(SFD) - 1字节。字段中1和0交互使用,结尾是两个连续的1,表示下一位是利用目的地址的重复使用字节的重复使用位。

TPID - 值为8100(hex)。当帧中的 EtherType 也为8100时,该帧传送标签 IEEE 802.1Q/802.1P。

TCI - 标签控制信息字段,包括用户优先级(User Priority)、规范格式指示器(Canonical Format Indicator)和 VLAN ID。

我们发现,以太网帧出现了其他字段。其中TPID是用来表示封装协议的类型,例如上面的数值TPID表示封装协议是802.1q。

TCI主要是用来标记VLan ID。

看到你也许明白了,802.1q协议其实就是将数据链路层的以太网帧加上一些标号,例如虚拟局域网ID(Vlan ID),这样交换机将以太网帧转发给路由器后,路由器端口如果也使用了802.1q协议,就知道了这些数据是属于那些虚拟局域网的,然后下一步尽可以转发了。

所以关键点就在802.1q协议。所以,关于交换机和路由器相连的端口必须封装802.1q协议,才能让不同的虚拟局域网之间通信。所以关于802.1q协议的作用,你懂了吗?

那怎么配置交换机和路由器的端口802.1q协议呢,请继续往下看

接下来我们开始进入配置操作:首先我们划分两个子网1   192.168.1.0/24和子网2  192.168.2.0/24。子网1有两个主机,子网2有一个主机。

请看下图:

图中我们使用了一个思科模拟器中的交换机2950和路由器1841,然后选择三个主机。三个pc0和pc5属于虚拟局域网Vlan10,pc1属于虚拟局域网Vlan20。下面试具体的配置信息。

1、交换机: Vlan数据库我们建立两个虚拟局域网,名称Vlan10和Vlan20,  Vlan号为10和20,交换机与主机之间的端口设置为Access模式,交换机连接路由器的端口fa0/3设置为Trunk模式。

2、路由器:我们使用直通线将路由器的fa0/0端口连接到交换机端口fa0/3。

说明:路由器fa0/0端口不用设置i和子网掩码,因为我们要使用的不是物理接口fa0/0,我们要使用的是路由器fa0/0端口的逻辑子接口,你可以想象成这个端口有多个子接口可以与交换机相连,就好像双臂路由一样,只是肉眼看不见而已。

路由器我们使用两个逻辑子接口fa/0.1和fa0/0.2,来连接两个子网,fa0/0.1的设置为ip:92.168.1.1子网掩码255.255.255.0, fa0/0.2接口设置为ip:192.168.2.1和255.255.255.0,这两个ip地址分别作为两个子网的网关。

3、pc0:    ip:192.168.1..2 ,子网掩码:255.255.255.0  网关:192.168.1.1    接入交换机的fa0/1端口,交换机的端口fa0/1设置为Access和Vlan10。

pc1:  ip:192.168.2.1      子网掩码:255.255.255.0  网关:192.168.2.1   接入交换机的fa0/2端口,交换机的端口fa0/2设置为Access和Vlan20。

pc5:  ip:192.168.1.3     子网掩码:255.255.255.0   网关:192.168.2.1      接入交换机的fa0/5端口, 交换机的端口fa0/5设置为Access和Vlan10。

具体配置步骤,你也可以选择命令行配置,我是为了让大家看的更直观,所以采用了图形界面配置。

第一步:

1.主机信息配置:下图只是一个主机实例,其他主机类似。

第二步:

1、给交换机添加vlan数据库,并将设置相应的交换机的端口。

添加Vlan10和Vlan20。

2、配置交换机连接主机的端口:下图只是一个fa0/1,其他端口类似。

3、配置交换机连接路由器的端口:设置为Trunk模式。

关于dot1.q协议封装的说明:
    2950只支持802.1Q,所以配置trunk的时候,默认封装dot1.q的

3560这些,支持多种,所以需要指定是哪一种封装模式。

2950交换机默认封装的是dot1q协议,所以你就不用在fa0/3端口再封装802.1q协议了。如果其他交换机,可能需要封装802.1q协议,就输入下面命令,进入相应的接口,输入switchport trunk encapsulationdot1q。例如这里的fa0/3端口,命令如下:

enable

config t

switchport trunk encapsulation dot1q

这里出错,是因为2950交换机已经封装了802.1q协议。所以其实没必要再封装这个端口的协议。

第三步:

路由器配置,这里我们使用fa0/0的逻辑子端口,所以不能通过图形界面配置,只能命令行配置。

路由器配置图如下:首先给路由器添加同样的Vlan数据库Vlan10和Vlan20

路由配置命令:

Router>enable
Router#config
Configuring from terminal, memory, or network [terminal]?
Enter configuration commands, one per line. End with CNTL/Z. .................进入全局配置模式
Router(config)#interface fa0/0 ................进入和交换机连接的那个接口fa0/0
Router(config-if)#no shutdown ................激活该端口
Router(config-if)#exit ……………返回到全局配置模式
Router(config)#interface fa0/0.1 ...........配置 子接口 这是配置单臂路由的关键,这个接口是个 逻辑接口,并不是实际存在的物理接口,但是功能却和物理接口是一样的。
Router(config-subif)#encapsulation dot1q 2 .......为这个接口配置802.1Q协议,最后面的 2 是vlan 号,这也是关键部分
Router(config-subif)#ip address 192.168.1.1  255.255.255.0 .........为该接口划分网关地址。
Router(config-subif)#exit
Router(config)#interface fa0/0.2 .....同样,进入第2个子接口,进行配置
Router(config-subif)#encapsulation dot1q 3 .........配置802.1Q协议
Router(config-subif)#ip address 192.168.2.1  255.255.255.0 ......划分网关地址和子网掩码
Router(config-subif)#end
%SYS-5-CONFIG_I: Configured from console by console ..........完成配置
经过分别对pc0和pc1两台机子互相ping的测试,可以发现能够ping通,说明实验成功。

下图是配置图;

将鼠标放在路由器上几秒,就会显示所有接口的信息。可以查看是否设置成功。

测试结果:成功了。写的好累!!!

前面介绍的都是路由器与二层交换机组合使用来实现路由转发的。其实只要交换机有路由功能,就可以不用连接路由器了。三层交换机及以上就具有这样的功能。

2、三层交换机来实现不同虚拟局域网的通信。

大致分为两种情况

1、第一种情况,三层交换机直接与主机相连

思科模拟器中的三层交换机是一般3开头的,如下图型号3560,如果开头是2,就是二层交换机了,没有路由功能。

上图三层交换机划分了两个虚拟局域网Vlan10和Vlan20。主机pc0和pc1属于虚拟局域网Vlan10,主机pc2属于虚拟局域网Vlan20。ip地址配置子网掩码配置,如上图所示。

然后在三层交换机中添加Vlan数据库Vlan10和Vlan20。也可以命令行输入,如下:

(1)创建Vlan并命名

Switch>enable
Switch#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
Switch(config)#vlan 10
Switch(config-vlan)#name Vlan10
Switch(config-vlan)#exit
Switch(config)#vlan 20

Switch(config-vlan)#name Vlan20

(2)把VLAN号分配给接口

Switch(config)#int fa0/1     //进入交换机端口fa0/1

Switch(config-if)#switchport mode access //将fa0/1端口设置为Access模式。

Switch(config-if)#switchport access vlan 10//将fa0/1端口划分为Vlan 10

图形

下面就是配置交换机的路由功能了:

Switch> enable

Switch# configure terminal

Switch(config)#ip routing //启动三层交换机路由功能

Switch(config)# interface Vlan 10 //添加设置关联Vlan号为10的路由端口

Switch(config-if)# ip address 192.168.1.1 255.255.255.0 //为该路由端口设置IP和子网掩码

Switch(config-if)# no shutdown //启动该端口

Switch(config-if)# exit //退出该端口

Switch(config)# interface Vlan 20 //添加设置关联Vlan号为20的路由端口

Switch(config-if)# ip address 192.168.2.1 255.255.255.0 //为该路由端口设置IP和子网掩码

Switch(config-if)# no shutdown //启动该端口

Switch(config-if)# exit //退出该端口

Switch(config-if)# end //完成退出

Switch# show ip route //查看路由信息

下图最后出现了配置信息,说明配置成功。

主机pc0来ping主机pc2,测试成功:

2、第二种情况:

路由器的配置跟第一种一样,开启路由功能, ip routing ,然后创建Vlan10 和Vlan20, 再然后命令行进入Vlan10和Vlan20接口。配置ip和子网掩码。

显示路由表

测试:

不同虚拟机局域网Vlan之间访问相关推荐

  1. 文件服务器跨vlan之间访问,[转载]实现不同的VLAN访问同一个服务器

    1台三层交换:连 1台服务器:连2台 2层交换机,每台交换机配置了2个vlan (vlan10,vlan20).不同vlan 相互之间不能通讯,要求所有2层交换机下的客户机能够访问服务器. ----- ...

  2. vlan之间互相访问_VLAN的划分和网络的配置实例

    1.VLAN基础知识 VLAN(Virtual Local Area Network)的中文名为'虚拟局域网',注意不是'VPN'(虚拟专用网).VLAN是一种将局域网设备从逻辑上划分(注意,不是从物 ...

  3. 虚拟机内 docker启动 局域网无发访问 问题解决

    虚拟机内 docker启动 局域网无发访问 问题解决 参考文章: (1)虚拟机内 docker启动 局域网无发访问 问题解决 (2)https://www.cnblogs.com/Pualfly/p/ ...

  4. VM安装的虚拟机如何在局域网内互相访问

    笔者在本地Win10操作系统安装环境如下: VM 15 Pro 安装CentOS7 本章主要实现安装好的虚拟机需要被局域网其它机子访问到,下面开始配置网络,首先VM支持3种网络适配器模式: 主机模式 ...

  5. 华三交换机ping不通用户但用户_H3C三层交换机配置VLAN之间不能互相访问

    H3C 三层交换机配置 VLAN 之间不能互相访问 2010-11-20 13:30:54| 分类: H3C | 标签: qos  vlan  h3c 交换机 traffic | 举报 | 字号 订阅 ...

  6. 三层交换解决了VLAN之间的通信问题

    开关的转发过程. 开关工作于OSI参考模型的第二层,也就是数据链路层.在每一个端口成功连接时,交换机内部的CPU通过对应MAC地址和端口形成一张MAC表.开关基于MAC地址表来转发数据. 路由转发过程 ...

  7. 虚拟接口+tx+linux,Linux使用笔记: 解决Xen虚拟机中VLAN接口不能ping大包的问题

    出于调试的需要,想在两个Xen虚拟机间使用VLAN相互访问.在Linux上启用VLAN非常简单,只需要使用命令vconfig配置一个VLAN接口就可以了: vconfig add eth0 3 ifc ...

  8. VLAN之间ACL和VACL的区别

    版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.[url]http://intelboy.blog.51cto.com/22786/1 ...

  9. 网络计算机无法访问 请检查,局域网电脑无法访问,请检查来宾访问帐号是否开通...

    局域网电脑无法访问,有时候并不是由于网络故障引起的,而是因为自身电脑的一些设置问题,例如之前谈过的网络参数设置不对造成局域网电脑无法访问.今天分析另一个电脑设置的因素,它也会导致局域网电脑无法访问,那 ...

最新文章

  1. Foxmail6密码获取案例
  2. KDD 2019高维稀疏数据上的深度学习Workshop论文汇总
  3. PYTHON之路(四)
  4. matlab 计算程序运行的时间
  5. Spark-on-YARN (来自学习笔记)
  6. Flutter搜索框SearchBar
  7. JQMObile 优势
  8. 第5 章持久化类(Persistent Classes)
  9. mysql索引背后的数据结构_MySQL索引背后的数据结构及算法原理
  10. chap6_2 Parallax mapping in OGRE
  11. html节点替换代码,html之DOM对象replaceChild()方法(子节点替换)功能简介说明
  12. UiPath安装pdf
  13. LabVIEW编程LabVIEW开发 PXI-4070数字万用表 例程与相关资料
  14. 同学使用计算机存在的问题,计算机应用基础教学问题及应对策略
  15. Js打开QQ聊天对话窗口
  16. Linux C语言 创建一个简单的守护进程
  17. 关于python格式对齐的问题_解决python对齐错误的方法
  18. 十位安卓开发者的 17 年总结
  19. excel中如何将文本格式数字转为数字格式
  20. 网易HR告诉你关于网易招聘的那些事(上篇)

热门文章

  1. Thymeleaf抽取公共页面片段
  2. Spring boot优点
  3. JVM中GC小对象配置
  4. C#通过Outlook发送邮件
  5. python爬虫beautifulsoup爬当当网_Python爬虫包 BeautifulSoup 递归抓取实例详解_python_脚本之家...
  6. mongodb更新某个字段_直播 | MongoDB开源数据库的云上之路
  7. 基于Struts2的供求信息网设计(二)
  8. Eclipse用法:自动生成get和set方法
  9. (静态资源处理)nginx 比tomcat强在哪
  10. Activiti与Spring的整合