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
Это скажет мне неизвестный хозяин. Зачем?
2 ответа
Вы упомянули в комментарии, что вы используете ifconfig для запуска интерфейса. В этом случае ваша проблема заключается в том, что ifconfig не использует interfaces файл (он только говорит интерфейсу, чтобы начать получать пакеты). Этот файл конфигурации относится к Debian/Ubuntu и читается только инструментами ifupdown.ifupа такжеifdown, Таким образом, вы должны использовать:
ifup eth0
Даже тогда ваша конфигурация будет отклонена, потому что синтаксис файла конфигурации использует "iface"не"interface", для обозначения нового логического интерфейса. (См. руководство interfaces(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
(Ответ Оливера Зальцбурга также верен - вы не должны указывать маску подсети при обращении к одному хосту.)
Я не думаю, что вы должны предоставить маску подсети для ping,
ping6 fe80::a00:27ff:fe1e:5edf
Все должно быть в порядке.