LLMpediaThe first transparent, open encyclopedia generated by LLMs

iproute2

Generated by GPT-5-mini
Note: This article was automatically generated by a large language model (LLM) from purely parametric knowledge (no retrieval). It may contain inaccuracies or hallucinations. This encyclopedia is part of a research project currently under review.
Article Genealogy
Parent: OpenConnect Hop 4
Expansion Funnel Raw 88 → Dedup 0 → NER 0 → Enqueued 0
1. Extracted88
2. After dedup0 (None)
3. After NER0 ()
4. Enqueued0 ()
iproute2
iproute2
Software: iproute2 developersScreenshot: VulcanSphere · GPL · source
Nameiproute2
Titleiproute2
DeveloperThomas Graf
Released1999
Operating systemLinux
LicenseGNU General Public License

iproute2

iproute2 is a collection of Linux networking utilities for advanced packet scheduling and routing protocol configuration. It replaces legacy net-tools tools and integrates with kernel subsystems such as Linux kernel Netlink and tc to manage Internet Protocol stacks, VLAN interfaces, and virtualization network namespaces. iproute2 is widely used by distributions including Debian, Ubuntu, Red Hat Enterprise Linux, Fedora, and SUSE Linux Enterprise Server.

Overview

iproute2 provides userland tools that interact with the Linux kernel to configure networking parameters, routing tables, and quality of service. The suite is designed to support complex setups encountered in projects like OpenStack, Kubernetes, Docker and cloud platforms such as Amazon Web Services, Google Cloud Platform, and Microsoft Azure. It is maintained in collaboration with contributors from organizations including Red Hat, Canonical, and independent developers. iproute2 leverages kernel features introduced across versions of the Linux kernel and is commonly packaged in distributions maintained by groups like Debian Project and Fedora Project.

Components and Utilities

The suite includes utilities named for tasks they perform, each interacting with kernel interfaces; notable tools include: - ip: manipulates routing table entries, addresses, and devices; used with protocols like IPv4 and IPv6. - ss: inspects socket statistics, TCP and UDP state, and relationships to processes such as systemd services. - tc: configures QoS, queuing disciplines, filters, and classes used in projects like Open vSwitch and FRRouting. - rtmon: monitors routing events and kernel notifications. - bridge: manages bridging for Ethernet interfaces used by Libvirt and KVM virtualization. - nstat and tcpslice-like tools: collect network statistics and monitor traffic for troubleshooting with tools like Wireshark and tcpdump.

Several utilities integrate with other ecosystems: ip works alongside NetworkManager and configuration systems such as systemd-networkd, while tc is often used with iptables and nftables when shaping or filtering traffic.

Features and Functionality

iproute2 supports advanced features enabling modern networking deployments: - Policy routing and multiple routing tables for scenarios in BGP and Open Shortest Path First (OSPF) with daemons such as Quagga and FRRouting. - Network namespaces and virtual Ethernet pairs used by Docker containers and LXC. - Traffic control including queuing disciplines like Hierarchical Token Bucket (HTB), Stochastic Fairness Queuing (SFQ), and filters integrating with Netfilter subsystems. - Address and link scope management for IPv6 address autoconfiguration and interaction with Router Advertisement daemons. - Integration with ethtool capabilities for link-layer features and with devlink for device-level telemetry in modern NIC hardware. - Monitoring tools (ss, rtmon) provide visibility analogous to legacy netstat but with richer details about protocol families and socket internals.

Configuration and Usage

Common workflows use iproute2 commands in scripts, init systems, and orchestration platforms: - Adding and removing addresses: ip address add/del commands for configuring IPv4 and IPv6 on interfaces such as Ethernet, bonding, or 802.1Q subinterfaces. - Routing: ip route and ip rule for source-based routing used in multihoming and failover designs with tools like Keepalived and HAProxy. - Namespaces: ip netns to create network namespaces used with Containerd, Kubernetes, and CRI-O for container networking. - Traffic shaping: tc qdisc, tc class, and tc filter to implement traffic policies for services such as HTTP/HTTPS proxies and VoIP and manage latency-sensitive flows in real-time applications. - Debugging: ss -tuln and ip -s link for socket and link statistics used during incidents alongside systemtap and perf profiling.

Configuration is typically done declaratively in distribution-specific files managed by systemd, ifupdown, or network managers, or imperatively in orchestration manifests consumed by Ansible, Puppet, or Chef.

Comparison with net-tools

iproute2 supersedes legacy net-tools utilities such as ifconfig, route, arp, and netstat by providing unified access to kernel networking features. iproute2 communicates with the kernel via Netlink whereas net-tools relied on legacy ioctl interfaces, improving scalability for modern features used in cloud computing and large-scale deployments like CDN infrastructures. While net-tools remains available in some distributions, projects like Debian and Fedora Project recommend iproute2 for up-to-date functionality and support in environments running systemd and advanced network virtualization.

Development and History

iproute2 traces origins to efforts in the late 1990s to modernize Linux networking interfaces, with lead contributions from developers such as Thomas Graf and maintainers collaborating with kernel developers including contributors from Red Hat and other vendors. The project evolved alongside kernel developments like the introduction of Netlink and namespaces, and has been shaped by interoperability needs for Xen (hypervisor), KVM, and container ecosystems. iproute2 development occurs in public repositories and receives patches from community members, distribution maintainers from Debian Project, Red Hat, Canonical, and contributors active in forums such as LKML and conferences like LinuxCon.

Category:Linux software