交换机
本笔记部分参考网址:
基本情况
交换机工作在TCP/IP五层模型的第二层,负责寻址对数据帧进行转发,其亦可实现对网络中冲突域的隔离。其工作的核心协议是以太网协议,其可实现MAC地址的自动学习与维护。
工作原理
网络层数据经过数据链路层封装帧头后,经由网线发送达到交换机的端口,交换机首先根据帧头中的目标MAC地址从MAC地址表中去查找需要将该帧发送到哪个端口并自动学习其源MAC地址将其绑定到该端口,如果未在MAC地址表中匹配到该MAC地址,则对数据进除接受端口外的所有端口进行广播,若匹配到该MAC地址则对该帧转发到对应的端口,目标机在收到该帧后,首先核对该帧中的目标MAC地址是否是自己,若不是,则对数据进行丢弃,若是,则对数据进行解封装,丢弃帧头与FCS帧尾,并将数据根据帧头中的TYPE域将数据上送到网络层对应的协议进行处理。
交换机命令
交换机配置通过交换机上的Console口使用Console—全反线,连接电脑使用专门的工具进行配置。
VLAN
本部分笔记参考
基本情况
VLAN:虚拟局域网,通过划分VLAN可实现对广播域的隔离,降低网络链路负担,提高通信效率。
为什么需要VLAN
广播域:指的是广播帧(目标MAC地址全部为1)所能传递到的范围,亦即能够直接通信的范围。严格地说,并不仅仅是广播帧,多播帧(Multicast Frame)和目标不明的单播帧(Unknown Unicast Frame)也能在同一个广播域中畅行无阻。
数据帧要在网络中传播必须知道目标主机的MAC地址,这时源主机会通过ARP协议发起ARP Requests,及目标MAC地址各位均为1的帧,当交换机接受到该帧后,将向出去接受端口的所有端口转发该requests,即泛洪flooding,原本源主机只是想知道目标IP主机的MAC地址,事实却是该Requests却传遍了整个网络,这大大占用了网络的带宽,同时网络中的各主机接受到该Requests后还需消耗一定的CPU去处理该请求,试想一下,当该局域网足够大时,占用的资源将是可观的。不止如此使用广播的协议不仅ARP一种,DHCP、RIP等协议均使用广播的方式通信,这又加大了网络链路的负担。所以VLAN技术也就应运而生。
什么是VLAN
VLAN是通过虚拟技术,在交换机中划分不同的局域网,从而实现了广播域的逻辑隔离。
VLAN与使用路由器隔离相比有什么优点
使用路由器进行隔离是基于物理层面实现的,路由器一个物理接口连接了一个局域网,故其接口的数量及决定了局域网的数量,当局域网数量足够多的时候,就需要路由器拥有更多的接口或者拥有更多的路由器,而一般路由器的接口数量为4个左右且路由器的价格是相对昂贵的,所以才有路由器来隔离广播域需要极大得成本,而VLAN是通过虚拟技术来实现隔离广播域的,在成本上无疑更具优势。当然VLAN在隔离广播域的同时也隔离了不同VLAN间的通信,我们采用单臂路由、三层交换机技术来解决这个问题。
VLAN类型
基于端口的VLAN-静态VLAN
将交换机的不同端口划分到不同的VLAN中,只有相同的VLAN间的设备才能相互通信,从而实现了对广播域的隔离。如,某一端口属于VLAN 10,其只能与同属于VLAN 10 的端口的设备进行通信。
该方法意味着PC只要更换了网线,就有可能进入了别的VLAN,从而不能与某些设备进行通信。
基于MAC地址的VLAN-动态VLAN
交换机通过识别MAC地址来识别某个设备属于哪个VLAN,从而实现了,动态得管理。但缺点也很明显,这需要耗费大量的人力物力在交换机中配置VLAN表
基于协议的VLAN-动态VLAN
根据PC运行的协议来划分VLAN,但计算机运行的协议是有限的,从而限制了VLAN的划分
基于子网的VLAN-动态VLAN
通过识别帧中源IP属于哪个网段来划分VLAN。
基于用户的VLAN-动态VLAN
根据交换机各端口所连的计算机上当前登录的用户,来决定该端口属于哪个VLAN。这里的用户识别信息,一般是计算机操作系统登录的用户,比如可以是Windows域中使用的用户名。这些用户名信息,属于OSI第四层以上的信息。
VLAN标签技术
原理
在一个设置了VLAN的交换机中,当该交换机的一个端口收到一个数据帧的时候,通过VLAN表查找到该端口所属的VLAN后,在该帧的源MAC地址与TYPE域之间会插入一个VLAN标签来唯一标识该帧属于某个VLAN,然后再通过MAC地址表查找该帧要发送到的端口并判断该端口的VLAN ID ,若相同则将VLAN标签剥离重新封装该帧并转发,若不相同则丢弃该帧。
如何在两个交换机间实现VLAN
当需要将两个处于不同交换机上的用户划分到同一VLAN中时,一般采用的策略是在两个交换间建立链路,将其对应的端口设置为同一VLAN即可,但这种方式,当VLAN的数目逐渐增加之后就显得捉襟见肘了,采用这种方式不仅需要建立大量的物理连接,其每一条链路的利用率也是极地的,这显然不是一种好的解决方案。
这时需要用到TRUNK(中继)技术,交换机的接口可以分为两类,一类是与PC直连的称之为ACCESS,一类是交换机之间互连的称之为TRUNK,TRUNK的优点是可以允许链路上通过不同VLAN ID的数据。
例:当交换机在转发帧的时候,发现除接受端口外的直连端口中并没有匹配的VLAN,此时交换机将数据通过TRUNK转发出去。
标签类型与格式
该部分笔记来自:
Cisco ISL协议
思科开发的一种VLAN标签协议格式,由于其占用数据量较大等因素,现以很少使用
IEEE 802.1Q协议
当今使用最多的一种标签协议类型。
VLAN通信过程
同一VLAN间通信过程
当一个以太网帧经由F0/1端口进入交换机后,交换机通过查找VLAN表匹配F0/1端口对应的VLAN ID ,并在该帧的源MAC地址与TYPE域之间插入4Bytes的IEEE 802.1Q标签并重新计算FCS值,然后对比该以太网帧中的目标MAC地址匹配MAC地址表,若匹配不成功,则通过广播的方式将该以太网帧向除了其源端口外的所有同一VLAN内的端口进行广播,若匹配成功,在从VLAN表中查找目标MAC地址所在的端口是否与源端口处在同一VLAN中,若不匹配,则丢弃该帧,若成功匹配,则剥离VLAN标签兵重新计算FCS值对该帧进行封装发送。
同一VLAN跨交换机通信过程
将两个交换机相连交的接口均配置成TRUNK接口,从而使该端口可以转发所有的VLAN数据。当两台设备需要跨交换机进行通信时。当一个以太网帧经由F0/1端口进入交换机后,交换机通过查找VLAN表匹配F0/1端口对应的VLAN ID ,并在该帧的源MAC地址与TYPE域之间插入4Bytes的IEEE 802.1Q标签并重新计算FCS值,然后对比该以太网帧中的目标MAC地址匹配MAC地址表,若匹配不成功,则通过广播的方式将该以太网帧向除了其源端口外的所有同一VLAN内的端口进行广播,若匹配成功,在从VLAN表中查找目标MAC地址所在的端口是否与源端口处在同一VLAN中,若不匹配,则丢弃该帧,若成功匹配,则剥离VLAN标签兵重新计算FCS值对该帧进行封装发送。此时以太网帧以未被标标识的帧格式在TRUNK上传输,当其到达另一个路由器的TRNK接口时,该路由器执行与上述过程相同的操作,将该帧转发到目标MAC对应的设备。
不同VLAN间通信过程
VLAN在实现了广播域隔离的同时也隔离了不同VLAN间通信的可能性。而要想同时实现隔离广播域又能在VLAN间进行通信则需要用到另一种设备:路由器该例中使用的路由器,我们将其称之为单臂路由。
将路由器与交换器连接的端口设置为TRUNK。
计算机A从通信目标的IP地址(192.168.2.1)得出C与本机不属于同一个网段。因此会向设定的默认网关(DefaultGateway,GW)转发数据帧。在发送数据帧之前,需要先用ARP获取路由器的MAC地址。
得到路由器的MAC地址R后,接下来就是按图中所示的步骤发送往C去的数据帧。①的数据帧中,目标MAC地址是路由器的地址R、但内含的目标IP地址仍是最终要通信的对象C的地址。这一部分的内容,涉及到局域网内经过路由器转发时的通信步骤,有机会再详细解说吧。
交换机在端口1上收到①的数据帧后,检索MAC地址列表中与端口1同属一个VLAN的表项。由于汇聚链路会被看作属于所有的VLAN,因此这时交换机的端口6也属于被参照对象。这样交换机就知道往MAC地址R发送数据帧,需要经过端口6转发。
从端口6发送数据帧时,由于它是汇聚链接,因此会被附加上VLAN识别信息。由于原先是来自红色VLAN的数据帧,因此如图中②所示,会被加上红色VLAN的识别信息后进入汇聚链路。路由器收到②的数据帧后,确认其VLAN识别信息,由于它是属于红色VLAN的数据帧,因此交由负责红色VLAN的子接口接收。
接着,根据路由器内部的路由表,判断该向哪里中继。
由于目标网络192.168.2.0/24是蓝色VLAN,,且该网络通过子接口与路由器直连,因此只要从负责蓝色VLAN的子接口转发就可以了。这时,数据帧的目标MAC地址被改写成计算机C的目标地址;并且由于需要经过汇聚链路转发,因此被附加了属于蓝色VLAN的识别信息。这就是图中③的数据帧。
交换机收到③的数据帧后,根据VLAN标识信息从MAC地址列表中检索属于蓝色VLAN的表项。由于通信目标——计算机C连接在端口3上、且端口3为普通的访问链接,因此交换机会将数据帧去除VLAN识别信息后(数据帧④)转发给端口3,最终计算机C才能成功地收到这个数据帧。
三层交换机
ARP协议
本部分笔记参考:
两台PC要成功实现相互间的通信,必须要知道对方的IP地址以及MAC地址,IP地址通过域名系统可以很方便得获得,那么MAC地址呢?此时就需要一个获取目的主机MAC地址的协议。ARP协议即为了完成这个功能而设计。
ARP协议工作原理
在知道目的主机IP地址的情况下,计算机首先判断该IP地址是否与自己属于同一个网段,如果不属于同一个网段,则需要向网关转发,计算机通过网关的IP地址在ARP缓存表中查找是否保存有网关的MAC地址,若无则发送广播,若有则直接进行封装。若属于同一 网段,IP报文到达数据链路层进行封装,此时需要知道对方的MAC地址。计算机会首先查询自己的arp缓存表,如果缓存表中有目标IP的MAC则使用该MAC地址进行封装,如果缓存表中不存在该表项,这时主机会向交换机发送ARP request 报文,该报文在数据链路层封装帧头与帧尾,因为不知道目标MAC地址,此时目的MAC地址被设置为FF-FF-FF-FF-FF-FF。交换机收到该报文时发现目标MAC地址是广播地址,于是将该报文向除来端口外的所有端口进行广播,并同时学习来端口的MAC地址放入MAC地址表。发送端口的主机接受到该广播的时候,数据链路层通过解析帧头发现其中TYPE类型为ARP,于是将其SDU部分送给网络层的ARP协议解析,网络层解析ARP报头时发现该报文的目的IP地址与自己的不一致,于是将该报文丢弃,并学习该报文中的源MAC地址与源IP地址映射并更新自己的ARP缓存表。接受端口主机在发现该ARP头部的目的IP地址与自己一致的话,将以单播的形式给源主机回应一个ARP replay 报文将源mac地址修正为自己的mac地址,目的mac地址修改为对方的mac地址,ARP报头中目的mac地址与源mac地址、操作码均进行修正,并学习源主机的IP与MAC地址放入自己的ARP缓存表。源主机收到该replay包后,将得到的目的主机的IP地址和MAC地址添加到自己的ARP列表中,并利用此信息开始数据的传输。如果源主机一直没有收到ARP响应数据包,表示ARP查询失败。
ARP报头分析
- Hardware Type: 表示硬件地址类型,一般为以太网;
- Protocol Type: 表示三层协议地址类型,一般为IP;
- Hardware Length和Protocol Length:为MAC地址和IP地址的长度,单位是字节;
- Operation Code: 指定了ARP报文的类型,包括ARP request和ARP reply;
- Source Hardware Address: 指的是发送ARP报文的设备MAC地址;
- Source Protocol Address:指的是发送ARP报文的设备IP地址;
- Destination Hardware Address:指的是接收者MAC地址,在ARP request报文中,该字段值为0;
- 8、Destination Protocol Address:指的是指接收者的IP地址。