图文并茂带你深入理解三次交换之单臂路由

三层交换机——一次路由,多次转发

之单臂路由

一、序

? 首先,想要理解三层交换机相关知识,我们需要理解(二层设备)交换机(数据链路层)和(三层设备)路由器(网络层)的相关知识,对二层(数据帧)转发和三层(数据包)转发原理理解的基础上,理解MAC地址表、ARP缓存表和路由表的相关知识。

? 如果谈到三层交换机必然离不开对VLAN划分和Trunk链路的理解,简单来说,VLAN划分的目的主要是为了解决网络中广播风暴的产生,其导致的结果是属于同一网段不同VLAN的主机是无法正常通信的;而Trunk链路的由来是为了实现不同交换机之间相同VLAN的主机相互通信,那么我们会考虑这样的一个问题:在局域网划分VLAN后,局域网中不同VLAN的主机之间是如何进行互相通信的呢?

? 这就需要三层交换技术来帮我们解决这样的问题。

? 说到三层交换就不得不谈一下它的前身:单臂路由——单臂路由(router-on-a-stick)是指在路由器的一个接口上通过配置子接口(或“逻辑接口”,并不存在真正物理接口)的方式,实现原来隔离的不同VLAN(虚拟局域网)之间的互联互通。

那么单臂路由的原理是什么呢?

? 逻辑子接口的概念:路由器的物理接口可以被划分成多个逻辑接口(或者认为是虚接口),这些被划分后的逻辑接口被形象的称为子接口。值得注意的是这些逻辑子接口不能被单独的开启或关闭,也就是说,当物理接口被开启或关闭时,所有的该接口的子接口也随之被开启或关闭。

二、下面结合一个具体的单臂路由的拓扑图来说明:

? (1)对交换机进行配置:VLAN划分和Trunk链路搭建

(2)对路由器进行相关配置

(3)配置pc机IP地址,使用wireshark软件抓包分析并进行测试,先给出结果然后看抓包来分析这个过程

抓包结果(选择其中一次ping包数据的(基于ICMP协议)抓包信息来讲述这个过程):

我选择的是上述发送ping包的最后一次ping通时的结果,即截取出序列号为100-103的一层一层讲述这个过程

(1)首先源IP地址是PC1的,目标IP地址是PC2,发送出去时首先经过交换机,那么此时交换机发现是从vlan10过来的就会标记一个标签,VLAN-ID为10,上图中的ID信息(灰色部分)的确是10,然后将数据发给R1;

(2)此时R1收到后查询路由表,然后发现是自己的直连网段,随即转发出去,其实是回来,但是此时的VLAN-ID转换为20,因为路由器根据自己的逻辑子接口和PC1发送的数据包是可以确定出将要发往哪个VLAN-ID的。所以上图中ID转换为20.从Trunk链路回到交换机,交换机接收到信息后知道是发往VLAN20 ,然后解除标记的ID

(3)当PC2收到信息时,会给出回应,此时源IP地址是PC2,目标IP地址是PC1,而经过交换机时,又被打上标签所以是VLAN20,即上图中ID为20

(4)交换机收到信息后通过Trunk链路发送给路由器,路由器开始匹配路由表,将VLAN ID进行转换在将信息转发出去,所以此时的ID为10.

三、总结:上述实验重点是理解什么是逻辑子接口,而后就是通过抓包来理解单臂路由的原理,其实在单臂路由中,交换机主要负责封装和拆除标签,而路由器主要是负责路由转发和VLAN转换。

其实单臂路由是有其瓶颈的,可以参看下一博客文章,我们将进入三层交换机的世界!

原文地址:https://blog.51cto.com/14557673/2443942

时间: 2024-10-07 13:55:41

图文并茂带你深入理解三次交换之单臂路由的相关文章

图文并茂带你深入理解三次交换之三层交换机

三层交换机--一次路由多次转发 友情链接:https://blog.51cto.com/14557673/2443942 上述链接的文章主要是对前面所述的二层和三层设备以及VLAN划分和trunk链路进行简单总结,从而引出了单臂路由的概念,并通过实验讲述整个过程,下面我们将由单臂路由引出三层交换机的概念和原理. 四.三层交换技术--实现VLAN间通信,解决单臂路由中继链路的瓶颈 ? 理解了单臂路由的原理,我们会发现单臂路由是不具有扩展性的,为什么这么说呢,如果VLAN 的数量不断增加,流经路由器

实验三:利用单臂路由实现VLAN间路由

1.准备工作: 工具:1台交换机,1台路由器,2台PC机,网线 (1)      开始 --> 控制面板 --> 程序 --> 程序和功能 --> 打开或关闭Windows功能 --> 勾选Telnet客户端 (2)      开始 --> 运行程序:cmd --> telnet 172.28.15.104 2002(打开其中一台路由器) 2.路由器配置IP (1)去掉IP (2)在路由器上配置VLAN10和VLAN20的IP (3)查看路由器的路由表 3.配置交

一个实验轻松学习,华为单臂路由、DHCP、LACP模式链路捆绑、二层与三次链路混绑

实验拓扑 实验需求 1.C1与C3属于vlan10,C2与C4属于vlan20 2.SW1与SW2之间使用LACP模式链路捆绑,活动接口为2个 3.SW1与R1之间进行链路混绑 4.VLAN 10 与 VLAN 20 通过DHCP自动获取IP地址 5.在R1上配置单臂路由使全网互通 vlan10 IP:192.168.10.0/24 vlan20 IP:192.168.20.0/24 SW1配置: <SW1>system-view                //进入系统视图 [SW1]vl

实验三--单臂路由

PC端配置ip地址,配置网关. 交换机配置: 1.交换机(左): system-view sysname sw1 vlan 10 vlan 20 quit interface range gi 1/0/1 to gi 1/0/2 port link-type access port access vlan 10 quit interface range gi 1/0/3 to gi 1/0/4 port link-type access port access vlan 20 quit inte

单臂路由器实现不同vlan之间的数据交换

实验名称:通过单臂路由实现不同vlan间的通信 实验拓扑: 实验步骤: (1)      给交换机配置vlan并将接口分别加入vlan (2)      配置路由器 (3)      验证两个vlan之间的通信 总结:就是在给路由器的子接口配置ip地址前,一定要对子接口进行vlan数据的封装,否则无法识别该vlan数据对应的哪个子接口的IP地址. 单臂路由器实现不同vlan之间的数据交换,布布扣,bubuko.com

带你深入理解STL之迭代器和Traits技法

在开始讲迭代器之前,先列举几个例子,由浅入深的来理解一下为什么要设计迭代器. //对于int类的求和函数 int sum(int *a , int n) { int sum = 0 ; for (int i = 0 ; i < n ; i++) { sum += *a++; } return sum; } //对于listNode类的求和函数 struct ListNode { int val; ListNode * next; }; int sum(ListNode * head) { int

带你深入理解STL之Vector容器

C++内置了数组的类型,在使用数组的时候,必须指定数组的长度,一旦配置了就不能改变了,通常我们的做法是:尽量配置一个大的空间,以免不够用,这样做的缺点是比较浪费空间,预估空间不当会引起很多不便. STL实现了一个Vector容器,该容器就是来改善数组的缺点.vector是一个动态空间,随着元素的加入,它的内部机制会自行扩充以容纳新元素.因此,vector的运用对于内存的合理利用与运用的灵活性有很大的帮助,再也不必因为害怕空间不足而一开始就配置一个大容量数组了,vector是用多少就分配多少. 要

带你深入理解Android Handler机制

带你深入理解Android Handler机制 欢迎转载请注明来源 说到消息机制,我们一定会想到Handler,由于Android系统规定主线程不能阻塞超过5s,否则会出现"Application Not Responding".也就是说,你不能在主线程中进行耗时操作(网络请求,数据库操作等),只能在子线程中进行.下面先来看一下在子线程中访问UI会出现什么情况. public void click(View v){ new Thread(new Runnable() { @Overri

试比较三种交换方式

参考链接:http://blog.chinaunix.net/uid-21411227-id-1826932.html三种交换技术及其比较2010-09-22 17:17:57 分类: 系统运维 一.电路交换: “电路交换”(Circuit Switching)又称为“线路交换”,是一种面向连接的服务.两台计算机通过通信子网进行数据电路交换之前,首先要在通信子网中建立一个实际的物理线路连接.最普通的电路交换例子是电话系统.电路交换是根据交换机结构原理实现数据交换的.其主要任务是把要求通信的输入端