Задать вопрос
  • Есть ли у кого симулятор графического интерфейса cisco 2811?

    RicoX
    @RicoX
    Ушел на http://ru.stackoverflow.com/
    С учетом того что для оборудования cisco использование cli является стандартом и в нем любые действия делать проще и быстрее, то действительно вопрос странный, не проще ли слить человеку стандартно настроенный конфиг в текстовик и пусть заливает, меняя только то, что нужно.
    Ответ написан
    1 комментарий
  • Как проверить скорость?

    Disen
    @Disen
    iperf,
    если есть возможность на удаленном ip поставить клиент/севвер.
    Ответ написан
    Комментировать
  • Правильное отображение прогрессбара на Python - что не так?

    Kademn
    @Kademn
    Злой
    Давайте по-порядку.
    Вот участок кода, отвечающий за прогресс-бар:
    for i in range(lenLi):
        sys.stdout.write('\r')
        sys.stdout.write("[%-30s] %d%%" % ('='*i, i))
        sys.stdout.flush()

    Во-первых вывод в консоль у вас неправильный. Длина вашего прогресс-бара 30 символов. Значит при каждой итерации нужно выводить количество символов, соответствующее итерации, не забывая, что нельзя выводить дробное количество символов. К примеру, если длина списка у вас 5, значит 30/5=6 символов добавляет каждая итерация цикла. Но вы переписываете весь прогресс-бар, поэтому можно посчитать "часть" от всей длины (30 символов) для этого шага. Например для длины 5, шаг 1 - это 1/5 длины, шаг 2 это 2/5 длины и т.д. Тогда количество символов это количество символов для "полной" длины умножить на полученную часть.
    part = float(i)/(lenLi-1)
    symbols_num = int(30 * part)

    lenLi -1, так как выше вы увеличивали длину на единицу (видимо для range), то тогда range стоило бы начинать с 1, а не с нуля. А проценты легко получить умножив part на 100, не забыв сменить форматирование вывода с '%s%%' на, скажем, '%3.2f%%', так как в выводе дробное число и оно очень плохо смотрится, если %s.
    Теперь прогресс-бар будет выводиться правильно:
    for i in range(1, lenLi):
        sys.stdout.write('\r')
        part = float(i)/(lenLi-1)
        symbols_num = int(30 * part)
        sys.stdout.write("[%-30s] %3.2f%%" % ('='*symbols_num, part*100))
        sys.stdout.flush()

    Правда, чтобы успеть увидеть изменения, добавьте в цикл wait(), иначе все 100% заполнятся за доли секунды.
    UPD
    Да, вы для каждой ссылки заполняете прогресс-бар от нуля до 100 процентов. Цикл внутри цикла не нужен. Прогресс-бар должен быть частью for x in li:. Но, для правильного отображения прогресс-бара, вам необходимо считать номер шага. Для это можно либо завести переменную, которая будет считать шаги, либо использовать функцию enumerate:
    for step_number, x in enumerate(li):
    Учитывая, что вам удобнее нумеровать шаги с единицы, правильнее было бы использовать
    for step_number, x in enumerate(li, 1):
    А вообще, если вы хотите использовать прогресс-бар и в других местах кода, то стоило бы завести отдельную функцию для печати прогресса, которая принимает дробное число от 0 до 1 или процент в качестве аргумента и выводит в консоль соответствующий прогресс-бар, возвращая каретку в начало строки.
    Полагаю, что этих подсказок более, чем достаточно. Дальше попробуйте сами.
    Ответ написан
    3 комментария
  • Как настроить компьютер в качестве роутера с двумя линиями интернета?

    RicoX
    @RicoX
    Ушел на http://ru.stackoverflow.com/
    Полностью объединить скорость 2х линий не выйдет, для этого надо BGP + MPLS-TE, но раздавать интернет части клиентов с одной линии, а части с другой - можно, для этого правилами NAT распределяем клиентов между каналами, можно даже динамическое распределение сделать, типа в случайном порядке каждого нового клиента в свой канал по кругу. Раздачу инета по wifi проще всего настроить через hostappd.
    Пример динамического NAT через 2 канала на pf
    cat /etc/pf.conf
    set limit states 128000
    set optimization aggressive
    #Интерфейсы на каналы, если есть алиасы можно задать IP
    ext_if1="vlan100" #Kanal1
    ext_if2="vlan200" #Kanal2
    #Шлюз для каждого канала
    ext_gw1="192.168.88.1"
    ext_gw2="192.168.89.1"
    #На какие адреса мы не будем nat'ить.
    table <no_nat> const { 192.168.0.0/16 10.0.0.0/16 }
    #Нормализуем трафик
    scrub in all
    #Натим поочередно пользователей через каждый из каналов.
    nat from 10.0.0.0/20 to !<no_nat> -> { ($ext_if1) ($ext_if2) } round-robin sticky-address
    pass out on $ext_if1 route-to ($ext_if2 $ext_gw2) from $ext_if2 to !<no_nat>
    pass out on $ext_if2 route-to ($ext_if1 $ext_gw1) from $ext_if1 to !<no_nat>

    для iptables вот варианты help.ubuntu.ru/wiki/ip_balancing
    Ответ написан
    Комментировать
  • Как настроить на linux возможность получения нескольких IP от DHCP сервера на одном сетевом интерфейсе?

    t_q_l
    @t_q_l
    Интересная личность
    Создать новый интерфейс с именем mac1@eth0 и МАС-адресом 51:41:4a:6c:47:ab:

    /sbin/ip li add link eth0 mac1 address 51:41:4a:6c:47:ab type macvlan
    Ответ написан
    1 комментарий
  • Как подружить Git вместе с SublimeText 3?

    @Vladisus
    https://sublimegit.net
    Если есть Package control:
    Preferences ---> Package control ---> Install package ---> SublimeGit, еcли нет
    https://packagecontrol.io/installation ---> Preferences ---> Package control ---> Install package ---> SublimeGit
    Вот доки
    Ответ написан
    Комментировать
  • Как поставить старые версии пакетов в linux?

    insiki
    @insiki
    broken pipe
    Что мешает обновиться таки до 3.18 (apt-get dist-upgrade) и потом уже устанавливать гостевые модули?
    Ответ написан
    Комментировать
  • В какой момент подключается DNS?

    @inkvizitor68sl
    Linux-сисадмин с 8 летним стажем.
    DNS - L7 протокол, если вы об OSI.

    Другой вопрос, что после того, как dns выдаст ответ, начинается новый коннект (уже к http-серверу, например), который снова проходит весь стек.
    Ответ написан
    4 комментария
  • Какая реальная скорость WiFi класса n?

    ifaustrue
    @ifaustrue
    Пишу интересное в теллеграмм канале @cooladmin
    Через одну антенну без MIMO можно выжать 75 мегабит. Большего я не видел, как ни крутил настройки.
    Ответ написан
    2 комментария
  • Какая реальная скорость WiFi класса n?

    Jump
    @Jump
    Системный администратор со стажем.
    Зависит от кучи факторов.
    Поэтому в реальности от 0 до 70%от теоретической максимальной.

    Радиосвязь вообще и WiFi в частности это довольно непредсказуемая штука.
    Вот сейчас у вас отличная скорость, через долю секунды сосед начал качать большой файл и скорость уже в два раза меньше, а еще через секунду включилась микроволновка, и кто то начал елозить беспроводной мышкой по экрану - и скорость упала почти до нуля, потом опять поднялась.
    Плохо экранированная микроволновка, не очень удачная беспроводная мышка, или точка доступа соседа, запросто могут свести скорость к нулю.
    Ответ написан
    Комментировать
  • Как грамотно закрыть MySQLi?

    MegaMufa
    @MegaMufa
    Соединение закроется автоматически, когда отработает скрипт. В дальнейшем вам возможно еще раз понадобиться обращатся к бд. А установление соединения - довольно дорогостоящая операция.

    Если вы пишите на php и это не демон (написание которого на пыхе - сомнительное удовольствие), то об освобождении ресурсов сильно не парьтесь. Скрипт отработал - за вас все подчистят.

    Конкретно в этом случае, вынесите закрытие соединения в дестурктор. Или создайте отдельный метод close() и дергайте его.

    По поводу подхода. В данном случае действительно будет лучше писать в процедурном стиле (и в этом нет ничего плохого; ООП - не панацея). Здесь вы класс используете не по назначению. Классы нужны для разделения логики: один отвечает за соединение с бд, другой за формирование запросов, третий за формирование результатов.

    Я не хочу вас обидеть, но вы действительно не понимаете самого смысла ООП. И просто на голой теории это сложно понять. Я сам два года писал, используя ООП. И только потом понял для чего это на самом деле надо.

    Для поднятия навыка попробуйте покопаться в исходниках какого-нибудь фреймворка. Я в свое время перебрал ядро Yii. Он прост для понимания и не перегружен паттернами.

    Касательно конкретно этого случая, я уже сказал, вынесите закрытие соединения в деструктор.
    Ответ написан
    Комментировать
  • Как в первый раз передать ключи и сертификаты в удаленный офис для организации защищенного канала связи?

    @vilgeforce
    Раздолбай и программист
    Личным визитом.
    Ответ написан
    Комментировать
  • Как в iptables запретить передачу пакетов с интерфейса на интерфейс?

    gr1mm3r
    @gr1mm3r
    50% ответа в правильном вопросе. Остальное мануал.
    а не проще ли
    sysctl -w net.ipv4.ip_forward=0
    или
    echo 0 > /proc/sys/net/ipv4/ip_forward

    Это запрещает вообще пересылки пакетов между любыми интерфейсами и не надо явно указывать это в iptables.
    З.Ы. тоже самое сделать с net.ipv6.ip_forward
    З.Ы.Ы. не забудте
    sysctl -p /etc/sysctl.conf && service network restart


    З.Ы.Ы.Ы На пальцах тыкс
    Ответ написан
    Комментировать
  • Как в iptables запретить передачу пакетов с интерфейса на интерфейс?

    iptables -A FORWARD -i eth0 -o eth1 -j DROP
    iptables -A FORWARD -i eth1 -o eth0 -j DROP
    Ответ написан
    Комментировать
  • Как измерить длину линии UTP 5e 100BASE TX на linux?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    Чисто софта нет. Такое должно уметь делать твое железо (сетевуха, роутер), тогда на них уже есть или опция или софт.
    На Cisco роутерах часто встречается подобный функционал. Но точность там не слишком большая, в пределах нескольких метров легко может ошибиться, особенно если рядом с кабелем есть наводки.
    Ответ написан
    Комментировать
  • Как настроить фокус при съемке фотоаппаратом?

    sayber
    @sayber
    Да, я программирую на PHP и еще асинхронно!
    Не смог удержаться, простите.
    tumblr_nkkjrxdTAN1u9ap42o1_400.gif
    Ответ написан
    4 комментария
  • Как правильно настроить BGP?

    @FloorZ Автор вопроса
    Хотя отбой. Уже разобрался с протоколом методом проб и ошибок. Я не правильно разобрался в протоколе, точнее в принципе его маршрутизации. Сейчас немного поразмыслил и понял, что не правильно понял принцип БГП.

    Теперь 117 и другие маршрутизаторы спокойно пингуют всю сетку 192.168.0.0/23.
    3aad8326472c4958bda0ca920b790bc4.jpg
    Router#ping 192.168.0.35
    
    Type escape sequence to abort.
    Sending 5, 100-byte ICMP Echos to 192.168.0.35, timeout is 2 seconds:
    !!!!!
    Success rate is 100 percent (5/5), round-trip min/avg/max = 0/0/1 ms


    Вот что показывает sh ip bgp:
    Router(config)#do ip bgp
    ip bgp
       ^
    % Invalid input detected at '^' marker.
    	
    Router(config)#do sh ip bgp
    BGP table version is 71, local router ID is 100.0.0.17
    Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
                  r RIB-failure, S Stale
    Origin codes: i - IGP, e - EGP, ? - incomplete
    
       Network          Next Hop            Metric LocPrf Weight Path
    *> 104.0.0.0/24      117.0.0.2                0     0     0 108 109 104 i
    *  105.0.0.0/24      117.0.0.2                0     0     0 108 109 105 i
    *> 108.0.0.0/24      117.0.0.2                0     0     0 108 i
    *> 109.0.0.0/24      117.0.0.2                0     0     0 108 109 i
    *> 116.0.0.0/24      117.0.0.2                0     0     0 108 109 104 120 116 i
    *  116.1.0.0/24      117.0.0.2                0     0     0 108 109 104 120 116 i
    *> 117.0.0.0/24      0.0.0.0                  0     0 32768 i
    *> 120.0.0.0/24      117.0.0.2                0     0     0 108 109 104 120 i
    *> 192.168.0.0/23    117.0.0.2                0     0     0 108 109 104 120 i


    А вот я "оборвал" один из проводов:
    Router(config)#
    %LINEPROTO-5-UPDOWN: Line protocol on Interface GigabitEthernet0/0, changed state to down
    %BGP-5-ADJCHANGE: neighbor 117.0.0.2 Down Interface flap
    %BGP-5-ADJCHANGE: neighbor 116.1.0.1 Up
    %BGP-5-ADJCHANGE: neighbor 105.0.0.1 Up
    Router(config)#do sh ip bgp
    BGP table version is 87, local router ID is 100.0.0.17
    Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
                  r RIB-failure, S Stale
    Origin codes: i - IGP, e - EGP, ? - incomplete
    
       Network          Next Hop            Metric LocPrf Weight Path
    *> 104.0.0.0/24      116.1.0.1                0     0     0 116 120 104 i
    *                    105.0.0.1                0     0     0 105 109 104 i
    *  105.0.0.0/24      116.1.0.1                0     0     0 116 120 104 109 105 i
    *                    105.0.0.1                0     0     0 105 i
    *  108.0.0.0/24      116.1.0.1                0     0     0 116 120 104 109 108 i
    *>                   105.0.0.1                0     0     0 105 109 108 i
    *  109.0.0.0/24      116.1.0.1                0     0     0 116 120 104 109 i
    *>                   105.0.0.1                0     0     0 105 109 i
    *> 116.0.0.0/24      116.1.0.1                0     0     0 116 i
    *                    105.0.0.1                0     0     0 105 109 104 120 116 i
    *  116.1.0.0/24      116.1.0.1                0     0     0 116 i
    *                    105.0.0.1                0     0     0 105 109 104 120 116 i
    *> 117.0.0.0/24      0.0.0.0                  0     0     0 117 i
    *> 120.0.0.0/24      116.1.0.1                0     0     0 116 120 i
    *                    105.0.0.1                0     0     0 105 109 104 120 i
    *> 192.168.0.0/23    116.1.0.1                0     0     0 116 120 i
    *                    105.0.0.1                0     0     0 105 109 104 120 i


    А вот полная конфига 117 (аналогично сделал на всех маршрутизаторах)
    Router(config)#do sh run
    Building configuration...
    
    Current configuration : 1065 bytes
    !
    version 15.1
    no service timestamps log datetime msec
    no service timestamps debug datetime msec
    no service password-encryption
    !
    hostname Router
    !
    !
    !
    !
    !
    !
    ip cef
    no ipv6 cef
    !
    !
    !
    !
    license udi pid CISCO2911/K9 sn FTX152410ZM
    !
    !
    !
    !
    !
    !
    !
    !
    !
    !
    !
    spanning-tree mode pvst
    !
    !
    !
    !
    !
    !
    interface Loopback0
     ip address 100.0.0.17 255.255.255.255
    !
    interface GigabitEthernet0/0
     ip address 117.0.0.1 255.255.255.252
     duplex auto
     speed auto
    !
    interface GigabitEthernet0/1
     ip address 105.0.0.2 255.255.255.252
     duplex auto
     speed auto
    !
    interface GigabitEthernet0/2
     ip address 116.1.0.2 255.255.255.252
     duplex auto
     speed auto
    !
    interface Vlan1
     no ip address
     shutdown
    !
    router bgp 117
     bgp log-neighbor-changes
     no synchronization
     neighbor 117.0.0.2 remote-as 108
     neighbor 105.0.0.1 remote-as 105
     neighbor 116.1.0.1 remote-as 116
     network 100.0.0.0 mask 255.255.254.0
     network 117.0.0.0 mask 255.255.255.0
    !
    ip classless
    ip route 117.0.0.0 255.255.255.0 Null0 
    !
    ip flow-export version 9
    !
    !
    !
    !
    !
    !
    !
    line con 0
    !
    line aux 0
    !
    line vty 0 4
     login
    !
    !
    !
    end
    
    
    Router(config)#


    На BGP 120 стоит такой вот маршрут.
    ip route 192.168.0.0 255.255.254.0 FastEthernet1/0

    Вроде все =)
    Ответ написан
    4 комментария
  • Как изменить кодировку приложения командной строки?

    @ldvldv
    pamp1.exe - DOS программа
    Ставите Dosbox. Качаете keyrus. Запускаете DOSbox -> монтируете папку с keyrus -> запускаете keyrus -> запускаете pamp1.exe.

    db9ad788351341a5a7f791af02c3bcb2.png
    Ответ написан
    Комментировать
  • Как обжать телефонный кабель в RJ-45 патч-панели?

    saboteur_kiev
    @saboteur_kiev Куратор тега Компьютерные сети
    software engineer
    для аналоговых телефонов - два центральных (синий, бело-синий)
    для цифровых - четыре центральных (бело-зеленый/зеленый)

    по цветам я указал стандарт-B,
    Патч-панели могут быть разные. ориентируйтесь по центровке. Всегда помогает обжать один разъем, протестировать, затем обжать остальные
    Ответ написан
    Комментировать