From: Remi Gacogne Date: Thu, 4 Jul 2024 08:26:48 +0000 (+0200) Subject: dnsdist: Add information, with better formatting, to our XDP script X-Git-Tag: rec-5.2.0-alpha1~188^2~2 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=3884e5dd78689f85dbb573f9bfe19c0b6348565b;p=thirdparty%2Fpdns.git dnsdist: Add information, with better formatting, to our XDP script --- diff --git a/contrib/xdp.py b/contrib/xdp.py index 089e68d9b1..46725e8fd6 100644 --- a/contrib/xdp.py +++ b/contrib/xdp.py @@ -120,16 +120,26 @@ try: except KeyboardInterrupt: pass -for item in v4filter.items(): - print(f"{str(netaddr.IPAddress(item[0].value))} ({ACTIONS[item[1].action]}): {item[1].counter}") -for item in v6filter.items(): - print(f"{str(socket.inet_ntop(socket.AF_INET6, item[0]))} ({ACTIONS[item[1].action]}): {item[1].counter}") -for item in cidr4filter.items(): - addr = netaddr.IPAddress(socket.ntohl(item[0].addr)) - print(f"{str(addr)}/{str(item[0].cidr)} ({ACTIONS[item[1].action]}): {item[1].counter}") -for item in cidr6filter.items(): - print(f"{str(socket.inet_ntop(socket.AF_INET6, item[0].addr))}/{str(item[0].cidr)} ({ACTIONS[item[1].action]}): {item[1].counter}") -for item in qnamefilter.items(): - print(f"{''.join(map(chr, item[0].qname)).strip()}/{INV_QTYPES[item[0].qtype]} ({ACTIONS[item[1].action]}): {item[1].counter}") +if v4filter or v6filter or cidr4filter or cidr6filter: + print("Blocked networks:") + for item in v4filter.items(): + print(f"- {str(netaddr.IPAddress(item[0].value))} ({ACTIONS[item[1].action]}): {item[1].counter}") + for item in v6filter.items(): + print(f"- {str(socket.inet_ntop(socket.AF_INET6, item[0]))} ({ACTIONS[item[1].action]}): {item[1].counter}") + for item in cidr4filter.items(): + addr = netaddr.IPAddress(socket.ntohl(item[0].addr)) + print(f"- {str(addr)}/{str(item[0].cidr)} ({ACTIONS[item[1].action]}): {item[1].counter}") + for item in cidr6filter.items(): + print(f"- {str(socket.inet_ntop(socket.AF_INET6, item[0].addr))}/{str(item[0].cidr)} ({ACTIONS[item[1].action]}): {item[1].counter}") + +if qnamefilter: + print("Blocked query names:") + for item in qnamefilter.items(): + print(f"- {''.join(map(chr, item[0].qname)).strip()}/{INV_QTYPES[item[0].qtype]} ({ACTIONS[item[1].action]}): {item[1].counter}") + +if parameters.xsk and xskDestinations: + print("Content of the AF_XDP (XSK) routing map:") + for item in xskDestinations.items(): + print(f"- {str(netaddr.IPAddress(socket.ntohl(item[0].addr)))}:{str(socket.ntohs(item[0].port))}") xdp.remove_xdp(parameters.interface, 0)