По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
В этой статье мы рассмотрим протокол маршрутизации Cisco EIGRP. EIGRP (Enhanced Interior Gateway Routing Protocol) - это протокол расширенной векторной маршрутизации, который должен устанавливать отношения соседства перед отправкой обновлений. Из-за этого первое, что нам нужно сделать, это проверить, правильно ли работает соседство. Если это так, мы можем продолжить, проверив, объявляются сети или нет. В этой статье рассмотрим все, что может пойти не так с EIGRP, как это исправить и в каком порядке. Давайте начнем с проверки соседства! Существует ряд элементов, которые вызывают проблемы соседства EIGRP: Неизвестная подсеть: соседи EIGRP с IP-адресами, которые не находятся в одной подсети. Несоответствие значений K: по умолчанию пропускная способность и задержка включены для расчета метрики. Мы можем включить нагрузку и надежность, но мы должны сделать это на всех маршрутизаторах EIGRP. Несоответствие AS: номер автономной системы должен совпадать на обоих маршрутизаторах EIGRP, чтобы сформировать соседство. Проблемы уровня 2: EIGRP работает на уровне 3 модели OSI. Если уровни 1 и 2 не работают должным образом, у нас будут проблемы с формированием соседства. Проблемы со списком доступа: возможно, кто-то создал список доступа, который отфильтровывает многоадресный трафик. EIGRP по умолчанию использует 224.0.0.10 для связи с другими соседями EIGRP. NBMA: по умолчанию Non Broadcast Multi Access сети, такие как Frame Relay, не разрешают широковещательный или многоадресный трафик. Это может препятствовать тому, чтобы EIGRP формировал соседние отношения EIGRP. OFF1(config)#int f0/0 OFF1(config-if)#ip address 192.168.12.1 255.255.255.0 OFF1(config-if)#router eigrp 12 OFF1(config-router)#network 192.168.12.0 OFF2(config)#int f0/0 OFF2(config-if)#ip address 192.168.21.2 255.255.255.0 OFF2(config)#router eigrp 12 OFF2(config-router)#network 192.168.21.0 Ошибку неверной подсети легко обнаружить. В приведенном выше примере у нас есть 2 маршрутизатора, и вы можете видеть, что были настроены разные подсети на каждом интерфейсе. После включения EIGRP всплывают следующие ошибки: Оба маршрутизатора жалуются, что находятся не в одной подсети. OFF2(config-router)#int f0/0 OFF2(config-if)#ip address 192.168.12.2 255.25 OFF2(config)#router eigrp 12 OFF2(config-router)#no network 192.168.21.0 OFF2(config-router)#network 192.168.12.0 Мы изменили IP-адрес на OFF2 и убедились, что для EIGRP правильно настроена команда network. Вуаля! Теперь у нас есть соседство EIGRP. Проверим это с помощью команды show ip eigrp neighbors. Извлеченный урок: убедитесь, что оба маршрутизатора находятся в одной подсети. Case #2 На этот раз IP-адреса верны, но мы используем разные значения K с обеих сторон. OFF1 включил пропускную способность, задержку, нагрузку и надежность. OFF2 использует только пропускную способность и задержку. Эту ошибку легко обнаружить, поскольку сообщение в консоли гласит "Несоответствие K-значений" на обоих маршрутизаторах. Мы можем проверить нашу конфигурацию, посмотрев ее на обоих маршрутизаторах. Как вы видите, что значения K были изменены на OFF1. OFF2(config)#router eigrp 12 OFF2(config-router)#metric weights 0 1 1 1 1 0 Давайте убедимся, что значения K одинаковы на обоих маршрутизаторах, так как мы изменили их на OFF2. После изменения значений K у нас появилось соседство EIGRP-соседей. Еще одна проблема решена! Извлеченный урок: убедитесь, что значения K одинаковы на всех маршрутизаторах EIGRP в одной и той же автономной системе. Case #3 Давайте продолжим со следующей ошибкой ... Вот еще один пример типичной проблемы. Несоответствие номера AS. Когда мы настраиваем EIGRP, мы должны ввести номер AS. В отличие от OSPF (который использует ID процесса) этот номер должен быть одинаковым на обоих маршрутизаторах. В отличие от других неверных настроек конфигурации EIGRP, эта проблема не выдает сообщение об ошибке. Используем команду show ip eigrp neighbors и видим, что соседей нет. Внимательно изучите выходные данные, чтобы обнаружить различия, и вы увидите, что маршрутизаторы используют разные номера AS. Если посмотреть на работающую конфигурацию, и мы увидим то же самое. Давайте изменим номер AS на OFF2. После смены номера AS все заработало как положено. Извлеченный урок: убедитесь, что номера AS одинаковые, если вы хотите соседства EIGRP. Case #4 И последнее, но не менее важное: если вы проверили номер AS, значения K, IP-адреса и у вас все еще нет работающего соседства EIGRP, вам следует подумать о безопасности. Возможно, access-list блокирует EIGRP и/или многоадресный трафик. Следующая ситуация: опять два маршрутизатора EIGRP и отсутствие соседства. Что здесь происходит? Мы видим, что нет соседей ... Если вы посмотрите на вывод команды show ip protocols, то увидите, что сеть была объявлена правильно. Если вы посмотрите внимательно на OFF2, вы увидите, что у нас есть пассивный интерфейс. Удалим настройки пассивного интерфейса! OFF2(config)#router eigrp 12 OFF2(config-router)#no passive-interface fastEthernet 0/0 Еще одна неправильная настройка создала нам проблемы, но мы ее решили. Задача решена! Извлеченный урок: не включайте пассивный интерфейс, если вы хотите установить соседство EIGRP. Case #5 В приведенном выше примере у нас есть те же 2 маршрутизатора, но на этот раз кто-то решил, что было бы неплохо настроить список доступа на OFF2, который блокирует весь входящий многоадресный трафик. Здесь можно запутаться. На OFF1 мы видим, что он считает, что установил соседство EIGRP с OFF2. Это происходит потому, что мы все еще получаем пакеты EIGRP от OFF2. Используем команду debug eigrp neighbors, чтобы посмотреть, что происходит. Очевидно, что OFF1 не получает ответ от своих hello messages, holdtime истекает, и это отбрасывает установление соседства EIGRP. Быстрый способ проверить подключение - отправить эхо-запрос по адресу многоадресной рассылки 224.0.0.10, который использует EIGRP. МЫ видим, что мы ответа нет от этого запроса. Рекомендуется проверить, есть ли в сети списки доступа. Так, так! Мы нашли что-то ... Этот список доступа блокирует весь многоадресный трафик. Давайте сделаем настройку, которая разрешит EIGRP. OFF2(config)#ip access-list extended BLOCKMULTICAST OFF2(config-ext-nacl)#5 permit ip any host 224.0.0.10 Мы создаем специальное правило, которое будет разрешать трафик EIGRP. Как мы видим, что трафик EIGRP разрешен - это соответствует правилу, которое мы выше создали. Оба маршрутизатора теперь показывают рабочее соседство EIGRP. Эхо-запрос, который мы только что отправили, теперь работает. Извлеченный урок: не блокируйте пакеты EIGRP! Case #6 Рассмотрим очередную ситуацию, в которой нет соседства EIGRP. На картинке выше мы имеем сеть Frame Relay и один канал PVC между OFF1 и OFF2. Вот соответствующая конфигурация: Оба маршрутизатора настроены для Frame Relay, а EIGRP настроен. Видно, что нет соседей ... это не хорошо! Можем ли мы пропинговать другую сторону? Пинг проходит, поэтому мы можем предположить, что PVC Frame Relay работает. EIGRP, однако, использует многоадресную передачу, а Frame Relay по умолчанию - NBMA. Можем ли мы пропинговать адрес многоадресной рассылки EIGRP 224.0.0.10? Здесь нет ответа на наш вопрос, по крайней мере, теперь мы знаем, что unicast трафик работает, а multicast не работает. Frame Relay может быть настроен для point-to-point или point-to-multipoint соединения. Физический интерфейс всегда является интерфейсом frame-relay point-tomultipoint, и для него требуются frame-relay maps, давайте проверим это: Мы видим, что оба маршрутизатора имеют DLCI-to-IP карты, поэтому они знают, как связаться друг с другом. Видим, что они используют ключевое слово "статический", а это говорит о том, что это сопоставление было кем-то настроено и не изучено с помощью Inverse ARP (в противном случае вы увидите "динамический"). Мы не видим ключевое слово "broadcast", которое требуется для пересылки широковещательного или многоадресного трафика. На данный момент у нас есть 2 варианта решения этой проблемы: Настроить EIGRP для использования одноадресного трафика вместо многоадресного. Проверить конфигурацию Frame Relay и убедится, что многоадресный трафик не перенаправляется. Давайте сначала сделаем unicast настройку EIGRP: OFF1(config)#router eigrp 12 OFF1(config-router)#neighbor 192.168.12.2 serial 0/0 OFF2(config)#router eigrp 12 OFF2(config-router)#neighbor 192.168.12.1 serial 0/0 Нам нужна команда neighbor для конфигурации EIGRP. Как только вы введете эту команду и нажмете enter, вы увидите это: Задача решена! Теперь давайте попробуем другое решение, где мы отправляем multicast трафик по PVC Frame Relay: OFF1(config)#router eigrp 12 OFF1(config-router)#no neighbor 192.168.12.2 serial 0/0 OFF2(config)#router eigrp 12 OFF2(config-router)#no neighbor 192.168.12.1 serial 0/0 Если это не работает ... не исправляйте это... , но не в этот раз! Пришло время сбросить соседство EIGRP. OFF1(config)#interface serial 0/0 OFF1(config-if)#frame-relay map ip 192.168.12.2 102 broadcast OFF2(config)#interface serial 0/0 OFF2(config-if)#frame-relay map ip 192.168.12.1 201 broadcast Broadcast - это ключевое волшебное слово здесь. Это разрешит широковещательный и многоадресный трафик. После изменения конфигурации frame-relay map появляется соседство EIGRP! Это все, что нужно сделать. Извлеченный урок: проверьте, поддерживает ли ваша сеть Frame Relay broadcast или нет. Настройте EIGRP для использования unicast передачи или измените конфигурацию Frame Relay для поддержки широковещательного трафика. Продолжение цикла про поиск и устранение неисправностей протокола EIGRP можно почитать тут.
img
Благодаря Интернету любой человек в мире может получить доступ к ресурсам, на благодаря которым можно научиться программировать за небольшие деньги или вообще без них. Хотя это прекрасно для тех, кто хочет стать разработчиком программного обеспечения, это также создает проблемы, особенно если вы только начинаете. Каждый новый клик приводит к новой рекомендуемой статье, учебному пособию или видео на YouTube для изучения. Но как сделать правильный выбор? Эта статья должна помочь выбрать язык программирования, с которого можно начать изучать программирование или на котором можно сосредоточиться если вы уже изучаете несколько языков. А выбор то действительно большой. Какие сегодня используются языки программирования и что популярно? Веб-приложения: JavaScript, PHP, Ruby, HTML / CSS, TypeScript Мобильные приложения: Swift, Java, JavaScript, Object-C Операционные системы: C, C ++ Распределенные системы: Go Корпоративные приложения: Java, C #, C ++, ErLang Аналитика и машинное обучение: Python, R, Clojure, Julia Математические и научные вычисления: Matlab, FORTRAN, ALGOL, APL, Julia, R, C ++ Визуализация данных: Python, R, Java, C # Большие данные: Java, Python, R, Scala, Clojure Хранение данных: SQL, C #, Java, Python Не уверены, где начать? Вот важный совет - выучите язык общего назначения - general-purpose language. Почему стоит начинать именно с них? Потому что они широко используется и не ограничивается одной областью, это очень важно. Python Простой и понятный синтаксис Python делает его отличным языком общего назначения для освоения. Язык обладает динамической системой типов, автоматическим управлением памятью и поддерживает несколько парадигм программирования, таких как объектно-ориентированная, функциональная и императивная. Многие домены приложений используют его всеобъемлющую стандартную библиотеку. Веб-приложения и приложения для настольных компьютеров, серверы, машинное обучение и приложения для искусственного интеллекта используют Python. Он постоянно входит в число лучших языков программирования каждый год, а количество вакансий с ним просто огромное. JavaScript Согласно ежегодному опросу разработчиков по Stack Overflow, более 70% всех разработчиков используют JavaScript. Он универсален, может применяться практически в любой области программного обеспечения и является одним из основных интерфейсных языков Всемирной паутины. JavaScript также позволяет интерактивные веб-страницы и имеет важное значение для большинства веб-приложений. JavaScript является мультипарадигмальным языком и поддерживает множество стилей программирования от объектно-ориентированного до функционального. У этого также есть огромное, быстро растущее число библиотек, включая некоторые внутренние серверы. Самые известные – React, Angular и Vue.Он настолько популярен, что у него даже есть фреймворки в тех областях, где это не самый лучший вариант, например, в разработке игр и виртуальной реальности. Ruby Как и другие языки, Ruby поддерживает несколько парадигм программирования, таких как объектно-ориентированная, функциональная и императивная. Это также показывает динамическую систему типов и автоматическое управление памятью. Ruby в основном используется в веб-приложениях с платформой Ruby on Rails, но также используется на внутренних серверах и базах данных. Одним из главных достоинств Ruby является его дружелюбие к начинающим. Это один из самых прощающих языков в списке - вы все равно сможете скомпилировать и запустить свою программу до появления проблемы. Его также легко освоить, потому что его синтаксис близок к разговорной речи, и он может делать то же, что и другие языки, с гораздо меньшим количеством строк кода. Java Знаменитый слоган Java - «пиши один раз, запускай где угодно», поскольку он работает на любой платформе, которая его поддерживает. Java является одним из наиболее широко известных языков среди новых разработчиков и вторым наиболее используемым языком в Stack Overflow. Java - это мультипарадигмальный язык, основанный на классах, объектно-ориентированный и разработанный с наименьшей зависимостью от реализации. Благодаря своей структуре он имеет широкий спектр применения в разных областях применения. Одним из наиболее известных применений является разработка приложений для Android, но он также популярен для настольных, веб, серверных и сетевых приложений. Хотя синтаксис Java поначалу может показаться сложным, его освоение может стоить того, чтобы получить первую работу в качестве разработчика. Думаете о конкретной области? Если у вас уже есть конкретная цель - работать над машинным обучением, стать разработчиком мобильных приложений или присоединиться к стартапу, подумайте над освоением языка, соответствующего этой цели. Какой язык программирования нужен для машинного обучения Согласно отчету о GitHub, Python был наиболее часто используемым языком для машинного обучения в 2018 году. Объедините свои знания Python с библиотекой TensorFlow, и вы получите прекрасную возможность получить захватывающую работу, связанную с машинным обучением. Язык программирования R будет следующим лучшим выбором для машинного обучения. Он наиболее эффективен для анализа и обработки данных в статистических целях. Он также предлагает множество пакетов, которые облегчают реализацию алгоритмов машинного обучения. Какой язык программирования изучить для мобильной разработки Если вы заинтересованы в разработке мобильных приложений, вам придется решить, хотите ли вы разрабатывать для устройств Android или Apple. Java - ваш лучший выбор для разработки на Android. Тем не менее, разработка мобильной Java отличается от обычной Java из-за ограниченной мощности смартфонов. Например, обычная Java-программа работает до тех пор, пока вы ее не выключите, а приложение Android можно закрыть в любое время, если оно не запущено на переднем плане. Со стороны iOS, вам стоит изучить Swift, официальный язык Apple для iOS, macOS и другой код, написанный для продуктов Apple. Также можно предложить Objective-C, потому что вы можете создавать графические пользовательские интерфейсы и многофункциональные фреймворки, но Swift легче учить, легче читать, и он одобрен самими Apple. JavaScript - еще один хороший вариант для мобильной разработки. В сочетании с HTML и CSS вы можете создавать приложения, которые можно конвертировать в собственные приложения с помощью Cordova. Другим примером является стек .NET, который также можно использовать для создания приложений и их преобразования с использованием Xamarin. Конечно, эти примеры подчеркивают важность изучения языка общего назначения еще больше. Какой язык программирования выучить для того чтобы запустить стартап Если вы знаете, что хотите создать или присоединиться к стартапу, ничто не сравнится с знанием Ruby и Ruby on Rails. Ruby дружелюбен к новичкам и позволяет разработчикам быстро создавать прототипы, что делает его отличным выбором для быстроразвивающихся стартапов. Каких языков избегать? Есть много других языков на выбор. Некоторые из самых популярных в настоящее время включают Go, Scala, TypeScript, C ++ и Rust. Однако, если вы начинаете изучать разработку программного обеспечения, вам следует избегать большинства из них. Многие языки сложны, продвинуты или слишком сфокусированы на одной области приложения. Итог Гиперфокус на овладение одним языком, а не на изучение нескольких языков Если вы не знаете, с какого языка начать, выберите язык общего назначения Не переживайте о том, какой из них вы должны выбрать, потому что есть рабочие места для каждого языка. Важнее всего ваша мотивация, решимость и способность сосредоточиться на изучении и овладении выбранным вами языком.
img
Apache Maven - это инструмент управления проектами и автоматизации сборки с открытым исходным кодом, основанный на концепции объектной модели проекта (POM – Project Object Model), которая в основном используется для развертывания приложений на основе Java, но также может использоваться в проектах, написанных на C#, Ruby и другиех языках программирования. В этой статье мы объясним, как установить и настроить последнюю версию Apache Maven в системе CentOS 7 (данная инструкция также работает с дистрибутивом RHEL и Fedora). Требования: Недавно развернутый или существующий экземпляр сервера CentOS 7. Java Development Kit (JDK) - Maven 3.3+ требует JDK 1.7 или выше для выполнения. Установка OpenJDK 8 в CentOS 7 Java Development Kit (JDK) является основным требованием для установки Apache Maven, поэтому сначала установите Java в системе CentOS 7 из репозитория по умолчанию и проверьте версию с помощью следующих команд. # yum install -y java-1.8.0-openjdk-devel # java -version Если установка прошла успешно то, вы увидите следующий вывод. openjdk version "1.8.0_141" OpenJDK Runtime Environment (build 1.8.0_141-b16) OpenJDK 64-Bit Server VM (build 25.141-b16, mixed mode) Установка Apache Maven в CentOS 7 Далее перейдите на официальную страницу загрузки Apache Maven и загрузите последнюю версию или используйте следующую команду wget, чтобы загрузить ее в домашний каталог maven ‘/usr/local/src’. # cd /usr/local/src # wget http://www-us.apache.org/dist/maven/maven-3/3.5.4/binaries/apache-maven-3.5.4-bin.tar.gz Настройка среды Apache Maven Теперь нам нужно сконфигурировать переменные окружения для предварительно скомпилированных файлов Apache Maven в нашей системе, создав файл конфигурации «maven.sh» в каталоге «/etc/profile.d» . # cd /etc/profile.d/ # vim maven.sh Добавьте следующую конфигурацию в файл конфигурации «maven.sh». # Apache Maven Environment Variables # MAVEN_HOME for Maven 1 - M2_HOME for Maven 2 export M2_HOME=/usr/local/src/apache-maven export PATH=${M2_HOME}/bin:${PATH} Теперь сделайте конфигурационный файл «maven.sh» исполняемым, а затем загрузите конфигурацию, выполнив команду «source» . # chmod +x maven.sh # source /etc/profile.d/maven.sh Проверка версии Apache Maven Чтобы проверить установку Apache Maven, выполните следующую команду. # mvn --version И вы должны получить вывод, похожий на следующий: Apache Maven 3.5.4 (1edded0938998edf8bf061f1ceb3cfdeccf443fe; 2018-06-17T19:33:14+01:00) Maven home: /usr/local/src/apache-maven Java version: 9.0.4, vendor: Oracle Corporation, runtime: /opt/java/jdk-9.0.4 Default locale: en_US, platform encoding: UTF-8 OS name: "linux", version: "4.17.6-1.el7.elrepo.x86_64", arch: "amd64", family: "unix" Вот и все! Вы успешно установили Apache Maven 3.5.4 в вашей системе CentOS 7.
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59