По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
В сегодняшней статье рассмотрим сценарий с настройкой отказоустойчивости на маршрутизаторе Cisco с использованием двух интернет провайдеров. При случае аварии у вашего интернет оператора отказоустойчивость с использованием двух провайдеров является очень хорошей идеей, более того – иногда без этого не обойтись. Однако, в таком сценарии часто необходимо использовать протокол маршрутизации BGP, который довольно нелегок в настройке и предъявляет высокие требования к оборудованию. В большинстве случаев, вам необходимы две выделенных IPv4 подсети – но учтите, что покупка IPv4 блока является довольно дорогостоящей затеей. Однако, есть альтернативное и более бюджетное решение – если вам не нужна целая подсеть от провайдера, у вас может быть основной и запасной WAN каналы и использовать NAT для обоих линков с автоматическим фэйловером. Данный сценарий будет работать только для сетей, у которых есть исходящий трафик. Описание сценария и настройка В примере ниже мы продемонстрируем стандартную топологию – данное решение задачи будет работать во многих сценариях. Вы все еще можете использовать BGP соединение для каждого провайдера, который анонсирует дефолтный маршрут, однако, как правило, провайдеры делают это за отдельную плату. В данной топологии мы будем использовать два плавающих статических маршрутах. На топологии ниже у нас есть два WAN соединения (ISP1 – основной линк и ISP2 – запасной линк). Нам просто необходимо предоставить доступ в интернет для нашей внутренней подсети. Все настройки в данной статье были выполнены на маршрутизаторе Cisco 891-K9 с двумя WAN портами и IOS версии c880data-universalk9-mz.153-3.M2.bin Настройка маршрутизатора Сначала настраиваем интерфейсы: interface GigabitEthernet0 description Internet_ISP1_Main ip address 10.10.10.10 255.255.255.0 no ip proxy-arp ip nat outside //включаем NAT на первом интерфейсе interface FastEthernet8 description Internet_ISP2_Back-up ip address 100.100.100.100 255.255.255.0 no ip proxy-arp ip nat outside //включаем NAT на втором интерфейсе interface Vlan1 description Local_Area_Network ip address 192.168.1.1 255.255.255.0 ip nat inside //весь сгенерированный трафик будет NATирован Затем настраиваем ACL (лист контроля доступа) в соответствии с нашей внутренней подсетью: ip access-list extended NAT_LAN permit ip 192.168.1.0 0.0.0.255 any Переходим к настройке маршрутных карт, которые будут выбирать какой трафик НАТировать на каждом интерфейсе: route-map NAT_ISP1_Main permit 10 match ip address NAT_LAN //совпадение для настроенного прежде ACL с внутренней подсетью match interface GigabitEthernet0 //совпадение для первого WAN интерфейса ! route-map NAT_ISP2_Back-up permit 10 match ip address NAT_LAN //совпадение для настроенного прежде ACL с внутренней подсетью network match interface FastEthernet8 //совпадение для второго WAN интерфейса Настраиваем отслеживание и SLA для замены канала в случае аварии: ip sla 1 icmp-echo 8.8.8.8 source-interface GigabitEthernet0 //пингуем DNS Гугла используя первый интерфейс frequency 30 //пинги отправляются раз в 30 секунд ip sla schedule 1 life forever start-time now //SLA респондер включен track 1 ip sla 1 //“объект” для отслеживания создан с помощью IPSLA1 Добавляем маршруты по умолчанию: ip route 0.0.0.0 0.0.0.0 10.10.10.1 track 1 ip route 0.0.0.0 0.0.0.0 100.100.100.1 30 Пока объект track 1 «поднят», первый маршрут будет указан в таблице маршрутизации. Если данный объект «упадет», то маршрут будет заменен на второй маршрут по умолчанию с метрикой 30. Как заключительный шаг – включаем NAT: ip nat inside source route-map NAT_ISP1_Main interface GigabitEthernet0 overload ip nat inside source route-map NAT_ISP2_Back-up interface FastEthernet8 overload
img
Сериализация – это процесс, в котором одна служба берет структуру данных, такую как словарь в Python, упаковывает ее и передает другой службе для чтения. Это максимально простое определение. Представьте, что мне нужно отправить кому-то сообщение. Итак, я записываю текст на уже собранный пазл. Далее я разбираю части пазла, добавляю несколько инструкций о том, как его собрать, и отправляю его. Затем получатель сообщения, получив кусочки головоломки, собирает их вместе. И теперь у него есть мое сообщение. Техническое определение этого понятия немного интереснее. А именно, сериализация – это процесс преобразования объекта данных в поток байтов и сохранения состояния объекта для хранения на диске или передачи по сети. Это сокращает необходимый размер хранилища и упрощает передачу информации по сети. Маршалинг и сериализация – в чем разница? Здесь на ум может прийти понятие маршалинга (Marshalling). Маршалинг – это процесс преобразования представления объекта в памяти в форму, подходящую для передачи. Хотя маршалинг и сериализация в общих чертах похожи, между ними все-таки есть принципиальная разница. Например, при создании программы в Golang для считывания JSON данных в структуру данных Golang вы можете использовать маршалинг для преобразования пары «ключ-значение» JSON в пару «ключ-значение» Golang. Разница в том, что маршалинг используется для преобразования данных. А сериализация, напротив, отправляет или сохраняет данные в потоке байтов и повторно собирает их в исходную форму. Оба процесса вроде бы выполняют процесс сериализации, но с разными намерениями. Вы можете увидеть структуру, которую я создал для взаимодействия с данными Twitter, ниже, как пример процесса маршалинга в действии. В Golang вы можете вставлять подсказки, называемые тегами, легко преобразовывая этот объект в данные JSON с помощью встроенной службы маршалинга Golang. Что такое Endianness? Я также хотел бы немного затронуть тему порядка следования байтов. Endianness – это термин, который используется для описания порядка байтов в памяти. Представьте, что память – это блок, в котором хранятся биты данных. Чтобы сериализация работала, поток байтов должен передавать типы данных независимо от изменения порядка следования байтов из одной системы в другую. Здесь вы можете увидеть большие различия и не очень. Очень важно, чтобы порядок следования байтов из одной системы в другую совпадал или каким-либо образом преобразовывался, поскольку не все системы упорядочивают свои биты одинаково. Little endian (от младшего к старшему) и big endian (от старшего к младшему) Варианты использования сериализации Наш вариант использования в полной мере использует все функции сериализации. Мы планируем получить некоторую информацию от сканируемого оборудования, упаковать эту информацию в поток байтов и отправить ее по сети в другую службу, которая восстановит данные. Процесс обратной сериализации и восстановления данных в исходную форму называется десериализацией. Есть и другие варианты использования сериализации. Например, REST API или протоколы обмена сообщениями, такие как AMQP, могут использовать сериализацию для сжатия и отправки данных. AMQP – это протокол обмена сообщениями, в котором вы отправляете сообщение брокеру AMQP, а служба-получатель «прослушивает» этого брокера в поисках сообщения. Серверные специалисты должны быть хорошо с этим знакомы, так как это часто используется для отправки данных туда и обратно в распределенных системах. Многие языки программирования включают возможность легкого развертывания некоторой сериализации. Так что это языково-независимая тема. Пример сериализации Приведем краткий пример. Код, приведенный ниже, использует библиотеку kombu для отправки сообщений через AMQP. Мы используем ее для отправки сообщений из одного программного пакета в другой по сети. Данный код предназначен для службы, отправляющей сообщение брокеру AMQP: Обратите внимание на метод publish. Мы передаем метод сериализации в качестве аргумента, чтобы библиотека понимала, как сериализовать данные, которые мы передаем. Сообщение с данными преобразуется в поток байтов, который, если на него посмотреть, выглядит просто как длинная строка букв и цифр. И мы отправляем сообщение. Соответствующая служба будет использовать тот же метод сериализации для восстановления данных в их исходное состояние. Это важная функция, поскольку мы создаем набор инструментов, которые должны иметь возможность отправлять сообщения друг другу, чтобы все работало. Форматы данных сериализации В основном я использую JSON для сериализации, когда этого требует задача. Но тем не менее, вы можете использовать и другие варианты. У JSON много издержек, но для меня он идеален, потому что он читабелен. Вы также можете использовать Protobuf, YAML или XML. Это лишь некоторые из возможных. Заключение Сериализация становится необходимостью, когда вы строите свои каналы связи. Полезно знать о таком понятии, чтобы чувствовать себя уверенно при подходе к любому инструменту, который вы используете, с соответствующими базовыми знаниями.
img
Всем привет! Недавно в одной из статей мы рассказывали о подключении Third Party SIP к Cisco Unified Communications Manager (CUCM) . Сейчас же мы расскажем о том, как подключить к CUCM софтвон Cisco IP Communicator. Cisco IP Communicator представляет собой приложение, устанавливаемое на компьютер, которое позволяет использовать его как полноценный IP-телефон Cisco Настройка Первым делом в Cisco Unified CM Administration переходим во вкладку Device - Phone и нажимаем кнопку Add New. Тут в поле Phone Type из выпадающего меню выбираем Cisco IP Communicator и нажимаем Next. В следующем окне в поле Select the device protocol выбираем протокол SCCP, нажимаем Next и попадаем в окно Phone Configuration. Теперь открываем Cisco IP Communicator и заходим в меню его настроек. Тут во вкладке Network нужно указать Device Name у телефона. Это можно сделать либо используя MAC-адрес сетевого адаптера (Use Network Adapter to generate Device Name), либо указать его самому в формате SEP[mac-address] (Use This Device Name). Также тут указываем адрес TFTP сервера, на котором хранятся конфигурационные файлы. Затем возвращаемся в окно настройки телефона и заполняем следующие обязательные поля: Device Name – указываем выбранное нами имя, в формате SEP[mac-address]; Device Pool – Default по умолчанию; Phone Button Template – Standard CIPC SCCP; Device Security Profile – Cisco IP Communicator; После этого сохраняем настройки и в новом окне нажимаем Line [1] → Add a new DN, где в открывшемся окне в поле Directory Number указываем желаемый номер для софтфона. После сохранения настроек Cisco IP Communicator перезагрузится и будет готов к использованию.
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59