首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在双NIC Linux系统中的特定NIC上执行连接

在双NIC Linux系统中的特定NIC上执行连接
EN

Stack Overflow用户
提问于 2015-10-24 22:28:47
回答 1查看 117关注 0票数 0

业务案例:

今年是2015年,我使用的是Linux内核3.17。我的ARM Linux有两个网卡,eth0和eth1。eth0用于在本地为旁边的人配置,eth1用于从远程进行配置。因此,它们的功能基本相同,除了eth0有一个人在现场插入电缆。

本地PC - eth0 My ARM Linux Computer eth1 -远程PC

使用eth0,PC软件可以配置用于配置的eth1 IP地址和端口。为此,我的eth0有一个预设的IP地址(192.168.1.2),这样PC软件就可以很容易地找到它。ARM Linux (3.17)应用程序需要侦听eth0端口A和eth1端口B(如果已配置),一旦连接,它将做出响应,但永远不会发起任何活动(甚至不会执行ping操作)。

本地PC和远程PC之间没有连接。它们不应该是桥接的,也不应该联网。

问题1:

如果使用与eth0相同的IP配置eth1,我的应用程序是否仍能同时侦听两个NIC端口并正确响应?我将有两个独立的线程(可能是相同的函数,但是不同的参数)来监听两个NIC端口。

这就是为什么我问我是否可以在连接和响应时指定NIC,因为现在您可以看到它们可能具有相同的IP地址。理想情况下,操作系统知道connect请求来自何处,因此它应该知道回复哪种方式,即使两个NIC具有相同的IP,只要它们具有不同的以太网地址。但是,C++11或Berkeley模型允许我在监听和回复时指定eth0或eth1吗?

现在,本地PC和远程PC也可以具有相同的IP地址(但不同于ARM Linux)。但是假设我有两台ARM Linux计算机,那么这个配置是完全正确的。但不幸的是,我只有一个嵌入式系统和一个带有eth0和eth1的操作系统。

问题2:

如果问题1答案为否,那么它们是否可以拥有相同的子网掩码?另外,本地PC和远程PC是否可以拥有相同的IP地址?

假设

如果可行,设置路由表是一种解决方案。我想知道这是否可行,以及是否建议不要这样做。

还有,这就是Linux。类似的问题很久以前就被问过了,Windows XP说(不),而我使用的是Linux 3.17,而且我有相同的IP地址,所以事情与类似的问题不同。

EN

回答 1

Stack Overflow用户

发布于 2015-10-25 00:58:47

在系统级,您可以在中介盒上配置网桥。它在网桥两端可以具有相同的IP地址,并且可以使用iptables锁定,以便仅响应特定的TCP/UDP端口。

您不能让网桥两端的系统具有相同的IP地址(即本地pc和远程pc不能具有相同的IP地址)。您可以使用ebtables将网桥两端的访问限制为网桥本身的IP地址,这意味着本地pc只能与中介盒通信,而远程pc只能与中介盒通信。

这是基于从未期望本地和远程pcs相互通信。

这主要是一个系统管理员的解决方案,但是,作为一个开发人员,并没有一个真正的API可以用来完成同样的事情。

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

https://stackoverflow.com/questions/33319274

复制
相关文章

相似问题

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