Skip to content

Security Group

Security Group provides micro-segmentation capabilities on NX-OS by classifying endpoints into security groups based on IP address, VLAN, or external subnets. Traffic between groups is controlled by security contracts applied per VRF, which reference policy maps containing class-map-based filtering rules. Security Group requires the security-group feature to be enabled and system routing template-security-groups to be configured.

NameTypeConstraintMandatoryDefault Value
devicesListdevicesNo
device_groupsListdevice_groupsNo
globalClassglobalNo
templatesListtemplatesNo

NameTypeConstraintMandatoryDefault Value
configurationClassconfigurationNo

NameTypeConstraintMandatoryDefault Value
configurationClassconfigurationNo

NameTypeConstraintMandatoryDefault Value
configurationClassconfigurationNo

NameTypeConstraintMandatoryDefault Value
configurationClassconfigurationNo

NameTypeConstraintMandatoryDefault Value
security_groupClasssecurity_groupNo

security_group (nxos.devices.configuration)

Section titled “security_group (nxos.devices.configuration)”
NameTypeConstraintMandatoryDefault Value
mac_segmentationChoiceenabled, disabledNo
security_groupsListsecurity_groupsNo
class_mapsListclass_mapsNo
policy_mapsListpolicy_mapsNo

security_groups (nxos.devices.configuration.security_group)

Section titled “security_groups (nxos.devices.configuration.security_group)”
NameTypeConstraintMandatoryDefault Value
idIntegermin: 1, max: 65535Yes
nameStringNo
type_layer4_7Booleantrue, falseNo
intra_group_isolationBooleantrue, falseNo
match_connected_endpoints_ipv4Listmatch_connected_endpoints_ipv4No
match_connected_endpoints_ipv6Listmatch_connected_endpoints_ipv6No
match_external_subnets_ipv4Listmatch_external_subnets_ipv4No
match_external_subnets_ipv6Listmatch_external_subnets_ipv6No
match_interfacesListmatch_interfacesNo
match_vlansClassmatch_vlansNo
match_vlan_macsListmatch_vlan_macsNo
match_vlan_interfacesListmatch_vlan_interfacesNo

security_groups (nxos.devices.configuration.security_group)

Section titled “security_groups (nxos.devices.configuration.security_group)”
NameTypeConstraintMandatoryDefault Value
idIntegermin: 1, max: 65535Yes
nameStringNo
match_connected_endpoints_ipv4Listmatch_connected_endpoints_ipv4No
match_connected_endpoints_ipv6Listmatch_connected_endpoints_ipv6No
match_vlansClassmatch_vlansNo

class_maps (nxos.devices.configuration.security_group)

Section titled “class_maps (nxos.devices.configuration.security_group)”
NameTypeConstraintMandatoryDefault Value
nameStringYes
descriptionStringNo
filter_entriesListfilter_entriesNo

policy_maps (nxos.devices.configuration.security_group)

Section titled “policy_maps (nxos.devices.configuration.security_group)”
NameTypeConstraintMandatoryDefault Value
nameStringYes
descriptionStringNo
classesListclassesNo

match_connected_endpoints_ipv4 (nxos.devices.configuration.security_group.security_groups)

Section titled “match_connected_endpoints_ipv4 (nxos.devices.configuration.security_group.security_groups)”
NameTypeConstraintMandatoryDefault Value
vrfStringYes
addressIPYes

match_connected_endpoints_ipv6 (nxos.devices.configuration.security_group.security_groups)

Section titled “match_connected_endpoints_ipv6 (nxos.devices.configuration.security_group.security_groups)”
NameTypeConstraintMandatoryDefault Value
vrfStringYes
addressIPYes

match_external_subnets_ipv4 (nxos.devices.configuration.security_group.security_groups)

Section titled “match_external_subnets_ipv4 (nxos.devices.configuration.security_group.security_groups)”
NameTypeConstraintMandatoryDefault Value
vrfStringYes
addressIPYes
route_injectBooleantrue, falseNo
nexthop_ipv4IPNo
encap_typeChoicempls-vpnNo

match_external_subnets_ipv6 (nxos.devices.configuration.security_group.security_groups)

Section titled “match_external_subnets_ipv6 (nxos.devices.configuration.security_group.security_groups)”
NameTypeConstraintMandatoryDefault Value
vrfStringYes
addressIPYes
route_injectBooleantrue, falseNo
nexthop_ipv4IPNo
nexthop_ipv6IPNo
encap_typeChoicempls-vpnNo

match_interfaces (nxos.devices.configuration.security_group.security_groups)

Section titled “match_interfaces (nxos.devices.configuration.security_group.security_groups)”
NameTypeConstraintMandatoryDefault Value
interface_typeChoiceethernet, loopback, mgmt, port-channel, vlan, vniYes
interface_idAnyString or Integer[min: 0]Yes

match_vlans (nxos.devices.configuration.security_group.security_groups)

Section titled “match_vlans (nxos.devices.configuration.security_group.security_groups)”
NameTypeConstraintMandatoryDefault Value
idsListInteger[min: 1, max: 4094]No
rangesListrangesNo

match_vlan_macs (nxos.devices.configuration.security_group.security_groups)

Section titled “match_vlan_macs (nxos.devices.configuration.security_group.security_groups)”
NameTypeConstraintMandatoryDefault Value
vlanIntegermin: 1, max: 4094Yes
macMACYes

match_vlan_interfaces (nxos.devices.configuration.security_group.security_groups)

Section titled “match_vlan_interfaces (nxos.devices.configuration.security_group.security_groups)”
NameTypeConstraintMandatoryDefault Value
vlanIntegermin: 1, max: 4094Yes
interface_typeChoiceethernet, loopback, mgmt, port-channel, vlan, vniYes
interface_idAnyString or Integer[min: 0]Yes

filter_entries (nxos.devices.configuration.security_group.class_maps)

Section titled “filter_entries (nxos.devices.configuration.security_group.class_maps)”
NameTypeConstraintMandatoryDefault Value
nameStringYes
ether_typeChoiceipv4, ipv6No
protocolAnyChoice[icmp, igmp, tcp, egp, igp, udp, icmpv6, eigrp, ospfigp, pim, l2tp] or Integer[min: 0, max: 255] or String[Regex: ^.*[\$\%]\{.*$]No
statefulBooleantrue, falseNo
sportIntegermin: 1, max: 65535No
sport_toIntegermin: 1, max: 65535No
dportIntegermin: 1, max: 65535No
dport_toIntegermin: 1, max: 65535No
session_ruleListChoice[ack, est, fin, rst, syn]No
dscpIntegermin: 0, max: 63No
fragmentsBooleantrue, falseNo
icmpv4_typeIntegermin: 0, max: 255No
icmpv6_typeIntegermin: 0, max: 255No

filter_entries (nxos.devices.configuration.security_group.class_maps)

Section titled “filter_entries (nxos.devices.configuration.security_group.class_maps)”
NameTypeConstraintMandatoryDefault Value
nameStringYes
dscpIntegermin: 0, max: 63No
fragmentsBooleantrue, falseNo
icmpv4_typeIntegermin: 0, max: 255No
icmpv6_typeIntegermin: 0, max: 255No

classes (nxos.devices.configuration.security_group.policy_maps)

Section titled “classes (nxos.devices.configuration.security_group.policy_maps)”
NameTypeConstraintMandatoryDefault Value
classStringYes
actionChoicedeny, permitNo
countBooleantrue, falseNo
logBooleantrue, falseNo
redirectStringNo

ranges (nxos.devices.configuration.security_group.security_groups.match_vlans)

Section titled “ranges (nxos.devices.configuration.security_group.security_groups.match_vlans)”
NameTypeConstraintMandatoryDefault Value
fromIntegermin: 1, max: 4094Yes
toIntegermin: 1, max: 4094Yes

Example 1: Security groups with connected endpoint and VLAN selectors, and intra-group isolation (requires NX-OS 10.6(3) or later)

nxos:
devices:
- name: LEAF1
configuration:
feature:
security_group: true
security_group:
security_groups:
- id: 2681
name: web_sg
intra_group_isolation: true
match_connected_endpoints_ipv4:
- vrf: galactic_vrf
address: 172.17.101.0/24
- id: 2682
name: mail_sg
match_connected_endpoints_ipv4:
- vrf: galactic_vrf
address: 172.17.102.0/24
- id: 5000
name: monitoring-net
match_vlans:
ids: [2402]

Example 2: Security groups with external subnet, interface, VLAN/MAC and VLAN/interface selectors

nxos:
devices:
- name: LEAF1
configuration:
feature:
security_group: true
security_group:
security_groups:
- id: 3001
name: external_sg
match_external_subnets_ipv4:
- vrf: galactic_vrf
address: 10.100.0.0/16
route_inject: true
- vrf: galactic_vrf
address: 10.200.0.0/16
nexthop_ipv4: 172.16.0.1
- vrf: galactic_vrf
address: 10.201.0.0/16
nexthop_ipv4: 172.16.0.2
encap_type: mpls-vpn
match_external_subnets_ipv6:
- vrf: galactic_vrf
address: 2001:db8:100::/48
- vrf: galactic_vrf
address: 2001:db8:200::/48
nexthop_ipv6: 2001:db8::1
- vrf: galactic_vrf
address: 2001:db8:201::/48
nexthop_ipv4: 172.16.0.2
encap_type: mpls-vpn
- id: 3002
name: firewall_sg
type_layer4_7: true
match_interfaces:
- interface_type: vlan
interface_id: 3002
- id: 3003
name: hosts_sg
match_vlan_macs:
- vlan: 3003
mac: 00:1b:63:84:45:e6
match_vlan_interfaces:
- vlan: 3003
interface_type: ethernet
interface_id: 1/10
- vlan: 3003
interface_type: port-channel
interface_id: 10

Example 3: Class maps and policy maps for security filtering

nxos:
devices:
- name: LEAF1
configuration:
feature:
security_group: true
security_group:
class_maps:
- name: icmp
description: Match ICMP (auto generated)
- name: tcp_443
description: Match TCP port 443
filter_entries:
- name: tcp_443_entry
ether_type: ipv4
protocol: tcp
stateful: true
dport: 443
- name: tcp_80
description: Match TCP port 80
filter_entries:
- name: tcp_80_entry
ether_type: ipv4
protocol: tcp
dport: 80
- name: dns
description: Match DNS from ephemeral ports
filter_entries:
- name: dns_entry
ether_type: ipv4
protocol: udp
sport: 1024
sport_to: 65535
dport: 53
- name: tcp_established
description: Match established TCP sessions with DSCP AF11
filter_entries:
- name: tcp_est_entry
ether_type: ipv4
protocol: tcp
session_rule: [est]
dscp: 10
policy_maps:
- name: any-to-any_icmp
description: Any to Any traffic
classes:
- class: icmp
action: permit
- name: mail_web_tcp_443
description: Mail to Web traffic
classes:
- class: tcp_443
action: permit
count: true
log: false

Example 4: VRF security enforcement and security contracts

nxos:
devices:
- name: LEAF1
configuration:
system:
routing: template-security-groups
feature:
security_group: true
vrfs:
- name: galactic_vrf
vni: 560000
security_enforce_tag: 11905
security_enforce_default: deny
security_contracts:
- source: 2682
destination: 2681
policy: mail_web_tcp_443
unidir: true
- source: any
destination: any
policy: any-to-any_icmp

Example 1: Security groups with connected endpoint and VLAN selectors

nxos:
devices:
- name: LEAF1
configuration:
feature:
security_group: true
security_group:
security_groups:
- id: 2681
name: web_sg
match_connected_endpoints_ipv4:
- vrf: galactic_vrf
address: 172.17.101.0/24
- id: 2682
name: mail_sg
match_connected_endpoints_ipv4:
- vrf: galactic_vrf
address: 172.17.102.0/24
- id: 5000
name: monitoring-net
match_vlans:
ids: [2402]

Example 2: Class maps and policy maps for security filtering

nxos:
devices:
- name: LEAF1
configuration:
feature:
security_group: true
security_group:
class_maps:
- name: icmp
description: Match ICMP (auto generated)
- name: tcp_443
description: Match TCP port 443
filter_entries:
- name: tcp_443_entry
- name: tcp_80
description: Match TCP port 80
filter_entries:
- name: tcp_80_entry
policy_maps:
- name: any-to-any_icmp
description: Any to Any traffic
classes:
- class: icmp
action: permit
- name: mail_web_tcp_443
description: Mail to Web traffic
classes:
- class: tcp_443
action: permit
count: true
log: false

Example 3: VRF security enforcement

nxos:
devices:
- name: LEAF1
configuration:
system:
routing: template-security-groups
feature:
security_group: true
vrfs:
- name: galactic_vrf
vni: 560000
security_enforce_tag: 11905
security_enforce_default: deny