网关和路由器有什么区别?

14 networking router gateway

在这里我们可以看到路由器是67.23.27.187(第一跳),但网关是67.23.27.1。网关和路由器有什么区别?只配置了网关地址,我的电脑怎么知道路由器的IP?

[root@jiaoyou ~]# tracepath google.com
 1:  67-23-27-187.static.slicehost.net (67.23.27.187)       0.000ms pmtu 1500
 1:  67-23-24-2.static.slicehost.net (67.23.24.2)           0.000ms 
 1:  67-23-24-2.static.slicehost.net (67.23.24.2)           4.000ms 
 2:  core7-aggr511a-1.dfw1.rackspace.net (98.129.84.148)  128.008ms 
 3:  bbr1-core7-vlan2007.dfw1.rackspace.net (174.143.123.117)   4.000ms 
 4:  no reply
 5:  no reply

[root@jiaoyou ~]# cat /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=jiaoyou
GATEWAY=67.23.27.1
Run Code Online (Sandbox Code Playgroud)

Red*_*ick 20

网关和路由器本质上是一样的。术语“默认网关”用于表示 LAN 上的路由器,它负责成为 LAN 外计算机流量的第一个联系点。

如果您的 LAN 有多个路由器,指定为默认网关的路由器可以使用ICMP 重定向或其他机制通知您的计算机为给定目的地提供更合适的路由。

例如

                   (互联网)---[谷歌]
                       | 64.20.60.99
                      [R2]
67.23.27/255 |187
|------+--------+------+-----|
       |9 |1
     [电脑] [R1]
                | 67.23.28/255
           |----+------+----------|
                       |9
                    [服务器]

如果路由器 R1 是 PC 的默认网关,当 PC 首次尝试联系 Google 时,PC 会向 R1 发送数据(因为 PC 知道 Google 的 IP 地址不在 PC 的子网中),但是 R1 会告诉 PC 到 64.20 的更合适的路由.60.99 通过路由器 R2。PC 会将其添加到它的路由表中,因此 R1 不会显示在后续跟踪路由中。

netstat -nr您 PC 上的命令将显示它从其配置文件中获知的静态路由以及它通过 ICMP 重定向或通过侦听路由协议广播/多播获知的动态路由。

术语“网关”具有与您问题中的文件和命令无关的其他含义。


小智 8

@RedGrittyBrick 的回答是绝对正确的(“路由器和网关本质上是相同的”),其他一些响应者混淆了这些术语,或者说好心一点,误解了问题(或维基百科)。

就路由而言,术语“网关”几乎只与“默认”结合使用,并且“网关”为没有更具体可用路由的每个网络提供路由。

根据定义,网关必须是执行路由的设备,它可以是专用设备,特别是路由器,或已配置为路由的主机,但它正在执行相同的工作。因此,网关可以是路由器,而路由器可以称为网关。

“默认网关”和路由器之间的 TTL 没有区别,一旦执行路由的设备将 IP 数据包从一个网络/子网传递到另一个网络/子网,它必须减少 TTL,这在相关的 RFC 中非常清楚。

网关不需要做 NAT,通常家庭网络会有一个默认网关,它是连接到 ADSL 的路由器,这种类型的设备会做 NAT,而工作子网上的默认网关只会导致更广泛的办公室 LAN并且不会做 NAT。

为了回答您关于到达不在本地子网上的某个地方的问题,@RedGrittyBrick 关于 ICMP 重定向再次正确,此外,主机在发送数据包时所经历的过程是这样的:

1 - 使用自己的 IP 地址和掩码来检查目标数据包的 IP 地址是否在本地子网中。

2 - 如果目的地在本地子网中,则发送该本地设备 MAC 地址的 ARP 请求,然后向主机发送帧。

3 - 如果目标不在本地子网中,则向该网络发送网关 MAC 地址的 ARP 请求,然后将帧发送到网关以进行转发(此时 ICMP 重定向可能会开始)。

因此可以看出,每个主机在发送数据包之前都会做出自己的路由选择(当然,该数据已被缓存,因此不会对每个数据包都进行查找)。


Aar*_*lla 0

网关控制网络中的计算机对其他计算机的访问。

路由器是网关的一种特殊形式:它可以在不同网络之间转发IP数据包。

在您的情况下,网关知道路由器并将所有非内部地址的请求转发到路由器。