21

Как я могу навсегда отключить автоконфигурацию IPv6 в Linux? Когда я пытаюсь вручную удалить адрес из интерфейса с помощью:

ip -6 addr del 2001:0db8:85a3:0000:0000:8a2e:0370:7334/64 dev eth1

Он появится снова через несколько секунд, я хочу, чтобы он пропал навсегда, но без отключения всего IPv6.

4 ответа4

20

Автоматическая настройка может быть временно отключена для eth1 с помощью:

sudo sysctl -w net.ipv6.conf.eth1.autoconf=0
sudo sysctl -w net.ipv6.conf.eth1.accept_ra=0

или для всех интерфейсов с:

sudo sysctl -w net.ipv6.conf.all.autoconf=0
sudo sysctl -w net.ipv6.conf.all.accept_ra=0

Повторное включение работает с использованием 1 вместо 0 в вызове.

Отключить его навсегда можно с помощью записи в /etc/sysctl.conf . В Debian Etch (возможно, также и на более новых) без установки accept_ra система будет автоматически конфигурироваться с использованием локального адреса Link (fe80..)

Как Gart упомянул ниже, автоматическая конфигурация адреса и обнаружение маршрутизатора будут отключены, если сам хост является маршрутизатором, а accept_ra не равен 2 , т.е.

net.ipv6.conf.<iface|all|default>.forwarding=1

а также

net.ipv6.conf.<iface|all|default>.accept_ra=0 или net.ipv6.conf.<iface|all|default>.accept_ra=1 .

где iface ваш интерфейс

4

net.ipv6.conf.all.accept_ra = 0 выше не следует делать, так как RA необходимы для индикации подключения и отключения для префикса (согласно RFC5942), а также для автоматической настройки ряда других параметры, такие как MTU, время ожидания обнаружения соседей и т. д.

Если вы хотите отключить автоконфигурацию, либо отключите sysctl autoconf, как указано выше, либо отключите A (бит автоконфигурации) в опции информации о префиксе (PIO) в RA.

3

Решение sysctl не работало для нас на Ubuntu 18.04 Bionic. Мы решили это путем:

Редактируя /etc/netplan/01-netcfg.yaml , настройте:

network:
  ...
  ethernets:
    eth0:
      ...
      dhcp6: no
      accept-ra: no

Возможно, вам придется использовать имя вашего интерфейса вместо eth0 . После сохранения файла выполните:

netplan apply или reboot

Если вы уже получили IPv6 IP из автоконфигурации и хотите удалить его без перезагрузки, вы можете выполнить:

ip -6 addr del 1111:2222:1:0:aaaa:bbbb:cccc:dddd/64 dev eth0 

Конечно, вам нужно заменить IP-адрес и устройство в этой команде.

3
sudo sysctl -w net.ipv6.conf.all.autoconf=0

Это не сработало для меня в Debian Wheezy. После изучения /etc/sysctl.conf мне нужно было использовать

sudo sysctl -w net.ipv6.conf.default.autoconf=0

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