The `ip` Command in Linux: An In-Depth Guide
The ip
command is a powerful tool in Linux for network configuration and
troubleshooting. Part of the iproute2
package, it replaces traditional tools
like ifconfig
and route
, providing a unified interface to handle various
network-related tasks.
Basics of the ip
Command
The ip
command allows users to manage and view routing tables, devices, IP
addresses, and more.
General Syntax:
ip [OPTIONS] OBJECT [COMMAND]
Where OBJECT
may be one of: address, link, route, neigh, etc., and COMMAND
is a specific operation related to the object, like add
, del
, show
, and so
on.
Using the ip
Command and Combining Options
View All Network Interfaces:
ip link show
This will list all network interfaces on the machine, both active and inactive.
Assigning an IP Address to an Interface:
sudo ip addr add 192.168.1.10/24 dev eth0
This command assigns the IP address 192.168.1.10
with a netmask
of 255.255.255.0
to the eth0
interface.
Removing an IP Address from an Interface:
sudo ip addr del 192.168.1.10/24 dev eth0
Listing Routing Table:
ip route show
Sample ip
Output and Reading It
Sample output of ip link show
:
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
link/ether b8:ae:ed:7f:80:00 brd ff:ff:ff:ff:ff:ff
Reading the Output:
Each block of information relates to a single interface.
lo
is the loopback interface. It's a virtual network interface primarily used by the localhost. It's a virtual interface that the system used to 'talk to itself'eth0
usually represents the first Ethernet interface on the machine.<LOOPBACK,UP,LOWER_UP>
are the state and attributes of the interface.UP
means the interface is running, whileLOOPBACK
indicates it's a loopback interface.The
link/loopback
orlink/ether
line tells you about the type of link and its MAC address.
Other Flags For A Network Interface
If the network interface is not running, the Linux operating system might display several different flags or states. Here are some common ones:
DOWN: This indicates that the interface is not active or operational.
UNKNOWN: The state of the interface could not be determined. This sometimes happens with certain drivers or virtual interfaces.
NO-CARRIER: The interface is up, but there's no link or carrier signal. This typically means that the physical layer (e.g., the cable) has a problem or isn't connected.
DORMANT: The interface is waiting for an external event to become fully operational.
ERROR: An error occurred with the interface.
NOTRAILERS: The interface doesn't use trailer encapsulation (largely historical and not commonly seen today).
PROMISC: The interface is in promiscuous mode, meaning it can capture all packets regardless of their destination.
LOWER_DOWN: Indicates that the lower layer (typically physical link) is down.
NODHCP: This is not a standard Linux flag but might appear in certain contexts to show that the interface is not configured using DHCP.
MASTER/SLAVE: These are used in bonding to represent the status of bonded interfaces.
Remember, the exact flags and their meanings can vary a bit between different
versions of the Linux kernel and distributions. The ip link
or ifconfig
commands will show the state flags for an interface. Always refer to the man
pages (man ip
or man ifconfig
) or other authoritative documentation for your
specific environment to get detailed and accurate information.
Key ip
Options
Option | Shorthand | Description |
---|---|---|
address | a | Display or modify IP addresses on interfaces. |
link | l | Manage and display the state of all network interfaces. |
route | r | Display or modify the routing table. |
neighbor | n | Display or modify the ARP table (similar to ARP command). |
--statistics | -s | Display more detailed information. |
--help | -h | Display help information. |
Conclusion
The ip
command is a multifaceted tool with a wide range of capabilities for
network configuration and diagnostics. With the deprecation of older tools
like ifconfig
, the modern Linux administrator or user will find ip
indispensable. As always, careful understanding of its options and reading its
outputs are vital for effective network management.
What Can You Do Next 🙏😊
If you liked the article, consider subscribing to Cloudaffle, my YouTube Channel, where I keep posting in-depth tutorials and all edutainment stuff for software developers.