Как отключить автоконфигурацию на IPv6 в Linux?

52135
Grumbel

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

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

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

20

4 ответа на вопрос

20
Grumbel

Автоматическая настройка может быть временно отключена для 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 local adress ( 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твой интерфейс

Кроме того, автоматическое конфигурирование адреса и обнаружение маршрутизатора будут отключены, если сам хост является маршрутизатором, т.е. установлено значение `net.ipv6.conf.all.forwarding = 1`. Gart 13 лет назад 3
4
Mark S

net.ipv6.conf.all.accept_ra=0 above should not be done, as RAs are necessary for indication of on-link and off-link for the prefix (as per RFC5942), as well as automated configuration of a number of other parameters, such as MTU, Neighbor Discovery timeouts etc.

If you want to disable autoconfiguration, either set the autoconf sysctl off as above, or switch off the A (autoconfiguration bit) in the Prefix Information Option (PIO) in the RA.

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

This didn't work for me on Debian Wheezy. After examining /etc/sysctl.conf I needed to use

sudo sysctl -w net.ipv6.conf.default.autoconf=0 
2
Jeroen Vermeulen - MageHost

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-адрес и устройство в этой команде.

это только сделало мой день царапающим мою голову на этом в течение нескольких месяцев: D anthonysomerset 6 лет назад 0
Я обычно просто чищу Google, пока не найду его. Jeroen Vermeulen - MageHost 6 лет назад 1
This worked when I tried it, but the problem is turning accept-ra off is quite dangerous, as mentioned by Mark S - it appears to work but later you may find you're missing packets because they hit a fragmentation point or a failover router is used. Also it breaks pings. The reason I was trying to do this was to reliably match my SPF record in outgoing mail but then I realised I should have been using a netmask in the record instead because in IPv6 a range of addresses effectively belongs to a machine, not a single address. Phil McKerracher 6 лет назад 1