哦嗨,伙计们。我有一个关于设置的问题,作为一名新学员,我遇到了问题,因为互联网上几乎没有任何信息,更不用说类似案例了。
当前设置:
- 2 个网络,我们称之为 40.xxx.xxx.xxx 和 50.xxx.xxx.xxx
- 一台计算机(具体来说:一台 iMac),目前仅连接到 50.xxx.xxx.xxx 网络
- Apple TV 的电视屏幕,由于物理限制,只能连接到 40.xxx.xxx.xxx 网络
目标:能够从 50.xxx.xxx.xxx 网络访问所有 Apple TV。就我而言,我们在 Apple TV 上安装了软件,可以在电视屏幕上播放广告幻灯片,所以我猜这基本上就是将文件上传到 Apple TV。
局限性:40.xxx.xxx.xxx 网络(Apple TV 所用的网络)由一家外部公司为我们所在地的客人提供(免费 WiFi),因此路由器不是一个选择。
主意:iMac 需要保持与 50.xxx.xxx.xxx 网络的连接。我们的想法是也将其连接到 40.xxx.xxx.xxx 网络并执行一些 ROUTE ADD 操作,让 iMac 充当路由器。
话虽如此,我遇到了以下未解答的问题:据我所知,ROUTE ADD 命令仅在 iMac 连接到
- 通过 LAN 连接 50.xxx.xxx.xxx 网络,通过 WLAN 连接 40.xxx.xxx.xxx 网络或
- 通过 LAN 连接到 50.xxx.xxx.xxx 和 40.xxx.xxx.xxx 网络
是对的吗?
在第二种情况下,我是否需要为 iMac 安装第二个 NIC,因为 iMac 本身只有一个以太网端口?
这可行吗?还是我在网上读到的都是废话?
如果可以,那么是否可以让 50.xxx.xxx.xxx 网络上的任何设备与 Apple TV 进行通信,并以 iMac 充当路由器?
如果不可行,有什么解决办法吗?
答案1
需要注意三件事:
- 幸运的是,将 iMac 连接到两个网络并使其在两者之间路由应该很容易。
- 不幸的是,让 Apple TV 和其他设备知道并使用该路由可能很困难。因此,您的 iMac 将准备好路由,但实际上没有人会向它发送任何流量让其转发到另一个网络,所以它就像根本不存在一样。听起来您没有两个网络上的 DHCP 服务器和路由器的管理员访问权限,这进一步限制了您的选择。
- 同样不幸的是,大多数基于 LAN 的服务发现协议都是基于不会通过路由器转发的多播或广播,因此无论您想使用什么软件将视频/幻灯片/图片/其他内容发送到 Apple TV,都可能无法找到来自其他子网的 Apple TV。
在不知道你有哪些选择或哪些选择不适用的情况下,我很难就第 2 点和第 3 点向你提供建议。那么让我来告诉你如何做第 1 点:
在 iMac 上设置 IP 转发(基本路由)
如果您可以通过有线以太网访问这两个网络,则可以通过添加 Apple Thunderbolt GigE 加密狗或第三方 USB 3 GigE 加密狗(如果您不关心性能,也可以添加 Apple USB 2 10/100 以太网加密狗)为 iMac 添加以太网接口。顺便说一句,如果您的 iMac 恰好是 iMac Pro,它已经有两个以太网(均支持高达 10G)。
如果其中一个网络只能通过 Wi-Fi 访问,则仍可正常使用。只需通过 Wi-Fi 连接到该网络,然后使用以太网连接到另一个网络即可。
为了获得最佳效果,请在两个网络上为您的 iMac 指定一个静态 IP 地址。
要启用两个网络之间的数据包转发(路由),请运行以下命令:
sudo sysctl -w net.inet.ip.forwarding=1
要在每次重启时自动启用数据包转发,请执行以下操作:
sudo echo "net.inet.ip.forwarding=1" >> /etc/sysctl.conf
(这会将行“net.inet.ip.forwarding=1”附加到 /etc/sysctl.conf 的末尾。如果该文件不存在,则会创建它。)
现在,您的 iMac 已准备好在两个网络之间转发(路由)数据包,但我们还没有解决问题 2 和 3。
解决问题2的思路(宣传路线)
有很多不同的方法可以解决问题 2(让设备了解路线),但很难知道哪种方法适合您。以下是一些可能的方法:
- 如果您对两个网络上的其他路由器都有管理员权限,则可以在其中输入静态路由以了解 iMac 的路由。然后,您可以确保它们执行 ICMP 重定向,以便在设备需要使用该路由时直接与您的 iMac 通信。
- 如果其他路由器支持路由通告协议,您可能能够在 Mac 上运行路由通告守护程序来通告您的路由。
- 如果您控制两个网络上的 DHCP 服务器,则可以让这些网络将您的 iMac 列为两个网络的默认路由。然后让您的 iMac 拥有两个网络上原始路由器的静态路由。仔细想想,这可能很难处理,因为您需要一种方法来确保其余的 net-40 流量被路由到 net-40 的路由器,而其余的 net-50 流量被路由到 net-50 的路由器。您需要两个默认路由,具体取决于数据包来自哪个子网,我不确定如何设置它。
- 我可以探讨更多的可能性,但它们似乎越来越不可能成为您的好的解决方案。
至于问题 3(通过路由器进行服务发现),我想我首先要验证他们用来将内容发送到 Apple TV 的软件是否真的需要服务发现才能工作。如果需要,它使用什么服务发现协议。如果不知道这一点,很难提出解决方案。