所以我对这个问题很困惑,在网上查看时,我发现了几个答案,说路由器至少需要 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 地址(如果位于点对点链路的末端,则没有),并将所有内容发送到空接口。您可能会出于记录目的而这样做;此外,有时将路由传播到坏地址而不是访问列表会更方便。
搜索“黑洞路由”以了解此技术。
一个路由器可以有任意数量的接口,包括一个。
但是,通常它会有两个或更多 - 路由器的目的是连接多个网络,为此,每个网络都需要有一个接口。
有时,“存根路由器”或单臂路由器用于路由回同一网络(=子网)。例如,有多个网关连接到一个网络,每个网关都通向另一个网络。有一些简单的节点只能使用默认网关,而末节路由器是具有完整路由表的节点 - 知道到其他网络的所有路由。因此,它用作默认网关,然后通过同一网络路由到实际网关。
此外(正如乔纳森乔指出的那样),路由器可能具有不需要本地 IP 地址的“未编号链接”——简单的串行接口、VPN 连接或类似的。
路由器上只能有一个 IP,但它不能将数据包路由到另一个网络。
在第一个接口上,您有网络的 IP 地址,但在另一个接口上,您需要有一个属于另一个网络的 IP 地址