单臂路由和VLAN-IF
前几日有同学在韩老师的会员群里面提了这样一个问题:
有个问题搞半天没弄明白,我在核心交换机上划分了几个vlan,其中一个端口与防火墙相连,防火墙配置为192.168.100.1/30,核心交换机上连接防火墙的接口没有配置IP,而是将这个接口加入到了vlan100下边,vlan100的IP是192.168.100.2/30,华为工程师说这样就行了,我不理解为什么交换机端口不用设置IP?
曾经我也有此疑问,后来随着对交换机的理解不断加深,这个问题就慢慢解决了,于是我写了一些自己的理解给这个同学,下面我把我的回答整理一下。
首先,从一个比较浅层面的角度去回答一下这位同学的疑问,这位同学不理解为什么交换机端口不能设置IP,交换机的物理接口本就不能设置IP地址(忽略接口状态转换的前提下),如果我就这样告诉这位同学的话,这个同学依然对此问题迷茫,我想从一个主观的、比较深的层次去理解一下这个问题。
我认为这位同学是因为对交换机的理解过于浅薄,我认为他的浅薄之处有三:
1.误认为交换机的二层物理接口可以配置IP地址。
2.于vlanif接口理解不深刻。
3.对交换机进行三层转换时的路由和TAG理解的不透彻。
先解决一下这位同学的第一个浅薄之处。这位同学误认为在二层接口可以配置IP地址!实际上二层是不能配置IP地址的,因为IP地址是网络层的概念(三层),而交换机的物理接口属于链路层的概念(二层),三层对二层,这岂不是“对牛弹琴”。二层的物理接口只可以有MAC地址,因为MAC地址也是二层的;IP是三层概念,因此只能配置在三层接口上,而二层交换机是没有三层物理接口的,但是三层交换机是有三层的逻辑接口的,我们可以把IP地址配置在交换机的三层逻辑接口上。上述是在没有考虑到接口状态转换的情况下,现在有一些交换机是可以进行接口状态转换的,就是把二层接口转换成三层的,仅仅需要一个命令就足够,当交换机的二层接口转换成为三层接口之后,IP地址就可以配置在接口之上了,因为这是典型的三层概念对三层接口。
然后再解决一下这位同学的第二个理解上浅薄之处。这位同学对vlanif接口没有概念。我们在说到在交换机上有三层逻辑接口时,其实这个三层逻辑接口就是vlanif接口,这个vlanif接口,这个vlanif接口到底是个什么东西呢?我们可以把这个vlanif接口理解成为单臂路由上的路由接口嵌入到了交换机内部了,至于单臂路由的路由转发过程,我会再下文当中说明。
最后再解决一下这位同学的第三理解上的个浅薄之处。其实这个最是关键,因为vlanif接口涉及到路由转发和TAG的转换。我们通过一个小实验来说明两台计算机通信时路由转发和TAG转换过程。

PC1与PC2之间的通信过程:192.168.10.1---------------192.168.20.1
第一步:PC1会对目标IP(192.168.20.1)进行与运算,发现目标IP与本地IP并不是处在同一个网段当中,所以PC1下一步会发ARP广播访问网关(192.168.10.254)的MAC地址,ARP包从G0/0/1接口进入交换机内部之后会被打上VLAN10的TAG,交换机会交此报文转发至所有属于vlan10的接口,其中G0/0/1接口属于vlan10接口,此外还有一个接口属于vlan10里面的接口,就是vlanif10接口,这个接口也属于vlan10,并且这个接口的IP就是网关,所以vlanif10接口就会通过ARP的回复包告知PC1自己的MAC地址。
第二步:PC1将网关的MAC地址封装好之后,将数据包发送到网关之上,网关收到之后会解封装至三层,看见了目标IP是192.168.20.1之后会进行路由,路由的过程就是查看自己的路由表,看有没有到达192.168.20.1的路由条目?结果会发现有一条到达192.168.20.0/24网段的路由,这个路由指向vlanif20这个接口,意思就是到达192.168.20.1/24,下一跳交给vlanif20这个接口就可以了。
第三步:当vlanif20这个接口收到数据包之后,发现目标IP是192.168.20.1,与自己是在一个网段,于是VLANIF20接口会发送ARP请求报文请求目标IP(PC2)的MAC地址,在这个过程当中数据包由原本的TAG由VLAN10变化成了VLAN20,为什么TAG要转换成VLAN20呢?因为ACCESS接口只会向外发送本帧VLAN,如果不把TAG更换的话,数据包是无法从交换机的vlanif20接口向外发送的,因为VLANIF20也有ACCESS接口属性,它的本帧VLAN也是VLAN20。
注意:VLANIF20接口只是通过G0/0/2接口进行转发,VLANIF20和G0/0/2并不是一个接口。
单臂路由和VLAN-IF的更多相关文章
- 路由器基础配置之单臂路由实现vlan间通信
我们将以上面的拓扑图开始进行配置,目的为设置单臂路由实现vlan间通信,设置4个vlan,pc0,1,2为vlan10 pc3,4,5为vlan20:pc6,7,8为vlan30:server0,1为 ...
- 利用单臂路由实现VLAN间的路由
实验4:利用单臂路由实现VLAN间的路由. 实验原理: 实验内容: 本实验模拟公司网络场景,路由器R1是公司的出口网关,员工PC通过接入层交换机(如S2和S3)接入公司网络,接入层交换机又通过汇聚交 ...
- 单臂路由实现VLAN间通信
实验要求:利用路由器完成同vlan能通信,不同vlan也能通信 拓扑如下: 涉及内容有: 1.VTP的创建和配置 2.VLAN的创建和划分 3.路由器的单臂路由配置 配置如下: route1 enab ...
- eNSP仿真软件之利用单臂路由实现VLAN间路由
1. 实验原理 以太网中,通常会使用VLAN技术隔离二层广播域来减少广播的影响,并增强网络的安全性和可管理性.其缺点是同时也严格地隔离了不同VLAN之间的任何二层流量,使分属于不同VLAN的用户不能直 ...
- VLAN实验4(在eNSP上利用单臂路由实现VLAN间路由)
原理概述: 以太网中,通常会使用VLAN技术隔离二层广播域来减少广播的影响*并增强 网络的安全性和可管理性.其缺点足同时也严格地隔离了不同VLAN之间的任何二层流量,使分属于不同VLAN的用户 不能直 ...
- VLAN实验4:利用单臂路由实现VLAN间路由
单臂路由: 实验环境: 实验拓扑图: 实验编址: 实验步骤:1.创建VLAN并配置Access.Trunk接口. 我们在S2上创建VLAN10和VLAN20,并且吧链接PC1的E0/0/1和链接PC2 ...
- 在ensp上利用单臂路由实验VLAN间路由
我们为什么要设置单臂路由? 因为我们要解决不同vlan,不同网络的PC机间的通信问题~ 那它为啥叫单臂路由嘞? 单臂路由的原理时通过一台路由器,使vlan间互通数据通过路由器进行三层转发,如果在路由器 ...
- eNSP——利用单臂路由实现VLAN间路由
原理: 以太网中,通常会使用VLAN技术隔离二层广播域来减少广播的影响,并增强网络的安全性和可管理性.其缺点是同时也严格地隔离了不同VLAN之间的任何二层流量,使分属于不同VLAN的用户不能直接互相通 ...
- 利用单臂路由实现vlan间路由
本实验模拟公司场景 通过路由器实现不同vlan部门间通讯,拓扑图如下
- 利用单臂路由实现VLAN间路由(有1个疑问)
配置PC机: PC1:IP 192.168.1.1 :掩码:255.255.255.0:网关:192.168.1.254 VLAN 10 PC2:IP 192.168.2.1 :掩码:255.255 ...
随机推荐
- Scrapy对接Selenium
首先pip安装selenium,然后下载浏览器驱动 WebDrive下载地址 chrome的webdriver:http://chromedriver.storage.googleapis.com/i ...
- centos7.6使用openssl生成CA签署的证书个人实验笔记
准备:客户端centos6.10 服务端Centos7.6 实验:客户端生成证书请求,服务端颁发证书,最后吊销其中一个证书 1.先在服务端上的/etc/pki/CA/目录生成rsa的私钥: 2.在服 ...
- VMWare ESX server安装
和装普通虚拟机是一样的 需要添加两块网卡. F11同意协议 直接回车即可‘ 选择字符集 输入密码 按F11安装系统 按回车键重启 按F2 配置网络管理 启用两块网卡,按回车确定 配置IPV4地址 用空 ...
- jenkins下载插件无插件显示+离线下载插件方法
1.打开Jenkins插件管理,可选插件为空,无法选择自己需要的插件进行下载 打开插件管理的“高级”选项,在升级站点填写 http://mirror.xmission.com/jenkins/upda ...
- 抓包工具之fiddler实战2-设置断点
Fiddler作为抓工具包,功能强大,作为代理服务器,可以对抓获到的请求或响应进行修改,然后模拟客户端发送新的请求或模拟服务器返回修改后的响应结果. Fiddler中设置断点修改Request Fid ...
- js的事件循环(Event Loop)
(本文从掘金小册整理) 首先介绍一下几个概念 进程与线程 相信大家经常会听到 JS 是单线程执行的,但是你是否疑惑过什么是线程? 讲到线程,那么肯定也得说一下进程.本质上来说,两个名词都是 CPU 工 ...
- IT兄弟连 Java语法教程 赋值运算符
从本书之前的内容中就一直在使用赋值运算符.现在是正式介绍赋值运算符的时候了.赋值运算符是单个等号”=“.在Java中,赋值运算符的工作方式与所有其它计算机语言相同.它的一般形式如下: var = ex ...
- ARM64的内核栈、用户栈、寄存器上下文
1. 内核栈的分配,即thread_info的分配,是在do_fork->dup_task_struct中分配(默认为2个pages),并赋值给task_struct->stack: 2. ...
- copy_from/to_user详解
参考:http://www.wowotech.net/memory_management/454.html 宋大侠的文章精彩,郭大侠的评论也精彩. 结论简单摘录如下: 无论是内核态还是用户态访问合法的 ...
- bootstrap 自定义模态窗口
$(".classname").click(function () { $('#mymodel').modal('show'); alert('模态框打开了'); }); $('# ...