[Xymon] IPv6 debugging on xymon 4.4 (was Re: Roadmap/GitHub?/IPv6)

Japheth Cleaver cleaver at terabithia.org
Tue Apr 9 23:12:25 CEST 2019


Actually, this ended up being pretty broken as-is -- possibly a commit 
was lost.
r8048 has the fix, or the attached patch should work too. Regular ping 
checks should work again.

https://sourceforge.net/p/xymon/code/8048/tree//branches/4.x-master/xymonnet/xymonnet.c?diff=516c17fd34309d2eb14bcb64:8047


HTH,
-jc

On 4/9/2019 9:33 AM, Japheth Cleaver wrote:
> The first is the correct way of writing it, however the second really 
> should be accepted as well IMO since it's not uncommon for things to 
> be written that way.
>
> Most of the response in 
> https://lists.xymon.com/archive/2016-October/043993.html is about 
> using both a 4.3.# and a 4.4-x xymon server as the destination points 
> simultaneously. The 4.3 branch won't recognize or record the IPv6 IPs 
> properly. So long as you're running 4.4-alpha in a normal fashion 
> (talking to itself) it should work fine -- no separate hosts file 
> needed or anything.
>
> Can you send the relevant sections of xymmonet.log when running it in 
> --debug mode?
> Also, what version of fping are you running on the system?
>
> -jc
>
>
> On 4/9/2019 12:12 AM, Christian Herzog wrote:
>> Hi JC,
>>
>> I now compiled 4.4 alpha and set up a test server. IPv4 monitoring is 
>> working
>> as expected. Can you remind me how to specify IPv6 tests? I found
>> https://lists.xymon.com/archive/2016-October/043993.html but can't 
>> make much
>> sense of it.
>>
>> in particular:
>> - do I need any compile switches to enable IPv6 support?
>> - how to specify a v6 host? I tried
>>      2a01:4f8:162:464::113 testhost and
>>      [2a01:4f8:162:464::113] testhost
>>    the first yields conn red and the second doesn't work at all
>> - separate v6 hosts file ok, how to make it known then?
>>
>>
>> thanks,
>> -Christian
>>
>>
>> On Fri, Apr 05, 2019 at 08:53:39AM -0700, Japheth Cleaver wrote:
>>> Hi Christian,
>>>
>>> That's actually really great to hear. The current 4.4 alpha would be
>>> https://sourceforge.net/p/xymon/code/HEAD/tree/branches/4.x-master/
>>>
>>> I'll probably branch that after forward porting these patches coming 
>>> in to
>>> 4.3.29, and trying to reduce some of the warnings I'm seeing in 
>>> compiles. In
>>> the meantime, any validation from snapshots off that branch would be
>>> helpful.
>>>
>>> Regards,
>>> -jc
>>>
>>> On 4/5/2019 4:47 AM, Christian Herzog wrote:
>>>> hey JC,
>>>>
>>>> thanks for the status update. I've done some pretty extensive IPv6 
>>>> xymon
>>>> testing 6 years ago ([1] and later private emails with Henrik) and 
>>>> found IPv6
>>>> support to be in pretty good shape in then 4.3.99.tgz. However, 
>>>> none of this
>>>> seems to be in 4.3.28.
>>>> Since we're now once again (and for reals this time!) on the verge of
>>>> introducing IPv6 into our networks, I'll have to come back to 
>>>> working on xymon
>>>> IPv6. I'd be happy to do all sorts of testing, but where to start? 
>>>> I can't
>>>> even find any 4.4 (alpha) tree out there.
>>>> Can you advise?
>>>>
>>>> thanks and best regards,
>>>> -Christian
>>>>
>>>>
>>>>
>>>> [1] https://xymon.xymon.narkive.com/BbXHR8kH/status-of-ipv6-support
>>>> On Fri, Mar 08, 2019 at 06:46:52AM -0800, Japheth Cleaver wrote:
>>>>> I think a larger discussion on Xymon's roadmap in terms of Docker and
>>>>> container analysis is definitely something warranted. A host-based 
>>>>> approach
>>>>> tends to invite individualized responses to coordination among 
>>>>> varying
>>>>> levels of architecture (including both host -> hypervisor, 
>>>>> baremetal (eg,
>>>>> DRAC) -> host, and hypervisor "status" reporting), but containers' 
>>>>> typically
>>>>> ephemeral nature could merit a distinct reference point -- or not, 
>>>>> if it's
>>>>> desired to have them persistently reportable. Host-Svc may or may 
>>>>> not make
>>>>> sense there.
>>>>>
>>>>> I tend to agree that a move to Github may be helpful here at this 
>>>>> point -
>>>>> athough with the various community issues people have had with GH 
>>>>> since MS's
>>>>> purchase, it seems there has been a bit of an outcry, I'm not sure 
>>>>> there's
>>>>> much SF will end up being able to capitalize on. It would 
>>>>> certainly make
>>>>> PR's easier to coordinate and invite more interaction.
>>>>>
>>>>> The largest stalling point on the roadmap here was indeed the IPv6
>>>>> transition. I think things are releasable in an Alpha state, and 
>>>>> that was
>>>>> the intent at the last release, but it's been difficult to find 
>>>>> any site
>>>>> using IPv6 at sufficient scale who could help with the testing 
>>>>> process.
>>>>> That's a bit of a Catch-22 though, and perhaps it would be best to 
>>>>> release
>>>>> an easy reference point for future testing and go from there - 
>>>>> along with
>>>>> the various other patches that I've received. (And this does raise 
>>>>> the
>>>>> question of what the next highest priorities out there will be.)
>>>>>
>>>>> Regards,
>>>>> -jc
>>>>>
>>>>>
>>> _______________________________________________
>>> Xymon mailing list
>>> Xymon at xymon.com
>>> http://lists.xymon.com/mailman/listinfo/xymon
>
>
> _______________________________________________
> Xymon mailing list
> Xymon at xymon.com
> http://lists.xymon.com/mailman/listinfo/xymon


-------------- next part --------------
--- a/branches/4.x-master/xymonnet/xymonnet.c
+++ b/branches/4.x-master/xymonnet/xymonnet.c
@@ -8,7 +8,7 @@
 /*                                                                            */
 /*----------------------------------------------------------------------------*/
 
-static char rcsid[] = "$Id: xymonnet.c 8044 2019-04-08 22:51:46Z jccleaver $";
+static char rcsid[] = "$Id: xymonnet.c 8048 2019-04-09 21:08:10Z jccleaver $";
 
 #include <limits.h>
 #include <stdio.h>
@@ -1264,7 +1264,7 @@
 	char 		*p;
 	char		l[MAX_LINE_LEN];
 	char		pingip[MAX_LINE_LEN];
-	int		ip1, ip2, ip3, ip4;
+	char		*eoip, eoipchar;
 	int		pingstatus, failed = 0, i;
 	char		fn[PATH_MAX];
 
@@ -1337,29 +1337,31 @@
 			/* The test did run, and we have a result-file. Look at it. */
 			while (fgets(l, sizeof(l), logfd)) {
 				p = strchr(l, '\n'); if (p) *p = '\0';
-				if (sscanf(l, "%d.%d.%d.%d ", &ip1, &ip2, &ip3, &ip4) == 4) {
-
-					sprintf(pingip, "%d.%d.%d.%d", ip1, ip2, ip3, ip4);
-
-					/*
-					 * Need to loop through all testitems - there may be multiple entries for
-					 * the same IP-address.
-					 */
-					for (t=service->items; (t); t = t->next) {
-						if (strcmp(t->host->ip, pingip) == 0) {
-							if (t->open) dbgprintf("More than one ping result for %s\n", pingip);
-							t->open = (strstr(l, "is alive") != NULL);
-							t->banner = dupstrbuffer(l);
-						}
-
-						if (t->host->extrapings) {
-							ipping_t *walk;
-							for (walk = t->host->extrapings->iplist; (walk); walk = walk->next) {
-								if (strcmp(walk->ip, pingip) == 0) {
-									if (t->open) dbgprintf("More than one ping result for %s\n", pingip);
-									walk->open = (strstr(l, "is alive") != NULL);
-									walk->banner = dupstrbuffer(l);
-								}
+				eoip = l + strcspn(l, " \t");
+				eoipchar = *eoip;
+				*eoip = '\0';
+				
+				if (conn_is_ip(l) == 0) continue;
+				sprintf(pingip, "%s", l);
+				*eoip = eoipchar;
+				
+				/*
+				 * Need to loop through all testitems - there may be multiple entries for
+				 * the same IP-address.
+				 */
+				for (t=service->items; (t); t = t->next) {
+					if (strcmp(t->host->ip, pingip) == 0) {
+						if (t->open) dbgprintf("More than one ping result for %s\n", pingip);
+						t->open = (strstr(l, "is alive") != NULL);
+						t->banner = dupstrbuffer(l);
+					}
+					if (t->host->extrapings) {
+						ipping_t *walk;
+						for (walk = t->host->extrapings->iplist; (walk); walk = walk->next) {
+							if (strcmp(walk->ip, pingip) == 0) {
+								if (t->open) dbgprintf("More than one ping result for %s\n", pingip);
+								walk->open = (strstr(l, "is alive") != NULL);
+								walk->banner = dupstrbuffer(l);
 							}
 						}
 					}


More information about the Xymon mailing list