• Какой оптимальный размер MTU для скорости 1 Гбит/с?

    @throughtheether
    human after all
    Если вопрос теоретический (ну мало ли, преподаватель проверяет ваши знания), то есть такая формула Матиса (Mathis), которая оценивает верхнюю границу производительности TCP в зависимости от MSS (т.е. и MTU), RTT и вероятности потери пакета. Подробнее здесь

    Если вопрос прикладной, то я попросил бы вас прояснить, что за "скорость 1 Гбит/c" имеется в виду. Какова топология сети, между какими ее нодами нужна такая скорость, через какие устройства идет интересующий вас трафик, как именно эта скорость задается (т.е. или это просто гигабитный ethernet-интерфейс, или нужно устойчиво передавать пользовательские данные с этой скоростью).

    На мой взгляд, когда есть отдельная компактная SAN-сеть, соединяющая сервера и дисковые полки, увеличение MTU имеет смысл. Если же предполагается, например, генерировать трафик в интернет, конечным пользователям, то, думаю, эффекта вы не заметите (MTU где-то на пользовательском доступе наверняка будет меньше вашего)
    Ответ написан
    Комментировать
  • Реализация long2ip(). Как конвертировать ip с long в string?

    @throughtheether
    human after all
    Если хотите изобретать велосипед, по при помощи модуля struct запакуйте 32-битное значение в строку и распакуйте результат как 4 байта.

    Если хотите решить задачу без излишних усилий, можете воспользоваться модулем netaddr:
    >>> import netaddr
    >>> int(netaddr.IPAddress('77.88.21.8'))
    1297618184
    >>> str(netaddr.IPAddress(1297618184))
    '77.88.21.8'


    UPD:
    у меня была задача именно самому выполнить эти преобразования,
    Держите тогда два модных однострочника:
    def long_to_dotted_decimal(val):
        return '.'.join(map(str,[val%256**idx/256**(idx-1) for idx in xrange(4,0,-1)]))
    
    def dotted_decimal_to_long(strval):
        return sum(map(lambda (power,octet):256**power*int(octet),enumerate(reversed(strval.split('.')))))

    Пример использования:
    >>> long_to_dotted_decimal(dotted_decimal_to_long('127.0.0.1'))
    '127.0.0.1'
    >>> long_to_dotted_decimal(dotted_decimal_to_long('255.255.255.255'))
    '255.255.255.255'
    >>> long_to_dotted_decimal(1297618184)
    '77.88.21.8'
    >>> dotted_decimal_to_long('77.88.21.8')
    1297618184
    Ответ написан
    3 комментария
  • Как определить публичная ли сеть?

    @throughtheether
    human after all
    Все IPv4 и IPv6 префиксы, кроме некоторых зарезервированных (список здесь), а именно тех, у которых параметр global задан как false, являются глобально маршрутизируемыми. Вероятно, именно их вы называете публичными.
    Ответ написан
    Комментировать
  • На каком ЯП лучше реализовать небольшое приложение для работы с веб-данными?

    @throughtheether
    human after all
    Если это не контролируемый вами сайт, и по сути вам надо зайти браузером на сайт и ввести комментарий через форму, то подойдет python с модулями requests (если все просто) или ghost.py/selenium (если нужна какая-то сложная работа с javascript)
    Ответ написан
    1 комментарий
  • Как с помощью python подсветить слова в документе не ломая DOM?

    @throughtheether
    human after all
    Навскидку, делал бы так:
    1) нашел бы интересующий элемент (текстовую ноду)
    2) обратился бы к его родителю (непосредственному предку)
    3) интересующий элемент разделил бы на три: до ключевого слова, ключевое слово и после него.
    4) запомнил бы индекс элемента из п. 1) среди потомков родителя из п. 2), удалил его, на его место вставил три потомка из п. 3), при чем средний из них должен быть обернут в span с нужным форматированием.
    UPD:
    не python, но посмотрите на этот проект.
    Ответ написан
    Комментировать
  • Как реализовать такую схему?

    @throughtheether
    human after all
    Безграничные IP адреса.
    Если вы подразумеваете количество, то так не бывает.

    Если необходимо, чтобы разные браузеры обращались к некоему ресурсу с разными IP-адресами источника, используйте прокси или ssh-туннели (по сути, через прокси).
    Ответ написан
  • Murmurhash3.. Почему два значения?

    @throughtheether
    human after all
    Почему два значения то?
    Если правильно помню, murmurhash3 генерирует 32- или 128-битный хэш. Два 64-битных числа - это, видимо, две половины результирующего хэша.

    Если нужно одно 128-битное число, используйте функцию hash128. Здесь есть пример.

    Если нужно одно 64-битное число, берите то, которое больше понравится.
    Ответ написан
    Комментировать
  • Как расчитать рапределение значений?

    @throughtheether
    human after all
    Попробуйте использовать Counter. Пример на python 2.7:
    >>> from collections import Counter
    >>> d={'a':2,'b':2,'c':5}
    >>> Counter(d.values())
    Counter({2: 2, 5: 1})
    >>> Counter(d.itervalues())
    Counter({2: 2, 5: 1})
    Ответ написан
    Комментировать
  • Cisco ASA как победить тормоза в сети?

    @throughtheether
    human after all
    Проблема в следующем. Возникли жутки тормоза при печати документов. Они могут ставится в очередь и обрабатываться по несколько минут, а то и больше.
    Проверьте при помощи wireshark, какие протоколы (в т.ч. номера портов TCP/UDP) используются при печати и соотнесите эти данные с настроенными правилами инспекции, может быть, дело в этом.
    Ответ написан
    Комментировать
  • Python, начало работы, что делать с кодировкой?

    @throughtheether
    human after all
    Он мне ни в какую не пишет русскими буквами,
    Проблемная буква - не русская, а греческая.

    Подскажите, что делаю не так?
    Выводите в консоль символы, которые она не поддерживает. Здесь есть некоторые варианты решения проблемы. Но я вам рекомендую использовать другие возможности отображения информации (т.е. писать в файл или показывать на веб-странице).
    Ответ написан
    Комментировать
  • Почему Python Requests медленно работает на ubuntu 14.04?

    @throughtheether
    human after all
    Задержку разрешения имен (DNS) сравните.
    Ответ написан
    Комментировать
  • Почему не получается inter-vlan routing на коммутаторе D-Link DGS-3120 (RI)?

    @throughtheether
    human after all
    ситуация одинаковая:
    - ПК не пингует ноут;
    - ноут пингует ПК
    для обоих случаев
    Если от перемены машин по вланам ситуация не меняется, то, полагаю, маршрутизация тут ни при чем. Пока наиболее вероятными причинами видятся функциональность "безопасности" или какая-то специфичная проблема форвардинга (дублирующиеся MAC-адреса, проблемы с ARP).
    Можно порекомендовать:
    1) загрузить liveCD с ОС Linux на ноутбуке и пронаблюдать поведение
    2) проверить отправление и доставку/блокирование пакетов при помощи сниффера трафика (wireshark, tcpdump).

    Ethernet adapter Подключение по локальной сети:

    Состояние среды. . . . . . . . : Среда передачи недоступна.
    DNS-суффикс подключения . . . . . :
    Описание. . . . . . . . . . . . . : Realtek PCIe GBE Family Contr
    Физический адрес. . . . . . . . . : 48-5B-39-1A-5C-5C
    DHCP включен. . . . . . . . . . . : Нет
    Автонастройка включена. . . . . . : Да

    Вот здесь не понял. Как должен ноутбук взаимодействовать с другой машиной, если на его интерфейсе (неактивном, кстати) не задан адрес?
    Ответ написан
  • Какие есть типы RIP обновлений?

    @throughtheether
    human after all
    Можете уточнить, в связи с чем возник вопрос?
    Если вкратце, то они бывают обычные, т.е. периодические (regular update) и обусловленные неким событием (triggered), см. подробнее. Кроме того, маршрутизатор может ответить на специфичный запрос, этот ответ тоже можно считать обновлением. Речь о второй версии протокола.
    Ответ написан
    Комментировать
  • Установка zabbix 2.4 на debian?

    @throughtheether
    human after all
    /etc/apt/sources.list можете показать?
    И вывод
    apt-get update
    Ответ написан
  • Почему до сих пор пользуются протоколом RIP?

    @throughtheether
    human after all
    Во-первых, наследие прошлого (legacy-системы). Сети, как и любую инфраструктуру, сложно модернизировать, поэтому совместимость стоит сохранять.

    Второй, более тонкий момент. Например, вы - провайдер. У клиента есть множество устройств, которым нужна динамическая маршрутизация. Что делать? BGP, допустим, они не потянут. EIGRP проприетарный (жду разоблачающих комментариев про RFC). При использовании OSPF довольно затруднительно фильтровать префиксы, да и пускать посторонних в OSPF-домен чревато. RIP здесь вполне органичен.
    Ответ написан
    4 комментария
  • Что за настройка у коммутаторов Cisco ip subnet-zero?

    @throughtheether
    human after all
    Добавлю к уже сказанному.

    Команда имеет смысл при классовом выделении адресов. В примере, который привел Валентин, получается, что классовая сеть и ее "нулевая" подсеть имеют одинаковый номер (192.168.1.0). Видимо, по этой причине в RFC950 рекомендуется:
    It is useful to preserve and extend the interpretation of these special addresses in subnetted networks. This means the values of all zeros and all ones in the subnet field should not be assigned to actual (physical) subnets.


    Классовая маршрутизация работает примерно так:
    1) при получении пакета с адресом назначения, например, 192.168.1.1, определяется номер его (классовой) сети, 192.168.1.0.
    2) маршрутизатор проверяет, есть ли сеть в таблице маршрутизации
    3) маршрутизатор проверяет, есть ли в таблице маршрутизации соответствующая адресу назначения подсеть (192.168.1.0/27) и перенаправляет пакет в соответствии с записью next-hop.

    Команда ip subnet-zero влияет на п.3 этого процесса, в случае ее активации нужная подсеть будет присутствовать в таблице маршрутизации и пакет будет соответствующем образом перенаправлен. Без этой команды пакет будет отброшен (если имеется запись, соответствующая классовой сети, но нет записи о подсети).

    В нынешних условиях, когда маршрутизация производится на основе поиска наиболее точно совпадающего префикса (longest prefix match), команда неактуальна, т.к. решаемая ей проблема не возникает (192.168.1.0/24 и 192.168.1.0/27 - это разные префиксы, путаницы не возникает, соответственно и запрещать использовать "нулевые подсети" не имеет смысла).
    Ответ написан
    Комментировать
  • Как правильно разделить сеть на сегменты?

    @throughtheether
    human after all
    Я читал, что VLAN'ы как раз и предназначены для решения данной задачи, у меня даже есть управляемый коммутатор hp 2650, где я могу группировать порты в VLAN, но что мне это дает? Ну разделил я порты на 1-10, 11-20, 21-30, 30-40 а дальше то что делать? Как мне разрешить трафик между VLAN'ами?

    Переводите нужные порты в нужные вланы в access-режиме (untagged). Создаете для вланов L3-интерфейсы. Включаете роутинг. Теперь трафик между вланами должен маршрутизироваться.
    Есть минус - насколько помню, 2650 не поддерживает ACL, так что фильтрацию трафика средствами коммутатора, полагаю, организовать не получится.
    Ответ написан
    Комментировать
  • Может ли у колонки ухудшаться звук?

    @throughtheether
    human after all
    Может ли у колонки ухудшаться звук?
    Конечно может, энтропия-то возрастает.
    В вашем случае, возможно, произошла деградация диффузора.
    Ответ написан
  • Как подменить ip адрес?

    @throughtheether
    human after all
    Я прочитал что это можно сделать с помощью маршрутизации от источника, и в теории все просто, но как осуществить это на практике?
    Никак. Маршрутизация от источника использует IP options. Пакеты, содержащие IP options (в частности, LSRR/SSRR), рекомендуется по умолчанию фильтровать (BCP186, например), что и происходит в действительности.

    Для вашей задачи подойдет использование пула прокси-серверов.
    Ответ написан