问题标签 [multihomed]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2622 浏览

iis - 使 IIS 停止在所有绑定 IP 的端口 443 上运行

我有一个安装了 IIS 的 Win2008 R2 服务器。服务器在同一个 NIC 卡上有多个 IP 地址。我在 IIS 管理器中配置了一个 HTTPS 网站。但是,IIS 似乎总是在所有 IP 上侦听端口 443,即使我将 HTTPS 网站配置为仅绑定到单个 IP 地址。

我很肯定它是 IIS,因为一旦我执行“iisreset/stop”,端口就会变得可用。

我需要它的原因是因为我正在尝试运行另一个需要在特定 IP 上侦听端口 443 的服务,而 IIS 不允许它。

任何帮助都将不胜感激。

0 投票
0 回答
515 浏览

ios - 我可以选择一个网络接口在 iOS 上使用吗?

我在 iOS 设备上使用 webrtc。Webrtc 打开到服务器的 4 个 UDP 连接。通过在服务器上进行网络跟踪,很明显 iOS 设备可能同时使用它的移动数据 IP 地址和它的 WiFi 地址建立这些连接,这对服务器来说是个问题,它不能识别这些来自同一个客户。当所有四个 UDP 连接都来自同一个源 IP 时,一切都很好。但是,当 UDP 连接在源 IP 地址之间拆分时,应用程序将失败。我没有能力重写服务器来处理这种奇怪的行为。

iOS设备在两个连接都稳定的情况下使用了多个网络接口;电话在一个地方,不会发生切换。我们已经测试了家庭(最小的其他流量/干扰)和企业 WiFi 连接。所有 UDP 连接都由 Google 的 libjingle webrtc 库同时启动。

有没有办法强制所有 UDP 连接从 iOS 上的同一网络接口进行?


多源地址是 iOS 的一项功能,称为多路径或多宿主。请参阅iOS 多路径 TCP 公告。我假设这也用于UDP。

0 投票
1 回答
486 浏览

python - 在开发多宿主可靠 udp 时,如何使用 mininet 检测到链接已关闭?

这是拓扑:

h1 使用 UDP 以可靠的方式将文件泵送到 h2。s0 和 s1 之间的链接可能已断开。然后它应该继续使用底部路径发送数据。有没有办法检测到链接已断开?

到目前为止,我在 h1 中为每个路径创建了两个 python 套接字,在 h2 中创建了两个。使用 select.select 我可以获得准备好的套接字来读取 ack。如果发生超时,我可以重新传输。但是,当链接关闭时,我无法知道它已关闭。

0 投票
1 回答
70 浏览

sctp - 具有零窗口探测的 sctp 多宿主

我有疑问,关于多宿主中的零窗口探测。当发生零窗口探测时,RFC 4960(sec 6.1A)零表示每个目标传输地址应该有一个数据块在飞行中

但是,如果我有具有两个源和两个目标 IP 地址的多宿主应用程序。每个地址应该有两个数据块在运行还是应该有一个数据块在运行?

谢谢您的帮助

0 投票
1 回答
170 浏览

networking - 允许 lan 段在多宿主路由器上相互 ping

我有一个运行 OpenSuse 的盒子,有两个本地网段:

  • 192.168.2.0/24 (lan0)
  • 192.168.33.0/24 (vlan0)

和第三个连接,

  • DHCP (wan),用于 Internet 访问。

我希望能够在 lan0 和 vlan0 段中路由所有内容(tcp、udp、icmp 等)。我已经使用 YaST 启用了 ip 转发和 ip 伪装。我还将 192.168.xx.0/24 添加到 SuSEfirewall2 中的受信任网络,并在 FW_ROUTE 设置中设置显式路由。rp_filter 对两者都关闭。

我在两个网段上都可以访问互联网,并且能够在两个方向上 ping(路由器 - 网段上的 pc),但无法从 lan0 的机器 ping 到 vlan0 的机器。每当我尝试从 lan0 ping 到 vlan0 时,我都会收到“无法访问目标主机”错误。

我的理解是我缺少一些主要设置,这些设置可以让路由器将数据包从 lan0 路由到 vlan0,而不是伪装它们并发送到 Internet。lan0/vlan0 的 Windows 框也看不到彼此 :(

任何帮助将不胜感激。

0 投票
1 回答
1028 浏览

android - 从Android上的IPv4地址合成IPv4映射的IPv6地址?

我正在尝试从 Android 中的 IPv4 地址(在本机代码或 Java 本身中)合成 IPv6 地址,如RFC-7050中所述,以便在 NAT64 后面使用。

在 iOS 中工作时,此选项可通过调用 来获得getaddrinfo,但似乎 Android 的实现getaddrinfo只会为主机名合成 IPv6,而不是 IPv4 地址。

在 iOS 上,在 NAT64 之后,以下代码将在变量res的地址列表中生成一个合成的 IPv6 地址。但是,在 Android 上,相同的本机代码将生成 IPv4 地址,除非我将主机名而不是 IPv4 地址传递给getaddrinfo.

编辑

我知道 Android 实现了 CLAT/464lat,但这并不涵盖所有设备和网络。一个典型的例子是仅 IPv4 网络后面的 NAT64 网络。

示例:Internet -> IPv4 Only 网络-> NAT64 网络->客户端

客户端将具有RFC-4193下的本地 IPv6 地址(我相信),但只能通过其 NAT64 网关访问互联网,这意味着 NAT64 必须在将地址发送到上游之前对其进行转换。

所以我需要一种为合成的 IPv6 地址生成前缀的方法

理想情况下,我们需要合成一个 IPv6 地址才能到达 IPv4 端点。

0 投票
1 回答
219 浏览

apache-spark - 多宿主 Spark 集群

我正在努力在多宿主网络情况下设置 Spark 集群,但遇到了一些问题。我将从物理配置开始。

我在一个机架中有 12 个节点,它们有一个使用 ipoib 的机架间 100G infiniband 网络和一个 1G 管理网络。

当我从集群上的主节点运行作业时,Spark 运行良好,但现在我正尝试从连接到管理网络的工作站执行作业,这是我遇到麻烦的地方。

所有 spark 节点的主机文件都指向 infiniband 网络,因为我希望它们通过该网络进行通信。我必须将主节点的 SPARK_MASTER_HOST 设置为 0.0.0.0 才能从我的工作站连接到主节点。

现在我可以创建一个 SparkSession 并执行操作,但它总是挂起,当我查看工作人员的日志时,我看到他们收到“没有路由到主机”错误。似乎即使节点上的默认路由设置为管理子网,它也试图使用 infiniband 网络连接回客户端。(我应该指出,我可以从所有客户端 ping 我的工作站,所以我知道网络路由很好。目前所有的防火墙都关闭了)

附带说明一下,由于这种设置,spark master web 界面不能很好地工作,因为所有指向工作程序的链接都指向 infiniband IP 地址,所以它总是失败,但如果你只是手动更改 IP地址栏到它工作的正确子网。这也很好解决,但并不是什么大不了的事。

我尝试查看 spark 文档,但我并没有真正找到任何看起来有用的东西,我尝试使用一些网络设置,但我没有太多运气。我很难相信 spark 不支持拥有专用网络,但也许就是这样。

我很感激你们能给我的任何帮助或想法。

0 投票
1 回答
233 浏览

amazon-web-services - 如何在 AWS 上调整和衡量网络性能

最近,我一直在努力了解 AWS 上节点之间的网络速度(下行链路)(在多宿主集群中,不同区域的计算机)。

当我使用我编写的脚本(基于此链接和 SCP)或使用 Iperf 测量它时,我有很多波动。我相信它是基于快速变化的网络使用(主要是在区域之间),但我仍然不了解 AWS 文档关于我所支付的性能,例如最低和最高下行链路速率(aws 实例)。

一开始我尝试了T2类型,看到它的CPU性能爆发了,我想可能是网卡性能也爆发了,所以我转向了M4类型,但我也遇到了与M4相同的问题。有什么方法可以根据类型和风格知道我的网卡下行速率吗?

*我在 AWS 论坛上问过类似的问题,但没有得到回复 ( https://forums.aws.amazon.com/thread.jspa?threadID=296389 )。

0 投票
1 回答
25 浏览

javascript - 将多个 Node.js 应用程序限制为具有多个 IPv4 地址的机器上的特定 IP 地址

我将设置一台 Ubuntu 19.10 机器,该机器具有一两个有线网络接口,并为其分配了多个 IP 地址(例如 10.0.0.1 和 10.0.0.2)。

我们如何运行 2 个相同的 Node.js 应用程序,第一个使用 10.0.0.1,第二个使用 10.0.0.2?

换句话说,当第一个应用程序(使用 10.0.0.1)查询远程 API 服务时,该请求被视为来自 10.0.0.1。第一个应用程序还侦听发送回 10.0.0.1 的 API 响应。同样,第二个应用程序仅限于 IP 地址 10.0.0.2。

0 投票
1 回答
71 浏览

sockets - SCTP : 同时用两个接口传输

在我的机器上,我有 2 个接口连接到另一台具有 2 个接口的机器。我想同时使用两个接口来传输数据。从 SCTP 来看,每台机器都是一个端点。所以,我使用了一对一的套接字。在服务器端,我尝试绑定INADDR_ANYbind()一个和bindx()第二个。在客户端,我尝试connect()connectx(). 无论我尝试什么,SCTP 在给定时间只使用两个接口之一。

我还测试了 Iperf 上的 sctp 功能和源代码中的测试应用程序。没有任何效果。

我在这里想念什么?您是否必须手动将每个数据包从一个或另一个地址发送到一个或另一个地址?

肯定有一个功能,您可以在其中构建多个流,其中每个流允许一对特定地址之间的通信。然后,当您发送数据包时,SCTP 会自动选择将数据包发送到哪个流。

提前致谢!