Determine the current TCP/IP settings on a system
Author: Alex Nikiforov nikiforov.al@gmail.com FreeBSD
Reviewer: Sean Swayze swayze@pcsage.biz FreeBSD
Reviewer: Yannick Cadin yannick@diablotin.fr FreeBSD/OpenBSD
Concept
Be able to determine a system's IP address(es), subnet mask, default gateway, primary and secondary DNS servers and hostname.
Introduction
If you are a BSD user/administrator you must understand where and how you can get any information about a system such as its network settings. What interesting information about a network can we get from the system? We can obtain its IP address, default gateway, the DNS server, the MAC address of any network interface on the system and other relevant information related to networking.
TODO: show "hostname" tool
TODO: some BSDs have "route show" or "route get" ...
Examples
Let's start from IP address and MAC address. We can get this kind of information from ifconfig -a command. For example
wi0: flags=8802 <BROADCAST,SIMPLEX,MULTICAST> mtu 1500
ether 00:05:3c:08:8f:7e
media: IEEE 802.11 Wireless Ethernet autoselect (none)
status: no carrier
ssid "" channel 1
stationname "FreeBSD WaveLAN/IEEE node"
authmode OPEN privacy OFF txpowmax 100 bmiss 7
fxp0: flags=8843 <UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
options=8
inet 192.168.1.162 netmask 0xffffff00 broadcast 192.168.1.255
ether 00:09:6b:13:42:9f
media: Ethernet autoselect (100baseTX <full-duplex>)
status: active
lo0: flags=8049 <UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384
inet6 ::1 prefixlen 128
inet 127.0.0.1 netmask 0xff000000
As we can see the fxp0 interface has IP 192.168.1.162/24 (/24 means that the network mask is 255.255.255.0 - ffffff00), broadcast address 192.168.1.255, MAC address 00:09:6b:13:42:9f and 100baseTX full-duplex connection to the switch. Also the system has a wifi interface wi0 and also lo0 - the loopback interface.
Next step is to determine the DNS servers and default route.
#netstat -rn
Routing tables
Internet:
Destination Gateway Flags Refs Use Netif Expire
default 192.168.1.1 UGS 0 919 fxp0
127.0.0.1 127.0.0.1 UH 0 0 lo0
192.168.1 link#2 UC 0 0 fxp0
192.168.1.1 00:13:46:56:cf:15 UHLW 2 0 fxp0 1178
That means that the default gateway IP is 192.168.1.1.
> cat /etc/resolv.conf
nameserver 192.168.1.1
nameserver 10.2.2.1
>
resolv.conf has IP addresses of DNS server. For this example the system will first try to resolve DNS name with 192.168.1.1, secondly with 10.2.2.1(The system will really try to resolve DNS name with hosts file, if the name is not in the hosts file system (hosts.conf) try to resolve it with a DNS server). You can edit resolv.conf on the fly.
Some times system have some static route for hosts on the network. For save this you can use rc.conf file. And you can update routes on the fly. For example, if you need change default route. Let's try changing the default route:
# route flush
default 192.168.1.1 done
# route add 0.0.0.0 192.168.1.1
add net 0.0.0.0: gateway 192.168.1.1
#
Route flush means that you want flush all routes on your system, instead of this you can use the route delete command (look at the manual for your system). route add 0.0.0.0 means that you want add route for 0.0.0.0 network - all networks(also you can do it like that route add default 192.168.1.1) and 192.168.1.1 it's IP for your default router.
Practice Exercises
- Try to access your DNS-servers.
- List the IP addresses of each interface, the default router, list the DNS servers.
- Log into your system and verify that the DNS servers correspond to that of your ISP or your own.
- Log into your system and verify that you have a valid, IP address and default gateway.
More information
ifconfig(8), netstat(1), resolv.conf(5), route(8), hostname(1)