背景
NetBoxのIPAMのIPアドレスでは10.1.1.0/23のような有効なIPアドレスもネットワークアドレスだと認識されてエラーになります。
前提
- FreeBSD 13.5
- NetBox 4.2.9
NetBoxの修正
ネットマスク長の/32、/31に加えて、/23、/22、/21、/20でもラストオクテット0をnetwork IDと認識されないようにします。
/usr/local/share/netbox/netbox/ipam/models/ip.py
--- ip.py.orig 2025-04-26 11:47:12.000000000 +0000
+++ ip.py 2025-06-13 06:24:28.587092000 +0000
@@ -848,7 +848,7 @@
msg = _("{ip} is a network ID, which may not be assigned to an interface.").format(
ip=self.address.ip
)
- if self.address.version == 4 and self.address.prefixlen not in (31, 32):
+ if self.address.version == 4 and self.address.prefixlen not in (20, 21, 22, 23, 31, 32):
raise ValidationError(msg)
if self.address.version == 6 and self.address.prefixlen not in (127, 128):
raise ValidationError(msg)
service netbox restart