- 交换机通过MAC地址表转发数据帧
- MAC地址表包括 vlan 接口 mac地址。通过读取帧源MAC地址学习的
- mac表有效时间默认300秒
- 数据转发,通过读取mac表目标mac,进行转发,精确匹配目标mac,接口,vlan信息。不匹配就在 同vlan内泛洪(未知单播泛洪)另外组播和广播也泛洪。
-
设计不良网络的问题
- 不受控制的失效域
- 巨大的广播域
- 大量的未知MAC单播泛洪
- 不受控制的组播流量
- 管理和支持任务艰巨
- 可能的安全弱点
典型广播应用:ARP
可伸缩的网络编址
- 在相邻的块里分配IP,为了日后方便汇总
- 每个VLAN 分配一个子网
互联技术
technology | use |
fast ethernet | 连接终端用户设备到交换机 |
gigabit ethernet | 连接分布层交换机,高使用率的服务器 |
10-gigabit ethernet | 高速交换到交换链路,骨干 |
etherchannel | 高速交换到交换链路,有冗余的骨干 |
###############################################################################
vlan设计原则:安全;可伸缩;易管理;实用
端到端vlan
- 用户被归类到不依赖物理位置的vlan
- 如果用户在园区网内移动,他的vlan身份保持一样
本地vlan
- 一般被限制在一个机架上
本地vlan好处:
- 确定性的传输流量
- 活动的冗余路径
- 高可用
- 有限的失效域
- 可伸缩设计
vlan范围
vlan range | use |
0,4095 | reserved for system use only |
1 | cisco default,不能删 |
2--1001 | for ethernet vlans |
1002--1005 | cisco default for FDDI and token ring |
1006--4094 | ethernet vlan only,在模型旧平台无法实用 |
vlan 配置
config t
vlan 3
name test
exit
开启vlan
int f0/1
swi mode acc
swi acc vlan 3
将接口加入vlan
sho vlan
sho int
查看
实例:
SW1:
vlan 10
int f0/10
swi mode acc
swi acc vlan 10
int f0/5
swi mode acc
swi acc vlan 10
SW2:
vlan 20
int f0/5
swi mode acc
swi acc vlan 20
int f1/0/10
swi mode acc
swi acc vlan 20
此时,R1和R2是可以通信的。因为vlan不是封装在数据帧上,而是交换机的配置,数据从R1进来打上vlan10tag,从F0/5出去,到达SW2后的数据帧并不包含vlan信息,从sw2 F0/5进 就打上f/5的vlan标记,然后根据目标MAC,从本地f1/0/10转发出去。
###########################################################################################
trunk
- 特别为多个vlan的内部通信而开发
- 把一个特定的标识符在每个帧里
- 二层功能
以太网帧结构并不包含封装vlan的位置
目标mac | 源mac | 类型 | 数据 | 校验 |
所以需要用trunk自己的协议(ISL ,802.1q),主要为vlan打标记
ISL | 802.1Q |
思科私有 | 业界标准 |
重新封装 | 插入标记 |
协议独立 | 协议依赖 |
把原有帧封装在新的帧里 | 在帧头插入新的字段 |
ISL封装
思科私有
支持PVST
使用重封装实现
不修改原有的帧
在原有数据帧的头之前封装28字节的ISL头,在原有数据帧尾部封装4字节的ISL校验
ISL head 28Byte | ethernet frame | CRC 4 Byte |
802.1q封装
IEEE 标准
在原有的帧上插入一个 4 个字节的标记
附加的标记包括优先级字段(802.1q)
属于本帧vlan的帧不打标记
支持思科电话
目标 | 源 | tag | LEN/type | data | FSC |
0x8100 = 802.11
PRI用于qos
PRI后的1位默认是 0 (0表示以太。1表示令牌环)
802.1q本帧vlan:native vlan(默认是vlan1 ,native vlan 不打标记)
native vlan的帧在trunk链路上不打标记。推荐不要使用!!
配置命令
接口下
swiport trunk encapsulation dot1q
swiport mode trunk
查看 show interface trunk
sho int f0/5 swi
BPDU在经过trunk链路的时候,会带vlan tag,扩展system-ID(由优先级 vlanID mac组成)等于vlan tag,这两个信息必须保持一致,表明该BPDU是为哪个vlan服务的。
在一个trunk接口,收到的BPDU如果没有打vlan标记,那么此BPDU必须和本地的native vlan一致。若不一致,在检查BPDU时就报错,并把接收BPDU接口的native vlan和接收到BPDU的扩展system-ID相同的vlan置于 inconsistent 状态,并且该两个vlan都被block
总结上述知识点:
- vlan作用,分割广播域
配置:全局下 vlan x
接口加入vlan
- trunk
封装 ISL 重新封装 30个字节
802.1q 以太网帧插入字段 4个字节
802.1q 的本帧vlan(ISL没有本帧vlan的概念)通过trunk不打标记。
native vlan 配置在两台交换机的不同vlan时不通信,是因为vtp block了,关闭vtp ,建议不要使用native vlan
- trunk 对管理流量是透明的。因为管理流量(VTP,DTP,CDP,PAGP,LACP,UDLD)打上的是802.3的封装
交换机管理流量是通过vlan1 传递的,当使用命令 swiport trunk allow vlan2-4094 过滤掉vlan1 的流量时,用户数据流量肯定会被过滤掉。但是针对不同的管理流量有不同的处理方法。其中 STP 是被过滤的,DTP,PAGP,LACP是允许通过的。VTP 通过与否是开启VTP协议有关,若启用(模式为server client)也通过,若关闭VTP(transparent模式),是不通过的。
在经过trunk时,交换机的管理流量如何封装的问题:常见的VTP,DTP,CDP,PAGP,LACP,UDLD等,这些都不是基于vlan工作的,而是为整个交换机工作的,都是采用802.3的封装,都不会打802.1q的标记,也没必要打,所有可以理解为与trunk无关,各个协议都由802.3里面的2字节协议类型来区分上面承载了什么流量。通过抓包可以验证。
TRUNK配置(两种方法)
1,手动(推挤):swi trun encap ISL/dotq
2, DTP动态协商
DTP:
- 前身是DISL--dynamic ISL
- 都是思科私有,用于协商trunk链路
- trunk
on 默认发送DTP
off 用命令,switchport nonegotiate 关掉DTP
- dynamic
auto 默认不发送OTP,但是收到DTP后可以回复,被动协商
desirable 默认主动发送DTP,主动协商
- access 不发送DTP,不写上trunk (接口加入vlan时,swi mode acc的原因)
DTP 思科私有 | send 发送DTP报文 | sresponse 相应DTP报文 |
turnk | yes | yes(可用neonegotiate关闭) |
access | NO | NO |
desirable | yes | yes |
auto | no | yes |
switch(config)#inter f5/8
switch(config-if)#shut
switch(config-if)#swi tru encap dot1q
switch(config-if)#swi mode trunk
switch(config-if)#swi trunk native vlan 99--建议不启用,或配给不使用的vlan
switch(config-if)#switchport nonegotiate---关闭DTP
switch(config-if)#switchport trunk allowed vlan 1,5,11,1002-1005 (控制trunk链路允许通过的vlan)
switch(config-if)#swi trunk allowed vlan remove 10,20(控制trunk链路排除哪些vlan)
switch(config-if)#no shut
###################################################################################
如图,结局 A B节点都使用vlan 100-200穿过SW1 SW2;SW1 SW2如何区分两个节点的流量
A节点发送数据到SW1打vlan 100标记,到达SW1后再一层vlan标记传给SW2,然后解封最外层vlan标记,发给对端A节点。同理B节点互传。即用第二层vlan标记区分。
Q1Q技术
A节点:正常配置trunk
swi tru enca dot1q
swi mode trunk
SW1:对应A接口
switchport mode dot1q-tunnel
switchport access vlan 10---打第二层vlan标记
###########################################################################################
VTP协议 用vtp传递vlan配置
vtp排除3个步骤
1,看trunk是否启用 sho interface trunk
2, 看是否在一个vtp域,sho vtp stat
3, 看vtp pass是否一致,sho vtp pass
在相同域内同步vlan配置信息
只在 trunk 端口发送公告
密码必须一致
当vtp域名不同时,DTP也不能协商成trunk
VTP 操作:
VTP 公告使用组播帧发送
VTP server 和 client 通过最新的修正版本号(revision number)来同步
VTP 公告每 5 分钟发送一次,或当发生改变的时候
VTP 通告:
3种报文
汇总通告报文
子集通过报文
请求通过报文
5分钟,使用汇总报文通过,包括版本号,域名,认证消息
当收到汇总报文中的版本号比自己新,就去发送请求报文,然后对端回复子集报文(包括真正的vlan信息)。
VTP 模式
transparent(透明模式)
创建,删除,修改vlan
不发送,但转发公告
不同步vlan配置
vlan配置信息保存在config里 --show run可以看到
server
创建,删除,修改vlan
发送,转发公告
同步vlan配置
vlan配置信息保存在flash的vlan.dat里
client
不能创建,修改删除vlan
发送,续传公告
同步vlan配置
vlan配置信息保存在flash的vlan.dat里
vtp配置
vtp domain xx
vtp mode server/client/trans
vtp password xxx
验证
sho vtp status
sho vtp passwork
局域网新接入交换机,如果网络配置了vtp,要保证新接入交换机的 修订版本号=0
方法1,vtp mode transparents
方法2,修改域名,与现有网络域名不同。
特例:当两台交换机的修订版本号相同,同时各自所包含的vlan配置信息不同时,谁也不向谁同步
#########################################################################
VTP 修剪
- 通过减少不需要的泛红流量来使带宽更有效率
- VTP修剪会被同步,所以只在一台交换机配置就可以
VTP修剪实验:
R1属于vlan10
R2属于vlan20
SW1: SW2:
vlan 10 vlan 10
vlan 20 vlan 20
int f1/10 int f0/10
swi mode acc swi mode acc
swi acc vlan 10 swi acc vlan 20
int f0/5 int f0/5
swi trun en dot1q swi trunk en dot1q
swi mode trun swi mode trunk
sho int f0/10 保证是up状态
vtp pruning sho int trunk f0/5对应vlan1 vlan20
sho int trunk 检查 F0/5对应vlan1 vlan10
###########################################################################################
私有vlan
用来控制同一个vlan里的接口不能互通
例如小区宽带,一个小区同属一个vlan,为保证安全互相隔离。若为每个用户划分vlan,vlan还对应一个IP,这样设计不合理
access switch:protected port
保护端口只能和非保护端口通信;保护端口之间不能通信;
保护端口在跨交换机情况下不能生效。
配置:接口下 switchport protected
私有vlan:分为主vlan(primary vlan)和辅助vlan(secondary vlan);辅助vlan分为isolated vlan和 community vlan。
属于相同isolated vlan的所有接口都不能通信
属于相同community vlan的所有接口可以通信
isolated vlan 和 community vlan之间不能通信,但都可以和主vlan通信
PVLAN 接口类型(3个接口分别对应主vlan 隔离vlan 团体vlan)
- isolated 隔离vlan 隔离端口
- promiscuous主vlan 混杂端口
- community 团体vlan 团体端口
配置
SW1:
vtp transparent
vlan 201
private-vlan isolated
vlan 100
private-vlan primary
private-vlan association add 201
查看:
sho vlan private-vlan
sho vlan private-vlan type
关联接口:
int range f0/1 - 2
switchport mode private-vlan host
switchport private-vlan host-as sociation 100 201
查看:sho int f0/12 switchport
实验
vtp mode transparent
vlan 201 创建隔离vlan
private-vlan isolate
vlan 202 创建团体vlan
private-vlan community
vlan 100 创建主vlan,并关联辅助vlan
private-vlan primary
private-vlan associate 201,202
int f0/24 设置混杂端口
switchport mode private-vlan promiscuous
switchport private-vlan mapping 100 201,202
int range f0/1 -2
swi mode private-vlan host
swi private-vlan host-associationg 100 202
int range f0/3 -4
swi mode private-vlan host
swi private-vlan host-ass 100 201
##################################################################################
实验
PVLAN TRUNK(见实验手册)
################################################################################
两台交换机网线直连,两台交换机之间不同vlan是可以通信的,直连线并没有起trunk。因为vlan是交换机的属性并不是数据包的,不会随数据包传递出去。
这是去凤凰网(望京)时的面试题。(PS~~那个面试的技术简直装逼到要上天。MDZZ,傻X)