我在无线路由器后面的局域网中有两台计算机。
一个拥有 IP 192.168.1.2 的 XP
这个有 W7,IP 为 192.168.1.7
如果我尝试从这台计算机 ping 另一个,我会得到这个:
C:\Users\Srekel>ping 192.168.1.2
Pinging 192.168.1.2 with 32 bytes of data:
Reply from 192.168.1.7: Destination host unreachable.
Reply from 192.168.1.7: Destination host unreachable.
Reply from 192.168.1.7: Destination host unreachable.
Reply from 192.168.1.7: Destination host unreachable.
Ping statistics for 192.168.1.2:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Run Code Online (Sandbox Code Playgroud)
Tracert 给出相同的结果:
C:\Users\Srekel>tracert 192.168.1.2
Tracing route to 192.168.1.2 over a maximum of 30 hops
1 Kakburken4 [192.168.1.7] reports: …Run Code Online (Sandbox Code Playgroud) 我正在运行 Windows Server 2008 R2,我们有一个应用程序从(绑定到)服务器上的公共 IP 连接到 127.0.0.1:8334 [连接到侦听 0.0.0.0:8334 的服务]
在 Windows 2003 中,这没有问题。我们可以使用 TCP 从 1.2.3.4 [eg] 连接到 127.0.0.1:8334 就好了。
在 Windows 2008 中,我们发现从公共 IP(例如 1.2.3.4 到 127.0.0.1:8334)的 TCP 连接甚至失败。但该服务接受从 127.0.0.1 到 127.0.0.1:8334 和 127.0.0.1 到 1.2.3.4:8334 的连接。
尝试关闭 Windows 防火墙,配置其日志记录等(没有显示有用的日志条目),但无济于事。这是新网络堆栈的问题吗?
编辑
1.2.3.4 正在尝试连接到同一台机器上的 localhost [127.0.0.1]
主机文件是默认的 Windows 2008 主机文件。
环回检查信息,有趣。试过了……没用。交叉检查以验证 Id 是否正确完成了所有操作 - 我有。
我想知道是否有使用 NAT 或其他方式来转发端口的解决方案 - 如果我将 127.0.0.1:port 转发到 1.2.3.4:port,那会起作用吗?鉴于应用程序侦听 0.0.0.0:port,它将在 1.2.3.4:port 上获取连接
HOSTS 文件确实包含 localhost 127.0.0.1 - 但是,hosts 文件仅用于主机名查找。在这种情况下,我们的应用程序不会查找任何主机名,因为 127.0.0.1 IP 地址被硬编码到其中(而不是 localhost 主机名)。所以 …
在 OS X 10.6 上,您没有iptables,那么永久重定向所有发送到端口 80 的请求到另一个端口(如 8080)的完整解决方案是什么?
它必须是持久的。
一段时间以来,我一直在努力解决这个不容易重现的问题。我使用的是 linux 内核 v3.1.0,有时路由到几个 IP 地址不起作用。似乎发生的事情是内核没有将数据包发送到网关,而是将目标地址视为本地地址,并尝试通过 ARP 获取其 MAC 地址。
比如现在我当前的IP地址是172.16.1.104/24,网关是172.16.1.254:
# ifconfig eth0 eth0 Link encap:Ethernet HWaddr 00:1B:63:97:FC:DC
inet addr:172.16.1.104 Bcast:172.16.1.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:230772 errors:0 dropped:0 overruns:0 frame:0
TX packets:171013 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:191879370 (182.9 Mb) TX bytes:47173253 (44.9 Mb)
Interrupt:17
# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 172.16.1.254 0.0.0.0 UG 0 0 0 eth0
172.16.1.0 0.0.0.0 255.255.255.0 U 1 …Run Code Online (Sandbox Code Playgroud) 我的 CentOS 6.3 机器有问题。我们在服务器中有两个网卡(eth0 和 eth1),每个网卡都分配了一个来自不同子网的 IP,比方说 eth0:192.168.1.2/24(网关 192.168.1.1)和 eth1:192.168.2.2/24(网关 192.1688) 2.1)。真正的 ips 是世界可路由的。
每个 NIC 连接到不同的交换机,但最终连接到一个路由器。在路由器上,这两个子网位于不同的 VLAN 中,连接到 NIC 的端口没有标记,因此没有将 VLAN id 传递到服务器上。
现在在 FreeBSD 上,我只是将 ips 分配给每个 NIC,它就可以正常工作,两个 IP 都可以访问。在 CentOS 上,我只能访问网关处于活动状态的 IP 作为默认路由。我可以 ping 同一个 VLAN/子网内的任何 IP,但在此之外无法访问。
当我对每个网关进行跟踪路由时,我看到它们通过了相应的 NIC,这是有道理的,因为网关在范围内。但是在子网之外,我目前只能 ping 192.168.1.2。
IPtables 目前也不活跃。
要使其发挥作用,需要采取哪些措施?
我在谷歌上搜索了几个小时,尝试了不同的方法,但没有用。我觉得我错过了一些重要的东西,希望能轻松解决:-)
任何帮助表示赞赏谢谢!斯科特
路由
# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
192.168.2.0 0.0.0.0 255.255.255.0 U 0 0 0 …Run Code Online (Sandbox Code Playgroud) 我的台式机运行 Trisquel GNU/Linux 6.0(基本上是 Ubuntu 12.04 的自由版本),我使用 OpenVPN 连接到商业 VPN 提供商以访问互联网。
它目前通过 VPN 路由我的所有流量,这很棒,但我正在寻找一种方法来允许对一个特定 IP 地址的请求绕过 VPN。我确定有一种方法,但重复的网络搜索还没有找到任何东西(我能找到的最好的是在 Windows 的 Cisco VPN 客户端上执行此操作的说明)。
你能帮我吗?
谢谢。
Citrix Netscaler 有一个有趣的属性,它将信息嵌入到发送到主机的 TCP 数据包中。此属性以这样一种方式回传给 Netscaler,Netscaler 可以使用它来确定这必须采用哪个虚拟服务器、主机和路由。
向主机回显专有信息的能力具有有趣的应用。
Citrix Netscaler 如何实现这一点(它在哪里填充位),以及数据包中的哪些其他位置 Netscaler(或类似设备)理论上可以填充数据?
哪些设备会(或不会)允许此自定义数据原封不动地通过?
RFC 1034要求我们为 DNS 服务器分配至少两个 IP 地址。但是,如果我们使用任播寻址,就可以通过单个 IP 地址实现冗余。BGP 任播似乎可以很好地扩展到数百甚至数千台服务器。
如果是这样,为什么我们仍然需要多个 IP 地址用于 DNS 服务器?如果我们已经有了任播,它是否真的增强了冗余(有助于提高可用性),还是只是一个神话?
如果我们只使用一个 IP 地址,我们预计会面临哪些问题和错误?
我的意思是完全省略辅助 DNS 地址,或者1.2.3.4当某些设置需要至少两个地址时,使用虚假 IP(例如)作为第二个地址。
我的服务器无法 ping/访问外部的任何其他服务器。
ping6 适用于我的本地fe80::468...地址以及2a01:4f8...,但不适用于fe80::1!
错误/麻烦/问题:
fe80::1 dev eth0 FAILED
Run Code Online (Sandbox Code Playgroud)
ping6 2001:4860:4860:8888(谷歌)
PING 2001:4860:4860:8888(2001:4860:4860:8888) 56 data bytes
From 2a01:4f8:202:43d5::2 icmp_seq=1 Destination unreachable: Address unreachable
Run Code Online (Sandbox Code Playgroud)
ping6 -I eth0 fe80::1
PING fe80::1(fe80::1) from fe80::468a:5bff:fe2c:3d6a eth0: 56 data bytes
From fe80::468a:5bff:fe2c:3d6a icmp_seq=1 Destination unreachable: Address unreachable
Run Code Online (Sandbox Code Playgroud)
ping6 -I 2a01:4f8:202:43d5::2 fe80::1
PING fe80::1(fe80::1) from 2a01:4f8:202:43d5::2 : 56 data bytes
From 2a01:4f8:202:43d5::2 icmp_seq=1 Destination unreachable: Address unreachable
Run Code Online (Sandbox Code Playgroud)
设置
1: …Run Code Online (Sandbox Code Playgroud) 3.6 之前的 Linux 内核使用路由缓存来进行 IPv4 多路径路由,这意味着在两个单独的线路/ISP 之间路由非常容易。从 3.6 开始,算法改为按数据包,这意味着需要一些路由表/规则/iptables 标记技巧来实现两条线路/ISP。
但是,如果您有两条线路与同一个 ISP 可以以平衡/故障转移方式在每个数据包的基础上沿着两条线路路由一个 IP,那么从 3.6 开始,您可以轻松实现线路绑定(在 IP 级别),因为每个数据包在两个方向上的路由。
从 4.4 开始,内核再次更改为基于源地址和目标地址散列的基于流的负载平衡。
我目前正在运行内核 4.4.36,并且正在通过 PPPoE 连接使用多路径路由。我的来自 ISP 的下行流量基于每个数据包通过两条单独的线路进行路由(一个 IP 沿两条线路路由)。这使我的下载速度比单个线路的速度更快。几乎两条线的速度加在一起。它运行良好,Skype 视频、VoIP (UDP)、YouTube 等都运行良好。
由于拥有如此良好的下游体验,我想尝试上游,但我的上游流量是根据较新的基于流的算法在两个 ppp 设备(具有相同的 IP 地址)之间路由的。这意味着我无法达到比单行速度更快的上传速度。
有没有办法将当前内核配置为使用 per-packet 算法?或者其他一些方法来实现每包多路径路由?我是否需要恢复到较旧的内核(由于其他各种原因我不想这样做)?
我的 ISP 不支持多链路 ppp。
如果相关,我目前正在 Raspberry Pi 3 上运行 Arch Linux ARMv7。