aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorZhiqiang Liu <liuzhiqiang26@huawei.com>2019-03-06 04:25:00 +0800
committerJan Macku <jamacku@redhat.com>2021-06-24 12:07:01 +0200
commita8212c1b232a902938d0e5ea6a82bd6ae52e861c (patch)
treed20ab96dc25e964e9b5672e098acec4d0d2580d6
parent81b7893dd1627c43464064e670583803aca2d5ff (diff)
downloadinitscripts-a8212c1b232a902938d0e5ea6a82bd6ae52e861c.tar
initscripts-a8212c1b232a902938d0e5ea6a82bd6ae52e861c.tar.gz
initscripts-a8212c1b232a902938d0e5ea6a82bd6ae52e861c.tar.bz2
initscripts-a8212c1b232a902938d0e5ea6a82bd6ae52e861c.tar.xz
initscripts-a8212c1b232a902938d0e5ea6a82bd6ae52e861c.zip
ifup-eth: add a new PERSISTENT_DHCLIENT_IPV6 option for IPv6 dhclient daemon
In 76226a34 ("ifup-eth: apply PERSISTENT_DHCLIENT to IPv6 dhclient daemon"), one PERSISTENT_DHCLIENT option works for both IPv4 and IPv6, so the IPv4 and IPv6 settings are consistent. However, the user settings for IPv4 and IPv6 are limited. For example, users try to adopt both IPv4 and IPv6 protocol. DHCPv6 servers may be not stable as DHCP servers, thus the expectation for obtaining IPv6 address is lower than IPv4 address. For users, IPv4 address must be obtained for the basic communication. So the PERSISTENT_DHCLIENT option is set to be "yes | 1" for IPv4 address. However, the network service may be stuck until it fails due to missing DHCPv6 servers, and the remaining devices also cannot obtain both IPv4 and IPv6 addresses. The problem is very serious for users. Here, I add a new PERSISTENT_DHCLIENT_IPV6 option only for IPv6 dhclient daemon, so users can set IPv4 and IPv6 separately. Fixes: 76226a3 ("ifup-eth: apply PERSISTENT_DHCLIENT to IPv6 dhclient daemon") Signed-off-by: Zhiqiang Liu <liuzhiqiang26@huawei.com>
-rw-r--r--doc/sysconfig.txt9
-rwxr-xr-xnetwork-scripts/ifup-eth2
2 files changed, 10 insertions, 1 deletions
diff --git a/doc/sysconfig.txt b/doc/sysconfig.txt
index 0d9abbdf..ebd1f2fb 100644
--- a/doc/sysconfig.txt
+++ b/doc/sysconfig.txt
@@ -604,6 +604,15 @@ Files in /etc/sysconfig/network-scripts/
By default network-scripts will set `accept_ra` only if $IPV6_AUTOCONF is
set to `yes`. If you don't want SLAAC addresses but do want to accept RA,
then set this to `yes`. Defaults to `no`.
+ PERSISTENT_DHCLIENT_IPV6=yes|no|1|0
+ Without this option, or if it is 'no'/'0', and DHCPV6C=yes,
+ 'dhclient -6' is run for the interface in "one-shot" mode; if the
+ DHCPv6 server does not respond for a configurable timeout, then
+ 'dhclient -6' exits and the interface is not brought up -
+ the '-1' option is given to 'dhclient -6'.
+ If PERSISTENT_DHCLIENT_IPV6=yes, then dhclient will keep on trying
+ to contact the DHCPv6 server when it does not respond - no '-1'
+ option is given to 'dhclienti -6'.
Special configuration options for multi-homed hosts etc.
IPV6_ROUTER=yes|no: Controls IPv6 autoconfiguration
diff --git a/network-scripts/ifup-eth b/network-scripts/ifup-eth
index 2f58d195..a4c0d2b4 100755
--- a/network-scripts/ifup-eth
+++ b/network-scripts/ifup-eth
@@ -365,7 +365,7 @@ if is_true "${DHCPV6C}" && [ -x /sbin/dhclient ]; then
echo -n $"Determining IPv6 information for ${DEVICE}..."
# Initialize the dhclient args for IPv6 and obtain the hostname options if needed:
- if is_true "${PERSISTENT_DHCLIENT}"; then
+ if is_true "${PERSISTENT_DHCLIENT_IPV6}"; then
ONESHOT="";
else
ONESHOT="-1";