<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.alikaravi.ir/index.php?action=history&amp;feed=atom&amp;title=Mikrotik_Ubuntu_L2TPv3_one_server_six_mikrotik</id>
	<title>Mikrotik Ubuntu L2TPv3 one server six mikrotik - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.alikaravi.ir/index.php?action=history&amp;feed=atom&amp;title=Mikrotik_Ubuntu_L2TPv3_one_server_six_mikrotik"/>
	<link rel="alternate" type="text/html" href="https://wiki.alikaravi.ir/index.php?title=Mikrotik_Ubuntu_L2TPv3_one_server_six_mikrotik&amp;action=history"/>
	<updated>2026-06-22T13:40:38Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.40.1</generator>
	<entry>
		<id>https://wiki.alikaravi.ir/index.php?title=Mikrotik_Ubuntu_L2TPv3_one_server_six_mikrotik&amp;diff=173&amp;oldid=prev</id>
		<title>Karavi at 19:48, 21 June 2026</title>
		<link rel="alternate" type="text/html" href="https://wiki.alikaravi.ir/index.php?title=Mikrotik_Ubuntu_L2TPv3_one_server_six_mikrotik&amp;diff=173&amp;oldid=prev"/>
		<updated>2026-06-21T19:48:47Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;a href=&quot;https://wiki.alikaravi.ir/index.php?title=Mikrotik_Ubuntu_L2TPv3_one_server_six_mikrotik&amp;amp;diff=173&amp;amp;oldid=172&quot;&gt;Show changes&lt;/a&gt;</summary>
		<author><name>Karavi</name></author>
	</entry>
	<entry>
		<id>https://wiki.alikaravi.ir/index.php?title=Mikrotik_Ubuntu_L2TPv3_one_server_six_mikrotik&amp;diff=172&amp;oldid=prev</id>
		<title>Karavi: Created page with &quot;== L2TPv3 Tunnel: One Linux Server to Multiple MikroTik Routers ==  === Overview ===  This guide explains how to connect one Linux server to six MikroTik routers using static L2TPv3 tunnels via &lt;code&gt;ql2tpd&lt;/code&gt;.  {| class=&quot;wikitable&quot; ! # !! MikroTik IP !! Server Tunnel IP !! Client Tunnel IP !! tid !! ptid !! sid !! psid |- | 0 (existing) || 78.157.42.222 || 10.0.0.1/30 || 10.0.0.2/30 || 100 || 200 || 1000 || 2000 |- | 1 || 85.57.4.221 || 10.0.1.1/30 || 10.0.1.2/30 ||...&quot;</title>
		<link rel="alternate" type="text/html" href="https://wiki.alikaravi.ir/index.php?title=Mikrotik_Ubuntu_L2TPv3_one_server_six_mikrotik&amp;diff=172&amp;oldid=prev"/>
		<updated>2026-06-21T19:44:32Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;== L2TPv3 Tunnel: One Linux Server to Multiple MikroTik Routers ==  === Overview ===  This guide explains how to connect one Linux server to six MikroTik routers using static L2TPv3 tunnels via &amp;lt;code&amp;gt;ql2tpd&amp;lt;/code&amp;gt;.  {| class=&amp;quot;wikitable&amp;quot; ! # !! MikroTik IP !! Server Tunnel IP !! Client Tunnel IP !! tid !! ptid !! sid !! psid |- | 0 (existing) || 78.157.42.222 || 10.0.0.1/30 || 10.0.0.2/30 || 100 || 200 || 1000 || 2000 |- | 1 || 85.57.4.221 || 10.0.1.1/30 || 10.0.1.2/30 ||...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== L2TPv3 Tunnel: One Linux Server to Multiple MikroTik Routers ==&lt;br /&gt;
&lt;br /&gt;
=== Overview ===&lt;br /&gt;
&lt;br /&gt;
This guide explains how to connect one Linux server to six MikroTik routers using static L2TPv3 tunnels via &amp;lt;code&amp;gt;ql2tpd&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! # !! MikroTik IP !! Server Tunnel IP !! Client Tunnel IP !! tid !! ptid !! sid !! psid&lt;br /&gt;
|-&lt;br /&gt;
| 0 (existing) || 78.157.42.222 || 10.0.0.1/30 || 10.0.0.2/30 || 100 || 200 || 1000 || 2000&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 85.57.4.221 || 10.0.1.1/30 || 10.0.1.2/30 || 101 || 201 || 1001 || 2001&lt;br /&gt;
|-&lt;br /&gt;
| 2 || 85.57.4.222 || 10.0.2.1/30 || 10.0.2.2/30 || 102 || 202 || 1002 || 2002&lt;br /&gt;
|-&lt;br /&gt;
| 3 || 85.57.4.223 || 10.0.3.1/30 || 10.0.3.2/30 || 103 || 203 || 1003 || 2003&lt;br /&gt;
|-&lt;br /&gt;
| 4 || 85.57.4.224 || 10.0.4.1/30 || 10.0.4.2/30 || 104 || 204 || 1004 || 2004&lt;br /&gt;
|-&lt;br /&gt;
| 5 || 85.57.4.225 || 10.0.5.1/30 || 10.0.5.2/30 || 105 || 205 || 1005 || 2005&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
=== Linux Server Setup (&amp;lt;code&amp;gt;157.90.26.4&amp;lt;/code&amp;gt;) ===&lt;br /&gt;
&lt;br /&gt;
==== 1. Update ql2tpd configuration ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cat &amp;gt; /etc/ql2tpd/ql2tpd.toml &amp;lt;&amp;lt; &amp;#039;EOF&amp;#039;&lt;br /&gt;
[tunnel.t1]&lt;br /&gt;
  version = &amp;quot;l2tpv3&amp;quot;&lt;br /&gt;
  encap = &amp;quot;ip&amp;quot;&lt;br /&gt;
  local = &amp;quot;157.90.26.4:0&amp;quot;&lt;br /&gt;
  peer = &amp;quot;78.157.42.222:0&amp;quot;&lt;br /&gt;
  tid = 100&lt;br /&gt;
  ptid = 200&lt;br /&gt;
  [tunnel.t1.session.s1]&lt;br /&gt;
    pseudowire = &amp;quot;eth&amp;quot;&lt;br /&gt;
    sid = 1000&lt;br /&gt;
    psid = 2000&lt;br /&gt;
    interface_name = &amp;quot;l2tpeth0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[tunnel.t2]&lt;br /&gt;
  version = &amp;quot;l2tpv3&amp;quot;&lt;br /&gt;
  encap = &amp;quot;ip&amp;quot;&lt;br /&gt;
  local = &amp;quot;157.90.26.4:0&amp;quot;&lt;br /&gt;
  peer = &amp;quot;85.57.4.221:0&amp;quot;&lt;br /&gt;
  tid = 101&lt;br /&gt;
  ptid = 201&lt;br /&gt;
  [tunnel.t2.session.s1]&lt;br /&gt;
    pseudowire = &amp;quot;eth&amp;quot;&lt;br /&gt;
    sid = 1001&lt;br /&gt;
    psid = 2001&lt;br /&gt;
    interface_name = &amp;quot;l2tpeth1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[tunnel.t3]&lt;br /&gt;
  version = &amp;quot;l2tpv3&amp;quot;&lt;br /&gt;
  encap = &amp;quot;ip&amp;quot;&lt;br /&gt;
  local = &amp;quot;157.90.26.4:0&amp;quot;&lt;br /&gt;
  peer = &amp;quot;85.57.4.222:0&amp;quot;&lt;br /&gt;
  tid = 102&lt;br /&gt;
  ptid = 202&lt;br /&gt;
  [tunnel.t3.session.s1]&lt;br /&gt;
    pseudowire = &amp;quot;eth&amp;quot;&lt;br /&gt;
    sid = 1002&lt;br /&gt;
    psid = 2002&lt;br /&gt;
    interface_name = &amp;quot;l2tpeth2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[tunnel.t4]&lt;br /&gt;
  version = &amp;quot;l2tpv3&amp;quot;&lt;br /&gt;
  encap = &amp;quot;ip&amp;quot;&lt;br /&gt;
  local = &amp;quot;157.90.26.4:0&amp;quot;&lt;br /&gt;
  peer = &amp;quot;85.57.4.223:0&amp;quot;&lt;br /&gt;
  tid = 103&lt;br /&gt;
  ptid = 203&lt;br /&gt;
  [tunnel.t4.session.s1]&lt;br /&gt;
    pseudowire = &amp;quot;eth&amp;quot;&lt;br /&gt;
    sid = 1003&lt;br /&gt;
    psid = 2003&lt;br /&gt;
    interface_name = &amp;quot;l2tpeth3&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[tunnel.t5]&lt;br /&gt;
  version = &amp;quot;l2tpv3&amp;quot;&lt;br /&gt;
  encap = &amp;quot;ip&amp;quot;&lt;br /&gt;
  local = &amp;quot;157.90.26.4:0&amp;quot;&lt;br /&gt;
  peer = &amp;quot;85.57.4.224:0&amp;quot;&lt;br /&gt;
  tid = 104&lt;br /&gt;
  ptid = 204&lt;br /&gt;
  [tunnel.t5.session.s1]&lt;br /&gt;
    pseudowire = &amp;quot;eth&amp;quot;&lt;br /&gt;
    sid = 1004&lt;br /&gt;
    psid = 2004&lt;br /&gt;
    interface_name = &amp;quot;l2tpeth4&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[tunnel.t6]&lt;br /&gt;
  version = &amp;quot;l2tpv3&amp;quot;&lt;br /&gt;
  encap = &amp;quot;ip&amp;quot;&lt;br /&gt;
  local = &amp;quot;157.90.26.4:0&amp;quot;&lt;br /&gt;
  peer = &amp;quot;85.57.4.225:0&amp;quot;&lt;br /&gt;
  tid = 105&lt;br /&gt;
  ptid = 205&lt;br /&gt;
  [tunnel.t6.session.s1]&lt;br /&gt;
    pseudowire = &amp;quot;eth&amp;quot;&lt;br /&gt;
    sid = 1005&lt;br /&gt;
    psid = 2005&lt;br /&gt;
    interface_name = &amp;quot;l2tpeth5&amp;quot;&lt;br /&gt;
EOF&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 2. Restart service ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
systemctl restart ql2tpd&lt;br /&gt;
sleep 2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 3. Assign tunnel IPs ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ip addr add 10.0.1.1/30 dev l2tpeth1 &amp;amp;&amp;amp; ip link set l2tpeth1 up&lt;br /&gt;
ip addr add 10.0.2.1/30 dev l2tpeth2 &amp;amp;&amp;amp; ip link set l2tpeth2 up&lt;br /&gt;
ip addr add 10.0.3.1/30 dev l2tpeth3 &amp;amp;&amp;amp; ip link set l2tpeth3 up&lt;br /&gt;
ip addr add 10.0.4.1/30 dev l2tpeth4 &amp;amp;&amp;amp; ip link set l2tpeth4 up&lt;br /&gt;
ip addr add 10.0.5.1/30 dev l2tpeth5 &amp;amp;&amp;amp; ip link set l2tpeth5 up&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 4. Persist IPs after reboot ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cat &amp;gt; /etc/networkd-dispatcher/routable.d/l2tp-ip.sh &amp;lt;&amp;lt; &amp;#039;EOF&amp;#039;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
sleep 3&lt;br /&gt;
ip addr add 10.0.0.1/30 dev l2tpeth0 2&amp;gt;/dev/null &amp;amp;&amp;amp; ip link set l2tpeth0 up 2&amp;gt;/dev/null&lt;br /&gt;
ip addr add 10.0.1.1/30 dev l2tpeth1 2&amp;gt;/dev/null &amp;amp;&amp;amp; ip link set l2tpeth1 up 2&amp;gt;/dev/null&lt;br /&gt;
ip addr add 10.0.2.1/30 dev l2tpeth2 2&amp;gt;/dev/null &amp;amp;&amp;amp; ip link set l2tpeth2 up 2&amp;gt;/dev/null&lt;br /&gt;
ip addr add 10.0.3.1/30 dev l2tpeth3 2&amp;gt;/dev/null &amp;amp;&amp;amp; ip link set l2tpeth3 up 2&amp;gt;/dev/null&lt;br /&gt;
ip addr add 10.0.4.1/30 dev l2tpeth4 2&amp;gt;/dev/null &amp;amp;&amp;amp; ip link set l2tpeth4 up 2&amp;gt;/dev/null&lt;br /&gt;
ip addr add 10.0.5.1/30 dev l2tpeth5 2&amp;gt;/dev/null &amp;amp;&amp;amp; ip link set l2tpeth5 up 2&amp;gt;/dev/null&lt;br /&gt;
EOF&lt;br /&gt;
chmod +x /etc/networkd-dispatcher/routable.d/l2tp-ip.sh&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
=== MikroTik 1 — &amp;lt;code&amp;gt;85.57.4.221&amp;lt;/code&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
/interface l2tp-ether add name=l2tpv3 connect-to=157.90.26.4 local-address=85.57.4.221 local-tunnel-id=201 remote-tunnel-id=101 local-session-id=2001 remote-session-id=1001 l2tp-proto-version=l2tpv3-ip unmanaged-mode=yes disabled=no&lt;br /&gt;
/ip address add address=10.0.1.2/30 interface=l2tpv3&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
=== MikroTik 2 — &amp;lt;code&amp;gt;85.57.4.222&amp;lt;/code&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
/interface l2tp-ether add name=l2tpv3 connect-to=157.90.26.4 local-address=85.57.4.222 local-tunnel-id=202 remote-tunnel-id=102 local-session-id=2002 remote-session-id=1002 l2tp-proto-version=l2tpv3-ip unmanaged-mode=yes disabled=no&lt;br /&gt;
/ip address add address=10.0.2.2/30 interface=l2tpv3&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
=== MikroTik 3 — &amp;lt;code&amp;gt;85.57.4.223&amp;lt;/code&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
/interface l2tp-ether add name=l2tpv3 connect-to=157.90.26.4 local-address=85.57.4.223 local-tunnel-id=203 remote-tunnel-id=103 local-session-id=2003 remote-session-id=1003 l2tp-proto-version=l2tpv3-ip unmanaged-mode=yes disabled=no&lt;br /&gt;
/ip address add address=10.0.3.2/30 interface=l2tpv3&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
=== MikroTik 4 — &amp;lt;code&amp;gt;85.57.4.224&amp;lt;/code&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
/interface l2tp-ether add name=l2tpv3 connect-to=157.90.26.4 local-address=85.57.4.224 local-tunnel-id=204 remote-tunnel-id=104 local-session-id=2004 remote-session-id=1004 l2tp-proto-version=l2tpv3-ip unmanaged-mode=yes disabled=no&lt;br /&gt;
/ip address add address=10.0.4.2/30 interface=l2tpv3&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
=== MikroTik 5 — &amp;lt;code&amp;gt;85.57.4.225&amp;lt;/code&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
/interface l2tp-ether add name=l2tpv3 connect-to=157.90.26.4 local-address=85.57.4.225 local-tunnel-id=205 remote-tunnel-id=105 local-session-id=2005 remote-session-id=1005 l2tp-proto-version=l2tpv3-ip unmanaged-mode=yes disabled=no&lt;br /&gt;
/ip address add address=10.0.5.2/30 interface=l2tpv3&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
=== Verification ===&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;From Linux server:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ping 10.0.1.2 -c 2&lt;br /&gt;
ping 10.0.2.2 -c 2&lt;br /&gt;
ping 10.0.3.2 -c 2&lt;br /&gt;
ping 10.0.4.2 -c 2&lt;br /&gt;
ping 10.0.5.2 -c 2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;From each MikroTik:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
/ping 10.0.X.1 count=4&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
=== Troubleshooting ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Symptom !! Cause !! Fix&lt;br /&gt;
|-&lt;br /&gt;
| Interface not created || &amp;lt;code&amp;gt;ql2tpd&amp;lt;/code&amp;gt; not restarted || &amp;lt;code&amp;gt;systemctl restart ql2tpd&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Link stays DOWN || MikroTik sending control messages || Verify &amp;lt;code&amp;gt;unmanaged-mode=yes&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| No packets arriving || Firewall blocking proto 115 || Allow IP protocol 115 on both sides&lt;br /&gt;
|-&lt;br /&gt;
| IP lost after reboot || persistence script not updated || Re-run step 4&lt;br /&gt;
|-&lt;br /&gt;
| Wrong tunnel match || Duplicate tid/ptid/sid/psid || Verify IDs are unique per tunnel&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
=== Notes ===&lt;br /&gt;
&lt;br /&gt;
* Each tunnel must have unique &amp;lt;code&amp;gt;tid&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ptid&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;sid&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;psid&amp;lt;/code&amp;gt; values.&lt;br /&gt;
* Each MikroTik&amp;#039;s &amp;lt;code&amp;gt;local-tunnel-id&amp;lt;/code&amp;gt; must match the server&amp;#039;s &amp;lt;code&amp;gt;ptid&amp;lt;/code&amp;gt; for that tunnel, and vice versa.&lt;br /&gt;
* All tunnels share the same Linux server public IP (&amp;lt;code&amp;gt;157.90.26.4&amp;lt;/code&amp;gt;) — this is supported since each tunnel is differentiated by its tunnel ID.&lt;br /&gt;
* No encryption is applied by default. For production use, consider wrapping tunnels with IPsec.&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
=== References ===&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/katalix/go-l2tp go-l2tp GitHub]&lt;br /&gt;
* [https://manpages.ubuntu.com/manpages/oracular/man5/ql2tpd.toml.5.html ql2tpd.toml man page]&lt;br /&gt;
* [https://www.rfc-editor.org/rfc/rfc3931 RFC 3931 — L2TPv3]&lt;br /&gt;
* [https://www.rfc-editor.org/rfc/rfc4719 RFC 4719 — L2TPv3 Ethernet Pseudowire]&lt;/div&gt;</summary>
		<author><name>Karavi</name></author>
	</entry>
</feed>