Разрешение зоны IPv6 - PullRequest
       10

Разрешение зоны IPv6

0 голосов
/ 05 августа 2009

Во-первых, я новичок в особенностях IPv6, поэтому я не удивлюсь, если это просто неправильное понимание маршрутизации IPv6. Рассмотрим ситуацию, когда у меня работает оверлейная сеть P2P, часть которой находится в пределах одной локальной сети. Узлы в этой локальной сети имеют следующие локальные адреса ссылок (как они видят сами):

  • Peer 1 fe80 :: 225: 4bff: fea8: e200% en0
  • Peer 2 fe80 :: 225: 4bff: fea8: e201% eth1
  • Peer 3 fe80 :: 225: 4bff: fea8: e202% en1

Теперь предположим, что каждый пэр был в состоянии обнаружить других с помощью некоторых средств и иметь адреса для друг друга. Каждый узел прослушивает порт, скажем, 12345. Если узел 1 хочет поговорить с узлом 2, он может попытаться использовать URI:

TCP: // [FE80: 225: 4bff: fea8: E201% eth1]: 12345

Здесь я сталкиваюсь с проблемами. Узел 1 не имеет адаптера с именем «eth1», и поэтому этот идентификатор зоны IPv6 ему неизвестен. Если идентификатор зоны удален из адреса, узел 1 не может определить, какой из его адаптеров он должен использовать для связи с хостом.

Итак, вопрос: можно ли разрешить идентификатор зоны для адреса IPv6 стандартным способом? Если нет, нужно ли запрашивать в системе все идентификаторы зоны и пытаться подключиться к адресу, используя каждый идентификатор зоны по очереди, пока я не добьюсь успеха? Или попытка общаться с использованием локальных адресов - глупая идея?

1 Ответ

4 голосов
/ 05 августа 2009

Ссылка на локальные адреса уместна, только если у вас есть какой-то механизм для автоматического определения местоположения другого рассматриваемого узла и подключения, связывающегося с правильным интерфейсом.

Если вы ожидаете, что пользователь будет вводить адреса вручную, вы должны использовать локальные адреса сайта (или еще лучше, уникальные локальные адреса ) и попросить пользователя настроить их самостоятельно, или используйте метод разрешения адресов поверх локальных адресов, например mDNS.

...