From 0c4774abb635b5308829c58e69fcad26efefaea4 Mon Sep 17 00:00:00 2001 From: Peter Palfrader Date: Sun, 11 Mar 2018 09:04:30 +0100 Subject: [PATCH] Add dsa-check-ipv6-default-gw --- .../checks/dsa-check-ipv6-default-gw | 39 +++++++++++++++++++ dsa-nagios-checks/debian/changelog | 6 +++ 2 files changed, 45 insertions(+) create mode 100644 dsa-nagios-checks/checks/dsa-check-ipv6-default-gw 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 index 0000000..1245fee --- /dev/null +++ b/dsa-nagios-checks/checks/dsa-check-ipv6-default-gw @@ -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) diff --git a/dsa-nagios-checks/debian/changelog b/dsa-nagios-checks/debian/changelog index a7aa0bc..ff593b2 100644 --- a/dsa-nagios-checks/debian/changelog +++ b/dsa-nagios-checks/debian/changelog @@ -1,3 +1,9 @@ +dsa-nagios-checks (116) UNRELEASED; urgency=medium + + * Add dsa-check-ipv6-default-gw. + + -- Peter Palfrader Sun, 11 Mar 2018 09:03:51 +0100 + dsa-nagios-checks (115) unstable; urgency=medium [ Julien Cristau ] -- 2.20.1