update switch documentation
[openwrt/openwrt.git] / docs / network.tex
index 2c65dd29582a3ceb2cab01367c014e31e4aacc9c..cf1200dcd43e0081ebfea483cf4087d92414e86b 100644 (file)
@@ -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,7 +22,14 @@ 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.15}. These can be nested as well. See the switch section for
+this.
+
+\begin{Verbatim}
+config interface
+    option ifname    "eth0.15"
+    option proto     "none"
+\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'}
@@ -31,11 +38,27 @@ packages.
 
 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.
+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} \\
@@ -49,12 +72,21 @@ PPP based protocols (\texttt{pppoe}, \texttt{pptp}, ...) accept these options:
         ",<interval>" 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}
 
@@ -65,17 +97,17 @@ 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
+       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)}
+\subsubsection{Setting up the switch (broadcom only)}
 
 The switch configuration is set by adding a \texttt{'switch'} config section.
 Example:
@@ -115,6 +147,32 @@ config switch       "eth0"
     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 the switch (swconfig)}
+
+\emph{swconfig} based configurations have a different structure with one extra
+section per vlan. The example below shows a typical configuration:
+
+\begin{Verbatim}
+config 'switch' 'eth0'
+        option 'reset' '1'
+        option 'enable_vlan' '1'
+
+config 'switch_vlan' 'eth0_1'
+        option 'device' 'eth0'
+        option 'vlan' '1'
+        option 'ports' '0 1 2 3 5t'
+
+config 'switch_vlan' 'eth0_2'
+        option 'device' 'eth0'
+        option 'vlan' '2'
+        option 'ports' '4 5t'
+\end{Verbatim}
+
 \subsubsection{Setting up IPv6 connectivity}
 
 OpenWrt supports IPv6 connectivity using PPP, Tunnel brokers or static
@@ -123,16 +181,16 @@ 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 have to edit the
-\texttt{/etc/config/6tunnel} file and change the settings accordingly :
+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'
-        option prefix           '/64'
+        option remoteip4     '1.0.0.1'
+        option localip4      '1.0.0.2'
+        option localip6      '2001::DEAD::BEEF::1'
 \end{Verbatim}
 
 \begin{itemize}
@@ -147,10 +205,20 @@ config 6tunnel
     \item{\texttt{'localip6'}:}
        IPv6 address to setup on your tunnel side
        This address is given by the tunnel broker
-    \item{\texttt{'prefix'}:}
-       IPv6 prefix to setup on the LAN.
 \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).
 
@@ -158,5 +226,6 @@ IPv4 but with the \texttt{ip6} prefixing (when applicable).
 config interface     "lan"
     option ifname    "eth0"
     option proto     "static"
-    option ip6addr    "fe80::200:ff:fe00:0/64"
+    option ip6addr   "fe80::200:ff:fe00:0/64"
+    option ip6gw     "2001::DEAF:BEE:1"
 \end{Verbatim}