Пользователь пока ничего не рассказал о себе

Наибольший вклад в теги

Все теги (9)

Лучшие ответы пользователя

Все ответы (3)
  • Как у вас происходило обучение python?

    @Uragiremono
    Изучаю python, первый язык. Работаю с сетями, потому знакомство с python начал с прекрасной книги Наташи Самойленко Python для сетевых инженеров(книга абсолютно бесплатна).

    Как у вас шло изучение?
    Если вы уже пишите на python напишите пожалуйста как вы его изучали?

    Читая теорию, надо всегда закреплять практикой.
    Читаю главу много раз, начинаю решать задания, в процессе всегда обращаюсь к теории, т.к. запомнить всё нереально. Иногда сижу целый день над решением задания. Решая задания, запоминаю инструменты(полезные функции, модули, методы), следующие задания идут уже быстрее.

    Хватило ли вам одной книги чтобы написать программу которая описана выше?

    "A byte of python" не читал. Только "Python для сетевых инженеров", книгу освоил примерно на 20%, это 2 главы Основы Python и Повторное использование кода.

    Эту задачу не решал, но примерно уже понимаю как сделать:
    * для удобного взаимодействия со скриптом из командной строки, использовать модуль argparse
    * данные хранить в БД или просто в .txt файле или вообще сохранять объект(например словарь вида:
    {
        'ivan':{'number':'123', 'address':'pushkina'},
        'magomed':{'number':'456', 'address':'lenina'}
    }
    )
    * написать функций для просматривать, добавлять, изменять, удалять или искать контактные данные, которые будут взаимодейстовать с данными в БД/файлом/объектом

    Всё сводится к тому, что надо запомнить инструменты python'а(часто можно услышать от аксакалов python, что программирование это знание алгоритмов, а ЯП это просто инструмент, что конечно верно, но и как пользоваться инструментами тоже надо помнить, иначе это перманентный гуглёж):
    * типы данных, какими они бывают(изменяемые упорядочные и т.д.), как с ними взаимодействовать
    * функции
    * методы
    * операторы
    * циклы
    Это пока всё что я прошёл, даже с такими минимальными знаниями, я облегчил себе работу, автоматизировал рутинные задачи у себя на работе.

    Если что-то не понимаю, тупо гуглю, например задача: надоело прописывать логины/пароли при входе на коммутаторы.
    Гуглишь, на английском обычно больше инфы: подключиться к коммутатору python / connect to switch python
    узнаёшь про модуль pexpect, читаешь документацию, пишешь свой скрипт, всё, теперь в копилке знаний есть модуль pexpect, в следующий раз быстрее решишь задачу.

    Таким макаром пишу свои велосипеды, решил их публиковать, мало ли кому понадобиться, велопарк: https://github.com/Savamoti/scrips_for_reinventing...
    Рекомендую познакомиться с PEP8, не забывать писать комменты(у самого плохо получается пока) к коду, иначе через месяц уже не вспомнишь, для чего это функция, что ожидает и что возвращает.
    Ответ написан
    Комментировать
  • Как в Mikrotik направить весь трафик на VPN кроме определенных адресов?

    @Uragiremono
    Исходные данные:
    WAN - ether1, выход к провайдеру
    172.20.10.2/24 - адрес полученный от провайдера
    172.20.10.1 - его шлюз
    LAN - 192.168.1.0/24
    VPN - ovpn_client
    10.10.10.2/32 - адрес полученный от VPN-сервера
    10.10.10.1 - его шлюз
    с опцией add-default-route=yes, весь трафик по-умолчанию должен уходить через VPN

    Теория такая, сейчас весь трафик по-умолчанию уходит через VPN.
    Нужно промаркировать нужный трафик и отправить его на нужный маршрут.

    1. Завернуть весь трафик в ВПН кроме определенных IP
    # создать список адресов, которые не должны идти через VPN
    ip firewall address-list add list=exclude_list address=192.168.1.10
    ip firewall address-list add list=exclude_list address=192.168.1.11
    
    # маркируем пакеты
    ip firewall mangle add chain=prerouting action=mark-routing dst-address-list=exclude_list new-routing-mark=ether1_route_mangle passthrough=no src-address=192.168.1.0/24
    
    # изменяем маршрут, который идёт к провайдеру
    ip route add dst-address=0.0.0.0/0 gateway=172.20.10.1 distance=1 routing-mark=ether1_route_mangle


    2. Завернуть весь трафик в ВПН кроме определенных доменов *.host.com или поддоменов *
    Тоже самое, что и в 1 варианте, только вместо IP, вводить домен
    ip firewall address-list add list=exclude_list address=host.com
    ip firewall address-list add list=exclude_list address=test.host.com


    3. Завернуть весь трафик в ВПН кроме определенных IP + за исключением определенных устройств (клиентов)
    Это ведь тоже самое, что и первый вариант?
    "определенных устройств" есть IP/домен, просто их добавить в список
    Ответ написан
    3 комментария