Debian 7, как устанавливаются локальные адреса IPv6-ссылок?

12

Кажется, что когда dhclient работает на eth0, я получаю IPv4-адрес от DHCP-сервера и Scope: Link IPv6-адрес, связанный с eth0:

inet6 addr: fe80::a00:27ff:fed0:4d41/64 Scope:Link

Но я не вижу из dhclient-script, как этот адрес добавляется. На другом интерфейсе со статическим IP-адресом я хотел бы добавить ссылку на локальный IPv6-адрес, и мне было интересно, есть ли общая команда для этого без знания Mac.

Редактировать:
Похоже, ядро ​​назначает локальный адрес ссылки, когда вы делаете «ip link set dev ethX up» или «ifconfig ethX up». Тем не менее, в моем случае я подключил кабель к интерфейсу DHCP и ни один кабель не был подключен к интерфейсу, который я настраивал статически. Не могу проверить до понедельника, но я предполагаю, что ядро ​​не назначает локальные адреса ссылки интерфейсу, если ссылки нет.

Аарон
источник
2
Ни один из них не имеет ничего общего с другим.
Майкл Хэмптон
2
Я это понимаю. И все же, в результате выполнения dhclient вы получаете адрес IPv6LL, но когда вы устанавливаете статический адрес IPv4, вы этого не делаете. Таким образом, некоторый побочный эффект некоторой команды, выполняемой dhclient, устанавливает это ..
Аарон
1
Нет, вы не получаете локальный IPv6-адрес от запуска dhclient.
Майкл Хэмптон

Ответы:

7

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

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

RFC 4862 определяет процессы, которым необходимо следовать.

BillThor
источник
1
Msgstr "Они генерируются автоматически как часть создания интерфейса". Правильно, это то, что я ищу, кто это автоматически генерирует? Он не генерируется автоматически при назначении статического адреса IPv4, а при запуске dhclient. Итак, dhclient реализует RFC 4862 или это побочный эффект какой-то команды в сценарии dhclient? Как мне воспроизвести его на статическом интерфейсе без написания собственной реализации RFC 4862?
Аарон
создается автоматически ядром, похоже, см. выше.
Аарон
6

Нашел это! Этой команды недостаточно:

ifconfig eth0 up

Вместо этого я должен сделать:

ifconfig eth0 up
sysctl -w net.ipv6.conf.eth0.disable_ipv6=0

Только последний восстанавливает локальный адрес канала IPv6 на eth0.

Другими словами, в моем дистрибутиве где-то скрыт какой-то код, который динамически меняется net.ipv6.conf.eth0.disable_ipv6каждый раз, когда его просят включить или отключить сеть. Ваш пробег может варьироваться.

Я докопался до этого благодаря простому:

sysctl -a | grep ipv6
Март
источник
Между прочим, я не могу понять, почему мой дистрибутив переворачивает disable_ipv6: как только ссылка отключается, она имеет какое-то значение.
марш
Это в полной мере относится к Ubuntu 16.04. Спасибо.
Cbhihe