diff --git a/netbox/ipam/models.py b/netbox/ipam/models.py index bfac967fc..c02c12828 100644 --- a/netbox/ipam/models.py +++ b/netbox/ipam/models.py @@ -247,6 +247,15 @@ class Prefix(CreatedUpdatedModel): def get_absolute_url(self): return reverse('ipam:prefix', args=[self.pk]) + def clean(self): + # Disallow host masks + if self.prefix.version == 4 and self.prefix.prefixlen == 32: + raise ValidationError("Cannot create host addresses (/32) as prefixes. These should be IPv4 addresses " + "instead.") + elif self.prefix.version == 6 and self.prefix.prefixlen == 128: + raise ValidationError("Cannot create host addresses (/128) as prefixes. These should be IPv6 addresses " + "instead.") + def save(self, *args, **kwargs): if self.prefix: # Clear host bits from prefix