rfc-7277

A YANG Data Model for IP Management

M. Bjorklund
date2014-06 streamIETF areaops wgnetmod statusPROPOSED STANDARD pages30 canonicalhttps://www.rfc-editor.org/rfc/rfc7277 doi10.17487/RFC7277
This document defines a YANG data model for management of IP implementations. The data model includes configuration data and state data.

obsoleted by

Extracted elements (20)

design-rationale §4

IPv4 supports both prefix-length and dotted-quad netmask representation (the latter gated by the 'ipv4-non-contiguous-netmasks' feature) to accommodate devices that support non-contiguous subnet masks, while IPv6 only supports prefix-length since non-contiguous masks are not defined for IPv6.

yang, ip

design-rationale §1

Per-interface IP parameters are added via augmentation of the ietf-interfaces module (RFC 7223) rather than defining a standalone model, enabling modular composition and reuse of the interface abstraction layer.

yang, netconf, ip

interoperability-note §3

Each entry in the 'ipv4/address' and 'ipv6/address' lists maps to one ipAddressEntry in the IP-MIB (RFC 4293), with ipAddressIfIndex referring to the interface. The 'ipv4/neighbor' and 'ipv6/neighbor' lists map to ipNetToPhysicalTable.

yang, ip, snmp

normative-requirement §4 MUST NOT

If an interface is not capable of running IP, the server must not allow the client to configure the IP parameters defined in this module.

yang, netconf, ip

privacy-consideration §6

The 'ipv6/autoconf' container controls whether temporary addresses (RFC 4941 privacy extensions) are created. Unauthorized modification of these leaves can impact the addresses used by a node and indirectly affect user privacy by disabling or enabling privacy address generation.

yang, ip, privacy

protocol-element §4

The 'dup-addr-detect-transmits' leaf (uint32, default 1) controls how many consecutive Neighbor Solicitation messages are sent during Duplicate Address Detection. A value of zero disables DAD on tentative addresses.

yang, ip

protocol-element §2

The 'ietf-ip' YANG module augments the 'interface' and 'interface-state' lists from 'ietf-interfaces' (RFC 7223) with per-interface IPv4 and IPv6 configuration and state containers, including addresses, neighbors, forwarding, MTU, and autoconfiguration parameters.

yang, netconf, ip

protocol-element §4

The IPv4 address list is keyed by 'ip' (inet:ipv4-address-no-zone) and requires a mandatory 'subnet' choice between 'prefix-length' (uint8, 0..32) and 'netmask' (yang:dotted-quad, only if feature 'ipv4-non-contiguous-netmasks' is supported).

yang, ip

protocol-element §4

The IPv4 configuration container ('ipv4') is a presence container that enables IPv4 on an interface unless the 'enabled' leaf is set to false. It includes 'enabled' (boolean, default true), 'forwarding' (boolean, default false), 'mtu' (uint16, range 68..max), a list of addresses keyed by IP, and a neighbor list for static ARP entries.

yang, netconf, ip

protocol-element §4

The IPv6 address list is keyed by 'ip' (inet:ipv6-address-no-zone) with a mandatory 'prefix-length' (uint8, 0..128). There is no netmask alternative for IPv6.

yang, ip

protocol-element §4

The IPv6 address state list includes an 'origin' leaf (ip-address-origin enumeration: other, static, dhcp, link-layer, random) and a 'status' leaf with values: preferred, deprecated, invalid, inaccessible, unknown, tentative, duplicate, optimistic — corresponding to RFC 4293 IpAddressStatusTC and RFC 4862 states.

yang, ip

protocol-element §4

The IPv6 autoconf container controls SLAAC behavior: 'create-global-addresses' (boolean, default true) follows RFC 4862, and 'create-temporary-addresses' (boolean, default false, gated by feature 'ipv6-privacy-autoconf') follows RFC 4941. Temporary address lifetimes are configurable via 'temporary-valid-lifetime' (default 604800s) and 'temporary-preferred-lifetime' (default 86400s).

yang, ip, privacy

protocol-element §4

The IPv6 configuration container ('ipv6') is a presence container enabling IPv6 on an interface. It includes 'enabled' (boolean, default true), 'forwarding' (boolean, default false), 'mtu' (uint32, range 1280..max), an address list, a neighbor list for static Neighbor Cache entries, 'dup-addr-detect-transmits' (uint32, default 1), and an 'autoconf' sub-container.

yang, netconf, ip

protocol-element §4

The neighbor list in the IPv6 state container includes 'is-router' (type empty, present if neighbor is a router) and 'state' (NUD state enumeration), in addition to 'ip', 'link-layer-address', and 'origin' shared with IPv4 neighbors.

yang, ip

registry §5

This document registers the URI 'urn:ietf:params:xml:ns:yang:ietf-ip' in the IETF XML Registry (RFC 3688) and registers the YANG module 'ietf-ip' (prefix: ip, namespace: urn:ietf:params:xml:ns:yang:ietf-ip) in the YANG Module Names registry (RFC 6020).

yang, registry

security-consideration §6

Modifying 'ipv4/forwarding' or 'ipv6/forwarding' could allow an attacker to open a conduit into a network area or deny transit service; enabling forwarding may allow bypassing of security safeguards by routing packets through an unintended path.

yang, netconf, security, ip

security-consideration §6

Setting 'ipv4/mtu' or 'ipv6/mtu' to very small values can be used to slow down interfaces, constituting a potential denial-of-service vector accessible to any NETCONF client with write permission.

yang, netconf, security, ip

security-consideration §6

The YANG module is accessed via NETCONF over a mandatory SSH secure transport (RFC 6242); NETCONF access control (RFC 6536) must be used to restrict write access. Unauthorized modification of 'ipv4/enabled', 'ipv6/enabled', 'forwarding', 'address' lists, or 'mtu' can disrupt routing, deny service, open unsecured paths, or enable traffic interception.

yang, netconf, security, ip

state-machine §4

The IPv6 neighbor state leaf models Neighbor Unreachability Detection (NUD) states from RFC 4861 Section 7.3.2: incomplete (address resolution in progress), reachable (recently confirmed reachable), stale (no longer known reachable, no probing yet), delay (traffic sent, waiting before probing), probe (unicast Neighbor Solicitation probes being sent).

yang, ip

wire-format §4

IPv4 neighbor entries use 'ip' typed as inet:ipv4-address-no-zone and 'link-layer-address' typed as yang:phys-address (mandatory in config, optional in state). IPv6 neighbor entries use inet:ipv6-address-no-zone for 'ip' with the same phys-address type for the link-layer address.

yang, ip