VLAN
VLAN的概念以及定义
使用VLAN的原因:
-
隔离广播域(所有连接交换机的设备都在同个网络下),导致广播泛滥、占用带宽。
-
方便对于网络进行管理
-
安全防护
-
防止发生故障时全部网络瘫痪
vlan:
二层网络上的隔离技术
一个vlan代表一个广播域
跨VLAN通信:需要用到三层设备(如:三层交换、路由)
VLAN优点:
缩小广播域范围(泛洪小:减少泛洪占用的网络资源)
不同VLAN相互隔离(同部门、不同部门的访问)
VLAN标识
数据包中就有所带所属VLAN的标签
2^12 = 4096
交换机工作原理:
按照MAC地址表进行转发:VLAN与特定MAC地址相绑定(即交换机为每个VLAN都创建了一个MAC地址表项)
VLAN10发出的数据包只会发送到VLAN10所在网络
交换机的接口:
-
access: 通常连接PC、server等终端设备,只允许一个VLAN通过.(就是这个接口的PVID),相同则通过,不相同则丢弃。
通过这个接口发送数据时,则去掉该VLAN的标签
-
Trunk: 允许多个VLAN流量通过。
- 接收数据
接收到没有标签的数据帧,则打上自己的PVID的标签
接收到携带标签的数据帧时:检查tag标签,若该标签在允许通过的列表中则通过,反之亦然。
- 发送数据
通过Trunk接口向外发送数据时,同上检查tag, 查看允许通信列表来决定是否通过。
如果在允许通信列表中且这个tag标签与这个接口的PVID相同,则会把这个tag去掉,不一样则直接发送。
-
Hybrid:允许多个VLAN通信
-
接收数据
与Trunk相同
-
发送数据
同Trunk相同
不同点:可以选择将发送带tag的数据包,可以剥掉它的VLAN标记,让它不带tag发送。
-
VLAN 实施
(还有3种:MAC分配、子网分配、策略分配)
接口的VLAN分配:
-
交换机上必须拥有需要转发的VLAN
-
终端设备与交换机的接口设置PVID(多个接口时可设置端口组进行配置)
-
在通过多个VLAN的端口设置 trunk或hybrid
华为VLAN实例:
略
思科VLAN实施:
tip:端口安全只能用access口
交换机与交换机之间的端口不能有任何一个端口为access,也不能两个端口同时为Auto,其它情况都可。(如果需要允许让多个VLAN通信)
- 创建VLAN
- 思科没有同时创建VLAN的命令,一个一个的创建
- 查看VLAN
- do show vlan brief
- (辅)更换VLAN名称
- 进入vlan后(config-vlan) name stuff
- 分配VLAN
- 进入端口后(config-if) swi mo acc
- swi acc vl 10
- 分配玩VLAN后,进行设备自己进行协议,当绿灯亮起时即可正常使用
- 交换机间的端口设置
- 在华为中若想让多个VLAN通信,必须都设置为trunk
- 在思科中:由于上面提到的:只要交换机间的端口不能有任何一个端口为access,也不能两个端口为Auto,其它模式都可。
- 一般直接都设置为Trunk模式,不必搞复杂
-
-
设置完成后 do show int trunk
- 查看端口模式和状态以及可以通过的VLAN
-
- 设置完成后即可VLAN内即可正常通信
端口组(批量对接口进行操作)
s2(config)int range fa0/1-10 // 进入fa0/1 -- fa0/10的端口为一个端口组
s2(config-if-range) swi mod acc
s2(config-if-range) swi access vlan 10
s2(config-if-range) do show vlan brief // 查看得这十个接口都被分配到了VLAN10
本征VLAN
中继接口的VLAN。
与华为的PVID类似:
收到或发送与本征VLAN相同时都不会打上标签
一个链路上的本征VLAN必须完全一致。(不一致时,会报错误原因:Native VLAN mismatch.
设置本征VLAN的命令
MS1(config-if) int g0/1-2
MS1(config-if-range) swi tru native vlan 30
MS1(config-if-range) end // 输入end,可以回到特权命令视图下(#)
MS1 #
// 查看下本征VLAN
MS1 # show interfaces tru
传统的VLAN间的通信
原理:
PC1 ping PC2 , PC1会封装数据帧,到第二层时需要封装源目MAC地址,PC1封装时比较发现这是一个跨网段的通信。
发现是跨网通信,则会把数据发送到自己的网关,则会把目的MAC地址改为网关的MAC地址,本例网关就是AR1 g0/0/0。
交换机LSW2知道PC1这边发来的数据是设置为VLAN10的接口,于是打上了VLAN10的标签,然后会根据同VLAN特性(VLAN内部通信)自己发送到所要去的VLAN10内的网络,因为G0/0/0口也是VLAN10。
LSW2会发送携带标签VLAN10的数据发送给LSW1,然后发给AR1。AR1发现数据包里的MAC地址的确是自己,选择收下。收下后进行三层转发(通过查找路由表转发).
查找路由表后知道去往VLAN20网段的地址该往G0/0/1走。
发出不携带标记的标准以太网数据帧,源目MAC地址发生改变。(源MAC地址为AR1,目的MAC地址为PC2)
到达G0/0/2打上VLAN20的标签,再发送给属于VLAN20的PC2。
注意:各交换机需要设置默认网关,才能正常通信。
三层交换实现VLAN间通信
华为设备的三层交换功能(不同网络之间的互访)默认开启。
区别:
-
传统VLAN间通信:在路由器的接口上配置网关
-
单臂路由VLAN间通信:在子接口上配置网关
-
三层交换机实现VLAN通信:
- 思科在SVI接口配置网关
- 华为在vlan-if接口配置网关
让我们做一个小实验来理解:
-
1.配好IP以及分配好各接口的VLAN
- 与设备直连的端口 设为access以及分配VLAN、 交换机相连的端口设为trunk模式
当前在LSW1上仅设置了VLAN10的网关,此时pc1 ping pc2 无法Ping通,我们查看LSW1的路由表(因为跨网是通过路由表转发的)
没有VLAN20的地址,所以无法互访。
单臂路由实现原理
根据VLAN标签的特性,我们在接入层(二层交换机)与汇聚层(路由器的子接口上)都要对vlan 标签进行处理。
交换机的接口都会根据VLAN的标签以及接口类型的处理数据(发送或接受数据)的特性(在每个端口上打上标签或去掉标签),
G0/0/1口设置接口类型为trunk,并允许VLAN通过,本征PVID为VLAN30。
如果准备发送的数据是带有vlan30标签的,则会去掉标签发送,则数据不带标签。
如果准备发送的数据带有的是非本征VLAN的标签且在允许通信列表中则带标签发送,如路由器没有对其进行拆相应标签的接口,则AR1会将其丢弃。
而单臂路由的实现是通过在真实物理接口上设置一个地址(本例设置本征VLAN30的地址),还在其上创建的逻辑的接口上创建地址,并开启广播功能以及设置要解封装VLAN的ID。
[AR2] int g0/0/1.10 | 进入子接口10作为VLAN10的网关 |
---|---|
[AR2-GigabitEthernet0/0/1.10] dot1q termination vid 10 | 设置解封装的VLAN ID,否则无法拆标签则会丢弃数据 |
[AR2-GigabitEthernet0/0/1.10] arp broadcast enable | 开启广播功能 |
如果没有对子接口进行解封装以及开启广播,则他们的 Protocol 为down 状态,此时无法正常通信。
正常子接口状态,敲完后:
思科注意事项
思科在用三层交换机做传统VLAN间互访时,需要开启路由功能:
[Switch] ip routing | 开启路由功能,不然是无法跨网(当然无法跨VLAN ) |
---|---|
[Switch] no swithchport | 三层交换机如要在某个接口上设置IP,必须 关闭交换功能 |
我们现在设置VLAN20的网关,并再次查看,现在应该可以ping通了。
在本案例中,我们只把LSW1当做三层路由使用,将LSW2当做二层不作为三层。此时,若我们要LSW2访问PC1该怎么办?
首先在LSW2进入vlan30设置ip地址,然后思考想要Ping通PC1,而PC1属于vlan10且跨网段,所以必须通过网关,交换机自己访问时只能通过自己的路由表,我们查看下:
LSW2不知道VLAN10在哪,自己不能直接访问,所以需要设置网关(通过静态路由):ip route-static 0.0.0.0 0 192.168.30.254 . 后再次查看路由表:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
ping pc 1 成功:
MAC地址
网络地址:网络地址(Network address)是互联网上的节点在网络中具有的逻辑地址。
互联网络是由互相连接的带有连接节点(称为主机和路由器)的LAN组成的。每个设备都有一个物理地址连接到具有MAC层地址的网络,每个节点都有一个逻辑互联网络地址。
MAC地址:MAC(Media Access Control或者Medium Access Control)地址,意译为媒体访问控制,或称为物理地址、硬件地址,用来定义网络设备的位置。
在OSI模型中,第三层网络层负责 IP地址,第二层数据链路层则负责 MAC地址。因此一个主机会有一个MAC地址,而每个网络位置会有一个专属于它的IP地址。
MAC地址是网卡决定的,是固定的。