summaryrefslogtreecommitdiffstats
path: root/doc/source/manual/mtu.rst
diff options
context:
space:
mode:
authorMatthias Schiffer <mschiffer@universe-factory.net>2014-09-04 21:09:12 +0200
committerMatthias Schiffer <mschiffer@universe-factory.net>2014-09-04 21:09:12 +0200
commitc34b202fa90294a607e1ea926264edf30fd89ea6 (patch)
treeee73e85e38af45e68be5475780cdc8c8b3a055eb /doc/source/manual/mtu.rst
parent64257e6eae4e5e73052c8249316df08b91a2445a (diff)
downloadfastd-c34b202fa90294a607e1ea926264edf30fd89ea6.tar
fastd-c34b202fa90294a607e1ea926264edf30fd89ea6.zip
Add user manual as Sphinx doc
Diffstat (limited to 'doc/source/manual/mtu.rst')
-rw-r--r--doc/source/manual/mtu.rst30
1 files changed, 30 insertions, 0 deletions
diff --git a/doc/source/manual/mtu.rst b/doc/source/manual/mtu.rst
new file mode 100644
index 0000000..68731e0
--- /dev/null
+++ b/doc/source/manual/mtu.rst
@@ -0,0 +1,30 @@
+MTU configuration
+=================
+The default MTU of fastd is 1500. This allows briding the fastd interface in TAP
+mode with other interface with the same MTU, but will usually cause fastd's UDP
+packets to be fragmented (see also the option :ref:`pmtu <option-pmtu>`). Fragmentation can lower the
+performance or even cause connectivty problems when broken routers filter ICMP packets,
+so if possible the MTU should be chosed small enough so that IP fragmentation can be avoided.
+Unlike OpenVPN, fastd doesn't support fragmentation itself, but relies on the IP stack to fragment packets when necessary.
+
+Guidelines
+----------
+
+* The basic overhead of a fastd packet in TUN mode over IPv4 is 39 Bytes when only null crypto is used and 52 Bytes for all other crypto methods
+* TAP mode needs 14 bytes more than TUN mode
+* Tunneling over IPv6 needs 20 bytes more than IPv4
+
+Examples
+--------
+
+Your base MTU is 1500 and you want to use TUN mode over IPv4 with any crypto method:
+ Choose 1500 - 52 = 1448 bytes.
+
+Your base MTU is 1492 (like most German DSL lines) and you want to use TAP mode over IPv4 with any crypto method:
+ Choose 1492 - 52 - 14 = 1426 bytes.
+
+Conservative choice when you want to transfer IPv6 inside the tunnel:
+ Choose 1280 Bytes (not relevant when you use batman-adv inside the tunnel as batman-adv will take care of the inner fragmentation).
+
+Conservative choice when you don't know anything (but assume the base MTU is at least 1280 so IPv6 can be supported) and want to support tunnels over IPv4 and IPv6 in TAP mode with any crypto method:
+ Choose 1280 - 52 - 14 - 20 = 1194 bytes.