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.
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 thanifconfig. 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:
- Displaying or Modifying Interface properties.
- Adding, Removing ARP Cache entries along creating new Static ARP entry for a host.
- Displaying MAC addresses associated with all the interfaces.
- 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
ip Command
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
Syntax for adding/removing an interface using ifconfig command:
ip – Add/Del IP Address
Syntax for adding/removing an interface using ip command:
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:
ip – Add MAC Address
Here, the syntax for adding MAC address using ip command:
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:
- MTU (Maximum Transfer Unit)
- Multicast flag
- Transmit Queue length
- Promiscuous mode
- Enable or disable all multicast mode
ifconfig – Other Network Configurations
ip – Other Network Configurations
a. Set MTU value to 2000.
b. Enable or Disable multicast flag.
c. Setting the transmit queue length.
d. Enabling or disabling promiscuous mode.
e. Enable or disable all multicast mode.
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.
To re-enable the interface, just replace down by 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.
To re-enable the interface, just replace down with 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
.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.
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.
fuente: http://www.tecmint.com/ifconfig-vs-ip-command-comparing-network-configuration/
0 comentarios:
Publicar un comentario