1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/xujf-fnat46

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Описание сценария

В текущей сети IPv4 с одним стеком, клиенты (ПК и мобильные устройства) получают доступ к ресурсам внешней сети IPv6 с одним стеком через проводное или беспроводное соединение.

Общая концепция

Клиенты в локальной сети подключаются к шлюзу, который преобразует протоколы. Шлюз использует DNS46 для разрешения доменных имён. Запросы на доступ к IPv6-ресурсам преобразуются с помощью NAT46. Это позволяет завершить сетевую сессию.

Последовательность процесса

  1. Клиент IPv4 отправляет запрос на сетевой ресурс к серверу доменных имён DNS46 (запрос A-записи).
  2. DNS46 выполняет рекурсивный поиск A-записи для публичного домена в интернете. Если запись найдена, она возвращается клиенту, и клиент продолжает использовать IPv4 для запроса.
  3. Если DNS46 находит только AAAА-запись для домена, это означает, что сервис предоставляет только IPv6 и требуется преобразование с помощью NAT46.
  4. DNS46 выбирает доступный IPv4 из пула ресурсов и регистрирует сопоставление между этим IPv4 и IPv6 сервиса. Затем он синхронизирует это сопоставление с NAT46 шлюзом и возвращает IPv4 клиенту.
  5. Клиент инициирует сетевую сессию с использованием этого IPv4. Запрос направляется к DNS46 шлюзу.
  6. DNS46 использует IP назначения в заголовке пакета для поиска сопоставления. Он получает реальный IPv6 адрес назначения и заменяет IPv4 заголовок пакета на IPv6 заголовок. Затем запрос отправляется к сервису через выход IPv6 NAT46 шлюза.
  7. После получения ответа от сервиса, NAT46 преобразует IPv6 заголовок обратно в IPv4 и отправляет ответ клиенту. Сессия завершается.

NAT46 шлюз

NAT46 используется для преобразования протоколов между IPv4 и IPv6. Он содержит встроенную таблицу сопоставлений. Преобразование протоколов соответствует RFC документам IETF.

DNS46 сервер доменных имён

(проект пока не реализован) Предоставляет услуги доменного имени. Является первичным DNS сервером для всех клиентов. Для IPv4 ресурсов возвращает A-записи, а для IPv6 ресурсов — временные A-записи. Синхронизирует сопоставления между A- и AAAА-записями с NAT46.

Реальные проблемы применения

  • Проект прошёл функциональное тестирование (ICMP/TCP/UDP), но ещё не достиг уровня готовности продукта.
  • Несмотря на использование DPDK фреймворка, пакеты протоколов не используют ZERO-COPY, а копируются напрямую. Планируется решить эту проблему позже.
  • Трёхслойное преобразование протоколов должно учитывать все возможные типы протоколов (ARP/IP/GRE/VLAN/MPLS).
  • Необходимо обрабатывать разделение сетевых пакетов.

Создание среды разработки

  1. Установите Intel NFF-GO DPDK платформу (https://github.com/intel-go/nff-go).
  2. На компьютере разработчика должно быть как минимум три сетевых карты: одна для управления, одна для IPv4 сети и одна для IPv6 сети.
  3. Подключите IPv4 и IPv6 сетевые интерфейсы к DPDK.
  4. Измените файлы компиляции и конфигурации запуска в соответствии с сетевой средой.

Связаться со мной

Если у вас есть интерес к этому проекту, протоколу IPv4/IPv6 преобразования или его применению, вы можете связаться со мной по адресу xujf000@gmail.com.

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

В текущей локальной сети IPv4 клиенты (настольные ПК и мобильные устройства) получают доступ к ресурсам внешней сети IPv6 по проводному или беспроводному соединению. Развернуть Свернуть
MIT
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/xujf-fnat46.git
git@api.gitlife.ru:oschina-mirror/xujf-fnat46.git
oschina-mirror
xujf-fnat46
xujf-fnat46
master