\section{Network Devices}

\begin{frame}
   {Network Devices}

   \begin{itemize}
      \item Names usually consist of a type identifier followed
      by a number:
      \begin{itemize}
         \item \textbf{Ethernet}: \texttt{eth0}, \texttt{eth1}, \texttt{eno1},
         \texttt{eno2}, etc.
         \item \textbf{Wireless}: \texttt{wlan0},
         \texttt{wlan1}, \texttt{wlp3s0}, \texttt{wlp3s2}, etc
         \item \textbf{Bridged}: \texttt{br0}, \texttt{br1}, etc.
         \item \textbf{Virtual}: \texttt{vmnet1}, \texttt{vmnet8},
         etc.
      \end{itemize}
      \item One device can have multiple IP addresses
      \begin{itemize}
         \item
         Older systems often had associations like:
         \texttt{eth0:4} $\rightarrow$ \texttt{eth0}
         \item
         Newer systems using \textbf{ip} instead of
         \textbf{ifconfig} just assign multiple addresses
         to one interface name
      \end{itemize}
   \end{itemize}

\end{frame}

\cprotect\note{

   Unlike block and character devices, network devices are
   not associated with \textbf{special device files}, also
   known as \textbf{device nodes}.  Rather than having
   associated entries in the \filelink{/dev} directory,
   they are known by their names.

   Historically, multiple virtual devices could be associated
   with single physical devices; these were named with
   colons and numbers, so \texttt{eth0:0} would be the
   first alias on the \texttt{eth0} device.  This was done
   to support multiple IP addresses on one network card.  However,
   with the use of \textbf{ip} instead of \textbf{ifconfig}, this
   method is deprecated and we will not pursue it.
   this is not compatible with \textbf{IPV6}

   The historical device naming conventions encounter
   difficulties, particularly when multiple interfaces of
   the same type were present.  For example, suppose one
   has two network cards; one would be named \texttt{eth0}
   and the other \texttt{eth1}.  However, which physical
   device should be associated with each name?

   The simplest method would be to have the first device
   found be \texttt{eth0}, the second \texttt{eth1} etc.
   Unfortunately, probing for devices is not deterministic
   for modern systems, and devices may be located or
   plugged in an unpredictable order.  Thus, one might
   wind up with the Internet interface swapped with the
   local interface.  Even if hardware does not change, the
   order in which interfaces are located has been known to
   vary with kernel version and configuration.

   Many system administrators have solved this problem in
   a simple manner, by hard-coding associations between
   hardware (MAC) addresses and device names in system
   configuration files and startup scripts.  While this
   method has worked for years it requires manual tuning
   and had other problems, such as when MAC addresses were
   not fixed; this can happen in both embedded and
   virtualized systems.

}

