双机多网口配置同网段地址,可以通过目的IP确定接收数据的网卡吗?

环境

两台机器两网卡同网段接入同一个二层交换机。

在这里插入图片描述

机器A ens38 00:0c:29:a4:8b:fb 10.0.0.11/24 ens39 00:0c:29:a4:8b:05 10.0.0.12/24

机器B ens38 00:0c:29:4f:a6:c4 10.0.0.21/24 ens39 00:0c:29:4f:a6:ce 10.0.0.22/24

初始ARP表

只有管理口接口的ARP表项,10.0.0.0/24网段没有

机器A

root@ubuntu22:~# arp -n
Address                  HWtype  HWaddress           Flags Mask            Iface
172.0.1.13               ether   00:0c:29:c1:16:a8   C                     ens33
172.0.1.131              ether   b4:56:b9:f0:02:a5   C                     ens33
172.0.1.32               ether   00:e0:97:1c:20:1a   C                     ens33
172.0.1.1                ether   00:e0:97:1c:20:1a   C                     ens33

机器B

root@u22s:~# arp -n
Address                  HWtype  HWaddress           Flags Mask            Iface
172.0.1.32               ether   00:e0:97:1c:20:1a   C                     ens33
172.0.1.1                ether   00:e0:97:1c:20:1a   C                     ens33
172.0.1.12               ether   00:0c:29:a4:8b:f1   C                     ens33

A ens38 10.0.0.11 ----> B 10.0.0.21

root@ubuntu22:~# ping -I ens38 10.0.0.21 -c 5 -w 5
PING 10.0.0.21 (10.0.0.21) from 10.0.0.11 ens38: 56(84) bytes of data.
64 bytes from 10.0.0.21: icmp_seq=1 ttl=64 time=0.447 ms
64 bytes from 10.0.0.21: icmp_seq=2 ttl=64 time=0.236 ms
64 bytes from 10.0.0.21: icmp_seq=3 ttl=64 time=0.223 ms
64 bytes from 10.0.0.21: icmp_seq=4 ttl=64 time=0.231 ms
64 bytes from 10.0.0.21: icmp_seq=5 ttl=64 time=0.377 ms

--- 10.0.0.21 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4097ms
rtt min/avg/max/mdev = 0.223/0.302/0.447/0.091 ms

抓包

在这里插入图片描述

arp表项

![ens38-ping-10.0.0.22](C:\Users\CK\Documents\blog\ens38-ping-10.0.0.22.png)root@ubuntu22:~# arp -n
Address                  HWtype  HWaddress           Flags Mask            Iface
172.0.1.32               ether   00:e0:97:1c:20:1a   C                     ens33
10.0.0.22                ether   00:0c:29:4f:a6:ce   C                     ens38
172.0.1.1                ether   00:e0:97:1c:20:1a   C                     ens33
172.0.1.131              ether   b4:56:b9:f0:02:a5   C                     ens33
10.0.0.21                ether   00:0c:29:4f:a6:ce   C                     ens38
172.0.1.13               ether   00:0c:29:c1:16:a8   C                     ens33
172.0.1.25               ether   00:0c:29:4f:a6:ba   C                     ens33

数据走向图

在这里插入图片描述

A ens38 10.0.0.11 —> B 10.0.0.22

root@ubuntu22:~# ping -I ens38 10.0.0.22 -c 5 -w 5
PING 10.0.0.22 (10.0.0.22) from 10.0.0.11 ens38: 56(84) bytes of data.
64 bytes from 10.0.0.22: icmp_seq=1 ttl=64 time=0.479 ms
64 bytes from 10.0.0.22: icmp_seq=2 ttl=64 time=0.317 ms
64 bytes from 10.0.0.22: icmp_seq=3 ttl=64 time=0.208 ms
64 bytes from 10.0.0.22: icmp_seq=4 ttl=64 time=0.976 ms
64 bytes from 10.0.0.22: icmp_seq=5 ttl=64 time=0.294 ms

--- 10.0.0.22 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4065ms
rtt min/avg/max/mdev = 0.208/0.454/0.976/0.274 ms

抓包

在这里插入图片描述

arp表项

root@ubuntu22:~# arp -n
Address                  HWtype  HWaddress           Flags Mask            Iface
172.0.1.32               ether   00:e0:97:1c:20:1a   C                     ens33
10.0.0.22                ether   00:0c:29:4f:a6:ce   C                     ens38
172.0.1.1                ether   00:e0:97:1c:20:1a   C                     ens33
172.0.1.131              ether   b4:56:b9:f0:02:a5   C                     ens33
10.0.0.21                ether   00:0c:29:4f:a6:ce   C                     ens38
172.0.1.13               ether   00:0c:29:c1:16:a8   C                     ens33
172.0.1.25               ether   00:0c:29:4f:a6:ba   C                     ens33

机器B的ARP

root@u22s:~# arp -n
Address                  HWtype  HWaddress           Flags Mask            Iface
172.0.1.32               ether   00:e0:97:1c:20:1a   C                     ens33
172.0.1.1                ether   00:e0:97:1c:20:1a   C                     ens33
10.0.0.11                ether   00:0c:29:a4:8b:fb   C                     ens39
172.0.1.12               ether   00:0c:29:a4:8b:f1   C                     ens33
10.0.0.11                ether   00:0c:29:a4:8b:fb   C                     ens38

数据走向图

在这里插入图片描述

A ens39 10.0.0.12 —> B 10.0.0.21

root@ubuntu22:~# ping -I ens39 10.0.0.21 -c 5 -w 5
PING 10.0.0.21 (10.0.0.21) from 10.0.0.12 ens39: 56(84) bytes of data.
64 bytes from 10.0.0.21: icmp_seq=1 ttl=64 time=0.415 ms
64 bytes from 10.0.0.21: icmp_seq=2 ttl=64 time=0.288 ms
64 bytes from 10.0.0.21: icmp_seq=3 ttl=64 time=0.202 ms
64 bytes from 10.0.0.21: icmp_seq=4 ttl=64 time=0.205 ms
64 bytes from 10.0.0.21: icmp_seq=5 ttl=64 time=0.195 ms

--- 10.0.0.21 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4079ms
rtt min/avg/max/mdev = 0.195/0.261/0.415/0.084 ms

抓包

在这里插入图片描述

ARP表

root@ubuntu22:~# arp -n
Address                  HWtype  HWaddress           Flags Mask            Iface
172.0.1.32               ether   00:e0:97:1c:20:1a   C                     ens33
10.0.0.22                ether   00:0c:29:4f:a6:ce   C                     ens38
172.0.1.1                ether   00:e0:97:1c:20:1a   C                     ens33
172.0.1.131              ether   b4:56:b9:f0:02:a5   C                     ens33
10.0.0.21                ether   00:0c:29:4f:a6:ce   C                     ens39
10.0.0.21                ether   00:0c:29:4f:a6:ce   C                     ens38
172.0.1.13               ether   00:0c:29:c1:16:a8   C                     ens33
172.0.1.25               ether   00:0c:29:4f:a6:ba   C                     ens33
10.0.0.22                ether   00:0c:29:4f:a6:ce   C                     ens39

数据走向图

在这里插入图片描述

A ens39 10.0.0.12 —> 10.0.0.22

root@ubuntu22:~# ping -I ens39 10.0.0.22 -c 5 -w 5
PING 10.0.0.22 (10.0.0.22) from 10.0.0.12 ens39: 56(84) bytes of data.
64 bytes from 10.0.0.22: icmp_seq=1 ttl=64 time=0.224 ms
64 bytes from 10.0.0.22: icmp_seq=2 ttl=64 time=0.233 ms
64 bytes from 10.0.0.22: icmp_seq=3 ttl=64 time=0.330 ms
64 bytes from 10.0.0.22: icmp_seq=4 ttl=64 time=0.279 ms
64 bytes from 10.0.0.22: icmp_seq=5 ttl=64 time=0.230 ms

--- 10.0.0.22 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4100ms
rtt min/avg/max/mdev = 0.224/0.259/0.330/0.040 ms

抓包

在这里插入图片描述

ARP表项

root@ubuntu22:~# arp -n
Address                  HWtype  HWaddress           Flags Mask            Iface
172.0.1.32               ether   00:e0:97:1c:20:1a   C                     ens33
10.0.0.22                ether   00:0c:29:4f:a6:ce   C                     ens38
172.0.1.1                ether   00:e0:97:1c:20:1a   C                     ens33
172.0.1.131              ether   b4:56:b9:f0:02:a5   C                     ens33
10.0.0.21                ether   00:0c:29:4f:a6:ce   C                     ens39
10.0.0.21                ether   00:0c:29:4f:a6:ce   C                     ens38
172.0.1.13               ether   00:0c:29:c1:16:a8   C                     ens33
172.0.1.25               ether   00:0c:29:4f:a6:ba   C                     ens33
10.0.0.22                ether   00:0c:29:4f:a6:ce   C                     ens39

机器B ARP表项

root@u22s:~# arp -n
Address                  HWtype  HWaddress           Flags Mask            Iface
10.0.0.11                ether   00:0c:29:a4:8b:fb   C                     ens38
172.0.1.32               ether   00:e0:97:1c:20:1a   C                     ens33
10.0.0.12                ether   00:0c:29:a4:8b:05   C                     ens39
10.0.0.11                ether   00:0c:29:a4:8b:fb   C                     ens39
172.0.1.12               ether   00:0c:29:a4:8b:f1   C                     ens33
172.0.1.1                ether   00:e0:97:1c:20:1a   C                     ens33
10.0.0.12                ether   00:0c:29:a4:8b:05   C                     ens38

数据走向图

在这里插入图片描述

机器B ping 机器A

root@u22s:~# ping -I ens39 10.0.0.12 -c 3
PING 10.0.0.12 (10.0.0.12) from 10.0.0.22 ens39: 56(84) bytes of data.
64 bytes from 10.0.0.12: icmp_seq=1 ttl=64 time=0.199 ms
64 bytes from 10.0.0.12: icmp_seq=2 ttl=64 time=0.233 ms
64 bytes from 10.0.0.12: icmp_seq=3 ttl=64 time=0.244 ms

--- 10.0.0.12 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2052ms
rtt min/avg/max/mdev = 0.199/0.225/0.244/0.019 ms
root@u22s:~# ping -I ens39 10.0.0.11 -c 3
PING 10.0.0.11 (10.0.0.11) from 10.0.0.22 ens39: 56(84) bytes of data.
64 bytes from 10.0.0.11: icmp_seq=1 ttl=64 time=0.192 ms
64 bytes from 10.0.0.11: icmp_seq=2 ttl=64 time=0.228 ms
64 bytes from 10.0.0.11: icmp_seq=3 ttl=64 time=0.292 ms

--- 10.0.0.11 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2042ms
rtt min/avg/max/mdev = 0.192/0.237/0.292/0.041 ms
root@u22s:~# ^C
root@u22s:~# 
root@u22s:~# ping -I ens38 10.0.0.12 -c 3
PING 10.0.0.12 (10.0.0.12) from 10.0.0.21 ens38: 56(84) bytes of data.
64 bytes from 10.0.0.12: icmp_seq=1 ttl=64 time=0.192 ms
64 bytes from 10.0.0.12: icmp_seq=2 ttl=64 time=0.201 ms
64 bytes from 10.0.0.12: icmp_seq=3 ttl=64 time=0.930 ms

--- 10.0.0.12 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2020ms
rtt min/avg/max/mdev = 0.192/0.441/0.930/0.345 ms
root@u22s:~# ping -I ens38 10.0.0.11 -c 3
PING 10.0.0.11 (10.0.0.11) from 10.0.0.21 ens38: 56(84) bytes of data.
64 bytes from 10.0.0.11: icmp_seq=1 ttl=64 time=0.195 ms
64 bytes from 10.0.0.11: icmp_seq=2 ttl=64 time=0.632 ms
64 bytes from 10.0.0.11: icmp_seq=3 ttl=64 time=0.251 ms

en39 10.0.0.22 --> 10.0.0.12
在这里插入图片描述

ens39 10.0.0.22 --> 10.0.0.11
在这里插入图片描述

ens38 10.0.0.21 --> 10.0.0.12
在这里插入图片描述

ens38 10.0.0.21 --> 10.0.0.11
在这里插入图片描述

数据走向图

在这里插入图片描述

arp表

root@u22s:~# arp -n
Address                  HWtype  HWaddress           Flags Mask            Iface
10.0.0.11                ether   00:0c:29:a4:8b:fb   C                     ens38
172.0.1.32               ether   00:e0:97:1c:20:1a   C                     ens33
10.0.0.12                ether   00:0c:29:a4:8b:05   C                     ens39
10.0.0.11                ether   00:0c:29:a4:8b:fb   C                     ens39
172.0.1.12               ether   00:0c:29:a4:8b:f1   C                     ens33
172.0.1.1                ether   00:e0:97:1c:20:1a   C                     ens33
10.0.0.12                ether   00:0c:29:a4:8b:05   C                     ens38

现象分析

Node A ping Node B时, 不论目的IP是B.ens38还是B.ens39所有包都从 ens39 进入Node B

在这里插入图片描述

从ARP报文来看,10.0.0.21的MAC响应ens38和ens39都有,但是ens39的MAC响应是先收到的,ARP表中 10.0.0.21,10.0.0.22的mac地址都是 ens39 00:0c:29:4f:a6:ce。

Node B ping Node A时,数据包从对应IP的接口进入, ARP表中IP与MAC也是正确对应的,抓包到的ARP报文响应也是对应接口的MAC
在这里插入图片描述

小结

双机多网口二层连接,配置同网段地址,那么IP-MAC映射会存在不确定性,会受到ARP响应的先后顺序影响。如果多机多网口这样连接,恐怕不能通过指定源目的IP来实现指定接口到指定接口的通信。
而主机对ARP请求的响应,可能是都从一个接口处,也可能各个接口都出,这种行为的区别暂不清楚受到哪些内核配置的影响。

解决方法

设置规则

# 关闭ARP代答
sudo sysctl -w net.ipv4.conf.all.proxy_arp=0
sudo sysctl -w net.ipv4.conf.default.proxy_arp=0

# 设置ARP过滤规则
sudo sysctl -w net.ipv4.conf.all.arp_ignore=1
sudo sysctl -w net.ipv4.conf.all.arp_announce=2
sudo sysctl -w net.ipv4.conf.default.arp_ignore=1
sudo sysctl -w net.ipv4.conf.default.arp_announce=2

# For each specific interface
sudo sysctl -w net.ipv4.conf.ens38.arp_ignore=1
sudo sysctl -w net.ipv4.conf.ens38.arp_announce=2
sudo sysctl -w net.ipv4.conf.ens39.arp_ignore=1
sudo sysctl -w net.ipv4.conf.ens39.arp_announce=2
  • arp_ignore
    
    • 值为0:对所有请求进行响应。
    • 值为1:只响应目标IP地址是接口上本地地址的请求,不响应非本地地址的请求。
  • arp_announce
    
    • 值为0:默认行为,使用最合适的本地地址进行ARP应答。
    • 值为1:仅使用目标网络的最佳地址进行ARP应答。
    • 值为2:仅使用发送接口上的地址进行ARP应答。

抓包

在这里插入图片描述
没有多余ARP响应

ARP表

root@ubuntu22:~# arp -n
Address                  HWtype  HWaddress           Flags Mask            Iface
10.0.0.22                ether   00:0c:29:4f:a6:ce   C                     ens38
172.0.1.131              ether   b4:56:b9:f0:02:a5   C                     ens33
172.0.1.32               ether   00:e0:97:1c:20:1a   C                     ens33
172.0.1.1                ether   00:e0:97:1c:20:1a   C                     ens33
10.0.0.21                ether   00:0c:29:4f:a6:c4   C                     ens38
172.0.1.13               ether   00:0c:29:c1:16:a8   C                     ens33
10.0.0.22                ether   00:0c:29:4f:a6:ce   C                     ens39

IP与MAC映射关系正常了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/654043.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Vue2+Element 封装评论+表情功能

有需要的小伙伴直接拿代码即可&#xff0c;不需要下载依赖。 评论组件如下&#xff1a; 创建 comment.vue 文件。 表情组件 VueEmoji.vue 在评论组件中使用。 <template><div class"comment"><div class"flex_box"><h2>评论 {…

Amazon云计算AWS(一)

目录 一、基础存储架构Dynamo&#xff08;一&#xff09;Dynamo概况&#xff08;二&#xff09;Dynamo架构的主要技术 二、弹性计算云EC2&#xff08;一&#xff09;EC2的基本架构&#xff08;二&#xff09;EC2的关键技术&#xff08;三&#xff09;EC2的安全及容错机制 提供的…

【C++】vector的基本使用

&#x1f497;个人主页&#x1f497; ⭐个人专栏——C学习⭐ &#x1f4ab;点击关注&#x1f929;一起学习C语言&#x1f4af;&#x1f4ab; 目录 导读 1. vector初始化 2. vector iterator 的使用 2.1 常规遍历 2.2 rbegin rend 反向遍历 3. vector 常见函数使用 3.1 …

N1912A P 系列双通道功率计

N1912A 双通道功率计 产品综述 <<<P 系列双通道功率计>>> Keysight N1912A P 系列双通道功率计可以提供峰值功率、峰均比、平均功率、上升时间、下降时间 NS 脉冲宽度测量。 “ 功能特点 30 MHz 视频带宽 能够以高达 100 MSa/s 的采样率执行单次实时捕…

全新交友盲盒+付费进群二合一源码 包含全套源码+教程

盲盒交友脱单系统源码&#xff0c;带教程&#xff0c;免授权这套源码已经替你们搭建测试过了 附带进群系统&#xff0c;定位是正常的 申明需要无限回调&#xff0c;没有回调的搭建出来不能用不要说源码不能用 全新系统方便大家使用&#xff0c;已经录制好详细的教程&#xf…

AIGC 007-E4T基于编码器的域调优用于文本到图像模型的快速个性化!

AIGC 007-E4T基于编码器的域调优用于文本到图像模型的快速个性化&#xff01; 文章目录 0 论文工作1 论文方法2 效果 0 论文工作 这篇论文提出了一种使用领域特定编码器来快速将文本到图像模型适配到新领域的方案。这种被称为基于编码器的领域微调 (E4T) 的方法&#xff0c;专…

不怕YOLOv10高歌猛进,我有YOLOv8稳扎稳打

YOLOv10 出来有几天时间了&#xff0c;这次我没有选择第一时间出文章解析&#xff0c;如此频繁的发布数字版本的 YOLO 着实让人头疼&#xff0c;虽然数字的更新并非旧版技术的过时&#xff0c; 但是这肯定会让很多在校同学增加很多焦虑情绪。这里还是请大家辩证看待。 v10 这次…

C语言编译链接

翻译环境和运行环境 翻译环境 翻译环境就是在这将源代码转换成可执行的二进制指令&#xff08;机器指令&#xff09;。 进行编译和链接过程。 .c源程序先单独经过编译器生成对应的目标文件.obj&#xff08;在windows环境下&#xff09;.o&#xff08;在Linux环境下&#xff…

CRMEB开源商城系统:全开源、高灵活性的电商解决方案

一、引言 随着电子商务的飞速发展&#xff0c;越来越多的企业和个人开始关注如何快速搭建一个稳定、高效且功能丰富的在线商城系统。在这样的背景下&#xff0c;CRMEB开源商城系统应运而生&#xff0c;凭借其前后端分离的架构、丰富的功能模块以及易用性&#xff0c;成为了众多…

C++模板——非类型模板参数、模板的特化以及模板的分离编译

目录 非类型模板参数 模板的特化 概念 函数模板特化 类模板特化 全特化 偏特化 模板的分离编译 什么是分离编译 模板的分离编译 解决方法 模板总结 非类型模板参数 模板参数可分为类型形参和非类型形参。类型形参&#xff1a; 出现在模板参数列表中&#xff0c;跟…

【python】删除一个列表中的所有的1

删除所有的1 x [1, 1, 6, 3, 9, 4, 5, 1, 1, 2, 1, 9, 6, 4] 使用lambda函数和filter来过滤掉x中的1 filtered_x list(filter(lambda n: n ! 1, x)) 不是1的数字&#xff0c;存进x列表&#xff0c;filter用于插入元素到第二个位置 print(filtered_x) # 输出: [6, 3, 9, …

第13章 层次式架构设计理论与实践

层次式架构的核心思想是将系统组成为一种层次结构&#xff0c;每一层为上层服务&#xff0c;并作为下层客户。其实不管是分层还是其他的架构都是为了解耦&#xff0c;更好的复用&#xff0c;只要秉承着这种思想去理解一切都迎刃而解了。 13.1 层次上体系结构概述 回顾一下软件…

【docker】安装harbor出现问题: Running 1/1 ✘ Network harbor_harbor Error

安装harbor出现问题&#xff1a; [] Running 1/1 ✘ Network harbor_harbor Error 0.2s failed to create network harbor_harbor: Error response from daemon: Fa…

节水“云”科普丨北京昌平VR节水云展馆精彩上线

2024年5月15日上午&#xff0c;由北京昌平区水务局主办的“推进城市节水&#xff0c;建设美丽昌平——2024年全国城市节约用水宣传周暨‘坚持节水优先 树立节水标杆’昌平节水在行动主题实践活动”隆重举办&#xff0c;活动期间&#xff0c;昌平区水务局应用VR虚拟现实技术创新…

目标检测数据集 - 工地工人安全设备佩戴检测数据集下载「包含VOC、COCO、YOLO三种格式」

数据集介绍&#xff1a;工地工人安全设备佩戴检测数据集&#xff0c;真实场景数据生成增强后高质量图片数据&#xff0c;涉及场景丰富&#xff0c;比如楼宇建筑工地工人作业数据、道路建筑工地工人作业数据、室内工地工人作业数据、露天挖掘场景工人作业数据、工地工人自拍摆拍…

【数据分析】Numpy和Pandas库基本用法及实例--基于Japyter notebook实现

各位大佬好 &#xff0c;这里是阿川的博客 &#xff0c; 祝您变得更强 个人主页&#xff1a;在线OJ的阿川 大佬的支持和鼓励&#xff0c;将是我成长路上最大的动力 阿川水平有限&#xff0c;如有错误&#xff0c;欢迎大佬指正 承接上篇的博客 数据分析—技术栈和开发环境搭…

使用Java 读取PDF表格数据并保存到TXT或Excel

目录 导入相关Java库 Java读取PDF表格数据并保存到TXT Java读取PDF表格数据并保存到Excel 在日常工作中&#xff0c;我们经常需要处理来自各种来源的数据。其中&#xff0c;PDF 文件是常见的数据来源之一。这类文件通常包含丰富的信息&#xff0c;其中可能包含重要的表格数据…

大数据面试题 —— Hive

目录 Hive 是什么为什么要使用 HiveHive 的优缺点Hive的实现逻辑&#xff0c;为什么处理小表延迟比较高你可以说一下 HQL 转换为 MR 的任务流程吗 ***你可以说一下 hive 的元数据保存在哪里吗 ***Hive与传统数据库之间的区别Hive内部表和外部表的区别 ***hive 动态分区与静态分…

28 Debian如何配置PXE网络装机(全自动无人值守)

作者:网络傅老师 特别提示:未经作者允许,不得转载任何内容。违者必究! Debian如何配置PXE网络装机(全自动无人值守) 《傅老师Debian小知识库系列之28》——原创 ==前言== 傅老师Debian小知识库特点: 1、最小化拆解Debian实用技能; 2、所有操作在VMware虚拟机实测完成…

Rocky Linux 9.4 正式版发布 - RHEL 100% 1:1 兼容免费发行版

Rocky Linux 9.4 正式版发布 - RHEL 100% 1:1 兼容免费发行版 Rocky Linux 由 CentOS 项目的创始人 Gregory Kurtzer 领导 请访问原文链接&#xff1a;Rocky Linux 9.4 正式版发布 - RHEL 100% 1:1 兼容免费发行版&#xff0c;查看最新版。原创作品&#xff0c;转载请保留出处…