Red Hat Bugzilla – Bug 985614
missing IPv6 support in ypserv despite Red Hat documentation indicating otherwise
Last modified: 2017-05-22 09:59:58 EDT
Description of problem:
According to an article found on the Red Hat site:
I was led to believe that all packages in RHEL6 now properly support IPv6. The verbatim quote from that page is:
RHEL6: All packages support IPv6, less compat-libstdc++, dialog, libgssglue, squashfs-tools, and ipvsadm is Tech Preview (Cluster only)
I'm not quite sure what the definition of "support" is in this context...but it seems significantly different than what my definition is. Is something considered supporting IPv6 if it can simply exist on a box that has an IPv6 stack without crashing? If so that seems to be setting the bar pretty low. If support means actually do something useful like serve some data over IPv6, then either this page is wrong, or I'm doing something wrong.
Version-Release number of selected component (if applicable):
Steps to Reproduce:
1. install ypserv package in RHEL6
2. configure NIS maps and ypinit
3. start ypserv daemon
Verify that the ypserv daemon is up and running, and successfully serving data over IPv4. Notice that there is no facility for the ypserv daemon to serve any data over IPv6.
If ypserv actually supports IPv6, then it should be able to serve data. If it does not, then the documentation should be updated to indicate that is the case.
Taking a look at rpcinfo -s, it doesn't even look like ypserv is listing on an IPv6 socket. Notice in the following output how the portmapper service lists udp6 and tcp6, while ypserv does not:
[root@nisltgdl01 ~]# rpcinfo -s
program version(s) netid(s) service owner
100000 2,3,4 local,udp,tcp,udp6,tcp6 portmapper superuser
100024 1 tcp6,udp6,tcp,udp status 29
600100069 1 tcp,udp fypxfrd superuser
100004 1,2 tcp,udp ypserv superuser
100007 1,2 tcp,udp ypbind superuser
100009 1 udp yppasswdd superuser
So, going one step further, pulling down the source code for the daemon and searching in cscope for all calls where a socket is created, I see no calls that look like they even attempt to create an IPv6 socket...they are all only AF_INET:
Functions calling this function: socket
File Function Line
0 rpc.yppasswdd/yppasswdd.c main 484 my_socket = socket (AF_INET, SOCK_DGRAM, 0);
1 rpc.ypxfrd/ypxfrd.c main 443 my_socket = socket (AF_INET, SOCK_DGRAM, 0);
2 rpc.ypxfrd/ypxfrd.c main 482 my_socket = socket (AF_INET, SOCK_STREAM, 0);
3 yppush/yppush.c yppush_foreach 457 sock = socket (AF_INET, SOCK_DGRAM, 0);
4 ypserv/ypserv.c get_inet_for_iface 289 fd = socket (AF_INET, SOCK_DGRAM, 0);
5 ypserv/ypserv.c main 630 my_socket = socket (AF_INET, SOCK_DGRAM, 0);
6 ypserv/ypserv.c main 675 my_socket = socket (AF_INET, SOCK_STREAM, 0);
Find this C symbol:
Find this global definition:
Find functions called by this function:
Find functions calling this function:
Find this text string:
Change this text string:
Find this egrep pattern:
Find this file:
Find files #including this file:
Find all function definitions:
Find all symbol assignments:
It's worth noting that I understand there is a good chance this is actually just not supported. If that's the case, then I'm curious if you have any updates on if there are plans for IPv6 support. I assume this probably wouldn't make it into the RHEL6 package...how about roadmap for RHEL7, or am I boned there too?
If this is simply an oversight in documentation and there is nothing to do from the engineering side, then hopefully you can at least update that article I linked above so other people don't get screwed by it and waste their time as well.
(In reply to Chris Marcantonio from comment #1)
> It's worth noting that I understand there is a good chance this is actually
> just not supported. If that's the case, then I'm curious if you have any
> updates on if there are plans for IPv6 support. I assume this probably
> wouldn't make it into the RHEL6 package...how about roadmap for RHEL7, or am
> I boned there too?
Thanks for bringing this up, Chris. I've tried to get some light on IPv6 support in NIS generally few months back, and this is the answer from NIS upstream developer, Thorsten:
"The problem is, that SUN did never publish the NIS specification for IPv6 and that they used their own TLI streams or something similar, don't remember anymore, which don't exist on Linux. The current NIS protocol cannot be extended to IPv6, because there is no space left for IPv6 addresses, only for IPv4.
As consequence, somebody would need to design a complete new NIS protocol for IPv6 and register that somewhere, and this would be incompatible to the UNIX world.
I know from several people who tried that, but gave up by too many incompatibilities and missing interest."
Having in mind that NIS is a technology that is actually obsolete for long time and it is slowly dying, I wouldn't expect IPv6 will be ever supported.
> If this is simply an oversight in documentation and there is nothing to do
> from the engineering side, then hopefully you can at least update that
> article I linked above so other people don't get screwed by it and waste
> their time as well.
I can't tell you more right now, the article is not clear for me either. I'll try to get some more info and make the article more accurate.
Red Hat Enterprise Linux 6 transitioned to the Production 3 Phase on May 10, 2017. During the Production 3 Phase, Critical impact Security Advisories (RHSAs) and selected Urgent Priority Bug Fix Advisories (RHBAs) may be released as they become available.
The official life cycle policy can be reviewed here:
This issue does not appear to meet the inclusion criteria for the Production 3 Phase and will be marked as CLOSED/WONTFIX. If this remains a critical requirement, please contact your EPM to request a re-evaluation of the issue, citing a clear business justification.