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 определяет процессы, которым необходимо следовать.


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
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.