交换机通过mac地址通信,用来分割冲突域,不分割广播域。二层交换机有一个mac地址,三成交换机每个端口就有一个mac地址。

        帧转发:如果目标MAC地址已经保存在交换机的mac地址表中,帧就只被发送到正确的接口,这就是帧的转发。

        帧过滤:交换机不会把已知地址帧发送到其他交换机接口上,保护了其他接口的带宽,这叫做帧过滤。

        广播:如果目标地址在MAC地址表中没有,交换机就向出来接受该数据的接口之外的其他所有广播该数据。

广播风暴:

        交换机不能用两根网线同时连接,会发生广播风暴。当交换机在物理上存在环路,就会不可避免的产生广播风暴。

QQ图片20180919111859.png

        如两台交换机用两根网线相连,当需要寻找一台计算机且计算机不存在时,交换机就会发送广播信息去寻找计算机,广播信息会通过一个端口发送到相连的交换机中,另一台交换机也会发送广播信息,这时就会通过第二根相连的网线把广播信息又发送回来,这样循环往复就把所有端口阻塞不能通信。


生成树协议


        当有环路出现时,STP会逻辑上断开环路,使交换机之间形成树形结构。当交换机之间的两根连线中的一根断开时STP协议会自动打开另一根连线。有两根连线时会消耗交换机有限的计算资源,不稳定,且只有在智能交换机中才有此功能,所以不可以把这个方法作为冗余。


STP算法:

        1、选举根网桥:网桥是老名称现在指的是交换机;就是先选举根交换机。

        2、选举根端口:所有的非根交换机中选择一个端口。

        3、选举指定端口:是在网段上选择;在所有的非根端口上选择一个端口。(1)、选择成本路径最小的,带宽越大成本路径越小,也就是带宽越高优先级越高。(2)、直连网桥ID最小。(3)、端口ID最小的端口ID=端口优先级+端口编号(端口范围0-255,默认128)。

        4、在每个网段中选举一个端口。依靠路径成本,路径成本小的为指定端口,如果路径成本一致则使用连接较小的网桥ID接口。

查看生成树协议:有root标识的即为根网桥。

Switch>enable
Switch#show spanning-tree 
VLAN0001
Spanning tree enabled protocol ieee
Root ID    Priority    32769
Address     0001.6318.CE79    # mac地址小的为root,根网桥
This bridge is the root
Hello Time  2 sec  Max Age 20 sec  Forward Delay 15 sec

Bridge ID  Priority    32769  (priority 32768 sys-id-ext 1)
Address     0001.6318.CE79
Hello Time  2 sec  Max Age 20 sec  Forward Delay 15 sec
Aging Time  20


修改优先级:

设置不是根网桥的交换机使其变为根网桥,优先级只要小于32768即可。

Switch#configure terminal
Switch(config)#spanning-tree vlan 1 priority ?
<0-61440>  bridge priority in increments of 4096
Switch(config)#spanning-tree vlan 1 priority 4096

再次查看生成树协议此时已经变成root的根网桥了

Switch(config)#do show span
VLAN0001
Spanning tree enabled protocol ieee
Root ID    Priority    4097
Address     0002.1636.7784
This bridge is the root
Hello Time  2 sec  Max Age 20 sec  Forward Delay 15 sec

Bridge ID  Priority    4097  (priority 4096 sys-id-ext 1)
Address     0002.1636.7784
Hello Time  2 sec  Max Age 20 sec  Forward Delay 15 sec
Aging Time  20


STP端口状态:

1、桥协议数据单元(BPDU):

        交换机之间使用BPDU来交互STP信息,默认每2秒发送一次,使用组播地址01-80-c2-00-00-00 发送BPDU。交换机是二层设备使用mac地址组播,也有三成交换机。

2、STP端口状态:

交换机端口的5种STP状态。

        转发 --> 发送和接受用户数据

        学习 --> 构建网桥表

        倾听 --> 构建活动拓扑

        阻塞 --> 只接收BPDU

        禁用 --> 强制关闭


虚拟局域网VLAN


        VLAN(Virtual Local Area Network)即虚拟局域网,是一种通过逻辑层面将局域网划分成不同网段的技术。

VLAN的优点:

        1、广播控制

        2、提高了安全性

        3、提高了带宽的利用率,降低了延迟

        4、灵活性和可扩展性

VLAN的分类:

        1、基于端口划分静态VLAN,把每个端口划分到不同的VLAN里面。

        2、基于MAC地址划分动态VLAN,需要搭建成员资格策略服务器VMPS动态根据所接入PC的MAC地址分配给相应的VLAN。


VLAN常用命令:

        交换机中的两台电脑如果在不同的VLAN中,由于广播域是被分割的所以两台电脑是ping不通的,如果在同一个VLAN中是可以直接ping通的。如果两个vlan中的电脑要通过路由器转发进行通信,这两个vlan要在不同网段中。

设置主机名:

Switch(config)#hostname S1

查看IP地址:

S1#show ip interface brief

查看VLAN:

S1#show vlan

支持的VLAN数:

S1(config)#vlan ?
<1-1005>  ISL VLAN IDs 1-1005

进入VLAN:

S1(config)#vlan 2

进入到VLAN里面可以改VLAN名称:

S1(config)#vlan 2
S1(config-vlan)#name vlan2

查看VLAN:

active 表示激活状态

S1(config-vlan)#do show vlan

VLAN Name                             Status    Ports
---- -------------------------------- --------- -------------------------------
1    default                          active    Fa0/1, Fa0/2, Fa0/3, Fa0/4
                                                Fa0/5, Fa0/6, Fa0/7, Fa0/8
                                                Fa0/9, Fa0/10, Fa0/11, Fa0/12
                                                Fa0/13, Fa0/14, Fa0/15, Fa0/16
                                                Fa0/17, Fa0/18, Fa0/19, Fa0/20
                                                Fa0/21, Fa0/22, Fa0/23, Fa0/24
                                                Gig0/1, Gig0/2
2    VLAN0002                         active
1002 fddi-default                     active
1003 token-ring-default               active
1004 fddinet-default                  active
1005 trnet-default                    active

image.png

划分VLAN:将某个接口划分到某个vlan里面:

S1(config)#vlan 2        #进入vlan2
S1(config-vlan)#int f0/2        #进入接口2
S1(config-if)#switchport access vlan 2  #将这个接口划分到vlan 2中

        这样就把vlan2划分到vlan2里面了,然后使用 S1(config-if)#do show vlan 查看就可以看到接口2被划分到vlan2中了。

删除VLAN:

        删除vlan之前最先移除接口再删除vlan,如果直接删除vlan的话vlan里面的接口会一起删除,除非要手动添加才可以。

S1(config)#int f0/2
S1(config-if)#no switchport access vlan 2    #将接口2移除vlan2
S1(config-if)#no vlan 2            #删除vlan2

此时再用do show vlan 已近看不到vlan2了。

如果直接删除vlan没有移出vlan里面的接口可以再进入到端口重新将接口划分到其他vlan:

S1(config)#int f0/2
S1(config-if)#switchport access vlan 1
S1(config-if)#do show vlan

同时划分多个端口:

方法一:划分连续的端口

S1(config)#int range f0/2-10
S1(config-if-range)#switchport access vlan 2
S1(config-if-range)#do show vlan

方法二:划分不连续的端口

S1(config)#int range f0/19,f0/20,f0/21
S1(config-if-range)#switchport access vlan 3
% Access VLAN does not exist. Creating vlan 3 #不存在则创建
S1(config-if-range)#do show vlan


VLAN trunk


        在多台交换机上划分vlan。将不同交换机的接口划分在同一个vlan里面让不同交换机的同一个vlan可以相互通信。交换机与交换机之间通信要有协议来交换vlan标记,交换机与交换机之间要配置 trunk 链路。

访问链路与中继链路:

        访问链路access是计算机与电脑之间通信的链路,只能承载一个vlan的数据传输链路,中继链路trunk是交换机与交换机之间通信的链路,能够橙子啊多个vlan的数据传输链路。

中继接口的模式:

        开启:(on)将端口设置为永久中继模式(switchport mode truck)

        关闭:(off)将端口设置为永久非中继模式(switchport mode access)

        期望:(desirable)让端口主动试探将链路转变为中继链路(switchport mode dynamic desirable)。

        自动:(auto)使端口被动的将链路转变为中继链路(switchport mode dynamic auto),交换机的默认模式。

查看链路状态:

S1#show interfaces fastEthernet 0/1 switchport


设置trunk:

        如图所示的配置默认相互之间是ping不通的,两台交换机之间需要建立 trunk,至少有一台交换机配置成主动模式的 desirable 。

image.png

设置端口为主动模式:

S1(config)#int f0/24
S1(config-if)#switchport mode dynamic desirable

查看端口状态:

S1#show int f0/24 switchport
Name: Fa0/24
Switchport: Enabled
Administrative Mode: dynamic desirable

过一会经过交换机学习之后就可以用1.2去ping通1.4了。


VTP协议


VLAN中继协议VTP:

        如果有多台交换机就可以通过将一台交换机设置为服务器其他交换机设置为客户端,这样配置完服务器后客户端就会自动从服务器更新vlan信息,但是端口的划分还需要手动添加到不同的vlan当中。

VTP模式:

        服务器模式:所有交换机的默认模式,只有处于服务器模式的交换机才能在VTP域中添加、创建和删除VLAN;在服务器模式下的交换机中对VLAN所作的任何修改都将被通告给整个VTP域。整个VTP域最少需要一台服务器。

        客户端模式:接收来自VTP服务器的信息。

        透明模式:处于透明模式的交换机不加入VTP,只是转发VTP通告让其他交换机获取服务端的VLAN数据。

交换VLAN信息前提:

        1、两台交换机的管理域名相同

        2、其中一台交换机被配置为VTP服务器

        3、如果使用VTP密码这个密码要相同

image.png

VTP服务端配置:

S1(config-if)#int f0/24
S1(config-if)#switchport mode dynamic desirable  #将24端口设置为主动模式
S1(config-if)#exit
S1(config)#vtp mode server     #设为服务模式
S1(config)#vtp domain sc       #设置管理域名
S1(config)#vtp password 123    #设置密码
S1(config)#do show vtp status  #查看服务器状态

划分服务端vlan:

S1(config)#vlan 10
S1(config-vlan)#int f0/1
S1(config-if)#switchport access vlan 10
S1(config-if)#exit
S1(config)#vlan 20
S1(config-vlan)#int f0/2
S1(config-if)#switchport access vlan 20

VTP客户端配置:

S2(config)#vtp mode client
S2(config)#vtp domain sc
S2(config)#vtp password 123

        设置完成后查看vlan就可以看到客户端已经学习到了服务端的vlan划分,各个接口的划分还需要手工添加,可以根据实际情况来操作。添加完接口后相同vlan之间就可以跨交换机ping通了。


VLAN间路由


        多个交换机的vlan之间通信需要有路由器,交换机跟路由器之间连接的线路也要开启trunk,因为交换机的vlan信息也要传给路由器来处理。

image.png

配置连接路由器的交换机接口:

S2(config)#int f0/3
S2(config-if)#switchport trunk encapsulation dot1q  #加入IEEE802.1q协议,默认已有,不用敲
S2(config-if)#switchport mode trunk

设置PC网关:

        如图将PC0、PC2的网关设置为192.168.1.1,将PC1、PC3的网关设置为192.168.2.1。

路由器配置:

        路由器要做两个vlan的网关,但是一个接口无法配置两个ip,所以要在子接口(也叫逻辑接口)上配置ip,逻辑接口只用于本地管理,端口名可任意。int f0/0.10  后面的10就是子接口的名称。

Router(config)#int f0/0
Router(config-if)#no shutdown
Router(config-if)#int f0/0.10
Router(config-subif)#encapsulation dot1Q 10
Router(config-subif)#ip address 192.168.1.1 255.255.255.0
Router(config)#int f0/0.20
Router(config-subif)#encapsulation dot1Q 20
Router(config-subif)#ip address 192.168.2.1 255.255.255.0

        配置好之后相互之间就可以ping通了,实际接口上并没有配置ip但是依然可以相互ping通,因为两个vlan在同一个接口是直连路由。


交换机绑定MAC地址


        绑定MAC地址只适合有固定设备的情况下。

手工绑定:这种方法最准确,可以定位,但是费力,效率差。

S1(config)#int f0/1
S1(config-if)#switchport mode access #设置交换机接口为非中继模式,关闭此接口的trunk
S1(config-if)#switchport port-security #进入接口安全模式
S1(config-if)#switchport port-security mac-address 00-90-F5-10-79-C1 #绑定MAC地址
S1(config-if)#switchport port-security maximum 1 #让端口只允许一个MAC地址接入
S1(config-if)#switchport port-security violation shutdown #如果超过一个则关闭这个接口,需要手工 no shutdown 开启

动态绑定:只是限制端口上网的设备数,无法定位。

S1(config)#int f0/1
S1(config-if)#switchport mode access #关闭此接口的trunk
S1(config-if)#switchport port-security
S1(config-if)#switchport port-security mac-address sticky
S1(config-if)#switchport port-security maximum 2 最先接入的两台设备绑定MAC地址
S1(config-if)#switchport port-security violation shutdown #如果超过两台则关闭接口