Add dsa-check-ipv6-default-gw
authorPeter Palfrader <peter@palfrader.org>
Sun, 11 Mar 2018 08:04:30 +0000 (09:04 +0100)
committerPeter Palfrader <peter@palfrader.org>
Sun, 11 Mar 2018 08:04:30 +0000 (09:04 +0100)
dsa-nagios-checks/checks/dsa-check-ipv6-default-gw [new file with mode: 0644]
dsa-nagios-checks/debian/changelog

diff --git a/dsa-nagios-checks/checks/dsa-check-ipv6-default-gw b/dsa-nagios-checks/checks/dsa-check-ipv6-default-gw
new file mode 100644 (file)
index 0000000..1245fee
--- /dev/null
@@ -0,0 +1,39 @@
+#!/usr/bin/python3
+
+import ipaddress
+import subprocess
+import sys
+
+def get_ipv6_addrs():
+    ip_output = subprocess.check_output(['ip', '-o', '-6', 'addr', 'show'])
+    s = set()
+    for line in ip_output.decode().splitlines():
+        fields = line.split()
+        if len(fields) < 4:
+            continue
+        ipv6addr = ipaddress.IPv6Interface(fields[3])
+        if ipv6addr.is_global:
+            s.add(ipv6addr)
+    return s
+
+def get_default_v6_route():
+    ip_output = subprocess.check_output(['ip', '-o', '-6', 'route', 'show'])
+    s = set()
+    for line in ip_output.decode().splitlines():
+        fields = line.split()
+        if fields[0] == "default":
+            return line
+    return None
+
+ipv6addrs = get_ipv6_addrs()
+if len(ipv6addrs) == 0:
+    print("OK: No ipv6 interfaces")
+    sys.exit(0)
+
+v6route = get_default_v6_route()
+if v6route is None:
+    print("Warning: No ipv6 default route")
+    sys.exit(1)
+else:
+    print("OK:", v6route)
+    sys.exit(0)
index a7aa0bc..ff593b2 100644 (file)
@@ -1,3 +1,9 @@
+dsa-nagios-checks (116) UNRELEASED; urgency=medium
+
+  * Add dsa-check-ipv6-default-gw.
+
+ -- Peter Palfrader <weasel@debian.org>  Sun, 11 Mar 2018 09:03:51 +0100
+
 dsa-nagios-checks (115) unstable; urgency=medium
 
   [ Julien Cristau ]