具有相同 IP 子网的 NAT VLAN

网络工程 思科 VLAN 纳特 虚拟现实
2021-07-14 22:51:26

我有一个 VMware 环境,其中 VM 正在运行模拟套件。所使用的软件具有硬编码的 IP 地址,大约有 10-15 个虚拟机,我们在不同的分布式端口组中运行该软件的多个实例。所以SIM1 VM集在VLAN10中有192.168.1.0/24,SIM2在VLAN20中有192.168.1.0/24,等等......

这很好用,SIM1 VM 不需要与 SIM2 VM 通信等等。出现了一个新需求,我现在需要能够远程监控进度、管理和共享来自一组物理机器的数据。管理 PC 将位于连接到催化剂 cisco 交换机的 VLAN200 中。

我在分布式交换机上有 4x10gbe 上行链路。我打算将它们运行到某些 Cisco 10gbe 路由器(我想保持与 VM 的 10gbe 连接,不确定究竟是哪种型号可以做到这一点)并在每个 VLAN 的子接口上使用 VRF,使用该接口作为网关和静态 NAT 每个虚拟机器。因此 SIM1 machine1 的 IP 为 192.168.1.2,它将公开 NAT 到 10.0.10.2。第四个八位字节将匹配私有虚拟机 IP,第三个八位字节将匹配 VLAN。所以 SIM2 machine1 (192.168.1.2) 会 NAT 到 10.0.20.2。管理端也可以是不同端口上的子接口,并存在于全局或共享 VRF 中。要管理 SIM2 machine1,我应该可以使用 10.0.20.2。VRF 和 NAT 之间的共享路由是否正常工作。

我开始尝试在 GNS3 中构建类似的东西,但很快就不知所措。所以我想确保我的设计是理智的,或者是否有另一种更好的更理智的方法来处理这个问题。或有关如何完成此操作的任何提示或指示?

谢谢!

编辑:添加了一个图表:

NAT图

这个想法是 SIM1-S1 将 NAT 转换为 10.0.10.2,SIM1-S2 将 NAT 转换为 10.0.10.3,等等...... SIM2-S1 将 NAT 转换为 10.0.20.2,SIM2-S2 将 NAT 转换为 10.0.20.3,等等...

1个回答

借助一些 VRF-lite 和 VRF-aware-NAT 以及 Cat-3850 路由功能的帮助,这里有一些应该可以工作的配置片段,或者至少可以让您完成一半 - 所有这些都基于您显示的图表。

一些注意事项:

  • 本示例假设 Cat-3850 可以充当 L3 交换机,并且它至少可以在直接连接的子网/VLAN 之间进行路由。
  • Cisco IOS 和 IOS-XE 在 NAT 方面略有不同,尤其是当涉及到从一个 VRF 到另一个 VRF 的 NAT 时,可能会出现一些许可问题。不过,我不认为这会伤害我们这里。
  • 这是随意编写的“伪代码”,它可能无法完全复制和粘贴,但它应该可以帮助您找到解决方案。
  • 未强制执行 SIM 环境的分离;一个环境可以与其他环境的 NAT 地址“对话”。如果这是一个问题,请不要在每个 VRF 中设置默认路由(只是管理系统或其子网的静态路由),或者在 ASR-1001 上使用 ZBFW

让我们从 R1 开始并设置接口

interface fastEthernet0/0
 desc * Vmware-dSwitch *
 no ip address

interface Fasterthern0/1
 desc * Cisco-3850 Port 1* 
 no ip address

然后,您必须对每个 SIM 或子环境重复以下操作: 请注意,该示例在 R1 的两侧使用相同的 VLAN 标记。它们可能不同以匹配一侧的 VMware 环境和另一侧的 LAN 环境。

!
! Start of per VRF or per SIMn section
!
! replace VRF names, dot1q tags, interface names as appropriate

vrf defintion VRF-SIM1
 address-family ipv4
 exit-address-family

interface fast0/0.10
 description * SIM1 inside subinterface *
 vrf forwarding VRF-SIM1
 encapsulation dot1q 10
 ip address 192.168.1.254 255.255.255.0
 ip nat inside

interface fast0/1.10
 description * SIM1 outside subinterface *
 vrf forwarding VRF-SIM1
 encapsulation dot1q 10
 ip address 10.0.10.1
! ip nat inside           <--- dear me! how could I copy&waste that one! (edited after comment)
 ip nat outside

ip nat inside source static 192.168.1.2 10.0.10.2 vrf VRF-SIM1
ip nat inside source static 192.168.1.3 10.0.10.3 vrf VRF-SIM1
ip nat inside source static 192.168.1.4 10.0.10.4 vrf VRF-SIM1

ip route vrf VRF-SIM1 0.0.0.0 0.0.0.0 fast0/1.10 10.0.10.254

!
! End of per VRF or per SIMn section
!

请注意:nat 部分可能需要在这里进行一些调整,但由于内部和外部接口在同一个 VRF 中,我认为不需要更多的配置魔法。

然后,在 Cat3850 上,您需要一组 VLAN 和 SVI ( interface vlan) 来匹配 R1 的“右侧”:

vlan 10 
 name SIM1-TRANSIT

vlan 20
 name SIM2-TRANSIT

vlan 30
 name SIM3-TRANSIT

int g1/0/1
 desc * R1 fast0/1 *
 switchport mode trunk
 switchport nonegotiate
 switchport trunk allowed vlan 10,20,30
 spanning-tree portfast trunk

interface vlan 10
 desc * transit subnet to SIM1 *  
 ip address 10.0.10.254 255.255.255.0

interface vlan 20
 desc * transit subnet to SIM2 *  
 ip address 10.0.20.254 255.255.255.0

interface vlan 30
 desc * transit subnet to SIM3 *  
 ip address 10.0.30.254 255.255.255.0