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
Все должно быть в порядке.