/24 网络中每个 VLAN 的单个客户端

网络工程 VLAN 私有VLAN
2021-07-30 07:37:01

我有一个 /24 IP 网络。我想创建一个 VLAN(或其他东西)并为每个客户端分配一个 IP 和网关。每个客户端不应该能够互相交谈。

做这个的最好方式是什么?

更新:

我正在使用 MikroTik 路由器和 Cisco 2950 第 2 层交换机。

4个回答

Cisco Catalyst 交换机具有专用 vlan 的概念,它应该可以完成您的任务。

在某些情况下,您需要阻止交换机上终端设备之间的第 2 层 (L2) 连接,而无需将设备放置在不同的 IP 子网中。此设置可防止浪费 IP 地址。专用 VLAN (PVLAN) 允许在同一 IP 子网中的设备的第 2 层隔离。您可以限制交换机上的某些端口仅访问特定端口 [snip]。

本文档也适用于 2960 型号交换机:

在 Catalyst 交换机上配置隔离的专用 VLAN

更好的解决方案(并且比私有 vlan 更简单)是使用switchport protected

Switchport Protected是您可以在每个接口基础上应用的命令。它的工作方式是,如果两个接口被标记为受保护,则它们无法相互通信。这是一张图片:

交换机端口保护

在上图中,hostA 和 hostB 都连接到同一台交换机,并且在同一 VLAN 中。此外,它们所连接的两个交换机端口(在本例中为 fa0/1 和 fa0/4)都配置了switchport protected作为默认网关的路由器连接到 fa0/12,并且没有配置受保护的交换机端口。因此,HostA 和 HostB 都可以与路由器通话,但 HostA 和 HostB 无法相互通话,因为它们都配置为受保护的端口。

受保护的端口不能以保护港口说话
防护端口CAN未受保护的端口讲
保护端口一直都能说话,保护端口(给予相同的VLAN等)。

使用它,您可以将所有主机配置在同一个 VLAN 中,使用同一个 IP 网络,并且路由器可以充当该单个 VLAN 的 DHCP 服务器(如有必要)。但是,所有端口都配置为switchport protected(当然,除了到路由器的上行链路),所有主机都不会看到彼此,但它们都可以看到路由器并与 Internet 通话。

上面设置的配置将是这样的:

interface FastEthernet0/1
  switchport access vlan 10
  switchport mode access
  switchport protected
!
interface FastEthernet0/4
  switchport access vlan 10
  switchport mode access
  switchport protected
!
interface FastEthernet0/12
  switchport trunk encapsulation dot1q
  switchport mode trunk

希望这可以帮助。

我们有一个类似的设置,有一个 /24 公共范围。

当时,我不知道 2950 交换机可以支持 PVLAN(巧合的是我们也一直在运行)。相反,为了节省 IP 空间,我使用了以下配置:

  • 棒状路由器 - 每个客户端都分配有自己的 VLAN 和自己的私有IP 范围。例如。10.1.2.0/28 - 或任何有意义的大小。

  • 从那时起,终止路由器上的每个 VLAN,以便它负责 VLAN 间路由。这允许您运行 ACL 以防止客户子网之间发生不需要的通信。我没有这方面的证据,但我建议,鉴于 2950 硬件已经过时,根据您的 MikroTik 路由器型号,您将能够在 MikroTik 上运行更多 ACL。

(顺便说一句,我们目前使用的是 Linux 路由器 - 8 核 + 8 GB RAM,它可以毫不费力地处理不到 1000 个单独的 IPTables 规则 - 尽管吞吐量 < 50 Mbps)。

  • 在 MikroTik 路由器上执行 1:1 静态 NAT,这允许您为每个服务器/客户端仅使用一个公共 IP 地址。您也可以根据需要选择将公共空间的部分直接路由到 VLAN。

我们发现这是一个非常灵活的配置。只要您不打算扩展到更大的尺寸,我认为它运行良好。

我并不是说这必然是比 PVLAN 更好的解决方案,而只是将其作为迄今为止对我们有用的替代方案。

不过,老实说,如果我当时意识到我可以在 2950 上运行 PVLAN 配置,那么我可能会这样做。

编辑 - 虚拟机

同样,我不完全确定这与 PVLAN 相比如何,但我们在设置中体验到的主要好处之一是它可以在我们的虚拟平台上无缝运行。

对于每个虚拟服务器主机,它都配置了一个trunk端口,我们简单地定义每个VLAN的虚拟网络,每个VM可以根据需要属于哪个虚拟网络。这意味着我们可以让客户拥有多台物理服务器和跨多台主机的虚拟机,并跨越所有这些主机的特定 VLAN。

这意味着他们可以“在本地”与所有服务器/虚拟机通信,但仍与我们基础架构上的所有其他客户保持隔离。

我认为这是我们配置的一个主要好处。我不确定您是否能够将 PVLAN 引入 ESX/Xen/虚拟主机,这会限制您的选择。

在 2950 交换机上,您可以在 /24 网络上使用分配 VLAN,您必须使用 VLAN 间路由将这些 VLAN 从第 2 层路由到第 3 层,但我不熟悉 MikroTik 路由器。您必须在路由器上创建子接口,以使用 802.1q 封装将 IP 地址范围分配到每个 vlan。

请记住,在 Cisco 交换机上,本地 VLAN 设置为默认值Vlan 1,最好的安全做法是将其更改为未使用的 VLAN。在trunk接口的两端都应该配置Native VLAN,如果你有多台交换机,建议使用VTP

VLAN10 192.168.10.1
VLAN20 192.168.20.1
VLAN30 192.168.30.1
VLAN40 192.168.50.1 -> 本地VLAN

创建 vlan

SW1>en
SW1#conf t
SW1(config)vlan 10
SW1(config-vlan)name (vlan name)

将交换机端口分配给 vlan

SW1>int fa0/1
SW1>int range fa0/1 - fa0/10
SW1>switchport mode access
SW1>switchport access vlan 10

设置默认网关

SW1>ip default-gateway 192.168.1.1

在 7500 路由器上,您可以执行这些代码/命令以使用“棒状路由器”

Router(config)#int fa0/0
Router(config-if)#no shut
Router(config-if)#
%LINK-5-CHANGED: Interface FastEthernet0/0, changed state to up
%LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/0, changed state to up
Router(config-if)#int fa0/0.10
Router(config-subif)#
%LINK-5-CHANGED: Interface FastEthernet0/0.10, changed state to up
%LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/0.10, changed state to up
Router(config-subif)#encap ?
  dot1Q  IEEE 802.1Q Virtual LAN
Router(config-subif)#encap 
Router(config-subif)#encap dot1Q  ?
  <1-1005>  IEEE 802.1Q VLAN ID
Router(config-subif)#encap dot1Q 10
Router(config-subif)#ip address 192.168.10.1 255.255.255.0
Router(config-subif)#int fa0/0.20
Router(config-subif)#
%LINK-5-CHANGED: Interface FastEthernet0/0.20, changed state to up
%LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/0.20, changed state to up
Router(config-subif)#encap dot1Q 20
Router(config-subif)#ip address 192.168.20.1 255.255.255.0
Router(config-subif)#int fa0/0.30
Router(config-subif)#
%LINK-5-CHANGED: Interface FastEthernet0/0.30, changed state to up
%LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/0.30, changed state to up
Router(config-subif)#encap dot1Q 30
Router(config-subif)#ip address 192.168.30.1 255.255.255.0
Router(config-subif)#int fa0/0.55
Router(config-subif)#
%LINK-5-CHANGED: Interface FastEthernet0/0.55, changed state to up
%LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/0.55, changed state to up
Router(config-subif)#encap dot1Q 55 ?
  native  Make this as native vlan
  <cr>
Router(config-subif)#encap dot1Q 55 native
Router(config-subif)#ip address 192.168.55.1 255.255.255.0
Router(config-subif)#int fa0/0.77
Router(config-subif)#
%LINK-5-CHANGED: Interface FastEthernet0/0.77, changed state to up
%LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/0.77, changed state to up
Router(config-subif)#encap dot1Q 77
Router(config-subif)#ip address 192.168.77.1 255.255.255.0
Router(config-subif)#
Router(config-subif)#^Z
Router#
%SYS-5-CONFIG_I: Configured from console by console
Router#
Router#wr
Building configuration...
[OK]
Router#
Router#copy run start
Destination filename [startup-config]?
Building configuration...
[OK]
Router#sh 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.10
C    192.168.20.0/24 is directly connected, FastEthernet0/0.20
C    192.168.30.0/24 is directly connected, FastEthernet0/0.30
C    192.168.55.0/24 is directly connected, FastEthernet0/0.55
C    192.168.77.0/24 is directly connected, FastEthernet0/0.77
Router#