diff --git a/netbox/dns/forms.py b/netbox/dns/forms.py index 72f8dc7d8..f2f0df617 100644 --- a/netbox/dns/forms.py +++ b/netbox/dns/forms.py @@ -36,7 +36,7 @@ class ZoneForm(forms.ModelForm, BootstrapMixin): 'soa_refresh': "Refresh time, in seconds", 'soa_retry': "Retry time, in seconds", 'soa_expire': "Expire time, in seconds", - 'soa_minimum': "Negative result TTL, in seconds" + 'soa_minimum': "Negative result TTL, in seconds", } class ZoneFromCSVForm(forms.ModelForm): diff --git a/netbox/ipam/forms.py b/netbox/ipam/forms.py index b39dd0175..a33e68362 100644 --- a/netbox/ipam/forms.py +++ b/netbox/ipam/forms.py @@ -149,7 +149,16 @@ class PrefixForm(forms.ModelForm, BootstrapMixin): class Meta: model = Prefix - fields = ['prefix', 'vrf', 'site', 'vlan', 'status', 'role', 'description'] + fields = ['prefix', 'vrf', 'site', 'vlan', 'status', 'role', 'description', 'ttl', 'soa_name', 'soa_contact', 'soa_refresh', 'soa_retry', 'soa_expire', 'soa_minimum'] + labels = { + 'ttl': 'Rev. DNS - TTL', + 'soa_name': 'Rev. DNS - SOA Name', + 'soa_contact': 'Rev. DNS - SOA Contact', + 'soa_refresh': 'Rev. DNS - SOA Refresh', + 'soa_retry': 'Rev. DNS - SOA Retry', + 'soa_expire': 'Rev. DNS - SOA Expire', + 'soa_minimum': 'Rev. DNS - SOA Minimum', + } help_texts = { 'prefix': "IPv4 or IPv6 network", 'vrf': "VRF (if applicable)", @@ -157,6 +166,13 @@ class PrefixForm(forms.ModelForm, BootstrapMixin): 'vlan': "The VLAN to which this prefix is assigned (if applicable)", 'status': "Operational status of this prefix", 'role': "The primary function of this prefix", + 'ttl': "Time to live, in seconds", + 'soa_name': "The primary name server for the domain, @ for origin", + 'soa_contact': "The responsible party for the zone (e.g. ns.foo.net. noc.foo.net.)", + 'soa_refresh': "Refresh time, in seconds", + 'soa_retry': "Retry time, in seconds", + 'soa_expire': "Expire time, in seconds", + 'soa_minimum': "Negative result TTL, in seconds", } def __init__(self, *args, **kwargs): @@ -200,7 +216,7 @@ class PrefixFromCSVForm(forms.ModelForm): class Meta: model = Prefix - fields = ['prefix', 'vrf', 'site', 'vlan_group_name', 'vlan_vid', 'status_name', 'role', 'description'] + fields = ['prefix', 'vrf', 'site', 'vlan_group_name', 'vlan_vid', 'status_name', 'role', 'description', 'ttl', 'soa_name', 'soa_contact', 'soa_refresh', 'soa_retry', 'soa_expire', 'soa_minimum'] def clean(self): @@ -253,6 +269,14 @@ class PrefixBulkEditForm(forms.Form, BootstrapMixin): role = forms.ModelChoiceField(queryset=Role.objects.all(), required=False) description = forms.CharField(max_length=50, required=False) + ttl = forms.IntegerField(required=False, label='Reverse DNS - TTL') + soa_name = forms.CharField(max_length=100, required=False, label='Reverse DNS - SOA Name') + soa_contact = forms.CharField(max_length=100, required=False, label='Reverse DNS - SOA Contact') + soa_refresh = forms.IntegerField(required=False, label='Reverse DNS - SOA Refresh') + soa_retry = forms.IntegerField(required=False, label='Reverse DNS - SOA Retry') + soa_expire = forms.IntegerField(required=False, label='Reverse DNS - SOA Expire') + soa_minimum = forms.IntegerField(required=False, label='Reverse DNS - SOA Minimum') + class PrefixBulkDeleteForm(ConfirmationForm): pk = forms.ModelMultipleChoiceField(queryset=Prefix.objects.all(), widget=forms.MultipleHiddenInput) diff --git a/netbox/ipam/models.py b/netbox/ipam/models.py index c5d87a5ad..e407ebf00 100644 --- a/netbox/ipam/models.py +++ b/netbox/ipam/models.py @@ -306,6 +306,14 @@ class Prefix(CreatedUpdatedModel): self.get_status_display(), self.role.name if self.role else '', self.description, + self.ttl if self.ttl else '', + self.soa_name if self.soa_name else '', + self.soa_contact if self.soa_contact else '', + self.soa_serial if self.soa_serial else '', + self.soa_refresh if self.soa_refresh else '', + self.soa_retry if self.soa_retry else '', + self.soa_expire if self.soa_expire else '', + self.soa_minimum if self.soa_minimum else '', ]) @property diff --git a/netbox/templates/dns/zone.html b/netbox/templates/dns/zone.html index e85592a34..c9a76f136 100644 --- a/netbox/templates/dns/zone.html +++ b/netbox/templates/dns/zone.html @@ -126,7 +126,7 @@ - +
{{ bind_export }}
{{ bind_export }}
diff --git a/netbox/templates/ipam/prefix.html b/netbox/templates/ipam/prefix.html index 46d446361..ba7e12da2 100644 --- a/netbox/templates/ipam/prefix.html +++ b/netbox/templates/ipam/prefix.html @@ -80,6 +80,38 @@ IP Addresses {{ ipaddress_count }} + + Reverse DNS - TTL + {{ zone.ttl }} + + + Reverse DNS - SOA Name + {{ zone.soa_name }} + + + Reverse DNS - SOA Contact + {{ zone.soa_contact }} + + + Reverse DNS - SOA Serial + {{ zone.soa_serial }} + + + Reverse DNS - SOA Refresh + {{ zone.soa_refresh }} + + + Reverse DNS - SOA Retry + {{ zone.soa_retry }} + + + Reverse DNS - SOA Expire + {{ zone.soa_expire }} + + + Reverse DNS - SOA Minimum + {{ zone.soa_minimum }} + Created {{ prefix.created }} diff --git a/netbox/templates/ipam/prefix_bulk_edit.html b/netbox/templates/ipam/prefix_bulk_edit.html index 03e358725..93844e2a5 100644 --- a/netbox/templates/ipam/prefix_bulk_edit.html +++ b/netbox/templates/ipam/prefix_bulk_edit.html @@ -12,6 +12,14 @@ {{ prefix.status }} {{ prefix.role }} {{ prefix.description }} + {{ prefix.ttl }} + {{ prefix.soa_name }} + {{ prefix.soa_contact }} + {{ prefix.soa_refresh }} + {{ prefix.soa_retry }} + {{ prefix.soa_expire }} + {{ prefix.soa_minimum }} + {{ prefix.description }} {% endfor %} {% endblock %} diff --git a/netbox/templates/ipam/prefix_import.html b/netbox/templates/ipam/prefix_import.html index 902f23443..03dc3f7f2 100644 --- a/netbox/templates/ipam/prefix_import.html +++ b/netbox/templates/ipam/prefix_import.html @@ -68,10 +68,45 @@ Short description (optional) 7th floor WiFi + + Reverse DNS - TTL + Time to live, in seconds + 10800 + + + Reverse DNS - SOA Name + The primary name server for the domain, @ for origin + @ + + + Reverse DNS - SOA Contact + The responsible party for the domain + ns.foo.net. noc.foo.net. + + + Reverse DNS - SOA Refresh + Refresh time, in seconds + 3600 + + + Reverse DNS - SOA Retry + Retry time, in seconds + 3600 + + + Reverse DNS - SOA Expire + Expire time, in seconds + 604800 + + + Reverse DNS - SOA Minimum + Negative result TTL, in seconds + 1800 +

Example

-
192.168.42.0/24,65000:123,HQ,Customers,801,Active,Customer,7th floor WiFi
+
192.168.42.0/24,65000:123,HQ,Customers,801,Active,Customer,7th floor WiFi,10800,@,ns.foo.net. noc.foo.net.,3600,3600,604800,1800
{% endblock %}