CompTIA Certifications

CompTIA Network+ 2009 Domain 5: Network Tools

ipconfig and ifconfig Utilities

As a network administrator, you will spend a great deal of your time setting up and configuring network devices. Though dynamic addressing has made configuring PCs much easier, you will still spend a lot of time configuring servers and other devices that need manual configuration. Some of your time will be spent configuring the hardware portions of the network, but most of your time will be spent in software consoles or at the command line setting up the networking devices to work properly on your network.

A utility you will use frequently is one which configures the TCP/IP networking portion of the computers and servers you work with. ipconfig (for Windows) and ifconfig (for Unix-like systems) are two utilities you will use frequently. On Windows systems, ipconfig is used to display information about your TCP/IP configuration. On Unix-like systems, you can use ifconfig (which stands for “interface configuration” if you’re wondering why it’s different) for this function and to also configure the TCP/IP networking settings.

Using ipconfig on Windows Systems

Windows operating system based computers use a command line interface tool called ipconfig to display the ip configuration of the computer. Actually configuring the IP address of the system is performed using a GUI tool in the Control Panel. If you open a command prompt and enter ipconfig /?, you will see the usage of the command:

C:\>ipconfig /?
USAGE:
ipconfig [/? | /all | /renew [adapter] | /release [adapter] |
/flushdns | /displaydns | /registerdns |
/showclassid adapter |
/setclassid adapter [classid] ]
where
adapter         Connection name
(wildcard characters * and ? allowed, see examples)
Options:
/?           Display this help message
/all         Display full configuration information.
/release     Release the IP address for the specified adapter.
/renew       Renew the IP address for the specified adapter.
/flushdns    Purges the DNS Resolver cache.
/registerdns Refreshes all DHCP leases and re-registers DNS names
/displaydns  Display the contents of the DNS Resolver Cache.
/showclassid Displays all the dhcp class IDs allowed for adapter.
/setclassid  Modifies the dhcp class id.
The default is to display only the IP address, subnet mask and
default gateway for each adapter bound to TCP/IP.
For Release and Renew, if no adapter name is specified, then the IP address
leases for all adapters bound to TCP/IP will be released or renewed.
For Setclassid, if no ClassId is specified, then the ClassId is removed.
Examples:
> ipconfig                   ... Show information.
> ipconfig /all              ... Show detailed information
> ipconfig /renew            ... renew all adapters
> ipconfig /renew EL*        ... renew any connection that has its name starting with EL
> ipconfig /release *Con*    ... release all matching connections,
eg. "Local Area Connection 1" or "Local Area Connection 2"

Type in ipconfig to view the IP configuration of the machine you are using. For example, here’s how ipconfig looks on our machine:

You will also frequently use the command ipconfig /renew on Windows based machines with DHCP (dynamic IP addressing) to find a new address if you’re having problems. If you’d like to see a little more information about the machine you’re using, type in ipconfig /all:

You can use this command to find out a lot of great information about your TCP/IP configuration and your network device – including that elusive Physical Address, aka the MAC address. Each MAC (Media Access Control) address is unique for every networking device on the planet.

Using ifconfig Utility on Unix-Like Systems

On Unix-like systems, aka Unix, Linux, Mac OS X, you will use ifconfig to perform the same (and more!) functions as ipconfig. The if in ifconfig stands for interface. Running ifconfig on a Linux system produces this result:

There is a lot of information displayed with ifconfig. Each ethernet access device has an entry with the bottom one being a local loopback, aka 127.0.0.1 aka localhost, used for testing among other things. You also have a number of options available with ifconfig that you cannot do with ipconfig. If you use Linux or Unix a lot, you should really spend some time getting to know ifconfig. If you type man ifconfig at the console, you can see the manual page for ifconfig, something like this:

ifconfig

Interface configurator – display your ip address, network interfaces, transferred and received data information, configure a network interface.

Syntax
      ifconfig [interface]

      ifconfig interface [aftype] options | address ...

Options
   interface    The name of the interface.
                Usually a driver name followed by a unit number, eth0 = 1st Ethernet interface.

   up           This flag causes the interface to be activated.
                It is implicitly specified if an address is assigned to the interface.

   down         This flag causes the driver for this interface to be shut down.

   [-]arp       Enable or disable the use of the ARP protocol on this interface.

   [-]promisc   Enable or disable the promiscuous mode of the interface.
                If selected, all packets on the network will be received by the interface.

   [-]allmulti  Enable or disable all-multicast mode.
                If selected, all multicast packets on the network will be received by the interface.

   metric N     Set the interface metric.

   mtu N        Set the Maximum Transfer Unit (MTU) of an interface.

   dstaddr addr    Set the remote IP address for a point-to-point (PPP)link (obsolete; use pointopoint instead)

   netmask addr    Set the IP network mask for this interface.
                   This value defaults to the usual class A, B or C network mask
                   (as derived from the interface IP address), but it can be set to any value.

   add addr/prefixlen    Add an IPv6 address to an interface.

   del addr/prefixlen    Remove an IPv6 address from an interface.

   tunnel aa.bb.cc.dd    Create a new SIT (IPv6-in-IPv4) device, tunnelling to the given destination.

   irq addr         Set the interrupt line used by this device.
                    Not all devices can dynamically change their IRQ setting.

   io_addr addr    Set the start address in I/O space for this device.

   mem_start addr  Set the start address for shared memory used by this device.
                   Only a few devices need this.

   media type      Set the physical port or medium type to be used by the device.
                   Not all devices can change this setting, and those that can vary
                   in what values they support. Typical values for type are 10base2 (thin Ethernet),
                   10baseT (twisted-pair 10Mbps Ethernet), AUI (external transceiver) and so on.
                   The special medium type of auto can be used to tell the driver to auto-sense the
                   media. Again, not all drivers can do this.

   [-]broadcast [addr]    If the address argument is given, set the protocol broadcast address
                          for this interface. Otherwise, set (or clear) the IFF_BROADCAST flag for
                          the interface.

   [-]pointopoint [addr]  This keyword enables the point-to-point mode of an interface,meaning that
                          it is a direct link between two machines with nobody else listening on it.
                          If the address argument is also given, set the protocol address of the other
                          side of the link, just like the obsolete dstaddr keyword does.
                          Otherwise, set or clear the IFF_POINTOPOINT flag for the interface.

   hw class address    Set the hardware address of this interface, if the device driver supports
                       this operation. The keyword must be followed by the name of the hardware class
                       and the printable ASCII equivalent of the hardware address. Hardware classes
                       currently supported include ether (Ethernet), ax25 (AMPR AX.25), ARCnet and
                       netrom (AMPR NET/ROM).

   multicast           Set the multicast flag on the interface. Not normally be needed as
                       the drivers set the flag correctly themselves.

   address             The IP address to be assigned to this interface.

   txqueuelen length   Set the length of the transmit queue of the device.
                       It is useful to set this to small values for slower devices with a high
                       latency (modem links, ISDN) to prevent fast bulk transfers from disturbing
                       interactive traffic like telnet too much.

ifconfig is used at boot time to set up interfaces as necessary. After that, it is usually only needed when debugging or when system tuning is needed.

If no arguments are given, ifconfig displays the status of the currently active interfaces. If a single interface argument is given, it displays the status of the given interface only; if a single -a argument is given, it displays the status of all interfaces, even those that are down. Otherwise, it configures an interface.

If the first argument after the interface name is recognized as the name of a supported address family, that address family is used for decoding and displaying all protocol addresses. Currently supported address families include inet (TCP/IP, default), inet6 (IPv6), ax25 (AMPR Packet Radio), ddp (Appletalk Phase 2), ipx (Novell IPX) and netrom (AMPR Packet radio).

All numbers supplied as parts in IPv4 dotted decimal notation may be decimal, octal, or hexadecimal, as specified in the ISO C standard (that is, a leading 0x or 0X implies hexadecimal; otherwise, a leading ‘0’ implies octal; otherwise, the number is interpreted as decimal). Use of hexamedial and octal numbers is not RFC-compliant and therefore its use is discouraged and may go away.

ifconfig is a very powerful networking utility which provides a tremendous amount of troubleshooting information.

On the Network+ Exam

On the Network+ exam, you will need to understand the primary uses for ipconfig and ifconfig. On Windows systems, ipconfig is used primarily to determine what the user’s IP address is. On Unix, Linux, and Mac OS X systems, you can also use ifconfig to configure the actual network interface card.