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报文是进行丢弃处理的,如果不会丢的话,也可以不加

相关推荐
ikun_文2 小时前
Django框架路由Router的使用
python·pycharm·django
IvanCodes2 小时前
Python 基础语法(二):字符串与常用操作
python
昭昭日月明2 小时前
LangChain 生态:从链到代理,开发者需要掌握的三大核心
python·langchain·agent
Csvn3 小时前
🐍 Day 8:面向对象编程
后端·python
程序员天天困3 小时前
向量检索不准怎么办:混合检索与 Rerank 重排序召回优化实战
后端·python·ai编程
alphaTao4 小时前
LeetCode 每日一题 2026/8/24-2026/8/30
python·算法·leetcode
苏灿烤鱼4 小时前
当 AI Agent 遇见真实科学环境:深度拆解 Scientific Agent Skills,把"聊天机器人"变成"AI 科学家"
python·开源·agent
张文君4 小时前
ubuntu26.04坏道坏块分区隔离急速版260831-V0.12
linux·python
Interview Aid1124 小时前
TikTok OA 四题分享|半小时内 AC,题目基本都是实现题
java·开发语言·算法·面试·职场和发展
CoderIsArt12 小时前
C#中UI 线程与 Dispatcher
开发语言·ui·c#