10 回答
当臣民需要穿越另外一个国家(穿越另外一个二层交换网络),看清楚了,是另外一个国家,而不是一个郡国。这个国家的国王有命令:不管外来臣民原来穿什么马甲,黄马甲、白马甲,到我的地盘一律给我在外面套上灰马甲(Service VLAN),一直到离开朕的国家,才可以脱掉灰色马甲。
-------- 原始答案-------
先来回答这个问题,交换机Trunk 口,俗称的主干端口,用于交换机之间的互联,在该主干端口上可以传输任意VLAN的帧,在传输的过程中,需要保留每个VLAN帧的802.1Q,这样对端的交换机可以依据802.1Q里的 VLAN ID值来决定,接收到的帧属于哪个VLAN,便于进一步的处理。
以太网帧从进入交换机的那一刻,就会穿上一个802.1Q 马甲( 缺省情况下,VLAN 1 不需要,至于为什么,接下来会详细阐述),并且会一直穿着这个马甲,直到最终从交换机的端口离开交换网络(有例外情况,接下来会阐述)。
一句话,802.1Q马甲从进入交换网络一直不离身,交换机可以依据802.1Q里的 VLAN ID值来在特定VLAN ID的 MAC Address Table 完成交换。
进一步的阅读:
VLAN 给很多初学网络的读者造成了很大的困扰,写这篇文章帮助大家理清VLAN与交换机的概念。
二层交换机端口类型:
Access Mode
接入端口,用于接入主机、服务器、打印机、IP电话等接入设备,帧进入交换机端口,穿上802.1Q马甲。离开交换机端口,脱掉马甲,毕竟马甲是属于交换机的财产,接入设备(用户电脑)一般也不知道该马甲派何用场,所以不会自己穿马甲,交换机帮它穿上马甲,离开时,交换机帮它脱掉。
802.1Q马甲嵌入在以太帧中的位置及格式:
Trunk Mode
一般用于交换机之间的互联端口,也有例外,有些服务器物理接口可以发送、接收 802.1Q帧,所以相连的交换机端口也需要配置Trunk Mode。
还有一种跑在服务器上vSwitch,一种软件交换机,也同样需要连接服务器的交换机端口配置Trunk Mode,因为vSwitch需要支持多VLAN,自然需要配置一个支持多VLAN传输的Trunk 端口。
802.1Q Tunnel Mode
对于初学者,这是最难以理解的端口类型。举个例子:运营商给某公司提供二层接入,用户的802.1Q帧进入运营商交换机端口,该端口配置为802.1Q Tunnel Mode,交换机就会在用户802.1Q字段前加上属于运营商的802.1Q,于是就有了两个802.1Q,俗称 QinQ。
为什么要QinQ?有啥好处?
可以将用户VLAN MAC Address Table 在QinQ处隔离,避免用户的MAC Address Table 冲击运营商的MAC Address Table。
同时目前802.1Q内VLAN只有12位,最大4096,如果不采用QinQ,一个客户使用一个VLAN,那最大只能支持4096个客户。而采用QinQ 则可以提供 4096 * 4096 = 种选择。
Native VLAN
土著,如果trunk 端口 Native VLAN= 1,则 VLAN 1 帧途径该trunk 端口,则可以不需要穿802.1Q马甲,因为对端交换机也知道该潜规则,到达对端再穿上马甲也不迟。当然,一直穿着马甲更没有什么问题。
Cisco Voice VLAN
熟悉cisco 交换机的读者,一般都见识过 access mode 端口可以配置两个VLAN,一个用于电脑的Data VLAN,一个用于IP电话的Voice VLAN,如何分辨它们呢?
交换机对于Data VLAN,电脑的进出流量在该端口上都是没有穿马甲的,交换机知道该潜规则,知道它属于Data VLAN,会帮它穿上黄马甲。
而对于Voice VLAN的流量则需要在IP电话上先穿上蓝马甲,毕竟IP 电话机可以认识802.1Q,并且可以正确处理,交换机会保留这个蓝马甲。
通过以上方法,可以将数据、语音流量分离开来,达成了预期的目标。