我有一台服务器和一台客户端 PC 直接连接到同一个桌面交换机。但我也想在它们之间放置一个专用的单独高速链路。目的是将它们连接到 1G 的互联网和 LAN,但 PC 和服务器之间的流量为 10G:
如果相关,PC 在华硕工作站板上运行 Windows 10,服务器在 Supermicro 板上运行 FreeBSD 12。两者都具有 Intel 1G 和 Chelsio 10G NIC,并且两个基板都具有功能齐全的工作站/服务器固件。目前两者都在同一个局域网范围的子网中。
我的问题:
- 配置 PC 和服务器网络的更正确或更容易实现的方法是什么,以便循环不会导致网络问题?意思是,PC 和服务器之间的流量只能通过 10G 链路,而进出任何其他设备的流量永远不能通过 10G 链路?
(因此,如果我断开 PC 和交换机之间的线路,PC 仍不会通过服务器通过环路连接到其他 LAN 设备)
- 如果将来我将交换机升级为可以处理访问控制的完全托管交换机,例如 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 提供给所有设备,但服务器将 10G IP 提供给 PC(仅)。我不确定这是否足够 - 是吗?
如果是,那么解决方案可能是: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 循环。
还可以用吗?
只需使用电缆将两者连接起来,并将两个端口都配置为具有 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网卡上配置IP地址时不要填写“默认网关”一栏...
不。
此发现不是基于 DNS 的。它可能正在使用 LLMNR 和 WS-Discovery,或者较旧的 NetBIOS(如果允许 SMBv1),或者 mDNS 和 DNS-SD(但 Windows 实际上还不支持),甚至是 LDAP(Active Directory),但它赢了'不要使用普通的DNS。
如果您可以手动输入路径,那么您可以使用“映射网络驱动器”或
net use
. 它们将永久显示在“此 PC”子树下。DNS 不处理地址分配。我想你的意思是“DHCP”?
是的,通常这种点对点链接没有 DHCP,但另一方面,没有什么可以阻止您在服务器上运行 DHCP 守护程序并至少允许 PC 动态获取其地址。(但要小心——不要宣传“路由器”DHCP 选项。)
即使使用 STP 来避免循环,桥接也不是一个很好的解决方案。没有办法告诉 STP仅使用特定路径来访问某些 MAC 地址 - 链接处于活动状态或不处于活动状态。
(他们不将交换机称为“以太网路由器”是有原因的。)
我猜较新的 TRILL 或 802.1aq “最短路径桥接”协议确实可以在这里工作(因为它们确实在 MAC 级别进行路由),但看起来它们还需要数年才能开始出现在负担得起的消费者交换机中。(PC 和服务器也需要参与,而对于 Windows,这更不可能。)在此之前,它是 STP 全有或全无。
这两个链接确实需要位于不同的子网中,否则您将需要在 PC 上覆盖更多内容...
这种方法的问题在于,当主机有多个属于同一子网的接口时,它通常不会尝试猜测每个单独的目标 IP 地址使用哪个接口。它总是喜欢为整个子网使用一个接口。除非您手动添加更具体的路线以覆盖每个目的地。
(不过,Windows 实际上可能会猜测 - 我最近没有检查过。但我相信它只会将此猜测应用于指定的“链接本地”地址范围。)
Aron 建议的路由不会使 1G IP 地址无法访问。相反,它使 1G IP 地址可通过 10G 链路访问。
所以实际上你不需要两者——你只需要一个或另一个。
如果您遵循 Aron 的建议,那么您只需要覆盖一件事:两台计算机的 1G 地址的路由。
(不幸的是,主机不参与 IP 路由协议是“正常的”——Windows 不支持 OSPF 以允许自动确定路由成本,我怀疑你的 LAN 路由器也不支持。Windows 支持 RIPv2,但我不是确定这在这种情况下是否有用,或者确实不会比静态路由覆盖更有效。)
这可能会奏效——同样,地址需要位于不同的子网上。
如果你对手动防火墙规则没问题,那么你也应该对手动路由没问题——它们是相同数量的“覆盖”,是一个更好的解决方案。(它们不是你所说的“第一跳提示”吗?)
最简单的配置:为 10 GbE 链路使用不同的子网。/30 就足够了。有些设备甚至可以在 /31 子网上工作。使用具有不必通过 1 GbE 连接访问的地址的子网。使用不同的子网,任何数据包都不会随机选择一种或另一种方式。
由于您的 1 GbE 连接上可能有 DNS,因此防止歧义的最简单方法是不为 10 GbE 子网使用名称。因为它无论如何都是点对点的,所以只需使用 IP 地址来配置应该使用 10 GbE 链路的服务。
10gb lan 称它为 intrAnet。即 xyz.local 10.1.1.0/24
1gb 称之为互联网 172.16.1.xcx/24
在内网 ((10.1.1.0/24) 上设置所有 10 GB 没有任何网关启动地址
DNS 1. ROUTER_IP(仅在客户端主机上)
服务器 DNS DNS 1= 127.0.0.1(在服务器上) DNS2 = 9.9.9.9
在国际局域网上
第二个接口上的客户端/服务器使用 1gb lan 的 IP 空间
即 172.16.1.0/24 默认网关和 DNS 路由器 IP
路由器配置了两个局域网
局域网内 IP 101.1.1/24 未定义网关 DNS1 服务器 IP DNS2 pub DNS (9.9.9.9)
Internet lan ip 172.16.1.1/24 网关 wan ip DNS1= 服务器 ip 172.16.1.xxx DNS2 9.9.9.9
域名 xyz.local。
对于 linux/bsd 相应地配置 /etc/resolve.conf
所有 LAN 流量都将通过 10.1.1.xxx 得到解决
网关将为 xyz.local 插入本地 DNS
所有其他将转到公共 dns
放一个