|
|
|
|
@ -7,6 +7,38 @@
|
|
|
|
|
#include "../lib/ll_queue.h" |
|
|
|
|
#include "../lib/u_async.h" |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
Диапазон Назначение |
|
|
|
|
::/128 Неопределенный адрес (unspecified). Используется до назначения адреса интерфейсу. |
|
|
|
|
::1/128 Адрес обратной петли (loopback), аналог 127.0.0.1 в IPv4. |
|
|
|
|
2000::/3 Глобально маршрутизируемые (Global Unicast) адреса. Основное адресное пространство Интернета. |
|
|
|
|
fc00::/7 Уникальные локальные адреса (ULA), аналог частных IPv4 (10.0.0.0/8, 192.168.0.0/16). На практике обычно используется fd00::/8. |
|
|
|
|
fe80::/10 Локальные канальные адреса (Link-Local). Автоматически назначаются интерфейсам и работают только в пределах одного сегмента сети. Не маршрутизируются. |
|
|
|
|
ff00::/8 Multicast-адреса. Используются вместо широковещания (broadcast), которого в IPv6 нет. |
|
|
|
|
100::/64 Адреса для протокола Discard-Only. Предназначены для тестирования и отладки. |
|
|
|
|
64:ff9b::/96 Префикс для трансляции IPv4↔IPv6 (NAT64). |
|
|
|
|
64:ff9b:1::/48 Расширенный префикс NAT64. |
|
|
|
|
2001:db8::/32 Зарезервирован для документации и примеров. Не используется в Интернете. |
|
|
|
|
2002::/16 6to4-адреса (устаревший механизм перехода с IPv4 на IPv6). |
|
|
|
|
2001::/32 Teredo (устаревшая технология туннелирования IPv6 через IPv4). |
|
|
|
|
::ffff:0:0/96 IPv4-mapped IPv6 addresses. Используются ОС для представления IPv4-адресов в IPv6 API. |
|
|
|
|
|
|
|
|
|
Адреса узлов сети формируются по следующему принципу: |
|
|
|
|
FCxx:xxxx:xxxx:xxxx : yyyy:yyyy:yyyy:yyyy - local network: x = network id, y - node id. |
|
|
|
|
-- network id --- ---- node id ------ |
|
|
|
|
|
|
|
|
|
FDxx/8 - опциональные ipv6 подсети узлов /64 (если нужно) |
|
|
|
|
|
|
|
|
|
В разных node_groups общие: |
|
|
|
|
- nodelists с их настройками (глобальная таблица) |
|
|
|
|
- одинаковые линки между nodes (т.к. только один линк между парой узлов) |
|
|
|
|
|
|
|
|
|
- При маршрутизации используем только узлы |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
*/ |
|
|
|
|
|
|
|
|
|
// таблица маршрутизации IPv6 на radix tree + ll_queue (поиск по node_id для удаления)
|
|
|
|
|
|
|
|
|
|
struct ROUTE6_DATA { |
|
|
|
|
|