第1章 基础知识回顾
1.1 思科组网三模型
本小节概述:
1. 主要详细讨论了思科组网三模型和两个真实案例,其中两个真实案例一定要认真参悟,完全可以写入简历.
2. 面试时怎样做一个”戏精”:每天去官网背诵一个网络设备型号,看起来会有2年的工作经历
本小节推荐书目:
《S系列园区网交换机快速配置》
《cisco局域网交换基础》
园区网(campus network)指规模比较大的局域网,并不是指校园网。
核心层:core layer
核心层的设计和改造都应该以快速转发和容错为首要目标。因此核心层要选择性能高的设备,并且不要在核心层做任何降低速度的事情,比如ACL、接入PC等,并且应该避免网络随着网络的增大而增大。
汇聚层: aggregate Layer
汇聚层是实现网络策略的地方,路由选择,acl,nat,vlan,路由重分发,防火墙都应该在汇聚层做,不用做的就是其它层的专属功能.
接入层: Access Layer
主要用于接入终端 ,端口安全,延续汇聚层的访问控制和策略,网络分段,接入层的交换机如果端口不够的话不要再向下接入交换机,而是使用堆叠技术,堆叠就是把多个交换机当做一个使用,之间有专门的连接线。
NOTE:3个独立的层并不意味着3台独立的设备,设备可能更多,也可能更少。别忘了,这是一种分层方法,如下:
第二章:交换机的工作原理
交换机的行为有三种行为:泛洪(flooding),转发(forward),丢弃(discrad)
有广播包或者或者mac表里面没有目标mac时才会泛洪,两种情况.
如果进入交换机的一个单播帧,就查找mac地址表
通过mac地址表比较目标mac地址是不是就是进来的接口对应pc的mac地址,如是就丢弃
如不是,并且在mac地址找取目标mac对应的接口就转发
如果在mac地址表查不到就泛洪查找
如果是广播帧,不查找mac地址表,直接泛洪
NOTE:
mac地址表当中不仅有mac和对应的接口,还有vlan
有多少vlan就有多少mac地址表,因为交换机是从二层来隔离广播的.
第三章:通信流程
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启动过程一样重要,真正入门的标志):
第四章:例1
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主机收到之后认为是发给自己的,于是予以回复,至此,通信成功!!