Ответы пользователя по тегу Компьютерные сети
  • Аналоги GNS3. Кто какие знает?

    DmZ
    @DmZ
    Dynagen это обертка над Dynamips — эмулятором роутера. GNS3 как раз и используется для визуализации правил Dynagen/Dynamips + еще много чего.
    На той же GNS3 возможно запустить эмулятор (через QEMU) Cisco ASA, Cisco IDS. Так же поддерживается Juniper (JunOS на QEMU). И Cisco PIX (через pixemu).
    К сожалению L2 уровень никак не поддерживается, вернее есть свои свитчи, а не Cisco CLI.

    Из «условно» бесплатных GNS3 наверно единственная сборка с таким функционалом. Почему «условно»? Потому что IOS/ASA/PIX/JunOS имаджи все-таки нужно где-то доставать — они не бесплатны.

    Чуть больше работать с L2 позволяет работать Packet Tracer — он тоже «условно» бесплатный — доступный любому участнику Cisco Network Academy.

    Из платных и доступных это Bosson NetSim, NetVisualizer, Network Sims — их уже называли.

    Из не платных и не доступных — это Cisco IOS on Unix (на самом деле и под Linux есть ;) ) — он содержит фирмварь роутера и свича и позволяет собирать довольно сложные архитектуры (используется для подготовки к CCIE в том числе)

    Экспериментировать с топологией сети можно и с помощью программ типа Open vSwitch или VDE (Virtual Distributed Environment), которые позволяют задавать L2 уровень программно. Я использую VDE довольно плотно совместно с Qemu/GNS3.
    Ответ написан
    4 комментария
  • MikroTik. Домашная сеть 192.168.1.0/24 и рабочая сеть 192.168.1.0/24 через VPN

    DmZ
    @DmZ
    Вы правильно вычитали в вики, только вам нужен не srcnat, а dstnat.
    Т.е. вы можете попробовать соединится с офисом и замапить его диапазон 192.168.1.0/24 на виртуальный 1.1.1.0/24. И соответственно из дома ходить на адреса вида 1.1.1.10 которые будут разворачиваться в офисные 192.168.1.10.
    в этом случае dst-address=1.1.1.0/24 а to-addresses=192.168.1.0/24
    еще нужен будет маскарадинг на впн интерфейсе чтобы офис роутил нормально ответы и роут сети 1.1.1.0/24 через впн.
    Ответ написан
    3 комментария
  • Отлов дисконнекта клиента на стороне сервера?

    DmZ
    @DmZ
    Существует несколько ситуаций:
    • Если проблем в сети нет, то отвалившийся клиент «закроет» порт и сервер получит RST на свои пакеты, т.е. сервер «увидит» падение коннекта практически сразу.
    • Если существуют проблемы в сети, когда ответ от клиента не приходит, то есть параметры, которые отвечают за таймауты (выставляются через sysctl):
      tcp_retries1
      Целочисленная переменная tcp_retries1 определяет число неудачных попыток, после которого должна быть передана информация на сетевой уровень. В соответствии с RFC минимальное значение составляет 3 (по умолчанию установлено именно это значение), что соответствует периоду приблизительно от 3 секунд до 8 минут в зависимости от значения тайм-аута повторной передачи RTO (Retransmission time-out).

      tcp_retries2
      Целочисленная переменная tcp_retries2 определяет число неудачных попыток, после которого существующее соединение уничтожается. В соответствии с RFC 1122 тайм-аут должен быть больше 100 секунд. Такое значение слишком мало и по умолчания установлено число попыток 15, соответствующее тайм-ауту приблизительно от 13 до 30 минут в зависимости от RTO.

    Все параметры описаны в документации к исходинкам ядра (Documentation/networking/ip-sysctl.txt)

    Также эти параметры влияют на все TCP соединения данного сервера. Если нужно «тюнить» для конкретного своего приложения, то можно использовать параметр TCP_USER_TIMEOUT для tcp-сокета. Указывает время в миллисекундах ожидания подтверждения (ACK) данных. Параметр появился в 2.6.37.
    Для более ранних ядер можно мониторить исходящую очередь на сокете, и если она не уменьшается какое-то время — значит что-то случилось.
    Ответ написан
    Комментировать
  • libvirt через web

    DmZ
    @DmZ
    Есть API для Python, которое идет из коробки. Можно написать простенький сервис.
    Но есть уже virttool. Хотя он и не настолько простой как требуется (см. скриншоты) но зато выполняет функцию управления libvirt-доменами через веб.
    Ответ написан
  • Обнаружение IP-пакетов внутри потока данных?

    DmZ
    @DmZ
    В общем случае не выйдет просто найти пакет IPv6.
    Если есть заголовки Ethernet, то можно смотреть на «тип» и версию внутреннего протокола. (В любом случае это позволит практически 100% определять IPv4/IPv6 пакеты)
    В случае с PPP — прийдется анализировать и установку соединения и конфигурацию (IPCP/IP6CP) — одним регеэкспом не отделаешься :(

    Может проще посмотреть на нормальные тулзы типа Wireshark?
    Ответ написан