交换的江湖

image.png

第1章         基础知识回顾

1.1 思科组网三模型

本小节概述:

1.      主要详细讨论了思科组网三模型和两个真实案例,其中两个真实案例一定要认真参悟,完全可以写入简历.

2.      面试时怎样做一个”戏精”:每天去官网背诵一个网络设备型号,看起来会有2年的工作经历

本小节推荐书目

《S系列园区网交换机快速配置》

《cisco局域网交换基础》

园区网campus  network)指规模比较大的局域网,并不是指校园网。

核心层:core layer

核心层的设计和改造都应该以快速转发和容错为首要目标。因此核心层要选择性能高的设备,并且不要在核心层做任何降低速度的事情,比如ACL、接入PC等,并且应该避免网络随着网络的增大而增大。

汇聚层: aggregate Layer

汇聚层是实现网络策略的地方,路由选择,acl,nat,vlan,路由重分发,防火墙都应该在汇聚层做,不用做的就是其它层的专属功能.

接入层: Access Layer

主要用于接入终端 ,端口安全,延续汇聚层的访问控制和策略,网络分段,接入层的交换机如果端口不够的话不要再向下接入交换机,而是使用堆叠技术,堆叠就是把多个交换机当做一个使用,之间有专门的连接线。

NOTE:3个独立的层并不意味着3台独立的设备,设备可能更多,也可能更少。别忘了,这是一种分层方法,如下:

image.png

image.png

image.png

image.png

第二章:交换机的工作原理

交换机的行为有三种行为:泛洪(flooding),转发(forward),丢弃(discrad)

有广播包或者或者mac表里面没有目标mac时才会泛洪,两种情况.

image.png

如果进入交换机的一个单播帧,就查找mac地址表

        通过mac地址表比较目标mac地址是不是就是进来的接口对应pc的mac地址,如是就丢弃

        如不是,并且在mac地址找取目标mac对应的接口就转发

        如果在mac地址表查不到就泛洪查找

如果是广播帧,不查找mac地址表,直接泛洪

NOTE:

mac地址表当中不仅有mac和对应的接口,还有vlan

有多少vlan就有多少mac地址表,因为交换机是从二层来隔离广播的.

第三章:通信流程

image.png

PC-1的IP:192.168.1.1/24

PC-2的IP:192.168.1.2/24

当PC-1 ping PC-2通讯过程详解:

1.    pc-1会先用自己的掩码与192.168.1.2做与运算得出网络位为192.168.1.0,然后用此网络位与自己的网络位做对比,会得出结论:”192.168.1.2与本地192.168.1.1在同一个网段”.

2.    既然在同一个网段,那么首先就会查看本地的arp缓存,看看之前有没有与192.168.1.2通讯过,如果有会直接把192.168.1.2的mac地址封装到二层.

3.    如果arp缓存当中没有就要使用arp广播直接在本网段内询问:”who  has  192.168.1.2  tel  192.168.1.1”,由于这是一个广播,在同个广播域的所有设备都可以收到,那么就让我们来看一下每个设备收到这个arp广播的时候有什么反应:

首先第一个收到广播的是交换机一,那么交换机一收到这个广播帧会怎样做呢?它会采取两种措施,因为是广播,所以它不会查询自己的mac地址表,会直接泛洪出去,这是第一种反应。另一种反应是在泛洪的同时还会学习,我们之前讲过,交换机是通过源mac地址进行学习的,广播当中的目标mac全是1,源mac地址还是有的,所以交换机会把pc1的mac地址与g0/0/2做一个对应存放到mac地址表。

因为同一个广播域,交换机二也会收到,它收到之后同样也会有两种反应:广播、学习。

pc3和pc4也会收到这个广播信息,由于这个广播人家问的是谁是192.168.1.2?pc3和pc4并不是192.168.1.1要找的机,所以不会响应的,会把这个帧丢弃,但是在丢弃之前会做一次“废物利用”,因为此次广播的携带有pc1的ip地址和mac地址,所以pc3和pc4会学习一下,即把pc的ip地址与其mac地址做一个对应放到自己的arp缓存当中。

pc2收到之后看到广播的目标IP就是找自己的,所以就会构建响应报文,源IP就是自己,目标IP就是192.168.1.1,源mac地址就是自己,而目标mac就是pc-1的mac地址,除了要构建响应报文之外,同样也会学习,把pc1的ip和mac做一个对应放到自己的arp缓存当中。

4.    当响应报文从pc-2发出之后,首先到达的还是交换机一,交换机还是会进行学习,把pc-2的mac与G0/0/3做一个对应存放到mac地址表里面。由于交换机一这次收到的是一个单播帧,所以除了会学习之外,重要的是要转发或者泛洪,那么到底是转发还是泛洪呢?这取决于交换机一的mac地址当中有没有目标mac的对应的记录,此次单播的目标mac的pc1,而pc-1的mac在第一次广播的时候就已经被交换机给学习到了,所以交换机的mac地址当中是有pc-1的记录的,所以交换机会直接把此次的单播帧直接转发给G0/0/2接口。

5.    pc1收到pc2的单播帧之后就可以在二层封装好目标mac,在封装之余也会把pc2的ip与其mac地址做一个对应,放到自己的arp缓存当中,以便下次使用。

由于这次是单播帧,所以仅仅途中的交换机和目标pc能够收到,其余的网络设备都不会收到。

 

通信总纲(极度重要,相当于linux启动过程一样重要,真正入门的标志):

image.png

第四章:例1

image.png

A到B的通信过程

1.    A首先判断B是否在同一个网段。用255.255.255.224与192.168.1.129得出B的网络位是192.168.1.128,而主机A自己的网络位是192.168.1.0,判定不在一个网段,所以下一步要查找网关的MAC。

2.    A查看本地ARP缓存,如果没有网关的MAC,发arp广播“who has 192.168.1.1 tel 192.168.1.2”,沿途交换学习并泛洪,非目标主机学习并丢弃数据帧。

3.    网关收到之后学习并构建单播的响应报文回复A自己的MAC地址。沿途交换机学习并转发。

4.    A主机收到网关的回复的MAC地址后封装在自己的二层链路,网络层的源IP是192.168.1.2,而目标IP是192.168.1.129,交给网关,沿途交换机由于之前学习过了,这次直接转发给网关。

5.    网关收到拆开此帧,通过目标MAC地址发现就是给自己的,然后接着拆网络层,发现目标IP是给192.168.1.129,网关会通过路由表选择最佳匹配进行转发,发现自己直连的接口就属于该网段,于是通过arp广播直接询问:“who  has 192.168.1.129 tel 192.168.1.1”沿途交换机由于之前学习过所以不学习直接泛洪,B主机收到之后会给网关回复自己的MAC地址,交换学习并转发给网关。

6.    网关收到B主机回复的MAC地址后,对数据重新进行封装,网络层的源IP和目标IP不会变,TTL会减1,链路层源/目标MAC会替换,源MAC替换成网关的MAC,而目标MAC替换成B主机的MAC,FCS会重新计算,然后将此此帧通过其直连接口单播给B主机。

7.    B主机收到之后通过发现此帧就是找自己的,同样的,还是会拿着A主机的IP与自己掩码做与运算,由于网络位是一样的,得出结论“A主机与自己在同一个网段”,直接发arp广播询问”who  has  192.168.1.2  tel 192.168.1.129“,A主机收到之后单播回复自己的MAC地址,于是B主机便把A主机的MAC地址封装在二层链路当中单播给A,沿途交换机直接转发给A,于是完成一次通信。

总结

l  A主机到B主机要过路由,而B主机到A主机直接通过交换即可,不用过路由。

l  到底是否要过路由取决于源主机判定是否与目标主机在同一个网段,在同一个网段通过交换机,不在同一个网段通过路由。

例二


PC1                                                 pc2

192.168.1.1/24                               192.168.2.1/24

GT:192.168.1.1                               GT:192.168.2.1

PC1与PC2通信

PC1判定与PC2不在同一个网段

ARP广播询问网关1.1的MAC,交换机泛洪,无机回应!不通!!

PC2与PC1通信

PC2判定与PC1不在同个网段

ARP广播访问网关2.1的MAC,交换机泛洪,无机回应,不通!!

        例三

个主机能不能相互通信?拓扑就是一台交换连接两个PC,对,你没有看错,就是没有路由器!很有意思的一个小题,有点迷惑属性。

A主机:                                     

IP:   192.168.1.1/24

网关:192.168.2.1

B主机:

IP:192.168.2.1/24

网关:192.168.1.1

A与B通信的过程(下文是简述的过程,反之亦然~):

1.    A判断与B不在同一网段

2.    arp广播网关(2.1)的mac,而2.1就是就是目标主机。

3.    B主机给A主机回复自己的MAC

4.    A主机二层封装成功,A主机认为它把帧发送给网关了,而实际上是发送给B主机了

5.    B主机收到之后认为是发给自己的,于是予以回复,至此,通信成功!!






猜你喜欢

转载自blog.51cto.com/13778749/2160454