По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
Эта статья направлена на сохранение нервных клеток и времени наших читателей. Дело в том, что по умолчанию, разрешение имен (domain lookup) включено на каждом маршрутизаторе. Тем самым, роутер, интерпретирует каждую команду как имя хоста для подключения по Telnet и пытается разрешить этот хостнейм в IP – адрес, обращаясь к DNS серверу – но, само собой, безуспешно, так как обычно, это команда Cisco IOS, в которой просто допущена ошибка синтаксиса. В статье мы покажем 3 способа, как можно избавиться от этого безобразия. Router>en Router#wiki.meironet.ru Translating "wiki.meironet.ru"...domain server (255.255.255.255) % Unknown command or computer name, or unable to find computer address Способ №1: выключаем разрешение имен Если вашему маршрутизатору не нужно разрешать доменные имена, то почему бы просто не отключить лукап? Делается это предельно просто: Router>en Router#conf t Router(config)#no ip domain lookup Router(config)#exit Посмотрите на скриншот – мы отключили лукап и трансляция сразу перестала забирать наше время: Способ №2: отключаем исходящие Telnet подключения Если вам все – таки требуется оставить разрешение доменных имен на роутере, то можно пойти другим путем – отключить исходящие Telnet соединения с маршрутизатора, ведь как мы сказали в начале статьи, именно они являются причиной трансляций. Router>en Router#conf t Router(config)#ip domain lookup Router(config)#line con 0 Router(config-line)#transport output none Router(config-line)#exit Router(config)#exit Вот что мы имеем на выходе: Способ №3: регулируем тайм – аут подключения Итак, финальный способ, это конфигурация таймаута подключения. По умолчанию, Cisco IOS пуляет коннекции с паузой в 30 секунд. Если способ №1 и способ №2 вам не подошли, то этот метод для вас. Сделаем тайм – аут 5 секунд, например: Router>en Router#conf t Router(config)# ip tcp synwait-time 5 Setting syn time to 5 seconds Router(config)#exit
img
Любая программа – это набор инструкций, будь то добавление 2 чисел или отправка запроса по сети. Компиляторы и интерпретаторы берут понятный для человека код и переводят его на машинный язык, который может прочесть компьютер. В компилируемом языке целевая машина переводит программу самостоятельно. В интерпретируемом языке исходный код не переводится самой машиной; его читает и выполняет другая программа (интерпретатор). Подробное объяснение Представьте ситуацию: вы решили приготовить хумус. Но имеющийся у вас рецепт написан на древнегреческом. У вас, как человека не знающего этого языка, есть два варианта. Вариант 1: кто-то уже перевел этот рецепт на ваш язык. Поэтому вы (и любой человек, знающий ваш язык) сможете прочесть рецепт в переводе и приготовить хумус. Переведенный рецепт и будет компилированной версией. Есть и другой вариант: у вас есть друг, который знает древнегреческий. Поэтому, решив приготовить хумус, вы пригласили этого друга к себе. Друг сидит рядом и переводит рецепт – строчка за строчкой, – а вы занимаетесь готовкой. Ваш друг – это интерпретатор (переводчик) для интерпретируемой версии рецепта. Компилируемые языки Компилируемые языки сразу переводятся в машинный код, который может выполнить процессор. В результате они выполняются быстрее и эффективнее, чем интерпретируемые языки. Кроме того, в таких языках разработчик лучше контролирует аппаратные средства (управление памятью, использование ЦП и т.д.). Компилируемым языкам требуется дополнительный этап «сборки», при котором их сначала компилируют вручную. Каждый раз при внесении изменений вам нужно будет «пересобирать» программу. Вернемся к примеру с хумусом. Перевод рецепта делался до того, как попал к вам в руки. Если автор рецепта захочет изменить тип оливкового масла, то весь рецепт придется переводить заново, а затем повторно отправлять вам. Примеры истинных компилируемых языков: C, C++, Erlang, Haskell, Rust и Go. Интерпретируемые языки Интерпретаторы проходятся по каждой строке программы и выполняют все команды. Если автор из нашего примера захочет заменить оливковое масло, то он просто зачеркнет старую запись и добавит новую. А затем ваш друг-переводчик сразу увидит это изменение и переведет его вам. Интерпретируемые языки гораздо медленнее компилируемых. Но с появлением JIT-компиляции (динамической компиляции) эта разница начинает сокращаться. Примеры популярных интерпретируемых языков: PHP, Ruby, Python и JavaScript. Небольшое пояснение В большинстве языков программирования есть компилируемые и интерпретируемые реализации, а сам язык необязательно относится только к компилируемым или интерпретируемым. Но для простоты и удобства их принято относить к тому или иному типу. Например, Python можно выполнять как компилируемую программу или интерпретируемый язык в интерактивном режиме. А большинство инструментов командной строки, интерфейсов командной строки и оболочек чисто теоретически относятся к интерпретируемым языкам. Плюсы и минусы Плюсы компилируемых языков Обычно программы, скомпилированные в машинный код, выполняются быстрее интерпретируемых. Это связано с тем, что при переводе кода в процессе его выполнения увеличивается потребление ресурсов, что, в свою очередь, замедляет программу. Минусы компилируемых языков Основные недочеты компилируемых языков: нужно больше времени для завершения полной компиляции перед тестированием; сгенерированный двоичный код зависит от платформы. Плюсы интерпретируемых языков Интерпретируемые языки более гибкие и чаще предлагают такие возможности, как динамическая типизация и меньший размер программы. Кроме того, исходный код программы выполняют интерпретаторы, поэтому сам код не зависит от платформы. Минусы интерпретируемых языков Самый главный недочет этих языков – скорость выполнения. Она обычно ниже, чем в компилируемых языках.
img
Пока не начали, ознакомьтесь с материалом про обнаружение соседей в сетях. Реактивное распределение достижимости Возвращаясь к рисунку 9 в качестве справки, предположим, что развернута реактивная плоскость управления, и B хотел бы начать обмен потоками данных с G. Как C может разработать информацию о пересылке, необходимую для правильного переключения этого трафика? Маршрутизатор может отправить запрос по сети или отправить запрос контроллеру, чтобы обнаружить путь к месту назначения. Например: Когда B впервые подключается к сети, и C узнает об этом вновь подключенном хосте, C может отправить информацию о B в качестве достижимого пункта назначения на контроллер, подключенный к сети. Точно так же, когда G подключается к сети и D узнает об этом вновь подключенном хосте, D может отправить информацию о G как о достижимом пункте назначения контроллеру, подключенному к сети. Поскольку контроллер узнает о каждом хосте (или достижимом месте назначения), подключенном к сети (а в некоторых системах, также обо всей топологии сети), когда C необходимо узнать, как достичь хоста G, маршрутизатор может запросить контроллер, который может предоставить эту информацию. Примечание. Концепция централизованного контроллера подразумевает, что один контроллер предоставляет информацию для всей сети, но это не то, как термин централизованная плоскость управления обычно используется в мире сетевой инженерии. Однако идея централизации в сетевой инженерии довольно расплывчата. Вместо того, чтобы указывать на отдельное устройство, термин "централизованный" обычно используется для обозначения непереносимых скачков по сети и не вычисляемых каждым сетевым устройством независимо. Маршрутизатор (или хост) может отправить пакет проводника, который записывает маршрут от источника к месту назначения и сообщает эту информацию источнику проводника, который затем используется как исходный маршрут. Рисунок 10 иллюстрирует это. Используя рисунок 10 и предполагая исходную маршрутизацию на основе хоста: Хосту A необходимо отправить пакет H, но у него нет пути. A отправляет explorer на свой шлюз по умолчанию, маршрутизатор C. C не имеет маршрута к месту назначения, поэтому он пересылает explorer пакет по всем каналам, кроме того, по которому он получил пакет; следовательно, к B, D и E. B является хостом, не имеет дополнительных интерфейсов и не является целью explorer, поэтому он игнорирует explorer пакет. Ни у D, ни у E нет пути к H, поэтому они оба перенаправляют explorer на все интерфейсы, кроме того, на котором они получили пакет; следовательно, на канал с множественным доступом, совместно используемый между ними и F. F получает две копии одного и того же explorer пакета; он выбирает один на основе некоторых локальных критериев (таких как первый полученный или некоторая политика плоскости управления) и пересылает его на все интерфейсы, на которых он не получил пакет, к G. G получает пакет и, учитывая, что у него нет пути к H, пересылает его на единственное другое соединение, которое у него есть, что ведет к H. H принимает explorer и отвечает. В этой схеме каждое устройство на пути добавляет себя в список пройденных узлов перед пересылкой explorer пакета на все интерфейсы, кроме того, на котором он был получен. Таким образом, когда H получает explorer пакет (который в конечном итоге направлен на поиск пути к H), пакет теперь описывает полный путь от A до H. Когда H отвечает explorer, он помещает этот путь в тело пакета; когда A получит ответ, у него теперь будет полный путь от A до H. Примечание. В некоторых реализациях A не будет ни генерировать, ни получать ответ на пакет explorer. А с первого роутера, может выполнять эти функции. Точно так же сам H может не отвечать на эти пакеты explorer, а скорее G или любое другое сетевое устройство вдоль пути, имеющее информацию о том, как добраться до G. Однако в этих случаях общая концепция и обработка остаются теми же. Затем, чтобы отправить пакеты в H, A вставляет этот путь в заголовок пакета в виде исходного маршрута, содержащего путь [A, C, D, F, G, H]. Когда каждый маршрутизатор получает этот пакет, он проверяет исходный маршрут в заголовке, чтобы определить, на какой маршрутизатор перенаправить трафик следующему. Например, C проверит информацию о маршруте от источника в заголовке пакета и определит, что пакет должен быть отправлен в D следующим, в то время как D изучит эту информацию и определит, что ему нужно отправить пакет F. Примечание. В некоторых реализациях каждый explorer фактически отправляется в пункт назначения, который затем определяет, по какому пути должен идти трафик. На самом деле существует несколько различных способов реализации исходной маршрутизации; процесс, приведенный здесь, является лишь одним примером, объясняющим общую идею исходной маршрутизации. Упреждающее распределение доступности Проактивные плоскости управления, в отличие от реактивных плоскостей управления, распределяют информацию о достижимости и топологии по всей сети, когда информация становится доступной, а не тогда, когда она необходима для пересылки пакетов. Основная проблема, с которой сталкиваются плоскости упреждающего управления, заключается в обеспечении надежной передачи информации о доступности и топологии между узлами в сети, в результате чего все устройства имеют одинаковую информацию о доступности. Удаление информации о плоскости управления может привести к возникновению постоянных петель маршрутизации или к созданию черных дыр маршрутизации (так называемых, потому что они потребляют трафик, передаваемый в пункты назначения без следа), и то и другое серьезно снижает полезность сети для приложений. Существует несколько широко используемых механизмов для обеспечения надежной передачи информации плоскости управления по сети. Плоскость управления может периодически передавать информацию, задерживая более старую информацию. Это похоже на формирование соседей, поскольку каждый маршрутизатор в сети будет передавать имеющуюся информацию о доступности всем соседям (или на всех интерфейсах, в зависимости от плоскости управления) на основе таймера, обычно называемого таймером обновления или объявления. Информация о доступности, однажды полученная, хранится в локальной таблице и истекает по таймауту в течение некоторого периода времени, часто называемого таймером удержания (опять же, как при обнаружении соседа). Остальные описанные здесь механизмы полагаются на существующую систему обнаружения соседей, чтобы гарантировать надежную доставку - и постоянную надежность - информации о доступности. Во всех этих системах: Список соседей используется не только для управления передачей новой информации о доступности, но и для проверки правильности получения информации о доступности. Список соседей используется не только для управления передачей новой информации о доступности, но и для проверки правильности получения информации о доступности. В контексте распределения достижимости на основе соседей существует несколько обычно используемых механизмов для передачи определенной информации о доступности с устройства на устройство; часто любая заданная плоскость управления будет использовать более одного из описанных здесь методов. Плоскость управления может использовать порядковые номера (или какой-либо другой механизм) для обеспечения правильной репликации. Порядковые номера могут фактически использоваться для описания отдельных пакетов и больших блоков информации о доступности; Рисунок 11 иллюстрирует это. Получив пакет, получатель может отправить подтверждение получения пакета, отметив порядковые номера, которые он получил. Отдельный порядковый номер может использоваться для описания достижимости отдельного сетевого уровня. Информация (NLRI), передаваемая по сети. Информация NLRI, распределенная по нескольким пакетам, затем может быть описана с использованием одного порядкового номера. Плоскость управления может описывать базу данных для обеспечения правильной репликации. Например, плоскость управления может описывать информацию в базе данных как: Список порядковых номеров, соответствующих отдельным записям, содержащий информацию о доступности, содержащуюся в базе данных. Группы смежных порядковых номеров, содержащиеся в базе данных (несколько более компактный способ представления всех порядковых номеров) Набор порядковых номеров в паре с хешами информации в каждой записи информации о доступности; это имеет то преимущество, что не только описывает записи в базе данных, но также дает возможность получателю проверять содержимое каждой записи, но без переноса всей базы данных для выполнения проверки. Хэш по блокам записей о достижимости, содержащихся в базе данных, который может быть вычислен получателем для тех же записей и напрямую сравнен, чтобы определить, отсутствуют ли записи. Эти типы дескрипторов баз данных могут передаваться периодически, или только при наличии изменений, или даже в других конкретных ситуациях, чтобы не только обеспечить синхронизацию баз данных сетевыми устройствами, но и определить, что отсутствует или находится в ошибке, поэтому дополнительная информация может быть запрошена. Каждая из этих схем имеет преимущества и недостатки. Как правило, протоколы реализуют схему, которая позволяет реализации не только проверять отсутствующую информацию, но также информацию, которая была случайно повреждена либо в памяти, либо во время передачи.
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59