Design, Implementation and Testing of a Tiny Multi-Threaded DNS64 Server

Gábor Lencse, András Gábor Soós


DNS64 is going to be an important service (together with NAT64) in the upcoming years of the IPv6 transition enabling the clients having only IPv6 addresses to reach the servers having only IPv4 addresses (the majority of the servers on the Internet today). This paper describes the design, implementation and functional testing of MTD64, a flexible, easy to use, multi-threaded DNS64 proxy published as a free software under the GPLv2 license. All the theoretical background is introduced including the DNS message format, the operation of the DNS64 plus NAT64 solution and the construction of the IPv4-embedded IPv6 addresses. Our design decisions are fully disclosed from the high level ones to the details. Implementation is introduced at high level only as the details can be found in the developer documentation. The most important parts of a through functional testing are included as well as the results of some basic performance comparison with BIND.

Full Text:



The Number Resource Organization, “Free pool of IPv4 address space depleted” [Online]. Available:

N. Skoberne, O. Maennel, I. Phillips, R. Bush, J. Zorz, and M. Ciglaric, “IPv4 address sharing mechanism classification and tradeoff analysis”, IEEE/ACM Transactions on Networking, vol. 22, no 2, April 2014, pp. 391–404.DOI: 10.1109/TNET.2013.2256147

M. Bagnulo, A Sullivan, P. Matthews and I. Beijnum, “DNS64: DNS extensions for network address translation from IPv6 clients to IPv4 servers”, IETF, April 2011. ISSN: 2070-1721 (RFC 6147)

M. Bagnulo, P. Matthews and I. Beijnum, “Stateful NAT64: Network address and protocol translation from IPv6 clients to IPv4 servers”, IETF, April 2011. ISSN: 2070-1721 (RFC 6146)

M. Bagnulo, A. Garcia-Martinez and I. Van Beijnum, “The NAT64/DNS64 tool suite for IPv6 transition”, IEEE Communications Magazine, vol. 50, no. 7, July 2012, pp. 177–183. DOI: 10.1109/MCOM.2012.6231295

C. Bao, C. Huitema, M. Bagnulo, M Boucadair and X. Li, “IPv6 addressing of IPv4/IPv6 translators”, IETF RFC 6052, 2010.

Free Software Fundation, “The free software definition”, [Online]. Available:

Open Source Initiative, “The open source definition”, [Online]. Available:

F. W. Dillema, TOTD 1.5.3 source code, [Online]. Available:

G. Lencse and A. G. Soós, “Design of a Tiny Multi-Threaded DNS64 Server”, in Proc. 38th Internat. Conf. on Telecommunications and Signal Processing (TSP 2015), Prague, 2015, pp. 27–32. DOI: 10.1109/TSP.2015.7296218

P. Mockapetris, “Domain names – implementation and specification”, IETF, November 1987. (RFC 1035)

R. Elz and R. Bush, “Clarifications to the DNS Specification”, IETF, July 1997. (RFC 2181)

N. Škoberne and M. Ciglarič, “Practical evaluation of stateful NAT64/DNS64 translation” Advances in Electrical and Computer Engineering, vol. 11, no. 3, August 2011, pp. 49–54. DOI: 10.4316/AECE.2011.03008

V. Bajpai, N. Melnikov, A. Sehgal and J. Schönwälder, “Flow-based identification of failures caused by IPv6 transition mechanisms” in Proc. 6th IFIP WG 6.6 Internat. Conf. on Autonomous Infrastructure, Management, and Security (AIMS 2012), Luxembourg, 2012, pp 139–150. DOI: 10.1007/978-3-642-30633-4_19

S. Répás, T. Hajas and G. Lencse, “Application compatibility of the NAT64 IPv6 transition technology”, in Proc. 37th Internat. Conf. on Telecommunications and Signal Processing (TSP 2014), Berlin, 2014, pp. 49–55. DOI: 10.1109/TSP.2015.7296383

G. Lencse, “Investigation of event-set algorithms”, in Proc. 9th European Simulation Multiconference (ESM'95) Prague, 1995, pp. 821–825.

A. Soós, “Multi-Threaded DNS64 server”, documentation and source code, [Online]. Available:

G. Lencse, “Performance analysis of MTD64, our tiny multi-threaded DNS64 server implementation: Proof of concept”, review version available:

G. Lencse, “Test program for the performance analysis of DNS64 servers”, Internat. J. of Advances in Telecomm., Electrotechnics, Signals and Systems, vol. 4. no. 3. pp 60–65. Sep. 2015. DOI: 10.11601/ijates.v4i3.121

G. Lencse, dns64perf source code,

NTIA ITS, “Definition of ‘graceful degradation’ ” [Online]. Available:

G. Lencse and S. Répás, “Performance analysis and comparison of different DNS64 implementations for Linux, OpenBSD and FreeBSD”, in Proc. IEEE 27th Internat. Conf. on Advanced Information Networking and Applications (AINA 2013), Barcelona, 2013, pp. 877–884. DOI: 10.1109/AINA.2013.80

G. Lencse and S. Répás, “Improving the Performance and Security of the TOTD DNS64 Implementation”, Journal of Computer Science and Technology (JCS&T), ISSN: 1666-6038, vol. 14, no. 1, pp. 9–15. Apr. 2014.

G. Lencse, S. Répás, “Performance analysis and comparison of four DNS64 implementations under different free operating systems”, Telecommunication Systems, in press, DOI: 10.1007/s11235-016-0142-x

R. Arends, R. Austein, M. Larson, D. Massey, S. Rose, “DNS Security Introduction and Requirements”, IETF, March 2005. (RFC 4033)

J. Damas, M. Graff, P. Vixie, “Extension Mechanisms for DNS (EDNS(0))”, IETF, April 2013. (RFC 6891)



  • There are currently no refbacks.