skyb Posted October 16, 2010 Posted October 16, 2010 А возможно ли реализовать сабж? Погуглил, толком нечего не нашел....у когонить есть информация по данному вопросу? Вставить ник Quote
Дегтярев Илья Posted October 16, 2010 Posted October 16, 2010 Можно. Купив 7201/asr1002 и поставив его сверху на сервак с выключенным mpd. Без сервака все равно не обойдетесь. Зачем изобретать велосипед? Нет денег на нормальную железку, поставь рядом сервак с линухом и скажи спасибо пишущим lisg. Вставить ник Quote
skyb Posted October 16, 2010 Author Posted October 16, 2010 если прочесть пост О туннелях (PPPoE, PPTP, L2TP) речи не идет. Делалось для классического IPoE.а мне хотелось бы PPPoE развернуть :) Вставить ник Quote
Ilya Evseev Posted October 16, 2010 Posted October 16, 2010 #!/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 ## Вставить ник Quote
skyb Posted October 16, 2010 Author Posted October 16, 2010 #!/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 ## а можно поподробней что это? Вставить ник Quote
tuneil Posted October 16, 2010 Posted October 16, 2010 (edited) А возможно ли реализовать сабж? Погуглил, толком нечего не нашел....у когонить есть информация по данному вопросу? Единого програмного пакета(свободного) аналогичного isg для freebsd пока нет. Можете глянуть в сторону СоА, mpd(начиная с v5.4) давно уже научился его понимать. Если поработать немного напильником, разработать свой captive портал у вас все получится. Edited October 16, 2010 by tuneil Вставить ник Quote
Ilya Evseev Posted October 16, 2010 Posted October 16, 2010 (edited) а можно поподробней что это?Это утилита, которая запускается на Интернет-шлюзе при старте системы и слушает 81 порт.Правилами файрволла на неё заворачиваются все запросы на 80 порт от заблокированных клиентов. Она отвечает на них ссылкой на страницу проверки баланса, ввода пароля и т.д. Или хочется чего-то более продвинутого? Edited October 16, 2010 by Ilya Evseev Вставить ник Quote
skyb Posted October 16, 2010 Author Posted October 16, 2010 Охото что авторизация была по dhcp opt82 тоесть чтоб инициатором сессии был dhcp пакет, но авторизовывалась pppoe сессия Вставить ник Quote
Ilya Evseev Posted October 16, 2010 Posted October 16, 2010 Охото что авторизация была по dhcp opt82 тоесть чтоб инициатором сессии был dhcp пакет, но авторизовывалась pppoe сессиямудрО!А если клиентское устройство не использует локалку и не запрашивает сетевые реквизиты по dhcp за ненадобностью, а сразу устанавливает pppoe-соединение? Ведь для pppoe не требуется иметь IP-адрес, маршруты, dns и всё остальное, что сообщает dhcp. Кроме того, pppoe при соединении проходит авторизацию. Вы хотите, чтобы у всех был пустой логин-пароль? Или чтобы логин-пароль мог быть произвольным? Вставить ник Quote
Abram Posted October 16, 2010 Posted October 16, 2010 Стыд. По-моему, ТС путает черное с шершавым. Вставить ник Quote
skyb Posted October 17, 2010 Author Posted October 17, 2010 Охото что авторизация была по dhcp opt82 тоесть чтоб инициатором сессии был dhcp пакет, но авторизовывалась pppoe сессиямудрО!А если клиентское устройство не использует локалку и не запрашивает сетевые реквизиты по dhcp за ненадобностью, а сразу устанавливает pppoe-соединение? Ведь для pppoe не требуется иметь IP-адрес, маршруты, dns и всё остальное, что сообщает dhcp. Кроме того, pppoe при соединении проходит авторизацию. Вы хотите, чтобы у всех был пустой логин-пароль? Или чтобы логин-пароль мог быть произвольным? да чтож вы все то учить пытаетесь а не ответить на вопрос? :)Мы реализовали на хорошей циски эту связку, смесл работы ее такой ---- (и это логика будет у нас работать) Клиент, воткнув кабель в комп посылает DHCP запрос, циска ловит этот запрос и поднимает нулевую сессию и отправляет (выдирая Для уникальности логина авторизации можно его делать из circuitId + remote-id) это на биллинг, если авторизация подтверждена то он гуляет в нете, если нет то его тупо релеет на какой нить хост (портал например) Так вот вопрос, можно ли это реализовать на MPD 2 Abram Это все что вы знаете о реализации isg на mpd ?? помоемому вам нужно стыдиться а не писать в подобные темы для помощи. Вставить ник Quote
packetizer Posted October 17, 2010 Posted October 17, 2010 Охото что авторизация была по 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 это тоже может Вставить ник Quote
skyb Posted October 17, 2010 Author Posted October 17, 2010 Во блин, настроили и сами непоняли что О_о. Дело в том что в биллинге использовалось именно PPPoE. тоесть было и понятие о сессии как таковой, только время жизни определялось логикой биллинга, поэтому я и говорю про пппое Вставить ник Quote
mikevlz Posted October 18, 2010 Posted October 18, 2010 Можно сделать ISG на BSD =) mpd выкинуть за ненадобностью, поставить из портов dynamips, объяснить ему, что он 7201 или что-то похожее, настроить ISG. При необходимости апгрейдить процессор, ставить еще железок =) Вставить ник Quote
skyb Posted October 18, 2010 Author Posted October 18, 2010 Можно сделать ISG на BSD =) mpd выкинуть за ненадобностью, поставить из портов dynamips, объяснить ему, что он 7201 или что-то похожее, настроить ISG. При необходимости апгрейдить процессор, ставить еще железок =) а можно поподробней...ссылок чтоль?? Вставить ник Quote
Abram Posted October 18, 2010 Posted October 18, 2010 2 Abram Это все что вы знаете о реализации isg на mpd ?? помоемому вам нужно стыдиться а не писать в подобные темы для помощи. Я знаю, что MPD - это Multi-link PPP Daemon. А ISG ну извините ниииииикаким раком к PPP не относится, следственно, Ваш вопрос из разряда "решить задачу по экономике с помощью коня, зубила и зубной пасты". Вставить ник Quote
Ivan_83 Posted October 18, 2010 Posted October 18, 2010 print $conn "HTTP/1.0 302 Found\nLocation: $url\n\n\n"; поставьте: "\r\n", не смущайте клиентов. Вставить ник Quote
mikevlz Posted October 19, 2010 Posted October 19, 2010 Можно сделать ISG на BSD =) mpd выкинуть за ненадобностью, поставить из портов dynamips, объяснить ему, что он 7201 или что-то похожее, настроить ISG. При необходимости апгрейдить процессор, ставить еще железок =)а можно поподробней...ссылок чтоль?? > whereis dynamipsdynamips: /usr/ports/emulators/dynamips http://google.ru этого должно хватить. Вставить ник Quote
Giga-Byte Posted October 21, 2010 Posted October 21, 2010 Можно сделать ISG на BSD =) mpd выкинуть за ненадобностью, поставить из портов dynamips, объяснить ему, что он 7201 или что-то похожее, настроить ISG. При необходимости апгрейдить процессор, ставить еще железок =)вы уверены что он более 10-50Мбит прожует?dynamips разрабатывался для тестирования и лабораторных работ, но никак не для продакшна. Вставить ник Quote
skyb Posted October 21, 2010 Author Posted October 21, 2010 не, эмуляторы ну их...буду тогда смотреть в сторону lisg, просто фряха понравилась тем что мало требует системных ресурсов. Вставить ник Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.