1

Я установил Debian 6.0.6, работающий на ядре 2.6.32-5-amd64, и после установки я назначил статический IPv6-адрес интерфейсу eth0.
Вот как выглядит мой файл /etc /network /interfaces:

авто ло
iface lo inet loopback

авто eth0
iface eth0 inet6 статический

 address fe80::a:1
 netmask 64
 gateway fe80::1

Вот как выглядит вывод ifconfig eth0:

eth0 Link encap:Ethernet HWaddr 10: 1f: 74: c6: 27: 5f
inet6 адрес: fe80:: 121f: 74ff: fec6: 275f/64 Область действия: ссылка
inet6 адрес: fe80:: a: 1/64 Область: Ссылка
UP BROADCAST RUNNING MULTICAST MTU: 1500 Метрика: 1
Пакеты RX: 45 ошибок: 0 отброшено: 0 переполнений: 0 кадр: 0
Пакеты TX: 48 ошибок: 0 отброшено: 0 переполнений: 0 несущая: 0
столкновения: 0 txqueuelen: 1000
Байты RX: 6427 (6,2 КиБ); байты TX: 7969 (7,7 КиБ).
Прерывание: 20 Память: d0700000-d0720000

Как видите, есть 2 адреса IPv6;
Один автоматически сгенерированный адрес IPv6
Один статический IPv6-адрес через /etc /network /interfaces

Теперь мой вопрос: как отключить автоматически сгенерированный адрес IPv6?
Большинство сайтов говорят мне добавить следующие строки в файл /etc/sysctl.conf:

net.ipv6.conf.eth0.autoconf = 0
net.ipv6.conf.eth0.accept_ra = 0

Но ничего не происходит после перезагрузки системы. Поэтому я удалил первый IPv6-адрес вручную, выполнив команду:

ip -6 addr del fe80::121f:74ff:fec6:275f/64 dev eth0

и действительно, первый адрес IPv6 был удален, но после перезагрузки адрес возвращается.

Любые подсказки о том, как решить эту проблему?

Спасибо заранее

1 ответ1

6

Вы используете адреса Link-Local (те, которые начинаются с fe80:) неправильно. Позвольте мне описать, как работает IPv6:

  1. Когда появляется интерфейс, система всегда автоматически настраивает локальный адрес канала для этого интерфейса. Этот локальный адрес канала не маршрутизируемый и работает только для обмена данными между системами по одному каналу (LAN). Он используется во многих местах и имеет решающее значение для работающей настройки IPv6. Даже когда система получает маршрутизируемые адреса, локальный адрес связи остается.

    Из RFC 4861: «Все интерфейсы на маршрутизаторах ДОЛЖНЫ иметь локальный адрес канала».

  2. Когда маршрутизатор отправляет объявление маршрутизатора (RA), система может использовать информацию в RA для автоматической настройки других своих адресов. Эту часть вы можете отключить с помощью autoconf.

В вашей конфигурации вы настраиваете дополнительный локальный адрес канала (fe80::a:1) на вашем интерфейсе и затем пытаетесь направить трафик за пределы вашей локальной сети на шлюз по умолчанию с адресом fe80::1 . Использование локального адреса ссылки в качестве шлюза по умолчанию хорошо и происходит постоянно, но использование локального адреса ссылки в качестве исходного адреса для пунктов назначения за пределами локальной сети никогда не будет работать.

Подвести итог:

  • Оставьте локальный адрес ссылки в покое. Удалив его, вы нарушите свою конфигурацию IPv6.
  • Используйте маршрутизируемые адреса для ваших систем. Есть несколько способов получения маршрутизируемых адресов:

    • Получите префикс от вашего провайдера. Обычно вы получаете префикс /48 или /56 .
    • Получите туннель от SixXS или Hurricane Electric и попросите делегированный префикс. Это будет а /48 .
    • Создать префикс ULA. Вы не сможете направить его в глобальный Интернет, но вы можете направить его в своей организации. Используйте генератор ULA для генерации префикса ULA, привязанного к одному из MAC-адресов одного из ваших устройств.


    Затем используйте префикс /64 из префикса, который вы получили выше для каждой локальной сети. Не используйте префиксы различной длины в своих локальных сетях, если вы действительно не знаете, что делаете.

  • Можно использовать fe80::1 качестве шлюза по умолчанию (если, конечно, маршрутизатор прослушивает этот адрес по локальной ссылке)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .