通过 IPv6 使用 Scapy 的 DNS 请求

DNS Request with Scapy over IPv6

我看过很多关于如何通过 Scapy 发送 DNS 请求的例子,但是 none 对于 IPv6。作为参考,我使用的是 Python 3,ping6 ipv6.google.com 对我来说是成功的,所以我似乎有一个合适的网关。我正在尝试合并 https://www.packetlevel.ch/html/scapy/scapyipv6.html and https://thepacketgeek.com/scapy-p-09-scapy-and-dns/, but I'm not sure how to do so exactly (just replacing IP(dst=dst) with IPv6(dst=dst) doesn't work). For reference, I've been trying to resolve "google.com" with Googles DNS Server (https://developers.google.com/speed/public-dns/docs/using).

编辑:我希望能够选择我到达的 DNS 服务器。对于 IPv4,我可以这样做: sr1(IP(dst=dns_dst)/UDP(dport=53)/DNS(rd=1, qd=DNSQR(qname=query_name)))

  • IPv6 平:

    sr1(IPv6(dst="www.google.com")/ICMPv6EchoRequest(),timeout=3)
    

这将生成一个简单的 IPv6 数据包,顶部带有回显请求,send/receive 它位于第 3 层

  • Google 的 public 服务器上的 IPv6 DNS,请求 IPv6 地址:

    sr1(IPv6(dst="2001:4860:4860::8888")/UDP()/DNS(qd=DNSQR(qname="www.google.com", qtype="AAAA")))