diff --git a/docs/features/vpn-tunnels.md b/docs/features/vpn-tunnels.md index a89265ec2..ae6df70c8 100644 --- a/docs/features/vpn-tunnels.md +++ b/docs/features/vpn-tunnels.md @@ -1,6 +1,6 @@ # Tunnels -NetBox can model private tunnels formed among virtual termination points across your network. Typical tunnel implementations include GRE, IP-in-IP, or IPSec. A tunnel may be terminated to two or more device or virtual machine interfaces. +NetBox can model private tunnels formed among virtual termination points across your network. Typical tunnel implementations include GRE, IP-in-IP, and IPSec. A tunnel may be terminated to two or more device or virtual machine interfaces. ```mermaid flowchart TD diff --git a/docs/models/vpn/tunneltermination.md b/docs/models/vpn/tunneltermination.md index 8bcfd11c4..8400eaa86 100644 --- a/docs/models/vpn/tunneltermination.md +++ b/docs/models/vpn/tunneltermination.md @@ -21,7 +21,7 @@ The functional role of the attached interface. The following options are availab !!! note Multiple hub terminations may be attached to a tunnel. -### Interface +### Termination The device or virtual machine interface terminated to the tunnel. diff --git a/netbox/dcim/models/device_components.py b/netbox/dcim/models/device_components.py index 2e3395a43..1df07bb9b 100644 --- a/netbox/dcim/models/device_components.py +++ b/netbox/dcim/models/device_components.py @@ -551,11 +551,6 @@ class BaseInterface(models.Model): blank=True, verbose_name=_('bridge interface') ) - tunnel_terminations = GenericRelation( - to='vpn.TunnelTermination', - content_type_field='interface_type', - object_id_field='interface_id' - ) class Meta: abstract = True diff --git a/netbox/templates/vpn/tunnel.html b/netbox/templates/vpn/tunnel.html index 2d9274ad9..544ffadae 100644 --- a/netbox/templates/vpn/tunnel.html +++ b/netbox/templates/vpn/tunnel.html @@ -26,6 +26,10 @@ {% trans "Status" %} {% badge object.get_status_display bg_color=object.get_status_color %} + + {% trans "Description" %} + {{ object.description|placeholder }} + {% trans "Encapsulation" %} {{ object.get_encapsulation_display }} @@ -34,6 +38,10 @@ {% trans "IPSec profile" %} {{ object.ipsec_profile|linkify|placeholder }} + + {% trans "Tunnel ID" %} + {{ object.tunnel_id|placeholder }} + {% trans "Tenant" %} @@ -43,18 +51,6 @@ {{ object.tenant|linkify|placeholder }} - - {% trans "Pre-shared key" %} - {{ object.preshared_key|placeholder }} - - - {% trans "Tunnel ID" %} - {{ object.tunnel_id|placeholder }} - - - {% trans "Description" %} - {{ object.description|placeholder }} - diff --git a/netbox/vpn/api/serializers.py b/netbox/vpn/api/serializers.py index 881d3d0c0..1a517fe59 100644 --- a/netbox/vpn/api/serializers.py +++ b/netbox/vpn/api/serializers.py @@ -148,7 +148,7 @@ class IPSecProposalSerializer(NetBoxModelSerializer): model = IPSecProposal fields = ( 'id', 'url', 'display', 'name', 'description', 'encryption_algorithm', 'authentication_algorithm', - 'sa_lifetime_data', 'sa_lifetime_seconds', 'tags', 'custom_fields', 'created', 'last_updated', + 'sa_lifetime_seconds', 'sa_lifetime_data', 'tags', 'custom_fields', 'created', 'last_updated', ) diff --git a/netbox/vpn/filtersets.py b/netbox/vpn/filtersets.py index d601eeeeb..8a474b987 100644 --- a/netbox/vpn/filtersets.py +++ b/netbox/vpn/filtersets.py @@ -145,7 +145,7 @@ class IKEPolicyFilterSet(NetBoxModelFilterSet): class Meta: model = IKEPolicy - fields = ['id', 'name'] + fields = ['id', 'name', 'preshared_key'] def search(self, queryset, name, value): if not value.strip(): diff --git a/netbox/vpn/forms/bulk_edit.py b/netbox/vpn/forms/bulk_edit.py index 9dee70418..a7b097b5c 100644 --- a/netbox/vpn/forms/bulk_edit.py +++ b/netbox/vpn/forms/bulk_edit.py @@ -70,9 +70,6 @@ class TunnelTerminationBulkEditForm(NetBoxModelBulkEditForm): ) model = TunnelTermination - fieldsets = ( - (None, ('role',)), - ) class IKEProposalBulkEditForm(NetBoxModelBulkEditForm): diff --git a/netbox/vpn/forms/bulk_import.py b/netbox/vpn/forms/bulk_import.py index b912153d2..5b42cc761 100644 --- a/netbox/vpn/forms/bulk_import.py +++ b/netbox/vpn/forms/bulk_import.py @@ -190,7 +190,7 @@ class IPSecProposalImportForm(NetBoxModelImportForm): class IPSecPolicyImportForm(NetBoxModelImportForm): pfs_group = CSVChoiceField( - label=_('PFS group'), + label=_('Diffie-Hellman group for Perfect Forward Secrecy'), choices=DHGroupChoices ) proposals = CSVModelMultipleChoiceField( diff --git a/netbox/vpn/tables.py b/netbox/vpn/tables.py index a174c5a43..304467586 100644 --- a/netbox/vpn/tables.py +++ b/netbox/vpn/tables.py @@ -48,7 +48,7 @@ class TunnelTable(TenancyColumnsMixin, NetBoxTable): 'pk', 'id', 'name', 'status', 'encapsulation', 'ipsec_profile', 'tenant', 'tenant_group', 'tunnel_id', 'termination_count', 'description', 'comments', 'tags', 'created', 'last_updated', ) - default_columns = ('pk', 'name', 'status', 'encapsulation', 'tenant', 'terminations_count') + default_columns = ('pk', 'name', 'status', 'encapsulation', 'ipsec_profile', 'tenant', 'terminations_count') class TunnelTerminationTable(TenancyColumnsMixin, NetBoxTable):