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

Полное отключение IPv6 для rpc на сервере NFS - Ubuntu 12.04 LTS

Я пытаюсь полностью отключить IPv6 на моем сервере NFS (точнее, Ubuntu 12.04 LTS), но, похоже, некоторые порты IPv6 все еще прослушивают, как показано, когда я запускаю netstat -lp:

Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 *:60377                 *:*                     LISTEN      -               
tcp        0      0 *:49115                 *:*                     LISTEN      1744/rpc.mountd 
tcp        0      0 *:nfs                   *:*                     LISTEN      -               
tcp        0      0 *:54658                 *:*                     LISTEN      1744/rpc.mountd 
tcp        0      0 *:sunrpc                *:*                     LISTEN      450/rpcbind     
tcp        0      0 *:55730                 *:*                     LISTEN      709/rpc.statd   
tcp        0      0 *:48181                 *:*                     LISTEN      1744/rpc.mountd  
tcp6       0      0 [::]:37004              [::]:*                  LISTEN      -               
udp        0      0 *:55738                 *:*                                 1744/rpc.mountd 
udp        0      0 *:43533                 *:*                                 -               
udp        0      0 *:43687                 *:*                                 709/rpc.statd   
udp        0      0 *:sunrpc                *:*                                 450/rpcbind          
udp        0      0 *:615                   *:*                                 450/rpcbind     
udp        0      0 localhost:885           *:*                                 709/rpc.statd   
udp        0      0 *:50206                 *:*                                 1744/rpc.mountd 
udp        0      0 *:54380                 *:*                                 1744/rpc.mountd 
udp        0      0 *:nfs                   *:*                                 -               
udp6       0      0 [::]:46857              [::]:*                              -               

Я отключил IPv6 на уровне ядра в /etc/sysctl.d/ipvf-disable.conf:

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

А также в / etc / netconfig:

udp        tpi_clts      v     inet     udp     -       -
tcp        tpi_cots_ord  v     inet     tcp     -       -
#udp6       tpi_clts      v     inet6    udp     -       -
#tcp6       tpi_cots_ord  v     inet6    tcp     -       -
rawip      tpi_raw       -     inet      -      -       -
local      tpi_cots_ord  -     loopback  -      -       -
unix       tpi_cots_ord  -     loopback  -      -       -

После внесения этих изменений я перезагрузился, и приведенный выше вывод netstat не изменился. Открытые порты UDP6 и TCP6 кажутся портами ядра (отсюда отсутствие PID), и они исчезают, когда я запускаю /etc/init.d/nfs-kernel-server stop.

Я нашел следующий отчет об ошибке: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=648635 это соответствует моей проблеме, но, похоже, на нее нет ответов. Я что-то упустил или это ошибка?

РЕДАКТИРОВАТЬ. Чтобы уточнить, есть код, который плохо работает с любым IPv6 (да, это дрянной код, и его нельзя легко изменить), поскольку он читает netstat и ломается. Приветствуются любые идеи о том, как удалить ссылки IPv6 из netstat.

Для полноты картины мне удалось найти обходной путь для этого конкретного случая, создав сценарий оболочки "netstat", который анализирует IPv6 из существующего netstat и вводит в приложение альтернативный PATH, включая этот сценарий.

ПРИМЕЧАНИЕ. - Очевидно, что это не самая лучшая идея в качестве постоянного исправления, но, поскольку мне не было предложено лучшего варианта, это работало.

В конфигурации загрузки установите ipv6.disable = 1

В общем, отредактируйте / etc / default / grub и добавьте это в список параметров в GRUB_CMDLINE_LINUX Затем запустите grub_mkconfig -o /boot/grub2/grub.cfg