IPv4路由/子网


0

假设有如下设置:

                                  ------
                                -INTERNET-
                                  ------
                                     |
                                     |
                                     |
                                     | 
                                ___(ETH1)___ 
                               |            |
(SUBNET 1)---------------(ETH0)|   ROUTER   |(ETH2)---------------(SUBNET 2)
                               |____________|
                                   (ETH3)
                                      |
                                      |
                                      |
                                      |
                                  [SWITCH]
                                   /  |  \
                                  /   |   \
                                 /    |    \
                                /     |     \
                             PC#1    PC#2   PC#3

我的第一个问题是关于路由器。我的印象是每个路由器接口都有自己的IP地址和子网掩码,这两者都由ISP提供给它们。例如,ETH3可以具有IP:192.168.1.20/24。这意味着网络ID(子网的ID)为192.168.1,因此连接到ETH3接口的子网中的所有服务器都将具有192.168.1.XX形式的IP。这一切都正确吗?

接下来,我有点不确定数据包是如何从互联网路由到PC#3的。假设PC#3具有IP 192.168.1.45并向www.facebook.com提出请求。以下是否正确? PC#3是192.168.1子网(连接到192.168.1.20 ETH3接口)的一部分。因此,www.facebook.com看到请求来自192.168.1.20(ETH3接口)。它发送对此请求的响应,该响应最终路由到ETH1,然后路由到ETH3。最后,当响应到达交换机时,交换机读取响应包头中的MAC地址,并看到PC#3发出请求。因此,它将数据包发送到PC#3。

如果这是正确的,我有点困惑的是,为什么PC#3必须首先拥有自己的IP地址,如果用于从www.facebook.com到PC#3获取数据包的唯一信息是PC连接的路由器接口的IP地址+ PC的MAC地址。

最后,我有一个关于以太网接口的问题。 ETH0,ETH1等只是给予以太网端口的通用名称吗?那么,如果我的笔记本电脑有一个以太网端口,那么它通常也会被称为ETHO吗?同样,交换机以太网端口也以相同的方式枚举(ETH0,ETH1,ETH2)。

对此的任何澄清将不胜感激。谢谢!

Answers:


3

我的印象是每个路由器接口都有自己的IP地址和子网掩码,这两者都由ISP提供给它们。

如果接口连接到ISP控制的内容,则需要使用ISP分配的IP。如果它连接到您控制的内容,则需要自己分配IP地址。

从技术上讲,您可以拥有一个只能连接两个或多个私有子网的“仅内部”路由器,并且无法访问其他子网。没有严格要求路由器将与其路由表中的任何已知路由匹配的流量切换到默认网关。

ETH3可以拥有IP:192.168.1.20/24。这意味着网络ID(子网的ID)为192.168.1,因此连接到ETH3接口的子网中的所有服务器都将具有192.168.1.XX形式的IP。这一切都正确吗?

这也意味着您可以根据IP /子网掩码分配获得“免费”直接连接路由 - 路由器知道它可以通过ETH3到达192.168.1.XX,因此一个条目将被放置在路由表中那个事实。

接下来,我有点不确定数据包是如何从互联网路由到PC#3的。

  • PC#3想与facebook.com交谈
  • PC#3发出DNS查找并找到facebook.com的地址
  • PC#3使用本地TCP / IP堆栈与facebook.com通信。
  • TCP / IP堆栈查询本地路由表,以查看facebook.com的IP地址是否与任何路由匹配。
  • 由于PC#3是标准PC,它的路由表可能非常简单,看起来像这样(简化):
    • 127.0.0.1/8通过虚拟localhost接口
    • 192.168.3.0/24通过本地NIC。
    • 默认网关应该是路由器的IP(HAS是与PC#3在同一子网中的192.168.3.XXX/24地址)。
  • TCP / IP堆栈将尝试查找匹配的路由,如果找不到,则将流量发送到默认网关(如果存在)。由于facebook.com的IP将无法与这些路由匹配,因此PC#3会将流量发送到默认网关。
  • 路由器接收流量 eth3
  • 路由器的TCP / IP堆栈将查询路由表以查看它是否可以找到匹配的目标。它和PC一样。路由器的路由表看起来像这样(我为其他接口编写地址作为例子):
    • 192.168.0.0/24通过 eth0
    • 192.168.2.0/24 via eth2
    • 192.168.3.0/24 via eth3
    • 默认网关通过 eth1
  • 路由器的TCP / IP堆栈查询其路由表以查看facebook.com的IP地址是否与任何路由匹配,如果找不到,则将流量发送到默认网关(如果存在)。由于facebook.com的IP将无法与这些路由匹配,因此PC#3会将流量发送到默认网关。
  • eth1 必须配置NAT, 所以在这一点上,NAT改变源地址看起来像它来自 eth1 并记住收到回复时的事实。

等等。同样的过程发生在您的ISP,然后是您的ISP上游提供商,等等,直到它到达目的地。

...我有点困惑为什么PC#3必须首先拥有自己的IP地址

当流量穿过路由器时,它会离开一个网络并进入另一个网络。一旦流量通过路由器,原始MAC地址就会丢失。 IP代表 网络协议 - 它是一种地址方案,旨在允许任何计算机全局访问任何其他计算机 - 如果目标计算机不在同一网络上,则路由器层次结构应该来回转发流量。

最后,我有一个关于以太网接口的问题。 ETH0,ETH1等只是给予以太网端口的通用名称

ethX scheme只是一个约定 - 默认情况下,Linux将命名它看到的第一个 eth0, 下一个 eth1等等。名称由分配 udev 要么 systemd 并坚持使用MAC地址。名称可以更改为您想要的任何名称。


0

您的ISP为您提供1个IP地址(无论是静态还是动态)。这通常分配给您的路由器。其余设备通常只获取该IP地址的NATed版本。您可以在Ciscos网站上阅读有关NAT的更多信息 - 它们可以很好地解释它的工作原理: http://www.cisco.com/c/en/us/support/docs/ip/network-address-translation-nat/26704-nat-faq-00.html

基本上PC3没有自己的全局IP地址,它在自己的网络中只有一个唯一的IP地址。

关于您的以太网端口问题 - 名称由适配器的接口给出,这完全取决于制造商和驱动程序。通常虽然它们被称为“局域连接”之类的东西


0

我的印象是每个路由器接口都有自己的IP   地址和子网掩码,两者都由ISP提供给它们。

只有面向WAN的接口(在这种情况下为ETH1)才能具有ISP分配的(外部/公共)IP地址。其他接口将具有手动配置的(内部/私有)IP地址(在此特定情况下)。

例如,ETH3可以具有IP:192.168.1.20/24。这意味着   网络ID(子网的ID)是192.168.1,因此是所有服务器   在连接到ETH3接口的子网中将具有IP的   表格192.168.1.XX.这一切都正确吗?

正确,即使子网ID准确地是192.168.1.0。 http://www.cisco.com/c/en/us/support/docs/ip/routing-information-protocol-rip/13788-3.html

PC#3是192.168.1子网的一部分(连接到   192.168.1.20 ETH3接口)。因此,www.facebook.com看到请求来自192.168.1.20(ETH3接口)。它会发送一个响应   请求,最终路由到ETH1然后到ETH3。最后,   当响应到达交换机时,交换机读取MAC地址   在响应数据包标题中,看到PC#3发出了请求。   因此,它将数据包发送到PC#3。

不,facebook.com会看到来自您的外部IP地址的请求(ETH1接口上的请求)。由于私有IP地址不能在公共Internet上路由,因此PC的私有IP地址(192.168.1.x)通过称为网络地址转换(NAT)的过程“转换”到公共/外部IP地址。路由器在所谓的NAT表中跟踪这些转换,因此它知道请求的来源以及从服务器发送回复的位置。 http://www.cisco.com/c/en/us/support/docs/ip/network-address-translation-nat/26704-nat-faq-00.html

如果这是正确的,我有点困惑为什么有必要   PC#3首先拥有自己的IP地址,如果是唯一的话   用于从www.facebook.com到PC#3获取数据包的信息是   PC连接的路由器接口的IP地址+   PC的MAC地址。

由于路由器不支持MAC地址(OSI模型的第2层),因此它们使用IP地址(第3层)。路由器知道数据包所属的IP地址,因此它将数据包转发给交换机,交换机在其ARP表中查找IP地址以查找相应的MAC地址,然后在适当的接口/端口上发送帧。 https://en.wikipedia.org/wiki/OSI_model
https://en.wikipedia.org/wiki/Address_Resolution_Protocol


0

我的第一个问题是关于路由器。

如果是路由器;-)

'请记住,许多设备作为路由器销售,它们有路由器和交换机,它们路由和交换,许多这些设备上的所有外部LAN端口都是交换机端口而不是路由器接口。

但是对于你的图表,你在路由器和交换机之间做了区别,假设路由器是路由器而交换机是交换机。

我的印象是每个路由器接口都有自己的IP   地址和子网掩码,

是的,它确实如此。

两个[路由器接口] ...由ISP提供给他们。

你在说什么

你说“两个”但你的照片显示四个。

并且这4个中只有一个具有来自ISP的IP,尽管可以静态设置,例如如果ISP为您提供静态IP,您可以通过DHCP从ISP获取,或自行设置。

例如,ETH3可以具有IP:192.168.1.20/24。这意味着   网络ID(子网的ID)是192.168.1,因此是所有服务器   在连接到ETH3接口的子网中将具有IP的   表格192.168.1.XX.这一切都正确吗?

我认为那里的术语是正确的或者是正确的......(令人惊讶的是)。但为什么你说“所有服务器”。你为什么要关心连接在该接口上的计算机是否是“服务器”。 (无论你的意思是“服务器” - 因为这是一个含糊不清的术语)

从我读过的书中,通常路由器接口往往是.1或.2 e.t.c.通常,子网地址是.0,并且该子网上的路由器接口是+1或+2。 .1或.2。例如子网上可能有两个路由器接口。

接下来,我有点不确定数据包如何从路由器路由   互联网,比方说,PC#3。假设PC#3具有IP 192.168.1.45和   向www.facebook.com提出请求。以下是否正确? PC#3是   192.168.1子网的一部分(连接到192.168.1.20 ETH3   接口)。因此,www.facebook.com看到了一个请求   192.168.1.20(ETH3接口)。它发送对此请求的响应,该响应最终路由到ETH1,然后路由到ETH3。最后,当   响应到达交换机,交换机读取MAC地址   响应数据包标题,并看到PC#3发出了请求。因此,它   将数据包发送到PC#3。

没门。

首先是NAPT。又称NAT / PAT,它是NAT的一种形式。即使没有PAT,以下情况也是如此。如果你去www.whatismyip.com,你会发现互联网永远不会看到像192.168这样的IP地址

在你甚至不知道路由器是什么之前你应该知道!早在您知道子网是什么之前

您是否注意到大量人群计算机的IP地址如192.168您是否意识到如果它们全部出现在互联网上会发生冲突。

如果这是正确的,

事实并非如此

我有点困惑为什么PC#3必须拥有它   如果用于获取的唯一信息,则首先拥有自己的IP地址   从www.facebook.com到PC#3的数据包是IP地址   路由器接口PC连接到PC的MAC地址。

路由器工作的方式是一个接口上或之外的计算机不知道另一个接口上的计算机的MAC地址。

事实上,从技术上讲,你可以选择一个带有2个端口,一个互联网端和一个LAN端的路由器,以及一个交换机,这就是大多数人的“路由器”。在这种情况下,从技术上讲,理论上来说,它们不是这样构建的,而是技术上的......如果TCP / IP非常不同,你可以取消LAN上的IP地址..在巨大的局域网上,它不会那么高效。由于IP地址是分层的,因此MAC地址是平坦的。 Hierarhical意味着例如您可以将计算机缩小到子网,例如在发送信件时将人缩小到某个国家/地区。你可以更快地得到它们。

最后,我有一个关于以太网接口的问题。是ETH0,   ETH1等只是给以太网端口的通用名称?所以,如果我的   笔记本电脑有一个以太网端口,也常常被称为   ETHO?同样,交换机以太网端口也是枚举的   同样的方式(ETH0,ETH1,ETH2)。

我不知道你的“通用名称”是什么,

但无论如何,我不知道..我知道这意味着什么,我已经在Windows中使用它,但我不知道该名称的性质 - 特别是在Windows中,几乎从未在Windows中看到这样的名字,但我想想也许是一个名为tcpdump的程序(最初是一个* nix程序),但它有一个windows版本,所以可以在windows上运行,调用它们......所以也许它至少在某种程度上是基本的,(例如,至少可能是一个接口)即使eth0和eth1等更多* nix术语和cisco ios术语,或者非Windows术语放在Windows上,它是0和1是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.