控制报文之:找邻居报文
ND报文是指网络中的 Neighbor Discovery(ND)控制报文。Neighbor Discovery 是 IPv6 网络中的一种协议,它用于管理网络节点之间的邻居关系、地址解析、路由缓存维护和自动配置等任务。ND 协议在 IPv6 网络中取代了 IPv4 中的 ARP(地址解析协议)和 ICMP(Internet 控制消息协议)等功能。
主要有以下几种:
简而言之,大型寻亲栏目之:我的邻居在哪里?
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报文是进行丢弃处理的,如果不会丢的话,也可以不加