更新

更新

我有一台服务器和一台客户端 PC 直接连接到同一个桌面交换机。但我还想在它们之间建立一条专用的单独高速链路。目标是用 1G 将它们连接到互联网和 LAN,但 PC 和服务器之间的流量为 10G:

在此处输入图片描述

如果相关的话,PC 在华硕工作站主板上运行 Windows 10,服务器在 Supermicro 主板上运行 FreeBSD 12。两者都有 Intel 1G 和 Chelsio 10G NIC,并且两个基板都具有功能齐全的工作站/服务器固件。两者目前都位于同一 LAN 范围的子网中。

我的问题:

  1. 有哪些更正确或更容易实现的方法来配置 PC 和服务器的网络,以便循环不会导致网络问题?这意味着,PC 和服务器之间的流量可以仅有的通过 10G 链路,与任何其他设备之间的流量都可以绝不通过 10G 链路?

    (这样,如果我断开 PC 和交换机之间的线路,PC 就不会通过服务器的环路连接到其他 LAN 设备)
     
  2. 如果将来我将交换机升级为可以处理访问控制的完全托管交换机(例如 Netgear ProSAFE),或者我开始在其上使用 VLAN,“正确答案”会改变吗?

更新

由于评论很长,这里是对他们所揭示的一些问题的总结,这些问题使得这个问题变得很难。

主要问题是网络是基于 DNS 的。这很重要,因为 IP 地址不会显示在 Windows 文件资源管理器中,只有发现的主机名才会显示。IP 地址可用于 SMB 文件服务器及其共享,但每次访问文件共享时都必须手动输入,不幸的是许多程序没有输入手动路径的范围,预计所有可浏览的设备都会出现在已填充的文件资源管理器导航树中,或从已发现设备列表中下降。因此,对服务器使用 10G IP 并不是一个可靠的可行解决方案。

(发现大概是来自 PAC 的 DNS 或 WS-discovery,以及来自其他一些设备的 DNS/WS-Discovery/mDNS-bonhour。SMBv1/NetBIOS/WINS 均已禁用 - 感谢 @user1686 注意到这一点)

事实上,服务器有 2 个未桥接的 NIC,其中一个没有链接到 DNS 服务器并且是直接点对点的,这可能意味着它的 IP 需要不同。(并且 10G IP 需要是静态的,因为该链路/子网上没有 DHCP)

我还怀疑,如果它不使用 DNS,我必须单独阻止通过 1G 链接进行的发现,或者将发现配置为使用 DNS 而不使用其他方法 - 从记忆中,可以配置 Windows 启用哪些发现方法以及以什么顺序尝试它们,并仅指定 DNS?再次感谢@user1686

从答案来看,我认为可能有 3 种解决方案。哪种更正确,或者它们都有效吗?

可能的解决方案 1?

到目前为止,我从答案中得到的是如果10G 位于不同的子网手动入侵 PC 主机文件以覆盖 DNS,并使用 10G IP 作为服务器设置路由或防火墙以确保服务器 1G IP 无法从 PC 访问,这听起来可行。

但它非常笨拙,感觉像是“黑客工作”。在单个机器上设置了太多手动覆盖。我不知道这是否“正常”。

可能的解决方案 2?

另外一个选择依赖于在 上运行的本地 DNS Unbound,它(像BIND)支持视图。这意味着 DNS 服务器可以配置为在查找时向所有设备提供服务器的常规 IP,但向 PC(仅)提供服务器的 10G IP。我不确定这是否足够 - 是吗?

如果是,那么解决方案可能是:LAN 子网 10.0.0.0/8,DNS 分配的服务器 1G IP 为 10.0.0.1 服务器 10G 静态 10.0.0.2,然后使用 DNS 将服务器的 1G IP 提供给除 PC 之外的所有设备,但将服务器的 10G IP + PC 的 10G NIC 作为其第一跳/网关返回到 PC。

简单来说,结果是:1G 和 10G IP 位于同一子网,因此 PC 认为服务器位于正确的子网中。但 10G IP 对所有其他设备不可见,1G IP 可见但被 PC 忽略,因此不会发生冲突。因此,这几乎全部在 DNS 中完成。

这可行吗?

可能的解决方案 3

与上面 (2) 相同的 IP,但配置 DNS 以返回两个都IP 至全部设备。非 PC LAN 设备将无法找到 10.0.0.2,并最终决定 10.0.0.1 是使用的 IP。PC 受到防火墙保护,因此它会将所有数据包丢弃到 10.0.0.1,从而决定 10.0.0.2 是唯一有效的 IP(可能需要第一跳提示)。因此,所有这些都在 DNS 中完成,禁止防火墙条目以阻止 1G 循环。

同样可行吗?

答案1

配置 PC 和服务器的正确方法是什么,以便循环不会导致网络问题?这意味着,往返于其他设备的流量只能正常通过交换机,并且任何设备都不会被视为通往另一设备的桥梁或路由?

只需使用电缆连接两者并配置两个端口以拥有 IP 地址即可。此链路应使用与主 LAN 完全不同的子网,例如,如果 1G 交换机承载 192.168.1.0/24,则专用 10G 链路应为 192.168.2.0/24(或甚至更好,为 /30)。

除非您特意设置桥接,否则不会发生桥接。Windows 和 FreeBSD(或任何其他操作系统)都不会自动启用它。

除非您特意设置数据包转发,否则不会进行路由。Windows 和 FreeBSD 都不会自动启用它。

(此外,IPv4 使用明确配置的路由表,因此即使 PC 或服务器做过已启用路由,路由仍然不会发生这种情况,因为其他主机无法知道它们可以用作网关。 IPv6 需要多加注意,以确保机器不会发送路由器广告,但这在 Windows 和 FreeBSD 上也是默认禁用的。)

当然,如果你不想让PC使用服务器作为网关,那么不填写在 10Gbit NIC 上配置 IP 地址时,“默认网关”字段...

如果将来我将交换机升级为可以处理访问控制的完全托管交换机(例如 Netgear ProSAFE),或者我开始在其上使用 VLAN,“正确答案”会改变吗?

不。

主要问题是网络基于 DNS。这很重要,因为 IP 地址不会显示在 Windows 文件资源管理器中,只有发现的主机名才会显示

这一发现不是基于 DNS。它可能使用 LLMNR 和 WS-Discovery,或较旧的 NetBIOS(如果允许 SMBv1),或 mDNS 和 DNS-SD(但 Windows 实际上尚不支持),甚至 LDAP(Active Directory),但它不会使用普通 DNS。

IP 地址可用于 SMB 文件服务器及其共享,但每次访问文件共享时都必须手动输入,并且许多程序不幸没有输入手动路径的范围,预计所有可浏览的设备都将出现在填充的文件资源管理器导航树中,或从发现的设备列表中下降而来。

如果您不介意手动输入路径,则可以使用“映射网络驱动器”或将这些路径映射到驱动器号net use。它们将永久显示在“此电脑”子树下。

(并且 10G IP 需要是静态的,因为该链接/子网上没有 DNS)。

DNS 不处理地址分配。我想您指的是“DHCP”?

是的,通常这种点对点链接没有 DHCP,但另一方面,没有什么可以阻止您在服务器上运行 DHCP 守护程序并允许至少 PC 动态获取其地址。(但要小心操作 - 不要公布“路由器”DHCP 选项。)

否则服务器的 10G NIC 必须桥接至 1G NIC(为服务器提供一个唯一的 IP,但会破坏其他一切!)

即使使用 STP 来避免环路,桥接也并非真正有效的解决方案。没有办法告诉 STP 使用特定路径仅有的用于访问某些 MAC 地址 – 链接要么处于活动状态,要么不处于活动状态。

(他们不将交换机称为“以太网路由器”是有原因的。)

我猜想较新的 TRILL 或 802.1aq“最短路径桥接”协议确实可以在这里发挥作用(因为它们MAC 级别的路由),但看起来仍然直到它们开始出现在价格合理的消费级交换机中。(PC 和服务器也需要参与其中,而对于 Windows 来说,这更不可能。)在此之前,STP 要么全有,要么全无。

如果是,那么解决方案可能是:LAN 子网 10.0.0.0/8,服务器 1G IP 由 DNS 分配为 10.0.0.1 服务器 10G 静态 10.0.0.2

这两个链接确实需要位于不同的子网,否则您将需要更多的在 PC 上要覆盖的事情......

这种方法的问题是,当主机有多个属于同一子网的接口时,它通常会不是尝试猜测要为每个单独的目标 IP 地址使用哪一个。它只会始终为整个子网选择一个接口。除非您手动添加更具体的路由来覆盖每个目标。

(不过,Windows 实际上可能会猜测——我最近没有检查过。但我相信它只将这种猜测应用于指定的“链接本地”地址范围。)

PC hosts 文件被手动破解以覆盖 DNS使用 10G IP 作为服务器,并设置路由以确保 PC 无法访问服务器 1G IP

Aron 的建议路线才不是使 1G IP 地址无法访问。相反,它使 1G IP 地址可通过10G链路访问。

所以实际上你不需要两者——你只需要一个或者另一个。

单个机器上设置的手动覆盖太多。我不知道这是否“正常”。

如果您采纳 Aron 的建议,则只需要覆盖一件事:两台计算机的 1G 地址的路由。

(不幸的是,主机不参与 IP 路由协议是“正常”的——Windows 不支持 OSPF,因此无法自动确定路由成本,我怀疑你的 LAN 路由器也不支持。Windows 确实支持 RIPv2,但我不确定这在这种情况下是否有用,或者确实不会更多的比静态路由覆盖更有效。)

与上述 IP 相同,但配置 DNS 以将两个 IP 返回给所有设备。非 PC LAN 设备将无法找到 10.0.0.2,并最终决定 10.0.0.1 是使用的 IP。PC 受到防火墙保护,因此它会将所有数据包丢弃到 10.0.0.1,从而决定 10.0.0.2 是唯一有效的 IP(可能需要第一跳提示)。也可以吗?

这可能会有效——但同样,地址需要位于不同的子网上。

如果您对手动防火墙规则感到满意,那么手动路由也应该没问题——它们具有相同数量的“覆盖”,并且是略微更好的解决方案。(它们难道不是您所说的“第一跳提示”吗?)

答案2

  1. 问题:默认情况下不会发生桥接或路由。您必须主动启用它。
  2. 问:不。

最简单的配置:为 10 GbE 链路使用不同的子网。/30 就足够了。某些设备甚至可以在 /31 子网上工作。使用地址不必通过 1 GbE 连接访问的子网。使用不同的子网,数据包就不会随机地朝一个方向或另一个方向传输。

由于您的 1 GbE 连接上可能存在 DNS,因此避免产生歧义的最简单方法是不要为 10 GbE 子网使用名称。由于无论如何都是点对点的,因此只需使用 IP 地址来配置应使用 10 GbE 链路的服务即可。

答案3

10gb lan 称之为内部网。例如 xyz.local 10.1.1.0/24

1gb 称之为互联网 172.16.1.xcx/24

将所有 10 GB 设置在内联网上((10.1.1.0/24),没有任何网关上行地址

DNS 1. ROUTER_IP(仅在客户端主机上)

服务器 DNS DNS 1= 127.0.0.1(在服务器上)DNS2 = 9.9.9.9

在局域网上

第二个接口上的客户端/服务器使用 1GB 局域网的 IP 空间

即 172.16.1.0/24 默认网关和DNS路由器IP

配置两个局域网的路由器

局域网内 IP 101.1.1/24 未定义网关 DNS1 服务器 IP DNS2 发布 DNS (9.9.9.9)

互联网局域网 ip 172.16.1.1/24 网关广域网 ip DNS1= 服务器 ip 172.16.1.xxx DNS2 9.9.9.9

域名 xyz.local。

对于 linux/bsd,请相应地配置 /etc/resolve.conf

所有 LAN 流量都将通过 10.1.1.xxx 进行解析

网关将会探测本地 DNS 中的 xyz.local

其余的都将转到公共 DNS

放一个

相关内容