-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.
\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} \\
\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
",<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}
+
+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
\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}