VLAN
入门教程用最简单的拓扑、场景说明
VLAN
的核心过程
.
案例的拓扑是一个局网里有六台主机
,
两个
VLAN,
场景包括
VLAN
配置命令,
Ping
及
ARP Request
是怎么被交换机
tagging
、洪泛、转发、
untagging
。案例有两个版本:图解、仿真。本文是图解版本,从仿真截图,并加标注,介绍主要步骤的演变。
仿真版本
显示
VLAN
的整个过程,可以过程配置
-
数据包
-MAC
表之间的因果关系。
-
背景
:在局网内用交换机连接主机,有许多好处:交换机接口多,连线容易,若连接几个交换机,局网内的主机数量可以扩充到千百以上。缺点是洪泛影响大、保密性不够、工作组配置麻烦。
VLAN (
虚拟局网
)
解决了这些问题,被广泛的使用。要进一步了解局网、洪泛、交换机,请见参考资料。
-
VLAN
原理
:
VLAN
用配置交换机接口的手段把局网划分几个较小的局网,称为虚拟局网
(Virtual LAN)
。它主要的工作是:数据包在进入
VLAN
时,交换机根据出入口接口
(access link)
配置,把数据包加上一个
VLAN
标签
(tagging),
然后根据(数据包
MAC
地址,
VLAN tag
)在
VLAN
内洪泛、转发,经主干连线
(trunk link)
抵达目的主机连接的交换机
,
出×××换机把
VLAN
标签除掉
(untagging)
,然后把数据发送到目的主机。这段文字有些抽象、拗口,看图解、仿真能形象的看的清楚些。
-
预备知识
:交换机、
ARP.
1.
拓扑:
在一个局网里,有六台主机
H1~H6
连接到两个交换机
S1, S2
。
H1, H5, H6
在
VLAN 2, H2, H3, H4
在
VLAN
。
VLAN 2
用蓝色代表,包括
H1, H5, H6. VLAN 3
用红色代表,包括
H2, H3, H4
。
交换机连接到主机的接口叫进出口链路
(access link),
用来划分
VLAN
。例:主机
H1
连接到交换机
S1
的
F0/1
接口,若把
F0/1
设为
VLAN 2
的
access link
,
H1
就属于
VLAN 2.
。
交换机之间连线的接口叫主干链路(
trunk link
),
用来传送所有
VLAN
的数据包。图中
S1
的
F0/7
接口
, S2
的
F0/7
接口都是
trunk link
。
地址以
<
地址类别
>.<
主机
>
表示。例:
H1
的
IP
地址是
IP.H1, H1
的
MAC
地址是
MAC.H1
。
【注】这个拓扑是从
VLAN Basic仿真
截图而来,仿真显示
VLAN
的整个过程,可以看到
配置命令
-
数据包传送
-MAC
表之间的因果关系,
用户能控制时间轴教程数据包内容。
2.
配置
VLAN access link
:交换机
-
主机。
H1, H5, H6
在
VLAN 2 (
蓝色
)
,
H2, H2, H4
在
VLAN 3
(红色)。
交换机连接到主机的接口是
access link
,配置
VLAN
时先配置交换机的
access link
。
图中交换机
S1
的命令窗口显示配置
S1
的
F0/1
接口的命令:
-
配置
VLAN 2:
把
VLAN 2
添加到
VLAN
数据库:
vlan database; vlan 2; apply;
-
配置
access link:
把连接到主机
H1
的接口
F0/1
设为
VLAN 2
。
Interface f0/1; switchport access vlaan 2.
3.
配置
VLAN trunk link
(主干线)
:
交换机
–
交换机
接口
交换机与交换机之间的接口是
trunk
。这案例中,
S1
的
F0/7
接口连接到
S2
的
F0/7
接口,这两个接口应设为
trunk llink
。图中命令窗口显示:
-
把
F0/7
的状态设为
trunk: switchport mode trunk; interface f0/7;
-
把
F0/7
设为
trunk: switchport trunk allowed vlan all
4. H1
发送
ARP Request
查询
H6
的
MAC
地址
(VLAN 2)
H1
要
ping H6,
看看它是否在线。但不知道
H6
的
MAC
地址
,
就发送
ARP Request
查询。
发送
ARP Request
后,
H1
的
ARP
表添加了一个条目
(IP.H6, Incomplete),
,表示正在查询
H6
的
MAC
地址。
这时的
ARP Request
没有
VLAN tag.
5.
交换机
S1 tagging,
把
VLAN 2
的标签插入
ARP Request
-
S1
接口
F0/1
收到
ARP Request
时,把一个
VLAN 2
的标签插入
ARP Request
,这就是
VLAN tagging
。交换机转换数据包时,用
MAC
及
VLAN tag
来决定怎么转发、洪泛。
-
S1
收到
ARP Request
时,
MAC
表是空的,
S1
把
ARP Request
的源
MAC
地址
(MAC.H1)
及
VLAN tag (VLAN 2)
作为一个新条目
(MAC.H1, 2)
添加到
MAC
表。这叫做发现
MAC
,详情见参考资料。
6. H1
发送的
ARP Request
在
VLAN 2
洪泛
,
离开
VLAN 2
时被
untagging
送往
H5, H6
。
H6
收到后发送
ARP Reply
。
l
当
S2
收到
ARP Request
时,用其目的
MAC
地址及
VLAN ID
查索
MAC
表,没找到,无法转发,就把它洪泛到
F0/5, F0/6
。
S2
先把
VLAN
标签拿掉,然后才发送,
数据包离开
VLAN
时,不再有标签了,这就是
VLAN untagging
VLAN tagging, untagging
的功能使得主机无需知道
VLAN,
不必做任何配制。例:
300
个主机在局网里用三个交换机相连接,被划分为
5
个
VLAN,
网关只需配置三个交换机。而
1
不是配置
300
台主机。
l
H6
收到
ARP Request
后,
发
送
ARP Reply
回
复
H1
。
ARP Reply
被
S2 tag
为
VLAN 2,
送往
S1
。
7. H1
发送
Ping, H4
发送
ARP Request
H1
收到了
H6
的
ARP Reply
后
,
更新了
ARP
表。现在
H1.
知道了
H6
的
MAC
地址
,
可以
ping H6
了。
同时
H4
也要
ping H2.
但不知道
H2
的
MAC
地址
1,
就发送
ARP Request,
在
VLAN 2
查询
H2
的
MAC
地址。
图中显示
ping
和
ARP Request
都还没有进入
VLAN,
它们还没有被交换机
tag.
8. Trunk
上同时有
VLAN 2, VLAN 3
的数据包在传送。
Ping
被
S1 tag
后
,
转发到
trunk link
接口
F0/7,
送往
H6
。
.ARP Request
被
S2 tag
后
,
转发到
trunk link
接口
F0/7,
送往
H2
。图中可见
Ping
和
ARP Request
分属
VLAN 2, 3,
答同时在主干上传送。
参考资料:
[a]
交换机怎么转发、洪泛数据包,发现新地址。
Visualland.net Switch_VLAN 仿真目录
(
Switch VLAN overview
)
, 交换机转发、洪泛 , 交换机发现MAC
谢希仁
计算机网络第五版
3.5.2
在数据链路层扩展以太网
Wikipedia: Network Switch. http://en.wikipedia.org/wiki/Network_switch
[b] VLAN
Visualland VLAN 仿真目录
谢希仁
计算机网络第五版
3.5.2
在数据链路层扩展以太网
RFC 3069 VLAN Aggregation for Efficient IP Address Allocation http://www.faqs.org/rfcs/rfc3069.html
Wikipedia: Virtual LAN http://en.wikipedia.org/wiki/Virtual_LAN
Wikipedia: IEEE 802.1Q http://en.wikipedia.org/wiki/802.1q
[c] ARP
Visualland ARP仿真目录, ARP Basic仿真, ARP switch仿真.
谢希仁
计算机网络第五版
4.2.4 b
地址解析协议
ARP
RFC 826 http://www.faqs.org/rfcs/rfc826.html