5虚拟局域网构建

前面简单介绍了使用交换机连接不同的服务器,这次我们看看怎么搞虚拟局域网。

虚拟局域网,也被称为VLAN(Virtual Local Area Network),是一个网络的划分概念,使得一组网络设备可以表现得像在同一个物理网络中,即使它们在地理上并不共享同一个物理网络连接。

在没有虚拟局域网的情况下,设备必须是物理连接在同一个网络交换机上才能形成局域网。而通过使用虚拟局域网,可以将设备虚拟组合在一起,无论它们在物理层面上是否彼此相连,使它们能够进行网络通信就好像它们是在同一个局域网中一样。

原因

为什么要有虚拟局域网?

  1. 广播风暴:交换机上的每一个端口都处于不同的冲突域(也就是每个端口都享有独立的带宽)。但局域网中所有的端口都处在同一个广播域,那么就意味着如果有一台终端发出广播帧(如ARP、DHCP),局域网中所有的终端都能够接收到。网络资源被大量占用和浪费。
  2. 安全问题:网络黑客会利用局域网中广播来进行攻击,比如比较常见的 ARP 攻击;或者某台主机上安装了分组嗅探器,那么这台主机就会接收下它收到的所有数据,很可能造成信息泄露

简介

为了解决局域网广播域的问题,IEEE 协会专门设计规定了 802.1Q 的协议标准,这就是虚拟局域网 VLAN(Virtual Local Area Network,)技术,它利用软件实现了二层广播域的划分,在不增加成本的情况下,完美解决了路由器划分广播域的困难。

交换机为用户提供的一种服务,之所以称为“虚拟”局域网,是因为把物理上的局域网根据一定的原则划分为多个小的逻辑网络,这些小的逻辑网络形成各自的广播域,也就是虚拟局域网VLAN。

image-20231029175447860.png

具有 VLAN 功能的交换机上会维护 VLAN 数据表,记录着哪些终端属于同一个 VLAN。同一个 VLAN 是一个广播域,不同的 VLAN 间的设备不能直接通信。

image-20231029175512440.png

Vlan划分

方式优缺点样式
基于端口1.定义简单 2.适合小型网络 3.适合稳定网络Port1 - Vlan5
基于MAC地址1.初期配置复杂 2.后期维护简单MAC1 - Vlan5
基于子网1.配置简单 2.后期维护简单IP 1.1.1.1/24 - Vlan5
基于协议1.应用比较少IP协议 - Vlan5

Vlan工作过程

Vlan比标准以太网帧多了tag,tag里有Vlan编号。交换机根据这个格式,就能做特殊的操作了。

image-20231102235547518.png

交换机有两类端口,ACCESS端口和TRUNK端口,两个端口的作用和能力不同。

ACCESS端口

image-20231103000446225.png

当“主机 A”向“主机 C”发送数据,交换机收到主机 A 发来的标准以太帧后,通过查询“vlan 表”确认该端口属于 vlan5,就在该数据帧打上 vlan5 的标签。 交换机通过查询 MAC 地址表确定转发端口为 port 7 而后通过查询 VLAN 表发现 port 7 端口也属于 VLAN5 和数据帧携带的 vlan id 一致,那么交换机在转发该数据帧前会剥去数据帧的 vlan tag 将其恢复为标准以太帧之后从 port5 转发给目的主 机 C。

当“主机 A”向“主机 D”发送数据,交换机收到主机 A 发来的标准以太帧 后通过查询“vlan 表”确认该端口属于 vlan5,就在该数据帧打上 vlan5 的标签。 交换机通过查询 MAC 地址表确定转发端口为 port 10,而后通过查询 VLAN 表发 现 port 10 端口属于 VLAN10 和数据帧携带的 vlan id 不一致,那么交换机就会将 该数据帧丢弃。

image-20231103000313007.png

TRUNK端口

对于这种布局下的通信,需要使用Trunk口。

image-20231105233153677.png

交换机默认的 access 链路类型端口在转发数据帧时需要将数据帧中的 vlan tag 剥离。如果交换机之间的链路能够传递带有 vlan tag 的数据帧,那么就能保证 vlan 信息不会丢失,实现跨交换机 vlan 通信。Trunk 链路类型端口可以接收和发送多个 vlan 的数据帧,并且在接收和发送过程中不对数据帧中的 vlan tag 进行任何操作。

image-20231105233308779.png

当行政部的 PCA 发出标准以太帧,到达交换机 SW1 的端口 E1/0/2。Port2 属于 access 链路类型端口,所以 SW1 收到数据帧之后查询 vlan 表发现 E1/0/2 属于vlan10,那么就将数据帧打上 vlan10 的标签。然后 SW1 查询自己的 MAC 地址表,发现需要通过端口 E1/0/1 转发出去,而 E1/0/1 端口是 trunk 链路类型端口,允许 vlan10 通过,那么该数据帧就通过 port1 转发到交换机 SW2。

SW2 接收到该数据帧,根据数据帧中的目的 MAC 地址查询 MAC 地址表找到了转发端口 E1/0/5,之后在 vlan 表中查询发现 E1/0/5 所属 vlan 和数据帧携带的vlan id 一致。E1/0/5 端口为 access 链路类型端口,那么交换机在转发该数据帧前会剥去数据帧的vlan tag将其恢复为标准以太帧之后从端口E1/0/5转发给目的主机 PCC。

实战

先用一个交换机,带三个PC,都是默认的Vlan1,互相是可以ping通的

hcl_7148db071733.png

<H3C>ping 112.112.112.1
Ping 112.112.112.1 (112.112.112.1): 56 data bytes, press CTRL_C to break
56 bytes from 112.112.112.1: icmp_seq=0 ttl=255 time=10.898 ms
56 bytes from 112.112.112.1: icmp_seq=1 ttl=255 time=2.828 ms
56 bytes from 112.112.112.1: icmp_seq=2 ttl=255 time=2.286 ms
56 bytes from 112.112.112.1: icmp_seq=3 ttl=255 time=2.215 ms
56 bytes from 112.112.112.1: icmp_seq=4 ttl=255 time=2.290 ms

--- Ping statistics for 112.112.112.1 ---
5 packet(s) transmitted, 5 packet(s) received, 0.0% packet loss
round-trip min/avg/max/std-dev = 2.215/4.103/10.898/3.404 ms

image-20231106001920944.png

把PC2\PC3连放到Vlan10,PC4放到Vlan20,测试连通性

[H3C]vlan 10
[H3C-vlan10]port GigabitEthernet1/0/1
[H3C-vlan10]port GigabitEthernet1/0/2
[H3C-vlan10]quit
[H3C]vlan 20
[H3C-vlan20]port GigabitEthernet1/0/3
[H3C]display vlan
[H3C]display vlan 10
[H3C]display vlan 20

从PC2 ping PC3可以,ping PC4失败

<H3C>ping 112.112.112.2
Ping 112.112.112.2 (112.112.112.2): 56 data bytes, press CTRL_C to break
56 bytes from 112.112.112.2: icmp_seq=0 ttl=255 


<H3C>ping 112.112.112.3
Ping 112.112.112.3 (112.112.112.3): 56 data bytes, press CTRL_C to break
Request time out

image-20231106004803584.png

再加一台交换机,两台交换机相连接口设置为TRUNK口,第二台交换机也有Vlan20,有PC5,试试PC4和PC5互不互通,PC2和PC5互不互通

[H3C]interface GigabitEthernet 1/0/10
[H3C-GigabitEthernet1/0/10]port link-type trunk
[H3C-GigabitEthernet1/0/10]port trunk permit vlan 20
[H3C-GigabitEthernet1/0/10]display this
#
interface GigabitEthernet1/0/10
 port link-mode bridge
 port link-type trunk
 port trunk permit vlan 1 20
 combo enable fiber
#
return


<H3C>system-view
[H3C]sysname SW2
[SW2]vlan 20
[SW2-vlan20]port GigabitEthernet 1/0/1
[SW2-vlan20]quit
[SW2]interface GigabitEthernet 1/0/10
[SW2-GigabitEthernet1/0/10]port link-type trunk
[SW2-GigabitEthernet1/0/10]port trunk permit vlan 20
[SW2-GigabitEthernet1/0/10]display this
#
interface GigabitEthernet1/0/10
 port link-mode bridge
 port link-type trunk
 port trunk permit vlan 1 20
 combo enable fiber
#
return

从pc4 ping pc6就通了

<H3C>ping 112.112.112.4
Ping 112.112.112.4 (112.112.112.4): 56 data bytes, press CTRL_C to break
56 bytes from 112.112.112.4: icmp_seq=0 ttl=255 time=26.016 ms

从pc2 ping pc6不通

<H3C>ping 112.112.112.4
Ping 112.112.112.4 (112.112.112.4): 56 data bytes, press CTRL_C to break
Request time out

总结

组网还是挺好玩的,实战比理论知识要简单一些

最后

大家如果喜欢我的文章,可以关注我的公众号(程序员麻辣烫)

我的个人博客为:https://shidawuhen.github.io/

往期文章回顾:

  1. 设计模式
  2. 招聘
  3. 思考
  4. 存储
  5. 算法系列
  6. 读书笔记
  7. 小工具
  8. 架构
  9. 网络
  10. Go语言
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员麻辣烫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值