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


13

在这里我们可以看到路由器是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

1
您可以显示的输出netstat -rn吗?
gelraen

Answers:


19

网关和路由器本质上是相同的。术语“ 默认网关 ”用于表示LAN上的路由器,该路由器具有作为到LAN外部计算机通信的第一联系点的责任。

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

例如

                   (互联网)--- [Google]
                       | 64.20.60.99
                      [R2]
67.23.27 / 255 | 187
| ------ + -------- + ------ + ----- |
       | 9 | 1
     [PC] [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将不会在后续的traceroute中显示。

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

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


@Eugene:图表样式基于经典的10-Base-2以太网图表样式。认为它是象征性的。连接到水平线上的所有设备都通过以太网交换机(或集线器,不影响答案)链接。服务器知道60.20.60.99在另一个子网中(通过应用网络掩码后比较地址),因此它会在路由表中查找路由。它可能仅具有R1的默认路由,因此它将带有R1的MAC地址的60.20.60.99数据组装在一起。R1接收数据包并查询自己的路由表,然后将数据包转发到R2,重复。
RedGrittyBrick 2015年

还有一种解释,其中不涉及任何重定向。可能仅仅是网关具有多个地址,并且使用了与ARP请求中客户端使用的地址不同的地址作为ICMP错误消息的源。
kasperd

6

@RedGrittyBrick的回答是绝对正确的(“路由器和网关在本质上是相同的”),其他一些响应者则使这些术语感到困惑,或者说得仁慈地误解了这个问题(或维基百科)。

就路由而言,术语“网关”几乎仅与“默认”一起使用,并且该“网关”为到达每个网络的路由提供了路径,对于这些网络没有更多可用的特定路由。

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

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

网关不必执行NAT,通常家庭网络将具有一个默认网关,该默认网关是连接到ADSL的路由器,该类型的设备将执行NAT,而工作子网中的默认网关只会导致更广泛的办公室局域网并且不会做NAT。

在回答有关出入不在本地子网上的某个地方的问题时,@ RedGrittyBrick再次对ICMP重定向是正确的,此外,主机在发送数据包时要经过的过程是这样的:

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

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

3-如果目标不在本地子网中,则向该网络发送针对网关MAC地址的ARP请求,然后向该网关发送帧以进行转发(这时可能会触发有关ICMP重定向的问题)。

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


3

路由器充当网关,但具有其他功能。每个维基百科:“网关是大多数路由器的基本功能,尽管其他设备(例如任何PC或服务器)也可以充当网关。”


1

你的IP是什么?

源自路由器本身的数据包在退出路由器时不会缩短生存时间(TTL)。

来自另一源的通过路由器的数据包的TTL在每一跳处都会减少1。如果数据包以TTL为1进入路由器,并且路由器是目的地,则流量将被路由器接收。如果路由器不是目的地,则数据包将在退出路由器之前将其TTL减小为0,并将被丢弃。


0

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

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

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


0

通常,“网关”是使NAT“伪装”的机器,这意味着网关以专用IP的名称发送对数据的请求,而该IP是相应计算机的网关,并且当数据返回时,传递数据这些私有IP。如果愿意,可以说网关“模拟”了有关互联网的专用IP机器。

路由器OTOH只是将数据包从一个接口发送到另一个接口。路由器知道一组规则(静态设置或动态设置(路由协议)),以便在特定接口上发送数据包,以使这些数据包到达所需的网络

http://en.wikipedia.org/wiki/IP_masquerading
http://en.wikipedia.org/wiki/路由

并专门回答您的问题:“当仅配置网关地址时,我的计算机如何知道路由器的IP”:每台连接的计算机都将知道其“下一跳” ip(网关)的地址。网关的下一跳是路由器的连接接口的ip,它具有将数据包定向到正确路径以到达目标网络的知识。

还:您的下一跳是67.23.27.1。
67.23.27.187是67.23.27.1的下一跳,还是google.com路径的next-ip


您将更通用的术语网关与tcp / ip术语网关混淆了。子网之间的每个路由器都是一个网关,该网关具有任何设备的默认网关,该网关用于发送不在路由表中(通常在子网之外)的任何目标。
JamesRyan 2011年

1
好吧,我打算我说的!确实存在“最后一道网关”(默认路由)或“下一跳”连接,但是据我了解,我认为问题在于“网关”和“路由器”的通用术语。主要帖子中有2个问题,我主要回答第一个问题。 en.wikipedia.org/wiki/Default_gateway en.wikipedia.org/wiki/Router
adrian_sev 2011年

-2

好吧,当传输位于一个局域或局域网内时,这种情况下的路由器被称为网关,例如,假设您在本地有6栋房屋(仅作为示例),现在所有人都想访问Internet,那么您将拥有一台公用路由器首先,这将被称为网关。现在,如果网关的地址(IP地址不是mac)类似于192.128.1.1,那么您的IP地址将只是该地址的扩展名,例如192.128.1.101,192.128。 1.102,192.128.1.103 ...等等,现在网关进一步连接到Internet,Internet拥有庞大的网关网络,但是这次将被称为路由器,因此在您的情况下,第一跳是从您的房子到从67.23.27.187到67.23.27.1的网关,然后到其他路由器。希望您能收到它。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.