2020-计算机网络-lecture09-局域网交换与VLAN
lecture09-局域网交换与VLAN
- 网桥和路由器一般是通过软件来完成的,基于操作系统的。
- 交换机是基于硬件的。
1. 交换机
1.1. 交换机基本功能
- 根据MAC地址建立和维护交换表(类似于网桥表)
- 将帧切换出接口到目标
1.2. 对称交换(Symmetric Switching)
- 对称交换可在具有相同带宽(10/10 Mbps或100/100 Mbps)的端口之间提供交换连接
- 用户尝试访问其他网段上的服务器时,可能会导致瓶颈(对称交换可能会导致带宽不足)
多个客户端向服务器访问的话,服务器端口流量会比较阻塞(在对称切换中,双端的带宽是完全对称的),这是一个瓶颈。
1.3. 非对称交换(Asymmetric Switching)
- 通过将带有服务器的网段连接到更高带宽的端口(100 Mbps),非对称交换(asymmetric switching)减少了服务器上潜在瓶颈的可能性
- 非对称交换需要在交换器中进行内存缓冲
- 非对称交换端口解决对称交换端口中的对称阻塞问题(进一步保证了服务器的稳定实现)
1.3.1. 内存缓冲
- 交换机中存储目标和传输数据的内存区域,直到可以将其切换出正确的端口为止。
- 基于端口(Port)的内存缓冲
- 数据包存储在每个端口的队列中
- 由于目标端口繁忙,一个数据包可能会延迟其他数据包的传输
- 其他端口存在不均衡的问题。
- 共享(Shared)内存缓冲
- 所有端口共享的公用内存缓冲
- 允许将数据包在一个端口上接收并在另一个端口上发送出去,而无需将其更改为其他队列。
- 需要自己记录端口的信息
- 基于端口(Port)的内存缓冲
- 发生阻塞的时候,根据情况按照端口或者内存将包缓存下来
1.4. 交换方式
1.4.1. 储存转发(Store-and-Forward,网桥、路由器等通过软件的设备)
- 交换机接收整个帧,最后将其计算为CRC,然后再将其发送到目的地
- 接收后,校验,正确再发送
1.4.2. Cut-through 直通
- 转发会增加延迟:通过使用直通切换方法可以减少它
- 快速转发切换:仅在立即转发帧之前检查目标MAC(只看到帧的目的地址就转发,而不看帧的后面的部分)
1.4.3. Segment-free Switching 无碎片转发
- 碎片释放:在转发帧之前读取前64个字节以减少错误:避免碰撞和帧碎片
- Exmaple:(三种不同的查看方式)
1.5. 第二层交换机
- 大规模集成电路,保证链路效率,低时延,低成本
- 有一个MAC地址
1.6. 第三层交换机
- 基于硬件的帧转发机制,较高的帧转发性能,低时延
- 较高速的计算
- 每一个端口的代价低
- 流控制
- 安全性更高
- 对数据流进行路由,生成MAC和IP的映射
- MAC地址过来的时候直接根据表从二层进行通过
1.7. 第四层交换机
- 数据段在数据报里面,数据报在数据帧里面
- 只要交换机可以看到数据帧的数据部分的首部
- 可以根据端口主机的应用特点进行一定的流量控制
- 和Net OS是不一样的,没有那么智能
- 识别到前80个字节的数据报长度,对指定应用进行管理
1.8. 多层交换机总结
- 一般我们只是用二层交换机
- 交换机可以简单识别第三层和第四层信息
2. 生成树协议(STP, The Spanning-Tree Protocol)
2.1. 桥回路
- 出于各种原因,网络中可能会出现环路。
- 通常,网络中的环路是故意(deliberate)提供冗余的结果。
- 也可能由于配置错误而发生:在桥接网络中,环路可能是绝对灾难性的两个主要原因:
- 广播回路(广播风暴),没有TTL
- 路由表的错误
- 往往是第二层交换机的冗余导致的桥回路。
- 接入层到核心层的接入往往要有冗余,这个区域是主干网(backbone)
2.2. 冗余造成了路由回路
- 设备通过backbone和远端设备进行链接
2.3. 第二层路由回路
- 广播和第2层循环可能是危险的组合。
- 以太网帧没有TTL字段
- 以太网帧开始循环后,它可能会继续下去,直到有人关闭其中一台交换机或断开链路为止(外部条件)
- 交换机将抖动(flip flop)主机A的桥接表条目(创建极高的CPU利用率)。
- 消耗CPU和内存
2.3.1. 第二层路由回路-泛洪单播帧
- 过一段时间CAT-1和CAT-2没有收到Host-B的信息,删除表中的对应记录
- 在这之后,Host A发送给Host B信息,然后在CAT-1和CAT-2之间进行循环
2.4. 生成树协议 综述
- 生成树协议的元素
- 主要功能:在交换/桥接网络中允许冗余路径,而不会因环路的影响而引起延迟。
- STP通过计算稳定的生成树网络拓扑来防止环路
- 生成树帧(称为桥协议数据单元-BPDU)用于确定生成树拓扑
- 在正常情况下禁用一些端口来防止出现冗余
2.4.1. STP决策顺序(Seqence)
- 生成树始终使用相同的四步决策序列:
- 在拓扑里面最低的root BID(网桥标识)
- 找到 Root bridgh的最低路径成本
- 每个路径都会选择一个最低BID的sender 这个是针对一个链路的,详见例子
- 每个路径再指定一个最低的ID端口
2.4.2. BPDUs(Bridge Protocol Data Unit)
- BPDU是交换机之间的流量;它们不承载最终用户(end-user)流量。
- STP建立一个称为根网桥的根节点,生成的树源自根桥。
- 不属于最短路径树的冗余连接将被阻止。(block 端口,不转发,但是接收)
- 在阻塞的链接上收到的数据帧将被丢弃。
- 交换机发送的允许形成无环逻辑拓扑的消息是BPDU
- BPDU里面包含几个字段标识协议、版本、数据类型、标志等,记录它认可的Root BID(类似OSPF)、到BID最小的代价、发送的交换机的ID、从哪个端口发送
- 和OSPF不一样的:不一定以自己为根
- 这样在选举之后,冗余链路就被屏蔽掉了。
2.4.3. STP的BPDU帧
- 注意前四个是很有意义的
- 默认交换机每2s发送一次BPDU
- 主要是维护最短的路径
- 接收到BPDU帧的时候,会比较根ID,计算,如果更优则接受,反之则不接受。
- 经过一段时间的传递后会全局稳定。
2.4.4. Bridge Identification/BID
- 网桥ID(BID):8个字节(2 + 6)
- 高阶BID子字段(2个字节):网桥优先级
- 216个可能的值:0-65,535(默认值:32,768)
- 通常以十进制格式表示
- 低阶子字段(6个字节):分配给交换机的MAC地址,以十六进制格式表示
- 高阶BID子字段(2个字节):网桥优先级
- STP成本值:成本越低越好。
2.4.5. 选举根交换机
- 交换机通过查找具有最低BID的交换机(通常称为根战争)来选择单个根交换机。
- 如果所有交换机都使用默认的网桥优先级32768,则最低的MAC地址将作为平局。
- 配置优先级来调整根桥
2.5. 路径代价 Cost
- 桥梁使用成本的概念来评估它们与其他桥梁的距离。
- 和OSPF算法相同的,这个标准是比较合适的,比之前OSPF要新,用固定的数值除以带宽来获得代价
2.6. Five STP States 5个STP状态
- 通过根据策略配置每个端口来建立状态
- 然后,STP根据流量模式(traffic Patterns)和潜在环路(Protential Loops)修改状态
- STP状态的默认顺序为:
- 阻塞:没有转发帧,听到了BPDU
- 监听:不转发任何帧,监听数据帧(确定自己可以参加的交换),也会发送一些数据帧表示自己状态变了
- 学习:不转发帧,学习地址
- 转发:转发帧,学习地址
- 禁用:没有转发帧,没有听到BPDU
STP过程:Blocking -> 20s Listening -> 15s Learning -> 15s Fowarding或者Disabled
- 2s可以调整
- 老化时间:保存的时间
2.7. 初始STP收敛
- 当网络首次启动时,所有网桥都会混合使用BPDU信息来泛洪网络。(开始泛洪BPDU信息)
- 立即,他们应用决策序列,允许他们BPDU进行PK,然后选择出来ROOT,从而形成整个网络的单个生成树。
1 |
|
- Root switch针对一个特定的交换机
- 根端口针对一个交换机
- 指定端口对应链路
2.7.1. 步骤1:根交换机决定
- 宣布自己为根
- 检查端口上收到的所有BPDU以及将在该端口上发送的BPDU
- 对于每个到达的BPDU,如果其值小于为端口保存的现有BPDU
- 旧值被替换
- BPDU的发送者被接受为新的根
- BC收到后将根修改为A
- 比如在BC链路中,B的MAC地址比较小,作为链路的Sender BID,这个port是指定端口。
2.7.2. 步骤2:选择根端口
- 每个非根桥必须选择一个根端口。
- 桥的根端口是最接近根桥的端口。
- 根路径成本是到根网桥的所有链接的累积(cumulative)成本。
- STP成本随着在端口上接收到BPDU而增加,而不是随着它们从端口发送出去而增加。
B会把上面一个端口做为Root Port,虽然两个可达,但是上面一个更快,C也是同样
2.7.3. 步骤3:选择网段的指定端口(I)
- 每个网段都有一个指定的端口:充当单个网桥/交换机端口,该端口既向该网段又向根网桥发送流量,也从该网段和根网桥接收流量。
- 包含给定网段的指定端口的网桥/交换机称为该网段的指定网桥。
- 所有网桥/交换机将阻止它们上未指定的端口,根网桥上的每个活动端口都将成为指定端口
- 每个链路只有一个指定端口,一旦选定其他就block了
- BC之间的,左边是指定端口(BID小)
- MAC地址唯一的
- Root Port都是上面的
- AB和AC之间的链路的指定端口是A上面的端口。
3. VLAN(Virtual Local Area Network 虚拟局域网)
3.1. 为什么引入VLAN?
3.2. VLAN可以不通过路由器就隔离广播域吗?
3.3. 虚拟局域网介绍
3.3.1. 现有的共享局域网配置
- 在典型的共享局域网中…
- 根据用户所插入(plug)的集线器对用户进行物理分组
- 路由器分割局域网并提供广播防火墙
- 在虚拟局域网中
- 您可以按使用的功能,部门或应用程序对用户进行逻辑分组
- 通过专有软件进行配置
3.3.2. LAN和VLAN之间的差异
- 虚拟局域网
- 在第2层和第3层工作
- 控制网络广播
- 允许用户由网络管理员分配。
- 提供更严格的网络安全性。
- 左边是基于地理位置划分成子网(传统局域网)
- VLAN是是通过逻辑位置进行划分
- VLAN1的报文不会发送给VLAN2(虽然连接在一个交换机上)
3.3.3. VLANs (IEEE 802.1q)
- 特点
- 不限于物理交换机网段的网络设备或用户的逻辑分组。
- VLAN中的设备或用户可以按功能,部门,应用程序等进行分组,而不管其物理网段的位置如何。
- VLAN创建一个不限于物理网段的单个广播域,并且将其视为子网。
- VLAN设置是由网络管理员使用供应商的软件在交换机中完成的。
- 优点:
- 限制广播包,提高带宽的利用率。
- 增强通信的安全性:其他VLAN用户网络收不到非本VLAN的报文,避免被监听
- 创建虚拟工作组:可以一个部门工作的人划分为一个VLAN,这样子即使他移动了办公位置,仍然能够正常办公
- 增强网络的健壮性:将一些网络故障限制在一个VLAN中
3.3.4. 分组用户
- VLAN可以从逻辑上将用户划分为不同的子网(广播域)
- 广播帧仅在具有相同VLAN ID的一个或多个交换机的端口之间切换。(VLAN ID属于端口)
- 可以通过基于以下内容的软件对用户进行逻辑分组:
- 端口号
- MAC地址
- 使用的协议
- 使用的应用
3.3.4.1. 没有 VLAN 时的网络广播
大家在一个交换机上不可以进行划分
3.3.4.2. 划分了VLAN的网络广播
各自角色之间单独进行通信,虽然连接的是同一个交换机,如果不在同一个VLAN上,相互之间也不能通信
3.3.5. VLAN 间通信
- 首先127.17.10.21询问网关地址(ARQ)
- 路由器帮忙转发(VLAN的交换需要路由器的支持)
- 交换机S2的不同端口在不同的VLAN,S1和S2、S1和S3之间是VLAN骨干
3.3.6. VLAN 和第3层转发来控制广播域
第三层交换机:为每一个网段设置一个SVI(switch virtual interface,虚拟交换机结构,也可以理解为子接口),通过这个来进行不同网段之间的通信
3.4. VLAN的结构
3.4.1. 虚拟局域网通过骨干网(BackBone)
- VLAN配置需要支持互连的路由器和交换机之间的骨干数据传输。
- 骨干网是用于VLAN间通信的区域
- 骨干网应该是高速链路,通常为100Mbps或更高
- BackBone可以跑多个VLAN,是骨干网
3.4.2. 在虚拟局域网中的路由器的作用
- 路由器提供不同VLAN之间的连接
- 例如,您有VLAN1和VLAN2。
- 在交换机内,位于不同VLAN上的用户无法相互通信(VLAN的好处!)
- 但是,VLAN1上的用户可以向VLAN2上的用户发送电子邮件,但他们需要路由器才能执行此操作。
3.4.3. 在虚拟局域网中的帧的使用
- 交换机根据帧中的数据做出过滤和转发决策。
- 使用了两种技术
- 帧过滤:检查有关每个帧的特定信息(MAC地址或第3层协议类型),特定的VLAN记录或者映射
- 帧标记:在整个网络骨干网中转发时,在每个帧的标题中放置一个唯一的标识符。
3.4.3.1. Frame Filiter 帧过滤
- 收到帧转发后,发现都不在一个LAN上,然后通过Backbone转发
- Frame Table在交换机上传输
3.4.3.2. Frame Tagging 帧标记
- 帧标记实施过程:
- 在整个网络骨干网中转发时,在每个帧的标题中放置一个VLAN标识符。
- 每个开关都可以理解和检查标识符。
- 当帧离开网络骨干网时,交换机会在帧发送到目标终端站之前删除标识符。只和端口绑定,而不影响主机
- 帧标记在第2层起作用,并且几乎不需要处理或管理开销。
- 从主机到了交换机端口,交换机端口进行标记,然后进行转发。
3.4.4. Frame Tagging – IEEE802.1Q and ISL
- IEEE802.1Q:IEEE标准,在标头中插入VLAN的标签以标识所属的VLAN。(帧标记)。
- ISL(Inter-Switch Link):思科专有。ISL在数据帧的前面添加一个26字节的标头,并在末尾附加一个CRC(4字节)。
- 推荐用IEEE802.Q
- 标记一般在BackBone上
3.5. 虚拟局域网的实现
3.5.1. 端口、虚拟局域网和广播
- 实现VLAN的两种方法
- 静态的
- 动态的
- 每一个端口绑定给一个VLAN
- 确保不共享同一VLAN的端口不共享广播。
- 确保共享相同VLAN的端口将共享广播。
- 实现途径:
- 基于端口的虚拟局域网
- 基于MAC地址的虚拟局域网
- 基于IP地址的虚拟局域网
- 基于上层协议的虚拟局域网
3.5.2. 静态VLANS
- 定义:静态VLAN是指将交换机上的端口管理性地分配给VLAN的时间
- 优点:
- 安全,易于配置和监控
- 在控制移动的网络中效果很好
- 端口是写死在交换机的端口上的
3.5.3. 动态VLANS
- 一个服务器来配置VLAN的信息
- 交换机通过MAC地址或者哪一个协议,指定是哪一个VLAN
- 当工作站最初连接到未分配的端口时,交换机会检查表中的条目,并使用正确的VLAN动态配置端口
- 优点
- 添加或移动用户时减少管理(更多前期工作)
- 集中通知未授权用户
3.5.4. 以端口为中心的VLAN
- 实际的网络是有层次的
- static的物理的接入层(physical Layer)
- 不同电脑在一个房间内
- 不同房间的不同电脑组成一个VLAN
- 路由器网关来处理
3.5.5. 以端口为中心的VLAN的优点
- 同一VLAN中的所有节点都连接到同一路由器接口
- 使管理更容易,因为…
- 通过路由器端口分配用户
- VLAN易于管理。
- 提供更高的安全性
- 数据包不会"泄漏"到其他域
3.5.6. 接入和骨干连接
- 分为两类:
- 接入链路:通过一个VLAN报文
- 骨干链路:通过多个VLAN报文
3.5.7. 访问连接
- 访问连接是仅作为一个VLAN成员的交换机上的连接。
- 此VLAN被称为端口的本机VLAN,连接到端口的任何设备都完全不知道VLAN存在。
3.5.8. 主干链路
- 主干链路能够支持多个VLAN。
- 主干链路通常用于将交换机连接到其他交换机或路由器。
- 交换机在快速以太网和千兆位以太网端口上都支持骨干链路。
- 也存在访问和骨干链接
- 一般Trunk就是BackBone
- Sa和Sb上面连接使用单独的线,浪费
- 底下使用串行的线,不浪费端口
- 骨干是支持多个VLAN的点对点链接
- 骨干用于在两个实现VLAN的设备之间创建链接时节省端口
- 骨干链路不属于特定的VLAN:充当交换机和路由器之间VLAN的通道。
- 可以将骨干链路配置为传输所有VLAN或有限数量的VLAN。
- 但是,骨干链路可能具有本地VLAN。
- 如果骨干线链路由于任何原因失败,则骨干线的本地VLAN是该骨干线使用的VLAN。
- native VLAN是不发送无标记的信息。
3.5.9. 交换机29xx中的配置
- 在Cisco 29xx交换机上配置VLAN时,必须遵循以下准则:
- VLAN的最大数量取决于交换机本身。
- VLAN 1是出厂默认VLAN之一。(native VLAN往往是VLAN1,以及广播也是)
- VLAN 1是默认的以太网VLAN。
- 思科发现协议(CDP)和VLAN骨干协议(VTP)通告在VLAN 1上发送。
- 默认情况下,Catalyst 29xx IP地址在VLAN 1广播域中。
3.5.10. VLAN配置
- 步骤1:创建VLAN所需的步骤。 如果需要,还可以配置VLAN名称。
1 |
|
- 步骤2:将VLAN分配给一个或多个接口:
1 |
|
3.5.11. 添加VLAN示例
1 |
|
3.5.12. 验证VLAN
Switch# show vlan [vlanid]
剩下的是默认VLAN
3.5.13. 删除VLAN
- 删除VLAN后,分配给该VLAN的所有端口都将变为非活动状态。 但是,端口将一直与删除的VLAN关联,直到分配给新的VLAN。
switch(vlan)# no vlan vlanid [name /vlan-name]
1 |
|
3.6. 在局域网之间的路由
- 每个端口连接一个VLAN,每个IP和一个VLAN连接
- 如下图,我们使用串口线,物理上是一个一个接口,划分成多个IP和子接口
- 对比如下:接入方式不同
3.6.1. 子接口
- 物理上一个,划分成Fa0/1、Fa0/2和Fa/3
- 涉及到的是单臂路由
3.6.2. 配置VLAN间路由
- Step1:识别界面.
Router(config)#interface fastethernet port-number. subinterface-number
- Step2:定义VLAN封装.(一般用dot1q)
Router(config-if)#encapsulation dot1q vlan-number
- Step3:为接口分配IP地址
Router(config-if)#ip address ip-address subnet-mask
3.6.3. 配置VLAN间路由
1 |
|
- 如果是Trunk Link:应该使用交叉线,而不是直通线
- 如果是Access Link:直通线
4. VLAN题目备注
- 同一VLAN中的两台主机可以跨越多台交换机
- 必须是第三层及以上的交换机才能用来构建VLAN
2020-计算机网络-lecture09-局域网交换与VLAN
https://spricoder.github.io/2020/07/05/2020-Internet-computing/2020-Internet-computing-lecture09-%E5%B1%80%E5%9F%9F%E7%BD%91%E4%BA%A4%E6%8D%A2%E4%B8%8EVLAN/