Fact-checked by Grok 2 weeks ago

iproute2

iproute2 is a collection of userspace utilities for controlling and monitoring various aspects of networking in the Linux kernel, including routing, network interfaces, and traffic control. It replaces legacy tools from the net-tools package, such as ifconfig, route, and netstat, providing a unified and more powerful interface for IPv4 and IPv6 network configuration. Originally developed by , who also contributed significantly to the Linux kernel's (QoS) implementation and IPv4/IPv6 routing code, iproute2 has been maintained by Stephen Hemminger since around 2005. The suite is distributed as the iproute or iproute2 package in most distributions and is essential for advanced networking tasks, supporting features like , multiple routing tables, virtual local area networks (VLANs), and . Key components include the command, which manages devices, IP addresses, routes, neighbors, and tunnels; tc (traffic control), for configuring queuing disciplines and classifiers to control and ; and other tools like bridge for Ethernet bridging, ss for socket statistics, and rdma for Remote Direct Memory Access networking. iproute2 integrates closely with the Linux kernel's networking stack, enabling administrators and developers to implement complex configurations for servers, routers, and cloud environments. The project is actively developed, with releases aligning to kernel versions, such as iproute2 6.17.0 corresponding to 6.17 (as of September 2025).

Introduction

Definition and Scope

iproute2 is a collection of userspace command-line utilities designed for controlling and monitoring TCP/ networking, , traffic control, and associated features in the operating system. It serves as the primary toolkit for managing advanced networking functionalities that the provides. The scope of iproute2 encompasses a wide range of networking elements, including network interfaces, addresses, tables, neighbor discovery (such as and NDP), socket statistics, tunnels (e.g., IPIP and GRE), bridges, and (QoS) mechanisms. These utilities enable comprehensive configuration and monitoring without the constraints imposed by legacy tools like those in the net-tools suite. Developed to fully expose the Linux kernel's networking capabilities, iproute2 overcomes the historical limitations of older utilities that could not handle modern features such as policy routing or advanced . As the standard networking toolkit, it is included by default in most modern distributions, typically packaged as iproute or iproute2.

Advantages Over Legacy Tools

iproute2 offers significant advantages over legacy networking tools such as those in the net-tools package, including , route, and , primarily through its active maintenance and alignment with evolving capabilities. The original upstream development of net-tools largely ceased after its last major release (version 1.60) in 2001, though distributions and community maintainers have provided limited updates since (e.g., version 2.10 in 2021), while iproute2 continues to be actively developed to incorporate new kernel features, ensuring and avoiding issues that affect outdated tools. A key design improvement is the consistent syntax across its utilities, which unifies management tasks that were fragmented in net-tools; for instance, interface configuration, routing, and statistics gathering now use a symmetrical command structure under the ip command, reducing the learning curve and scripting complexity compared to the disparate syntaxes of ifconfig and route. This modular architecture allows for comprehensive handling of diverse networking aspects—from basic IP management to advanced configurations—without relying on multiple disparate packages, thereby minimizing tool fragmentation in system administration. iproute2 excels in supporting modern kernel features that legacy tools lack, such as full integration, policy-based routing via multiple routing tables and rules, and advanced (QoS) mechanisms through queuing disciplines, all accessible without additional software. Furthermore, its use of sockets enables direct, bidirectional communication with the kernel, facilitating real-time monitoring, event notifications, and efficient control operations that outperform the ioctl-based interfaces of net-tools in terms of speed and scalability.

History and Development

Origins in Linux Networking

iproute2 originated in the late 1990s as a suite of userspace utilities designed to enhance networking capabilities, primarily created by Alexey N. Kuznetsov. Kuznetsov, renowned for his work on the 's (QoS) implementation and the IPv4 and routing code in kernel version 2.2, initiated the project to provide more advanced tools for network configuration and management. The first documented release of iproute2 occurred on June 30, 1999, focusing initially on the ip utility to consolidate and extend functionality beyond the fragmented, legacy networking commands derived from BSD systems, such as those in the net-tools package. This development aligned closely with the evolution of the Linux kernel during its 2.2 and 2.4 series, released in 1999 and 2001 respectively, which introduced support for more sophisticated routing and interface handling. iproute2 emerged to meet the growing demands for features like policy-based routing and traffic control that exceeded the scope of basic BSD-derived utilities, which relied on outdated ioctl interfaces and lacked integration with emerging kernel advancements. A pivotal aspect of its design was its tight integration with the netlink interface, first introduced as AF_NETLINK sockets in Linux kernel 2.2, enabling efficient, bidirectional communication between userspace applications and the kernel for real-time networking operations. By 2000–2001, iproute2 began appearing in major Linux distributions, such as early versions of and , marking its transition from experimental tools to standard networking infrastructure. This adoption coincided with the stagnation of net-tools development, whose last significant update occurred in 2001, leaving a gap that iproute2 filled through its active evolution and alignment with kernel progress.

Key Milestones and Maintenance

iproute2's development has been marked by several key milestones that have expanded its functionality in line with evolving networking needs. In the early 2000s, support was added, building on the original author's contributions to the kernel's routing code, enabling comprehensive management of both IPv4 and networks. The command for traffic control, which allows advanced quality-of-service features such as queuing disciplines and classifiers to be configured, has been part of the suite since its initial release. The addition of the command provided a faster, more detailed replacement for the legacy utility, improving socket statistics reporting with support for modern kernel features. Maintenance of iproute2 transitioned to Stephen Hemminger around 2003, succeeding original developer , and has continued actively under Hemminger's leadership with contributions from David Ahern. As of November 2025, the latest stable release is version 6.17.0, which incorporates support for devlink commands to manage network device drivers and lifecycle events, as well as RDMA utilities for configuration. This release aligns with recent enhancements, ensuring compatibility with new hardware and protocols. The project's evolution closely tracks releases, with significant advancements in the 2010s including integration for programmable filtering and classification in tools like and , enabling dynamic network policy enforcement without recompilation. In the 2020s, further enhancements included expanded XDP and support in for high-performance packet processing. In 2011, the community officially pushed for the of net-tools, positioning iproute2 as the standard suite for networking and across distributions. Ongoing emphasizes with networking changes, ensuring iproute2 remains the authoritative userspace for TCP/IP stack management.

Core Utilities

The ip Command

The ip command serves as the primary utility within iproute2 for configuring and managing Linux network interfaces, IP addresses, routes, neighbors, and tunnels at layers 2 and 3 of the OSI model. It adopts an object-action syntax, structured as ip [OPTIONS] OBJECT { COMMAND | help }, where OBJECT specifies the entity to manipulate (such as link for devices or route for routing entries), and COMMAND denotes the operation (e.g., add, delete, show, or set). This paradigm ensures consistency across subcommands and supports both IPv4 and IPv6 protocols via options like -4 for IPv4 or -6 for IPv6, or the -family parameter. As a modern replacement for legacy tools like ifconfig and route, ip provides enhanced flexibility for advanced networking tasks. For network device management, the link object handles interface states, attributes, and configurations, including tagging. Common commands include bringing an interface up or down, such as ip link set dev eth0 up to activate the ethernet device eth0, or ip link set dev eth0 down to deactivate it. support is integrated natively; for instance, ip link add link eth0 name eth0.100 type vlan id 100 creates a VLAN-tagged subinterface with ID 100 on eth0. Displaying all links uses ip link show, which outputs details like MTU, state, and addresses. The addr object (short for address) manages IP address assignments to interfaces, supporting multiple addresses per device for scenarios like . To add an IPv4 , the syntax is ip addr add 192.168.1.1/24 dev eth0, assigning the 192.168.1.1 with a /24 mask to eth0; deletion uses ip addr del with the same parameters. For , an example is ip -6 addr add 2001:db8::1/64 dev eth0. The ip addr show command lists all configured addresses, including flags like scope global for routable IPs. Routing configuration falls under the route object, which manipulates the kernel's (FIB). Basic route addition employs ip route add PREFIX via GATEWAY dev DEVICE, such as ip route add 10.0.0.0/24 via 192.168.1.1 dev eth0 to direct traffic for the 10.0.0.0/24 network through gateway 192.168.1.1 on eth0. Multipath routing is supported via the nexthop keyword, enabling load balancing; for example, ip route add default scope global nexthop via 192.168.1.1 dev eth0 weight 1 nexthop via 192.168.1.2 dev eth1 weight 1 distributes traffic across two gateways. The ip route show command displays the , with options like table main to filter specific tables. Neighbor discovery and ARP cache management use the neigh object (short for neighbour), handling layer 2 to layer 3 address mappings. To add a static entry, ip neigh add 192.168.1.100 lladdr 00:11:22:33:44:55 dev eth0 nud permanent installs a permanent entry for IP 192.168.1.100 with 00:11:22:33:44:55 on eth0. Listing neighbors is done with ip neigh show dev eth0, showing states like REACHABLE or STALE. This supports both IPv4 and IPv6 protocols. Tunnel configuration is managed via the tunnel object, facilitating encapsulation protocols like IP-in-IP, GRE, or SIT for VPNs and site-to-site s. Creating a simple IP-in-IP tunnel uses ip tunnel add tun0 mode ipip local 192.168.1.1 remote 203.0.113.1 ttl 64, defining endpoints and ; activation follows with ip [link](/page/Link) set tun0 up. More advanced types, such as VXLAN for overlay networks, employ ip [link](/page/Link) add vxlan10 type vxlan id 10 dev eth0, integrating with or unicast remotes. The ip tunnel show command lists all tunnels with their parameters.

The ss Command

The ss utility, part of the iproute2 suite, is designed to investigate and display socket statistics on systems, offering a more efficient and detailed alternative to the legacy command. It provides comprehensive views of active network connections, socket states, and associated processes across various protocols, including , , UNIX domain, and RAW sockets. By leveraging the socket interface for direct kernel queries, ss avoids the slower /proc filesystem scanning used by netstat, resulting in significantly faster performance, especially on systems with high connection volumes. Key functions of ss include listing active connections and listening ports, examining socket states (such as established, syn-sent, or time-wait), and associating sockets with owning processes. For example, the command ss -tuln displays all listening and sockets using numeric addresses and ports, without hostname resolution, which is useful for quick diagnostics. Similarly, ss -p state established filters and shows established connections along with the and command name of the associated processes, aiding in troubleshooting network-bound applications. These capabilities extend to support via the -6 option, allowing seamless inspection of dual-stack environments. Advanced options enable deeper analysis, such as displaying timer information with -o (revealing retransmission timers or details), memory usage statistics with -m (showing send and receive allocations), and inode numbers with details via -p. Filters can be applied using syntax like dst 192.168.1.1 to target specific addresses or ports, while state-based filtering (e.g., state time-wait) helps monitor transient socket behaviors. Since iproute2 version 3.x, ss has included extended statistics like and inode details, enhancing its utility for and security audits. Overall, these features make ss indispensable for within the iproute2 ecosystem.

Traffic Control and Monitoring

The tc Command

The tc command, part of the iproute2 suite, is the primary utility for configuring traffic control (TC) in the , enabling the management of network traffic through queueing disciplines (qdiscs), classes, and filters to implement (QoS) mechanisms such as shaping, packet , and rate policing. regulates the transmission rate of outgoing (egress) packets by buffering and delaying them to conform to specified limits, preventing and ensuring predictable performance. reorders packets to favor time-sensitive traffic, such as interactive sessions, over bulk transfers, while policing discards or marks excess incoming (ingress) packets that exceed defined rates, typically applied via intermediate functional blocks (IFBs) for ingress shaping. At its core, operates on qdiscs, which are kernel-based algorithms that handle packet queuing and scheduling on network interfaces. Qdiscs can be classless, managing a single queue, or classful, supporting hierarchical subdivisions for more granular control. Common classless qdiscs include Stochastic Fairness Queueing (SFQ), which approximates fair allocation by hashing flows into multiple queues and randomly perturbing hash values to prevent persistent unfairness, suitable for ensuring equitable sharing among multiple connections. The Filter (TBF) provides simple by allowing bursts up to a token bucket depth while enforcing a sustained rate, ideal for basic policing without complex hierarchy. For classful scenarios, the Hierarchical Token Bucket (HTB) qdisc implements a tree-like structure where is allocated via tokens, supporting guarantees (ceil rates) and limits (rate) with borrowing from parent classes, enabling sophisticated shaping for diverse traffic types. To configure a qdisc, the basic syntax is tc qdisc add dev <interface> root <qdisc_type> [options], where <interface> specifies the network device (e.g., eth0), root attaches to the primary queue, and options define parameters like handles for identification. For example, adding an HTB qdisc with a default class:
tc qdisc add dev eth0 root handle 1: htb default 1
This creates a root qdisc with handle 1: and directs unmatched packets to class 1. Classes are then added to classful qdiscs using tc class add dev <interface> parent <parent_handle> classid <class_handle> <qdisc_type> [options], such as:
tc class add dev eth0 parent 1: classid 1:1 htb rate 1mbit ceil 2mbit
Here, class 1:1 is limited to 1 Mbit/s but can borrow up to 2 Mbit/s from the parent. Filters classify incoming packets to route them to specific classes, using syntax like tc filter add dev <interface> protocol <proto> parent <parent_handle> prio <priority> <filter_type> [match criteria] flowid <class_handle>. A common example with the u32 filter for IP destination matching:
tc filter add dev eth0 protocol ip parent 1: prio 1 u32 match ip dst 192.168.1.0/24 flowid 1:1
This directs traffic destined for the 192.168.1.0/24 to class 1:1, enabling or shaping based on criteria like addresses, ports, or s. The utility integrates directly with the Linux kernel's scheduling modules, prefixed as sch_ (e.g., sch_htb, sch_sfq, sch_tbf), which must be loaded for functionality. These modules support advanced congestion avoidance techniques, including Random Early Detection (RED), which probabilistically drops packets before queues fill to signal congestion, and (ECN), which marks packets instead of dropping them to inform endpoints without retransmission overhead, configurable via qdisc parameters like limit, min, and max thresholds. This kernel-level integration allows tc to enforce QoS policies efficiently across high-speed networks.

Monitoring Tools (nstat, rtmon)

iproute2 includes specialized utilities for monitoring network statistics and routing changes, providing low-overhead access to kernel data via the socket interface, which avoids the need to parse files like /proc/net or . These tools enable real-time observation of protocol-level metrics and events, complementing per-connection details from utilities like with aggregate insights. The nstat command displays kernel SNMP counters and network interface statistics, retrieving per-protocol data such as TCP retransmits and UDP datagrams sent or received. It operates by querying the kernel through Netlink, presenting increments since the last invocation by default, though absolute values can be shown with the -a option. For instance, running nstat -z includes zero-valued counters in the output, while nstat -r resets the history before displaying current values. In daemon mode, invoked as nstat -d <interval>, it periodically scans and reports deltas, facilitating ongoing monitoring with minimal resource use. rtmon monitors routing table changes in real time by listening on a Netlink socket for RTnetlink notifications, dumping additions and deletions of network objects like routes, addresses, and links. Upon startup, it captures an initial snapshot of the current state before logging subsequent events. Output can be directed to a file using the syntax rtmon file <FILE> [OBJECTS], where OBJECTS specifies categories such as route for routing-specific events, as in rtmon file /var/log/rtmon.log route. Protocol family filtering is available via -family [inet|inet6|link], with shortcuts like -4 for IPv4-only monitoring. This setup allows for persistent logging of configuration dynamics without interrupting network operations.

Advanced Networking Features

Policy Routing and Rules

Policy routing in iproute2 extends traditional destination-based routing by allowing packets to be directed to specific routing tables based on policy criteria, enabling more flexible and context-aware network traffic management. This is achieved through the Routing Policy Database (RPDB), which consists of rules that select among multiple routing tables—such as the default 'main' (table 254), 'local' (table 255), and 'default' (table 253)—using selectors like source , firewall mark (fwmark), or user ID (). Introduced in 2.2, this feature supports up to 255 routing tables (numbered 1 to 255, with 0 reserved as unspecified), allowing administrators to define custom tables in /etc/iproute2/rt_tables for organized policy enforcement. Rules are managed using the ip rule command, where each rule specifies a selector and an action, typically a table lookup, with priority determining evaluation order (lower numbers have higher precedence). For instance, source-based routing can be configured with ip rule add from 192.168.1.0/24 table 100, directing all traffic originating from the 192.168.1.0/24 subnet to table 100. Corresponding routes in that table are added via ip route add default via 10.0.0.1 table 100, which sets a default gateway specific to the policy. UID-based rules, useful for per-user routing, employ the uidrange selector, such as ip rule add uidrange 1000-1000 table user_table to route traffic from a specific user ID to a dedicated table. Fwmark selectors, like ip rule add fwmark 1 table marked, enable marking packets with tools such as iptables or nftables (e.g., via -m mark --mark 1 -j ACCEPT in iptables rules) to influence routing decisions dynamically. This mechanism facilitates advanced scenarios, including load balancing across multiple gateways using multipath routes in , failover by prioritizing rules that redirect to backup paths upon failure, and selective VPN routing by applying rules to marked . By integrating with netfilter tools like or for packet marking, iproute2 allows policies to respond to application-level or security contexts without altering core logic. These capabilities build on basic route commands but provide granular essential for complex network environments.

Tunneling and Bridging Support

iproute2 provides robust support for creating and managing virtual interfaces, particularly tunnels for encapsulating traffic and bridges for aggregating Layer 2 connections. The ip tunnel subcommand enables the configuration of various tunneling protocols, allowing users to establish virtual point-to-point or multipoint links over networks. Supported encapsulation modes for IPv4 include IPIP (IP-in-IP), GRE (), SIT (Simple Internet Transition for -over-IPv4), and VTI (Virtual Tunnel Interface), each suited for different use cases such as carrying over IPv4 or enabling VPN-like setups. To create a tunnel, administrators use commands like ip tunnel add gre1 mode gre remote 192.168.1.1 local 10.0.0.1, which sets up a named gre1 with specified endpoints; additional options such as inheritance, TOS marking, and GRE-specific features like keys or checksums can be configured for enhanced control. These tunnels facilitate encapsulation, where inner packets are wrapped in an outer , enabling secure or routed transport across incompatible networks. Tunneling support was integrated into iproute2 by the mid-2000s, coinciding with growing needs for flexible in environments. For bridging, iproute2 includes the dedicated bridge utility, which manages Ethernet bridges as virtual Layer 2 switches, aggregating multiple physical or virtual interfaces into a single . Bridges are created via ip link add name br0 type bridge, and ports are added using bridge link set dev eth1 master br0, allowing seamless of devices like Ethernet interfaces or bonds. The utility supports (STP) to prevent loops, configurable with options like bridge link set dev br0 stp_state 1, and VLAN filtering for traffic segmentation, managed through bridge vlan add dev br0 vid 10. Bridging in iproute2 emphasizes aggregation, where frames are forwarded based on addresses across ports, supporting features like snooping to optimize group traffic distribution—enabled via flags such as multicast_router on bridge ports. Integration with allows aggregated links (e.g., LACP teams) to serve as ports, enhancing and throughput in virtualized or clustered setups. This capability, building on kernel bridging facilities introduced in the Linux 2.4 series, enables efficient topologies without proprietary hardware. Overall, these virtual devices in iproute2—tunnels for protocol encapsulation and bridges for —provide foundational tools for advanced networking, including handling and compatibility, streamlining the creation of scalable, resilient infrastructures. Since 5.6, iproute2 has also supported tunnels via ip link add wg0 type wireguard, offering modern, efficient alternatives for encrypted tunneling akin to traditional modes.

Usage and Integration

Basic Configuration Examples

iproute2 provides a suite of command-line tools for configuring Linux networking, with the ip utility serving as the primary interface for basic setup tasks such as assigning addresses, managing routes, and controlling link states. A fundamental operation is assigning an IP address to a network interface, which can be achieved using the ip addr add command. For example, to assign the IPv4 address 192.0.2.10 with a /27 prefix to the eth0 interface, the command is:
ip addr add 192.0.2.10/27 dev eth0
This adds the address without affecting existing ones on the interface. To enable beyond the local , a must be added, specifying the gateway. The command ip route add [default](/page/Default_route) via 192.0.2.1 directs all non-local traffic through the gateway at 192.0.2.1, assuming it is reachable on the relevant . Bringing a online requires setting its operational state, done with ip [link](/page/Link) set dev eth0 up. This activates the , enabling it to transmit and receive packets after address and route configurations. Conversely, ip [link](/page/Link) set dev eth0 down deactivates it. For a practical , consider configuring a static with multiple interfaces, such as a with eth0 connected to the internal and eth1 to an external one. First, assign addresses:
ip addr add 192.0.2.1/24 dev eth0
ip addr add 198.51.100.1/24 dev eth1
Bring both interfaces up:
ip link set dev eth0 up
ip link set dev eth1 up
Add a via the external gateway:
ip route add default via 198.51.100.254 dev eth1
If static ARP entries are needed for or reliability, such as mapping a neighbor's to its , use:
ip neigh add 198.51.100.254 lladdr aa:bb:cc:dd:ee:ff dev eth1
This setup ensures the can communicate on both networks without DHCP, suitable for servers in isolated environments. iproute2 commands are not fully idempotent; for example, attempting to add an already-existing address with ip addr add will fail with an error ("RTNETLINK answers: File exists"). For idempotent scripting and automation, use ip addr replace instead, which adds the address if it does not exist or updates the existing one if it does, succeeding silently in both cases. Similarly, ip route replace can be used for routes. To clean up configurations, flush options allow removal of all addresses or routes on a device, such as ip addr flush dev eth0, which deletes every assigned to eth0. Recent versions of iproute2 support structured output formats for better integration with automation tools. The -json flag, introduced in version 4.15, enables -formatted results, as in ip -json addr show, facilitating parsing in scripts without relying on text processing.

Kernel Compatibility and Best Practices

iproute2 utilities communicate with the primarily through the protocol (AF_NETLINK), a socket-based interface designed for bidirectional data exchange between user-space applications and kernel modules. This protocol enables efficient configuration and monitoring of networking features without relying on older mechanisms like . Full compatibility with iproute2's core functionalities, including advanced and , is achieved starting from version 2.6, where the redesigned networking subsystem provided the necessary support for Netlink-based operations. Certain advanced features, such as with the tc command, require specific kernel modules to be loaded; for example, the sch_htb module implements the Hierarchical Token Bucket (HTB) queuing discipline, which must be enabled in the kernel for corresponding tc configurations to function. For optimal deployment, iproute2 integrates seamlessly with modern network management services like systemd-networkd, which leverages iproute2 commands to apply configurations defined in .network files, and , which uses iproute2 for low-level interface and route manipulations. Administrators should avoid mixing iproute2 with the deprecated net-tools package (e.g., , route), as net-tools lacks support for contemporary features and can lead to inconsistencies; iproute2 has been the recommended replacement since the early 2000s. To enable iproute2-dependent features like traffic control, configurations such as CONFIG_NET_SCH_HTB=m or CONFIG_NET_SCH_FQ=m must be set during compilation, ensuring the required scheduling disciplines are available as modules or built-in. Version alignment between iproute2 and the is essential for accessing recent enhancements, such as support in filters; for instance, iproute2 version 6.x is aligned with 6.x to fully utilize programs for programmable packet processing. In scripting environments, iproute2 commands provide structured error handling through exit codes—0 for success, 1 for syntax errors, and 2 for kernel-related failures—allowing scripts to detect and respond to issues like invalid arguments or unavailable resources. iproute2 operations typically require the CAP_NET_ADMIN capability for tasks involving interface configuration, modifications, and traffic control, which can be granted to non-root processes via tools like setcap to minimize risks. In containerized environments, iproute2 supports network namespace isolation used by and Podman, enabling per-container networking configurations through the ip netns command while maintaining host kernel compatibility.

References

  1. [1]
    networking:iproute2 [Wiki]
    Nov 4, 2023 · Iproute2 is a collection of utilities for controlling TCP / IP networking and traffic control in Linux. It is currently maintained by ...
  2. [2]
    Iproute2 Source Code Mirror - This is a publish-only repository ...
    This is a set of utilities for Linux networking. Information: https://wiki.linuxfoundation.org/networking/iproute2 Download: http://www.kernel.org/pub/linux ...
  3. [3]
    iproute2 - Gentoo Wiki
    iproute2 is a tool developed to unify network interface configuration, routing, and tunneling for Linux systems.Missing: components | Show results with:components
  4. [4]
    ip command from iproute2 - utilities for TCP/IP networking in Linux
    Dec 11, 2023 · The iproute2 contains the following command-line utilities: arpd , bridge , ctstat , devlink , ip , lnstat , nstat , rdma , routef , routel , ...
  5. [5]
    Stephen Hemminger: [ANNOUNCE] iproute2 6.13 release - LKML
    Jan 20, 2025 · This is regular release of iproute2 corresponding to the 6.13 kernel. Lots of little stuff, no big changes here. Happy new year. Download:
  6. [6]
    H.2. Some general remarks about iproute2 tools
    The iproute2 suite exposes all of the networking functionality of the linux kernel where the venerable tools (ifconfig, route) are hamstrung by history.Missing: capabilities | Show results with:capabilities<|control11|><|separator|>
  7. [7]
    Task-centered iproute2 user guide - Daniil Baturin
    Sep 17, 2025 · This document aims to provide a comprehensive but easy to use guide to the ip and bridge commands, and some information about ss.Overview of iproute2 · About this document · Contributing · Scripting considerations
  8. [8]
    a/net-tools
    To: linux-net@vger.kernel.org Subject: net-tools 1.58 is released Date: Sat, 10 Feb 2001 19:49:39 +0000 From: Philip Blundell <philb@gnu.org> Version 1.58 ...
  9. [9]
    What are the benefits of the iproute2 packages versus the older net ...
    Jun 14, 2024 · What are the benefits of the iproute2 packages versus the older net-tools package?Missing: advantages | Show results with:advantages
  10. [10]
    ip vs. ifconfig: Which do you use? - Red Hat
    Jan 27, 2023 · The ip command suite brings your tasks together into a unified interface. For instance, instead of using ifconfig and route, each with different syntax, you ...Missing: advantages | Show results with:advantages
  11. [11]
  12. [12]
    Introduction to Netlink - The Linux Kernel documentation
    One of the strengths of Netlink is the ability to send event notifications to user space. ... Netlink sockets are datagram sockets rather than stream sockets, ...Missing: iproute2 | Show results with:iproute2<|separator|>
  13. [13]
    IPROUTE2 Utility Suite Documentation - Policy Routing
    The IPROUTE2 utility suite, written by Alexey N. Kuznetsov, uses the 'ip' utility to manipulate Linux network interface code. It is a package of utilities.
  14. [14]
    Linux Advanced Routing & Traffic Control HOWTO
    It was written by Alexey Kuznetsov and Dave Miller, inspired by the work of the USAGI IPv6 group. With its merge, James Morris' CrypoAPI also became part of the ...
  15. [15]
    netlink(7) - Linux manual page - man7.org
    The socket interface to netlink first appeared Linux 2.2. Linux 2.0 supported a more primitive device-based netlink interface (which is still available as a ...
  16. [16]
    Why is net-tools deprecated ? Can I still use it without security issue?
    Nov 16, 2021 · net-tools is deprecated because it became outdated, a long time ago (its last release was in 2001, although distributions have been maintaining it since).
  17. [17]
    ss(8) — iproute2 — Debian testing
    Oct 3, 2025 · ss is used to dump socket statistics. It allows showing information similar to netstat. It can display more TCP and state information than other tools.Missing: 2007 | Show results with:2007
  18. [18]
    iproute2 - Debian Package Tracker
    [2025-10-09] iproute2 6.17.0-1 MIGRATED to testing (Debian testing watch); [2025-10-03] Accepted iproute2 6.17.0-1 (source) into unstable (Luca Boccassi) ...
  19. [19]
    Index of /pub/linux/utils/net/iproute2/ - The Linux Kernel Archives
    Nov 23, 2011 · iproute2-3.14.0.tar.gz 12-Apr-2014 01:00 568K iproute2-3.14.0.tar.sign 12-Apr-2014 01
  20. [20]
    iproute2 and libbpf: vendoring on the small scale - LWN.net
    Nov 12, 2020 · ... iproute2 and libbpf versions. Stephen Hemminger, who also maintains iproute2, seems unwilling to impose that sort of requirement, though. In ...
  21. [21]
    News: Deprecation of net-tools - Arch Linux
    Jun 8, 2011 · A new syntax is introduced in rc.conf for configuring a simple network setup using iproute2 rather than net-tools . The old functionality is ...Missing: adoption distributions stagnation<|control11|><|separator|>
  22. [22]
    ip(8) - Linux manual page - man7.org
    ip - show / manipulate routing, network devices, interfaces and tunnels. SYNOPSIS top ip [ OPTIONS ] OBJECT { COMMAND | help }
  23. [23]
    ss(8): another utility to investigate sockets - Linux man page
    ss is used to dump socket statistics. It allows showing information similar to netstat. It can display more TCP and state informations than other tools.Missing: iproute2 | Show results with:iproute2
  24. [24]
    ss command: Display Linux TCP / UDP Network/Socket Information
    Mar 1, 2024 · The ss command is used to show socket statistics. It can display stats for PACKET sockets, TCP sockets, UDP sockets, DCCP sockets, ...
  25. [25]
    tc(8) — iproute2 — Debian unstable
    Oct 3, 2025 · Tc is used to configure Traffic Control in the Linux kernel. Traffic Control consists of the following: When traffic is shaped, its rate of transmission is ...
  26. [26]
  27. [27]
  28. [28]
  29. [29]
    9.5. Classful Queueing Disciplines
    This is useful to perform both packet scheduling (with SFQ, for example) and rate control. You need this in cases where you have a high speed interface (for ...
  30. [30]
  31. [31]
  32. [32]
  33. [33]
    TC - Linux Advanced Routing & Traffic Control
    HTB facilitates guaranteeing bandwidth to classes, while also allowing specification of upper limits to inter-class sharing. It contains shaping elements, based ...
  34. [34]
    rtacct(8) - Linux manual page - man7.org
    COLOPHON top. This page is part of the iproute2 (utilities for controlling TCP/IP networking and traffic) project. Information about the project can be found ...
  35. [35]
    rtmon(8) - Linux manual page - man7.org
    This manual page documents briefly the rtmon command. rtmon listens on netlink socket and monitors routing table changes.Missing: tool | Show results with:tool
  36. [36]
  37. [37]
    ss(8) - Linux manual page - man7.org
    ss is used to dump socket statistics. It allows showing information similar to netstat. It can display more TCP and state information than other tools.
  38. [38]
    Policy Routing
    Every rule is supplied with its own gateway, device info. record. This approach is not appropriate for automated route maintenance, but it is ideal for manual ...Missing: iproute2 | Show results with:iproute2
  39. [39]
    ip-rule(8) — iproute2 — Debian testing
    Aug 10, 2025 · Each policy routing rule consists of a selector and an action predicate. The RPDB is scanned in order of decreasing priority (note that a lower ...Missing: documentation | Show results with:documentation<|control11|><|separator|>
  40. [40]
    ip-tunnel(8) — iproute2 — Debian buster
    Dec 3, 2020 · Available modes depend on the encapsulating address family. Modes for IPv4 encapsulation available: ipip, sit, isatap, vti, and gre. Modes for ...Missing: documentation | Show results with:documentation
  41. [41]
    Tunnels, Routes and Rules: They're Easier with iproute2
    it only permits one-to-one address mapping. But if your needs are very ...Missing: neighbors bridges QoS
  42. [42]
    bridge(8) — iproute2 — Debian unstable
    Oct 3, 2025 · Show / manipulate bridge addresses and devices. SYNOPSIS bridge [ OPTIONS ] OBJECT { COMMAND | help } OBJECT := { link | fdb | mdb | vlan | vni | monitor }
  43. [43]
    [PDF] Next-generation Secure Kernel Network Tunnel - WireGuard
    WireGuard presents a normal network interface: # ip link add wg0 type wireguard. # ip address add 192.168.3.2/24 dev wg0. # ip route add default via wg0.Missing: tunneling x<|control11|><|separator|>
  44. [44]
  45. [45]
    How To Use IPRoute2 Tools to Manage Network Configuration on a ...
    Mar 12, 2014 · In this guide, we will discuss how to use the iproute2 tools to configure, manipulate, and gather information about your network.Missing: components | Show results with:components
  46. [46]
  47. [47]
    [PDF] ip COMMAND CHEAT SHEET
    Add a default route (for all addresses) via the local gateway. 192.168.1.1 that can be reached on device em1 ip route add 192.168.1.0/24 via 192.168.1.1.
  48. [48]
  49. [49]
  50. [50]
    Introduction to iproute2 - The Linux Documentation Project
    Chapter 3. Introduction to iproute2. Table of Contents; 3.1. Why iproute2? 3.2. iproute2 tour; 3.3. Prerequisites; 3.4. Exploring your current configuration.
  51. [51]
  52. [52]
  53. [53]
    iproute2 4.15 release - LWN.net
    Jan 29, 2018 · ... iproute2 utility to support new features in Linux 4.15. This release ands more JSON output and fixes some bugs that JSON code introduced.
  54. [54]
    tc-htb(8) - Linux manual page - man7.org
    HTB allows control of the outbound bandwidth on a given link. It allows simulating several slower links and to send different kinds of traffic on different ...Missing: module | Show results with:module
  55. [55]
    systemd-networkd - ArchWiki
    Oct 23, 2025 · The networkd-dispatcherAUR daemon allows executing scripts in response to network interface state changes, similar to NetworkManager-dispatcher.
  56. [56]
    Moving on from net-tools - LWN.net
    Jan 4, 2017 · Net-tools is obsolete; iproute2 is the modern replacement. Net-tools output changes broke scripts, and some users are reluctant to move on.Missing: adoption stagnation
  57. [57]
    config_net_sched - kernelconfig.io
    CONFIG_NET_SCHED enables QoS and fair queueing, allowing the kernel to choose which packets to send first, delay, or drop, using different algorithms.Missing: CONFIG_NET_SCH | Show results with:CONFIG_NET_SCH
  58. [58]
    iproute2 6.7.0 release - LWN.net
    Jan 8, 2024 · Update release of iproute2 corresponding to the 6.7 kernel. Most of the changes in this release are in bridge and rdma tools.
  59. [59]
    capabilities(7) - Linux manual page - man7.org
    CAP_NET_ADMIN Perform various network-related operations: • interface configuration; • administration of IP firewall, masquerading, and accounting; • modify ...
  60. [60]
    net ns:/run/netns/xxx · Issue #2154 · containers/podman - GitHub
    Jan 14, 2019 · iproute2 mounts network configuration files in network namespaces to isolate the network configuration. For example, it will mount /etc/netns/ ...