Удаление CNAME

Здравствуйте. Подскажите как это можно сделать на своём antizapret.

Примерно так:

root@antizapret-vpn:~/dnsmap# diff -u proxy.py_ proxy.py
--- proxy.py_	2022-04-19 01:36:20.007487333 +0200
+++ proxy.py	2023-05-20 23:47:00.743846804 +0200
@@ -94,16 +94,26 @@
                                 tcp=True,timeout=self.timeout)
             reply = DNSRecord.parse(proxy_r)
 
-            if request.q.qtype == QTYPE.AAAA:
-                print('GOT AAAA')
+            if request.q.qtype == QTYPE.AAAA or request.q.qtype == QTYPE.HTTPS:
+                print('GOT AAAA or HTTPS')
                 reply = request.reply()
                 return reply
-            
+
             if request.q.qtype == QTYPE.A:
                 print('GOT A')
+
+                newrr = []
+                for record in reply.rr:
+                    if record.rtype == QTYPE.CNAME:
+                        continue
+                    newrr.append(record)
+                reply.rr = newrr
+
                 for record in reply.rr:
                     if record.rtype != QTYPE.A:
                         continue
+
+                    print("Got RECORD:", record)
                     #print(dir(record))
                     #print(type(record.rdata))
 
@@ -118,6 +128,7 @@
                         return reply
 
                     record.rdata = A(fake_addr)
+                    record.rname = request.q.qname
                     record.ttl = 300
                     #print(a.rdata)
                 return reply

В итоге получил это

nslookup yt3.ggpht.com
Address: 192.168.1.1
Не заслуживающий доверия ответ:
╚ь : photos-ugc.l.googleusercontent.com
Address: 142.250.74.33
Aliases: yt3.ggpht.com

Не то что я хотел, он возвращает ip адрес photos-ugc.l.googleusercontent.com, хотел чтобы из ответа пропал CNAME и возвращал ip адрес для проксирования, так как этот домен заблокирован.

Да вроде не должен, самая последняя строка перезаписывает домен. Вы точно применили патч, перезапустили dnsmap и очистили кэш? Я так понимаю, у вас еще и промежуточный резолвер, его кэш вы также очистили?

Кэш везде почистил. Как перезапустить dnsmap?

systemctl restart dnsmap

Теперь все заблокированные домены не работают.

nslookup yt3.ggpht.com
╤хЁтхЁ: UnKnown
Address: 192.168.1.1
DNS request timed out.
timeout was 2 seconds.
*** UnKnown не удалось найти yt3.ggpht.com: Query refused

systemctl status dnsmap пишет что активен, но нету логов, которые были до изменения.

proxy.py (9,1 КБ)

Логи не появлялись потому что в systemd не было параметра запуска python3 -u. В итоге имеем такие логи:

Jul 13 07:00:24 fb380a5377b3 python3[116]: Request: [127.0.0.1:45683] (udp) / ‘yT3.gGphT.COm.’ (AAAA)
Jul 13 07:00:24 fb380a5377b3 python3[116]: Invalid Request: [127.0.0.1:50178] (udp) :: QTYPE: Invalid reverse lookup: [HTTPS]
Jul 13 07:00:24 fb380a5377b3 python3[116]: GOT AAAA or HTTPS
Jul 13 07:00:24 fb380a5377b3 python3[116]: Reply: [127.0.0.1:45683] (udp) / ‘yT3.gGphT.COm.’ (AAAA) / RRs:
Jul 13 07:00:25 fb380a5377b3 python3[116]: Request: [127.0.0.1:44505] (udp) / ‘I.InsTaGRaM.COm.’ (A)
Jul 13 07:00:25 fb380a5377b3 python3[116]: Invalid Request: [127.0.0.1:44505] (udp) :: QTYPE: Invalid reverse lookup: [HTTPS]
Jul 13 07:00:26 fb380a5377b3 python3[116]: Request: [127.0.0.1:56641] (udp) / ‘Yt3.GGPht.cOm.’ (A)
Jul 13 07:00:26 fb380a5377b3 python3[116]: Invalid Request: [127.0.0.1:56641] (udp) :: QTYPE: Invalid reverse lookup: [HTTPS]
Jul 13 07:00:27 fb380a5377b3 python3[116]: Request: [127.0.0.1:36188] (udp) / ‘i.INStAgRaM.COM.’ (A)
Jul 13 07:00:27 fb380a5377b3 python3[116]: Invalid Request: [127.0.0.1:36188] (udp) :: QTYPE: Invalid reverse lookup: [HTTPS]

@ValdikSS может были ещё какие то патчи? Почему может не работать?

Не в курсе. На серверах АнтиЗапрета файл один-в-один как у вас.

apt remove python3-dnslib && apt -y install python3-pip
pip3 install dnslib

Получилось. Огромное спасибо Вам.