Как узлы взаимодействуют в VPN ZeroConf?

#winapi #vpn #zeroconf

#winapi #vpn #zeroconf

Вопрос:

Я хотел создать программное обеспечение P2P VPN с нулевой конфигурацией, такое как hamachi или tunngle. Я просмотрел множество веб-сайтов, книг и статей, но это вызвало у меня еще больше путаницы. Итак, я здесь. 🙂

Во-первых, пожалуйста, дайте мне несколько ссылок, которые могут подсказать мне, как разработать такое программное обеспечение, и, во-вторых, пожалуйста, расскажите мне, как этот VPN с нулевым разрешением работает шаг за шагом.

Помимо этого, я сомневаюсь: Я где-то читал что-то вроде этого — N2N позволяет человеку создавать VPN-соединение между двумя или более компьютерами. Чтобы компьютер мог подключиться к другому компьютеру, на каждом компьютере должен быть запущен «пограничный» исполняемый файл. Любое количество компьютеров может быть подключено друг к другу, но для того, чтобы все соединения имели место, один компьютер должен запустить исполняемый файл «supernode». Теперь для установления соединений компьютеры, на которых запущен «edge», сначала пытаются подключиться к компьютеру, на котором запущен «суперузел», после чего, как только обмен информацией между всеми компьютерами, на которых запущен «edge», завершен через «суперузел», «суперузел» больше не нужен, и соединения между компьютерами, на которых работает «edge», выполняются напрямую с компьютера на компьютер без какого-либо участия «суперузла».

Мой вопрос в том, как можно напрямую устанавливать соединения между компьютерами без какого-либо участия supernode? По сути, всем пограничным узлам присваивается частный IP-адрес. Теперь 2 компьютера не могут обмениваться данными через Интернет, если у них есть частные IP-адреса. Другое дело, если 2 узла находятся за 2 симметричными серверами NAT, то как они могут взаимодействовать, если им назначен частный IP-адрес?

Помогите мне разобраться в этой технике VPN.

Ответ №1:

Я не знаю, что это за штука с VPN, о которой вы говорите. Тем не менее, я работал с Zero Conf с точки зрения многоадресной рассылки DNS (он же Bonjour, Avahi и т. Д.). Apple лидирует в этом — вы можете скачать там код здесь — он легко компилируется в Linux, и это поможет вам зайти так далеко:
http://opensource.apple.com/source/mDNSResponder/mDNSResponder-320.10/

Об IP-адресах заботится операционная система. RFC 3927…