不同虚拟机局域网Vlan之间访问
上篇博客讲了什么是虚拟局域网,以及如何搭建虚拟局域网。这篇博客讲述如何在不同虚拟局域网之间进行通信。
不同虚拟局域网通信需要路由设备进行转发。路由设备可以是路由器也可以是具有路由功能的三层交换机。
上篇博客:认识虚拟局域网及搭建(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>enableRouter#configConfiguring from terminal, memory, or network [terminal]?Enter configuration commands, one per line. End with CNTL/Z. .................进入全局配置模式Router(config)#interface fa0/0 ................进入和交换机连接的那个接口fa0/0Router(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)#exitRouter(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 ..........完成配置
下图是配置图;
将鼠标放在路由器上几秒,就会显示所有接口的信息。可以查看是否设置成功。
测试结果:成功了。写的好累!!!
前面介绍的都是路由器与二层交换机组合使用来实现路由转发的。其实只要交换机有路由功能,就可以不用连接路由器了。三层交换机及以上就具有这样的功能。
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 20Switch(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之间访问相关推荐
- 文件服务器跨vlan之间访问,[转载]实现不同的VLAN访问同一个服务器
1台三层交换:连 1台服务器:连2台 2层交换机,每台交换机配置了2个vlan (vlan10,vlan20).不同vlan 相互之间不能通讯,要求所有2层交换机下的客户机能够访问服务器. ----- ...
- vlan之间互相访问_VLAN的划分和网络的配置实例
1.VLAN基础知识 VLAN(Virtual Local Area Network)的中文名为'虚拟局域网',注意不是'VPN'(虚拟专用网).VLAN是一种将局域网设备从逻辑上划分(注意,不是从物 ...
- 虚拟机内 docker启动 局域网无发访问 问题解决
虚拟机内 docker启动 局域网无发访问 问题解决 参考文章: (1)虚拟机内 docker启动 局域网无发访问 问题解决 (2)https://www.cnblogs.com/Pualfly/p/ ...
- VM安装的虚拟机如何在局域网内互相访问
笔者在本地Win10操作系统安装环境如下: VM 15 Pro 安装CentOS7 本章主要实现安装好的虚拟机需要被局域网其它机子访问到,下面开始配置网络,首先VM支持3种网络适配器模式: 主机模式 ...
- 华三交换机ping不通用户但用户_H3C三层交换机配置VLAN之间不能互相访问
H3C 三层交换机配置 VLAN 之间不能互相访问 2010-11-20 13:30:54| 分类: H3C | 标签: qos vlan h3c 交换机 traffic | 举报 | 字号 订阅 ...
- 三层交换解决了VLAN之间的通信问题
开关的转发过程. 开关工作于OSI参考模型的第二层,也就是数据链路层.在每一个端口成功连接时,交换机内部的CPU通过对应MAC地址和端口形成一张MAC表.开关基于MAC地址表来转发数据. 路由转发过程 ...
- 虚拟接口+tx+linux,Linux使用笔记: 解决Xen虚拟机中VLAN接口不能ping大包的问题
出于调试的需要,想在两个Xen虚拟机间使用VLAN相互访问.在Linux上启用VLAN非常简单,只需要使用命令vconfig配置一个VLAN接口就可以了: vconfig add eth0 3 ifc ...
- VLAN之间ACL和VACL的区别
版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.[url]http://intelboy.blog.51cto.com/22786/1 ...
- 网络计算机无法访问 请检查,局域网电脑无法访问,请检查来宾访问帐号是否开通...
局域网电脑无法访问,有时候并不是由于网络故障引起的,而是因为自身电脑的一些设置问题,例如之前谈过的网络参数设置不对造成局域网电脑无法访问.今天分析另一个电脑设置的因素,它也会导致局域网电脑无法访问,那 ...
最新文章
- Foxmail6密码获取案例
- KDD 2019高维稀疏数据上的深度学习Workshop论文汇总
- PYTHON之路(四)
- matlab 计算程序运行的时间
- Spark-on-YARN (来自学习笔记)
- Flutter搜索框SearchBar
- JQMObile 优势
- 第5 章持久化类(Persistent Classes)
- mysql索引背后的数据结构_MySQL索引背后的数据结构及算法原理
- chap6_2 Parallax mapping in OGRE
- html节点替换代码,html之DOM对象replaceChild()方法(子节点替换)功能简介说明
- UiPath安装pdf
- LabVIEW编程LabVIEW开发 PXI-4070数字万用表 例程与相关资料
- 同学使用计算机存在的问题,计算机应用基础教学问题及应对策略
- Js打开QQ聊天对话窗口
- Linux C语言 创建一个简单的守护进程
- 关于python格式对齐的问题_解决python对齐错误的方法
- 十位安卓开发者的 17 年总结
- excel中如何将文本格式数字转为数字格式
- 网易HR告诉你关于网易招聘的那些事(上篇)
热门文章
- Thymeleaf抽取公共页面片段
- Spring boot优点
- JVM中GC小对象配置
- C#通过Outlook发送邮件
- python爬虫beautifulsoup爬当当网_Python爬虫包 BeautifulSoup 递归抓取实例详解_python_脚本之家...
- mongodb更新某个字段_直播 | MongoDB开源数据库的云上之路
- 基于Struts2的供求信息网设计(二)
- Eclipse用法:自动生成get和set方法
- (静态资源处理)nginx 比tomcat强在哪
- Activiti与Spring的整合