The following post is an attempt at covering Linux Network Configuration end-to-end to a “bit better than reasonable level”. The brevity of the post is by design since it is the sort of post that is mostly referred to as a reference or quick lookup guide to remind me, and others, of the name of that file, or that command that does…
As much as I love UNIX and Linux, since everything is a command or a file, the downside of that is the requirement of the knowledge up front to a certain extent (largely alleviated by Google these days) and in terms of the command line, is not that intuitive, even with the help of man pages.
Sometimes you just need to look something up that you know you’ve done before, but it was a few months ago or a year or two ago and you just need that post to point you back in the right direction.
You can configure a NIC on the fly with
ifconfig eth0 ip-address netmask subnet-mask
The permanent configuration that will be read at boot time or when the /etc/init.d/network restart occurs is held in /etc/sysconfig/network-scripts/ifcfg-eth0 etc
If you need to write a config file from scratch, use this as a template/guide
When you’re done, restart networking
and check they all come up. If not, recheck the ifcfg-eth files in /etc/sysconfig/network-scripts, paying attention to the ONBOOT=yes line.
To test which of your physical nics corresponds to the linux os network device, disconnect a cable and use
paying attention to the bottom line which reads “link detected – YES” or “link detected – NO”
If there is a PCI NIC in the system, RHEL may assign it’s ports eth0 and eth1 taking priority over the embedded nics on the system board. This is generally not an expected behaviour if you’re new to it.
check all network configurations with
ifconfig -a | less
check the DNS addresses are populated in /etc/resolv.conf and perform an nslookup to verify network connectivity as ping packets are often dropped by firewalls.
Setting a default gateway
You can configure a default gateway in /etc/sysconfig/network
e.g. Add the line
Speed and Duplex setting can be viewed using
dmesg | grep -i duplex
Display all active TCP ports along with process ID and name using the port
Display routing table in numeric form
netstat -r -nr
Display all netstat statistics
List open files that are network related
MAC Address to Device listing
Look for connected interfaces “link detected -yes”
Display run levels where networking starts
chkconfig network –list
Display network status
/etc/init.d/network status or /sbin/service/network status
Display all network device configuration
Useful files where networking configuration is stored
/etc/hosts -will overrride other forms of name resolution contained in /etc/nsswitch.conf
/etc/resolv.conf -contains the IP addresses of DNS servers used for name resolution in TCP/IP networks.
/etc/nsswitch.conf -controls the order that names are resolved to IP addresses, i.e. files, nis, dns
Display interfaces and metrics
Create an SSH tunnel of port 2381 (hpsmh) on remote host to local port (use 1025 up)
ssh -f username@ip_address -L 1025:ip_address:2381 -N
i.e. browsing to http://localhost:1025 is the same as http://remotehost:2381
Troubleshooting a NIC
Below is an example of a busy backup network interface on a backup server. Note how its dropping packets etc.
eth4 Link encap:Ethernet HWaddr 10:1F:74:8B:8F:8X
UP BROADCAST RUNNING SLAVE MULTICAST MTU:1500 Metric:1
RX packets:22053199483 errors:40041 dropped:18775 overruns:46 frame:0
TX packets:8811133044 errors:0 dropped:0 overruns:0 carrier:0
RX bytes:31314447740529 (28.4 TiB) TX bytes:6356693939792 (5.7 TiB)
Possible Causes of Ethernet Errors
Collisions: Signifies when the NIC card detects itself and another server on the LAN attempting data transmissions at the same time. Collisions can be expected as a normal part of Ethernet operation and are typically below 0.1% of all frames sent. Higher error rates are likely to be caused by faulty NIC cards or poorly terminated cables.
Single Collisions: The Ethernet frame went through after only one collision
Multiple Collisions: The NIC had to attempt multiple times before successfully sending the frame due to collisions.
CRC Errors: Frames were sent but were corrupted in transit. The presence of CRC errors, but not many collisions usually is an indication of electrical noise. Make sure that you are using the correct type of cable, that the cabling is undamaged and that the connectors are securely fastened.
Frame Errors: An incorrect CRC and a non-integer number of bytes are received. This is usually the result of collisions or a bad Ethernet device.
FIFO and Overrun Errors: The number of times that the NIC was unable of handing data to its memory buffers because the data rate the capabilities of the hardware. This is usually a sign of excessive traffic.
Length Errors: The received frame length was less than or exceeded the Ethernet standard. This is most frequently due to incompatible duplex settings.
Carrier Errors: Errors are caused by the NIC card losing its link connection to the hub or switch. Check for faulty cabling or faulty interfaces on the NIC and networking equipment.