MikroTik EoIP and Bridge
Ethernet over IP (EoIP) е тунелен MikroTik RouterOS протокол, който създава Ethernet тунел между два рутера през IP връзка. EoIP интерфейсът се явява като Ethernet интерфейс. В комбинация с бридж (Bridge) всички Ethernet протоколи ще работят все едно са на физически интерфейс.
MMM MMM KKK TTTTTTTTTTT KKK
MMMM MMMM KKK TTTTTTTTTTT KKK
MMM MMMM MMM III KKK KKK RRRRRR OOOOOO TTT III KKK KKK
MMM MM MMM III KKKKK RRR RRR OOO OOO TTT III KKKKK
MMM MMM III KKK KKK RRRRRR OOO OOO TTT III KKK KKK
MMM MMM III KKK KKK RRR RRR OOOOOO TTT III KKK KKK |
MMM MMM KKK TTTTTTTTTTT KKK
MMMM MMMM KKK TTTTTTTTTTT KKK
MMM MMMM MMM III KKK KKK RRRRRR OOOOOO TTT III KKK KKK
MMM MM MMM III KKKKK RRR RRR OOO OOO TTT III KKKKK
MMM MMM III KKK KKK RRRRRR OOO OOO TTT III KKK KKK
MMM MMM III KKK KKK RRR RRR OOOOOO TTT III KKK KKK
Когато нещата опрат до тунели едно от най интелигентното решение според мен е EoIP tunnel от едната страна с Bridge. Намирам го за много удобно защото тунела във втория рутер играе ролята на виртуален интерфейс в съседна мрежа който е асоцииран към първия рутер. Така от една страна се избягва неприятния ефект от broadcast на пълния bridge а от друга винаги може да се рутира каквото трябва тъй като двете LAN мрежи на рутерите стават съседи.
Вариант 1 – с един тунел – MikroTik EoIP and Bridge
В примера по долу имаме два рутера които ги дели MAN мрежа 10.0.0.0/8 но остествено това може и да е Интернет. Зад единия рутер имаме клиент а зад другия база данни. Идеята е повече от ясна, клиента трябва да има връзка с мрежата на базата данни все едно тя е съседна мрежа в LAN сегмент.
Много хора тук ще се замислят защо просто не отворим някой порт DNAT към базата данни и готово. Базата данни е само пример а ние всъщност искаме да ползваме пълния ресурс на съседната мрежа през тунела дори и протоколи като Windows share, монтиране на файлови системи и споделяне на принтери. Освен това самата база данни въобще няма да се вижда в Интернет защото както споменах по горе за да стане това трябва да се пренасочи порт от WAN интерфейса към нея. Логично е да се сетим, че двете мрежи се виждат през тунела и не се виждат през Интернет защото са зад NAT на рутерите си.
+------------------+
| Date Base |
| 192.168.122.2/24 |
+------------------+
||
+------------------+
| 192.168.122.1/24 --------Bridge
| MikroTik 1 | |
| 10.129.3.7/24 | |e
+------------------+ |o
|| |i
------------------- |p
/ 10.129.3.1/24 \ |
| NetWork 10.0.0.0/8 | |t
\ 10.126.2.1/24 / |u
------------------- |n
|| |n
+-------------------+ |e
| 10.126.2.3/24 | |l
| MikroTik 2 | |
| 192.168.123.1/24 ----192.168.122.223/24
+-------------------+
||
+-------------------+
|192.168.123.2/24 |
| Client 1
+-------------------+ |
+------------------+
| Date Base |
| 192.168.122.2/24 |
+------------------+
||
+------------------+
| 192.168.122.1/24 --------Bridge
| MikroTik 1 | |
| 10.129.3.7/24 | |e
+------------------+ |o
|| |i
------------------- |p
/ 10.129.3.1/24 \ |
| NetWork 10.0.0.0/8 | |t
\ 10.126.2.1/24 / |u
------------------- |n
|| |n
+-------------------+ |e
| 10.126.2.3/24 | |l
| MikroTik 2 | |
| 192.168.123.1/24 ----192.168.122.223/24
+-------------------+
||
+-------------------+
|192.168.123.2/24 |
| Client 1
+-------------------+
MikroTik 1 – MikroTik EoIP and Bridge
/ip address
add address=10.129.3.7/24 disabled=no interface=ether1-wan
add address=192.168.122.1/24 disabled=no interface=ether2-lan
/interface eoip
add disabled=no local-address=10.129.3.7 name=MikroTik2 remote-address=10.126.2.3 tunnel-id=1
/interface bridge
add disabled=no name=bridge1
/interface bridge port
add bridge=bridge1 disabled=no interface=ether2-lan
add bridge=bridge1 disabled=no interface=Mikrotik2
/ip route
add disabled=no dst-address=0.0.0.0/0 gateway=10.129.3.1
add disabled=no dst-address=192.168.123.0/24 gateway=192.168.122.223
/ip firewall nat
add action=masquerade chain=srcnat disabled=no out-interface=ether1-wan |
/ip address
add address=10.129.3.7/24 disabled=no interface=ether1-wan
add address=192.168.122.1/24 disabled=no interface=ether2-lan
/interface eoip
add disabled=no local-address=10.129.3.7 name=MikroTik2 remote-address=10.126.2.3 tunnel-id=1
/interface bridge
add disabled=no name=bridge1
/interface bridge port
add bridge=bridge1 disabled=no interface=ether2-lan
add bridge=bridge1 disabled=no interface=Mikrotik2
/ip route
add disabled=no dst-address=0.0.0.0/0 gateway=10.129.3.1
add disabled=no dst-address=192.168.123.0/24 gateway=192.168.122.223
/ip firewall nat
add action=masquerade chain=srcnat disabled=no out-interface=ether1-wan
MikroTik 2 – MikroTik EoIP and Bridge
/interface eoip
add disabled=no local-address=10.126.2.3 name=eoip-tunnel1 remote-address=10.129.3.7 tunnel-id=1
/ip address
add address=192.168.123.1/24 interface=ether2-master-local
add address=192.168.122.223/24 interface=eoip-tunnel1
add address=10.126.2.3/24 interface=ether1-gateway
/ip route
add disabled=no dst-address=0.0.0.0/0 gateway=10.126.2.1
/ip firewall nat
add action=masquerade chain=srcnat disabled=no out-interface=ether1-gateway |
/interface eoip
add disabled=no local-address=10.126.2.3 name=eoip-tunnel1 remote-address=10.129.3.7 tunnel-id=1
/ip address
add address=192.168.123.1/24 interface=ether2-master-local
add address=192.168.122.223/24 interface=eoip-tunnel1
add address=10.126.2.3/24 interface=ether1-gateway
/ip route
add disabled=no dst-address=0.0.0.0/0 gateway=10.126.2.1
/ip firewall nat
add action=masquerade chain=srcnat disabled=no out-interface=ether1-gateway
вариант 2 – с три тунела – MikroTik EoIP and Bridge
Този сценарии е добър когато имаме централен офис или база данни.
Тук разликата с първия пример е, че клиентите рутират един път мрежа 10.0.0.0/8 през която е вдигнат тунела. А за маршрут по подразбиране (default gateway) е конфигуриран 192.168.122.1 който всъщност е бриджа (bridge) на първия рутер. По този начин от една страна всичкия трафик (Internet) ще потече през MikroTik 1 а от друга няма нужда самите клиенти да си рутират мрежите допълнително защото ще се виждат през 192.168.122.1
Общо взето излиза така, че създаваме мрежа в мрежата в която се виждат всички наши хостове помежду си през бриджа а през WAN порта на MikroTik 1 тече само Internet.
+----------------+
| Date Base |
|192.168.122.2/24|
+----------------+
||
+--------Bridge ------+---------------------+
e| +----------------+ |e |e
o| |192.168.122.1/24| |o |o
i| | MikroTik 1 | |i |i
p| |10.129.3.7/24 | |p |p
| +----------------+ | |
t| || |t |t
u| ----------------- |u |u
n| / NETWORK \ |n |n
n| | 10.0.0.0/8 | |n |n
e| \ NETWORK / |e |e
l| ----------------- |l |l
| || | |
+----------------+ | +-----------------+ | +----------------+ |
|10.126.2.3/24 | | | 10.129.1.8/24 | | |10.125.20.2/24 | |
| MikroTik 2 | | | MikroTik 3 | | | MikroTik 4 | |
| 192.168.122.223/24 | 192.168.122.226/24 | 192.168.122.224/24
|192.168.123.1/24| |192.168.126.1/24 | |192.168.124.1/24|
+----------------+ +-----------------+ +----------------+
|| || ||
+----------------+ +-----------------+ +----------------+
|92.168.123.2/24 | |192.168.126.2/24 | |192.168.124.2/24|
| Client 1 | | Client 2 | | Client 3 |
+----------------+ +-----------------+ +----------------+ |
+----------------+
| Date Base |
|192.168.122.2/24|
+----------------+
||
+--------Bridge ------+---------------------+
e| +----------------+ |e |e
o| |192.168.122.1/24| |o |o
i| | MikroTik 1 | |i |i
p| |10.129.3.7/24 | |p |p
| +----------------+ | |
t| || |t |t
u| ----------------- |u |u
n| / NETWORK \ |n |n
n| | 10.0.0.0/8 | |n |n
e| \ NETWORK / |e |e
l| ----------------- |l |l
| || | |
+----------------+ | +-----------------+ | +----------------+ |
|10.126.2.3/24 | | | 10.129.1.8/24 | | |10.125.20.2/24 | |
| MikroTik 2 | | | MikroTik 3 | | | MikroTik 4 | |
| 192.168.122.223/24 | 192.168.122.226/24 | 192.168.122.224/24
|192.168.123.1/24| |192.168.126.1/24 | |192.168.124.1/24|
+----------------+ +-----------------+ +----------------+
|| || ||
+----------------+ +-----------------+ +----------------+
|92.168.123.2/24 | |192.168.126.2/24 | |192.168.124.2/24|
| Client 1 | | Client 2 | | Client 3 |
+----------------+ +-----------------+ +----------------+
MikroTik 1 – MikroTik EoIP and Bridge
/ip address
add address=10.129.3.7/24 interface=ether1-wan
add address=192.168.122.1/24 interface=ether2-lan
/interface eoip
add disabled=no local-address=10.129.3.7 name=MikroTik2 remote-address=10.126.2.3 tunnel-id=1
add disabled=no local-address=10.129.3.7 name=MikroTik3 remote-address=10.129.1.8 tunnel-id=2
add disabled=no local-address=10.129.3.7 name=MikroTik4 remote-address=10.125.20.2 tunnel-id=3
/interface bridge
add disabled=no name=bridge1
/interface bridge port
add bridge=bridge1 disabled=no interface=ether2-lan
add bridge=bridge1 disabled=no interface=Mikrotik2
add bridge=bridge1 disabled=no interface=Mikrotik3
add bridge=bridge1 disabled=no interface=Mikrotik4
/ip route
add dst-address=0.0.0.0/0 gateway=10.129.3.1
add dst-address=192.168.123.0/24 gateway=192.168.122.223
add dst-address=192.168.124.0/24 gateway=192.168.122.224
add dst-address=192.168.126.0/24 gateway=192.168.122.226
/ip firewall nat
add action=masquerade chain=srcnat disabled=no out-interface=ether1-wan |
/ip address
add address=10.129.3.7/24 interface=ether1-wan
add address=192.168.122.1/24 interface=ether2-lan
/interface eoip
add disabled=no local-address=10.129.3.7 name=MikroTik2 remote-address=10.126.2.3 tunnel-id=1
add disabled=no local-address=10.129.3.7 name=MikroTik3 remote-address=10.129.1.8 tunnel-id=2
add disabled=no local-address=10.129.3.7 name=MikroTik4 remote-address=10.125.20.2 tunnel-id=3
/interface bridge
add disabled=no name=bridge1
/interface bridge port
add bridge=bridge1 disabled=no interface=ether2-lan
add bridge=bridge1 disabled=no interface=Mikrotik2
add bridge=bridge1 disabled=no interface=Mikrotik3
add bridge=bridge1 disabled=no interface=Mikrotik4
/ip route
add dst-address=0.0.0.0/0 gateway=10.129.3.1
add dst-address=192.168.123.0/24 gateway=192.168.122.223
add dst-address=192.168.124.0/24 gateway=192.168.122.224
add dst-address=192.168.126.0/24 gateway=192.168.122.226
/ip firewall nat
add action=masquerade chain=srcnat disabled=no out-interface=ether1-wan
MikroTik 2 – MikroTik EoIP and Bridge
/interface eoip
add disabled=no local-address=10.126.2.3 name=eoip-tunnel1 remote-address=10.129.3.7 tunnel-id=1
/ip address
add address=192.168.123.1/24 interface=ether2-master-local
add address=192.168.122.223/24 interface=eoip-tunnel1
add address=10.126.2.3/24 interface=ether1-gateway
/ip route
add dst-address=0.0.0.0/0 gateway=192.168.122.1
add dst-address=10.0.0.0/8 gateway=10.126.2.1 |
/interface eoip
add disabled=no local-address=10.126.2.3 name=eoip-tunnel1 remote-address=10.129.3.7 tunnel-id=1
/ip address
add address=192.168.123.1/24 interface=ether2-master-local
add address=192.168.122.223/24 interface=eoip-tunnel1
add address=10.126.2.3/24 interface=ether1-gateway
/ip route
add dst-address=0.0.0.0/0 gateway=192.168.122.1
add dst-address=10.0.0.0/8 gateway=10.126.2.1
MikroTik 3 – MikroTik EoIP and Bridge
/interface eoip
add disabled=nolocal-address=10.129.1.8 name=eoip-tunnel1 remote-address=10.129.3.7 tunnel-id=2
/ip address
add address=192.168.126.1/24 interface=ether2-local-master
add address=192.168.122.226/24 interface=eoip-tunnel1
add address=10.129.1.8/24 interface=ether1-gateway
/ip route
add dst-address=0.0.0.0/0 gateway=192.168.122.1
add dst-address=10.0.0.0/8 gateway=10.129.1.1 |
/interface eoip
add disabled=nolocal-address=10.129.1.8 name=eoip-tunnel1 remote-address=10.129.3.7 tunnel-id=2
/ip address
add address=192.168.126.1/24 interface=ether2-local-master
add address=192.168.122.226/24 interface=eoip-tunnel1
add address=10.129.1.8/24 interface=ether1-gateway
/ip route
add dst-address=0.0.0.0/0 gateway=192.168.122.1
add dst-address=10.0.0.0/8 gateway=10.129.1.1
MikroTik 4 – MikroTik EoIP and Bridge
/interface eoip
add disabled=no local-address=10.125.20.2 name=eoip-tunnel1 remote-address=10.129.3.7 tunnel-id=3
/ip address
add address=192.168.124.1/24 disabled=no interface=ether2-local-master
add address=192.168.122.224/24 disabled=no interface=eoip-tunnel1
add address=10.125.20.2/24 disabled=no interface=ether1-gateway
/ip route
add dst-address=0.0.0.0/0 gateway=192.168.122.1
add dst-address=10.0.0.0/8 gateway=10.125.20.1 |
/interface eoip
add disabled=no local-address=10.125.20.2 name=eoip-tunnel1 remote-address=10.129.3.7 tunnel-id=3
/ip address
add address=192.168.124.1/24 disabled=no interface=ether2-local-master
add address=192.168.122.224/24 disabled=no interface=eoip-tunnel1
add address=10.125.20.2/24 disabled=no interface=ether1-gateway
/ip route
add dst-address=0.0.0.0/0 gateway=192.168.122.1
add dst-address=10.0.0.0/8 gateway=10.125.20.1
вариант 3 – пълен бридж – MikroTik EoIP and Bridge
Разбира се има вариант и за пълен бридж тоест и от двете страни на тунела макар, че това в някаква степен е риск защото от една страна ще върви broadcast паразитен трафик а от друга в случай на проблем по трудно се диагностицира мрежата. Примери за това има много, някой без да иска е пуснал DHCP сървър или пък има ip conflict, дублиране на MAC адреси и други. Сами разбирате, че в такъв момент трябва да диагностицирате две мрежи които работят като една но физически не се намират на едно място което пък може да се превърне в кошмар. Въпреки всичко по някой път се налага затова ще изиграем един примерен сценарии.
MikroTik 1 – MikroTik EoIP and Bridge
/ip address
add address=10.129.3.7/24 interface=ether1-wan
add address=192.168.0.1/24 interface=ether2-lan
/interface eoip
add disabled=no local-address=10.129.3.7 name=MikroTik2 remote-address=10.126.2.3 tunnel-id=1
/interface bridge
add disabled=no name=bridge1
/interface bridge port
add bridge=bridge1 disabled=no interface=ether2-lan
add bridge=bridge1 disabled=no interface=Mikrotik2
/ip route
add dst-address=0.0.0.0/0 gateway=10.129.3.1
/ip firewall nat
add action=masquerade chain=srcnat disabled=no out-interface=ether1-wan |
/ip address
add address=10.129.3.7/24 interface=ether1-wan
add address=192.168.0.1/24 interface=ether2-lan
/interface eoip
add disabled=no local-address=10.129.3.7 name=MikroTik2 remote-address=10.126.2.3 tunnel-id=1
/interface bridge
add disabled=no name=bridge1
/interface bridge port
add bridge=bridge1 disabled=no interface=ether2-lan
add bridge=bridge1 disabled=no interface=Mikrotik2
/ip route
add dst-address=0.0.0.0/0 gateway=10.129.3.1
/ip firewall nat
add action=masquerade chain=srcnat disabled=no out-interface=ether1-wan
MikroTik 2 – MikroTik EoIP and Bridge
/interface eoip
add disabled=no local-address=10.126.2.3 name=eoip-tunnel1 remote-address=10.129.3.7 tunnel-id=1
/interface bridge
add disabled=no name=bridge1
/interface bridge port
add bridge=bridge1 disabled=no interface=ether2-master-local
add bridge=bridge1 disabled=no interface=eoip-tunnel1
/ip address
add address=10.126.2.3/24 interface=ether1-gateway
add address=192.168.0.254/24 interface=ether2-master-local
/ip route
add dst-address=0.0.0.0/0 gateway=192.168.0.1
add dst-address=10.0.0.0/8 gateway=10.126.2.1 |
/interface eoip
add disabled=no local-address=10.126.2.3 name=eoip-tunnel1 remote-address=10.129.3.7 tunnel-id=1
/interface bridge
add disabled=no name=bridge1
/interface bridge port
add bridge=bridge1 disabled=no interface=ether2-master-local
add bridge=bridge1 disabled=no interface=eoip-tunnel1
/ip address
add address=10.126.2.3/24 interface=ether1-gateway
add address=192.168.0.254/24 interface=ether2-master-local
/ip route
add dst-address=0.0.0.0/0 gateway=192.168.0.1
add dst-address=10.0.0.0/8 gateway=10.126.2.1
MikroTik EoIP and Bridge