Как создать одноранговую сеть Ipv6, используя локальные адреса?

Если /etc/resolv.confимеет nameserverзначение 127.0.0.1, это, вероятно, означает, что у вас установлен локальный кэширующий преобразователь DNS или даже локальный сервер имен.

Как правило, серверы имен, указанные DHCP -, затем используются в качестве целей для переадресации запросов DNS в случаях, когда локальный кэш/сервер не имеет ответа. Вы можете найти их в /etc/resolv.dnsmasq, /run/named/named.forwardersили подобном файле конфигурации, специфичном для кеша/сервера.

В основном, большинство программ будут читать /etc/resolv.conf. Он указывает программам использовать локальный кэш/сервер, который будет иметь свой собственный файл конфигурации, управляемый DHCP -. Затем локальный кэш/сервер будет использовать серверы, указанные DHCP, в качестве вышестоящего источника DNS.

1
01.05.2020, 18:10
2 ответа

Наиболее удобным способом является настройка mDNS (Multicast DNS )или LLMNR (Link -Local Multicast Name Resolution ), что позволяет использовать имена хостов вместо IP-адресов. В обоих механизмах хосты сами сообщают свои имена в сети, поэтому нет необходимости в централизованном сервере имен. Вы можете настроить mDNS или LLMNR (или оба )с помощью systemd -networkd.

Проблема с использованием локальных адресов IPv6 link -заключается в том, что они являются просто локальными адресами :link -. Нет сетевого префикса, который указывал бы, какой сетевой интерфейс использовать, поэтому вам придется указать индекс интерфейса после адреса, например:

ping fe80::xxxx:xxxx:xxxx:xxxx%3
0
28.04.2021, 23:16

Это во многом зависит от того, хотите ли вы развертывать собственное программное обеспечение. Большинство (все? )Одноранговое программное обеспечение, скорее всего, не соответствует ограничениям -Локальные адреса. Если одноранговое программное обеспечение не было специально написано для обработки этого ограничения, оно, скорее всего, не сможет работать.

Проблема

В отличие от других классов IP-адресов, локальные адреса IPv6 Link -нельзя использовать сами по себе. Другие классы адресов содержат информацию для идентификации сетевого сегмента , поэтому ОС может определить, какой интерфейс (сетевой карты )использовать для связи с этим адресом. Для локальных адресов IPv6 Link НЕОБХОДИМО отдельно указать, какой сетевой интерфейс использовать. например:ping fe80::1234:5678%3не ping fe80::1234:5678.

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

Наиболее распространенный обходной путь (вряд ли поможет при работе с одноранговыми узлами)

Самый простой способ обойти это — избегать использования явных IP-адресов и использовать имена хостов. Реализации таких протоколов, как mDNS , могут преобразовывать имя хоста в IP-адрес и соответствующий интерфейс. Например:

ping mypc.local

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

Почему это проблема для программного обеспечения Peer -–-Peer?

Большая часть программного обеспечения для одноранговой сети была написана исходя из предположения, что оно будет использоваться в Интернете, и его пользователи не будут иметь или знать свое полное доменное имя . По этой причине существующее программное обеспечение не использует имена хостов или доменные имена, оно использует IP-адреса... только IP-адреса.

Теоретически вы можете написать некоторое программное обеспечение, которое можно явно настроить для использования одного определенного интерфейса, а затем совместно использовать локальные адреса IPv6.Но это звучит как много работы, чтобы избежать альтернативы...

Альтернатива

Для решения этой конкретной проблемы лучше настроить каждую машину с ULA(дополнительным IP-адресом ). Это может избежать необходимости развертывания собственного программного обеспечения.

0
28.04.2021, 23:16

Теги

Похожие вопросы