arp代答观察

news2024/11/28 18:37:23

文章目录

    • 代答和代理简述
    • 实验前提
    • 先不开启proxy代答的配置
    • 开启代答
    • 总结

代答和代理简述

ARP(地址解析协议)是在局域网中用于将IP地址映射到MAC地址的协议。在理解 ARP 代答和 ARP 代理之前,让我们先澄清一下 ARP 的基本工作原理。

  • ARP 代答(ARP Reply):ARP 代答是指设备在收到 ARP 请求后向请求者发送的响应。当一个设备需要将 IP 地址解析为 MAC 地址时,它会在局域网上广播 ARP 请求,请求与目标 IP 地址对应的 MAC 地址。目标设备收到请求后,如果拥有对应的 IP 地址,会发送 ARP 代答,将自己的 MAC 地址发送给请求者,从而建立 IP 到 MAC 的映射关系。

  • ARP 代理(ARP Proxy):ARP 代理是指网络设备(通常是路由器或者交换机)在局域网内代表其他设备响应 ARP 请求。当一个设备无法直接解析某个IP地址的MAC地址时,它会向本地网络内的所有设备发送ARP请求。在某些情况下,网络设备可以充当 ARP 代理,接收到 ARP 请求后代替目标设备进行回应。这样可以在某些网络拓扑结构下提供更高效的 ARP 解析服务。

因此,ARP 代答和 ARP 代理的区别在于:

  • ARP 代答是指设备直接响应 ARP 请求,提供自己的 MAC 地址(具体请看文末的总结)。
  • ARP 代理是指网络设备代表其他设备响应 ARP 请求,帮助解析 IP 地址和 MAC 地址之间的映射关系。

实验前提

用namespace模拟vtep下挂的虚拟机,同时又尽可能模拟我们已有的环境中的配置

项目代码中arp代答部分的配置如下

  cmd = "ip link add %s mtu %s type vxlan id %s proxy %s %s %s" % \
          (tun_name, vxlan_mtu, tun_key, _nolearning, _l2miss, _l3miss)

以上配置中的proxy即为arp代答的配置。
注:arp代答和arp代理是不一样的两个东西勿混淆。

先不开启proxy代答的配置

  1. 准备对应的namespace和bridge等

    root@i-l185a7rl:~# cat test.sh
    #!/bin/bash
    sysctl -w net.ipv4.ip_forward=1
    ip netns add ns1
    ip link add veth1 type veth peer name eth0 netns ns1
    ip netns exec ns1 ip link set eth0 up
    ip netns exec ns1 ip link set lo up
    ip netns exec ns1 ip addr add 3.3.3.3/24 dev eth0
    ip link set up dev veth1
    ip link add br1 type bridge
    ip link set br1 up
    ip link set veth1 master br1
    ip link add vxlan100 type vxlan id 100
    ip link set vxlan100 master br1
    ip link set up vxlan100
    
    #!/bin/bash
    sysctl -w net.ipv4.ip_forward=1
    ip netns add ns1
    ip link add veth1 type veth peer name eth0 netns ns1
    ip netns exec ns1 ip link set eth0 up
    ip netns exec ns1 ip link set lo up
    ip netns exec ns1 ip addr add 3.3.3.4/24 dev eth0
    ip link set up dev veth1
    ip link add br1 type bridge
    ip link set br1 up
    ip link set veth1 master br1
    ip link add vxlan100 type vxlan id 100
    ip link set vxlan100 master br1
    ip link set up vxlan100
    

    左边为host1,右边为host2
    在这里插入图片描述
    这个时候在3.3.3.3上ping3.3.3.4,肯定ping不通
    在这里插入图片描述
    原因在于,Host1的3.3.3.3接口需要先发送ARP广播包查询3.3.3.4的MAC地址。ARP广播包到达接口vxlan100之后,根据FDB表项无法找到VTEP地址,因而ARP广播包无法发出。

    然后在Host1上手动增加VXLAN FDB表项:

    bridge fdb append 00:00:00:00:00:00 dev vxlan100 dst 192.168.100.2
    bridge fdb append 2a:e7:fc:de:91:f7 dev vxlan100 dst 192.168.100.2
    

    然后在Host2手动增加VXLAN FDB表项:

    bridge fdb append 00:00:00:00:00:00 dev vxlan100 dst 192.168.100.3
    bridge fdb append ea:ec:1b:c8:cb:07 dev vxlan100 dst 192.168.100.3
    

    在这里插入图片描述
    可以看到arp广播泛洪的流量到达了host2上的vtep口,这个时候没有开启代答,符合预期的。

开启代答

配置如下
host1调整如下

root@i-l185a7rl:~# cat test_arp.sh
#!/bin/bash
ip link del vxlan100
ip link add vxlan100 type vxlan id 100 proxy
ip link set vxlan100 master br1
ip link set up vxlan100
bridge fdb append 00:00:00:00:00:00 dev vxlan100 dst 192.168.100.2
bridge fdb append 2a:e7:fc:de:91:f7 dev vxlan100 dst 192.168.100.2

host2调整如下

!/bin/bash
ip link del vxlan100
ip link add vxlan100 type vxlan id 100 proxy
ip link set vxlan100 master br1
ip link set up vxlan100
bridge fdb append 00:00:00:00:00:00 dev vxlan100 dst 192.168.100.3
bridge fdb append ea:ec:1b:c8:cb:07 dev vxlan100 dst 192.168.100.3

图中的proxy即为新增的代答参数
在这里插入图片描述
先删除之前没有开启arp代答的时候,产生是arp条目
在这里插入图片描述
再来ping,可以看到开启代答后,只有本地的vtep才会收到arp广播包了,host2上的vtep已经没有收到广播包了。并且这个时候是ping不通3.3.3.4的
在这里插入图片描述
为啥ping不通3.3.3.4呢,因为host1上的vtep上没有3.3.3.4的条目
在这里插入图片描述
手动将3.3.3.4的arp信息加入到host1上的vtep上

ip neighbor add 3.3.3.4 lladdr 2a:e7:fc:de:91:f7 dev vxlan100
ip netns exec ns1 ip neigh delete 3.3.3.4 dev eth0
ip netns exec ns1 ip neigh flush all

host2

ip neighbor add 3.3.3.3 lladdr ea:ec:1b:c8:cb:07 dev vxlan100

再次ping可以看到arp泛洪广播,只停留在了本地vtep
在这里插入图片描述

总结

可以看到proxy用来让vtep代答。代答的主要目的是减少泛洪流量,将泛洪范围控制在本地vtep口,如果不用proxy,则需要将流量泛洪到所有相关的vtep口。但是要提前把将对应的arp配置到vtep上,这个动作可以用我们其它的辅助程序完成

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

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

相关文章

标题PLSQL 里面怎么在文件窗口下 ,创建文件夹,并做好常用sql语句的分类

标题PLSQL 里面怎么在文件窗口下 ,创建文件夹,并做好常用sql语句的分类? 效果如图: 标题打开plsql,找到文件窗口 找到,窗口下的这个类似文件夹带扳手的这个图标,打开, 打开后,定位…

十一、pico+Unity交互开发教程——手指触控交互(Poke Interaction)

一、XR Poke Interactor 交互包括发起交互的对象(Interactor)和可被交互的对象(Interactable)。XR Interaction Toolkit提供了XR Poke Interactor脚本用于实现Poke功能。在LeftHand Controller和RightHand Controller物体下创建名…

LeetCode做题笔记第202题:快乐数

题目描述 编写一个算法来判断一个数 n 是不是快乐数。 「快乐数」 定义为: 1.对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和。 2.然后重复这个过程直到这个数变为 1,也可能是 无限循环 但始终变不到 1。 3.如果这个过程 结…

「C/C++」C++ STL容器库 之 std::set 唯一键的集合容器

✨博客主页何曾参静谧的博客📌文章专栏「C/C」C/C程序设计📚全部专栏「VS」Visual Studio「C/C」C/C程序设计「UG/NX」BlockUI集合「Win」Windows程序设计「DSA」数据结构与算法「UG/NX」NX二次开发「QT」QT5程序设计「File」数据文件格式「PK」Parasoli…

小鹏汽车股价分析:看涨信号已出现,技术指标显示还有40%的上涨空间

猛兽财经核心观点: (1)小鹏汽车的股价过去几天有所回落。 (2)随着需求的上升,该公司的业务发展的还算不错。 (3)猛兽财经对小鹏汽车股价的技术分析:多头已经将目标指向15…

【通俗理解】Neurosymbolic AI——融合神经网络与符号推理的智慧之力

【通俗理解】Neurosymbolic AI——融合神经网络与符号推理的智慧之力 关键词提炼 #Neurosymbolic AI #神经网络 #符号推理 #感知能力 #逻辑能力 #认知水平 #智慧与力量 第一节:Neurosymbolic AI的类比与核心概念 Neurosymbolic AI就像是给神经网络这位“大力士”…

排序算法 —— 计数排序

目录 1.计数排序的思想 2.计数排序的实现 3.计数排序的分析 时间复杂度 空间复杂度 稳定性 优点 缺点 1.计数排序的思想 顾名思义,计数排序就是通过计数的方式来排序,其基本思想为: 开辟一个计数数组,统计每个数出现的次…

计算机毕业设计Hadoop+大模型在线教育大数据分析可视化 学情分析 课程推荐系统 机器学习 深度学习 人工智能 大数据毕业设计

一、研究背景和意义 “互联网”和大数据带来了网络教育的蓬勃发展,学习分析技术和自适应学习也在近年内得到了重大突破。在线教育是互联网技术与传统教育的结合,是当前中国教育信息化发展最快的领域,而当下最迫切的是有效整合教育资源和互联…

AJAX——使用 fetch 发送 AJAX 请求

1、fetch()函数属于全局函数,可以全局调用,返回的结果是一个 promise 对象。 2、语法: 3、参数 本文分享到此结束,欢迎大家评论区相互讨论学习,下一篇继续分享AJAX中同源策略的学习。

ChatGPT实现旅游推荐微信小程序

随着旅游行业的快速发展,个性化推荐已成为提升用户体验的重要手段。通过AI技术,提供一个智能旅游推荐小程序,使用户能够轻松获取定制化的旅行建议。 项目概述 项目目标 开发一个AI旅游推荐小程序,基于用户输入的旅行偏好&#…

Axure中继器单选、多选和重置

亲爱的小伙伴,在您浏览之前,烦请关注一下,在此深表感谢! 课程主题:Axure中继器单选、多选和重置 主要内容:根据查询条件,通过单选、多选和重置,从中继器中得到数据 应用场景&…

C++ 二叉树进阶:二叉搜索树

目录 二叉搜索树的概念 二叉搜索树的实现 基本结构 插入 1,当树是空树的时候 2,当树不为空的时候 3,纠正后的代码 查找 删除 1,左为空或右为空 2,左右都不为空 3,删除的完整代码: 二…

hadoop-Zookeeper安装

hadoop-Zookeeper安装 Ububtu18.04安装Zookeeper3.7.1 环境与版本 这里采用的ubuntu18.04环境的基本配置为: hostname 为master 用户名为hadoop 静态IP为 192.168.100.3 网关为 192.168.100.2 防火墙已经关闭 /etc/hosts已经配置全版本下载地址: htt…

Director3D: Real-world Camera Trajectory and 3DScene Generation from Text 论文解读

目录 一、概述 二、相关工作 1、文本到3D生成 2、3DGS 三、Director3D 1、Cinematographer 2、Decorator 3、Detailer 4、Loss 一、概述 该论文提出利用真实世界数据集,设计一个从文本生成真实世界3D场景和自适应相机轨迹的强大的开放世界文本到3D生成框架…

Git使用GUI界面实现任意历史版本对比

首先进入版本历史查看界面 标记某次提交 选择某次提交并和标记的提交对比 可以查看比较结果了,具体到每一个文件每一行代码

鸿蒙HarmonyOS NEXT 5.0开发(2)—— ArkUI布局组件

文章目录 布局Column:从上往下的布局Row:从左往右的布局Stack:堆叠布局Flex:自动换行或列 组件Swiper各种选择组件 华为官方教程B站视频教程 布局 主轴和交叉轴的概念: 对于Column布局而言,主轴是垂直方…

cnn做整图匹配

好像还没有人把cnn在工业机器视觉中使用,我们打破界限,试一试! 工业上有很多需求,判断加工产品有还是没有,从前基本上都是使用找斑的方法来判断。 我们可以用cnn代替试试! 我们前头cnn最好成绩是&#x…

STM32(二十一):看门狗

WDG(Watchdog)看门狗,手动重装寄存器的操作就是喂狗。 看门狗可以监控程序的运行状态,当程序因为设计漏洞、硬件故障、电磁干扰等原因,出现卡死或跑飞现象时,看门狗能及时复位程序,避免程序陷入…

免费送源码:Node.JS+Express+MySQL Express 流浪动物救助系统 计算机毕业设计原创定制

摘 要 随着互联网大趋势的到来,社会的方方面面,各行各业都在考虑利用互联网作为媒介将自己的信息更及时有效地推广出去,而其中最好的方式就是建立网络管理系统,并对其进行信息管理。由于现在网络的发达,流浪动物救助系…

python基础综合案例(数据可视化—折线图可视化)

可视化案例的学习目标: 通过案例,回忆巩固python基础的语法 锻炼编程能力,熟练语法的使用 1.json数据格式 两种不同的语言由于数据格式不同,所以没有办法直接沟通,就比如我们可以将python 的数据格式转成json&…