【发布时间】:2017-10-18 20:05:43
【问题描述】:
我正在一个资源极其有限的嵌入式设备上编写 TCP/IP 堆栈。 我想知道使用以太网帧的源mac地址来回复IPV4数据包是否安全。
当您想要回复 IPV4 数据包的源 IP 地址时,通常的程序是检查您的 ARP 缓存,如果尚未填充,请执行 ARP 请求以获取 MAC 地址。
我想使用 IPV4 数据包进入的以太网帧的源 MAC 地址。 (因为我将始终拥有它,因此能够响应数据包而无需等待更多传入数据包)
这种策略会导致问题吗?
例如,在设备仅连接到一台路由器/交换机的本地网络中,回复 MAC 地址必须是请求来自的地址,因此应该不会有问题。但是,我听说数据包在回复时并不总是遵循相同的路线。终端设备是否必须回复与请求来源不同的 MAC 地址?
我相信标准要求路由器在声明目的地不可达之前自己发出 ARP 请求,所以我的想法是,即使在终端设备连接到两个路由器(一个用于传入数据包,一个用于传入数据包)的设置中用于传出)即使我的设备回复了传入的数据包路由器,它也会将其转发到传出路由器,从而纠正我的设备的缺陷。
当然,我意识到依靠其他设备符合标准来让我的设备不符合标准是相当虚伪的......
【问题讨论】:
-
那么,您的设备只会回复传入的帧,而不会将帧发送给尚未首先联系它的设备?
-
@RonMaupin 没错。 (除了广播来做 DHCP 和 SSDP,但它们不需要地址解析。)
标签: networking ethernet ipv4 arp