From 7a06a67557c207383eca4eee9fdbed78706cdc91 Mon Sep 17 00:00:00 2001 From: "th.l" <thl-cmk@outlook.com> Date: Wed, 8 May 2024 20:05:58 +0200 Subject: [PATCH] update project --- README.md | 2 +- mkp/nvdct-0.8.8-20240508.mkp | Bin 0 -> 38881 bytes source/bin/nvdct/lib/settings.py | 6 +++++- source/bin/nvdct/lib/utils.py | 2 +- source/bin/nvdct/nvdct.py | 3 ++- source/bin/nvdct/nvdct.toml | 9 +++++++-- source/packages/nvdct | 2 +- 7 files changed, 17 insertions(+), 7 deletions(-) create mode 100644 mkp/nvdct-0.8.8-20240508.mkp diff --git a/README.md b/README.md index 91ef0f6..604763c 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -[PACKAGE]: ../../raw/master/mkp/nvdct-0.8.7-20240430.mkp "nvdct-0.8.7-20240430.mkp" +[PACKAGE]: ../../raw/master/mkp/nvdct-0.8.8-20240508.mkp "nvdct-0.8.8-20240508.mkp" Network Visualization Data Creation Tool (NVDCT) This script creates the topology data file needed for the [Checkmk Exchange Network visualization](https://exchange.checkmk.com/p/network-visualization) plugin by Andreas Boesl and [schnetz](https://exchange.checkmk.com/u/schnetz).\ diff --git a/mkp/nvdct-0.8.8-20240508.mkp b/mkp/nvdct-0.8.8-20240508.mkp new file mode 100644 index 0000000000000000000000000000000000000000..69ce2a79e9d2f2e4e975b66260adbab25201ceba GIT binary patch literal 38881 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 Dq+wA5 literal 0 HcmV?d00001 diff --git a/source/bin/nvdct/lib/settings.py b/source/bin/nvdct/lib/settings.py index 066dd79..f77f034 100755 --- a/source/bin/nvdct/lib/settings.py +++ b/source/bin/nvdct/lib/settings.py @@ -58,6 +58,7 @@ class Wildcard(NamedTuple): int_wildcard: int ip_address: str wildcard: str + bit_pattern: int class Settings: @@ -400,11 +401,14 @@ class Settings: ) continue try: + # 0.0.127.0 -> 255.255.128.255 + inverted_wildcard = '.'.join([str(255 - int(octet)) for octet in wildcard.split('.')]) self.__l3v4_ignore_wildcard.append(Wildcard( int_ip_address=int(IPv4Address(ip_address)), - int_wildcard=int(IPv4Address(wildcard)), + int_wildcard=int(IPv4Address(inverted_wildcard)), ip_address=ip_address, wildcard=wildcard, + bit_pattern= int(IPv4Address(ip_address)) & int(IPv4Address(inverted_wildcard)) )) except (AddressValueError, NetmaskValueError): LOGGER.error( diff --git a/source/bin/nvdct/lib/utils.py b/source/bin/nvdct/lib/utils.py index bf093d4..4ec0812 100755 --- a/source/bin/nvdct/lib/utils.py +++ b/source/bin/nvdct/lib/utils.py @@ -22,7 +22,7 @@ from time import time as now_time from tomllib import loads as toml_loads, TOMLDecodeError from typing import List, Dict, Any, TextIO -NVDCT_VERSION = '0.8.7-20240430' +NVDCT_VERSION = '0.8.8-20240507' @unique diff --git a/source/bin/nvdct/nvdct.py b/source/bin/nvdct/nvdct.py index b6117f7..ffa5fb1 100755 --- a/source/bin/nvdct/nvdct.py +++ b/source/bin/nvdct/nvdct.py @@ -101,6 +101,7 @@ # 2024-04-18: added option --skip-l3-ip # added tooltip for --skip-l3-if and --skip-l3-ip # 2024-04-30: automatically create @default if it doesn't exist +# 2024-05-07: fixed handling of ignore wildcard in L3v4 topology # creating topology data json from inventory data # @@ -872,7 +873,7 @@ def is_ignore_ipv4(ip_address: str, ignore_ips: List[IPv4Network]) -> bool: def is_ignore_wildcard(ip_address: str, ignore_wildcard: List[Wildcard]) -> bool: int_ip_address = int(IPv4Address(ip_address)) for wildcard in ignore_wildcard: - if int_ip_address & wildcard.int_wildcard == wildcard.int_ip_address: + if int_ip_address & wildcard.int_wildcard == wildcard.bit_pattern: LOGGER.info( f'IP address {ip_address} matches ignore wildcard ' f'list ({wildcard.ip_address}/{wildcard.wildcard})' diff --git a/source/bin/nvdct/nvdct.toml b/source/bin/nvdct/nvdct.toml index dec7379..f9d4657 100755 --- a/source/bin/nvdct/nvdct.toml +++ b/source/bin/nvdct/nvdct.toml @@ -44,9 +44,14 @@ L3V4_IGNORE_IP = [ ] # ignore IPs by wildcard +# if comparing an ip address: +# each 0 bit in the wildcad has to be exacly as in the pattern +# each 1 bit in the wildacrd will be ignored L3V4_IRNORE_WILDCARD = [ - # ["0.0.0.1", "0.0.0.255"], # ignore all IPs ending with 1 - # ["172.17.0.2", "255.255.0.255"], # ignore all IPs ending with 1 from 172.17.0.0/16 + # [ pattern , wildcard ] + # ["172.17.0.1", "0.0.255.0"], # ignore all IPs ending with 1 from 172.17.128.0/16 + # ["172.17.128.0", "0.0.127.3"], # ignore all IPs ending with 0-3 from 172.17.128.0/17 + ["172.17.128.3", "0.0.127.0"], # ignore all IPs ending with 3 from 172.17.128.0/17 ] # networks to summarize diff --git a/source/packages/nvdct b/source/packages/nvdct index 6dd4726..36a3ef5 100644 --- a/source/packages/nvdct +++ b/source/packages/nvdct @@ -57,7 +57,7 @@ 'htdocs/images/icons/location_80.png']}, 'name': 'nvdct', 'title': 'Network Visualization Data Creation Tool (NVDCT)', - 'version': '0.8.7-20240430', + 'version': '0.8.8-20240508', 'version.min_required': '2.2.0b1', 'version.packaged': '2.2.0p24', 'version.usable_until': '2.4.0p1'} -- GitLab