![使用蜂窝调制解调器与蜂窝路由器连接互联网](https://linux22.com/image/1581412/%E4%BD%BF%E7%94%A8%E8%9C%82%E7%AA%9D%E8%B0%83%E5%88%B6%E8%A7%A3%E8%B0%83%E5%99%A8%E4%B8%8E%E8%9C%82%E7%AA%9D%E8%B7%AF%E7%94%B1%E5%99%A8%E8%BF%9E%E6%8E%A5%E4%BA%92%E8%81%94%E7%BD%91.png)
我正在开展一个项目,使用运行 Debian 的嵌入式 Rasberry Pi 计算机通过 4G 与互联网通信。
我最初使用的是蜂窝调制解调器,我们使用 PPP(第 2 层协议)从 Pi 与调制解调器进行通信。然后,Pi 从 Internet 服务提供商处接收动态 IP 地址。
不过,我们将用蜂窝路由器代替蜂窝调制解调器。我相信该设备将集路由器和调制解调器于一体。
那么,从计算机到路由器的通信将如何实现?我猜路由器已经完成了与调制解调器直接通信的工作,所以应该会更容易。
路由器是否自动从 ISP 获取 IP 地址,还是计算机仍获取 IP 地址?那么,为了通过互联网与外界通信,我必须与路由器的 IP 地址通信吗?这让我有点困惑。
答案1
路由器是否自动从ISP获取IP地址,还是计算机仍然获取IP地址?
通常上行连接建立后地址由路由器获取,您自己的设备通常会获取路由器分配的“本地”地址。
那么,为了通过互联网与外界通信,我必须与路由器的 IP 地址通信吗?这让我有点困惑。
其工作方式与所有其他路由器完全相同,其中可能包括您家里的路由器。
对于通过 IPv4 的入站连接,是的,其他主机将与路由器的 IP 地址(从 ISP 获取)进行通信。路由器将使用其配置的“端口转发”(又称 DNAT 规则)来决定将数据包转发到哪个内部地址。
对于通过 IPv6 进行的入站连接,路由器还会获取一系列公共地址并将其分发给您的设备。这样其他主机就可以直接与您设备自己的地址进行通信……前提是首先支持 IPv6。
(请注意,IPv4 可能会有例外,具体取决于与 ISP 的协议:它们可能为您提供多个地址 - 一个用于路由器,然后用于设备本身 - 但这需要手动配置。
对于出站连接,应用程序行为没有变化;你的程序不要路由器的 IP 地址不用于任何目的。它们只指定真实的目标 IP 地址,操作系统使用其路由表将其解析为正确的接口和 MAC 地址。
(然后路由器本身执行相同的操作,下一个路由器也执行相同的操作,直到到达最终目的地。)