pool and restrictions

Eric S. Raymond esr at thyrsus.com
Tue Aug 15 19:32:57 UTC 2017


Hal Murray <hmurray at megapathdsl.net>:
> 
> > Fair enough.  I have an idea for a simple way to implement this.  But I
> > can't find where the hole-poking is actually being done - it's apparently
> > not via a hack_restrict() call, which is what I'd have expected.  Can you
> > give me a file and line number? 
> 
> ntp_proto.c, line 2480, in dns_take_pool
>         restrict_mask = restrictions(&peer->srcadr);
>         /* FIXME-DNS: RES_FLAGS includes RES_DONTSERVE?? */
>         if (RES_FLAGS & restrict_mask) {
>                 msyslog(LOG_INFO, "Pool poking hole in restrictions for: %s",
>                                 socktoa(&peer->srcadr));
>                 restrict_source(&peer->srcadr, false,
>                                 current_time + POOL_SOLICIT_WINDOW + 1);
>         }

OK.  I think your hole-filling might already be done in the restrict_source()
call here:

/*
 * unpeer - remove peer structure from hash table and free structure
 */
void
unpeer(
	struct peer *peer
	)
{
	mprintf_event(PEVNT_DEMOBIL, peer, "assoc %u", peer->associd);
	restrict_source(&peer->srcadr, true, 0);
	set_peerdstadr(peer, NULL);
	peer_demobilizations++;
	peer_associations--;
	if (FLAG_PREEMPT & peer->flags)
		peer_preempt--;
#ifdef REFCLOCK
	/*
	 * If this peer is actually a clock, shut it down first
	 */
	if (FLAG_REFCLOCK & peer->flags)
		refclock_unpeer(peer);
#endif

	free_peer(peer);
}

> >> Maybe we should add another flag to disable poking holes.
> >> Maybe it's an enhancement rather than bug fix, but this would
> >> be the time to do it.
> > I'm generally opposed to adding more interface knobs.  The configuration
> > language is tricky enough as it is.  Why do you think we might need one? 
> 
> With the current setup, restrict is essentially ignored for pool hosts.  
> There is no way to say "I want to use the pool, but skip hosts at 
> a.b.c.d/16".  It will poke a hole in that restriction.  You might want to do 
> that because your routing to there is crappy so you get crappy time.  Or 
> maybe they are known bad guys and the pool operators are slow to respond or 
> don't think they are bad enough to kick out or ...
> 
> I generally agree with your more knobs comment.  This might be filling in a 
> hole and thus make things cleaner overall rather than more complicated.
> 
> If we don't fix this, we should at least make sure the documentation is clear.

I'll take a doc patch to that effect; also please add this RFE to devel/TODO.

You make a good case, but I want to get our decks cleared of tracker issues
before we start in on stuff like this.
-- 
		<a href="http://www.catb.org/~esr/">Eric S. Raymond</a>

Please consider contributing to my Patreon page at https://www.patreon.com/esr
so I can keep the invisible wheels of the Internet turning. Give generously -
the civilization you save might be your own.



More information about the devel mailing list