我要做一个测试设置,其中我不能更改被测设备的ip地址,但需要一个特殊的orchestrator设备来访问所有可以具有相同ip地址但位于不同VLAN中的设备。
假设有以下设备连接到第3层交换机:
被测设备A,IP 192.168.1.1,被测VLAN10设备B,IP 192.168.1.2,VLAN10
被测设备C、IP 192.168.1.1、被测VLAN20设备D、IP 192.168.1.2、VLAN20
Orchestrator设备,IP 192.168.1.3,VLAN10 + VLAN20 (标记VLAN)
现在在C#中,我想建立一个到设备A的TCP连接,这在理论上应该是可能的,因为这些设备在以太网级上是分开的,并且虚拟NIC是在orchestrator设备上创建的,但是我如何才能告诉我的程序在进行连接时应该使用哪个虚拟NIC呢?
一种选择是动态更改orchestrator设备上的路由表(调用外部脚本或P/Invoke),但这似乎更像是一种变通方法。
另一种选择是动态启用/禁用虚拟网卡,但我不知道这是否容易实现。
我使用的是.NET核心btw。
发布于 2021-02-25 10:28:31
问题:
C#根据您使用的网络选择NIC,并且这些网络的子网是相同的
您需要使用一种变通方法
解决方案:
使用cmd netsh命令禁用Orchestrator设备中不使用的NIC:
netsh interface set interface "Interface-Name" disable将其发送到C#中的cmd。
System.Diagnostics.Process.Start("CMD.exe", strCmdLine);命令。
这样你就可以在设备之间切换了!
发布于 2021-02-26 20:19:08
对于重叠的IP范围,您可以使用VRF或多个路由表。
在本地路由器上,您可以将每个vlan添加到另一个VRF (或路由表)。并利用策略路由将某些TCP连接标记为使用特定的VRF或路由表。
您可以将NAT添加到组合中。例如,您的子网的nat为1:1。根据这些标记你的连接。
https://stackoverflow.com/questions/66240715
复制相似问题