不同VLAN之间互相通信

前话

我们经常到机房上课,想必对机房后面那层叠的跟DVD一样的机器有印象吧,那些就是交换机。

交换机

交换机作用是什么?

我这里度娘一下:

交换机(Switch)意为“开关”是一种用于电(光)信号转发的网络设备。它可以为接入交换机的任意两个网络节点提供独享的电信号通路。

说简单点,就是为主机之间创建通信道路的机器,如下图,各主机连接同个交换机,且IP在同一网段,在同一VLAN,他们是可以互相通信的,他们就简单构成了一个局域网。

简单交换机局域网

刚才提到了vlan,vlan又是什么呢?

同样度娘一下:

VLAN(Virtual Local Area Network)的中文名为”虚拟局域网”。
虚拟局域网(VLAN)是一组逻辑上的设备和用户,这些设备和用户并不受物理位置的限制,可以根据功能、部门及应用等因素将它们组织起来,相互之间的通信就好像它们在同一个网段中一样,由此得名虚拟局域网。VLAN是一种比较新的技术,工作在OSI参考模型的第2层和第3层,一个VLAN就是一个广播域,VLAN之间的通信是通过第3层的路由器来完成的。与传统的局域网技术相比较,VLAN技术更加灵活,它具有以下优点: 网络设备的移动、添加和修改的管理开销减少;可以控制广播活动;可提高网络的安全性。
在计算机网络中,一个二层网络可以被划分为多个不同的广播域,一个广播域对应了一个特定的用户组,默认情况下这些不同的广播域是相互隔离的。不同的广播域之间想要通信,需要通过一个或多个路由器。这样的一个广播域就称为VLAN。

我个人理解呢,VLAN就是把一条大马路用隔离带分成多条小马路的技术。
要注意的是,每条小马路之间是不能相通的,图示如下:

VLAN图解

在交换机中可以添加VLAN和设置端口处于哪个VLAN,我们用之前简单局域网示例来讲解:

交换机不同VLAN示例

上面一台主机 PC0 处于VLAN 1 ,下面两个主机 PC1 和 PC2 处于 VLAN 2 ,三台主机的IP处于同一网段。
PC0 接入交换机端口 Fa0/1 ,PC1 接入交换机端口 Fa0/2 ,PC2 接入交换机端口 Fa0/3 。
但由于VLAN不同,PC0 不能和 PC1 PC2 通信。
下面两台主机 PC1 和 PC2 的IP同网段,也同处于 VLAN 2 ,因此这两台主机可以互相通信。

交换机配置过程如下:

Switch> enable                                  //进入特权模式
Switch# vlan database                           //进入vlan数据库
Switch(vlan)# vlan 2                            //添加一个vlan,vlan号为 2 。默认所有端口处于vlan 1 ,因此本例子只需添加添加 vlan 2
Switch(vlan)# exit                              //退出 vlan数据库
Switch# configure terminal                      //进入全局配置模式
Switch(config)# interface FastEthernet 0/2      //进入端口Fa0/2设置
Switch(config-if)# switchport access vlan 2     //设置端口Fa0/2处于vlan 2,默认所有端口处于vlan 1 ,所以本实例不用对端口Fa0/1设置vlan
Switch(config-if)# exit                         //退出端口Fa0/2设置
Switch(config)# interface FastEthernet 0/3      //进入端口Fa0/3设置
Switch(config-if)# switchport access vlan 2     //设置端口Fa0/3处于vlan 2
Switch(config-if)# end                          //设置完成退出

那么我们的主要问题来了,不同VLAN之间该如何进行通信呢?下面我们开始主题!

开始主题前,先上一张我对学校机房网络的图示 >_< ,有错请轻喷。

学校机房网络拓扑


不同VLAN之间互相通信

交换机vlan有什么用呢?谷歌娘度娘会跟你说什么降低一条网络线路的网络风暴提高利用率啊什么的。
我目前为止觉得很有用的是,实现通过不同vlan通信可以使不同网络段的主机能够进行通信。
上面这句话有点长,我举个例子吧,比如我们知道,若子网掩码为 255.255.255.0 ,IP为 192.168.10.100 的主机不能和 IP为 192.168.20.100 的主机进行通信,它们两不在同一子网。

那么有什么办法解决呢?有一种是通过路由器,路由器一般有两三个端口,接入子网的端口设置为子网的网关即可实现两个子网的通信,如下图所示:

路由连接两个子网

上图的确可以两台不同子网的主机的通信问题,那么问题又来了,两个子网各有3台或者更多主机呢?好吧,加上个交换机,一台交换机和主机组成一个子网,子网设置网关为接入的路由器端口IP,如下图所示:

交换机路由器两个子网

上图也的确可以使两个不同子网多台主机进行通信,但是一般一个交换机有24个端口,一个子网两三台主机那也太浪费了。

如果忽略成本这个方案可以通过,那么问题又来了,如果有3个子网或者更多的子网呢,主机也更多呢?

一台路由器也就那么两三个端口哦。也许大家会说,加多几个交换机,加多几个路由器来组网。
这种粗暴式的通过增加硬件成本组网肯定会导致后面很多的问题,

具体什么严重问题呢?大家有钱可以买来组网试试。

感觉钱就是最为严重的问题了~~~

VLAN技术的出现,可以大大减少开销成本,高大上的技术十分省钱!

开玩笑的 :)


实现不同VLAN之间通信的两种标准方式

单臂路由

讲解单臂路由前先看看双臂路由(好像是这样叫吧 =_= ) ,如下图:

双臂路由

上图一个VLAN连接一个路由器端口,两三个子网路由器还可以对付,但是子网更多时,路由器端口就不够用了。

因此路由器端口多了一个子端口技术,来实现单臂路由。

路由器只需一个端口和交换机进行连接,并设置该端口的子端口对应的vlan信息,而交换机只需将连接路由器的端口设置vlan模式为trunk即可。

通过单臂路由实现不同vlan通信,可以节省路由端口消耗,单臂路由图解如下:

单臂路由

交换机设置

对主机VLAN的划分的部分省略

Switch> enable
Switch# configure terminal
Switch(config)# interface FastEthernet 0/24             //Fa0/24端口连接路由器
Switch(config-if)# switchport mode trunk                //设置该端口vlan模式为trunk
Switch(config-if)# switchport trunk allowed vlan all    //设置该端口trunk模式下接收所有vlan线路的信息
Switch(config-if)# end                                  //完成设置退出

注意,若交换机端口未启动,需要进入到未启动的端口,然后键入命令 no shutdown 对其进行启动。

路由器设置

路由器端口 Fa0/0连接交换机,该端口不要设置IP地址。

Router> enable
Router# configure terminal
Router(config)# interface FastEthernet 0/0
Router(config-if)# no shutdown                                  //启动Fa0/0端口

Router(config-if)# interface FastEthernet 0/0.1                 //添加设置Fa0/0端口的子端口Fa0/0.1
                                                                //同理Fa0/1端口的子端口可以为Fa0/1.1,Fa0/0.6等

Router(config-subif)# encapsulation dot1Q 1                     //对该子端口Fa0/0.1进行802.1q协议的封装
                                                                //后面的数字 1 代表是的侦听VLAN号为 1 的传输数据

Router(config-subif)# ip address 192.168.10.1 255.255.255.0     //设置该子端口Fa0/0.1的IP和子网掩码
Router(config-subif)#no shutdown                                //启动该子端口

Router(config-if)# interface FastEthernet 0/0.2                 //添加设置Fa0/0端口的子端口Fa0/0.2
Router(config-subif)# encapsulation dot1Q 2                     //对该子端口Fa0/0.2进行802.1q协议的封装

Router(config-subif)# ip address 192.168.20.1 255.255.255.0     //设置该子端口Fa0/0.2的IP和子网掩码
Router(config-subif)# no shutdown                               //启动该子端口

Router(config-subif)# end                                       //完成设置退出

Router# show ip route                                           //查看路由信息

Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP
       i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area
       * - candidate default, U - per-user static route, o - ODR
       P - periodic downloaded static route

Gateway of last resort is not set

C    192.168.10.0/24 is directly connected, FastEthernet0/0.1
C    192.168.20.0/24 is directly connected, FastEthernet0/0.2   

最后一下输出路由信息,说明设置成功。

C    192.168.10.0/24 is directly connected, FastEthernet0/0.1
C    192.168.20.0/24 is directly connected, FastEthernet0/0.2   

三层交换机

普通交换机没有路由功能,而三层交换机可以看作普通交换机和路由器合二为一的机器。
因此三层交换机具有路由功能,而且三层交换机的端口是vlan端口。

三层交换机的使用很灵活,我这里说两种:

  • 主机——三层交换机——主机
  • 主机——交换机——三层交换机——交换机——主机

主机——三层交换机——主机

图解如下:

主机三层交换机

三层交换机设置

三层交换机增加vlan和对主机的vlan划分部分省略。

Switch> enable
Switch# configure terminal

Switch(config)#ip routing                                   //启动三层交换机路由功能

Switch(config)# interface Vlan 1                            //添加设置关联Vlan号为1的路由端口
Switch(config-if)# ip address 192.168.10.1 255.255.255.0    //为该路由端口设置IP和子网掩码
Switch(config-if)# no shutdown                              //启动该端口
Switch(config-if)# exit                                     //退出该端口

Switch(config)# interface Vlan 2                            //添加设置关联Vlan号为2的路由端口
Switch(config-if)# ip address 192.168.20.1 255.255.255.0    //为该路由端口设置IP和子网掩码
Switch(config-if)# no shutdown                              //启动该端口
Switch(config-if)# exit                                     //退出该端口

Switch(config)# interface Vlan 3                            //添加设置关联Vlan号为3的路由端口
Switch(config-if)# ip address 192.168.30.1 255.255.255.0    //为该路由端口设置IP和子网掩码
Switch(config-if)# no shutdown                              //启动该端口
Switch(config-if)# end                                      //完成退出

Switch# show ip route                                       //查看路由信息

Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP
       i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area
       * - candidate default, U - per-user static route, o - ODR
       P - periodic downloaded static route

Gateway of last resort is not set

C    192.168.10.0/24 is directly connected, Vlan1
C    192.168.20.0/24 is directly connected, Vlan2
C    192.168.30.0/24 is directly connected, Vlan3

输出以上路由信息表示设置成功 :)


主机——交换机——三层交换机——交换机——主机

图解如下:

交换机三层交换机

普通交换机添加vlan和对主机vlan划分部分省略。
若普通交换机连接三层交换机的端口已设置vlan模式为trunk,连接三层交换机后,三层交换机连接普通交换机的端口其模式会自动设置为trunk。

普通交换机设置(示例两个普通交换机设置相同)
Switch> enable
Switch# configure terminal
Switch(config)# interface FastEthernet 0/24
Switch(config-if)# switchport mode trunk        //设置Fa0/24端口vlan模式为trunk
Switch(config-if)#end
三层交换机设置(与前面的类似)
Switch> enable
Switch#vlan database
Switch(vlan)# vlan 2                                        //添加vlan 2
Switch(vlan)# exit

Switch# configure terminal

Switch(config)#ip routing                                   //启动三层交换机路由功能

Switch(config)# interface Vlan 1                            //添加设置关联Vlan号为1的路由端口
Switch(config-if)# ip address 192.168.10.1 255.255.255.0    //为该路由端口设置IP和子网掩码
Switch(config-if)# no shutdown                              //启动该端口
Switch(config-if)# exit                                     //退出该端口

Switch(config)# interface Vlan 2                            //添加设置关联Vlan号为2的路由端口
Switch(config-if)# ip address 192.168.20.1 255.255.255.0    //为该路由端口设置IP和子网掩码
Switch(config-if)# no shutdown                              //启动该端口
Switch(config-if)# end                                      //退出该端口

Switch# show ip route                                       //查看路由信息

Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP
       i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area
       * - candidate default, U - per-user static route, o - ODR
       P - periodic downloaded static route

Gateway of last resort is not set

C    192.168.10.0/24 is directly connected, Vlan1
C    192.168.20.0/24 is directly connected, Vlan2

输出以上路由信息表示设置成功 :)


感想

毕竟这点内容写了一天了,累但是很满足,谢谢阅读~~~

  • 205
    点赞
  • 352
    收藏
    觉得还不错? 一键收藏
  • 29
    评论
### 回答1: 在解决不同VLAN之间的主机通信问题时,可以使用ENSP(Enterprise Network Simulation Platform)配置两层交换机、三层交换机和路由器。 首先,我们可以使用两层交换机进行VLAN划分和主机通信。在ENSP中,可以创建多个VLAN,并将不同的主机分配到各自的VLAN中。通过配置网络接口,并将相应的接口与VLAN进行绑定,可以实现VLAN之间的隔离。两层交换机可以通过端口隔离不同VLAN,从而使得同一VLAN中的主机可以互相通信。但是不同VLAN之间的主机无法直接通信。 然后,我们可以使用三层交换机来解决不同VLAN之间主机通信的问题。三层交换机可以通过配置虚拟接口和静态路由来实现不同VLAN之间互通。在ENSP中,可以创建虚拟接口,并将每个虚拟接口与相应的VLAN进行绑定。通过配置静态路由,将不同VLAN之间通信路径指向三层交换机的虚拟接口,从而实现不同VLAN之间的主机通信。 除了使用三层交换机,我们还可以使用路由器来解决不同VLAN之间通信问题。在ENSP中,可以创建虚拟路由器,然后将虚拟路由器与不同VLAN进行绑定。通过配置路由表和接口,将不同VLAN之间通信路径指向虚拟路由器,从而实现不同VLAN之间的主机通信。 总而言之,通过使用ENSP配置两层交换机、三层交换机和路由器,我们可以解决不同VLAN之间的主机通信问题。无论是通过端口隔离、三层交换机的虚拟接口和静态路由,还是利用虚拟路由器和路由表,我们可以在ENSP中灵活地配置网络设备,使不同VLAN之间的主机能够互相通信。 ### 回答2: 当不同的主机位于不同VLAN中,它们无法直接进行通信。为了解决这个问题,我们可以使用ENSP配置两层交换机、三层交换机和路由器。 首先,我们可以使用两层交换机来组织不同VLAN。通过将不同VLAN的接口划分为不同的端口,我们可以确保同一VLAN中的主机可以相互通信。这种配置可以通过在交换机上创建和配置VLAN,然后分配端口给相应的VLAN来实现。 然而,两层交换机的广播域是局限在单个交换机内部的,所以如果我们希望不同VLAN之间的主机进行通信,我们需要使用三层交换机或路由器。 三层交换机具有路由功能,并且可以在不同VLAN之间进行路由。通过在三层交换机上创建虚拟接口(即子接口)并为其分配一个IP地址,我们可以实现不同VLAN之间的互联。此外,我们需要在三层交换机上配置相应的路由表,以指定如何将数据包从一个VLAN转发到另一个VLAN。 另一种解决方案是使用路由器。路由器也具有路由功能,并且可以在不同的子网之间进行路由。我们可以在路由器上配置不同的子接口,并为每个接口分配一个IP地址。然后,我们可以使用路由器的路由表来指定从一个子网到另一个子网的数据包如何转发。 综上所述,通过使用两层交换机、三层交换机和路由器,我们可以解决不同VLAN之间的主机通信问题。两层交换机用于组织VLAN,三层交换机和路由器用于实现不同VLAN之间的路由。这些设备的配置和管理需要一定的网络知识和技能。 ### 回答3: 在解决不同VLAN之间主机通信问题时,可以使用ENSP软件来配置两层交换机、三层交换机和路由器。 对于两层交换机,它主要通过学习MAC地址来实现局域网内的主机通信。在配置中,我们需要将不同VLAN的端口划分到不同的虚拟局域网,并配置VLAN之间的互联端口。这样,在同一个VLAN内的主机可以通过学习到的MAC地址表来直接通信,而不同VLAN之间通信需要借助路由器。 对于路由器,它负责处理不同子网之间通信。在配置中,我们需要为每个VLAN分配一个子网,并在路由器上配置相应的子接口或物理接口,并将其与相应的VLAN绑定。这样,不同子网的主机就可以通过路由器进行互联,并进行跨VLAN通信。 而对于三层交换机,它实际上集成了路由器和交换机的功能。在配置中,我们可以将不同VLAN的端口划分到不同的虚拟局域网,并配置三层交换机的IP地址,使其成为不同子网的网关。这样,三层交换机可以直接处理不同子网之间通信,而不需要借助外部路由器。 总而言之,无论是两层交换机、三层交换机还是路由器,它们都可以用来解决不同VLAN之间主机通信的问题。通过配置虚拟局域网和相应的接口,以及在路由器或三层交换机上设置IP地址,并进行静态路由或动态路由的配置,可以实现不同子网的主机进行通信。这样,可以提高网络的安全性和性能,并且有效地隔离和管理不同网络流量。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 29
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值