5 лайфхаков в консоли Cisco
![]()
Все мы знаем, что время – самый ценный ресурс. Сегодня мы рассмотрим 5 способов, которые помогут сэкономить немного времени, при работе в командной строке Cisco IOS. Не будем терять время и рассмотрим их!
exec-timeout 0 0
Эта команда позволяет не терять соединение с вашим роутером или коммутатором при достижении времени таймаута, выставив его на ноль минут и ноль секунд. Если ее применить на консольных линиях и VTY, то IOS интерпретирует это, как никогда не истекающий таймаут.
Конечно, ни в коем случае нельзя использовать эту команду в продакшне из соображений безопасности, но она прекрасно подойдет, чтобы сэкономить ваше время в лаборатории, избавив от необходимости повторного входа на несколько устройств в течение дня.
logging synchronous
Наверняка вы были в ситуации, когда посреди набора вашей команды Cisco IOS чувствовала сильную необходимость отправить сообщение Syslog в консоль? 🙂 Это может сильно отвлекать. Способ предотвращения такого вторжения заключается в применении команды logging synchronous . После ввода этой команды, если IOS понадобится отправить Syslog сообщение, то после его отправки, консоль вернет в сеанс терминала то, что вы уже набрали, чтобы продолжить там, где вы остановились.
no ip domain-lookup
Эта команда позволяет отключить интерпретацию команды как DNS имя, если в ней была сделана ошибка. Еще два менее радикальных метода как обойти это можно найти в этой статье.
alias exec
В качестве еще одного способа экономии времени можно создать несколько команд псевдонимов (alias). Это относительно короткие команды, которые транслируются в IOS в длинные команды. Например, если вам часто приходится смотреть конфигурацию протоколов маршрутизации при помощи команды show run | s router , то можно создать ее короткую версию используя команду alias exec src show run | s router. Теперь вместо всей длинной команды нам нужно будет набрать просто ее псевдоним – src .
Сохраненная начальная конфигурация
И в качестве окончательного способа по экономии времени можно рассмотреть сохранения начальной конфигурации в текстовый файл и вставить текст при запуске оборудования «из коробки» или после сброса. Например, можно завести документ со всеми командами из этой статьи и вставлять его в начале работы.
conf t line con 0 exec-timeout 0 0 logging synchronous exit line vty 0 15 exec-timeout 0 0 logging synchronous exit no ip domain-lookup alias exec src show run | s router alias exec sib show ip interface brief end
Надеемся, что это поможет сохранить вам пару драгоценных минут!
Cisco router в качестве DNS server
Cisco router можно настроить в качестве кеширующего DNS сервера. Это удобно в небольших офисах, где нет серверов Windows и AD.
Общий вид команд выглядит следующим образом:
ip domain lookup ip domain timeout 2 ip domain name office.local ip host name1 192.168.0.11 ip host name2 192.168.0.12 ip name-server 192.168.2.3 ip name-server 178.23.144.5 ip name-server 8.8.8.8 ip name-server 8.8.4.4 ip dns server
ip domain lookup — включает трансляцию имён в ip адреса основанную на dns. Этот параметр включен по умолчанию. Часто его выключают чтобы маршрутизатор не «зависал» при вводе ошибочной команды, но для нашей цели его необходимо включить.
ip name-server — этот параметр задаёт адрес одного или нескольких серверов имён (dns). Приоритет определяется сверху вниз.
ip domain name — задаёт имя домена по умолчанию для пользователей Cisco IOS software для разрешения «неопознаных» доменных имён (имена без суффикса.
ip dns server — включаем собственно кеширующий DNS сервер на циске
Конструкция ip host name1 192.168.0.11 работает подобно файлу hosts в windows.
Проверка:
show ip dns view
DNS server для своих
Предыдущий конфиг приводит к тому, что роутер будет отвечать на все запросы DNS: как изнутри так и снаружи.
Для того, чтобы DNS сервер отвечал только на внутренние запросы у нас есть два пути:
DNS server для своих: ACL
Приведём здесь стандартный ACL, который в том числе запрещает доступ к нашему DNS через внешний интерфейс, и при этом разрешает DNS-запросы наружу:
ip access-list extended outside_acl_in remark --- Add anti-spoofing entries. !--- Deny special-use address sources. !--- Refer to RFC 3330 for add deny ip 127.0.0.0 0.255.255.255 any deny ip 192.0.2.0 0.0.0.255 any deny ip 224.0.0.0 31.255.255.255 any deny ip host 255.255.255.255 any remark --- The deny statement should not be configured !--- on Dynamic Host Configuration Protocol (DHCP) r deny ip host 0.0.0.0 any remark --- Filter RFC 1918 space. deny ip 10.0.0.0 0.255.255.255 any deny ip 172.16.0.0 0.15.255.255 any deny ip 192.168.0.0 0.0.255.255 any remark --- Explicitly permit return traffic. !--- Allow specific ICMP types. permit icmp any any echo permit icmp any any echo-reply permit icmp any any unreachable permit icmp any any time-exceeded deny icmp any any remark --- These are outgoing DNS queries. permit udp any eq domain any gt 1023 remark --- Permit older DNS queries and replies to primary DNS server. permit udp any eq domain any eq domain remark --- Permit legitimate business traffic. permit tcp any any established permit udp any range 1 1023 any gt 1023 remark --- Deny all other DNS traffic. deny udp any any eq domain deny tcp any any eq domain remark --- Allow IPSec VPN traffic. permit udp any any eq isakmp permit udp any any eq non500-isakmp permit esp any any permit ahp any any permit gre any any remark --- These are Internet-sourced connections to !--- publicly accessible servers. permit tcp any any eq 22 remark --- Explicitly deny all other traffic. deny ip any any interface Port-channel1.81 ip access-group outside_acl_in in
DNS server для своих: Split DNS
В данном случае мы можем использовать функционал Split DNS:
ip domain lookup ip domain timeout 2 ip domain name office.local ip name-server 8.8.8.8 ip name-server 8.8.4.4 ip dns server ip dns view no_dns_service_view no domain lookup no dns forwarding ip dns view default domain timeout 2 dns forwarder 8.8.8.8 ip dns view-list no_dns_service_list view no_dns_service_view 1 interface Port-channel1.81 ip dns view-group no_dns_service_list
Просмотр и удаление кеша DNS (DNS cache)
show hosts
clear host all *
3 способа убрать «Translating Domain Server» в Cisco IOS
![]()
Эта статья направлена на сохранение нервных клеток и времени наших читателей. Дело в том, что по умолчанию, разрешение имен (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
Конфигурирование IP-адресов интерфейсов маршрутизатора
Для установки на интерфейсе логического сетевого адреса используется команда ip address :
Router(config-if) # ip address ip-address subnet-mask
где ip-address — 32-разрядное двоичное чисто в десятичном представлении с разделением точками, subnet-mask — тоже 32-разрядное двоичное число в десятичном представлении с разделением точками, причем единицы соответствуют позициям, которые должны совпадать, а нули указывают несовпадающие позиции Команда ip address назначает адрес и маску подсети и запускает на интерфейсе IP-обработку.
Для задания формата сетевых масок для текущего сеанса используется команда term ip netmask-format:
Router(config)# term ip netmask-forma t
- с суммой битов
- десятичный с разделением точками (формат по умолчанию)
- шестнадцатеричный
Таблица 8.6.1 Команды, связанные с IP-адресами
| Уровень команды | Команда | Назначение |
| Router(config-if)# | iр address ip-address subnet-mask | Присваивает адрес и номер подсети интерфейсу, начинает IP-обработку |
| Router# | term ip netmask-format | Устанавливает формат сетевой маски для текущего сеанса |
| Router (config-if)# | ip netmask-format | Устанавливает формат сетевой маски для конкретного канала |
IP-имена хост-машин
ОС IOS ведет таблицу имен хост-машин и соответствующих им адресов, также называемую отображением хост-адресов В протоколе Telnet имена хост-машин используются для идентификации сетевых устройств (хостов). Для того чтобы общаться с другими IP-устройствами, маршрутизатор и другие сетевые устройства должны уметь соотносить имена хост-машин с IP-адресами. Команда ip host делает в конфигурационном файле маршрутизатора статическую запись об отображении имени в адрес (табл 8.6.2).
Таблица 8.6.2 Команда ip host
| Команда ip host | Описание |
| пате | Любое имя, которое предпочитает пользователь для описания пункта назначения |
| top-port –number | Необязательный номер, который идентифицирует TCP-порт для использования, когда имя хост-машины используется с командой режима EXEC connect или командой telnet Для работы с протоколом Telnet по умолчанию стоит port23 |
| Address | IP-адрес или адреса, по которым можно связаться с устройством |
Приведенная ниже команда задает статическое отображение имени хост-машины на IP-адрес.
Router(config)# ip host name [top-port-number] address [address] . ip host tokyo 1.0.0.5 2.0.0.8 ip host kyoto 1.0.0.4
где 1.0.0.5 2.0.0.8 являются двумя сетевыми адресами для хоста с именем tokyo, a 1.0.0.4 определяет имя kyoto в качестве эквивалента адресу 1.0.0.4.
Конфигурирование сервера имен
Команда ip name-server задает те хост-машины, которые могут предоставить сервис имен. В одной команде можно задавать максимум шесть IP-адресов серверов имен:
Router(config)# ip name-server server-address! [ [ servrer-address2 ] [server-address 6]
Для отображения доменных имен на IP-адреса необходимо идентифицировать имена хост-машин, а затем задать сервер имен и активизировать систему доменный имен Domain Name System (DNS). После этого каждый раз, когда операционная система будет получать команду или адрес, которые она не сможет распознать, она будет обращаться в DNS за IP-адресом этого устройства.
Схемы отображения «имя-адрес»
Каждый уникальный IP-адрес может иметь соответствующее ему имя хост-машины. ОС IOS управляет кэшем отображения «имя хост-машины—адрес», который используется командами режима EXEC. Этот кэш убыстряет процесс преобразования имен в адреса.
В протоколе IP определена схема присвоения имен, которая позволяет идентифицировать устройства по их месту в IP-сети. Например, имя ftp.cisco.com идентифицирует домен протокола передачи файлов (FTP) для устройств Cisco. Для отслеживания имен доменов в IP-сети задается сервер имен, который управляет кэшем имен.
Служба DNS активизируется по умолчанию с адресом сервера 255.255.255.255, который является адресом локального широковещания Как показано ниже, команда no ip domain-lookup отключает в маршрутизаторе преобразование имен в адреса:
Router(config)# no ip domain-lookup
Это означает, что маршрутизатор не будет переадресовывать широковещательные DNS-пакеты.