Простой DNS-сервер - PullRequest
       4

Простой DNS-сервер

1 голос
/ 31 октября 2009

Я должен внедрить DNS-сервер в C, и я не знаю, с чего начать. Каковы все функции DNS ... как я могу реализовать простой DNS в одном файле C.

Я даже не хочу использовать базу данных, будет работать только файл.

Заранее спасибо

Ответы [ 5 ]

4 голосов
/ 02 ноября 2009

Это здорово для домашней работы! Ваш учитель честолюбив. Реализация DNS требует чтения как минимум десяти сложных RFC (не говоря уже о DNSSEC ...) не ограничьте себя RFC 1034 и 1035, есть обязательные RFC после (например, 2181 и 2671). Смотрите хороший график из них.

Это авторитетный сервер имен или рекурсивный?

Вы должны сделать это с нуля? Если нет, я настоятельно рекомендую начать с библиотекой evldns , которая позволяет вам написать антропритический сервер имен в 200 строк кл.

В противном случае применяется обычный совет: прочитайте исходный код (я предлагаю nsd для авторитетного сервера и unbound для рекурсивного один).

1 голос
/ 31 октября 2009

DNS - это большая спецификация. Если вы действительно хотите DNS, используйте DNS-сервер. Поэтому, если вы хотите что-то действительно быстрое и грязное, почему бы не написать программу, которая редактирует ваш файл hosts (C: \ windows \ system32 \ drivers \ etc \ hosts или / etc / hosts (в UNIX)?)

1 голос
/ 31 октября 2009

dns.net указывает на RFC 1034: ДОМЕННЫЕ ИМЕНА - КОНЦЕПЦИИ И СРЕДСТВА и RFC 1035: ДОМЕННЫЕ ИМЕНА - ОСУЩЕСТВЛЕНИЕ И СПЕЦИФИКАЦИЯ в качестве окончательных ссылок.

В качестве актуального плюса, удивите своего учителя, включив в список поиска игрушек несколько не-ascii IDN имен.

0 голосов
/ 29 декабря 2010

Это должно помочь вам начать.

В этом примере используются гнезда BSD для создания простого преобразователя DNS. http://www.binarytides.com/blog/dns-query-code-in-c-with-winsock-and-linux-sockets/

0 голосов
/ 31 октября 2009

RFC, на которых основан протокол, можно найти здесь: http://www.zoneedit.com/doc/rfc/

Существует также несколько объяснений протокола, которые должны быть полезны для поиска в Интернете, таких как этот: http://www.windowsnetworking.com/articles_tutorials/Understanding-DNS-Protocol-Part1.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...