Bug 985614 - missing IPv6 support in ypserv despite Red Hat documentation indicating otherwise
missing IPv6 support in ypserv despite Red Hat documentation indicating other...
Status: CLOSED WONTFIX
Product: Red Hat Enterprise Linux 6
Classification: Red Hat
Component: ypserv (Show other bugs)
6.4
x86_64 Linux
unspecified Severity medium
: rc
: ---
Assigned To: Matej Mužila
qe-baseos-daemons
:
Depends On:
Blocks: 1438054
  Show dependency treegraph
 
Reported: 2013-07-17 17:51 EDT by Chris Marcantonio
Modified: 2017-05-22 09:59 EDT (History)
2 users (show)

See Also:
Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2017-05-22 09:59:58 EDT
Type: Bug
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)

  None (edit)
Description Chris Marcantonio 2013-07-17 17:51:30 EDT
Description of problem:
According to an article found on the Red Hat site:

https://access.redhat.com/site/articles/182313

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):
ypserv-2.19-26.el6.x86_64



How reproducible:
Every time.



Steps to Reproduce:
1. install ypserv package in RHEL6
2. configure NIS maps and ypinit
3. start ypserv daemon



Actual results:
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.



Expected results:
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.



Additional info:
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
[root@nisltgdl01 ~]#

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:
Comment 1 Chris Marcantonio 2013-07-17 17:57:53 EDT
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.
Comment 2 Honza Horak 2013-07-18 03:08:44 EDT
(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.
Comment 4 Takuma Umeya 2017-05-22 09:59:56 EDT
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:

	http://redhat.com/rhel/lifecycle

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.

Note You need to log in before you can comment on or make changes to this bug.