双机多网口配置同网段地址,可以通过目的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映射关系正常了。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

浙江大学数据结构MOOC-课后习题-第十讲-排序4 统计工龄

题目汇总 浙江大学数据结构MOOC-课后习题-拼题A-代码分享-2024 题目描述 测试点 思路分析 这道题很明显就是利用桶排序的思路 受到课程内容的影响,我一开始是想着建立一个链表数组,数组内每个元素下方都存放链表,最后再遍历统计输出。 但是&…

【华为OD机试-C卷D卷-200分】反射计数(C++/Java/Python)

【华为OD机试】-(A卷+B卷+C卷+D卷)-2024真题合集目录 【华为OD机试】-(C卷+D卷)-2024最新真题目录 题目描述 给定一个包含 0 和 1 的二维矩阵。 给定一个初始位置和速度,一个物体从给定的初始位置出发,在给定的速度下进行移动,遇到矩阵的边缘则发生镜面发射。 无论物体…

算法训练营第四十二天 | LeetCode 42 不同路径、LeetCode 63 不同路径 II

LeetCode 62 不同路径 这题首先确定下dp数组下标和含义。主要有两种方式,一种是按照位置在数组中下标直接确定,另一种是依据递推时边上的位置需要再往上和往左递推时会出界,将位置设为序号而非下标。这一题第二种方式会比较好一些。递推逻辑也…

Android和flutter交互,maven库的形式导入aar包

记录遇到的问题,在网上找了很多资料,都是太泛泛了,使用后,还不能生效,缺少详细的说明,或者关键代码缺失,我遇到的问题用红色的标注了 导入aar包有两种模式 1.比较繁琐的,手动将aar…

The Sandbox DAO:投票决定元宇宙的未来!

赋予用户治理权,打造由社群运营的开放式数码国度 随着The Sandbox DAO的启动,我们邀请全球社群——这个新数字国度的公民们——提出建议并参与治理,共同塑造开放元宇宙的未来。 介绍 在The Sandbox,我们正在建立一个开放的元宇宙…

聚酯输送带的原材料

揭秘聚酯输送带原材料:高效耐用背后的秘密武器 在现代化工业生产中,聚酯输送带以其出色的耐用性和稳定性,成为众多行业不可或缺的传输工具。然而,你是否好奇,究竟是什么原材料赋予了聚酯输送带如此卓越的性能&#xf…

opencv c++编程基础

1、图片的本质 图像在 OpenCV 中的本质 在 OpenCV 中,图像被表示为一个多维数组,其中每个元素对应于图像中的单个像素。图像的维度取决于其通道数和像素数。 **通道数:**图像可以有多个通道,每个通道存储图像的不同信息。例如&…

一维扫描线,有多少对相交线段

D - Intersecting Intervals 目录 正向: 反向: 正向: 从左往右扫描,记录当前边数。 来了新边,它此刻与当前边数相交,加到总数中。边结束,当前边数中减去即可。 const int maxn 5e55; int …

Uniapp横竖屏切换让某一个页面只能横屏或者竖屏

先看官方属性 plus.screen.lockOrientation(default); // 默认横竖屏切换 plus.screen.lockOrientation(portrait-primary);// 竖屏展示 plus.screen.lockOrientation(landscape-primary); // 强制横屏简单需求:允许横竖屏切换 在 page.json增加以下代码 "gl…

李廉洋:5.22黄金原油高位震荡,今日最新行情分析策略。

黄金消息面分析:根据4月份的通胀数据,加拿大央行6月5日降息应该是“理所当然的”。加拿大的整体通货膨胀率在4月份降至2.7%,为自2021年初以来的最低水平,核心CPI中加拿大央行的两项首选数据均降至3%以下。加拿大央行在决定降息之前…

鸿蒙学习第一课--认识目录结构

项目结构介绍 module.json5 src > main > module.json5:Stage模型模块配置文件。主要包含HAP包的配置信息、应用/服务在具体设备上的配置信息以及应用/服务的全局配置信息。具体的配置文件说明,详见module.json5配置文件。 资源分类和访问 关于s…

vue使用asiox 下载后端返回的excel数据流

一、前端代码 <template><div class"hello"><h1>{{ msg }}</h1><button style"color: brown" click"exportExcel">excel导出</button></div> </template><script> import axios from &q…

awk编辑器

目录 工作原理 命令格式 普通格式 BEGIN格式 语句循环格式 awk常见的内建变量&#xff08;可直接用&#xff09; 按行打印行内容 统计行数量 按字段输出文本 通过管道、双引号调用 Shell 命令 awk编辑器是一种流编辑器 工作原理 逐行读取文本,默认以空格或tab键为分…

二叉树,先序遍历、中序遍历、后序遍历和层序遍历实现 C++

二叉树基类声明 template<typename T>class Tree{protected:Tree() default;virtual ~Tree() default;virtual const Tree& root()const 0;virtual Tree& root() 0;virtual const Tree& left()const 0;virtual const Tree& right()const 0;virtua…

java第十八课 —— 重载、可变参数

方法重载 基本介绍 java 中允许同一个类中&#xff0c;多个同名方法的存在&#xff0c;但要求形参列表不一致&#xff01; 比如&#xff1a;System.out.println(); out 是 PrintStream 类型 重载的好处 减轻了起名的麻烦减轻了记名的麻烦 注意事项和使用细节 方法名&…

【Vue】Vue2中的Vuex

目录 Vuex介绍Vuex 中的核心概念 在vue2中使用Vuex安装 Vuex创建一个 Vuex Store在 Vue 实例中使用 Vuex编写 Vuex 的 state、mutations 和 actions在组件中使用 Vuex Vuex的核心State组件中获取 Vuex 的状态mapState 辅助函数对象展开运算符 Getter基本使用示例 通过属性访问通…

从多站点到多活,XEOS 对象数据容灾能力再提升

近日&#xff0c; XSKY SDS V6.4 新版本发布&#xff0c;其中 XEOS V6.4 全新升级并完善了统一命名空间功能&#xff0c;更进一步增强和完善了异地容灾方案&#xff0c;配合强一致代理读&#xff0c;可以实现异地多活&#xff1b;同时大幅降低管理复杂度&#xff0c;有效降低容…

Nginx中的limit_req模块和limit_conn模块详解

引言 在高流量场景下&#xff0c;良好的限流和连接控制策略至关重要&#xff0c;以防止服务器过载&#xff0c;确保服务稳定性和高可用性。Nginx 提供了 limit_req 和 limit_conn 模块&#xff0c;用以实现请求频率和并发连接数的限制。本文将详细介绍这两个模块的生效阶段和生…

TikTok电商带货特训营,跟随时代潮流,跨境掘金(8节课)

课程内容&#xff1a; 1-先导课 2-一、店铺运营认知与思路 3-二、店铺风控注意事项 4-三、美区Tiktok前期工作-1店铺入驻模式 5-三、美区Tiktok前期工作-2指纹浏览器介绍 6-三、美区Tiktok前期工作-4绑定电话号码 7-三、美区Tiktok前期工作-5添加仓库地址 8-三、美区Ti…

GIS读研与求职准备:植被定量遥感专业研0

本文介绍植被定量遥感专业研究生入学初期&#xff0c;为将来从事开发类工作所作求职准备的规划路径、方向选择等方面的建议。 前面提到了&#xff0c;最近有很多师弟师妹询问关于研究生方向选择、求职准备等方面的问题。因为很多朋友的提问比较有共性&#xff0c;所以会在征得对…