AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 397350
Accepted
gsinha
gsinha
Asked: 2012-06-11 07:20:27 +0800 CST2012-06-11 07:20:27 +0800 CST 2012-06-11 07:20:27 +0800 CST

当 ARP 请求来自不同的子网时会发生什么?

  • 772

以下两种情况,从router1向router2发送ARP Request报文会怎样?是否会生成 ARP Reply 或丢弃 ARP Request 数据包?

  1. [路由器 1]Intf1(20.0.0.1/24) ======== (40.0.0.1/24)Intf2[路由器 2]
  2. [路由器 1]Intf1(20.0.0.1/24) ======== (20.0.0.2/8) Intf2[路由器 2]

上面的拓扑在路由器“router1”上有一个端口“Intf1”,通过直接链路(例如,1 Gbps 电缆)连接到另一个路由器“router2”上的端口“Intf2”。

ip arp icmp ethernet
  • 4 4 个回答
  • 69117 Views

4 个回答

  • Voted
  1. Best Answer
    Massimo
    2012-06-11T08:54:31+08:002012-06-11T08:54:31+08:00

    ARP 仅在同一 IP 子网中的设备之间起作用。

    当 IP 地址为 A 的设备 A 需要向 IP 地址为 B 的设备 B 发送数据包时,它做的第一件事是查询其路由表以确定 IP 地址 B 是否属于它可以通过其网络接口直接到达的子网); 如果是,则设备 A 使用 ARP 将 IP 地址 B 映射到物理以太网地址,然后将以太网帧发送到该地址。

    但是,如果这两个 IP 地址位于不同的子网中,设备将遵循完全不同的逻辑:它将在其路由表中查找到目标网络的路由,然后将其数据包发送到适当的路由器(或它的默认网关(如果没有更具体的路由));在这种情况下,ARP 将用于查找路由器的硬件地址,因为目标 IP 地址已被视为不可直接到达,因此必须将数据包传递给能够处理它的路由器。

    • 29
  2. fukawi2
    2013-11-04T14:30:03+08:002013-11-04T14:30:03+08:00

    在某些情况下(我知道 Linux可以这样做,其他人不确定),但主机可以在“错误”接口上响应 ARP。以这个网络为例:

    10.0.0.0/24  ==== Host A ==== 192.168.0.0/24
    

    主机 A 在两个网络上都有一个地址;10.0.0.1让我们说192.168.0.1

    如果主机 A 通过 10.0.0.1 接口接收到 192.168.0.1 的 ARP,它将使用 10.0.0.1 接口的 MAC 地址进行响应。

    此行为由arp_ignore内核可调参数控制(来源:http: //blog.steve-miller.org/2010/03/tweaking-arp-behavior-in-linux.html):

    arp_ignore - Define different modes for sending replies in response to received ARP requests that resolve local target IP addresses:
    0 - (default): reply for any local target IP address, configured on any interface.
    1 - reply only if the target IP address is local address configured on the incoming interface.
    2 - reply only if the target IP address is local address configured on the incoming interface and both with the sender's IP address are part from same subnet on this interface.
    3 - do not reply for local addresses configured with scope host, only resolutions for global and link addresses are replied.
    4-7 - reserved
    8 - do not reply for all local addresses.
    

    如上所述,默认响应任何本地地址(即主机 A 上配置的地址),而不管 ARP 在哪个接口上接收。

    • 5
  3. user1008764
    2012-06-11T07:51:13+08:002012-06-11T07:51:13+08:00

    你的拓扑结构对我来说不清楚。你在router1/intf1上有一个ip地址,在router2/intf2上有2个ip地址吗?然而,当 router1/intf1 向 router2/intf2 发送 arp 请求时,router2 将发送 arp 回复,而 router1 将在其 arp 表中存储 ip 地址 20.0.0.2 的 mac 地址。这将起作用,因为 20.0.0.1/24 包含在网络 20.0.0.2/8 中。你为什么这样配置IP地址有点奇怪

    • 1
  4. GhostRyder
    2013-11-04T09:39:33+08:002013-11-04T09:39:33+08:00

    有两个可能的答案都与 arp 无关,而是与转发表有关。

    如果在 R1 上有一个路由声明,用于从 Intf1 转发以所有网络为目的地的流量(默认路由),那么在这两种情况下,ARP 回复将由 R2 生成并由 R1 接收。

    ARP 是一种链路层协议,它使用硬件地址进行通信。它没有依赖性,也不受IP等高层协议的限制。

    • 1

相关问题

  • 共享服务器IP

  • Windows 中执行反向 DNS 查找的命令行实用程序是什么?

  • 如何找到 ubuntu 盒子的默认网关

  • 我怎样才能得到一个网站的IP地址?

  • 如何让我的计算机将自己称为 192.168.1.* 上的任何 ip?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve