Ifconfig Vs Ip

Download as pdf or txt
Download as pdf or txt
You are on page 1of 11

ifconfig vs ip

What’s Difference and Comparing Network


Linux based distributions have featured set of commands which provide
way to configure networking in easy and powerful way through
command-line. These set of commands are available from ​net-tools
package which has been there for a long time on almost all distributions,
and includes commands like: ​
ifconfig​, ​route​, ​nameif​, ​iwconfig​, ​iptunnel​,
netstat​, ​arp​.

Ifconfig Vs IP Command

These commands are just about sufficient in configuring the network in a


way any novice or an expert Linux user would want, but due to
advancement in Linux kernel over past years and unmaintainable of this
packaged set of commands, they are getting deprecated and a more
powerful alternative which has ability to replace all of these commands is
emerging.

This alternative has also been there for quite some time now and is much
more powerful than any of these commands. Rest of sections would
highlight this alternative and compare it with one of the command from
net-tools package i.e. ​ifconfig​.

ip – A Replacement for ifconfig


ifconfig​has been there for a long time and is still used to configure, display
and control network interfaces by many, but a new alternative now exists
on Linux distributions which is much more powerful than it. This alternative
is ​ip​command from ​iproute2util​package.

Although this command might seem a bit complex at first site but it is much
broader in functionality than ​ifconfig​. It is functionally organized on two
layers of Networking Stack i.e. ​Layer 2​(​Link Layer​), ​Layer 3​(​IP Layer​) and
does the work of all the above mentioned commands from net-tools
package.

While ​ifconfig​mostly displays or modifies the interfaces of a system, this


command is capable of doing following tasks:

1. Displaying or Modifying Interface properties.


2. Adding, Removing ARP Cache entries along creating new Static
ARP entry for a host.
3. Displaying MAC addresses associated with all the interfaces.
4. Displaying and modifying kernel routing tables.
One of the main highlight which separates it from its ancient counterpart
ifconfig​is that latter uses ​ioctl​for network configuration, which is a less
appreciated way of interaction with kernel while former takes advantage of
netlink socket mechanism for the same which is a much more flexible
successor of ioctl for inter-communication between kernel and user space
using rtnetlink (which adds networking environment manipulation
capability).

We can now begin to highlight the features of ​ifconfig​and how they are
effectively replaced by ​ip​command.

ip vs ifconfig Commands
Following section highlights some of ​ifconfig​commands and their
replacement using ​ip​commands:

1. Displaying all Network Interfaces in Linux


Here, one distinguishing feature between ​ip​and ​ifconfig​is that whereas
ifconfig only shows enabled interfaces, ip shows all the interfaces whether
enabled or disabled.

ifconfig Command

$ ifconfig
ifconfig: Check IP Address

ip Command

$ ip a
ip: Check IP Address

2. Adding or Deleting an IP Address in Linux


The below command assigns the IP address ​192.168.80.174​to the
interface ​
eth0​.

ifconfig – Add/Del IP Address

# ifconfig eth0 add 192.168.80.174

Syntax for adding/removing an interface using ifconfig command:

# ifconfig eth0 add 192.168.80.174


# ifconfig eth0 del 192.168.80.174

ip – Add/Del IP Address

# ip a add 192.168.80.174 dev eth0

Syntax for adding/removing an interface using ip command:

# ip a add 192.168.80.174 dev eth0


# ip a del 192.168.80.174 dev eth0
4. Add MAC Hardware Address to Network
Interface
The below command sets the hardware address for the interface ​eth0​to
the value specified in the command. This can be verified by checking the
HWaddr​value in the output of ​
ifconfig​command.

ifconfig – Add MAC Address

Here, the syntax for adding MAC address using ifconfig command:

# ifconfig eth0 hw ether 00:0c:29:33:4e:aa

ip – Add MAC Address

Here, the syntax for adding MAC address using ip command:

# ip link set dev eth0 address 00:0c:29:33:4e:aa

4. Setting Other Configurations of Network Interface


Apart from setting IP address or Hardware address, other configurations
that can be applied to an interface include:
1. MTU (Maximum Transfer Unit)
2. Multicast flag
3. Transmit Queue length
4. Promiscuous mode
5. Enable or disable all multicast mode

ifconfig – Other Network Configurations

ip – Other Network Configurations

a. Set MTU value to 2000.

# ifconfig eth0 mtu 2000

# ip link set dev eth0 mtu 2000

b. Enable or Disable multicast flag.

# ifconfig eth0 multicast

# ip link set dev eth0 multicast on


c. Setting the transmit queue length.

# ifconfig eth0 txqueuelen 1200

# ip link set dev eth0 txqueuelen 1200

d. Enabling or disabling promiscuous mode.

# ifconfig eth0 promisc

# ip link set dev eth0 promisc on

e. Enable or disable all multicast mode.

# ifconfig eth0 allmulti

# ip link set dev eth0 allmulti on


5. Enabling or Disabling Network Interface
The below commands enable or disable specific network interface.

ifconfig – Disable/Enable Network Interface

The below command disables the interface ​eth0​and it is verified by output


of ​ifconfig​which by default shows only those interfaces which are up.

# ifconfig eth0 down

To re-enable the interface, just replace ​down​by ​up​.

# ifconfig eth0 up

ip – Disable/Enable Network Interface

The below ​ip​command is alternative for ifconfig to disable a specific


interface. This can be verified by the output of ​'ip a'​command which
shows all the interfaces by default, either up or down, but highlights their
status along with the description.

# ip link set eth0 down


To re-enable the interface, just replace ​down​with ​up​.

# ip link set eth0 up

6. Enable or disable the use of ARP protocol


The below commands enable or disable ARP protocol on specific network
interface.

ifconfig – Enable/Disable ARP Protocol

The command enables ARP protocol to be used with interface ​eth0​. To


disable this option, just replace arp with ​-arp​.

# ifconfig eth0 arp

ip – Enable/Disable ARP Protocol

This command is the ip alternative to enable ARP for the interface eth0. To
disable, just replace ​on​with ​off​.

# ip link set dev eth0 arp on


Conclusion
Thus, we have highlighted features of ​ifconfig​command and how they can
be done using ​ip​command. Currently, Linux distributions provides a user
with both the commands so that he can use according to his convenience.
So, which command is convenient according to you which you would prefer
to use? Do mention this in your comments.

If you want to learn more about these two commands, then you should go
through our previous articles that shows some practical examples of
ifconfig and ip command in more detailed fashion.

You might also like