背景
虚拟机模板禁用了ipv6,创建了虚拟机
1
2
3
4
5
6
7[root@centos7 ~]# cat /etc/sysctl.conf
# System default settings live in /usr/lib/sysctl.d/00-system.conf.
# To override those settings, enter new settings here, or in an /etc/sysctl.d/.conf file
#
# For more information, see sysctl.conf(5) and sysctl.d(5).
net.ipv6.conf.all.disable_ipv6 =1
net.ipv6.conf.default.disable_ipv6 =1
启动nfs报错,报错如下
Error:
rpcbind service fails to start with below error message in /var/log/messages
1
2rpcbind.socket failed to listen on sockets: Address family not support
ed by protocol
I got this error the other day while working on Red Hat Enterprise Linux 7.3 and after digging for a while I got to know there is a sort of a BUG in RHEL 7.3.
Analysis:
I found a BUG reported for this issue and I was facing the exact one.
As explained by one of the engineers on the above page
1"The problem is that if you disable ipv6 n sysctl.conf, it is not disabled from the beginning of the boot, but actually quite late in the boot process. Meanwhile systemd found out that ipv6 is enabled and scheduled a start of a socket, that would listen on ipv6."
Just to summarise if you have disabled ipv6 using your sysctl configurations then it is disabled only on kernel level but not via GRUB so it is not disabled completely hence systemd will attempt to make a connection on port 111 on any ipv6 address, [::]:111 during the boot up.
To know more on how to disable ipv6 follow below link
How to disable or enable ipv6 in Linux
解决办法:
/etc/sysctl.conf
1net.ipv6.conf.all.disable_ipv6 = 1
grub级别禁用ipv6
1
2#dracut -v -f
#systemctl start rpcbind