首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在C#中建立基于标记VLAN的TCP连接?

如何在C#中建立基于标记VLAN的TCP连接?
EN

Stack Overflow用户
提问于 2021-02-17 19:06:45
回答 2查看 203关注 0票数 -2

我要做一个测试设置,其中我不能更改被测设备的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。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 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);命令。

这样你就可以在设备之间切换了!

票数 2
EN

Stack Overflow用户

发布于 2021-02-26 20:19:08

对于重叠的IP范围,您可以使用VRF或多个路由表。

在本地路由器上,您可以将每个vlan添加到另一个VRF (或路由表)。并利用策略路由将某些TCP连接标记为使用特定的VRF或路由表。

您可以将NAT添加到组合中。例如,您的子网的nat为1:1。根据这些标记你的连接。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66240715

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档