Назад | Перейти на главную страницу

Ubuntu 18.04 LTS - невозможно отключить IPV6

  1. Я хочу отключить ipv6 в моей частной облачной сети GCP. Мне он не нужен во внутренней сети, так как Google завершает ipv6 на балансировщике нагрузки GCP, поэтому я отредактировал /etc/sysctl.conf

    # disable ipv6
    net.ipv6.conf.all.disable_ipv6 = 1
    net.ipv6.conf.default.disable_ipv6 = 1
    net.ipv6.conf.lo.disable_ipv6 = 1
    net.ipv6.conf.ens4.disable_ipv6 = 1  
    

конечно sudo / etc / sysctl -p

  1. Отредактировал / etc / default / grub следующим образом:

Судо vi / и т.д. / по умолчанию / grub
Изменены GRUB_CMDLINE, чтобы они выглядели так:

    GRUB_CMDLINE_LINUX_DEFAULT="ipv6.disable=1"
    GRUB_CMDLINE_LINUX="ipv6.disable=1"

Затем выполнены:

sudo update-grub
перезагрузка sudo

  1. После перезагрузки sudo ps -ae | grep ip показывает:

    ps -ae | grep ip  
    87 ?        00:00:00 ipv6_addrconf
    

ПОЧЕМУ ЗАПУСКАЕТСЯ ЭТО ПРОЦЕСС IPV6?

  1. netstat -a показывает

    tcp6       0      0 [::]:ssh                [::]:*                  LISTEN     
    udp        0      0 localhost:domain        0.0.0.0:*                          
    udp        0      0 haproxy.fr:bootpc       0.0.0.0:*                          
    udp        0      0 localhost:323           0.0.0.0:*                          
    udp6       0      0 ip6-localhost:323       [::]:*                             
    raw6       0      0 [::]:ipv6-icmp          [::]:*  
    

Я отредактировал sshd_config и удалил адрес слушателя ipv6. Это останавливает SSH от прослушивания адреса ipv6. По-прежнему не отвечает на пункт 3 выше.

  1. sudo dmesg | grep IP

    [    0.012014] Calibrating delay loop (skipped) preset value.. 4400.00 BogoMIPS (lpj=8800000)  
    [    0.056601] smpboot: Total of 1 processors activated (4400.00 BogoMIPS)
    [    0.201233] NetLabel:  protocols = UNLABELED CIPSOv4 CALIPSO
    [    0.471145] Segment Routing with IPv6
    [    3.875631] IPv6: ADDRCONF(NETDEV_UP): ens4: link is not ready
    
  2. cat / proc / sys / net / ipv6 / conf / all / disable_ipv6 выдает: «1», что в ТЕОРИИ означает, что ipv6 отключен. Но я не уверен, что ipv6 полностью отключен согласно пункту 3 выше. Может кто-нибудь сказать мне, что означает №3 выше?

ПРИМЕЧАНИЕ: IPV4 работает нормально.

Я почти уверен, что вы действительно отключили IPV6, отредактировав sysctl.

По умолчанию, ip a на стандартном образе Ubuntu 18.04 возвращается следующее:

[...]
2: ens4: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1460 qdisc fq_codel state UP group default qlen 1000
    link/ether [REDACTED] brd ff:ff:ff:ff:ff:ff
    inet [REDACTED]/32 scope global dynamic ens4
       valid_lft 86257sec preferred_lft 86257sec
    inet6 [REDACTED]/64 scope link 
       valid_lft forever preferred_lft forever

Однако после:

printf "\nnet.ipv6.conf.all.disable_ipv6 = 1\nnet.ipv6.conf.default.disable_ipv6 = 1\nnet.ipv6.conf.lo.disable_ipv6 = 1\nnet.ipv6.conf.ens4.disable_ipv6 = 1\n">> /etc/sysctl.conf

sysctl -p

С участием ip a, вместо этого вы должны увидеть это:

[...]
2: ens4: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1460 qdisc fq_codel state UP group default qlen 1000
    link/ether [REDACTED] brd ff:ff:ff:ff:ff:ff
    inet [REDACTED]/32 scope global dynamic ens4
       valid_lft 85786sec preferred_lft 85786sec

Обратите внимание, что весь inet6 раздел сейчас нет.

Как ни странно, я столкнулся с эта ошибка во время тестирования. Обходной путь - добавить sysctl -p в качестве сценарий запуска к экземпляру.

Учитывая ipv6_addrconf процесс, это системный процесс, и отключение модуля с помощью modprobe, похоже, не сильно помогает от него:

modprobe --remove ipv6

Внесение этого в черный список тоже не избавляется от него.

Я бы не советовал этого делать, потому что этот процесс просто сидит и ничего не делает, и вы потенциально можете столкнуться с проблемами ядра, вмешиваясь в него, особенно если вы не уверены, что он делает. Единственная достойная статья, в которой я подробно рассказываю о модуле IPv6 это один. В любом случае ваши сетевые интерфейсы не будут использовать IPv6.