Skip to content

Loopback

Loopback interfaces are virtual logical interfaces that provide a stable, always-up reference point for network services including routing protocol router IDs, management access, and service endpoints that remain accessible regardless of physical interface states. They support full Layer 3 functionality including IPv4 and IPv6 addressing, routing protocol participation (OSPF, BGP), MPLS services, and advanced features such as BFD for fast failure detection and network monitoring applications. Loopback interfaces are essential for network design best practices, providing consistent reachability for critical services, enabling effective network troubleshooting, and serving as anchor points for overlay networks, VPN services, and network management systems.

Diagram
NameTypeConstraintMandatoryDefault Value
loopbacksList[loopbacks]No

loopbacks (iosxe.devices.configuration.interfaces)

Section titled “loopbacks (iosxe.devices.configuration.interfaces)”
NameTypeConstraintMandatoryDefault Value
idIntegerYes
interface_groupsListStringNo
interface_group_policyChoicemerge, replaceNo
descriptionStringNo
shutdownBooleantrue, falseNo
ip_mtuIntegermin: 68, max: 18000No
vrf_forwardingStringNo
ipv4Class[ipv4]No
ipv6Class[ipv6]No
arp_timeoutIntegermin: 0, max: 2147483No
load_intervalIntegermin: 30, max: 600No
mplsClass[mpls]No
ospfClass[ospf]No
ospfv3Class[ospfv3]No
isisClass[isis]No
pimClass[pim]No
igmpClass[igmp]No
zone_member_securityStringNo

ipv4 (iosxe.devices.configuration.interfaces.loopbacks)

Section titled “ipv4 (iosxe.devices.configuration.interfaces.loopbacks)”
NameTypeConstraintMandatoryDefault Value
addressIPNo
address_maskIPNo
proxy_arpBooleantrue, falseNo
access_group_inStringNo
access_group_outStringNo
redirectsBooleantrue, falseNo
unreachablesBooleantrue, falseNo
nat_insideBooleantrue, falseNo
nat_outsideBooleantrue, falseNo
unnumbered_interface_typeChoiceLoopback, Vlan, GigabitEthernet, TwoGigabitEthernet, FiveGigabitEthernet, TenGigabitEthernet, TwentyFiveGigabitEthernet, FortyGigabitEthernet, FiftyGigabitEthernet, HundredGigabitEthernet, PortChannelNo
unnumbered_interface_idAnyString or Integer[min: 0]No
address_dhcpBooleantrue, falseNo

ipv6 (iosxe.devices.configuration.interfaces.loopbacks)

Section titled “ipv6 (iosxe.devices.configuration.interfaces.loopbacks)”
NameTypeConstraintMandatoryDefault Value
enableBooleantrue, falseNo
addressesList[addresses]No
link_local_addressesListIPNo
address_autoconfig_defaultBooleantrue, falseNo
address_dhcpBooleantrue, falseNo
mtuIntegermin: 1280, max: 9976No
pimClass[pim]No

mpls (iosxe.devices.configuration.interfaces.loopbacks)

Section titled “mpls (iosxe.devices.configuration.interfaces.loopbacks)”
NameTypeConstraintMandatoryDefault Value
ipBooleantrue, falseNo
mtuIntegerNo

ospf (iosxe.devices.configuration.interfaces.loopbacks)

Section titled “ospf (iosxe.devices.configuration.interfaces.loopbacks)”
NameTypeConstraintMandatoryDefault Value
authentication_key_chainStringNo
authentication_message_digestBooleantrue, falseNo
authentication_nullBooleantrue, falseNo
costIntegermin: 1, max: 65535No
dead_intervalIntegermin: 1, max: 65535No
hello_intervalIntegermin: 1, max: 65535No
message_digest_keysList[message_digest_keys]No
mtu_ignoreBooleantrue, falseNo
multi_area_idsListAny[String or Integer[min: 0]]No
network_typeChoicebroadcast, non-broadcast, point-to-multipoint, point-to-pointNo
priorityIntegermin: 0, max: 255No
process_idsList[process_ids]No
ttl_security_hopsIntegermin: 1, max: 254No

ospfv3 (iosxe.devices.configuration.interfaces.loopbacks)

Section titled “ospfv3 (iosxe.devices.configuration.interfaces.loopbacks)”
NameTypeConstraintMandatoryDefault Value
bfdBooleantrue, falseNo
costIntegermin: 1, max: 65535No
dead_intervalIntegermin: 1, max: 65535No
hello_intervalIntegermin: 1, max: 65535No
mtu_ignoreBooleantrue, falseNo
network_typeChoicebroadcast, non-broadcast, point-to-multipoint, point-to-pointNo
priorityIntegermin: 0, max: 255No

isis (iosxe.devices.configuration.interfaces.loopbacks)

Section titled “isis (iosxe.devices.configuration.interfaces.loopbacks)”
NameTypeConstraintMandatoryDefault Value
area_tagStringNo
ipv4_metric_levelsList[ipv4_metric_levels]No
network_point_to_pointBooleantrue, falseNo

pim (iosxe.devices.configuration.interfaces.loopbacks)

Section titled “pim (iosxe.devices.configuration.interfaces.loopbacks)”
NameTypeConstraintMandatoryDefault Value
passiveBooleantrue, falseNo
dense_modeBooleantrue, falseNo
sparse_modeBooleantrue, falseNo
sparse_dense_modeBooleantrue, falseNo
bfdBooleantrue, falseNo
borderBooleantrue, falseNo
bsr_borderBooleantrue, falseNo
dr_priorityIntegermin: 0, max: 4294967294No

igmp (iosxe.devices.configuration.interfaces.loopbacks)

Section titled “igmp (iosxe.devices.configuration.interfaces.loopbacks)”
NameTypeConstraintMandatoryDefault Value
versionIntegermin: 1, max: 3No

addresses (iosxe.devices.configuration.interfaces.loopbacks.ipv6)

Section titled “addresses (iosxe.devices.configuration.interfaces.loopbacks.ipv6)”
NameTypeConstraintMandatoryDefault Value
prefixIPYes
eui_64Booleantrue, falseNo

pim (iosxe.devices.configuration.interfaces.loopbacks.ipv6)

Section titled “pim (iosxe.devices.configuration.interfaces.loopbacks.ipv6)”
NameTypeConstraintMandatoryDefault Value
pimBooleantrue, falseNo
bfdBooleantrue, falseNo
bsr_borderBooleantrue, falseNo
dr_priorityIntegermin: 0, max: 4294967295No

message_digest_keys (iosxe.devices.configuration.interfaces.loopbacks.ospf)

Section titled “message_digest_keys (iosxe.devices.configuration.interfaces.loopbacks.ospf)”
NameTypeConstraintMandatoryDefault Value
idIntegermin: 1, max: 255Yes
md5_auth_keyStringNo
md5_auth_typeChoice0, 7No

process_ids (iosxe.devices.configuration.interfaces.loopbacks.ospf)

Section titled “process_ids (iosxe.devices.configuration.interfaces.loopbacks.ospf)”
NameTypeConstraintMandatoryDefault Value
idIntegermin: 1, max: 65535No
areasListAny[String or Integer[min: 0]]No

ipv4_metric_levels (iosxe.devices.configuration.interfaces.loopbacks.isis)

Section titled “ipv4_metric_levels (iosxe.devices.configuration.interfaces.loopbacks.isis)”
NameTypeConstraintMandatoryDefault Value
levelChoicelevel-1, level-2Yes
valueIntegermin: 1, max: 16777214Yes

IP Address Reassignment Between Interfaces

Section titled “IP Address Reassignment Between Interfaces”

IOS-XE enforces IP address uniqueness within the same VRF — no two interfaces can hold the same IP address simultaneously. When swapping IP addresses between two interfaces (for example, moving 10.1.1.1 from Loopback101 to Loopback102 and vice versa), terraform apply will fail because Terraform updates both interfaces in parallel without awareness of the cross-resource conflict. The device rejects the new IP assignment with an “inconsistent value: Device refused one or more commands” error because the target IP still exists on the other interface.

To perform an IP swap, apply the change in two steps:

  1. Remove the IP addresses from both interfaces (delete the ipv4 block or assign temporary addresses) and run terraform apply.
  2. Set the new desired IP addresses and run terraform apply a second time.
interface Loopback0
description Loopback0
ip address 5.5.5.5 255.255.255.0
ipv6 address dhcp
iosxe:
devices:
- name: Device1
configuration:
interfaces:
loopbacks:
- id: 0
description: Loopback0
ipv4:
address: 5.5.5.5
address_mask: 255.255.255.0
ipv6:
enable: true
address_dhcp: true

Full example:

iosxe:
devices:
- name: Device1
configuration:
interfaces:
loopbacks:
- id: 1
description: Production Loopback 2
interface_groups:
- management
shutdown: false
ip_mtu: 1400
vrf_forwarding: prod
arp_timeout: 30
load_interval: 30
ipv4:
address: 192.168.2.1
address_mask: 255.255.255.0
address_dhcp: true
proxy_arp: true
access_group_in: ACL_IN
access_group_out: ACL_OUT
redirects: false
unreachables: false
verify_unicast_source_reachable_via: any
verify_unicast_source_allow_default: true
ipv6:
enable: true
addresses:
- prefix: 2001::1
prefix_length: 64
link_local_addresses:
- fe80::1
mtu: 1450
pim:
dr_priority: 100
bfd:
enable: true
local_address: 172.16.1.1
interval: 120
interval_multiplier: 3
interval_min_rx: 100
echo: false
mpls:
mtu: 1450
ip: true
ospf:
cost: 50
dead_interval: 3
hello_interval: 1
mtu_ignore: true
network_type: point-to-multipoint
priority: 1
ttl_security_hops: 2
process_ids:
- id: 1
areas:
- "0.0.0.0"
ospfv3:
network_type: point-to-point
cost: 50
bfd: true
dead_interval: 40
hello_interval: 10
mtu_ignore: true
priority: 100
pim:
dense_mode: true
bfd: true
border: true
bsr_border: true
dr_priority: 100
igmp:
version: 2
isis:
area_tag: TEST # Must match an isis_processes.area_tag defined under routing
ipv4_metric_levels:
- level: level-1
value: 50

Configure a loopback interface as a NAT inside interface. This is commonly used when the loopback serves as a source for traffic that should be translated by NAT.

Note: nat_inside and nat_outside are mutually exclusive on a single interface (only one can be configured at a time).

Cisco IOS-XE CLI Equivalent:

interface Loopback100
description NAT Inside Loopback
ip address 10.0.100.1 255.255.255.255
ip nat inside
iosxe:
devices:
- name: Device1
configuration:
interfaces:
loopbacks:
- id: 100
description: NAT Inside Loopback
ipv4:
address: 10.0.100.1
address_mask: 255.255.255.255
nat_inside: true

Configure a loopback interface as a NAT outside interface. This is used when the loopback represents a public-facing address that receives translated traffic.

Cisco IOS-XE CLI Equivalent:

interface Loopback200
description NAT Outside Loopback
ip address 203.0.113.1 255.255.255.255
ip nat outside
iosxe:
devices:
- name: Device1
configuration:
interfaces:
loopbacks:
- id: 200
description: NAT Outside Loopback
ipv4:
address: 203.0.113.1
address_mask: 255.255.255.255
nat_outside: true

Configure uRPF source verification on a loopback interface. The reachable-via mode can be rx (strict mode — source must be reachable via the receiving interface) or any (loose mode — source must be reachable via any interface).

Cisco IOS-XE CLI Equivalent:

interface Loopback200
description uRPF Loopback
ip address 200.0.0.1 255.255.255.255
ip verify unicast source reachable-via any allow-default
iosxe:
devices:
- name: Device1
configuration:
interfaces:
loopbacks:
- id: 200
description: uRPF Loopback
ipv4:
address: 200.0.0.1
address_mask: 255.255.255.255
verify_unicast_source_reachable_via: any
verify_unicast_source_allow_default: true

Loopback interfaces are virtual logical interfaces that provide a stable, always-up reference point for network services including routing protocol router IDs, management access, and service endpoints that remain accessible regardless of physical interface states. They support full Layer 3 functionality including IPv4 and IPv6 addressing, routing protocol participation (OSPF, BGP), MPLS services, and advanced features such as BFD for fast failure detection and network monitoring applications. Loopback interfaces are essential for network design best practices, providing consistent reachability for critical services, enabling effective network troubleshooting, and serving as anchor points for overlay networks, VPN services, and network management systems.

Diagram
NameTypeConstraintMandatoryDefault Value
loopbacksList[loopbacks]No

loopbacks (iosxe.devices.configuration.interfaces)

Section titled “loopbacks (iosxe.devices.configuration.interfaces)”
NameTypeConstraintMandatoryDefault Value
idIntegerYes
interface_groupsListStringNo
descriptionStringNo
shutdownBooleantrue, falseNo
vrf_forwardingStringNo
ipv4Class[ipv4]No
ipv6Class[ipv6]No
arp_timeoutIntegermin: 0, max: 2147483No
load_intervalIntegermin: 30, max: 600No
mplsClass[mpls]No
ospfClass[ospf]No
ospfv3Class[ospfv3]No
pimClass[pim]No
igmpClass[igmp]No

ipv4 (iosxe.devices.configuration.interfaces.loopbacks)

Section titled “ipv4 (iosxe.devices.configuration.interfaces.loopbacks)”
NameTypeConstraintMandatoryDefault Value
addressIPNo
address_maskIPNo
proxy_arpBooleantrue, falseNo
access_group_inStringNo
access_group_outStringNo
redirectsBooleantrue, falseNo
unreachablesBooleantrue, falseNo
unnumbered_interface_typeChoiceLoopback, Vlan, GigabitEthernet, FiveGigabitEthernet, TenGigabitEthernet, FortyGigabitEthernet, HundredGigabitEthernet, PortChannelNo
unnumbered_interface_idAnyString or Integer[min: 0]No

ipv6 (iosxe.devices.configuration.interfaces.loopbacks)

Section titled “ipv6 (iosxe.devices.configuration.interfaces.loopbacks)”
NameTypeConstraintMandatoryDefault Value
enableBooleantrue, falseNo
addressesList[addresses]No
link_local_addressesListIPNo
address_autoconfig_defaultBooleantrue, falseNo
address_dhcpBooleantrue, falseNo
mtuIntegermin: 1280, max: 9976No
pimClass[pim]No

mpls (iosxe.devices.configuration.interfaces.loopbacks)

Section titled “mpls (iosxe.devices.configuration.interfaces.loopbacks)”
NameTypeConstraintMandatoryDefault Value
ipBooleantrue, falseNo
mtuIntegerNo

ospf (iosxe.devices.configuration.interfaces.loopbacks)

Section titled “ospf (iosxe.devices.configuration.interfaces.loopbacks)”
NameTypeConstraintMandatoryDefault Value
costIntegermin: 1, max: 65535No
dead_intervalIntegermin: 1, max: 65535No
hello_intervalIntegermin: 1, max: 65535No
mtu_ignoreBooleantrue, falseNo
network_typeChoicebroadcast, non-broadcast, point-to-multipoint, point-to-pointNo
priorityIntegermin: 0, max: 255No
ttl_security_hopsIntegermin: 1, max: 254No
process_idsList[process_ids]No
message_digest_keysList[message_digest_keys]No

ospfv3 (iosxe.devices.configuration.interfaces.loopbacks)

Section titled “ospfv3 (iosxe.devices.configuration.interfaces.loopbacks)”
NameTypeConstraintMandatoryDefault Value
network_typeChoicebroadcast, non-broadcast, point-to-multipoint, point-to-pointNo
costIntegermin: 1, max: 65535No

pim (iosxe.devices.configuration.interfaces.loopbacks)

Section titled “pim (iosxe.devices.configuration.interfaces.loopbacks)”
NameTypeConstraintMandatoryDefault Value
passiveBooleantrue, falseNo
dense_modeBooleantrue, falseNo
sparse_modeBooleantrue, falseNo
sparse_dense_modeBooleantrue, falseNo
bfdBooleantrue, falseNo
borderBooleantrue, falseNo
bsr_borderBooleantrue, falseNo
dr_priorityIntegermin: 0, max: 4294967294No

igmp (iosxe.devices.configuration.interfaces.loopbacks)

Section titled “igmp (iosxe.devices.configuration.interfaces.loopbacks)”
NameTypeConstraintMandatoryDefault Value
versionIntegermin: 1, max: 3No

addresses (iosxe.devices.configuration.interfaces.loopbacks.ipv6)

Section titled “addresses (iosxe.devices.configuration.interfaces.loopbacks.ipv6)”
NameTypeConstraintMandatoryDefault Value
prefixIPYes
eui_64Booleantrue, falseNo

pim (iosxe.devices.configuration.interfaces.loopbacks.ipv6)

Section titled “pim (iosxe.devices.configuration.interfaces.loopbacks.ipv6)”
NameTypeConstraintMandatoryDefault Value
pimBooleantrue, falseNo
bfdBooleantrue, falseNo
bsr_borderBooleantrue, falseNo
dr_priorityIntegermin: 0, max: 4294967295No

process_ids (iosxe.devices.configuration.interfaces.loopbacks.ospf)

Section titled “process_ids (iosxe.devices.configuration.interfaces.loopbacks.ospf)”
NameTypeConstraintMandatoryDefault Value
idIntegermin: 1, max: 65535No
areasListAny[String or Integer[min: 0]]No

message_digest_keys (iosxe.devices.configuration.interfaces.loopbacks.ospf)

Section titled “message_digest_keys (iosxe.devices.configuration.interfaces.loopbacks.ospf)”
NameTypeConstraintMandatoryDefault Value
idIntegermin: 1, max: 255Yes
md5_auth_keyStringNo
md5_auth_typeChoice0, 7No

iosxe:
devices:
- name: Device1
configuration:
interfaces:
loopbacks:
- id: 0
description: Loopback0
ip_address: 5.5.5.5
ip_address_mask: 255.255.255.0

Full example:

iosxe:
devices:
- name: Device1
configuration:
interfaces:
loopbacks:
- id: 1
description: Production Loopback 2
shutdown: false
vrf_forwarding: prod
arp_timeout: 30
load_interval: 30
ipv4:
address: 192.168.2.1
address_mask: 255.255.255.0
proxy_arp: true
access_group_in: ACL_IN
access_group_out: ACL_OUT
redirects: false
unreachables: false
ipv6:
enable: true
addresses:
- prefix: 2001::1
prefix_length: 64
link_local_addresses:
- fe80::1
mtu: 1450
bfd:
enable: true
local_address: 172.16.1.1
interval: 120
interval_multiplier: 3
interval_min_rx: 100
echo: false
mpls:
mtu: 1450
ip: true
ospf:
cost: 50
dead_interval: 3
hello_interval: 1
mtu_ignore: true
network_type: point-to-multipoint
priority: 1
ttl_security_hops: 2
process_ids:
- id: 1
areas:
- "0.0.0.0"
ospfv3:
network_type: point-to-point
cost: 50
pim:
dense_mode: true
bfd: true
border: true
bsr_border: true
dr_priority: 100
igmp:
version: 2