少女祈祷中...

本文主要参考EagleBear2022的博客

局域网交换与虚拟局域网

1、交换机

网桥和路由器一般是通过软件来完成的,基于操作系统的。交换机是基于硬件的。

基本功能

  • 根据MAC地址建立和维护交换表
  • 将帧切换出接口到目标

对称交换(Symmetric Switching):

  • 可在相同带宽端口之间提供交换连接,但是用户访问其他网段上的服务器时可能会导致瓶颈

非对称交换(Asymmetric Switching):

  • 通过将带有服务器的网段连接到更高带宽的端口(100Mbps)减少瓶颈的可能性
  • 需要内存缓冲

内存缓冲:
交换机中的内存区域,用于存储数据,直到数据可以从正确端口输出

基于端口的内存缓冲:(Port-based memory buffering)

  • 每个端口都有一个buffer,数据包存储在buffer中
  • 在目标端口繁忙时,一个数据包可能会延迟其他数据包的传输
  • 其他端口可能会空闲,从而产生不均衡问题

共享内存缓冲:(Shared memory buffering)

  • 所有端口共享的公用内存缓冲
  • 可以在不传到其他队列中的情况下从入端口传到出端口出去
  • 需要记录自己的端口信息

交换方式:
1、储存转发(Store-and-Forward)

  • 交换机接收整个帧,最后校验CRC,然后再发往其他目的地
  • 延迟可能会增加

2、直通(Cut-through)

  • 减少延迟
  • 分为两种:

    1、快速转发切换(Fast forward switching):检查目标MAC,看到帧的目的地址就立即转发

    2、无碎片转发(Segment-free Switching):在转发帧之前读取前 64 个字节以减少错误:避免碰撞和帧碎片

三种转发方式比较

不同层次的交换机:

  • 第二层交换机:大规模集成电路,保证链路效率,有一个MAC地址
  • 第三层交换机:基于硬件的转发机制,较高的帧转发性能(路由器基于路由表转发,是软件);流控制,安全性更高,对数据流进行路由,生成 MAC 和 IP 的映射(消除了路由器对路由转发而导致的延时)
  • 第四层交换机:可以根据端口主机的应用特点进行一定的流量控制

一般我们只用到二层交换机;交换机可以简单识别第三层和第四次信息。

2、生成树协议(STP)

出于各种原因,网络中可能会出现环路。

  • 可能是故意冗余的结果,也可能是配置错误
  • 可能带来的灾难:广播风暴(广播消息在网络中迅速传播并导致网络拥塞)、路由表错误

往往是第二层交换机的冗余导致的桥回路。(以太网MAC帧没有TTL字段,循环后可能会继续下去)

生成树协议综述

主要功能:在交换机/桥接网络中允许冗余路径,而不会因环路的影响而引起延迟。

  • 通过计算稳定的生成树来防止回路
  • 生成树帧(称为桥协议数据单元,bridge protocol data unit,BPDU)用于确定生成树拓扑。

方式:在正常情况下禁用一些端口来防止出现冗余。

STP名词解释

1、网桥ID(Bridge Identification,BID)

  • 8个字节
  • 高阶子字段:2个字节,表示网桥优先级,在0-65535之间(默认为32768),10进制表示
  • 低阶子字段:6个字节,表示分配给交换机的MAC地址,16进制表示

2、STP成本值:成本越低越好

3、根路径成本:端口到根网桥(投票选出)的所有链接的累积成本

STP决策顺序

  • 在拓扑里面最低的 root BID(选择具有最低BID的单个根交换机(先看网桥优先级,如果都相同则看MAC地址谁最低))
  • 找到 Root bridge 的最低路径成本
  • 每个路径都会选择一个最低 BID 的 sender 这个是针对一个链路的
  • 每个路径再指定一个最低的 ID 端口

STP的BPDU帧

默认交换机每 2s 发送一次 BPDU,主要是维护最短的路径。

路径代价

在图中,需要将链路转化为对应的路径代价

5个STP状态

只有在交换机做 STP 时,交换机才会出现这五个状态。

  • 阻塞:没有转发帧,听到了 BPDU
  • 监听:不转发任何帧,监听数据帧(确定自己可以参加的交- - 换),也会发送一些数据帧表示自己状态变了
  • 学习:不转发帧,学习地址
  • 转发:转发帧,学习地址
  • 禁用:没有转发帧,没有听到 BPDU

STP 过程:Blocking -> 20s Listening -> 15s Learning -> 15s Fowarding 或者 Disabled

初始STP收敛过程:

1、选举根交换机(根网桥,root switch)

  • 每个交换机先宣布自己为根
  • 交换信息,检查端口上所有BPDU以及在该端口上发送的所有BPDU,如果一个BPDU中的BID小于自己的,就替换自己的旧值并且这一BPDU的发送者被接受为新的根

2、选择根端口(root ports)

  • 每个非根桥必须选择一个根端口。注意根桥不用选。
  • 桥的根端口是最接近根桥的端口。(即从这个端口出发到根端口最近的一个端口)
  • STP成本在BPDU被接收到时增加,而不是在将BPDU发送出去时增加。

3、选择指定端口(Designated Port)

  • 每个网段都有一个指定端口。(注意区别,根端口是每个非根桥有一个,指定端口是每个网段有一个)
  • 需要选择的是每个端口中,所在的路由器的根端口的STP成本最小的那个端口
  • 该端口既向该网段又向根网桥发送流量,也从该网段和根网桥接收流量。
  • 其他未被指定的端口就被block了。

完成这三步后,剩下的所有端口组合在一起就形成了一个最小生成树

3、虚拟局域网VLAN

为什么引入虚拟局域网?

随着网络数的增多,又由于交换机无法分割广播域,每个交换机在广播时需要发送到网络的每个角落,严重影响网络性能(广播风暴)。因此需要把一个大的广播域划分为几个小的广播域。而路由器会直接在网络层上分段将网络隔离,导致网络规划复杂,因此使用VLAN代替,解决二层问题。

vlan简介

  • 根据不同指标(部门、功能等)对用户进行逻辑分组(区别于路由器的物理分组)

  • VLAN在第二第三层工作,控制网络广播,允许用户由网络管理员分配

  • VLAN创建一个不限于物理网段的单个广播域,将其视为子网

优点:

  • 限制广播包,提高带宽的利用率。
  • 创建虚拟工作组:可以一个部门工作的人划分为一个 VLAN,这样子即使他移动了办公位置,仍然能够正常办公
  • 增强通信的安全性:其他 VLAN 用户网络收不到非本 VLAN 的报文,避免被监听

分组用户:广播帧只有在具有相同 VLAN ID 的一个或多个交换机的端口之间切换(VLAN ID 属于端口)

可以通过基于以下内容的软件对用户进行逻辑分组(即作为一种划分参考来人为划分):

  • 端口号
  • MAC 地址
  • 使用的协议
  • 使用的应用

第三层交换机:为每一个网段设置一个 SVI(switch virtual interface,虚拟交换机结构,也可以理解为子接口),通过这个来进行不同网段之间的通信

VLAN的结构

vlan通过骨干网:

  • 骨干网是用于 VLAN 间通信的区域,可以跑多个 VLAN,应该是高速链路

vlan中路由器:提供不同 VLAN 之间的连接。不能广播,但是VLAN1 上的用户可以向 VLAN2 上的用户发送电子邮件

在 VLAN 中的帧的使用:

  • 帧过滤(Frame Filtering):交换机检查有关每个帧的特定信息(MAC 地址或第三层协议类型),特定的 VLAN 记录或者映射
  • 帧标记(Frame Tagging):在整个网络骨干网中转发时,交换机在每个帧的标题中放置一个唯一的标识符。当帧离开网络骨干网时,交换机会在帧发送到目标终端站之前删除标识符。只和端口绑定,而不影响主机。帧标记只在第二层起作用

IEEE802.1Q 和 ISL

IEEE802.1Q:IEEE 标准,在标头中插入 VLAN 的标签以标识所属的 VLAN(帧标记)

ISL(Inter-Switch Link):思科专有。ISL 在数据帧的前面添加一个 26 字节的标头,并在末尾附加一个 CRC(4 字节)。

Name Encapsulation Label Media
802.1Q No Yes Ethernet
ISL Yes No Ethernet

vlan的实现

静态vlan

交换机上的端口以管理方式分配给 VLAN(管理员手动配置)

  • 安全,易于配置和监控,在控制移动的网络中效果很好

动态vlan

一个服务器来配置 VLAN 的信息。

交换机通过 MAC 地址或者哪一个协议,指定是哪一个 VLAN。

当工作站最初连接到未分配的端口时,交换机会检查表中的条目,并使用正确的 VLAN 动态配置端口。

以端口为中心的vlan

同一 VLAN 中的所有节点都连接到同一路由器接口

管理更容易,因为:

  • 通过路由器端口分配用户
  • VLAN 易于管理
  • 提供更高的安全性
  • 数据包不会“泄漏”到其他域

接入链路和骨干链路

1、接入链路(Access Links):通过一个vlan报文,仅作为一个 VLAN 成员的交换机上的连接。

此 VLAN 被称为端口的本机 VLAN,连接到端口的任何设备都完全不知道 VLAN 存在。

2、骨干链路(Trunk Links):通过多个 VLAN 报文,能够支持多个 VLAN,通常用于将交换机连接到其他交换机或路由器。

  • 骨干是支持多个 VLAN 的点对点链接
  • 骨干用于在两个实现 VLAN 的设备之间创建链接时节省端口
  • 骨干链路不属于特定的 VLAN:充当交换机和路由器之间 VLAN 的通道。
  • 可以将骨干链路配置为传输所有 VLAN 或有限数量的 VLAN。

交换机29xx中的配置

  • VLAN 1 是出厂默认 VLAN 之一,是默认的以太网vlan
  • 思科发现协议(CDP)和 VLAN 骨干协议(VTP)通告在 VLAN 1 上发送。

vlan配置命令

1、创建vlan

1
2
3
Switch# vlan database
Switch(vlan)# vlan [vlan_number]
Switch(vlan)# exit

2、将VLAN分配给一个或多个接口

1
2
Switch(config)# interface fastethernet 0/9
Switch(config-if)# switchport access vlan vlan_number

3、添加vlan

1
2
3
4
5
6
7
8
9
10
11
12
cat2950#vlan database
cat2950(vlan)#vlan 9 name switchlab90
VLAN 9 added:
Name: switchlab90
cat2950(vlan)#?
VLAN database editing buffer manipulation commands:
abort Exit mode without applying the changes
apply Apply current changes and bump revision number
exit Apply changes, bump revision number, and exit mode
reset Abandon current changes and reread current database Adding a VLAN Example
cat2950(config)#interface fa 0/2
cat2950(config-if)# switchport access vlan 9

4、验证vlan

1
Switch# show vlan [vlanid]

5、删除vlan

1
switch(vlan)# no vlan vlanid [name /vlan-name]

在局域网之间的路由

每个端口连接一个 VLAN,每个 IP 和一个 VLAN 连接

方法:将路由器上的端口划分为三个子端口Fa0/0.1、Fa0/0.2 和 Fa0/0.3

配置vlan间路由:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Sydney(config)#interface FastEthernet 0/0
Sydney(config-if)#full duplex 全双工
Sydney(config-if)#no shut
Sydney(config-if)#interface FastEthernet 0/0.1

Sydney(config-subif)#encapsulation 802.1q 1
Sydney(config-subif)#ip address 192.168.1.1 255.255.255.0
Sydney(config-if)#interface FastEthernet 0/0.2

Sydney(config-subif)#encapsulation 802.1q 20
Sydney(config-subif)#ip address 192.168.2.1 255.255.255.0
Sydney(config-if)#interface FastEthernet 0/0.3

Sydney(config-subif)#encapsulation 802.1q 30
Sydney(config-subif)#ip address 192.168.3.1 255.255.255.0

注意:如果是 Trunk Link:应该使用交叉线,而不是直通线;如果是 Access Link:直通线