[syslog-ng] 'network' Destination With Hostname Resolution (IPv4 vs IPv6)
David Hauck
davidh at netacquire.com
Tue Sep 25 13:59:03 UTC 2018
Hi Balázs,
Thanks for your thoughts. Please see below.
On Fri, 21 Sep 2018 at 04:52:00, syslog-ng <syslog-ng-bounces at lists.balabit.hu> On Behalf Of Scheidler, Balázs wrote:
> The reason you need to explicitly ask for ip-protocol(6) is that
> sometimes, syslog-ng by itself can create such a socket, can even
> resolve DNS names to ipv6 addresses and then communication wouldn't
> work without an actual ipv6 tunnel/connectivity. Setting ip-protocol(6)
> everywhere would achieve auto-detection and it probably would make sense
> to make this configurable globally, not on a per-destination basis.
Independent of a potential globally configurable hint would it work to use ip-protocol(6) in all of my destination configurations directly, regardless of whether the specified <destination-address> is a hostname (which may be resolve to an IPv4 or IPv6 address), an IPv4 address string, or an IPv6 address string?
I would really like to just specify this once for each/all destinations (I don't mind doing it for each destination, I just don't want to have to evaluate whether to use ip-protocol([46])*).
Regards,
-David
* The destination configurations are performed programmatically and the extra determination for whether the configured <destination-address> falls into any of the above three categories is cumbersome/tricky at the locale where this done.
> That would probably be something like this:
>
> * introduce ipv6 related attributes in GlobalConfig, defaulting to ipv4
>
> * have those attributes configurable through cfg-grammar.y (e.g.
> the main configuration parser)
> * in each destination that supports ipv6, inherit the global value
> unless overridden locally
>
> There are similar patterns in the configuration/destination relation,
> for instance with log-fifo-size() where there's a global and a local setting as well.
>
>
> With that said, I'd say that patches are welcome, I couldn't work on
> it myself right now, but I am happy to review any solutions.
>
>
> On Thu, Sep 20, 2018 at 6:03 PM David Hauck <davidh at netacquire.com <mailto:davidh at netacquire.com> > wrote:
>
>
> Hi Balazs,
>
> On Wednesday, September 19, 2018 9:21 PM, syslog-ng
> <syslog-ng-bounces at lists.balabit.hu
> <mailto:syslog-ng-bounces at lists.balabit.hu> > On Behalf Of Balazs Scheidler wrote:
> > Ip protocol v6 should support both ipv4 and v6. So if you use that and
> > the name resolves to a v4 address or should work.
>
> OK, interesting.
>
> For a different reason it would also be good if I could always
> specify ip-protocol(6) (non-default) for any value of "myhost" below -
> i.e., even when this is an explicit IPv4 or IPv6 address string. Would
> this also work? And if this were to work (I see no reason why it
> wouldn't if what you say about hostname resolution above) then I guess there is no value in specifying ip-protocol() at all, right (i.e., syslog-ng could also just know to do the right thing in these cases)?
>
> Thanks,
> -David
>
> > On Wed, Sep 19, 2018, 19:23 David Hauck <davidh at netacquire.com
> <mailto:davidh at netacquire.com> <mailto:davidh at netacquire.com
> <mailto:davidh at netacquire.com> > >> wrote: > > Hi, > >
> Thought I would reach out again to see if anyone had any thoughts on the
> item below. > > Thanks for the consideration, > -David >
> > On Wednesday, September 12, 2018 3:39 PM, syslog-ng
> <syslog-ng-bounces at lists.balabit.hu
> <mailto:syslog-ng-bounces at lists.balabit.hu> >
> <mailto:syslog-ng-bounces at lists.balabit.hu
> <mailto:syslog-ng-bounces at lists.balabit.hu> > > On Behalf Of David Hauck
> > wrote: > Hi, > > I have a question regarding how to
> specify a network > destination when using a hostname when the >
> hostname can be resolved > to either IPv4 or IPv6. In particular what
> should be specified by the > ip- > protocol() parameter? There are
> some configuration scenarios > and/or target installations that don't
> > know a priori whether the DNS > configuration will resolve to an
> IPv4 or IPv6 address.
>>> E.g., > >
> > destination d_tcp6 { > network( > "myhost"
>>
> > port(514) > transport(udp) >
> ip-protocol(6 or 4 or ??)
> > > ); > }; > > It seems like it would
> simple enough to have
> > syslog-ng simply validate the resulting IP address string to
>>
> > determine which of ip-protocol(4) or ip-protocol(6) is actually needed.
> > In fact, I would argue that > specifying an IP address
> string (as the
> > "<destination-address>" value) could result in the same
>> determination
> > (the address string necessarily unambiguously determines whether the
> > reference is an > IPv4 or an IPv6 address and I would think
> there is a > 1-1 relationship between this determination and >
> whether > ip-protocol(4) or ip-protocol(6) is used - (in other words it
> would > never make sense to have > these mixed: "::1" and
> ip-protocol(4) would > be invalid). > > Thanks, -David >
>
> ________________________________________________________________________
> ______ Member info: https://lists.balabit.hu/mailman/listinfo/syslog-ng
> Documentation:
> http://www.balabit.com/support/documentation/?product=syslog-ng FAQ:
> http://www.balabit.com/wiki/syslog-ng-faq
>
>
More information about the syslog-ng
mailing list