210 likes | 342 Views
TECHNION - ISRAEL INSTITUTE OF TECHNOLOGY SOFTLAB. IPv6 Enable DNS Server. Rosenfeld Asaf & Timor Lior. Advisor: Uritzky Max. TECHNION - ISRAEL INSTITUTE OF TECHNOLOGY SOFTLAB. Some Background. The Project deals with several major protocols
E N D
TECHNION - ISRAEL INSTITUTE OF TECHNOLOGY SOFTLAB IPv6 Enable DNS Server Rosenfeld Asaf & Timor Lior Advisor: Uritzky Max
TECHNION - ISRAEL INSTITUTE OF TECHNOLOGY SOFTLAB Some Background • The Project deals with several major protocols • DNS Servers play a very important role in the Internet • New IP Protocol is quicky spreading worldwide • Internet servers must be stable and usable
TECHNION - ISRAEL INSTITUTE OF TECHNOLOGY SOFTLAB Domain Name Service • Use names instead of numbers • Servers are suffixes divided • Servers arranged in tree like hierarchy • Ever notice the dot ???
TECHNION - ISRAEL INSTITUTE OF TECHNOLOGY SOFTLAB DNS (cont.)
TECHNION - ISRAEL INSTITUTE OF TECHNOLOGY SOFTLAB Internet Protocol V6 • IPv4 supports poorly distirbuted and not enough addresses. (4G) • Modular Packet structure • New features • Different handling • No backward compatibility
TECHNION - ISRAEL INSTITUTE OF TECHNOLOGY SOFTLAB Project Goals • Learn the DNS protocol • Learn the IPv6 protocol • Learn C# with MS .NET • Implement a deployable DNS Server for IPv4 and IPv6 addresses, accoding to Industry standatds and RFCs
TECHNION - ISRAEL INSTITUTE OF TECHNOLOGY SOFTLAB Challanges • Server needs to have dual stack. Support for both platform and service • Usable – handle large amount of requsets in short time. Parse, Find, Build and Send while Avoiding timeouts. • Stable – withstand bursts and DoS attacks • Testing (DoS, multiple environments, test app.) • Native and Joined IP environments
TECHNION - ISRAEL INSTITUTE OF TECHNOLOGY SOFTLAB Solution Concept • Multiple Network-interface threads • Single synchronized joined Database • Database capable of learning • Run-time protocol chooser • Use .Net Socket, Threading and collections mechanisms
TECHNION - ISRAEL INSTITUTE OF TECHNOLOGY SOFTLAB Class Diagram
TECHNION - ISRAEL INSTITUTE OF TECHNOLOGY SOFTLAB Database Demands: • Support multiple read and write transactions • Fast ! Hash container
TECHNION - ISRAEL INSTITUTE OF TECHNOLOGY SOFTLAB Database (cont.) • .Net Interlocked methods • Each function is either Writer or Reader • Wrapped in try finally • Learns using .Net resolver
TECHNION - ISRAEL INSTITUTE OF TECHNOLOGY SOFTLAB Network Interface • Setting .Net framework to use IPv6 • Use .Net Socket class with address families IPv4 and IPv6 • Ability handle large amout of requests simultaneously Threads • Starting a new thread is costy • Starting all needed threads at the beginning, is a waste, and has a management overhead THREADPOOL
TECHNION - ISRAEL INSTITUTE OF TECHNOLOGY SOFTLAB .NET Threadpool • Provides a pool of threads that can be used to post work items, process asynchronous I/O, wait on behalf of other threads, and process timers • System managed
TECHNION - ISRAEL INSTITUTE OF TECHNOLOGY SOFTLAB Network Interface (cont.) • Use StartReceiveFrom which uses threadpool • Each task re-assigns itself • v4 tasks and v6 tasks
TECHNION - ISRAEL INSTITUTE OF TECHNOLOGY SOFTLAB Use case
TECHNION - ISRAEL INSTITUTE OF TECHNOLOGY SOFTLAB User Interface
TECHNION - ISRAEL INSTITUTE OF TECHNOLOGY SOFTLAB Unit Testing • real-life scenario. Remote applications use the DNS server • Linux tools (nslookup, dig, etc..) • Proprietary test application
TECHNION - ISRAEL INSTITUTE OF TECHNOLOGY SOFTLAB Technology • C# • MS .NET Framwork Socket Threadpool Container Text.Encoding • IPv6 • DNS • Various Linux DNS test tools
TECHNION - ISRAEL INSTITUTE OF TECHNOLOGY SOFTLAB Conclusions • Although database strucure is optimized and hash table was used, it is still the bottleneck • Commercial DNS products do not fully implement standard • IPv6 support is far from being friendly. MS .Net support not fully works
TECHNION - ISRAEL INSTITUTE OF TECHNOLOGY SOFTLAB Future Work • IPSEC • DNS-SEC • Optimized Caching, threaded $ ? • Mutual DNS Servers updates • Server implemented as semi-cluster • Threadpool fiddling - setMinThreads
TECHNION - ISRAEL INSTITUTE OF TECHNOLOGY SOFTLAB Acknowledgment We would like to thank Max Uritzky for all the support. Always fast, regardless the day or the time ! And of course, the software lab, for answering our technical needs