Ответить
  • NightMare Тень отца ГамлетаАвтор темы
    офлайн
    NightMare Тень отца Гамлета Автор темы

    23044

    23 года на сайте
    пользователь #324

    Профиль
    Написать сообщение

    23044
    # 24 апреля 2002 11:45

    Если кто владеет вопросом. У меня стоит Redhat 7.2, через который вся контора локально ломится в сетку. Поставил модем для того чтобы особые трудоголики или родственники сотрудников дозванивались из дома и могли в инет вылазить через линукс. (Dialin)

    --------

    Проблема в чем - при дозвонке модем как и положенно снимает трубу, коннектится и всё, скидывает юзера, хотя он прописан в /ppp/pap-secrets.

    -------

    Вроде всё три раза проверил, прочитал море литературы в инете, однако ничего не работает. Если у кого есть настроенные и работающие конфиги - скиньте или дайте знать. Советы тоже одобряются. Диалап ой как нужен




    *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*

    В данной теме обсуждаем Linux, решаем вопросы, проблемы возникающие при работе. Также рекомендуется просмотреть следующие темы.

    linux+dialup, памажите!!!

    Linux... help!

    redHat Linux 9 error

    GPRS под LINUX

    Название темы изменено. edit by Артёмка. 01.05.05.

    *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*

    There are many ways to say I love you. But fu@king is the fastest
  • svin0 IRC Team
    офлайн
    svin0 IRC Team

    6763

    17 лет на сайте
    пользователь #76857

    Профиль
    Написать сообщение

    6763
    # 31 января 2010 12:42

    Подскажите, пожалуйста, как рассчитывается маска для портов в tc? Вычитал, ксорил - всё равно не работает :conf:

    Например, есть правило:

    код выделить все
    /sbin/tc filter add dev eth2 parent 1:0 protocol ip prio 100 u32 match ip src 10.199.93.60 match ip sport 59964 0xfffe classid 1:20

    0xfffe для двух портов, начальный порт 59964. А для 64 портов, например?

  • Zwalker Senior Member
    офлайн
    Zwalker Senior Member

    1915

    22 года на сайте
    пользователь #3119

    Профиль
    Написать сообщение

    1915
    # 1 февраля 2010 09:27

    svin0, 0xFFC0

    не ?

    Calculate port range and mask

    The tc filter defines the port range with port and mask which you have to calculate.

    Find the 2^# ending of the port range, deduce the range and convert to HEX.

    This is your mask. Example for 10000 -> 11024, the range is 1024.

    # ending is 2^14 = 16384

    2^13 (8192) < 10000 < 2^14 (16384)

    # mask is 0x3C00

    echo "obase=16;(2^14)-1024" | bc

    В вашем случае:

    64 порта

    ending is 2^16=65536

    mask is (2^16)-64=65472 -> convert to hex -> FFC0

    32 порта

    mask is (2^16)-32=65504 > convert to hex -> FFE0

    как то так

    Friends come and go, but enemies accumulate.
  • svin0 IRC Team
    офлайн
    svin0 IRC Team

    6763

    17 лет на сайте
    пользователь #76857

    Профиль
    Написать сообщение

    6763
    # 1 февраля 2010 13:05

    Zwalker, спасибо. Видел этот метод расчета, почему-то не работает. Еще пробовал с переводом в двоичный код - тоже не работает (результат вычислений один и тот же :)):

    bugs.gentoo.org/81383:

    27020 in 16 bit = 0110100110001100

    NOT 27020 in 16 bit = 1001011001110011

    27015 in 16 bit = 0110100110000111

    27015 XOR (NOT 27020) = 1111111111110100 -> 0xFFF4

    Может быть допустил ошибку в вычислениях. Сегодня еще раз проверю.

  • Zwalker Senior Member
    офлайн
    Zwalker Senior Member

    1915

    22 года на сайте
    пользователь #3119

    Профиль
    Написать сообщение

    1915
    # 1 февраля 2010 14:33

    svin0, у меня маска получилась такая: 7FFB

    Friends come and go, but enemies accumulate.
  • svin0 IRC Team
    офлайн
    svin0 IRC Team

    6763

    17 лет на сайте
    пользователь #76857

    Профиль
    Написать сообщение

    6763
    # 1 февраля 2010 19:42

    Zwalker,

    60028 = 1110101001111100

    not 60028 = 0001010110000011

    59964 = 1110101000111100

    59964 xor (not 60028) = 1111111110111111 = FFBF

    2^15 (32768) < 59964 < 2^16 (65536)

    2^16 - 64 = 65472 = FFC0

    Что-то тут не так. Где-то пропущена единица в большую или меньшую сторону в зависимости от вычислений: FFC0 - FFBF = 1. Какой из вариантов верный? Для 64-х портов конечный будет 60027, наверное, тогда всё получается. Ведь 59964 - 1-й, а 60027 - 64-й :) Во втором варианте расчетов фигурирует лишь начальный порт, поэтому вычисления верны изначально.

    Например, для двух портов:

    59965 = 1110101000111101

    not 59965 = 0001010111000010

    59964 = 1110101000111100

    59964 xor (not 59965) = 1111111111111110 = FFFE

    2^15 (32768) < 59964 < 2^16 (65536)

    2^16 - 1 = 65535 = FFFE

    Надо проверить.

  • svin0 IRC Team
    офлайн
    svin0 IRC Team

    6763

    17 лет на сайте
    пользователь #76857

    Профиль
    Написать сообщение

    6763
    # 1 февраля 2010 22:59

    С FFC0 не происходит ограничения скорости :( Гугл говорит, что не так всё просто с этими портами и расчет не всегда возможен.

    Есть еще варианты?

  • svin0 IRC Team
    офлайн
    svin0 IRC Team

    6763

    17 лет на сайте
    пользователь #76857

    Профиль
    Написать сообщение

    6763
    # 8 февраля 2010 18:52

    Разобрался. Для нормальной работы требуется выбрать диапазон, начальный и конечный порт, подчиняющиеся особым требованиям (не только 2^n, подробнее здесь). А далее обычный расчет:

    2^15 (32768) < 59904 < 2^16 (65536)

    2^16 - 64 = 65472 = FFC0

    или

    59967 = 1110101000111111

    not 59967 = 0001010111000000

    59904 = 1110101000000000

    59904 xor (not 59967) = 1111111111000000 = FFC0.

    А в предыдущем сообщении (#) описка:

    -2^16 - 1 = 65535 = FFFE

    +2^16 - 2 = 65534 = FFFE

    :D

  • svin0 IRC Team
    офлайн
    svin0 IRC Team

    6763

    17 лет на сайте
    пользователь #76857

    Профиль
    Написать сообщение

    6763
    # 21 февраля 2010 12:22

    Очередной вопрос. Есть три сети, объединенные через роутер. На роутере стоит самба. Как сделать, чтобы три сети видели друг друга в "сетевом окружении"? WINS отпадает, т.к. в случае падения роутера юзеры даже в пределах одной из сетей не увидят друг друга. Нашел скрипт, работающий в одной из Минских сетей, только пока не представляю, как применить его с учетом требований выше.

  • MethroGnome Senior Member
    офлайн
    MethroGnome Senior Member

    6154

    21 год на сайте
    пользователь #7294

    Профиль
    Написать сообщение

    6154
    # 21 февраля 2010 13:57

    Помню-помню :)

    Той сети давно уж нет, но скрипт работал долго, надежно, глюков и багов замечено не было.

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

    Только есть нюанс - если диапазоны подсетей очень большие (65000 адресов или больше) - на сканирование будет затрачиваться много времени (до нескольких минут), желательно делать диапазоны как можно Уже, на 254-510 адресов обычно достаточно.

  • svin0 IRC Team
    офлайн
    svin0 IRC Team

    6763

    17 лет на сайте
    пользователь #76857

    Профиль
    Написать сообщение

    6763
    # 21 февраля 2010 17:54

    Еще одно интересное решение: Построение сетевого окружения "чужих" сетей. Пока не вникал.

    В двух сетях по 254 адреса, в третей - 1.

    В качестве DNS сервера поднят кэширующий dnsmasq + множество записей в hosts. Самый простой вариант. Содержимое hosts:

    код выделить все
    192.168.0.1 yury.dnet
    ...

    Вывод nslookup такой:

    код выделить все
    # nslookup 192.168.0.1
    Server: 127.0.0.1
    Address: 127.0.0.1#53

    1.0.168.192.in-addr.arpa name = yury.dnet.

    Немного отредактировал скрипт под свои нужды. Проверьте :)

    код выделить все
    #!/usr/bin/perl
    use IO::Socket;
    $NetADDR1 = "192.168.0."; # Задаем подсеть
    $NetADDR2 = "192.168.253."; # Задаем подсеть
    $NetADDR3 = "10.99.93."; # Задаем подсеть
    $port = 139; # Порт - 139
    $proto = "tcp"; # протокол TCP
    $Timeout = 0.01; # таймаут сессии (в сетях с потерями можно увеличить до 0.02-0.1с)

    ### подпрограмма вывода строки в формате файла browse.dat ###
    sub add_to_list {
    $HostNAME = substr(`nslookup $HostADDR | grep name `,9); # резолвим имя компа из IP-адреса
    $HostNAME =~ s/.dnet.\n//; # отбрасываем доменную часть
    print '"';
    print $HostADDR; # вставляем ИП-адрес
    print '"';
    print " 40011007 "; # вставляем код
    print ' "';
    print $HostNAME; # вставляем описание - имя из DNS
    print '"';
    print ' "DNET" '; # вставляем рабочую группу
    print "\n";
    }

    ### формируем первые 2 статические строки, которые описывают рабочие группы и их броузеры ###
    print '"DNET" c0001000 "10.99.93.254" "DNET" ';
    print "\n";

    $i = 1;
    while ( $i &lt; 255 ) { # сканировать все ИП-адреса до 254
    $HostADDR = $NetADDR1.$i; # текущий ИП-адрес
    ### создаем сокет (TCP-коннект на 139 порт) ###
    my $sock = IO::Socket::INET-&gt;new(PeerAddr=&gt; $HostADDR,
    PeerPort =&gt; $port,
    Proto =&gt; $proto,
    Timeout =&gt; $Timeout ) &amp;&amp; add_to_list; # в случае успеха выполнить подпрограмму
    close($sock); # закрыть сокет
    $i++; # и т.д. коннект на все ИП от 1 до 254
    }

    $i = 1;
    while ( $i &lt; 255 ) { # сканировать все ИП-адреса до 254
    $HostADDR = $NetADDR2.$i; # текущий ИП-адрес
    ### создаем сокет (TCP-коннект на 139 порт) ###
    my $sock = IO::Socket::INET-&gt;new(PeerAddr=&gt; $HostADDR,
    PeerPort =&gt; $port,
    Proto =&gt; $proto,
    Timeout =&gt; $Timeout ) &amp;&amp; add_to_list; # в случае успеха выполнить подпрограмму
    close($sock); # закрыть сокет
    $i++; # и т.д. коннект на все ИП от 1 до 254
    }

    $i = 1;
    while ( $i &lt; 255 ) { # сканировать все ИП-адреса до 254
    $HostADDR = $NetADDR3.$i; # текущий ИП-адрес
    ### создаем сокет (TCP-коннект на 139 порт) ###
    my $sock = IO::Socket::INET-&gt;new(PeerAddr=&gt; $HostADDR,
    PeerPort =&gt; $port,
    Proto =&gt; $proto,
    Timeout =&gt; $Timeout ) &amp;&amp; add_to_list; # в случае успеха выполнить подпрограмму
    close($sock); # закрыть сокет
    $i++; # и т.д. коннект на все ИП от 1 до 254
    }

    Вот результат:

    код выделить все
    # ./1.pl
    "DNET" c0001000 "10.99.93.254" "DNET"
    "192.168.0.1" 40011007 "92.in-addr.arpa name = yury" "DNET"
    "192.168.0.111" 40011007 ".192.in-addr.arpa name = strg-srv" "DNET"
    "192.168.253.254" 40011007 "68.192.in-addr.arpa name = yury1" "DNET"

    Работает, но не совсем :) substr в данном случае не подходит, т.к. у строк разная длина и одинаковая обрезка не поможет. А если заменить

    код выделить все
    $HostNAME = substr(`nslookup $HostADDR | grep name `,9);

    на

    код выделить все
    $HostNAME = `nslookup $HostADDR | grep name | awk -F " " '{ print $4 }'`;

    то ничего не выводит, хотя командой отдельно удается получить требуемый результат. awk, видимо, не дружит с perl'ом из-за кавычек.

    Есть мысли по этому поводу?

    Позже переведу адреса интерфейсов в .254 и ограничу перебор до 254, чтобы роутер не светился в списке имен.

    В browse.dat пробелы в строках имеют значение? И как рассчитываются значения вида c0001000?

  • MethroGnome Senior Member
    офлайн
    MethroGnome Senior Member

    6154

    21 год на сайте
    пользователь #7294

    Профиль
    Написать сообщение

    6154
    # 21 февраля 2010 19:14

    Пробелы кажется не имеют значения.

    c0001000 - это типа указатель названия рабочей группы, а 40011007 - названия компов. Как они формируются - надо в исходниках ковыряться, у меня с такими значениями все отлично работало

  • svin0 IRC Team
    офлайн
    svin0 IRC Team

    6763

    17 лет на сайте
    пользователь #76857

    Профиль
    Написать сообщение

    6763
    # 21 февраля 2010 19:43

    Временно решил проблему с поиском имен так:

    -$HostNAME = substr(`nslookup $HostADDR | grep name `,9);

    +$HostNAME = `./1.sh $HostADDR`;

    И содержимое 1.sh:

    код выделить все
    #!/bin/bash
    /usr/bin/nslookup $1 | /bin/grep name | /usr/bin/awk -F &quot; &quot; '&#123; print $4 &#125;'

    Работает :)

  • Uncle_Alex Senior Member
    офлайн
    Uncle_Alex Senior Member

    1576

    17 лет на сайте
    пользователь #94223

    Профиль
    Написать сообщение

    1576
    # 23 февраля 2010 17:16

    Не удается завести Aver 203 под Ubuntu 9.10. В списке bttv ее не нашел, но везде пишут, что нужно запускать с параметром card=41 - но не работает (modprobe bttv card=41).

  • raubtier Linux Team
    офлайн
    raubtier Linux Team

    5147

    17 лет на сайте
    пользователь #98666

    Профиль
    Написать сообщение

    5147
    # 3 марта 2010 22:46

    У меня одного launchpad.net ели-ели работает? Провайдер - БТК.

    У подлы час няпроста быць няподлым (c) Г. Бураўкін
  • svin0 IRC Team
    офлайн
    svin0 IRC Team

    6763

    17 лет на сайте
    пользователь #76857

    Профиль
    Написать сообщение

    6763
    # 4 марта 2010 00:48

    Медленно, но работает :)

  • raubtier Linux Team
    офлайн
    raubtier Linux Team

    5147

    17 лет на сайте
    пользователь #98666

    Профиль
    Написать сообщение

    5147
    # 4 марта 2010 01:07

    ну у меня обновления метров 28 час качало. :shuffle:

    У кого затыки у них, или анлимы дают о себе знать. :)

    У подлы час няпроста быць няподлым (c) Г. Бураўкін
  • raubtier Linux Team
    офлайн
    raubtier Linux Team

    5147

    17 лет на сайте
    пользователь #98666

    Профиль
    Написать сообщение

    5147
    # 7 марта 2010 14:01

    Поставил фтп-сервер proftpd на ноуте.

    Если ноут подключен по витой паре, то ко мне доступ есть.

    Если через wi-fi, то нету.

    Аналогично с самбой. Ось убунту 9.10.

    У подлы час няпроста быць няподлым (c) Г. Бураўкін
  • 3524 Senior Member
    офлайн
    3524 Senior Member

    708

    22 года на сайте
    пользователь #3524

    Профиль
    Написать сообщение

    708
    # 7 марта 2010 16:25

    Поставил фтп-сервер proftpd на ноуте.

    Если ноут подключен по витой паре, то ко мне доступ есть.

    Если через wi-fi, то нету.

    Аналогично с самбой. Ось убунту 9.10.

    А в их конфиге указан нужный интерфейс и хосты?

  • raubtier Linux Team
    офлайн
    raubtier Linux Team

    5147

    17 лет на сайте
    пользователь #98666

    Профиль
    Написать сообщение

    5147
    # 8 марта 2010 00:31

    а разве в их конфигурациях надо указывать интерфейс?

    У подлы час няпроста быць няподлым (c) Г. Бураўкін
  • svin0 IRC Team
    офлайн
    svin0 IRC Team

    6763

    17 лет на сайте
    пользователь #76857

    Профиль
    Написать сообщение

    6763
    # 8 марта 2010 09:41

    raubtier, объедините в мост :)