X-Git-Url: https://git.rohieb.name/openwrt.git/blobdiff_plain/dfe52f0a791b7f715dabfc7c64c08a7d2d423e8b..b1fa0c1a379d37f78be2318a2f5def3603c32f55:/docs/network.tex diff --git a/docs/network.tex b/docs/network.tex index 1ba1bd9b3..e4efd8df9 100644 --- a/docs/network.tex +++ b/docs/network.tex @@ -1,4 +1,4 @@ -The network configuration in Kamikaze is stored in \texttt{/etc/config/network} +The network configuration is stored in \texttt{/etc/config/network} and is divided into interface configurations. Each interface configuration either refers directly to an ethernet/wifi interface (\texttt{eth0}, \texttt{wl0}, ..) or to a bridge containing multiple interfaces. @@ -22,18 +22,41 @@ of interfaces and add: \end{Verbatim} It is possible to use VLAN tagging on an interface simply by adding the VLAN IDs -to it, e.g. \texttt{eth0.1}. These can be nested as well. +to it, e.g. \texttt{eth0.1}. These can be nested as well. See the switch section for +this. + +\begin{Verbatim} +config inter +\end{Verbatim} This sets up a simple static configuration for \texttt{eth0}. \texttt{proto} specifies the protocol used for the interface. The default image usually provides \texttt{'none'} \texttt{'static'}, \texttt{'dhcp'} and \texttt{'pppoe'}. Others can be added by installing additional packages. -When using the \texttt{'static'} method like in the example, the options \texttt{ipaddr} and +When using the \texttt{'static'} method like in the example, the options \texttt{ipaddr} and \texttt{netmask} are mandatory, while \texttt{gateway} and \texttt{dns} are optional. +You can specify more than one DNS server, separated with spaces: + +\begin{Verbatim} +config interface "lan" + option ifname "eth0" + option proto "static" + ... + option dns "192.168.1.254 192.168.1.253" (optional) +\end{Verbatim} + DHCP currently only accepts \texttt{ipaddr} (IP address to request from the server) and \texttt{hostname} (client hostname identify as) - both are optional. +\begin{Verbatim} +config interface "lan" + option ifname "eth0" + option proto "dhcp" + option ipaddr "192.168.1.1" (optional) + option hostname "openwrt" (optional) +\end{Verbatim} + PPP based protocols (\texttt{pppoe}, \texttt{pptp}, ...) accept these options: \begin{itemize} \item{username} \\ @@ -43,27 +66,55 @@ PPP based protocols (\texttt{pppoe}, \texttt{pptp}, ...) accept these options: \item{keepalive} \\ Ping the PPP server (using LCP). The value of this option specifies the maximum number of failed pings before reconnecting. - The ping interval defaults to 5, but can be changed by appending + The ping interval defaults to 5, but can be changed by appending "," to the keepalive value \item{demand} \\ Use Dial on Demand (value specifies the maximum idle time. - + \item{server: (pptp)} \\ The remote pptp server IP \end{itemize} - + For all protocol types, you can also specify the MTU by using the \texttt{mtu} option. +A sample PPPoE config would look like this: + +\begin{Verbatim} +config interface "lan" + option ifname "eth0" + option proto "pppoe" + option username "username" + option password "openwrt" + option mtu 1492 (optional) +\end{Verbatim} + +\subsubsection{Setting up static routes} + +You can set up static routes for a specific interface that will be brought up +after the interface is configured. + +Simply add a config section like this: + +\begin{Verbatim} +config route foo + option interface lan + option target 1.1.1.0 + option netmask 255.255.255.0 + option gateway 192.168.1.1 +\end{Verbatim} +The name for the route section is optional, the \texttt{interface}, \texttt{target} and +\texttt{gateway} options are mandatory. +Leaving out the \texttt{netmask} option will turn the route into a host route. \subsubsection{Setting up the switch (currently broadcom only)} The switch configuration is set by adding a \texttt{'switch'} config section. -Example: +Example: \begin{Verbatim} -config switch eth0 - option vlan0 "1 2 3 4 5*" - option vlan1 "0 5" +config switch "eth0" + option vlan0 "1 2 3 4 5*" + option vlan1 "0 5" \end{Verbatim} On Broadcom hardware the section name needs to be eth0, as the switch driver @@ -82,5 +133,78 @@ As value it takes a list of ports with these optional suffixes: \end{itemize} The CPU port defaults to tagged, all other ports to untagged. -On Broadcom hardware the CPU port is always 5. The other ports may vary with +On Broadcom hardware the CPU port is always 5. The other ports may vary with different hardware. + +For instance, if you wish to have 3 vlans, like one 3-port switch, 1 port in a +DMZ, and another one as your WAN interface, use the following configuration : + +\begin{Verbatim} +config switch "eth0" + option vlan0 "1 2 3 5*" + option vlan1 "0 5" + option vlan2 "4 5" +\end{Verbatim} + +Three interfaces will be automatically created using this switch layout : +\texttt{eth0.0} (vlan0), \texttt{eth0.1} (vlan1) and \texttt{eth0.2} (vlan2). +You can then assign those interfaces to a custom network configuration name +like \texttt{lan}, \texttt{wan} or \texttt{dmz} for instance. + +\subsubsection{Setting up IPv6 connectivity} + +OpenWrt supports IPv6 connectivity using PPP, Tunnel brokers or static +assignment. + +If you use PPP, IPv6 will be setup using IP6CP and there is nothing to +configure. + +To setup an IPv6 tunnel to a tunnel broker, you can install the +\texttt{6scripts} package and edit the \texttt{/etc/config/6tunnel} +file and change the settings accordingly : + +\begin{Verbatim} +config 6tunnel + option tnlifname 'sixbone' + option remoteip4 '1.0.0.1' + option localip4 '1.0.0.2' + option localip6 '2001::DEAD::BEEF::1' +\end{Verbatim} + +\begin{itemize} + \item{\texttt{'tnlifname'}:} + Set the interface name of the IPv6 in IPv4 tunnel + \item{\texttt{'remoteip4'}:} + IP address of the remote end to establish the 6in4 tunnel. + This address is given by the tunnel broker + \item{\texttt{'localip4'}:} + IP address of your router to establish the 6in4 tunnel. + It will usually match your WAN IP address. + \item{\texttt{'localip6'}:} + IPv6 address to setup on your tunnel side + This address is given by the tunnel broker +\end{itemize} + +Using the same package you can also setup an IPv6 bridged connection : + +\begin{Verbatim} +config 6bridge + option bridge 'br6' +\end{Verbatim} + +By default the script bridges the WAN interface with the LAN interface +and uses ebtables to filter anything that is not IPv6 on the bridge. +This configuration is particularly useful if your router is not +IPv6 ND proxy capable (see: http://www.rfc-archive.org/getrfc.php?rfc=4389). + + +IPv6 static addressing is also supported using a similar setup as +IPv4 but with the \texttt{ip6} prefixing (when applicable). + +\begin{Verbatim} +config interface "lan" + option ifname "eth0" + option proto "static" + option ip6addr "fe80::200:ff:fe00:0/64" + option ip6gw "2001::DEAF:BEE:1" +\end{Verbatim}