scapy构造ND报文

控制报文之:找邻居报文

什么是ND报文

ND报文是指网络中的 Neighbor Discovery(ND)控制报文。Neighbor Discovery 是 IPv6 网络中的一种协议,它用于管理网络节点之间的邻居关系、地址解析、路由缓存维护和自动配置等任务。ND 协议在 IPv6 网络中取代了 IPv4 中的 ARP(地址解析协议)和 ICMP(Internet 控制消息协议)等功能。

主要有以下几种:

  1. Neighbor Solicitation (NS) 报文:
  • 主要用于设备(通常是主机)在需要找到另一个设备(可能是路由器或另一台主机)的链路层地址时发送的。
  • 通常包含目标IPv6地址,用于指定要查询的设备。
  • 目的是请求目标设备的链路层地址,以便发出通信。
  1. Neighbor Advertisement (NA) 报文:
  • 通常是对NS报文的响应,用于告知请求设备目标设备的链路层地址。
  • 通常包括目标IPv6地址、目标MAC地址和其他选项。
  • 目的是响应NS报文,提供目标设备的链路层地址。
  1. Router Solicitation (RS) 报文:
  • 主要由IPv6网络中的设备发送,用于查找IPv6路由器。
  • 目的是确定网络中是否存在IPv6路由器,并获取路由器的信息。
  • 通常是由新加入IPv6网络的设备发送,以获取路由器的信息,以便配置其IPv6地址和路由
  1. Router Advertisement(RA)报文:
  • 路由器发送的,用于提供关于网络配置的信息,包括IPv6前缀、MTU、路由器的MAC地址等。
  • 目的是让网络中的设备知道路由器的存在以及如何配置自己的IPv6地址和路由表。
  1. Redirect(重定向):
  • 重定向报文用于通知主机更好的下一跳路由。当路由器认为主机发送的数据包可以通过不同的下一跳路由器进行转发时,它可以向主机发送重定向报文,以提高数据包的传输效率。

简而言之,大型寻亲栏目之:我的邻居在哪里?

scapy构造nd报文

python 复制代码
import sys
from scapy.all import *

src_ip = sys.argv[1]
dst_ip = sys.argv[2]
pkt_type = sys.argv[3] #ndrs ndns

option = ICMPv6NDOptSrcLLAddr(lladdr="52::d")

if pkt_type == 'ndrs':
    p = Ether(src="52::d",dst="ff:ff:ff:ff:ff:ff")/IPv6(src=src_ip, dst=dst_ip)/ICMPv6ND_RS(tgt=dst_ip)/ option /(b'x'*20)
if pkt_type == 'ndns':
    p = Ether(src="52::d",dst="ff:ff:ff:ff:ff:ff")/IPv6(src=src_ip, dst=dst_ip)/ICMPv6ND_NS(tgt=dst_ip)/ option /(b'x'*20)


sendp(p, iface = "eth0")

灰常的简单,52::d为本机的mac地址,运行的话,按照

python name.py src_ip dst_ip ndns

的格式就能发送

当然最后的(b'x'*20),是随便加了个负载,因为很多场景对只有头部的nd报文是进行丢弃处理的,如果不会丢的话,也可以不加

相关推荐
for_ever_love__5 小时前
LangChain Token 计数与成本控制:先知道钱花在哪
开发语言·langchain
m0_547486665 小时前
《数据结构 (C语言)》期末试卷及答案(10套)2026版
c语言·开发语言·数据结构
顽疲5 小时前
Java vue 养老系统源码详解:入住核算单 live-check 缴费入账与预交金收据实践
java·vue.js·python·java 养老·springboot 养老·vue养老
Sand(ContextGate)5 小时前
从开发者调试工具到消费级 App:一个 AI 电商导购项目的 C 端改造与 6 个连环踩坑实录
开发语言·人工智能·python·ai·langchain
外收内放5 小时前
数据分析(DataFrame与series)
python·学习·数据分析
白杨尚青5 小时前
C++入门篇(十七):priority_queue 完整模拟实现——仿函数、区间建堆与指针特化(附完整代码仓库)
开发语言·c++·stl·仿函数
逐光者9336 小时前
滤波器的 R 与 C 如何选择:从截止频率到工程实践
c语言·开发语言·r语言
Eider19986 小时前
大模型输出格式幻觉解决思路
开发语言·前端·javascript
Want5956 小时前
Python太极八卦图
开发语言·python
川石课堂软件测试6 小时前
自动化测试|持续集成Git使用详解
git·python·jmeter·mysql·ci/cd·容器·kubernetes