三层交换机相关知识

三层交换机相关知识

这次的作死之路又要开始了。这次的对象主要是交换机:还是三层的;

这是这次实验的总体用图:

现在现根据图上的标志:将所有的主机配置好;目前没有做任何vlan;所以PC1和PC3是能够互通的;

接下来:我想先去探索下三层交换机关闭portswitch会怎么样:

第一步:先关闭了再说:

因为按照图中的设计;PC1的帧如果想要到达PC2,那么就必然要经过LSW1、但是现在我关闭了g0/0/1端口的portswitch:现在pc1并不能ping通pc2;

通过百度:三层交换机的端口不仅具有二层交换功能外还有三层路由功能。三层交换机端口默认为二层口,接口配置模式下使用不带参数的 portswitch命令,把一个接口设置为2层模式。如果需要启用三层功能就需要在此端口输入undo portswitch命令。

个人理解:一开始配置三层交换机的时候,三层交换机的端口启用的是二层口的功能:所以当PC1尝试ping通PC3的时候,因为PC1会知道自己和目标主机是属于同一个网段下的。所以就会选择二层通信;而三层交换机的端口目前是二层口的功能,所以能够转发帧;但是当我把三层交换机的端口设置为三层口的时候:(等于变成了一个路由器),这个三层口隔绝了二层通信。所以当PC1再次尝试ping通PC3的时候,会发现在自己的网络下并没有主机能够恢复它的arp请求。所以就找不到目的主机;

所以我们现在就将就设置为路由器功能的交换机来接着做:

。。。。。。结果我发现:貌似现在并不能够对交换机的端口进行ip的设置了 :所以选择在交换机端口进行vlanif虚拟端口进行设置(貌似:交换机端口本来就不能进行ip设置;),然后还要把主机设置好默认路由:

[SW1-Vlanif10]int vlanif 20

[SW1-Vlanif20]ip address 10.0.1.10 24

[SW1-Vlanif20]int vlanif

[SW1-Vlanif10]ip address 10.0.0.10 24   在这里对vlan进行设置;

然后;我选择用PC1ping通pc2(因为不在一个网段下,看是否能够进行转发;)

事实告诉我们,并没有成功;所以我现在先选择看到底是哪儿出了问题:

先看看能不能从PC1ping通默认网关:10.0.0.1

然而并没有成功:到底是哪儿的问题;?所以准备抓包寻找原因:

(这个图抓包抓的是二层交换机与三层交换机之间的链路)发现还是出现了arp啊;但是只看到PC1发送的arp,但是么有看到任何应答:

所以我去百度了;

当我看到下面这段话的时候:

当接口由三层模式切换到二层模式时,接口的三层功能和标识将被禁止,采用系统的
MAC 地址。

交换机物理接口默认是二层的,如果需要配置IP地址,可以配置对应的vlanif,然后在vlanif视图下配置IP地址。
物理接口的二三层转换有一条命令:undo portswitch,但是通过这条命令把接口转化为三层后,该物理接口也不能直接配置IP地址。一般把接口转换为三层,是用来绑定VPN用的。

我就知道我一开始所探究的东西是不对的:我在我之后的实验组图中看到了:关闭portswitch的作用主要是用来做链路聚合还有上面提到的绑定VPN;

好了。上面这个实验就这样不了了之了。不过也无所谓;往这上个没有解决的问题接着探究:

对于之前探讨发现的问题:为什么不能够ping通呢?

这个问题其实答案很简单的:(以下个人理解:)

因为我们在三层交换机上设置了虚拟接口VLANif10 ,并在这里面设置了ip地址;(简单说就是如果我的报文没有出现在vlan10中,就不会发现该ip地址;);而我之前直接从PC1pingPC2,我没有对发送的这个帧添加任何的标签(vlan10),所以这个帧会按照默认的vlan1的方式去寻找目的ip。但是我们设置的ip地址是被添加到vlan10.所以才会显示了目的不可达的差错;

所以解决办法还是比较容易的:只要我们为发送的帧添加上我们需要的vlan的标签:

在LSW2上做如下设置:

[Huawei-Ethernet0/0/1]port hybrid pvid vlan 10

[Huawei-Ethernet0/0/1]port hybrid untagged vlan 10

[Huawei-Ethernet0/0/3]port hybrid  tagged vlan all

在LSW1上做如下设置:

[ Huawei-Ethernet0/0/1]int e0/0/3

[Huawei-Ethernet0/0/3]port hybrid  tagged vlan all

利用最简单的hybrid端口:让添加了pvid标签的帧在链路上传递;这样子pc1ping通到PC2的帧都是带有了pvid=10标签,这样才能找到在三层交换机上vlan10中设置的ip地址;

然后我还发现了一个小问题:就是如果你undo portswitch ,你就不能配置链路状态:

http://jingyan.baidu.com/article/8275fc867c4e2946a03cf63c.html

既然所有的问题都明了了话,那就最后将整个网络ping通吧~

结果我又发现了一个小问题:

现在就只针对这一边的发送情况做一个简单的测试,结果发现:PC1竟然能够ping通PC2.正常来说这并不应该的啊,因为我的PC1带有的帧是pvid为10 的,但是我在e0/0/2上设置了只允许pvid为20的通过,然而他们还是ping通了。这不应该啊!

于是乎,我选择在e0/0/3上进行抓包(搞不懂的就抓包!)

我们可以很清楚的发现:在这条链路上有request和reply两种报文!

于是乎,我们再进一步看报文:

这个是request;我们可以看到802.1Q这个帧 id=10;

然而在reply报文中,我们发现了802.1Q这个帧的ID自动变成了id-=20;

正是因为这样的变化,才导致了ping报文能够通过e0/0/2的筛选进入到目标主机中;

个人总结:对于三层路由器来说(或者二层也行吧),当设置了一个vlanif后,在这个虚拟口中设置ip,当有帧进入到了这个虚拟口中,会对它的目标地址进行路由:选择正确的目标投递;在这里是vlanif=20的虚拟口;但是重要的是:它不仅会改变源MAC地址,还会改变802.1Q的标签的值;改变为目的虚拟口的vlan的值;

灵魂画手的处女作品:

 

不过呢,这有带来个小问题:就是vlan又被三层路由给破坏了。这个问题和之前探讨的问题都出现了相同的麻烦。反正呢,能通就是好事。

现在所有的都能ping通啦。

不过呢,虽然他们都能够互相ping通。不过还是有不一样的地方,就是路由路径:

这个是我用pc1ping通不同网段下的PC2的路径:

这个是我用pc1 PING通 相同网段下的PC3的路径;

最后总结下这个问题:其实路由这个东西很傻瓜的。他不知道目标的主机到底是不是自己同一网段还是被隔离的通一个网段;它只会知道:目标的和自己是同一网段,那就二层通信,如果目标的和自己不是同一网段,那就三层通信:

其实三层路由器的存在对于相同网段下的PC1和PC3是透明的,他根本不知道这个交换机的存在;

2017/3/2

时间: 2024-08-02 02:51:13

三层交换机相关知识的相关文章

python的list相关知识

关于list的相关知识 list01 = ['alex',12,65,'xiaodong',100,'chen',5] list02 = [67,7,'jinjiao_dawang','relax1949',53] #打印list01.list02 print(list01) print(list02) #列表截取.切片 print(list01[1]) print(list01[-2]) print(list01[1:3]) #列表重复 print(list01 * 3) #列表组合 prin

php学习day7--函数的相关知识

今天我们主要学了函数的相关知识,是个比较基础的知识,但也是很重要的. 一.函数 函数就类似于一个工具,我们写好函数之后可以直接进行调用,可以很大的减少代码的从用性,提高页面性能和可读性. 1.函数的定义 在php中函数的定义方式为: function  name($形参1,$形参2.....){ 要执行的代码 return  123: } 在上方的函数定义式中,name代表函数名,小括号内是形参,是用来传递参数,花括号中的就是调用时需要执行的代码. 函数的调用方式: name(实参1,实参2,.

svn常规操作与相关知识

Svn常规操作与相关知识 一.何谓版本控制 它是一种软件工程籍以在开发的过程中,确保由不同人所编辑的同一档案都得到更新,它透过文档控制记录程序各个模块的改动,并为每次改动编上序号,并且编辑错误之后还可以回溯到以前的版本 二.可供我们选择的版本控制系统 1.VCS  (本地版本控制) 2.VSS.CVS(集中版本控制) 3.ClearCase.SVN.Perforce.TFS(集中版本控制) 4.Mercurial(水银/水星).Git(分布式版本控制) 差异: 1.Git和其他版本控制系统的主要

黑马程序员---Objective-C基础学习---类、对象、方法相关知识笔记

------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 类.对象.方法相关知识笔记 Objective-C相对于C语言有了面向对象的特性,但是ObjC又没有其他面向对象语言那么多语法特性,ObjC本身对面向对象进行了精简.下面是一些相关知识笔记. 类定义 成员变量 方法和属性 self关键字 类定义 在C#.Java等其他高级语言中定义一个类是相当简单点的,直接一个关键字class加一对大括号基本就完成了,但是在ObjC中类的定义相对变化比较大.现

深入浅出安卓学习相关知识,如何从零学好移动开发

原文发表自我的个人主页,欢迎大家访问 http://purplesword.info/mobile-develop 由于近几年来互联网的飞速发展,安卓和iOS平台的大量普及推广,移动开发在当前是非常热门的一个方向. 有不少同学问我如何学习安卓,要学些什么,难不难学.之前一直没有想好应该怎么回答这个问题,只是简单的说安卓自身门槛不高,并不难学.因为我觉得准确回答一个类似这样的问题往往需要灵感.现在根据我的学习体验,做个大概的总结. 1.我为什么学安卓 我从刚开始接触安卓开发到现在也有两三年的时间了

linux 服务器分区格式化相关知识 -mount

关于linux 系统mount和mkfs 的相关知识: 使用mount 1)  Mount的相关格式:mount [-t 文件类型][-o  选项] devicedir 详解: -t 文件类型,通常默认mount会自动选择正确的类型,通常类型ext2/ext3/ext4之类的. 常用的类型有:                  光盘或光盘镜像:iso9660 DOS fat16文件系统:msdos Windows 9x fat32文件系统:vfat Windows NT ntfs文件系统:ntf

【转载】前端面试“http全过程”将所有HTTP相关知识抛出来了...

原文:前端面试“http全过程”将所有HTTP相关知识抛出来了... 来一篇串通,一个http全过程的问题,把所有HTTP相关知识点都带过一遍 http全过程 输入域名(url)-->DNS映射为IP-->TCP三次握手-->HTTP请求-->HTTP响应-->(浏览器跟踪重定向地址)-->服务器处理请求-->服务器返回一个html响应-->(视情况决定释放TCP连接)-->客户端解析HTML-->获取嵌入在HTML中的对象重新发起http请求

Java的File类相关知识

Java的File 目录: 1.创建File的文件或者目录的方法.... 2.创建File对象的构造器的三种形式... 3.关于分割符的相关知识...................... 4.file简单Api介绍................................... 1.再说File的时候就不得不先说一下创建文件和目录的三个方法. <1>createNewFile()必须有已经创建好的路径,才能创建一个文件.返回值:如果指定的文件不存在并成功地创建,则返回 true:如果指

静态路由表设置以及路由汇总相关知识

随着宽带接入的普及,很多家庭和小企业都组建了局域网来共享宽带接入.而且随着局域网规模的扩大,很多地方都涉及到2台或以上路由器的应用.当一个局域网内存在2台以上的路由器时,由于其下主机互访的需求,往往需要设置路由.由于网络规模较小且不经常变动,所以静态路由是最合适的选择. 本文作为一篇初级入门类文章,会以几个简单实例讲解静态路由,并在最后讲解一点关于路由汇总(归纳)的知识.由于这类家庭和小型办公局域网所采用的一般都是中低档宽带路由器,所以这篇文章就以最简单的宽带路由器为例.(其实无论在什么档次的路