所以我对这个问题感到很困惑,在网上查找时,我发现几个答案说路由器确实需要至少 2 个 IP 地址,但我不清楚为什么。
假设有以下情况:
一台连接到路由器(称为“R1”)的计算机,该路由器连接到另一个路由器(称为“R2”),该路由器也充当 LAN 的 DHCP 服务器并具有外部 IP 地址。
所以我可以看到为什么 R2 有两个 IP 地址:例如 192.168.1.1 和其他一些外部 IP 地址,但为什么 R1 不能只有一个 IP 地址,类似于计算机?
谢谢
所以我对这个问题感到很困惑,在网上查找时,我发现几个答案说路由器确实需要至少 2 个 IP 地址,但我不清楚为什么。
假设有以下情况:
一台连接到路由器(称为“R1”)的计算机,该路由器连接到另一个路由器(称为“R2”),该路由器也充当 LAN 的 DHCP 服务器并具有外部 IP 地址。
所以我可以看到为什么 R2 有两个 IP 地址:例如 192.168.1.1 和其他一些外部 IP 地址,但为什么 R1 不能只有一个 IP 地址,类似于计算机?
谢谢
正如其他人所说——忽略错误配置、错误、错误状态等——路由器需要位于多个网络上,因此最自然地具有多个 IP 地址。
但是有几个特殊情况
特例 1:未编号的接口
有某些类型的网络,最值得注意的是点对点链接和虚拟专用网络链接,它们不需要地址并且有时使用未编号。路由器具有指定出口接口而不是通常的下一跳 IP 地址的路由;由于出口接口是点对点的,因此下一个路由器是隐式的。
可以想象,连接许多无编号点对点链路的路由器可能根本没有 IP 地址,但仍然有用。
仅将其视为一个理论案例:在现实生活中没有人会这样做,因为您希望至少有一个 IP 地址可以连接到用于配置目的。即使不是严格要求,许多网络工程师也喜欢对所有接口进行编号,因为它有助于监控和故障查找。
特例 2:同一子网上的下一个路由器
直接回答您的问题(作为 Zac 的“存根路由器”答案的详细说明)
为什么R1不能只有一个IP地址,和电脑一样?
您当然可以拥有以下内容:
internet
|
R2
|.1 192.168.1/24
===+===+===+===============
|.2 |.128
R1 PC
使用 R2 默认路由向上,R1 默认路由到 .1,PC 默认路由到 .2
R1 认为获取一个可以并且“应该”直接发送到 R2 的数据包是愚蠢的,因此通过 ICMP 重定向告诉 PC;PC可以随意忽略或使用。
您可以关闭大多数路由器上的 ICMP 重定向消息,但许多网络工程师认为它们很有用,因为它们通常显示配置错误。
特例3:黑洞
路由器可以拥有的特殊接口之一是“空”接口,它只是丢弃其数据包。通常,这被用作发送以某种方式被判断为不正确的数据包的地方,例如具有内部源地址的数据包到达外部接口。
空接口没有地址。因此,配置为仅接受数据包并将其丢弃的路由器可能只有一个 IP 地址(如果它位于点对点链路的末端,则没有),并将所有内容发送到空接口。您可能会出于记录目的这样做;此外,有时将路由传播到错误地址而不是访问列表会更方便。
搜索“黑洞路由”以了解此技术。
欢迎来到网络工程!路由器在网络之间路由,因此它们需要路由到的网络中的接口。否则,它们就像一座“通向无处的桥梁”。
一个路由器可以有任意数量的接口,包括一个。
通常,它会有两个或更多——路由器的目的是连接多个网络,为此,它需要在每个网络中都有一个接口。
有时,“存根路由器”或单臂路由器用于路由回同一网络(=子网)。例如,有多个网关连接到一个网络,每个网关都通向另一个网络。有一些简单的节点只能使用默认网关,而存根路由器是具有完整路由表的节点——知道到其他网络的所有路由。因此,它被用作默认网关,然后通过同一网络路由到实际网关。
此外(正如 jonathanjo 所指出的),路由器可能具有不需要本地 IP 地址的“未编号链接”——简单的串行接口、VPN 连接或类似的。
路由器上只能有一个 IP,但它不能将数据包路由到另一个网络。
在第一个接口上,您有一个网络的 IP 地址,但在另一个接口上,您需要一个属于另一个网络的 IP 地址