Skip to content

Commit 9aa76d9

Browse files
committed
Log DNS packets
1 parent eb9b3d5 commit 9aa76d9

1 file changed

Lines changed: 14 additions & 5 deletions

File tree

crates/telio-dns/src/nameserver.rs

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,13 +13,13 @@ use hickory_server::{
1313
};
1414
use neptun::noise::{Tunn, TunnResult};
1515
use pnet_packet::{
16-
dns::{DnsQuery, DnsTypes},
16+
dns::{DnsPacket, DnsQuery, DnsTypes},
1717
ip::{IpNextHeaderProtocol, IpNextHeaderProtocols},
1818
ipv4::{checksum, Ipv4Packet, MutableIpv4Packet},
1919
ipv6::{Ipv6Packet, MutableIpv6Packet},
2020
tcp::{MutableTcpPacket, TcpFlags, TcpPacket},
2121
udp::{ipv4_checksum, ipv6_checksum, MutableUdpPacket, UdpPacket},
22-
Packet,
22+
FromPacket, Packet,
2323
};
2424
use std::{
2525
net::{IpAddr, Ipv4Addr, Ipv6Addr, SocketAddr},
@@ -381,18 +381,27 @@ impl LocalNameServer {
381381
.clone()
382382
.ok_or_else(|| String::from("No forwarder configured"))?
383383
};
384+
384385
telio_log_debug!(
385-
"Forwarding DNS request from port {:?}: {:?}",
386+
"Forwarding DNS request from port {:?}",
386387
request_info.dns_source_port(),
387-
&raw_query
388388
);
389+
if let Some(dns_packet) = DnsPacket::new(&raw_query) {
390+
telio_log_debug!("Request: {:?}", dns_packet);
391+
for query in dns_packet.get_queries() {
392+
telio_log_debug!(" {}", query.get_qname_parsed());
393+
}
394+
}
389395

390396
let response = forwarder
391397
.query(&raw_query)
392398
.await
393399
.map_err(|e| format!("Forward failed: {e:?}"))?;
394400

395-
telio_log_debug!("Forwarder responded: {:?}", &response);
401+
telio_log_debug!("Forwarder responded");
402+
if let Some(dns_packet) = DnsPacket::new(&response) {
403+
telio_log_debug!("Response: {:#?}", dns_packet);
404+
}
396405

397406
response
398407
}

0 commit comments

Comments
 (0)