Jump to content
Калькуляторы

Mikrotik EoIP to Linux нужно?

Набросал поддержку нестандартного микротиковского EoIP в Линуксе.

Единственным способом для этого были только stateful туннели - pptp, openvpn, которые и сложноваты в настройке, и великоваты накладные расходы.

 

Короче это кому-нить нужно?

Share this post


Link to post
Share on other sites

Несомненно нужно, были случаи, когда у клиента Linux, но mikrotik ставить наотрез отказывался. Приходилось юзать pptp :(

Share this post


Link to post
Share on other sites

Сразу вопрос, на freebsd его можно будет собрать? Как планируется реализовать?

Share this post


Link to post
Share on other sites

Если кто-то закоммитит поддержку - можно. Я использую tun, так что это может будет и портабельно.

В openwrt/dd-wrt если нужно сделаю порт тоже (для Big Endian надо будет немного пошаманить).

Хотя в dd-wrt какой-то свой EoIP есть - но помоему он несовместим.

 

Кстати замечание, предварительно возможно надо загрузить ip_gre, еще проверю

Share this post


Link to post
Share on other sites

во фрибсд есть свой eoip, закомитить в -head не есть проблема, но вот получить позитивный review шансов мало.

Если это можно реализовать через добавление параметров к существующему eoip либо через ng_ - тогда шансы есть. иначе останется в отходах.

 

Share this post


Link to post
Share on other sites

Этот EoIP userspace, коммитить можно в порты.

Делать ядерный смысла мало.

Только я уверен, что из БЗД-шников врядли кто-то и пальцем пошевелит, чтоб помочь :-) А мне оно и не надо.

Share this post


Link to post
Share on other sites

Под фряху 6.2 не собирается, нужно адаптировать:

meoip.c:28:27: netinet/ether.h: No such file or directory
In file included from meoip.c:29:
/usr/include/netinet/ip.h:160: error: syntax error before "n_long"
/usr/include/netinet/ip.h:163: error: syntax error before "n_long"
meoip.c:38:26: linux/if_tun.h: No such file or directory
meoip.c: In function `main':
meoip.c:91: error: `IFF_TAP' undeclared (first use in this function)
meoip.c:91: error: (Each undeclared identifier is reported only once
meoip.c:91: error: for each function it appears in.)
meoip.c:91: error: `IFF_NO_PI' undeclared (first use in this function)
meoip.c:93: error: `TUNSETIFF' undeclared (first use in this function)
meoip.c:98: error: `TUNGETIFF' undeclared (first use in this function)
*** Error code 1

Share this post


Link to post
Share on other sites

Когда-то оч. не хватало EoIP для like BSD, но с появлением if_bridge - проблема отошла на 2 план.

 

2:nuclearcat - а бондинг MT-шный сильно тяжело портировать?

 

Share this post


Link to post
Share on other sites

Для работы в FreeBSD нужно использовать устройство tap, а не tun.

 

Я добавил поддержку в FreeBSD и дописал возможность работы нескольких туннелей в одном демоне.

Запускается так:

meoip <ip1>/<id1> <ip2></id2>

например

#meoip 192.168.1.5/2 10.5.1.4/7
Mikrotik EoIP 0.1
(c) Denys Fedoryshchenko <nuclearcat@nuclearcat.com>
#ifconfig
tap0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        ether 00:bd:58:53:ca:00
        Opened by PID 52017
tap1: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        ether 00:bd:59:53:ca:01
        Opened by PID 52017

 

Работу проверил в linux и freebsd. Прошу поправить код, если есть ошибки, я не профессиональный программист.

meoip.zip

Edited by Bushi

Share this post


Link to post
Share on other sites

Поставил - вроде как работает. О стабильности скажу, когда понадобится в продакшн.

Про ошибки в коде ничего не скажу, м.б. прочтёт/поправит Т.С.?

Share this post


Link to post
Share on other sites

Я закоммитил код для freebsd присланный по почте (Revision: r9).

Правда я еще сделал поддержку конфигов, которую сейчас тестирую, буду загонять код в продакшн.

Совместимость с FreeBSD видимо прийдется проверять, буду ставить на виртуалку.

 

Share this post


Link to post
Share on other sites

Спасибо! 12 часов, полёт нормальный. правда мне не понравилась версия 0.2 - там ещё сложней понять скриптом, какой именно tap интерфейс назначился, поэтому остановился на 0.1.

ось freebsd 8.2

Share this post


Link to post
Share on other sites

Красава! За linux большой респект...

А вот еслиб прикрутить к dd-wrt то из коробки Dlink DIR300 можно былоб такой самолет замутить.

 

В общем к сути - ооочень прошу попробывать сделать порт для dd-wrt или open-wrt

Share this post


Link to post
Share on other sites

Если кто-то закоммитит поддержку - можно. Я использую tun, так что это может будет и портабельно.

В openwrt/dd-wrt если нужно сделаю порт тоже (для Big Endian надо будет немного пошаманить).

Хотя в dd-wrt какой-то свой EoIP есть - но помоему он несовместим.

 

Кстати замечание, предварительно возможно надо загрузить ip_gre, еще проверю

 

Для openwrt случайно порт ещё не делали ? А то возникла небольшая задачка.

Share this post


Link to post
Share on other sites

Неа, займусь в ближайшее время возможно, только отыщу совместимую коробочку

Share this post


Link to post
Share on other sites

Неа, займусь в ближайшее время возможно, только отыщу совместимую коробочку

 

Если вы так плотно занимались вопросом EoIP, что даже софт написали, может тогда подскажете ? С недавнего времени есть l2tpv3 в статической конфигурации и поддерживается на уровне ядра, т.е. эта фича вполне устраивает, но есть одна проблема: не получается сделать mtu=1500. Т.е. если я делаю бридж, то некому слать icmp и т.п., пакеты просто дропаются в узком месте и всё. Можно ли настроить бридж-туннель так, чтобы большие пакеты с одной стороны разбирались, с другой - собирались обратно ?

 

Задача: сделать какой-либо вариант пробоса ethernet c 802.1q поверх ip. Проблемы с mtu не должно быть, лучше всего именно сделать mtu=1500 для абонентских устройств, чтобы они вообще не знали о туннеле или о чём-то там ещё. Сделать бОльший mtu на всём пути следования туннеля я естественно не имею возмодности.

 

P.S. OpenVPN не предлагать :-), сильно тяжёлый.

Share this post


Link to post
Share on other sites

попробовал на днях

очень выручило

 

спасибо!

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now