![通过 MAC 地址进行端口转发的问题](https://linux22.com/image/718486/%E9%80%9A%E8%BF%87%20MAC%20%E5%9C%B0%E5%9D%80%E8%BF%9B%E8%A1%8C%E7%AB%AF%E5%8F%A3%E8%BD%AC%E5%8F%91%E7%9A%84%E9%97%AE%E9%A2%98.png)
我的服务器位于华为 HG569 路由器后面。已通过路由器设置了端口转发,并且正常工作时,一切如预期。
现在,问题是 HG569 路由器使用 MAC 地址来确定将哪些端口转发到哪台机器,这与我见过的同类路由器使用 IP 地址的方式不同。服务器有成组的 NIC,当服务器需要重新启动时,它会(似乎是随机地)选择成组中 NIC 的两个 MAC 地址之一。
据我所知,该问题有三种解决方案:
更换路由器;使用使用 IP 地址进行端口转发的路由器。这里的问题是 ISP 不支持此配置,因此我只能自己处理,如果出现问题,就必须重新插入 ISP 提供的路由器
以某种方式允许要转发的协议与多个 MAC 地址相关联。虽然 UI出现为了实现这一点,实际上它不允许我向每个协议添加多个设备
强制服务器操作系统 (Windows Server 2016) 始终使用其组中两个 MAC 地址之一。我知道可以在设备管理器中执行此操作,但它真的像选择两个物理 MAC 地址之一并将其输入到虚拟 NIC 的 MAC 地址中一样简单吗?
也许还有其他我遗漏的方法。如果有的话,我真的很感激有人指出了实现此目的的方法。
答案1
不存在“第 2 层端口转发”之类的东西。MAC 层只是接入层,没有要连接或转发的端口。我认为您的路由器只是通过将其与 MAC 表匹配来从连接的客户端学习一个 IP。有时这样做是为了在设备关闭时停止转发,以限制 WAN 端的流量。这很愚蠢,但是...
在这种情况下,您所能做的就是修复多主 MAC。