IPv6-адрес не устанавливается

IPv6-адрес не устанавливается

У меня проблема с настройкой IPv6-адреса на Ubuntu 10.04. Я отключил свой сетевой менеджер. Мой файл /etc/network/interface выглядит так:

iface eth0 inet6 static
pre-up modeprobe ipv6
address fe80::1
netmask 10
gateway fe80::2

Я настроил свой IP-адрес как fe80::1, но когда я подключаюсь к eth0, ifconfig показывает

inet6 addr:  fe80::a00:27ff:fe1e:5edf/64 Scope:Link

Почему отображается другой IP-адрес?

Когда я бегу

ping6 fe80::a00:27ff:fe1e:5edf/64

Мне пишет неизвестный хост. Почему?

решение1

Вы упомянули в комментарии, что используетеifconfigчтобы вызвать интерфейс. В этом случае ваша проблема в том, чтоifconfigне использует interfacesфайл(он только сообщает интерфейсу о необходимости начать прием пакетов). Этот файл конфигурации специфичен для Debian/Ubuntu и читается толькоесливверхвнизинструменты ifupи ifdown. Таким образом, вам придется использовать:

ifup eth0

Даже в этом случае ваша конфигурация будет отклонена, поскольку синтаксис файла конфигурации использует «iface", а не " interface", для обозначения нового логического интерфейса. (См.интерфейсы(5)(Руководство для полного описания синтаксиса.)

(Ваша pre-upстрока также 1) не нужна: она делается автоматически, и 2) набрана с ошибкой: она " modprobe".)


Адрес fe80::a00:27ff:fe1e:5edfотображается не из-за какой-либо конфигурации, а потому, что IPv6 требует этого. Каждый интерфейс должен иметьссылка-локальнаяадрес на основе «идентификатора интерфейса» (его MAC-адреса); эти адреса добавляются автоматически ядром Linux.

(Помните, что интерфейс может иметь много адресов. Вы можете иметь оба адреса fe80::1и fe80::a00:27ff:fe1e:5edfна одном интерфейсе, и он все равно будет работать.)

Также помните, что fe80::/10адресассылка-локальная– другими словами, ониникогда не маршрутизируются, и gatewayнастройка конфигурации бессмысленна.

Это означает, что всякий раз, когда вы пытаетесь получить доступ к локальному адресу, вы должны вручную указать используемый интерфейс — это делается с помощьюдобавлениеиндекс зоныпо адресу. (В Linux индекс зоны совпадает с именем интерфейса.) Например, для подключения черезeth0, вам нужно добавить %eth0:

ping6 fe80::a00:27ff:fe1e:5edf%eth0

(Ответ Оливера Зальцбурга также верен — нельзя указывать маску подсети, если речь идет об одном хосте.)

решение2

Я не думаю, что вам нужно указывать маску подсети для ping.

ping6 fe80::a00:27ff:fe1e:5edf

Все должно быть в порядке.

Связанный контент