贰叁肆 - 学习笔记
type: channel
link: https://www.ersansi.top/index.php/category/%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0/
description: 各种学习笔记
items: Python编程从入门到实践
items: 利用iframe标签实现局部刷新
items: Centos Bash脚本
items: 网络工程师总结
items: 网络工程师——无线局域网
items: 网络工程师——以太网通道
items: 网络工程师——生成树协议-STP
items: 网络工程师——VLAN注册协议——GVRP协议
items: 网络工程师——Trunk
items: 网络工程师——虚拟局域网（VLAN）

Python编程从入门到实践
type: item
date: 2022-11-26T17:55:00+08:00
description: 大小写互转： title() 首字母大写 lower() 所有字母小写 upper() 所有字母大写 代码： name = "aBcdE" #创建一个变量 print(name.title()) print(name.lower()) print(name.upper()) 输出： ABcdE abcde ABCDE 在字符串中插入变量 使用f"字符串{变量1}{变量2}" 代码： A="aaa" B="bbb" print(f"ccc{A}{B}") 输出： cccaaabbb

利用iframe标签实现局部刷新
type: item
date: 2022-11-13T00:25:00+08:00
description: 简介： iframe标签详细属于以及功能具体请百度，能找到这篇帖子的估计已经对该标签有所了解了，这里不做重复 主页代码： 测试主页 按钮1 按钮2 按钮3 原理： 当按钮被单击时候触发名字为frameB的这个iframe标签，这个标签一开始加载的是0.html，单击按钮2的时候切换加载1.html 第一页代码： 测试页1 测试页1 第二页代码： 测试页2 测试页2 第三页代码： 测试页3 测试页3

Centos Bash脚本
type: item
date: 2022-11-02T22:11:00+08:00
description: 脚本开头： #!/bin/bash 每个脚本的开头都是以这一行开头，用于说明下面的脚本是用什么运行的 输出字符： echo"要输出的字符" 变量： 新建变量： 变量名=赋值 注意： 命名只能使用英文字母，数字和下划线，首个字符不能以数字开头。 中间不能有空格，可以使用下划线 _。 不能使用标点符号。 不能使用bash里的关键字（可用help命令查看保留关键字）。 使用变量： $变量名 使用变量需要在变量名前面加一个美元符号$ 获取键盘输入： read -参数 参数： 参数 作用 -s 安静模式 -r 反斜杠不作为转义字符 -p"需要提示的文本" 用户输入行前面提示 -t 超时时间 指定超时时间，单位为秒 -u 文件描述符 从指定文件描述符读取输入 -e 如果标准输入时从终端来的，未来的readline被采用 -i 文本 如果readline是被采用来读取该行，文本时放置到编辑缓冲区编辑开始之前 例子： 现在运行脚本，需要用户输入“Y”和“N”来做选择，并且提示用户“请输入"Y"确定，输入"N"退出，默认为"N":”,然后把用户的选择赋值到yn变量中。 read -p "请输入"Y"确定，输入"N"退出，默认为"N":" yn 最后的yn为变量名，用户输入的内容会赋值到yn这个变量名中 if判断： if [ 判断条件 ];then 条件符合后执行的操作 elif [ 判断条件 ];then 条件符合后执行的操作 else 以上条件都不符合执行的操作 fi if如果，elif否则如果，else否则，fi结束语句 注意： 如果“=”两边没有空格时赋值，“=”两边有空格为比较 判断条件两头都要有空格 "$abc"="1" #等号两边没有空格为赋值 "$abc" = "1" #等号两边有空格为比较 用户登录时自动执行脚本： 把脚本放到/etc/profile.d目录 自定义脚本启动命令： alias 自定义的命令='输入自定义的命令后执行的操作' 在/etc/bashrc文件最后添加 清屏命令： clear 这个命令将会刷新屏幕，本质上只是让终端显示页向后翻了一页，如果向上滚动屏幕还可以看到之前的操作信息。一般都会用这个命令。 在指定文件最后插入一行或多行： 插入单行： echo "要插入的内容" >> 文件名 注意：echo后面有空格，要插入的内容后面也有空格，>>后面也有空格 插入多行： echo -e "要插入的第一行\n要插入的第二行\n要插入的第三行" >> 文件名 添加参数-e，使用\n换行 删除指定文件的指定行： sed 删除指定行： sed '行数d' 文件名 删除第5行 sed '5d' 文件名 删除最后一行： sed '$d' 文件名 最后一行用美元符号代替 删除第几行到第几行： sed '要删除的第一行,要删除的最后一行d' 文件名 删除第8行到第10行 sed '8,10d' 文件名 删除不连续的行： sed '要删除的行d,要删除的行d,要删除的行d' 文件名 删除第3行，第8行和最后一行 sed '3d,8d,$d' 文件名 除了那几行其他的都要删除： sed '不需要删除的开始行,不需要删除的最后一行!d' 文件名 除了第3行到第6行其他的都要删除 sed '3,6!d' 文件名 删除空白行： sed '/^$/d' 文件名 删除包含特定字符的行： sed '/特地字符/d' 文件名 需要删除包含install这个单词的行 sed '/install/d' 文件名 删除特定字符开头的行： sed '/^特定字符/d' 文件名 需要删除linux开头的行 sed '/^linux/d' 文件名

网络工程师总结
type: item
date: 2022-10-24T19:54:00+08:00
description: 数据表示： 进制表示： 二进制下标是“2”； 十进制下标是“10”，或者后面加字母“D” 八进制下标是“8”，或者后面加字母“O” 十六进制下标是“16”，或者后面加字母“H” 三位二进制等于一位八进制，四位二进制等于一位十六进制 十六进制10=A,11=B,12=C,13=D,14=E,15=F 总结：D十，O八，H十六，三二一八，四二一一十六 源码、反码、补码： 在计算机中，存储一个数用的是补码 最高位为符号位，0表示正数，1表示负数 原码： 没有改动的二进制，范围：-（2的（N次方-1）-1）~2的（N次方-1）-1 反码： 正数表示方法和原码一样不变，负数表示方法除了符号位，其他的和原码相反，范围：-（2的（N次方-1）-1）~2的（N次方-1）-1 补码： 正数表示和原码一样，负数表示方法在反码的数值位加1，符号位不变，范围：-2的（N次方-1）~2的（N次方-1）。 总结：原二进制，反正不改负符不改其他相反，补正不改负符不改其他反加1 逻辑运算： 0=假，1=真 或运算： 无真结果为假，有真结果为真，0+0=0，0+1=1，1+1=1，1+0=1 与运算： 只有两个都为真结果才为真，否则为假，0×0=0，0×1=0，1×0=0，1×1=1 非运算： 不真即假，不假即真 异或运算： 两个条件一致结果为假，两个条件不一致结果为真，0⊕0=0，0⊕1=1，1⊕0=1，1⊕1=0 计算机结构： 总线：数据总线，地址总线：控制总线 CPU: 运算器： 算术逻辑单元ALU：算术逻辑运算 累加寄存器AC：暂存中间的计算的结果 数据缓冲寄存器：保存从主存储中读取的数据 状态条件寄存器：保存计算过程中的状态信息，例如借位，进位，结果溢出 控制器： 程序计数器PC：存放指令所在的地址 指令寄存器IR：保存当前正在执行的指令 指令译码器：对指令操作码译码 时序部件：为指令执行产生时序信号 寻址方式： 指令是由操作码和地址码组的 立即寻址： 操作数在指令中 直接寻址： 地址码中有操作数的地址，可以直接根据地址在内存中找到操作数 间接寻址： 经过两次或以上的访存操作后才能得到操作数 变址寻址： 涉及到变址寄存器 寄存器寻址： 操作数在寄存器中 寄存器间接寻址： 多次访问寄存器得到操作数 CISC与RISC： CISC： 偏向用户编程灵活度，数量多，频率差别大，可变长格式，支持多种寻址方式，使用微程序控制技术 RISC： 偏向机器执行高效性，数量少，频率接近，定长格式，大部分为单周期指令，操作寄存器，只有Load/Store操作内存，支持寻址方式少，增加了通用寄存器，硬布线逻辑控制为主，适合采用流水线，优化编译，有效支持高级语言 流水线： 计算公式： 计算公式：（t₁+t₂+t₃）+（n-1）t₁ t₁、t₂、t₃对应取址、分析、执行的时间，最后一个t₁是周期，也就是这三步中用时最长的那一步的时间 流水线指标： 吞吐率： 吞吐率：Tp=n/Tk,n为任务的数量，Tk是流水线执行完需要的时间 理论最大吞吐率：周期的倒数 加速比： 加速比：S=Ts/Tk，TS是不适用流水线执行完任务的时间，TK是使用流水线执行完所有任务的时间。 效率： 一条指令分三步执行完，当只有第一步在工作的时候，效率为三分之一，当一二步都在工作的时候效率为三分之二，当一二三步都在工作的时候效率为百分之百 存储系统结构： 存储系统有CPU里面的寄存器，缓存（Cache），主存（内存），辅存（磁盘） 速度越快容量越小，距离CPU越近速度越快 速度：寄存器>缓存>主存>辅存 主存：随机存储器RAM（掉电丢失），只读存储器ROM（掉电不丢失） 缓存：Cache高速缓冲存储器，实现缓和CPU和主存之间的速率矛盾 存储系统的存储方式： 顺序存取（磁带） 直接存取（硬盘） 随机存取（内存） 相关联存取（Cache），根据内容存取 主存储器组成： 计算内存： 计算有多少芯片组成：用总容量除以芯片容量 知道开始编址和接收编址求字节：用最大编址减最小编址加1 知道字节求容量：把字节转换为二进制，K=2¹⁰=1024=1K，去掉十个零得到1个K，剩余的转十进制，得到单位为KB的容量，如果要算芯片数，用总容量除以芯片容量。 表示存储容量相关术语： 位：用bit表示，一个二进制表示1bit 字节：用B表示，1B=8bit 字：实际表示CPU以此处理的二进制的位数，通常为字节的整数倍，8/16/32/64bit 磁盘： 时间排序： IDE(PATA)<SATA(6Gbps)<SCSI<SAS<SSD SAS用于高端，NLSAS用于较大数据块，SATA用于较大数据块，FC用于高端用户 RAID技术： 条带化+校验/条带化+镜像 条带：把一块数据分布存放在多块磁盘中。 可以提升性能，保证数据可靠性。 条带…

网络工程师——无线局域网
type: item
date: 2022-10-22T00:11:00+08:00
description: 无线数据网络种类： 无线数据网络分为：无线个人网、无线局域网、无线城域网和无线广域网四大类。 种类 标准 典型应用 覆盖范围 无线个人网（WPAN） IEEE802.15 蓝牙 ≤10米 无线局域网（WLAN） IEEE802.11 无线企业网 ≤100米 无线城域网（WMAN） IEEE802.16 主要用于Interne访问 2-10公里 无线广域网（WMAN） IEEE802.20&3蜂窝移动通信 主要用于Intern访问 2-10公里 无线局域网 无线局域网对应以太网来说，优势主要由四方面： 1、移动性 2、灵活性 3、成本低 4、容易扩充 无线局域网主要标准IEEE802.11，按照接入方式来分的话主要分两种。 有接入点模式： 一种是有接入点的模式，也叫做Infrastructure结构（基础设施结构），有接入点的模式指的是它会有无线接入点AP这一个设备，这一个设备主要作用是把有线信号转为无线信号，把无线信号转为有线信号。 无接入点模式： 另外一种是Ad-hoc结构，也叫无接入点模式，无接入点模式指的是直接在终端域终端之间进行组网，不需要有AP的支持，这一种一般用于临时性的组网，因为Ad-noc模式结构非常的复杂多变，每一个终端它即是终端，也是路由器，而且是动态的保持和其他终端进行连接，在Ad-noc结构中路由器协议的设计和传统路由器协议不一样，它的路由协议的设计会更加复杂。 在企业中用的都是有接入点模式进行组网。 无线局域网标准（WLAN标准）： 标准 运行频率 主要技术 数据速率 IEEE802.11 2.4GHz 扩频通信技术 1Mbps和2Mbps IEEE802.11b 2.4GHz HK-DSSS技术 11Mbps IEEE802.11a 5GHz OFDM调制技术 54Mbps IEEE802.11g 2.4GHz OFDM调制技术 54Mbps IEEE802.11n 2.4GHz和5GHz MIMO和OFDM 600Mbps IEEE802.11ac 5GHz MIMO和OFDM 1Gbps IEEE802.11ax 2.4GHz和5GHz MIMO和OFDM 11Gbps 扩频技术是将要发送的信息扩展到一个很宽的频带上，以很宽的信道传送信息，抗干扰和抗衰减能力强，抗阻塞能力也强。 包括跳频扩频（FHSS）和直连序列扩频（DSSS）。 无线局域网如果工作在2.4GHz这一个频率，IEEE总共会划分出14个信道，每一个信道的频带宽度是22MHz，理论上会有4组互不干扰的信道，但是在中国，14这一个信道并不开放，所以在中国国只有3组互不干扰的信道。 理论上可以使用（1、6、11），（2、7、12），（3、8、13），（4、9、14）这四组互不干扰的信道来进行无线覆盖。 无线局域网IEEE802.11 MAC层协议 在以太网当中，使用CSMA/CD协议来解决介质征用的问题，但是在无线局域网中是不能直接照搬CSMA/CD协议的，因为对于无线局域网而言会存在隐蔽站问题和暴露站问题。 隐蔽站问题： 一下图为例，A的无线信号的范围是有限的，它不能覆盖到C，它可以刚好覆盖到B，同理，C的无线信号的范围也是有限的，覆盖不到A，但是也刚好覆盖到B，这时候A有信息要发给B，它首先会监听到信道处于空闲，当A监听到信道处于空闲状态之后就会给B发送信息，同一时间，C也有信息发送给B，C也监听到信道处于空闲，也给B发了信息，结果信号在B哪里产生了冲突问题。 这就是隐蔽站问题，隐蔽站的问题的根源是A发现不了C，C也发现不了A，这在以太网中式不存在这一种状况的。 暴露站问题： B的覆盖范围可以覆盖到A和C，C的覆盖范围可以覆盖到B和D，现在B有信息要发给A，监听到信道式空闲的，B就把信息发出去了，同时C有信息要发送给D，由于B发给A的这个信号向四周扩散的，那么C就会监听到信道处于忙碌状态，导致C不敢把信息发给D，实际上B给A发的同时C给D发是没有问题的。 隐蔽站与暴露站总结： 隐蔽站问题：检测信道空闲但实际上并不空闲 暴露站问题：检测信道忙碌但实际上并不忙碌 在无线局域网中不能使用CSMA/CD协议的，而是只能使用改进的CSMA协议，也就是CSMA/CA协议，CA指的是冲突避免，冲突避免并不是完完全全的避免冲突，只是把冲突的概率降到最低，因为CSMA/CA协议的话会增加一个退避计时器和一个停止等待协议，把这个通途的概率降到最低而已。 MAC层协议： IEEE802.11在MAC层它定了两个子层，一个是DCF，叫分布协调功能，还有一个叫PCF，也叫点协调功能。 分布协调功能定义的是争用服务，用的就是CSMA/CA协议，它是在每一个节点使用CSMA机制的分布式接入算法，让各个站通过争用信道来获取发送权。 点协调功能PCF使用集中控制的接…

网络工程师——以太网通道
type: item
date: 2022-10-21T20:44:00+08:00
description: 以太网通道 以太网通道又叫聚合链路，也叫端口聚合，在华为中又叫做eth-twunk 以上图为例，有一台交换机A，交换机A下面连接10个用户，也就是10台PC，每个用户的带宽是100Mbps，交换机B下面也是有10个用户，每个用户的带宽也是100Mbps，用一条1000Mbps的链路把两条交换机连接起来，在这种情况下，A这边的用户与B这边的用户在网络高峰期通信的时候，没有网络瓶颈的问题，因为1000Mbps的带宽足以支撑A的用户和B的用户相互通信。 以上图为例，现在A这边的用户扩充到20个，B这边的用户也扩充到20个，两台交换机之间的链路还是1000Mbps，现在两台交换机相互连接的这一条带宽已经不够用了，有两种方法解决这一个问题。 第一种方法是把A交换机和B交换机的相连的端口模块更换成万兆的模块，并且把链路也更换成万兆的链路，这一种方法可以解决网络瓶颈的问题，但是网络可靠性没有提高，因为一旦万兆链路断开了或者是两边的交换机其中一台的万兆模块故障了，那么两边的用户是无法通信的。 另外一种方法成本比第一种更低，而且可以保证网络的可靠性，第二种方案就是链路聚合，所谓的链路聚合指的是把多条物理链路捆绑成一条逻辑链路。 既然一条100Mbps的不够用，那么在拉一条，但是直接拉的话会有问题，很明显已经产生了交换环路，由于生成树协议的介入，它必然会阻塞一条链路，也就是说带宽没有得到提升，只是可靠性得到了保证。 在做链路聚合的时候，首先在两台交换机中间再拉一条链路，再用链路聚合把多条物理链路捆绑成一条逻辑链路，捆包之后，生成树协议去看中间的链路是会把它当作一条逻辑链路，不会认为有环路的存在，两条1000Mbps的带宽叠加之后变成了2000Mbps，可以满足用户的互联互通。 而且两条物理链路，其中一条断开了，另外一条仍然可以使用，可靠性也是有所保证的。 链路聚合捆绑规则： 1、参与捆绑的端口必须属于同一个VLAN。 2、如果端口配置的是中继模式，那么应该再链路两端将通道中的所有端口配置成相同的中继模式。 3、所有参与捆绑的端口的物理参数设置必须相同。 协议： 链路聚合一种方式是手动，就是由网络管理员创建聚合组，哪一些端口和链路加入聚合组，完全由网络管理员控制，不需要聚合协议。 第二种方法就是用到聚合协议，思科由端口聚合协议，思科的是独有的，不开放的。另外一个是IEEE802.3ad制定出来的LACP（链路聚合控制协议），如果使用了链路聚合协议，再进行链路聚合的时候是非常方便的，只要在交换机上的端口开启这一功能，聚合组的常见和哪一些端口加入聚合组完全是由协议控制的，不需要网络管理员的干预，并且可以降低出错率。

网络工程师——生成树协议-STP
type: item
date: 2022-10-20T21:38:00+08:00
description: 冗余 对于一个企业来说，网络的可靠性是至关重要的，因为网络一旦出现问题会给企业的生产经营带来非常大的损失，想要保证网络的可靠性，要么就是靠冗余设备，要么就是冗余链路，所以一定会提到冗余这个词，因为任何一台设备你都不能保证它可以一直正常工作，它总有宕机的一个时间，所以就需要冗余化的一个设计来保证网络的可靠性。 以上图为例，这一种方案就是没有冗余设计的，一旦两台交换机间的线路断开，PCA和PCB就无法通信了。 为了提高这种网络的可靠性就需要冗余设备或者冗余链路的方案来解决这个问题了。 广播风暴： 我们可以在添加一台交换机C，一旦i骄傲还击A和交换机B的链路断开了，还可以通过交换机C来进行通信，以下图为例。 但是这一种设计要考虑环路问题，这一种设计已经形成了交换环路，也就是物理环路。 交换环路会带来广播风暴这一问题，广播风暴指的是在整个网络当中不断转发广播信息，使交换机处于极度忙碌的章台，主机也被迫接收广播帧，会出现网络速度慢甚至死机的现象。 广播风暴的产生及危害： 广播风暴的产生除了个别网卡故障一直在发送广播帧以外，环路问题也是一个最大的原因。 以上图为例，PCA肯定会有一个IP地址，例如192.168.1.2，PCB肯定也会有一个IP地址，例如192.168.1.3，现在PCA和PCB进行通信，例如PCA去pingPCB，在整个局域网内部寻址的话，是要找到PCB所对应的MAC地址，用MAC地址来封装IP数据包，MAC地址在PCA主机里面会有一个ARP表，如果表里面没有PCB对应的MAC地址的话，那么PCA会发一个在正常不过的广播消息，就是ARP广播，ARP广播是很正常的广播，这个ARP广播到达交换机A之后，A会转发这一个广播消息，会往交换机B和交换机C转发，交换机C收到之后又往交换机B和交换机A转发，同理，交换机B收到之后又向交换机A和交换机C转发，主机也不断的接收到广播帧，这就形成了广播风暴，并且会形成双相的广播风暴，处于广播风暴后，交换机也会一直不断的转发广播帧，正常用户通信会被阻塞，PCB也是被迫的不断处理广播帧，导致它的网络速度非常慢甚至死机，这是第一个危害。 第二个危害是帧复制，第三个危害是MAC地址表不稳定。 因为交换机在寻址的时候靠的是MAC地址和端口的映射表，MAC地址和端口的映射表是通过读取帧的源MAC地址和进入端口来学习的，例如交换机A首先获取的MAC地址和端口是PCA的，这一个帧交换机A转发给交换机B，交换机B转发给交换机C，交换机C在转发给交换机A，实际上是同一个帧，它的源MAC还是PCA的，但是帧进入的端口不同了，原来的MAC表的条目会被替换掉。 而且这是两个方向的广播帧，交换机A转发给交换机C，交换机C在转发给交换机B，交换机B又转发给交换机A，那这个时候帧进入的端口又不一样了，映射表又变了，这样的话这MAC映射表条目会一直被替换，MAC映射表不稳定，正常用户的数据帧是无法进行转发的。 这样设计看起来是提高了网络的冗余度，但是实际上是有问题的，不仅没有实现网络可靠性，还会给网络带来广播风暴。 生成树协议-STP 想要解决交换机环路产生广播风暴这个问题就需要用到了生成树协议-STP。 STP协议功能： STP——Spanning Tree Protool（生成树协议） 逻辑上断开环路，防止广播风暴的产生，这俄格逻辑上的计算是根据交换机和交换机之间传递的桥数据单元来进行生成树协议它的一个计算，通过计算之后它会断开某一条链路，避免环路的存在，防止广播风暴的产生。 当链路出现故障，断开的接口激活，恢复通信，起备份线路的作用。 例如仙子啊PCA要和PCB通信，正常情况是交换机C直接转发给交换机A，交换机B是冗余设备。 首先三台交换机开启生成树协议，进行桥数据单元的信息交换，进行生成树协议的信息计算，计算完成后假设断开的是C交换机和B交换机相连的这一条链路，这种情况下，PCA和PCB通信就会通过交换机B转发，实现网络可靠性方面的一个保证，又不会造成交换环路。 STP协议算法： 生成树协议是断开交换机B上面的交换机B和交换机C相连的端口。 STP将一个环形网络生成无环形网络，它的步骤分为三步。 1、选择根网桥（Root Bridge）：生成树协议诞生的较早，在网桥时代，网桥就是交换机的前生，由于STP是在网桥的基础上开发的，因此现在在交换机的网络中仍然沿用网桥这一术语。第一步选择根网桥其实就是选择根交换机； 2、选择根端口（Root Ports）； 3、选择指定端口（Designated Ports）：有些端口不是根端口，就要把它处于阻塞状态； 选择根网桥： 把环形拓扑变成无环拓扑，首先要选出根网桥，根网桥是根据网桥ID来选择的，网桥ID是唯一的，交换机之间传递BPDU，然后选择BID（网桥ID）值最小的交换机作为…

网络工程师——VLAN注册协议——GVRP协议
type: item
date: 2022-10-18T21:07:00+08:00
description: GVRP协议 在一个大型网络中，交换机的数量非常多，网络管理员不可能每一台交换机一台一台的去创建和配置VLAN，所以在一台交换机中创建VLAN之后，把VLAN的信息传给其他交换机，让其他交换机自动学习VLAN的相关信息，可以简化网络管理员的操作，这就是GVRP协议。 他是通过端口注册模式来实现VLAN信息的传递和注册的，端口注册模式分为三种，分别是Normal模式，Fixed模式，Forbidden模式。 Normal模式： 允许该端口动态注册或注销VLAN。 可以传播动态VLAN以及静态VLAN信息。 以上图为例，在交换机C中创建了VLAN5到VLAN10，交换机D手动创建了VLAN15到VLAN20，交换机E中手动创建了VLAN15到VLAN20，交换机F中手动创建了VLAN25到VLAN30. 首先把交换机和交换机相连起来的端口设置橙Normal模式，交换机C手动创建了VLAN5到VLAN10，交换机C的E1/0/1端口是Trunk端口，又是Normal模式，开始了GVRP协议，它就会把VLAN5到VLAN10的注册信息向交换机A的E1/0/2这一个端口进行转发，交换机A的E1/0/2端口也是Trunk端口和Normal模式，Mormal模式是可以学习VLAN信息的，所以交换机A学习到了VLAN5到VLAN10，然后再次通过已经设置成Trunk和和已经开启Normal的端口往后传递，也就是通过E1/0/1端口和E1/0/3端口传给交换机D和交换机B，交换机D的E1/0/1端口也是开启Trunk和Normal的，交换机D就可以学习到VLAN5到VLAN10，同理，交换机B也可以学习到VLAN5到VLAN10，以此类推的进行传递，直到所有交换机都学习完成。 Fixed模式： 禁止该端口动态注册或注销VLAN； 只传播静态VLAN，不传播动态VLAN。 交换机A手动创建了VLAN10和VLAN20，交换机C手动创建了VLAN10和VLAN30，交换机和交换机相连的这一些端口开启GVRP，其中交换机A的E1/0/24这一端口是Fixed模式，其他的都是Normal模式。 交换机A里面的VLAN10和VLAN20站在交换机A的角度来看是静态的，因为是自己创建的。交换机A的E1/0/24是Fixed模式，是会传递VLAN10和VLAN20的，因为Fixed模式是传播静态VLAN的，不传播动态VLAN。 交换机B是Normal模式，交换机C也是Normal模式，所以交换机B和交换机C也是学习到了VLAN10和VLAN20的。 现在反过来，交换机C里面创建了VLAN10和VLAN30，交换机C的E1/0/24端口是Normal模式，它会向交换机B传递VLAN信息，交换机D上是可以学习到VLAN10和VLAN30的，交换机B的E0/0/23端口也是Normal模式，他会向交换机A传递VLAN10和VLAN30，但是由于交换机A的E1/0/24端口是Fixed模式，VLAN信息是传递不过去的，因为VLAN10和VLAN30是其他交换机传递过去的，属于动态VLAN，Fixed模式是不传播动态VLAN的，只传播静态VLAN。 所谓的静态VLAN只的是在本机上创建和配置的，所以交换机A学习不了。 Forbidden模式： 禁止该端口动态注册或注销VLAN； 不传播除VLAN1以外的任何VLAN信息。 交换机A的E1/0/24端口为Forbidden模式，其他交换机的交换机和交换机相连的端口为Normal模式，交换机B和交换机C是学习不到VLAN10和VLAN20的，因为交换机A的E1/0/24端口是Forbidden模式，只传递VLAN1，同理反过来也是，交换机A学习不到交换机C创建的VLAN10和VLAN30。

网络工程师——Trunk
type: item
date: 2022-10-17T22:09:00+08:00
description: Trunk Trunk的定义和作用： 首先交换机和电脑连接的端口都属于Access端口，交换机和交换机的端口还是Access的话，VLAN1和VLAN1的通信就需要一条专用的物理数据链路来传递VLAN1的数据，专门用一条物理链路来传递VLAN2的数据，同样VLAN3的数据也是需要一条专门的物理链路，会浪费交换机的端口和链路的数量。 这种情况就可以用到中继链路来解决这一个问题，就是交换机和交换机之间只用连一根连接线来传递多个VLAN数据。 这又分为两种情况，一种是VLAN1，另外一种是其他VLAN数据如何传递的问题。 VLAN1属于默认VLAN，VLAN1的数据在进入交换机的时候打上VLAN1的标签，在通过Trunk口的时候标签被去除，到达另一台交换机的时候另一台交换机看不到标签，默认会打上VLAN1的标签然后转发出去。 其他VLAN在通过Trunk端口的收都是带标签通过的。

网络工程师——虚拟局域网（VLAN）
type: item
date: 2022-10-17T21:03:00+08:00
description: VLAN——产生 VLAN也叫虚拟局域网，是IEEE802.1Q标准。 在企业中，把所有的主机通过二层交换机相连，有一个弊端是二层交换机是不能分割广播域的，换句话说，如果一台主机发出一个广播信息，所有的主机和交换机都会收到这一个信息，主机和交换机就需要更多的开销去处理这一个信息，正常的网络流量会被广播流量占用带宽，用户就会感觉网速会越来越慢。 解决这个问题的方案可以分为两种，一种是使用路由器可以分割广播域这一特点来划分广播域，另外一种是使用二层交换机来划分VLAN。 使用路由器划分广播域： 如果单独使用一台路由器，那么A主机发出的广播消息只有B主机和C主机收到，因为路由器是不转发广播消息的，同理，D主机发的广播消息只有E主机、F主机、G主机可以收到，实际上路由器就是连接两个不同的网络了。A主机、B主机、C主机是一个网络，D主机、E主机、F主机、G主机是另外一个网络。 如果引入路由器来分割广播域的话，需要对网络的相关参数做修改，例如在路由器的第一个接口IP是192.168.1.1，另外一个接口时192.168.2.1，那意味着A主机、B主机、C主机着三台主机梭子啊的网段时192.168.1.0这一个网段，因为网关是192.168.1.1，网关和主机处于同一个网络才能充当网关。 而D主机、E主机、F主机、G主机着几台主机的IP地址需要做修改，因为它们是在192.168.2.0着一个网段里面，他的网关是192.168.2.1。 如果使用路由器来分割广播域的话是一种低效率高成本的方案，而且路由器端口是比较宝贵的，单纯用来分割广播域不划算的。 使用VLAN划分广播域： 最好的方案是虚拟局域网（VLAN），使用虚拟局域网来分割广播域是不需要额外购买单独的设备的，可以直接在以太网交换机中去分割广播域。 只需要在交换机里把对应的端口划分到对应的VLAN中去，只有在同一个端口中的VLAN才能相互通信，例如A1发送的信息只有A2、A3、A4收到，B1发送的信息只有B2、B3收到，C1发送的信息只有C2、C3收到，广播信息是不能够跨越VLAN的，用VLAN来解决分割广播域是一种高效，低成本的解决方案。 VLAN——划分： VLAN的划分方法主要分静态VLAN的划分方法和动态VLAN的划分方法。 静态VLAN划分： 静态VLAN的划分主要是基于交换机端口去划分，这也是考试中常考的方法。 VLAN划分表： 端口 VLAN 1 VLAN5 2 VLAN5 7 VLAN10 10 VLAN10 划分VLAN之后交换机在寻址的时候，不仅要查看MAC和端扣的映射表，而且要看VLAN的标签是否对应。 A主机要发以太帧给C主机的，首先A主机发出的是普通的以太帧，就是IEEE802.3格式的以太帧，这个以太帧是不带有任何VLAN的标记的，从端口1进去之后会给他大上端口1对应的VLAN标签，这样这个帧就变成了IEEE802.1Q帧了。 就是给以太帧打上一个802.1Q标记字段，这个字段里面还有很多子字段，其中最重要的是VLANID这一个字段。 VLANID这个字段本身占了12位，也就是2¹²=4096个VLAN，但是VLAN0和VLAN4095是保留的VLAN，不能够去使用，我们可以使用的是VLAN1到VLAN4094，最终我们真正能使用的VLAN有4096-2=4094个。 所以A主机的以太网帧从端口1计入之后会被打上VLAN5的标签，之后在交换机内部进行转发，从端口7出去，因为端口7也是VLAN5，目的地址对的上，VLAN也可以对的上，从端口7出之后这个帧里面的标记也会被去除，那么C主机收到的就是普通以太网帧了，所以说VLAN对主机来说是透明的，打上标记和去除标记都是在交换机中做的操作。 A主机是不能给B主机发信息的，因为B主机所在的是VLAN10，和A主机不在同一个VLAN，它们的标记不是对应的，看起来4台主机插在同一个交换机上，但它们是属于不同的VLAN的。 基于交换机端口划分的VLAN对移动办公的用户不太友好，例如某一个用户经常移动办公，他把电脑搬到另一个办公室连接上另一台交换机的时候，还需要管理员把正在使用的端口划分到之前的VLAN，很不方便，后来就有了动态划分VLAN。 动态划分VLAN： 动态划分VLAN其中最常用的是基于MAC地址去划分，某一个MAC属于某一个VLAN，无论这个终端如何移动，MAC地址是不会保持变化的，那么VLAN也不会变，但是这种方法在网络初始化的时候网络管理员所做的工作比较繁琐，因为要统计在这个网络中的每一台设备的MAC地址。 另外还可以基于网络协议，例如基于网络层的IP协议，基于网络层的IPX协议去划分不同的VLAN。 还可以基于子网去划分VLAN ，甚至可以基于策略去划分，例如IP加端口加MAC地址去划分VLAN。 VLAN的…