BES relay listening on ipv6 not ipv4

Running the v9.5.13 BES relay on RedHat 7. In troubleshooting why I cannot reach the BES relay service over http I noticed that the BESRelay process is listening on IPv6 rather than v4.
Is there a client setting to force it to listen on ipv4 (or ipv4 and ipv6) ?

netstat -tulpn | grep LISTEN | grep 52311

tcp6 0 0 :::52311 :::* LISTEN 12708/BESRelay

Change your protocol binding order on your NIC driver to favor IPv4.

1 Like

I will have to research that.
This is an azure instance. Thanks

yeah, this is most likely due to the OS configuration, BigFix should just be using what the OS is configured to do.

The only settings are to favor one IP type over the other. The default is to favor IPv4 over IPv6 but as already stated the IP stacks have to be available in the OS.

1 Like

For a BESClient listening on UDP 52311 under the same situation where IPV6 is default, a netstat shows udp6 listening on 52311:

[root@ ~]# netstat -an | grep 52311
tcp6 0 0 x.x.x.x:54802 x.x.x.x:52311 TIME_WAIT
udp6 0 0 :::52311

When I send a “Refresh Now” to the client from the BES Console, the client doesn’t receive it because it is listening on udp6, even though Ipv4ThenIpv6 is the default value. Does BigFix infrastructure only use IPV4 for UDP?

Or another question, if a Relay is configured in the OS to only use IPV4, how can it send a UDP 52311 package to one of its clients that is using IPV6 where the bes client is listening on 52311 on udp6? Seems like it can’t and that maybe a relay/client infrastructure design is that all must be on the same protocol?

Anyone have any idea? If a client is only only listening on IPv6 UDP 52311 and the Relay is on IPv4, is it expected that the client process will not receive that packet? wireshark shows the packet making it to the client endpoint OS, but the bes client log file shows no reception of it.

I’ve observed on my Red Hat system that netstat only shows an IPv6 listener on my relay, but I can definitely connect on its IPv4 address.

I’m seeing this on RHEL 8, I suspect it’s a change in behavior of netstat ?

So even though you have an IPv4 and IPv6 address in ifconfig, netstat only shows a listening on IPV6?

In my case, my relay ONLY has an IPv4 address in ifconfig so it is definatley only using IPv4. The Client has an IPv4 and IPv6 address, but netstat only shows a listening on ipv6 (upd6). I see the UDP packet get from the Relay to Client with tcpdump, but the client never receives the packet (no Force Update/Gather in the BES Client Log).

ipv4/ipv6 was a red herring. The fix was to add an iptables entry to allow udp 52311 inbound.

ACCEPT udp – anywhere anywhere udp dpt:52311 state NEW,ESTABLISHED

2 Likes