Jump to content

Recommended Posts

Posted

Можно. Купив 7201/asr1002 и поставив его сверху на сервак с выключенным mpd.

Без сервака все равно не обойдетесь.

 

Зачем изобретать велосипед? Нет денег на нормальную железку, поставь рядом сервак с линухом и скажи спасибо пишущим lisg.

Posted
#!/usr/bin/perl                                                                                  
#
#  /etc/rc.local:
#    /path/to/htredir >> /var/log/htredir.log 2>&1 &
#  Firewall settings:
#    ipfw allow <non-blocked-users>
#    ipfw add 1700 fwd 127.0.0.1,81 tcp from any to any 80 via $lan_nic in
#    ipfw add 1701 allow            tcp from any 80 to any via $lan_nic out
#    ipfw deny all
#
use strict;
use warnings;

use IO::Handle;
use IO::Socket;

my $url = (@ARGV ? shift @ARGV : 'http://labs.homelink.ru/ISG/');

sub tprint {
        my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime;
        printf("[ %04d.%02d.%02d %02d:%02d:%02d ]  @_\n",
                $year+1900, $mon+1, $mday, $hour, $min, $sec);
}

my $server = IO::Socket::INET->new (
        LocalPort => 81,
        Type      => SOCK_STREAM,
        Reuse     => 1,
        Listen    => 10);

STDOUT->autoflush(1);
tprint("Ready for connections...");

while (my $conn = $server->accept()) {
        tprint("Connected from ".($conn->peerhost() || 'unknown'));
        binmode $conn;
        print $conn "HTTP/1.0 302 Found\nLocation: $url\n\n\n";
        $conn->close();
}

tprint "Done. Error code: $!";

## EOF ##

Posted
#!/usr/bin/perl                                                                                  
#
#  /etc/rc.local:
#    /path/to/htredir >> /var/log/htredir.log 2>&1 &
#  Firewall settings:
#    ipfw allow <non-blocked-users>
#    ipfw add 1700 fwd 127.0.0.1,81 tcp from any to any 80 via $lan_nic in
#    ipfw add 1701 allow            tcp from any 80 to any via $lan_nic out
#    ipfw deny all
#
use strict;
use warnings;

use IO::Handle;
use IO::Socket;

my $url = (@ARGV ? shift @ARGV : 'http://labs.homelink.ru/ISG/');

sub tprint {
        my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime;
        printf("[ %04d.%02d.%02d %02d:%02d:%02d ]  @_\n",
                $year+1900, $mon+1, $mday, $hour, $min, $sec);
}

my $server = IO::Socket::INET->new (
        LocalPort => 81,
        Type      => SOCK_STREAM,
        Reuse     => 1,
        Listen    => 10);

STDOUT->autoflush(1);
tprint("Ready for connections...");

while (my $conn = $server->accept()) {
        tprint("Connected from ".($conn->peerhost() || 'unknown'));
        binmode $conn;
        print $conn "HTTP/1.0 302 Found\nLocation: $url\n\n\n";
        $conn->close();
}

tprint "Done. Error code: $!";

## EOF ##

а можно поподробней что это?
Posted (edited)
А возможно ли реализовать сабж? Погуглил, толком нечего не нашел....у когонить есть информация по данному вопросу?

Единого програмного пакета(свободного) аналогичного isg для freebsd пока нет. Можете глянуть в сторону СоА, mpd(начиная с v5.4) давно уже научился его понимать. Если поработать немного напильником, разработать свой captive портал у вас все получится.

Edited by tuneil
Posted (edited)
а можно поподробней что это?
Это утилита, которая запускается на Интернет-шлюзе при старте системы и слушает 81 порт.

Правилами файрволла на неё заворачиваются все запросы на 80 порт от заблокированных клиентов.

Она отвечает на них ссылкой на страницу проверки баланса, ввода пароля и т.д.

 

Или хочется чего-то более продвинутого?

Edited by Ilya Evseev
Posted
Охото что авторизация была по dhcp opt82 тоесть чтоб инициатором сессии был dhcp пакет, но авторизовывалась pppoe сессия
мудрО!

А если клиентское устройство не использует локалку и не запрашивает сетевые реквизиты по dhcp за ненадобностью, а сразу устанавливает pppoe-соединение?

Ведь для pppoe не требуется иметь IP-адрес, маршруты, dns и всё остальное, что сообщает dhcp.

Кроме того, pppoe при соединении проходит авторизацию.

Вы хотите, чтобы у всех был пустой логин-пароль? Или чтобы логин-пароль мог быть произвольным?

Posted
Охото что авторизация была по dhcp opt82 тоесть чтоб инициатором сессии был dhcp пакет, но авторизовывалась pppoe сессия
мудрО!

А если клиентское устройство не использует локалку и не запрашивает сетевые реквизиты по dhcp за ненадобностью, а сразу устанавливает pppoe-соединение?

Ведь для pppoe не требуется иметь IP-адрес, маршруты, dns и всё остальное, что сообщает dhcp.

Кроме того, pppoe при соединении проходит авторизацию.

Вы хотите, чтобы у всех был пустой логин-пароль? Или чтобы логин-пароль мог быть произвольным?

да чтож вы все то учить пытаетесь а не ответить на вопрос? :)

Мы реализовали на хорошей циски эту связку, смесл работы ее такой ---- (и это логика будет у нас работать)

Клиент, воткнув кабель в комп посылает DHCP запрос, циска ловит этот запрос и поднимает нулевую сессию и отправляет (выдирая Для уникальности логина авторизации можно его делать из circuitId + remote-id) это на биллинг, если авторизация подтверждена то он гуляет в нете, если нет то его тупо релеет на какой нить хост (портал например)

Так вот вопрос, можно ли это реализовать на MPD

2 Abram Это все что вы знаете о реализации isg на mpd ?? помоемому вам нужно стыдиться а не писать в подобные темы для помощи.

Posted
Охото что авторизация была по dhcp opt82 тоесть чтоб инициатором сессии был dhcp пакет, но авторизовывалась pppoe сессия
мудрО!

А если клиентское устройство не использует локалку и не запрашивает сетевые реквизиты по dhcp за ненадобностью, а сразу устанавливает pppoe-соединение?

Ведь для pppoe не требуется иметь IP-адрес, маршруты, dns и всё остальное, что сообщает dhcp.

Кроме того, pppoe при соединении проходит авторизацию.

Вы хотите, чтобы у всех был пустой логин-пароль? Или чтобы логин-пароль мог быть произвольным?

да чтож вы все то учить пытаетесь а не ответить на вопрос? :)

Мы реализовали на хорошей циски эту связку, смесл работы ее такой ---- (и это логика будет у нас работать)

Клиент, воткнув кабель в комп посылает DHCP запрос, циска ловит этот запрос и поднимает нулевую сессию и отправляет (выдирая Для уникальности логина авторизации можно его делать из circuitId + remote-id) это на биллинг, если авторизация подтверждена то он гуляет в нете, если нет то его тупо релеет на какой нить хост (портал например)

Так вот вопрос, можно ли это реализовать на MPD

2 Abram Это все что вы знаете о реализации isg на mpd ?? помоемому вам нужно стыдиться а не писать в подобные темы для помощи.

Причем здесь mpd ? mpd это демон для организации различных ppp соединений,

который поддерживает CoA, как и ISG в тунельном режиме

 

То что вы описываете это IPoE c идентификацией по DHCP Opt82, ISG это тоже может

Posted

Во блин, настроили и сами непоняли что О_о. Дело в том что в биллинге использовалось именно PPPoE. тоесть было и понятие о сессии как таковой, только время жизни определялось логикой биллинга, поэтому я и говорю про пппое

Posted

Можно сделать ISG на BSD =) mpd выкинуть за ненадобностью, поставить из портов dynamips, объяснить ему, что он 7201 или что-то похожее, настроить ISG. При необходимости апгрейдить процессор, ставить еще железок =)

Posted

Можно сделать ISG на BSD =) mpd выкинуть за ненадобностью, поставить из портов dynamips, объяснить ему, что он 7201 или что-то похожее, настроить ISG. При необходимости апгрейдить процессор, ставить еще железок =)

а можно поподробней...ссылок чтоль??

Posted

2 Abram Это все что вы знаете о реализации isg на mpd ?? помоемому вам нужно стыдиться а не писать в подобные темы для помощи.

Я знаю, что MPD - это Multi-link PPP Daemon. А ISG ну извините ниииииикаким раком к PPP не относится, следственно, Ваш вопрос из разряда "решить задачу по экономике с помощью коня, зубила и зубной пасты".

Posted
Можно сделать ISG на BSD =) mpd выкинуть за ненадобностью, поставить из портов dynamips, объяснить ему, что он 7201 или что-то похожее, настроить ISG. При необходимости апгрейдить процессор, ставить еще железок =)
а можно поподробней...ссылок чтоль??

> whereis dynamips

dynamips: /usr/ports/emulators/dynamips

http://google.ru

этого должно хватить.

Posted
Можно сделать ISG на BSD =) mpd выкинуть за ненадобностью, поставить из портов dynamips, объяснить ему, что он 7201 или что-то похожее, настроить ISG. При необходимости апгрейдить процессор, ставить еще железок =)
вы уверены что он более 10-50Мбит прожует?

dynamips разрабатывался для тестирования и лабораторных работ, но никак не для продакшна.

Posted

не, эмуляторы ну их...буду тогда смотреть в сторону lisg, просто фряха понравилась тем что мало требует системных ресурсов.

Join the conversation

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

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...
На сайте используются файлы cookie и сервисы аналитики для корректной работы форума и улучшения качества обслуживания. Продолжая использовать сайт, вы соглашаетесь с использованием файлов cookie и с Политикой конфиденциальности.