(IPV4) Zero-conf enables two systems (such as laptops) to be connected via a crossover Ethernet cable and communicate to each other using IP without additional manual configuration - Zero Configuration Networking.

On larger scale networks, with more than two hosts, MDNS (Multicast DNS) provides name-to-address translation and other DNS-like operations in the absence of a conventional DNS server. I disable this service.

The purpose of Zero Configuration Networking is not solely to make current personal computer networking easier to use. The long-term goal is to enable the creation of entirely new kinds of networked products which would negate the inconvenience and support costs involved in setting up, configuring and maintaining a network to allow them to operate thus making the products commercially viable.

ifconfig [-v] [-a] [-s] [interface]
ifconfig interface [address [parameters]]
Options:
-a Display all interfaces which are currently available,
even if down
-s Display a short list (like netstat -i)
-v More verbose for some error conditions
Parameters:
up
down
[-]arp Enable or disable ARP on this interface.
[-]promisc Enable or disable promiscuous mode of the interface.
[-]allmulti Enable or disable all-multicast mode.
[-]broadcast [addr] If the address argument is given, set the protocol
broadcast addr. Else set/clear
[-]pointopoint [addr] If addr argument is also given => destination address
metric N Set the interface metric.
mtu N Set the Maximum Transfer Unit
netmask addr Set the IP network mask for this interface.
hw class address Set mac address
multicast Set the multicast flag on the interface.
address Set IP address to be assigned to this interface.
txqueuelen length Set the length of the transmit queue of the device.
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 SIT (IPv6-in-IPv4) device, tunnel to the
given destination.

When an interface is taken down all routes associated with it are removed, these routes clearly need to be added when the interface is back up.

On RedHat, these two scripts, available at boot, handle all configuration to get an interface and its routes up and running.

On Debian the names vary and a more modular approach is taken - /etc/if-up.d/..., if-down.d/..., if-pre-up.d/..., if-post-down.d/...

Used to configure (or deconfigure) network interfaces based on interface definitions in the file /etc/network/interfaces. These are basically the same script that calls 'ifconfig' and 'route' to do the configuring, deconfiguring.

ifup [-nv] [--no-act] [--verbose]
[-i FILE|--interfaces=FILE]
[--allow CLASS]
-a|IFACE...
ifdown [-nv] [--no-act] [--verbose]
[-i FILE|--interfaces=FILE]
[--allow CLASS]
-a|IFACE...
Options:
-a | --all 'ifup' - bring up in the order listed and marked
as 'auto' in /etc/network/interfaces.
'ifdown' - take down in the order listed, all
interfaces in /etc/network/interfaces.
--force Force configuration/deconfiguration of interface.
--allow=CLASS Only act on interfaces listed in an allow-CLASS
line in /etc/network/interfaces.
-i FILE | --interfaces=FILE Use alternative to /etc/network/interfaces.
-n | --no-act Don't configure any interfaces or run any "up"
or "down" commands.
--no-mappings Don't run any mappings.

Examples from the man page:

Bring up all the interfaces defined with auto in /etc/network/interfaces

# ifup -a

Bring up interface eth0

# ifup eth0

Bring up interface eth0 as logical interface home

# ifup eth0=home

Bring down all interfaces that are currently up

# ifdown -a

View info on current state of network interfaces - /var/run/network/ifstate

# more /var/run/network/ifstate
lo=lo
eth0=eth0

Shows current state of network interfaces - does not include wireless interfaces.

# Controls name resolution for pre-glibc2 systems, in case you have an old linux system.
# Sample entries
order hosts,bind # Check /etc/hosts first then use DNS (bind)
multi on # Allow multiple IP addresses for host

# Controls the client side of DNS. Includes IP addresses of Name Servers
# to use, can have a maximum of three nameservers.
#search
#sortlist
#options
domain my-home.com
search my-home.com
nameserver 192.168.0.1

nameserver Name server IP address. Maximum of three. Queried in the order listed.
If no nameserver entries default is to use the name server on local
machine.
domain Local domain name. If no domain entry, the domain is determined from
the local host name. The domain part is taken to be everything after
the first '.'. If the host name does not contain a domain part, the
root domain is assumed.
search Search list for host-name lookup. Normally determined from the local
domain name. Default = local domain
sortlist A sortlist is specified by IP address netmask pairs.
The netmask is optional and defaults to the natural netmask of the net.
Up to 10 pairs may be specified.
e.g. sortlist 130.155.160.0/255.255.240.0 130.155.0.0
options Options allows certain internal resolver variables to be modified
e.g. options inet6 timeout:n attempts:n