Icinga / icinga2

The core of our monitoring platform with a powerful configuration language and REST API.
https://icinga.com/docs/icinga2/latest
GNU General Public License v2.0
2.01k stars 576 forks source link

Icinga service/api can only bind to IPv4 addres or to (one) IPv6 #6088

Closed disasmwinnie closed 6 years ago

disasmwinnie commented 6 years ago

The IPv4 bind_host inside the config object type, works as expected. When one wants to bind the service to an IPv6 address the syntax is a) counter-intuitive, b) it is not possible to bind to all IPv6 addresses on the machine/interface, like it is possible in the IPv4 variant and c) it would be a nice to have binding to IPv4 and IPv6 addresses for, e.g., transitional dual-stack periods.

The following snippet illustrates the cases which fail respectively work:

bind_host = "fd::cafe:babe" # works
bind_host = "0.0.0.0." # Works, but overwrites previous entry
bind_host = "[fd::cafe:babe]" # square brackets should be default but not supported, fails to bind
bind_host = "[::]" # Not supported/fails to bind
bind_host = "::" # Not supported/fails to bind

a) I can bind to an IPv6 address, like shown in line 1, but it does not use the square bracket notation, usually used to state v6 addresses.

b) The cases in line 5, or preferably line 4, should be supported in order to bind an all possible IPv6 addresses, aka the same as 0.0.0.0 in IPv4.

c) Specifying bind_host multiple times, overwrites the previous value (which makes sense). It would be nice to have a bind_host6 or alike parameter for better support of dual-stack environments, like many networks daemons do.

The package is from the Ubuntu 16.04 repo and this is my test host:

icinga2 ca list -V
icinga2 - The Icinga 2 network monitoring daemon (version: r2.8.1-1)

Copyright (c) 2012-2017 Icinga Development Team (https://www.icinga.com/)
License GPLv2+: GNU GPL version 2 or later <http://gnu.org/licenses/gpl2.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Application information:
  Installation root: /usr
  Sysconf directory: /etc
  Run directory: /run
  Local state directory: /var
  Package data directory: /usr/share/icinga2
  State path: /var/lib/icinga2/icinga2.state
  Modified attributes path: /var/lib/icinga2/modified-attributes.conf
  Objects path: /var/cache/icinga2/icinga2.debug
  Vars path: /var/cache/icinga2/icinga2.vars
  PID path: /run/icinga2/icinga2.pid

System information:
  Platform: Ubuntu
  Platform version: 16.04.3 LTS (Xenial Xerus)
  Kernel: Linux
  Kernel version: 4.4.0-112-generic
  Architecture: x86_64

Build information:
  Compiler: GNU 5.3.1
  Build host: 5b0d1614aaa2

Cheers

EDIT: doesn't throw a syntax error, actually, the binding fails.

dnsmichi commented 6 years ago

Closing as duplicate of #3249.