我知道你们中的一些人可能有 CCNA/网络经验,所以我希望你们能回答我以下问题。
行业标准路由器如何使用单个路由表来处理具有两个连接网络的本地 IP?
即,如果连接网络 1 上的主机发送一个目标 IP 为 192.168.0.4 的数据包,路由器路由表中的哪一行处理此请求,或者这一切都由网络内的交换机和主机 (arp) 表处理。路由器会忽略它吗?
谢谢!
答案1
我记得理论上每个子网都有一条线路。路由器的每个端口/接口对应一个子网。事实上每个端口在其子网上都有一个 IP。
路由器有一个路由表,每个子网对应一个行,每个相关端口/接口对应一个行。
路由表中的一行可能显示 192.168.0.0/24(即它包括 192.168.0.4),并且有一个接口 192.168.0.1,该接口可能称为 Eth0
任何发送到路由器的数据包,无论它从哪个端口进入,如果它的 IP 为 192.168.0.0/24,最终都会从 Eth0 发出。
路由器查看传入数据包的目标 IP,发现它是 192.168.0.4,发现它位于子网 192.168.0.0/24 上,然后查看其路由表并将其发送出 Eth0。
连接到路由器的网络是私有 IP 还是公共 IP 无关紧要。
该路由器与 NAT 调制解调器路由器之间的区别在于,家里的 NAT 调制解调器路由器就像一台 2 端口机器,在本地端有一个交换机,您无法将多个本地网络连接到它。而真正的路由器没有交换机,有 2 个以上的端口,您可以在各个端口上配置子网。
如果您阅读有关路由的文章,我认为您会发现它只是这样描述,它没有区分工业路由器与否、本地网络与否,没有区别。它们都有一个路由表。不知道您从哪里得到它们会有多个路由表的想法。不过,我唯一想说的是上面一段中关于一些家用路由器内置交换机的内容。但人们往往不会在有关路由的文章中读到这一点。
答案2
如果您想要确切的答案,请粘贴您的路由表。它将是通过将网络掩码应用于目标 IP 生成的网络号。如果没有这样的条目,则将采用默认值。
答案3
我不是这方面的专家,但我认为是这样的:路由器是“主机”的网关。
路由器有两个网络接口/两个 IP,每个网络一个,比如说 192.168.1.1/255.255.255.0(用于网络 192.168.1.0)和 192.168.0.1/255.255.255.0(用于网络 192.168.0.0)。
主机在网络 192.168.1.0 中的 IP 地址为 192.168.1.100。主机有自己的路由表,其中有一个类似于“默认 192.168.1.1”的路由表,这使得任何 IP 未被路由表解析的数据包都无法通过路由器。
路由器在第一个接口(192.168.1.1)上接收目标 IP 为 192.168.0.4 的数据包。路由表中有一行是“192.168.0.0 255.255.255.0 0.0.0.0”,这意味着 IP 来自网络 192.168.0.0 的数据包被发送到网络 192.168.0.0,由可以解析它的人来解析。
现在,如果中间有交换机,交换机会有一个物理地址 - IP 地址表(mac 地址表)。如果交换机发现任何 IP 等于数据包的 IP,它会将其发送到该物理地址。如果接收方主机直接连接到路由器,则 IP 由路由器的 mac 地址表解析。
- 仅供参考:ARP 表用于根据主机名解析 IP。
希望我没有完全错。:)
哦,这个路由器是真正的路由器。只是路由器的种类更多。
答案4
注意:如果“两个网络都使用 192.168.0.0/24”,那么它就不是两个网络,而是一个 C 类网络,其中一个路由器莫名其妙地卡在中间。
简短的回答:这取决于协议和拓扑。
想象一下 256 台主机无线连接到一台连接互联网的路由器:所有数据包(无论本地与否)都通过路由器(因为无线主机彼此之间不直接连接),路由器将本地数据包发送到本地连接的主机,并将非本地数据包通过其默认网关发送到互联网。然而,在以太网上,本地流量(即:同一总线上的主机)可能使用 MAC 地址而不是 IP 地址进行寻址,甚至可能永远不会到达路由器。一些数据包可能由交换机处理。
如果有两个独立的网络连接到路由器,则每个网络都有自己的子网,并将连接到路由器上的特定接口。(例如,您不能在一个接口上安装带有 192.168.1.12 的主机,而将另一台主机连接到具有相同 IP 地址的另一个接口。)到达此路由器的数据包将在表中查找,并从适当的接口发送出去。