设为首页收藏本站language→→ 语言切换

鸿鹄论坛

 找回密码
 论坛注册

QQ登录

先注册再绑定QQ

查看: 1619|回复: 6
收起左侧

[分享] VLAN之间通信(二层交换技术+三层转发技术)

[复制链接]
 成长值: 59260
发表于 2017-10-31 10:09:26 | 显示全部楼层 |阅读模式

思科知识点汇总贴
http://bbs.hh010.com/thread-529979-1-1.html
(出处: 鸿鹄论坛)


VLAN间路由


二层交换技术+三层转发技术


一、VLAN间路由的实现方式
1.具有支持trunk链路的外部路由器(单臂路由)
注:使用单臂路由的方式实现VLAN间路由的缺点就是路由器的转发性能较低,容易形成网络瓶颈。
2.拥有第3层功能的多层交换机
Cisco交换机有2种类型的三层接口:
①SVI(Switch Virtual Interface):交换虚拟接口---多用于接入层到汇聚层之间的链路(VLAN透传)
在三层交换机中,每个VLAN都有一个对应的SVI接口(一一对应关系)。例:VLAN 10对应的SVI接口为interface vlan 10
②Routed Port:路由端口---多用于汇聚层到核心层之间的链路(VLAN终结)
将交换机中的二层端口直接更改为三层端口,类似于路由器上的路由端口,它将失去所有的二层特性(命令no switchport)。
注:①使用三层交换机实现VLAN间路由的优点是转发效率高,可以实现线速转发。
   ②一个SVI接口linkup状态的条件是:a)在本交换机上存在该VLAN并且是激活的;b)VLAN虚接口存在并且没有被人工关闭;c)该VLAN中至少存在一个二层端口,并且该端口的链路状态是up、在生成树中处于转发状态。
3.在每个VLAN中具有独立接口的外部路由器(不具可扩展性,不推荐)

二、Cisco设备的交换模式
1.进程交换,Process Switching(软件完成所有转发任务)
2.快速交换,Fast Switching(基于流的三层交换,早期硬件仅能实现精确匹配)
每个流(Flow)的第一个报文到达设备后,交由CPU查找IP路由表来完成转发决策。设备将此流的信息以及针对该流的转发决策(包括2层头、出接口等信息)记录下来,写入route-cache(或称流表)。当此流的后续报文到达时,直接查看route cache(流的匹配属于精确匹配),直接完成报文的快速转发(硬件实现),而不需要交给CPU来处理。即一次路由、多次交换的思想(MLS,MultiLayer Switch)。它的缺点就是流表的信息比较多;难以实现路由的负载均衡;对于蠕虫病毒的攻击不具备抵抗能力。
3.思科快速转发,Cisco Express Forward,CEF(基于拓扑的三层交换,现在硬件已经能够实现精确匹配、最长匹配和首次匹配)
思科快速转发(CEF,Cisco Express Forward)所有报文都进行硬件交换,不再需要经过process-switching。这种转发机制对内存资源的要求较高,不建议在能力不足的设备上启用该交换机制。
CEF的组成:FIB表(IP路由表--RAM的镜像)、邻接表(存放下一跳地址--邻居对应的MAC地址信息,类似于ARP cache--RAM)。
注:对高端路由器来说,可以将CEF设定为分布式模式,使得路由器(如Cisco 12000系列)可以在每块板卡上都运行相互独立的CEF实例,从而提高了板卡的独立性,并将少了集中式路由表和FIB的负荷,从而提供更快更有效的路由环境。

三、了解硬件如何查表
1.CAM表——内容可寻址内存
不论该表中存在多少内容,其查表速度保持不变(精确匹配0、1)。执行二元运算。
精确匹配:查找二层MAC地址表
2.TCAM表——三重内容可寻址内存
不论该表中存在多少内容,其查表速度保持不变(可匹配0、1、x)。执行三元运算。
精确匹配:查找二层MAC地址表
最长匹配:查找三层IP路由表
首次匹配:查找ACL
3.检查
switch#show ip cef [vlan vlan_id detail]     #查看数据转发平面 FIB表中的条目(我们可以认为FIB是路由表的一个镜像)
switch#show cef drop     #查看由于CEF邻接表信息不完整或不存在导致的报文丢弃情况
switch#show adjacency     #查数据转发平面的邻接表(同样我们可以认为这个邻接表是ARP缓存表的一个镜像)

四、描述三层交换机工作原理
   1.jpg
1.PC1————PC2通信:同一个VLAN
①PC1构造的IP报文:
源IP:10.1.1.1
目标IP:10.1.1.2
②PC1查自己的路由表,匹配直连路由
10.1.1.0/24     直连路由
0.0.0.0/0         10.1.1.254
③PC1将此IP报文封装到二层
L3:源IP:10.1.1.1          目标IP:10.1.1.2
L2:目标MAC:???   源MAC:MAC_PC1
④如果在PC1的ARP缓存表中已经存在IP地址10.1.1.2所对应的MAC地址,则直接到步骤⑪
这里假设PC1的ARP缓存表中未找到10.1.1.2对应的MAC地址。则:
PC1将向此广播域中发出ARP Request的广播报文,请求10.1.1.2对应的MAC地址。
目标MAC:FFFF-FFFF-FFFF          源MAC:MAC_PC1
⑤该数据帧到达SW1,学习源MAC地址,写入SW1的MAC地址表。并且将此广播帧在VLAN 10中泛洪。
SW1的MAC地址表:
MAC地址             端口号          VLAN
MAC_PC1             f0/1                               10
⑥此数据帧通过SW1的Trunk链路到达SW2。SW2学习源MAC地址,写入SW2的MAC地址表。然后SW2将此广播帧从VLAN 10的所有端口泛洪出去到达PC2。
SW2的MAC地址表:
MAC地址             端口号            VLAN
MAC_PC1             f0/24                                10
⑦PC2收到此ARP Request,将10.1.1.1与MAC_PC1的对应关系写入PC2自己的ARP缓存表。并且PC2回复一个ARP Reply报文。
目标MAC:MAC_PC1          源MAC:MAC_PC2
⑧PC2发出此ARP Reply,到达SW2。SW2学习源MAC地址,写入SW2的MAC地址表。
SW2的MAC地址表:
MAC地址             端口号          VLAN
MAC_PC1             f0/24                            10
MAC_PC2             f0/1                              10
⑨从SW2的f0/24将此数据帧精确的转发出去,到达SW1。SW1学习源MAC地址,写入SW1的MAC地址表。然后SW1通过查看自己的MAC地址表将此数据帧精确的转发出去,到达PC1。
SW1的MAC地址表:
MAC地址             端口号            VLAN
MAC_PC1              f0/1                                   10
MAC_PC2              f0/24                                 10
⑩PC1将10.1.1.2与MAC_PC2的对应关系写入自己的ARP缓存表。
&#9322C1继续步骤③,完成数据的二层封装。并且将此数据帧发送出去。
L3:源IP:10.1.1.1                              目标IP:10.1.1.2
L2:目标MAC:MAC_PC2                 源MAC:MAC_PC1
⑫此数据包的通信在解封装到2层时就已经可以做转发决策,SW1、SW2通过查看自己的MAC地址表完成数据的转发任务。
2.PC3————PC2通信:不同VLAN
①PC3构造IP报文
源IP:20.1.1.1          目标IP:10.1.1.2
②PC3查自己的路由表,匹配默认路由,即PC3认为此IP报文必须交由网关20.1.1.254来中转
20.1.1.0/24                    直连路由
0.0.0.0/0                        20.1.1.254
③PC3将此IP报文封装到二层
L3:源IP:20.1.1.1                              目标IP:10.1.1.2
L2:目标MAC:???(网关)  源MAC:MAC_PC3
④如果在PC3的ARP缓存表中已经存在IP地址20.1.1.254所对应的MAC地址,则直接到步骤⑧
这里假设PC3的ARP缓存表中未找到20.1.1.254对应的MAC地址。则:
PC3将向此广播域中发出ARP Request的广播报文,请求20.1.1.254对应的MAC地址。
目标MAC:FFFF-FFFF-FFFF          源MAC:MAC_PC3
⑤该数据帧到达SW1,学习源MAC地址,写入SW1的MAC地址表。SW1发送该数据帧,将此广播帧在VLAN 20中泛洪。
SW1的MAC地址表:
MAC地址             端口号          VLAN
MAC_PC3               f0/2                              20
⑥此数据帧通过SW1的Trunk链路到达SW2。SW2学习源MAC地址,写入SW2的MAC地址表。SW2将此广播帧从VLAN 20的所有端口(包括划分到vlan 20的access端口、允许vlan 20通过的trunk端口,还有vlan 20对应的三层接口/intface vlan 20)泛洪出去。
SW2的MAC地址表:
MAC地址             端口号             VLAN
MAC_PC3              f0/24                                    20
SW2的int vlan 20收到此ARP Request,首先将20.1.1.1与MAC_PC3的对应关系写入SW2的ARP缓存表。并且SW2的int vlan 20接口回复一个ARP Reply报文。
目标MAC:MAC_PC3                     源MAC:MAC_SW2_int_vlan_20
SW2的二层模块从一个内部接口(SW2的二层模块与三层模块互连的内部接口)收到此数据帧,学习源MAC地址。并且查找MAC地址表将此ARP Reply从f0/24口发送到SW1。
SW2的MAC地址表:
MAC地址                       端口号                VLAN
MAC_PC3                                                         f0/24                                         20
MAC_SW2_int_vlan_20            指向L3引擎的内部接口          20
⑦SW1从F0/24收到此数据帧,学习源MAC地址,并将此数据帧从f0/2口发出,到达PC3。
SW1的MAC地址表:
MAC地址              端口号          VLAN
MAC_PC3                                    f0/2                              20
MAC_SW2_int_vlan_20          f0/24                            20
⑧PC3收到ARP Reply后,将20.1.1.254《-----》MAC_SW2_int_vlan_20的对应关系写入ARP缓存表。并继续步骤③,完成IP报文到2层以太网帧的封装。并将此数据包发送出去。
L3:源IP:20.1.1.1                    目标IP:10.1.1.2
L2:源MAC:MAC_PC3            目标MAC:MAC_SW2_int_vlan_20
⑨PC3将此数据帧发出,SW1收到后,只解封装到2层就进行了数据的转发送给了SW2。
⑩数据到达SW2后,SW2查看自己的MAC地址表将此数据包交给了三层引擎处理。SW2的三层引擎查看自己的路由表匹配到一条直连路由,将此数据包从这个L3引擎的内部接口下发到2层后,转发给PC2。


发表于 2017-10-31 12:58:20 | 显示全部楼层
好东西谢谢楼主分享
沙发 2017-10-31 12:58:20 回复 收起回复
回复 支持 反对

使用道具 举报

发表于 2018-6-29 16:00:27 | 显示全部楼层
好东西谢谢楼主分享
6# 2018-6-29 16:00:27 回复 收起回复
回复 支持 反对

使用道具 举报

发表于 2020-7-25 18:51:19 | 显示全部楼层
感谢小乔分享
7# 2020-7-25 18:51:19 回复 收起回复
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 论坛注册

本版积分规则

QQ|Archiver|手机版|小黑屋|sitemap|鸿鹄论坛 ( 京ICP备14027439号 )  

GMT+8, 2024-5-2 07:46 , Processed in 0.192449 second(s), 11 queries , Redis On.  

  Powered by Discuz!

  © 2001-2024 HH010.COM

快速回复 返回顶部 返回列表