我有一台具有 1G 和 10G 链路的服务器,以及一台 1G + 10G 交换机。我希望能够同时使用 1G 和 10G 链路 - 要么相互测试,要么通过 SSH 在一个链路上执行命令,同时在另一个链路上进行测试。这大致是我想要的拓扑。但我不确定如何最好地在设备之间并行设置两个链路,并让它们被视为不同的链路而不会发生冲突或问题。
这是我想要的简化拓扑:
因为具体的结果可能会有帮助
我希望能够通过我的 1G 连接从 PC 运行 SSH 到服务器,以便我可以通过 SCP/Samba 严格测试 10G 链接,或者重新配置它,并彻底测试它。
我还想保持我的 SSH 会话处于活动状态且可见,并比较通过 1G 和 10G 线路在相同端点之间发送的相同流量的同时流量结果。
我想完全控制从客户端发送哪个链接数据。例如,我希望能够 ping SERVER-1 或通过 SCP/Samba 发送文件,如果我收到回复,请确保数据通过 SWITCH-3 而不是 SWITCH-4 -> SERVER-2 -> SERVER-1 发送,并且实际上在服务器上桥接。
理想情况下,PC 应该将两个服务器 IP 视为单独的设备,而不会意识到它们是同一台机器。(我不会在两个链接上发送任何异常信息,如果将 SERVER-1 和 SERVER-2 配置为实际上它们是指向两个单独的服务器而不是同一个服务器的链接,则可能会发生冲突)。同样,服务器应该将来自 PC 的两个链接视为单独的数据流,可能来自不同的 PC。
最后,我可以连接和断开文件共享链接,但通过 1G 链接保持恒定的 PC + 互联网连接。
我不确定这种并行链接的含义,也不知道我需要做什么才能完全隔离它们。如果有帮助的话,服务器运行 FreeBSD 11。
对于部分测试来说,真正有帮助的是拥有 2 个到服务器的链接,一个用于管理,一个用于测试(中断!),即使它们链接相同的 2 个主机,它们也不会相互交互或路由。
我考虑过给它们分配单独的子网(SERVER-1 @ 10.1.0.0/24 和 SERVER-2 @ 10.2.0.0/24),但我不确定要走多远才能达到我想要的效果。我现在没有在 LAN 上运行的 VLAN,所以如果这是一个解决方案,那它实际上不是我现在可以使用的。
更新
“交换机”是一个 pfSense 平台,因此目前它是 FreeBSD 11,带有 2 个双 10G SFP+ Chelsio NIC。它永远不会达到线速,我知道这不是它的目标角色,但使用轻量级规则集,它可以在 2 个不同的链路上同时以 4.5 Gbps 的速度稳定地推送 Samba 数据包,以进行临时测试或在购买替代品时更换损坏的 10G 设备,这对于我正在做的事情来说已经足够了,因为它是家庭实验室/实验而不是生产。
因此它可以做任何pf
+ Chelsio 卡上固件能做的事情,这使其具有高度灵活性。但我原以为有一种标准的方法来设置它,所以我很感兴趣。
背景是,我的主要 10G 交换机刚刚坏了,我现在花了一些时间进行早该进行的故障排除/调整,学习一些新的东西,并做一些测试,这就是为什么我不需要更多的带宽,以及为什么在一个月左右的时间内准备好更换交换机之前这都没问题。
答案1
听起来,您需要做的就是为每个 NIC 分配一个不同的 IP 地址,这可以通过静态方式或通过 DHCP 完成。然后,只需确保在与服务器通信时使用正确的 IP 即可。
例如,如果您将 NIC 1 配置为,192.168.10.101
将 NIC 2 配置为192.168.10.202
:
- 两个网卡都位于同一个 LAN 上
- 发往的流量
192.168.10.101
将始终通过 SWITCH 3 <-> SERVER 1 - 发往的流量
192.168.10.202
将始终通过 SWITCH 4 <-> SERVER 2
如果您有本地 DNS 服务器设置,则可以为每个 IP 创建单独的主机条目,以便更轻松地引导流量。
答案2
虽然原则上你的交换机应该从 NIC1 和 NIC2 的 MAC 地址(当然,它们需要不同的地址)中找出数据包应该走哪条路径,而不应该沿着另一条路径发送它,但为了绝对确保(并且你想学习新的东西),我会设置虚拟局域网完全分离数据路径。
普菲斯支持VLAN,因此您的交换机也应该如此。粗略地说,VLAN 数据包就像普通的以太网数据包,但带有额外的标记字段,因此您可以设置交换机,使其充当几个“叠加”的虚拟交换机。您的交换机还应该能够添加或删除标记。
例如,您可以拥有一个带有标签的 VLAN 1
,2
如下3
所示:
Switch Server
tag 1
ROUTER NIC1 NIC3 ----- NIC1
PC ----- NIC2 NIC4 NIC2
tag 1
ROUTER NIC1 NIC3 NIC1
PC ----- NIC2 NIC4 ----- NIC2
tag 2 tag 2
untag tag 3
ROUTER ----- NIC1 NIC3 ----- NIC1
PC ----- NIC2 NIC4 NIC2
tag 3
路由器可能无法处理带标记的 VLAN 数据包。
为不同的 VLAN 创建不同的子网,例如假设 192.168.0.0/24 是路由器提供的子网(标签 3),那么 10.0.1.0/24 和 10.0.2.0/24 是标签 1 和标签 2 的子网。
您可以使用ip
将 VLAN 添加到网络接口并设置地址,例如对于带有和的服务器eth1
,eth2
您可以这样做
ip link add link eth1 name vlan1 type vlan id 1
ip link add link eth2 name vlan2 type vlan id 2
ip link add link eth1 name vlan3 type vlan id 3
ip addr add 10.0.1.10/24 dev vlan1
ip addr add 10.0.2.10/24 dev vlan2
ip addr add 192.168.0.10/24 dev vlan3
您可以告诉某些应用程序(例如 Samba)仅绑定到特定接口,例如vlan3
;或者您可以创建网络命名空间,并将其放入vlan1
该命名空间并sshd
在该命名空间中运行。等等。
VLAN 标记确实有一些开销,尽管您的交换机原则上应该能够在硬件中完成此操作,因此也要在仅使用未标记的数据包时试验速度。