Obsolete tools: nslookup & ifconfig
nslookup
and ifconfig
are two well-known tools for configuration the network of Unix/Linux hosts and checking whether DNS is working properly.
ifconfig
was part of the 4.2BSD distribution in 1983 for the first time and quickly became the standard tool for network configuration - even commerical Unices like Solaris or HP-UX integrated the utility.
Some Linux distributions don't use ifconfig
anymore (e.g. ArchLinux) - other distributions (e.g. SuSE/SLES and Fedora) are advising that this tool will be missing someday:
1# man ifconfig
2...
3 WARNING: Ifconfig is obsolete on system with Linux kernel newer than
4 2.0. On this system you should use ip. See the ip manual page for
5 details
6...
7NOTE
8 This program is obsolete! For replacement check ip addr and ip link.
9 For statistics use ip -s link.
Solaris 11 introduced a new command for network configuration: ipadm
(thanks for the hint, Prometheus!).
ip
works beginning with Linux 2.2. It is more modern and also includes amongst others the functionality of the route
and arp
utilities.
Here are some of the most used ifconfig
/route
commands and their ip
pendants:
Task | ifconfig/route | ip |
Show all NICs | ifconfig | ip addr show |
Show specific NIC | ifconfig eth0 | ip addr show eth0 |
Disable NIC | ifconfig eth0 down | ip link set eth0 down |
Enable NIC | ifconfig eth0 up | ip link set eth0 up |
Assign IP | ifconfig eth0 [IP] netmask [NM] | ip addr [IP]/[CIDR] dev eth0 |
Show routing table | route netstat -r | ip route |
Set standard route | route add default gw [IP] eth0 | ip route add default via [IP] |
Of course ip
has a lot of more features - just a few of them:
- Enable/disable MTU and Promiscuous Mode
- Configure Multicasting and VLANs
- ARP table maintenance
Similar to ifconfig - nslookup
is also obsolete for a long time. There are two replacement tools that are able to do more: host
and dig
. The open DNS server bind
advises not to use nslookup
(source):
Due to its arcane user interface and frequently inconsistent behavior, we do not recommend the use of nslookup. Use dig instead.
Here are some commonly used nslookup
commands and their dig
pendants.
Task | nslookup | dig |
Forward lookup | nslookup google.de | dig google.de dig +short google.de |
Reverse lookup | nslookup [IP] | dig -x [IP] dig +short -x [IP] |
Use specific DNS server | nslookup google.de [DNS] | dig @[DNS] google.de dig @[DNS] +short google.de |
Ask for MX records | nslookup -query=mx google.de | dig google.de MX dig +short google.de MX |
Specific timeout | nslookup -timeout=42 google.de | dig google.de +time=42 dig +short google.de +time=42 |
The option +short
ist really useful if you just want to get a IP or a hostname. By default, dig
also prints some additional information like the IP and response time of the used DNS sever:
1; <<>> DiG 9.9.2-P2 <<>> google.de
2;; global options: +cmd
3;; Got answer:
4;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 33883
5;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 1
6
7;; OPT PSEUDOSECTION:
8; EDNS: version: 0, flags:; udp: 16384
9;; QUESTION SECTION:
10;google.de. IN A
11
12;; ANSWER SECTION:
13google.de. 300 IN A 173.194.44.56
14google.de. 300 IN A 173.194.44.55
15google.de. 300 IN A 173.194.44.63
16
17;; Query time: 66 msec
18;; SERVER: 208.67.222.222#53(208.67.222.222)
19;; WHEN: Sun Apr 7 17:18:22 2013
20;; MSG SIZE rcvd: 86
21
22# dig +short google.de
23173.194.44.55
24173.194.44.56
25173.194.44.63
It's also a good idea to have a look at the manpage of dig
because it offers a lot of additional features in addition to the mentioned functions. 🙂