Перейти к содержимому
Калькуляторы

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

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

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Я полагаю это будет нужно всем.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Несомненно, нужно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

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

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

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

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

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Под фряху 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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Мне - FreeBSD не нужно, если кому-то нужно - патч приму и закоммичу.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

 

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

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Для работы в 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

Изменено пользователем Bushi

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

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

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

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

ось freebsd 8.2

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

mafet - рекомендую применить этот фикс, для этой версии

http://code.google.com/p/linux-eoip/source/detail?r=15

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

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

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

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

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

 

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

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

 

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

 

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

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

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

 

спасибо!

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.