【问题标题】:DNS Request with Scapy over IPv6通过 IPv6 使用 Scapy 的 DNS 请求
【发布时间】:2019-09-30 20:17:07
【问题描述】:

我见过很多关于如何通过 Scapy 发送 DNS 请求的示例,但对于 IPv6 则没有。作为参考,我使用的是 Python 3,ping6 ipv6.google.com 对我来说是成功的,所以我似乎有一个合适的网关。我正在尝试将https://www.packetlevel.ch/html/scapy/scapyipv6.htmlhttps://thepacketgeek.com/scapy-p-09-scapy-and-dns/ 结合起来,但我不确定该怎么做(只是用IPv6(dst=dst) 替换IP(dst=dst) 是行不通的)。作为参考,我一直在尝试使用 Google 的 DNS 服务器 (https://developers.google.com/speed/public-dns/docs/using) 解析“google.com”。

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

【问题讨论】:

标签: python dns ipv6 scapy


【解决方案1】:
  • IPv6 Ping:

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

这将创建一个简单的 IPv6 数据包,顶部带有回显请求,并在第 3 层发送/接收它

  • Google 公共服务器上的 DNS over IPv6,请求 IPv6 地址:

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

【讨论】:

  • 这似乎可以解决问题,但为了澄清,我希望控制我正在使用的 DNS 服务器。编辑问题以指定
  • 对不起。我专注于 ping6 部分,所以我认为这是 ICMP
  • 刚刚看到您编辑了以上内容。我直接复制并粘贴了您放在那里的 DNS 请求,但仍然没有收到任何数据包(sr1 返回无,wireshark 只显示发送的数据包)。由于 ping6 和您在上面放置的 scapy ping 对我有用,您知道是什么原因造成的吗?
  • 我也认为应该是qd,而不是qr
  • 确实应该是
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-04-27
  • 1970-01-01
  • 1970-01-01
  • 2023-01-25
  • 1970-01-01
  • 2010-09-24
相关资源
最近更新 更多