Помощь - Поиск - Пользователи - Календарь
Полная версия: CISCO router
Богданович.ru :: Форум > Программы :: Software > *NIX системы
mrak
Команды Cisco в примерах

Оригинал: http://www.cisco-linux.com.ua/index.cgi?ac...elkateg&kateg=1

Конфигурирование Интерфейса
---------------------------
ip address
Режим:
Router(config-if)#
Синтаксис:
ip address ip-address mask [secondary]
no ip address
Описание:
ip-address mask : ip адрес и маска secondary вотричный адрес (может быть не один)
Пример:
Router(config-if)#ip address 192.168.10.1 255.255.255.0
bandwidth
Режим:
Router(config-if)#
Синтаксис:
bandwidth kilobits
no bandwidth
Описание:
kilobits : Пропускная способность в килобитах в секунду.
Данная команда необходима только для протоколов маршрутизации. (OSPF например).
Пример:
Router(config)#interface serial 0/0
Router(config-if)#bandwidth 1540
description
Режим:
Router(config-if)#
Синтаксис:
description string
no description
Описание:
string : Комментарий к интерфейсу.
Пример:
Router(config-if)#description 100Mb to UA-IX
encapsulation
Режим:
Router(config-if)#
Синтаксис:
encapsulation encapsulation-type
no encapsulation encapsulation-type

Описание:

encapsulation-type : Тип енкапсуляции:
- atm-dxi (ATM Mode-Data Exchange Interface)
- bstun (Block Serial Tunnel)
- frame-relay (Frame Relay, for serial interface)
- hdlc (High-Level Data Link Control protocol, for serial interface)
- isl (Inter-Switch Link, for virtual LANs)
- lapb (X.25 Link Access Procedure, Balanced, for serial interface)
- ppp (Point-to-Point, for serial interface)
- sdlc (IBM serial Systems Network Architecture (SNA))
- sdlc-secondary (IBM serial SNA (for secondary serial interface))
- slip (Specifies Serial Line Internet Protocol)

Пример:

Router(config)#interface serial 0/0
Router(config-if)#encapsulation ppp

encapsulation frame-relay

Режим:
Router(config-if)#
Синтаксис:
encapsulation frame-relay [cisco | ietf]
no encapsulation frame-relay [ietf]

Описание:

cisco : Использовать енкапсуляцию cisco.(Заголовок 4 байта: 2=DLCI + 2=тип пакета)
ietf стандарт Internet Engineering Task Force (IETF) (RFC 1490).

Пример:

Router(config)#interface serial 0/1
Router(config-if)#encapsulation frame-relay ietf

encapsulation x25
Режим:
Router(config-if)#
Синтаксис:
encapsulation x25 [dte | dce ] [ddn | bfe ] | [ietf ]
no encapsulation x25

Описание:
dte : Работать как DTE. (По умолчанию).
dce : Работать как DCE.
ddn : DDN X.25 Standard Service.
bfe : При подключении к BFE устройтсву.
ietf : Стандарт Internet Engineering Task Force (IETF) (RFC 1356).

Пример:
Router(config)#interface serial 0/1
Router(config-if)#encapsulation x25 dce

На другой стороне:
Router(config)#interface serial 0/1
Router(config-if)#encapsulation x25 dte
(dce и dte - логические, не зависят от типа оборудования)

shutdown
Режим:
Router(config-if)#
Синтаксис:
shutdown
no shutdown


Описание:
Поднять (включить) или
опустить (выключить) интерфейс.
Пример:
Router(config-if)#no shutdown

cdp enable
Режим:
Router(config-if)#
Синтаксис:
cdp enable
no cdp enable

Описание:
Включить Cisco Discovery Protocol (CDP) на интерфейсе или выключить.
Пример:
Router(config)#interface serial 0/1
Router(config-if)#no cdp enable

cdp holdtime
Режим:
Router(config)#
Синтаксис:
cdp holdtime seconds
no cdp holdtime
Описание:
seconds : Количество секунд которые устойство получившее CDP пакет
будет его хранить. (по умолчанию 180 сек.)
Значение должно быть больше чем cdp timer (период отсылки cdp пакетов).

Пример:
Router(config)#cdp holdtime 100
ip redirects
Режим:
Router(config-if)#
Синтаксис:
ip redirects
no ip redirects

Описание:
Дання команда включает отправку ICMP redirects на интерфейсе.
(если входящий пакет надо отправить в тот же интерфейс с которого он
получен)
Пример:
Router(config)#interface serial 0/0
Router(config-if)#ip redirects
clear cdp table
Режим:
Router#
Синтаксис:
clear cdp table
Описание:
Команда очищает таблицу содержащую информацию о CDP соседях.
Пример:
Router#clear cdp table
clear cdp counters
Режим:
Router#
Синтаксис:
clear cdp counters
Описание:
Очищает всю информацию (счетчики) о полученых, отправленых, ... CDP пакетах.
Посмотреть эту информацию можно выполнив команду show cdp traffic.
Пример:
Router#clear cdp counters

ip access-group
Режим:
Router(config-if)#
Синтаксис:
ip access-group access-list-number | access-list-name {in | out}
no ip access-group access-list-number | access-list-name
Описание:
access-list-number | access-list-name : Имя или название ACL
in, out : На какие пакеты будет действоавть этот ACL.
in - на те которые получены с этого интерфейса
out - те которые должны быть отправлены с этого интерфейса.
Пример:
Запрет на доступ к серверам 10.0.0.[1 - 3] всем кто подключен к serial
0/0, на всю остальную сеть 10.0.0.0/8 - запрета нет.

Router(config)#access-list 2 deny 10.0.0.1
Router(config)#access-list 2 deny 10.0.0.2
Router(config)#access-list 2 deny 10.0.0.3
Router(config)#access-list 2 permit 10.0.0.0 0.255.255.255
Router(config)#interface serial 0/0
Router(config-if)#ip access-group 2 in

Номера ACL (стандартные,расширенные, acl numbers)
Протокол IP:
Стандартные: 1 - 99
Стандартные: 1300-1999
Расширенные: 100 - 199
Расширенные: 2000 - 2699
Протокол IPX:
Стандартные: 800 - 899
Расширенные: 900 - 999

Списки доступа (Access list) ACL
access-list
Режим:
Router(config)#
Синтаксис:
Стандартный:
access-list access-list-number {deny | permit | remark line} source [source-wildcard] [log]
Расширенный:
access-list access-list-number [dynamic dynamic-name [timeout minutes]]
{deny | permit | remark line } protocol source

source-wildcard destination destination-wildcard [precedence precedence]
[tos tos] [log | log-input][time-range name]
no access-list access-list-number

Описание:
access-list-number[20] - Номер ACL списка.

dynamic dynamic-name timeout minutes - Означает что данная запись в
этом ACL будет динамической (будет ставлятся в ACL только тогда, когда
произойдет телнет на циску, и удалятся через minutes мин.
неактивности)

deny - запретить прохождение пакетов
permit - разрешить прохождение пакетов
remark line - комментарий
protocol - протокол для которого данное правило будет работать
source [source-wildcard] - источник пакетов, wild-card маска источника
destination [destination-wildcard] - получатель пакетов, wild-card
маска получателя
precedence precedence - (0..7) Первые 3-и бита поля TOS (тоже самое
можно сделать через TOS)
tos tos - (0..15) Поле TOS IPv4 пакета (Type of service)
log - Логирование на консоль (какой ACL, протокол, откуда+куда пакет пришел, ...)
log-input - Тоже что и log + интерфейс + MAC адрес отправителя
time-range name - Когда должно действовать это правило. (Смотри
команду time-range)

Пример:
Пример динамического ACL:
Router(config)#access-list 101 permit tcp 0.0.0.0 255.255.255.255
10.0.0.1 0.0.0.0 eq telnet
Router(config)#access-list 101 dynamic admin_www permit tcp 10.0.0.0
0.0.0.255 0.0.0.0 255.255.255.255 eq 80
Router(config)#access-list 101 deny ip any any

Стандартный:
Router(config)#access-list 1 permit 10.0.0.1 0.0.0.0
show access-lists
Режим:
Router#

Синтаксис:
show access-lists [access-list-number | access-list-name]
Описание:
access-list-number - Номер Access списка
access-list-name - Имя ACL (для именованых ACL)
Команда выводит состав ACL списка.
Пример:
Router#show access-lists 110
permit tcp host 10.0.0.10 any established (4304 matches)
permit udp host 10.0.0.10 any eq domain (129 matches)
permit icmp host 10.0.0.10 any
permit tcp host 10.0.0.10 host 10.0.0.11 gt 1023
permit tcp host 10.0.0.10 host 10.0.0.11 eq smtp (2 matches)
permit tcp host 10.0.0.10 host 10.0.0.12 eq smtp

clear access-list counters
Режим:
Router>
Router#
Синтаксис:
clear access-list counters {access-list-number | access-list-name}
Описание:
access-list-number - Номер Access списка
access-list-name - Имя ACL (для именованых ACL)
Команда очищает значения счетчиков списка доступа.
(Которые можно увидеть выполнив команду [21]show access-lists)

Пример:
Router#clear access-list counters 110
или
Router>clear access-list counters 110

Временные периоды (Time Range)
absolute
Режим:
Router(config-time-range)#

Синтаксис:
absolute [start time date] [end time date]
no absolute
Описание:
time :Время в 24 часовом формате.
date : Дата. (число "название месяца" год, пример: 10 december 2005)

Пример:
Router(config-time-range)#absolute 01:00 31 december 2005 01:00 1 january 2006

time-range
Режим:
Router(config)#

Синтаксис:
time-range time-range-name
no time-range time-range-name

Описание:
time-range-name : Имя временного периода.

Пример:
Router(config)#time-range DenyNight

periodic
Режим:
Router(config-time-range)#

Синтаксис:
periodic days-of-the-week hh:mm to [days-of-the-week] hh:mm

Описание:
days-of-the-week : Начало или конец временного периода.

Варианты:
Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday.
Или:
daily = (Monday - Sunday),
weekdays = (Monday - Friday),
weekend = (Saturday, Sunday).
hh:mm - В 24 часовом формате

Пример:
Router(config)#time-range DenyNight
Router(config-time-range)#periodic daily 22:00 to 9:00
Маршрутизация
OSPF (Open Shortest Path First)
-------------------------------

router ospf (запуск процесса ospf)
Режим:
Router(config)#

Синтаксис:
router ospf process-id
no router ospf process-id

Описание:
process-id : Номер процесса OSPF. (любое число > 0) ( можно запустить
несколько процессов )

Пример:
Router(config)#router ospf 1
network area
Режим:
Router(config-router)#
Синтаксис:
network address wildcard-mask area area-id
no network address wildcard-mask area area-id
Описание:
address wildcard-mask : Адрес и wild-card маска сети которая будет
учавствовать в OSPF маршрутизации. ( также определяет интерфейс на
котором будет запущен OSPF )

Пример:
Router(config-router)#network 10.0.0.0 0.0.0.255 area 1
ip ospf cost
Режим:
Router(config-if)#
Синтаксис:
ip ospf cost cost
no ip ospf cost
Описание:
cost : Стоимость (метрика) маршрута (для данного интерфейса) для OSPF
маршрутизации.
(от 1 до 65535).
При отсутствии данной команды стоимость (метрика) для данного
интерфейса расчитываеться исходя из его пропускной способности. (см
команду [21]bandwidth)

Пример:
Router(config-if)#ip ospf cost 100
ip ospf priority
Режим:
Router(config-if)#
Синтаксис:
ip ospf priority number
no ip ospf priority

Описание:
number : Приоритет маршрутизатора. (от 1 до 65535).
Приоритет используется при выборе выделенного (designated)
маршретизатора. Чем выше приоритет тем больше шансов что этот
маршрутизатор станет выделенным.

Пример:
Router(config-if)#ip ospf priority 15
area

Режим:
Router(config-router)#

Синтаксис:
area area-id {
authentication [message-digest] |
stub [no-summary] |
nssa [no-redistribution] [default-information-originate] |
default-cost cost |
range address mask [advertise | not-advertise] |
virtual-link router-id
}
Описание:

area-id : Для какой зоны будут дальнейшие настройки.
authentication [message-digest] Указание того, что для данной зоны
включена авторизация. ( см. команду ip ospf authentication-key )
Если указан параметр message-digest то будет использоваться
авторизация по MD5 ключу. ( см. команду ip ospf message-digest-key )
stub [no-summary] Указывает что данная зона являеться тупиковой. В нее
не отправляються обновления о изменениях состояния каналов, а
отправляются только суммированые данные. При указании параметра
no-summary не отправляються и суммированые данные (LSA тип 3).

nssa [no-redistribution] [default-information-originate] Cisco как
обычно вставила свои 5-копеек в протокол OSPF. :-).
NSSA = not-so-stubby area. Не совсем тупиковая зона. (О как!) То же
что и stub но при этом маршрутизатор будет импортировать внешние
маршруты.

Опция default-information-originate - говорить всем что маршрут
0.0.0.0 - через меня.

default-cost cost : Указывает стоимость суммарного маршрута по
умолчанию отправляемого в тупиковую зону.

range address mask : Используеться для указания сумманого адреса и
маски на границе зоны.

пример:
Router(config-router)#area 1 range 10.0.0.1 255.255.0.0
virtual-link router-id : Если маршрутизатор не имеет прямой связи с
зоной 0 (требование протокола OSPF) но имеет соединение с (например) с
зоной 1 то зона 1 обьявляеться как "транзитная" (виртуальная).
Пример конфига (даже с авторизацией на транзитной зоне) есть тут.

Пример:
Router(config-router)#area 0 authentication message-digest

ip ospf authentication-key

Режим:
Router(config-if)#

Синтаксис:
ip ospf authentication-key password
no ip ospf authentication-key


Описание:
password : Пароль для авторизации пакетов от соседнего маршрутизатора
на котором настроена авторизация аналогичным образом.(до 8 символов).
Для включения авторизации необходимо явно указать это (для конкретной
зоны) с помощью команды area [area_num] authentication

Пример:
Router(config-if)#ip ospf authentication-key thispwd
ip ospf message-digest-key
Режим:
Router(config-if)#
Синтаксис:
ip ospf message-digest-key key-id md5 key
no ip ospf message-digest-key key-id

Описание:
Команда используеться для установки авторизационных параметров по
алгоритму MD5.
key-id : Номер ключа. (от 1 до 255).
key : Пароль (буквенно-циферный). (до 16 символов).
key-id и key ДОЛЖНЫ совпадать на соседних маршрутизаторах.

Для включения авторизации необходимо явно указать это (для конкретной
зоны) с помощью команды area [area_num] authentication

Пример:
Router(config)#interface ethernet 0/1
Router(config-if)#ip ospf message-digest-key 1 md5 coolpwd1


ip ospf network
Режим:
Router(config-if)#

Синтаксис:
ip ospf network {broadcast | non-broadcast | {point-to-multipoint [non-broadcast ]}}
no ip ospf network

Описание:
Команда указывает протоколу OSPF к камому типу сети подключен данный
интерфейс.

Пример:
Router(config-if)#ip ospf network non-broadcast

router-id
Режим:
Router(config-router)#

Синтаксис:
router-id ip-address
no router-id ip-address

Описание:
Команда необходима для явного указания ID маршрутизатора. (Иначе ID
будет присвоен автоматически. )
ID разных маршрутизаторов не должны совпадать!

Пример:
Router(config-router)#router-id 10.0.0.1


Нашёл на форуме opennet. Полезная инфа в качестве справочника.
mrak
NAT на cisco для доступа локальной сети в Internet

Ключевые слова: cisco, nat, policy, (найти похожие документы)

Оригинал: http://cisco.far.ru/onenat.shtml

Задача состояла в следующем:

Есть циска 2509. На Ethernet0 висит локальная сеть и внешний канал в
internet. Маршрутизатор не поддерживает VLAN. Необходимо обеспечить
доступ локальной сети в internet

Предложено решение: использовать NAT+Policy Routing

!
version 12.0
service timestamps debug uptime
service timestamps log uptime
no service password-encryption
!
hostname Router
!
enable secret 5 *****
!
ip subnet-zero
no ip domain-lookup
!
!
!
interface Loopback0
ip address 10.0.1.1 255.255.255.0
no ip directed-broadcast
ip nat inside
no ip route-cache
no ip mroute-cache
!
interface Ethernet0
ip address 10.0.0.1 255.255.255.0 secondary
ip address 195.0.0.2 255.255.255.0
no ip directed-broadcast
ip nat outside
no ip route-cache
no ip mroute-cache
ip policy route-map test
!
interface Serial0
shutdown
!
interface Serial1
shutdown
!
ip nat pool ONE 195.0.0.2 195.0.0.2 netmask 255.255.255.0
ip nat inside source list 1 pool ONE overload
ip classless
ip route 0.0.0.0 0.0.0.0 195.0.0.1
!
access-list 1 permit 10.0.0.0 0.0.0.255
route-map test permit 10
match ip address 1
set interface Loopback0
!
line con 0
transport input none
line 1 8
line aux 0
line vty 0 4
exec-timeout 0 0
password *****
logging synchronous
login
!
end
mrak
Начало работы с маршрутизатором Cisco

Вынимаем железку, подключаем терминал (или PC с TELEMATE) к консольному порту (или вспомогательный порт ранее сконфигурированной Cisco, и заходим обратным телнетом), все нужные нам кабели (синхронный, Ethernet, модемы), включаем питание и начинаем конфигурирование.
При первом включении IOS пытается скачать конфигурацию из глобальной сети - можно подождать несколько минут, чтобы дать ей понять, что на том конце ничего нет, или временно отсоединить синхронный кабель. Потерпев неудачу, IOS предлагает выполнить команду setup - соглашайтесь. В этом случае IOS задает вам несколько вопросов и самостоятельно конфигурируется. После этого можно зайти и исправить конфигурацию, как вы пожелаете. Команду setup можно запустить в любой момент с командной строки в привилегированном режиме:
Router#setup

Конфигурирование осуществляется следующими способами:

1. Командный интерфейс:
telnet Router - имя Cisco
имя-Cisco>
с терминала: conf term
NVRAM: conf memory
из сети: conf network

2. Через WWW (начиная с версии 11.0(6), 11.1(5), не все возможности, в версии 12.0 - все возможности): ip http server

3. ClickStart (конфигурирование Cisco 1003, 1004 и 1005).

Общие сведения о командном языке:

1. help - в любой момент можно ввести "?" - киска в ответ выдаст список команд или операндов.
2. Любое ключевое слово или имя можно сокращать до минимально возможного.
3. Если терминал нормально настроен, то можно редактировать командную строку как в emacs или bash ( как в UNIX ).
4. Почти каждую команду можно предварять словом no, если Вы собираетесь отказаться от команды.

Уровни привилегий: предусмотрено 16 уровней привилегий - от 0 до 15. Если не производить дополнительной настройки, то уровень 0 - это уровень пользователя: доступны только "безопасные" команды. Уровень 15 - это уровень супервизора: доступны все команды. Переходим с уровня на уровень по команде:
enable [номер уровня]
Любую команду можно перевести на уровень, отличный от стандартного; любому пользователю можно назначить определенный уровень, устанавливаемый при входе на киску этого пользователя; таким образом права пользователей можно тонко настраивать (только help-ом при этом тяжело пользоваться).

Режимы командного языка:

1. Режим пользователя

2. Привилегированный режим:

1. верхний уровень
2. режим глобальной конфигурации:

1. собственно верхний уровень конфигурирования
2. конфигурирование интерфейса

1. конфигурирование интерфейса
2. конфигурирование подинтерфейсa (serial в режиме Frame Relay)

3. конфигурирование контроллера (T1)
4. конфигурирование хаба (cisco 2500 - ethernet)
5. конфигурирование списка карт (ATM и FrameRelay)
6. конфигурирование класса карт (Quality of Service over Switched Virtual Circuit - ATM, FrameRelay или dialer)
7. конфигурирование линий
8. конфигурирование маршрутизатора (bgp, egp, igrp, eigrp, is-is, iso-igrp, mobile, OSPF, RIP, static)
9. конфигурирование IPX-маршрутизатора
10. конфигурирование карт маршрутизатора
11. конфигурирование ключевых цепочек с его подрежимами (RIP authentication)
12. конфигурирование генератора отчетов о времени ответа
13. конфигурирование БД LANE (ATM)
14. режим команд APPN с его подрежимами (advance peer-to-peer Networking - второе поколение SNA)
15. режим команд присоединения канала IBM с его подрежимами (Cisco 7000 с CIP)
16. режим команд сервера TN3270
17. конфигурирование списков доступа (для именованых IP ACL) 18.режим шестнадцатеричного ввода (задание публичного ключа для шифровки)
19. конфигурирование карт шифровки

3. ROM монитор (нажать break в первые 60 секунд загрузки, тоже есть help).

Редактирование командной строки

* Задать размер истории команд: terminal history size размер.
* Предыдущая/следующая команда: Ctrl-P/Ctrl-N или стрелка вверх/вниз.
* Включить/выключить редактирование: [no] terminal editing.
* Символ вперед/назад: Ctrl-F/Ctrl-B или стрелка вперед/назад.
* В начало/конец строки: Ctrl-A/Ctrl-E
* На слово вперед/назад: Esc F/Esc B
* Развертывание команды: Tab или Ctrl-I
* Вспомнить из буфера/вспомнить следующий: Ctrl-Y/Esc Y
* Удалить символ слева от курсора/под курсором: Delete/Ctrl-D
* Удалить все символы до начала строки/конца строки: Ctrl-U/Ctrl-K
* Удалить слово слева от курсора/справа от курсора: Ctrl-W/Esc D
* Перерисовать строку: Ctrl-L/Ctrl-R
* Поменять символы местами: Ctrl-T
* Экранирование символа: Ctrl-V или Esc Q
* Комментарии начинаются с восклицательного знака, но в NVRAM не сохраняются.

2.1 Подключение к маршрутизатору и начало работы

1. Подключаем консольным кабелем от соответствующего маршрутизатора к порту COM компьютера.
2. Запускаем и настраиваем Term95 или Telix под соотвествующий порт и скорость (обычно 9600 kb/s). Установите терминал в режим 8N1. Включите маршрутизатор.
3. Включаем свой маршрутизатор
4. Если в нем уже была какая-то настройка, то стираем ее:
Router>enable
Router#erase startup configuration
Router#reload
5. Отказываемся от автоматической настройки:
Would you like to enter the initial dialog? [yes]:no
6. Через некоторое время появится сообщение:
Router>
Войти в режим администратора:
Router>enable
Подсказка > должна смениться на #
7. Начать конфигурирование с терминала:
Router#configure terminal
8. Задать имя хоста:
Router(config)#hostname Router (любое имя какое вам нравится)
9. Задать защищенный пароль администратора:
Router (config)#enable secret cisco (любое пароль какой вам нравится)
10. Введите команды:
Router(config)#ip subnet-zero
Router(config)#ip classless
11. Отключаем DNS, если его нет:
Router(config)#no ip domain-lookup
12. Выйдите из режима конфигурации:
Router(config)#exit
Router#
13.Сохраните конфигурацию:
Router(config)#exit
Router#write
14. Выйдите из режима расширенных команд:
Router#exit
Router>
15. Настройка терминальных линий (vty) для доступа к Cisco через локальную сеть:
Router#configure terminal (или conf t)
Router(config)#line vty 0 4
Router(config-line)#login
Router(config-line)#password Сisco
Router(config-line)#session-timeout 10 output
Router(config-line)#exit или Сtrl^Z
Router#write terminal (wr - сокращенно)
16. Настройка порта Ethernet на Cisco и установка IP адреса:
Router#configure terminal
Router(config)#interface Ethernet0 или сокрашенно int E0
Router(config-if)#ip address 172.16.150.1 255.255.255.0
Router(config-if)#no shutdown - на всякий случай, хотя интерфейс должен подняться сразу после подключения кабеля.

2.2 Восстановление забытого enable secret password

В случае утери пароля следует выключить маршрутизатор и снова включить.
1. послать Break в первые 60 секунд после включения питания. Сигнал Break посылается в зависимости от используемого терминала или Ctrl Break или Ctrl ^ C (можно найти в настройках терминала)
2. изменить регистры загрузки. Вы попадаете в другой режим, так называемый ROM Monitor режим с приглашением > После этого следует ввести команду (в зависимости от Cisco):

>confreg 0x141 (для 1000/1600/3600/4500)
>o/r 0x141 (для 2500/4000)

3. Enter

>reset (для 1000/1600/3600/4500)
>i (для 2500/4000)

4. initial conf dialog? n
5. Router(boot)>enable
6. Router(boot)#copy start run (если была включена authorisation, то конфигурировать придется с нуля)
7. Router#config term
8. Router(config)#enable secret новый_пароль
9. Не забыть поменять регистр конфигурации на нормальный режим
Router (config)#config-reg 0x2102
10. Router(config)#end
11. Router(boot)#copy run start
12. Router(boot)#reload

3. Работа с флэш-памятью (в ней лежит и из нее выполняется IOS) и NVRAM (конфигурация)

На Cisco работает ТРИ программы: ROM монитор (это загрузчик и отладчик -тупой до безобразия - попадаем в него если соответствующим образом установлен регистр конфигурации или нажал BREAK во время загрузки и это не запрещено); boot ROM - система в ROM (урезанная и очень старая система IOS - 9.1 - если не удалось найти более подходящую во флэш или по сети или ручная загрузка из ROM монитора) и система во флэш - версия, которуя сам поставил. Конфигурация хранится в NVRAM. Еще есть оперативная память, используемая для хранения данных (IOS выполняется прямо из ROM). Внимание: пароль администратора в IOS 9.1 задается командой "enable password", а не "enable secret"!
В руководстве делается предупреждение, что на Sun'е сервер TFTP должен быть настроен так, чтобы генерировать и проверять контрольные суммы UDP (я ничего не делал). Везде вместо TFTP можно использовать rcp (rsh), но мне лениво следить за безопасностью в этом случае. Посмотреть, что там лежит: show flash all

System flash directory:
File Length Name/status
addr fcksum ccksum
1 3243752 igs-i-l.110-1
0x40 0xB5C4 0xB5C4
[3243816 bytes used, 950488 available, 4194304 total]
4096K bytes of processor board System flash (Read ONLY)

Chip Bank Code Size Name
1 1 89A2 1024KB INTEL 28F008SA
2 1 89A2 1024KB INTEL 28F008SA
3 1 89A2 1024KB INTEL 28F008SA
4 1 89A2 1024KB INTEL 28F008SA
Executing current image from System flash

Иметь два файла во флэш можно только, если имеется два банка памяти (у меня нет) и выполнить специальную процедуру (IOS надо настроить адреса - выполняется-то она из флэша!). Буква l в имени файла как раз и означает, что адреса можно настроить. Посмотреть, сколько раз туда чего записывали: show flash err
Копировать из флэш на tftp: copy flash tftp, после чего спросят имя сервера, исходное имя файла и результатирующее имя файла (файл должен существовать с правами 666).
В основном используется сервер TFTP под Windows95/NT. Инсталлируется он очень просто. После этого в настройках нужно указать директорию для копирования файлов и имиджей. Сервер TFTP под Windows95/NT во время копирования должен быть запужен (обязательно), можно в свернутом состоянии.
Копировать конфигурацию на tftp: copy startup-config/running-config tftp
Router#copy tftp
Router#copy tftp flash
**** NOTICE ****
Flash load helper v1.0
This process will accept the copy options and then terminate
the current system image to use the ROM based image for the copy.
Routing functionality will not be available during that time.
If you are logged in via telnet, this connection will terminate.
Users with console access can see the results of the copy operation.
---- ******** ----
[There are active users logged into the system]
Proceed? [confirm]y

System flash directory:
File Length Name/status
1 5010180 c2500-ras-113.6
[5010244 bytes used, 3378364 available, 8388608 total]
Address or name of remote host 172.16.150.2
Source file name? c2500-ras-113.6 name of file in flash
Destination file name [c2500-ras-113.6]y
Accessing file 'c2500-ras-113.6' on 172.16.150.2...
Проверяет наличие файла на TFTP сервера.
Загрузить конфигурацию с tftp: copy tftp startup-config/running-config (по-моему, если грузить текущую конфигурацию, то происходит не копирование, а слияние).
Копировать из tftp во флэш (если достаточно памяти!!!): copy tftp flash
Понятное дело, что если IOS выполняется из флэш, то грузить новое (заходить только с консоли - иначе ничего не увидишь, и об ошибках не узнаешь ;). После этого надо сохранить конфигурацию (copy run start). А все-таки интересно, как выбираться из ситуации, если что-то получилось не так. Кстати, рекомендуется сохранить конфигурацию куда-нибудь на tftp перед изменением флэша. p.s. все-таки можно было бы сделать и загрузившись из ROM (только не ROM монитор, а ROM IOS), если задать в регистре конфигурации младшие 4 бита равными 0-0-0-1.
Посмотреть состояние: show version
Проверить контрольную сумму: verify flash
Повторно выполнить конфигурационный файл: configure memory
Очистить конфигурацию: erase startup
Посмотреть текущую/загрузочную конфигурацию: show run/start
В NVRAM записываются только параметры, отличные от параметров по умолчанию. Параметры по умолчанию различны для различных версий, так что при смене версии бывает очень интересно ;)
На TFTP cервер можно скидывать и загружать с него файлы конфигурации, образ операционной системы (IOS), что является очень удобным прикаких либо неполадках.

4. Настройка синхронных интерфейсов Serial для X25

Действия по шагам:
1. Начать конфигурирование с терминала:
Router#configure terminal
2. Задать, что данный маршрутизатор будет выполнять маршрутизацию X25:
Router(config)#x25 routing
3. Конфигурируем последовательный интерфейс 0:
Router(config)#interface serial 0
4. Задаем протокол X25 на данном интерфейсе
Router(config-if)#encapsulation x25 dte (dce)
Параметр dte или dce определяет, кто будет выполнять синхронизацию, т.е задавать скорость между двумя устройствами. По умолчанию dte.
5. Устанавливаем X25 параметры на интерфейсе. Должны совпадать с параметрами DCE устройства, то есть устройства, к которому подключена Cisco (обычно коммутатор X25):
Router(config-if)#x25 address 232420023 адрес X25 на интерфейсе
Router(config-if)#x25 ips 128 размер входного пакета
Router(config-if)#x25 ops 128 размер выходного пакета
Router(config-if)#x25 win 2 размер вх. пакета
Router(config-if)#x25 wout 2 размер вых. пакета
Router(config-if)#x25 htc 28 кол-во виртуальных каналов
6. Активация интерфейса:
Router(config-if)#no shutdown
Router(config-if)#exit
7. Аналогично для интерфейса serial 1, если нужно (для Cisco2509).
8. Прописывание X25 маршрутизации, то есть куда какие пакеты направлять. Если есть только один интерфейс для X25, то можно использовать default
Router(config)#x25 route .* interface Serial0
* - указывает на все пакеты можно задать конкретный шаблон, например
Router(config)#x25 route 2324200 .* interface Serial0
9. Настройка поверх X25 TCP/IP. Включаем IP на данном интерфейсе:
Router(config-if)#ip address 10.1.1.1 255.255.255.0
Router(config-if)#x25 map ip 10.1.1.2 232420024 сompress
Причем здесь IP address и X25 address другого маршрутизатора, с которым вы собираетесь связаться ( на нем соответственно должны стоять ваши параметры) compress - включаем компрессию.
10. Проверка X25:
Roter#show x25 route
Roter#show x25 map
11. Сохранение конфигурации:
Roter#copy running-config startup-config
12. Прописываем статическую маршрутизацию (роутинг):
Router(config)#ip route 172.16.160.0 255.255.255.0 10.1.1.2 permanent
где 172.16.160.0 255.255.255.0 - это локальная сеть, к которой подключен др.маршрутизатор, 10.1.1.2 - виртуальный адрес, нужен только для связывания двух cisco по X25
Router(config)#exit
Router#show config
Router#copy run start

5. AAA (authentication, authorization, accounting), tacacs+, RADIUS

Сервер доступа (tacacs+, RADIUS) - это программа, которая крутится на UNIX-компьютере и отвечает на запросы киски типа: есть ли такой пользователь, какие у него права и ведет журнал посещений. Собственно AAA есть authentication (установление личности пользователя), authentication (проверка полномочий) и accounting (учет использования ресурсов). Для каждой из трех функций используется поименованный список методов, примененный к интерфейсу. При необходимости использования любой функции AAA IOS "пробегает" по этому списку пытаясь соединиться с соответствующим сервером. Если соединиться не удается (локальная БД отвечает всегда), то IOS переходит к следующему методу из списка. Если методов в списке не осталось, то регистрируется отказ. По умолчанию, к каждому интерфейсу применяется список методов по имени default. Если не требуется что-то необычное, то рекомендуется определить ровно один свой список методов с именем default и пусть он применяется ко всем.
aaa new-model # будем использовать tacacs+, а не старые варианты
aaa processes число # количество параллельных процессов, обслуживающих AAA (количество одновременно заходящих пользователей). У меня загрузка второго процесса составляет 10% от загрузки 1-го, так что, думаю, что двух достаточно
show ppp queues # показывает, сколько AAA процессов запущено и их статистику (странное название и странные числа он показывает)
tacacs-server host IP-адрес-tacacs+-сервера [single-connection] [port порт(49)] [timeout секунд] [key ключ-шифровки] # tac_plus 4.0.2 не поддерживает single-connection; можно указывать несколько серверов, они будут пробоваться по очереди
tacacs-server key key <пароль> # ключ, с помощью которого шифруются сообщения между киской и tacacs+ сервером
tacacs-server retransmit retries # число попыток достучаться до сервера (по умолчанию - 2)
tacacs-server timeout seconds # сколько ждать, чтобы убедиться, что сервер не работает (по умолчанию - 5 секунд)
ip tacacs source-interface subinterface-name # задать исходный IP-адрес TACACS пакетов
tacacs-server directed-request # включен по умолчанию; управляет использованием имен пользователей в виде: имя@сервер; если включен, то на указанный сервер (проверяется, что он указан в конфигурации, иначе вся строка посылается на сервер по умолчанию) посылается короткое имя пользователя, если выключен - вся строка на сервер по умолчанию. В документации не описано действие ключа restricted.

authentication

Для установления личности определяется список методов идентификации и применяется к определенному интерфейсу.
Проверка при входе на линию:
aaa authentication login {имя-списка | default } метод1 [ метод2 ] ...
Методы при проверке на входе бывают следующие:
tacacs+ - использовать сервер TACACS+
none - удостоверять личность без проверки
enable - использовать пароль администратора (enable password) для проверки личности
krb5 - использовать сервер Kerberos 5
krb5-telnet - использовать сервер Kerberos 5 соединяясь с ним через telnet
line - использовать пароль, привязанный к линии
local - использовать локальную БД имен
radius - использовать сервер RADIUS
Для использования сервера kerberos необходимо иметь версию IOS с поддержкой шифровки.
Применить список методов к линии(ям):
line тип-линии номер-линии [конечный-номер-линии-из-интервала]
login authentification { default | имя-списка-методов }
Пример:
aaa authentication login default tacacs+ enable # по-умолчанию проверяем каждый вход на линию с помощью tacacs+ сервера, а если он не отзывается, то спрашиваем пароль суперпользователя. Т.к. используется имя default, то он будет действовать на всех линиях.
Если пользователи подсоединяются с RAS по PPP, минуя интерфейс командной строки, то для проверки их личности необходимо определить список методов установления личности при соединении PPP, по умолчанию никакой проверки не производится (список default не используется):
aaa authentication ppp {имя-списка | default } метод1 [ метод2 ] ...
Применить список методов к интерфейсам (if-needed только для TACACS и XTACACS, callin вызывает аутентификацию только для входных соединений, one-time позволяет вводить имя и пароль в одной строке):
interface тип-интерфейса номер-интерфейса
ppp authentication {chap | pap | chap pap | pap chap} [if-needed] {default | list-name} [callin] [one-time]
Методы при проверке личности во время установления PPP-соединения бывают следующие:
tacacs+ - использовать сервер TACACS+
radius - использовать сервер RADIUS
none - удостоверять личность без проверки
local - использовать локальную БД имен
krb5 - использовать сервер Kerberos 5
if-needed - не делать проверку, если она уже была произведена при входе на линию
Пример:
aaa authentication ppp default if-needed none # при включении PPP, производим фиктивную проверку пользователя, если не проверяли его раньше (может это уже можно выключить?), т.к. используется имя default, то сами интерфейсы конфигурировать не надо.
Проверка личности при переходе в привилегированный режим:
aaa authentication enable default метод1 [ метод2 ] ...
Методы при проверке личности при входе в привилегированный режим:
enable - использовать пароль администратора (enable password) для проверки личности
line - использовать пароль, привязанный к линии
none - удостоверять личность без проверки
tacacs+ - использовать сервер TACACS+
radius - использовать сервер RADIUS
Бывает еще двойная проверка (access-profile, ip trigger-authentication, show ip trigger-authentication, clear ip trigger-authentication) и автоматическая двойная проверка, но это какакя-то муть.
Аутентификация без AAA (как только AAA сконфигурирован, то он имеет больший приоритет) установление пароля на линию (в режиме конфигурации линии), до 80 букв и цифр (должен начинаться с буквы):
password пароль
login
проверка имени пользователя (в глобальном режиме конфигурации, password и autocommand д.б. последними в строке, можно использовать несколько строк на одно имя - информация будет накапливаться), используется также для CHAP (чтобы отвечать на CHAP-запросы имя должно соответствовать имени хоста, на удаленном хосте это имя тоже д.б. определено с тем же секретом):
username имя [nopassword | password тип-шифровки пароль | password пароль][callback-dialstring номер-телефона] [callback-rotary номер-группы-rotary] [callback-line[tty] line-number [ending-line-number]] [access-class номер-ACL] [privilege уровень ][autocommand команда ] [noescape ] [nohangup ]
Что касается длин имени и пароля: безопасным является использование имен и паролей длиной до 8 символов включительно. Более длинные имена и пароли (якобы до 25 символов, буквы и цифры и пробелы, первый символ - буква) обрабатываются по-разному в разных версиях IOS. CHAP секрет - до 11 символов. tac_plus пароль, шифрованный с помощью crypt - до 8 символов.
Установка пароля на привилегированные команды:
enable [secret] [level уровень-привилегий ] {password | encryption-type encrypted-password}
рекомендуется использовать опцию secret (пароль будет храниться в шифрованном виде). Первый уровень привилегий дается каждому пользователю при входе по умолчанию, 15 уровень - режим суперпользователя, команды изменения уровня (enable, disable, exit, help) находится на нулевом уровне. encryption-type:
7 (для enable без secret, собственный алгоритм шифрования, есть программа декодирования)
5 (для enable secret, необратимое шифрование)
0 (незашифрованный текст) шифровать пароли (а также прочие ключи)
service password-encryption переместить определенную команду на другой уровень (очень удобно для clear line ;)
privilege mode level level command (где mode - командный режим: exec, configure, interface, line и др.) дать всем пользователям, входящим с определенной линии указанный уровень привилегий (в режиме конфигурации линии)
privilege level level
посмотреть текущий уровень привилегий
show privilege
перейти на другой уровень (в режиме EXEC)
enable уровень

Тонкая настройка:

aaa authentication local-override # позволяет использовать локальную базу пользователей перед обращением к другим методам, но такие пользователи получаются абсолютно бесправными (даже EXEC не могут запустить, т.к. не проходят авторизацию)
timeout login response seconds # сколько секунд IOS будет ждать ввода имени или парол (30 секунд, есть еще количество попыток)
aaa authentication password-prompt text-string (если он не заменен внешним сервером) aaa authentication username-prompt text-string (если он не заменен внешним сервером)
aaa authentication banner delimiter string delimiter
aaa authentication fail-message delimiter string delimiter
chap или pap аутентификация в PPP (д.б. установлена encapsulation ppp на интерфейсе)(в режиме конфигурации интерфейса):
ppp authentication {chap | chap pap | pap chap | pap | ms-chap } [if-needed] [list-name | default] [callin] [one-time] list-name и one-time можно использовать только, если сконфигурирован AAA if-needed можно использовать только для TACACS или XTACACS (не AAA) аутентификация при выходных звонках или когда дозвонившийся тоже хочет убедиться, что попал куда хотел (PAP)
ppp pap sent-username username password password
отказаться отвечать на запросы CHAP (но выдавать такие запросы самому):
ppp chap refuse [callin]
отвечать на запросы CHAP только после того, как собеседник представится (действует по умолчанию):
ppp chap wait secret
выдавать себя за указанный хост (по умолчанию посылается собственное имя NAS) для соседей, имя которых не найдено в списке пользователей:
ppp chap hostname hostname
определить секретное слово (до 11 символов) для CHAP для соседей, имя которых не найдено в списке пользователей:
ppp chap password secret
количество попыток (по умолчанию 3):
tacacs-server attempts count

authorization

Проверка прав доступа (полномочий) производится в случаях:

* exec (атрибуты терминальной сессии)
* command (проверка прав на исполнение команд, в т.ч. конфигурации) network (соединение PPP, SLIP, ARAP)
* reverse access (для обратного telnet, установление личности потребуется в любом случае), только tacacs+ или radius

Для определения полномочий определяется список методов определения полномочий и применяется к определенному интерфейсу. Так же как и в случае с аутентификацией, список по имени default применяется к интерфейсу по умолчанию. Прежде , чем конфигурировать авторизацию, необходимо включить AAA на NAS и сконфигурировать аутентификацию, TACACS+, локальную БД пользователей и/или RADIUS сервера.
Методы проверки полномочий:
tacacs+ - использовать сервер TACACS+ для получения AV пар с полномочиями
if-authenticated - все аутентифицированные пользователи получают полномочия
none - полномочия не проверяются
local - используется локальная BD, определяемая командами username (только небольшая часть возможностей доступна)
Конфигурация именованного списка методов авторизации:
aaa authorization [network | exec | command level | reverse-access ] [имя | default ]{ tacacs+ | if-authenticated | none | local | radius | krb5-instance}
Для аутентифицированных пользователей, зашедших с консольной линии, авторизация не производится. Привязка поименованного списка методов к линии или интерфейсу (в соответствующем режиме конфигурации):
authorization {arap | commands level | exec | reverse-access} {default | list-name} или (одновременно определяется список методов авторизации для SLIP) ppp authorization {default | list-name}
Запретить авторизацию команд конфигурации:
no aaa authorization config-command
Примеры:
aaa authorization exec default tacacs+ if-authenticated # проверяем права на запуск EXEC (shell так у киски называется) с помощью сервера tacacs+, а если его нет, то даем разрешение, если личность пользователя удостоверена - только благодаря этой строчке tacacs+ сервер возвращает автокоманду (в нашем случае telnet или ppp)
aaa authorization commands 1 default tacacs+ if-authenticated # проверяем права на исполнение команд уровня 1 (непривилегированных) с помощью сервера tacacs+, а если его нет, то даем разрешение, если личность пользователя удостоверена
aaa authorization commands 15 default tacacs+ if-authenticated # проверяем права на исполнение команд уровня 15 (привилегированных) с помощью сервера tacacs+, а если его нет, то даем разрешение, если личность пользователя удостоверена
aaa authorization network default tacacs+ if-authenticated # проверка прав, если кто-то лезет к нам по сети, с помощью сервера tacacs+, а если его нет, то даем разрешение, если личность пользователя удостоверена

accounting

Так же как и для аутентификации и авторизации определяется список методов учета и применяется к определенному интерфейсу или линии. По умолчанию применяется список по имени default. Если примененный список не определен, то учет не производится.
Методы учета:
tacacs+ - AV пары учета посылаются на tacacs+ сервер
radius - AV пары учета посылаются на RADIUS сервер
Типы учитываемых событий:
network - PPP, SLIP и ARAP сессии, включают счетчики байт и пакетов
exec - учет терминальных EXEC-сессий
command - учет отдельных команд?
connection - учет информации о исходящих соединениях (telnet, rlogin, LAT, TN3270, PAD)
system - события системного уровня (только default список и только tacacs+)
Объем информации:
stop-only - посылается информация только о завершении события
wait-start - посылается информация о начале события и о его завершении, ожидаетсяподтверждение от TACACS+ или RADIUS сервера о получении этой информации(необходим, если нужен учет максимального числа одновременных сессий в tac_plus)
start-stop - посылается информация о начале события и о его завершении
none - ничего не посылать
Конфигурация именованного списка методов учета:
aaa accounting {system | network | exec | connection | commands level} {default | list-name}{start-stop | wait-start | stop-only | none} [method1 [method2...] ]
Затем применяем определенный ранее метод учета к линии
accounting {arap | exec | connection | commands level} {default | list-name} или интерфейсу (одновременно определяется список методов авторизации для SLIP)
ppp accounting {default | list-name}
Мелкие настройки:
aaa accounting suppress null-username # не посылать учетные записи, если имя пользователя - пустая строка (aaa authentication login method-list none)
aaa accounting update {newinfo | periodic number} # регулярно посылать учетную информацию при изменениях/периодически (ранее по умолчанию посылались update newinfo)
Посмотреть учетную информацию о текущих сессиях:
show accounting

6. Настройка асинхронного интерфейса и линий

Нужен для того, чтобы удаленные пользователи могли попасть в вашу сеть через маршрутизатор.
Действия по шагам:
1. Начать конфигурирование с терминала:
Router#configure terminal
Router(config)#x25 routing
2. Конфигурируем асинхронный интерфейс:
Router(config)#interface async 1
3. Задаем протокол PPP (point-to-point) на данном интерфейсе:
Router(config-if)#encapsulation ppp
4. Устанавливаем PPP параметры на интерфейсе:
Router(config-if)#async mode interactive задаем тип линии
Router(config-if)#ppp authentication chap задаем тип аутофентикации
5. Настройка IP address:
Router(config-if)#ip address 192.168.20.1 255.255.255.0
6. Активация интерфейса:
Router(config-if)#no shutdown
Router(config-if)#exit
Router#write запись
7. Аналогично для других интерфейсов async, если нужно (для Cisco2509).

7. Управление и мониторинг

Можно всегда посмотреть по команде show ?
Эта команда показывает, какие события можно просмотреть.
show async status
show interface async номер
show compress
show controller имя-контроллера
show interface accounting
show interface тип номер
clear counters тип номер
show protocols
show version
clear interface тип номер
clear line номер
shutdown
no shutdown
show ip route
show x25 route
mrak
Управление приоритетом трафика на Cisco

Предотвращаем монополизацию канала сессиями с большим трафиком (WFQ вместо FIFO).
interface Serial0
fair-queue
RED/WRED (Random early detect)
interface Ethernet0
random-detect
hold-queue 200 out
Определение более приоритетного трафика (уменьшаем приоритет ftp).
interface Serial0
priority-group 1
!
priority-list 1 protocol ip medium udp domain
priority-list 1 protocol ip low tcp ftp
priority-list 1 protocol ip low tcp ftp-data
Ограничиваем вес трафика в очереди (75% - WWW, 5% - DNS, и 20% остальное)
interface Serial0
custom-queue-list 1
!
queue-list 1 protocol ip 1 tcp www
queue-list 1 protocol ip 2 udp domain
queue-list 1 default 3
queue-list 1 queue 1 byte-count 7500
queue-list 1 queue 2 byte-count 500
queue-list 1 queue 3 byte-count 2000
Правила применимы только для исходящего трафика.
mrak
Как зажать трафик на одном из интерфейсов маршрутизатора Cisco

interface Serial0
traffic-shape rate 128000 8000 8000 1000
или
interface Serial1
rate-limit output 128000 8000 8000 conform-action transmit exceed-action drop
traffic-shape - только исходящий трафик, rate-limit - входящий или исходящий.
mrak
Конфигурирование рутеров Cisco
Первоисточник: Void.ru, статья - 24/01/2001.
Автор: neo

Роутеры фирмы Cisco являются весьма надежным оборудованием и по удобству конфигруирования, по мнению автора, превосходят своих конкурентов, правда, и стоимость их на 20% превышает аналоги других производителей в классе коммутаторов и роутеров для компаний среднего звена.

В статье мы рассмотрим логическое деление блока адресов выделенного ISP на подсети, повторяющие структуру компании по отделам, конфигурирование роутера серии Cisco 2500 для организации доступа небольшой компании в Интернет с подключением по сихронному каналу 256K к ISP и фильтрацией IP пакетов. Наш роутер будет иметь один задействованный серийный порт для подключения к ISP (Serial 0) и один Ethernet порт (е0), смотрящий в локальную сеть компании, под которую ISP выделил сеть на 254 хоста.

1. Начальное конфигурирование роутера

На маршрутизаторах Cisco работает высокопроизводительная и созданная с нуля операционная система IOS, находящаяся в энергонезависимой памяти (flash). Типичная модель серии 2500 имеет 1 Ethernet порт подключаемый к HUB-у или коммутатор в локальной сети через трансивер AUI->UTP и два серийных порта для подключения к глобальным каналам (Seriаl 0, Serial 1). Имена интерфейсов можно указывать как Ethernet0 или e 0. Если это модульный коммутатор Catalyst то указывается сначала тип интерфейса, затем слот а затем порт.

Например 3-я ethernet плата и 2 порт на плате указывается как "e 3/2". Помимо этого имеется консольный порт для конфигурирования роутера (включаемый в серийный порт компьютера) и дополнительно AUX порт для подключения модема. Конфигурирования роутера можно производить как через консольный порт, AUX порт и через сессию telnet .

Более новые версии IOS позволяют работать с роутером по SSH сеансу. Но при первой загрузке роутер требуется сконфигурировать через консольный порт. Для этого установив скорость порта Serial в 9600 на UNIX-хосте начинаем конфигурирование в терминальной программе. Например это может быть tip, cu, minicom. Для tip последние две строчки конфига /etc/remote должны выглядеть так :

# Hardwired line
cuaa0:dv=/dev/cuaa0:br#9600:
cuaa1:dv=/dev/cuaa1:br#9600:
Подсоединив консольный кабель (идет в поставке) к роутеру (порт CON) и другой конец через преходник к ПК заходим на консоль Cisco роутера :

bash-2.04#tip cuaa0
Затем включаем роутер и видим, что сначала загружается начальный загрузчик bootstrap :

System Bootstrap, Version 5.2(8a), RELEASE SOFTWARE
Copyright © 1986-1995 by cisco Systems
2500 processor with 16384 Kbytes of main memory

F3: 3268680+81304+204996 at 0x3000060

Restricted Rights Legend

Use, duplication, or disclosure by the Government is
subject to restrictions as set forth in subparagraph
© of the Commercial Computer Software - Restricted
Rights clause at FAR sec. 52.227-19 and subparagraph
© (1) (ii) of the Rights in Technical Data and Computer
Software clause at DFARS sec. 252.227-7013.

cisco Systems, Inc.
170 West Tasman Drive
San Jose, California 95134-1706
Дальше начальный загрузчик загружает саму операционную систему IOS из флеша (flash) :

Cisco Internetwork Operating System Software
IOS ™ 3000 Software (IGS-I-L), Version 11.0(4), RELEASE SOFTWARE (fc1)
Copyright © 1986-1995 by cisco Systems, Inc.
Compiled Mon 18-Dec-95 17:49 by alanyu
Image text-base: 0x0301C8DC, data-base: 0x00001000

cisco 2500 (68030) processor (revision D) with 16380K/2048K bytes of memory.
Processor board ID 02413443, with hardware revision 00000000
Bridging software.
X.25 software, Version 2.0, NET2, BFE and GOSIP compliant.
1 Ethernet/IEEE 802.3 interface.
2 Serial network interfaces.
32K bytes of non-volatile configuration memory.
4096K bytes of processor board System flash (Read ONLY)

Press RETURN to get started!

Cisco Internetwork Operating System Software
IOS ™ 3000 Software (IGS-I-L), Version 11.0(4), RELEASE SOFTWARE (fc1)
Copyright © 1986-1995 by cisco Systems, Inc.
Compiled Mon 18-Dec-95 17:49 by alanyu
Надо сказать что IOS можно загрузить не только из FLASH но и из ОЗУ роутера а также с TFTP сервера. Поскольку это первая загрузка роутера то нам предлагают пройти этапы конфигурирования роутера (эта программа запускается как setup). Как видно ниже процесс конфигурирования достаточно прозрачен и прост. После того как вы ответите на вопросы программа построит конфиг и запишет его в NVRAM и начнет перезагружаться. Итак начинаем конфигурирование интерфейсов в программе setup:

--- System Configuration Dialog ---

At any point you may enter a question mark '?' for help.
Refer to the 'Getting Started' Guide for additional help.
Use ctrl-c to abort configuration dialog at any prompt.
Default settings are in square brackets '[]'.
Would you like to enter the initial configuration dialog? [yes]: yes
Просматриваем список интерфейсов на нашем роутере :

First, would you like to see the current interface summary? [yes]:

Any interface listed with OK? value "NO" does not have a valid configuration

Interface IP-Address OK? Method Status Protocol
Ethernet0 unassigned NO not set up up
Serial0 unassigned NO not set down down
Serial1 unassigned NO not set down down

Configuring global parameters:

Имя роутера :

Enter host name [Router]:

Вводим так enable-secret для доступа к конфигурированию роутера :

The enable secret is a one-way cryptographic secret used
instead of the enable password when it exists.

Enter enable secret: s1

Затем вводим enable-password (оставленно для совместимости со старыми
версиями IOS) :

The enable password is used when there is no enable secret
and when using older software and some boot images.

Enter enable password: s2

Вводим пароль на виртульный терминал :

Enter virtual terminal password: s2

Разрешаем SNMP для того чтобы мы могли получить статистику :

Configure SNMP Network Management? [yes]: yes
Community string [public]: public1

Наш роутер имеет только поодежку IP (без IPX), его мы и конфигурируем :

Configure IP? [yes]: yes
Поскольку с ISP у нас роутинг будет статический, мы не включаем протоколы маршрутизации :

Configure IGRP routing? [yes]: no
Configure RIP routing? [no]:
Задаем IP адресс на Ethernet интерфейсе, оставляя интерфейс Serial 0 as unnumbered (что это такое разберем позже) :

Configuring interface parameters:

Configuring interface Ethernet0:
Is this interface in use? [yes]:
Configure IP on this interface? [yes]:
IP address for this interface: 1 200.1 200.200.1
Number of bits in subnet field [0]:
Class C network is 200.200.200.0, 0 subnet bits; mask is 255.255.255.0

Configuring interface Serial0:
Is this interface in use? [yes]:
Configure IP on this interface? [yes]: no

Отключаем Serial1 :

Configuring interface Serial1:
Is this interface in use? [yes]: no

The following configuration command script was created:

И вот в итоге мы получаем такой файл конфигурации :

hostname Router
enable secret 5 $1$FE5i$sIvZuXxqJWjFllqA5heFn1
enable password s2
line vty 0 4
password s2
snmp-server community public1
!
ip routing
!
interface Ethernet0
ip address 200.200.200.1 255.255.255.0
!
interface Serial0
no ip address
!
interface Serial1
shutdown
no ip address
!
end
Затем отвечаем положительно на вопрос о записи этой конфигурации в NVRAM и запуске ее :

Use this configuration? [yes/no]: yes
Building configuration...
[OK]Use the enabled mode 'configure' command to modify this configuration.


Press RETURN to get started!


%SYS-5-RESTART: System restarted --

Cisco Internetwork Operating System Software
IOS ™ 3000 Software (IGS-I-L), Version 11.0(4), RELEASE SOFTWARE (fc1)
Copyright © 1986-1995 by cisco Systems, Inc.
Compiled Mon 18-Dec-95 17:49 by alanyu
Router>
Привыкайте к тому что Вам придется 90% времени работать с тектовым конфигом, хотя в природе есть такой програмный продукт как CiscoWorks но он хорош только при наличии огромного числа роутеров (peers). Итак мы находимся в консоли роутера. Все наши действия выполняются интерпретатором команд EXEC. Выполнение команд ведется в одном из двух режимов - пользовательском и привилегированном. Пользовательский режим позволяет собирать общую информацию о роутере при вводе команд на консоли, например наш роутер имеет приглашение :

Router>

введя команду show version мы увидим с чем мы работаем :

Router>show version

Cisco Internetwork Operating System Software
IOS ™ 3000 Software (IGS-I-L), Version 11.0(4), RELEASE SOFTWARE (fc1)
Copyright © 1986-1995 by cisco Systems, Inc.
Compiled Mon 18-Dec-95 17:49 by alanyu
Image text-base: 0x0301C8DC, data-base: 0x00001000

ROM: System Bootstrap, Version 5.2(8a), RELEASE SOFTWARE
ROM: 3000 Bootstrap Software (IGS-RXBOOT), Version 10.2(8a), RELEASE SOFTWARE (fc1)

Router uptime is 3 days, 1 hour, 20 minutes
System restarted by error - Software forced crash, PC 0x311B808
System image file is "flash:igs-in-l.110-4", booted via flash

cisco 2500 (68030) processor (revision D) with 16380K/2048K bytes of memory.
Processor board ID 02413443, with hardware revision 00000000
Bridging software.
X.25 software, Version 2.0, NET2, BFE and GOSIP compliant.
1 Ethernet/IEEE 802.3 interface.
2 Serial network interfaces.
32K bytes of non-volatile configuration memory.
4096K bytes of processor board System flash (Read ONLY)

Configuration register is 0x2102

Состояние всех интерфейсов можно просмотреть командой :

Router>show int
Ethernet0 is up, line protocol is up
Hardware is Lance, address is 0000.0c5d.8231 (bia 0000.0c5d.8231)
Internet address is 200.200.200.1 255.255.255.0
MTU 1500 bytes, BW 10000 Kbit, DLY 1000 usec, rely 255/255, load 1/255
Encapsulation ARPA, loopback not set, keepalive set (10 sec)
ARP type: ARPA, ARP Timeout 4:00:00
Last input 0:00:10, output 0:00:09, output hang never
Last clearing of "show interface" counters never
Output queue 0/40, 0 drops; input queue 0/75, 0 drops
5 minute input rate 0 bits/sec, 0 packets/sec
5 minute output rate 0 bits/sec, 0 packets/sec
16094 packets input, 1867191 bytes, 0 no buffer
Received 16094 broadcasts, 0 runts, 0 giants
16 input errors, 16 CRC, 16 frame, 0 overrun, 0 ignored, 0 abort
0 input packets with dribble condition detected
30833 packets output, 2896155 bytes, 0 underruns
3 output errors, 416 collisions, 1 interface resets, 0 restarts
0 output buffer failures, 0 output buffers swapped out
Serial0 is down, line protocol is down
Hardware is HD64570
MTU 1500 bytes, BW 1544 Kbit, DLY 20000 usec, rely 255/255, load 1/255
Encapsulation HDLC, loopback not set, keepalive set (10 sec)
Last input never, output never, output hang never
Last clearing of "show interface" counters never
Output queue 0/40, 0 drops; input queue 0/75, 0 drops
5 minute input rate 0 bits/sec, 0 packets/sec
5 minute output rate 0 bits/sec, 0 packets/sec
0 packets input, 0 bytes, 0 no buffer
Received 0 broadcasts, 0 runts, 0 giants
0 input errors, 0 CRC, 0 frame, 0 overrun, 0 ignored, 0 abort
0 packets output, 0 bytes, 0 underruns
0 output errors, 0 collisions, 8805 interface resets, 0 restarts
0 output buffer failures, 0 output buffers swapped out
0 carrier transitions
DCD=up DSR=up DTR=down RTS=down CTS=up
Serial1 is administratively down, line protocol is down
Hardware is HD64570
MTU 1500 bytes, BW 1544 Kbit, DLY 20000 usec, rely 255/255, load 1/255
Encapsulation HDLC, loopback not set, keepalive set (10 sec)
Last input never, output never, output hang never
Last clearing of "show interface" counters never
Input queue: 0/75/0 (size/max/drops); Total output drops: 0
Output queue: 0/64/0 (size/threshold/drops)
Conversations 0/0 (active/max active)
Reserved Conversations 0/0 (allocated/max allocated)
5 minute input rate 0 bits/sec, 0 packets/sec
5 minute output rate 0 bits/sec, 0 packets/sec
0 packets input, 0 bytes, 0 no buffer
Received 0 broadcasts, 0 runts, 0 giants
0 input errors, 0 CRC, 0 frame, 0 overrun, 0 ignored, 0 abort
0 packets output, 0 bytes, 0 underruns
0 output errors, 0 collisions, 4 interface resets, 0 restarts
0 output buffer failures, 0 output buffers swapped out
0 carrier transitions
DCD=down DSR=down DTR=down RTS=down CTS=down
Если ввести сокращенно команду sh int e0, то вы увидите информацию только по Ethernet интерфейсу. Как вы видите этой информации часто хватает чтобы определить причину неисправности какого либо интерфейса или кабельного соединения. По команде show prot вы увидите какие протоколы активизированы на интерфейсах. Напрмер сейчас у нас нет соединения с ISP и на серийных интерфейсах у нас сплошные down. Заметьте что Serial1 у нас administratively down как неиспользуемый. Подробный список команд в пользовательском режиме можно получить введя команду "?" :

Router>?
Exec commands:
connect Open a terminal connection
disable Turn off privileged commands
disconnect Disconnect an existing network connection
enable Turn on privileged commands
exit Exit from the EXEC
help Description of the interactive help system
lock Lock the terminal
login Log in as a particular user
logout Exit from the EXEC
mrinfo Request neighbor and version information from a multicast
router
mstat Show statistics after multiple multicast traceroutes
mtrace Trace reverse multicast path from destination to source
name-connection Name an existing network connection
pad Open a X.29 PAD connection
ping Send echo messages
ppp Start IETF Point-to-Point Protocol (PPP)
resume Resume an active network connection
rlogin Open an rlogin connection
show Show running system information
slip Start Serial-line IP (SLIP)
telnet Open a telnet connection
terminal Set terminal line parameters
traceroute Trace route to destination
tunnel Open a tunnel connection
where List active connections
x3 Set X.3 parameters on PAD

Большая часть работ, такая как конфигурирование маршрутизации, программное выключение интерфейсов и создание ACL (списки доступа), измение глобального конфига осуществляются в привелигерованном режиме. Для этого требуется знать при велигерованный пароль. Перейдя в этот режим командой enable и введя пароль который мы ввели на этапе кофигурирования роутера программой setup мы увидим что список команд здесь более шире :

Router>enable
Password:
Как видите курсор меняется на "#" (почти как у root-a в UNIX shell) :

Router#?
Exec commands:
bfe For manual emergency modes setting
clear Reset functions
clock Manage the system clock
configure Enter configuration mode
connect Open a terminal connection
copy Copy configuration or image data
debug Debugging functions (see also 'undebug')
disable Turn off privileged commands
disconnect Disconnect an existing network connection
enable Turn on privileged commands
erase Erase flash or configuration memory
exit Exit from the EXEC
help Description of the interactive help system
lock Lock the terminal
login Log in as a particular user
logout Exit from the EXEC
mbranch Trace multicast route down tree branch
mrbranch Trace reverse multicast route up tree branch
mrinfo Request neighbor and version information from a multicast
router
mstat Show statistics after multiple multicast traceroutes
name-connection Name an existing network connection
no Disable debugging functions
pad Open a X.29 PAD connection
ping Send echo messages
ppp Start IETF Point-to-Point Protocol (PPP)
reload Halt and perform a cold restart
resume Resume an active network connection
rlogin Open an rlogin connection
rsh Execute a remote command
send Send a message to other tty lines
setup Run the SETUP command facility
show Show running system information
slip Start Serial-line IP (SLIP)
start-chat Start a chat-script on a line
systat Display information about terminal lines
telnet Open a telnet connection
terminal Set terminal line parameters
test Test subsystems, memory, and interfaces
traceroute Trace route to destination
tunnel Open a tunnel connection
undebug Disable debugging functions (see also 'debug')
verify Verify checksum of a Flash file
write Write running configuration to memory, network, or terminal
x3 Set X.3 parameters on PAD
В этом режиме можно просмотреть файл конфигурации и редактировать его :

Router#sh conf
Using 465 out of 32762 bytes
!
version 11.0
service config
service udp-small-servers
service tcp-small-servers
!
hostname Router
!
enable secret 5 $1$FE5i$sIvZuXxqJWjFllqA5heFn1
enable password s2
!
!
interface Ethernet0
ip address 200.200.200.1 255.255.255.0
!
interface Serial0
no ip address
no fair-queue
snmp-server community public1 RO
!
interface Serial1
no ip address
shutdown
!
line con 0
exec-timeout 0 0
line aux 0
transport input all
line vty 0 4
password s2
login
!
end
Войдем в режим редактирования глобального файла командой configure terminal и запретим напрмер использование small serivices, поскольку наш роутер должен будет выполнять роль шлюза в интернет и одновременно firewall-a (об этом в третьем разделе).

Сначала посмотрим включены ли эти сервисы командой sh conf и увидим
строчки :

service udp-small-servers
service tcp-small-servers

Заходим в режим редактирования :

Router#config terminal
Отключаем эти сервисы вводом префикса "no" и полного написания команды: Router(config)#no service udp-small-servers Router(config)#no service tcp-small-servers

Затем выходим из режима редактирования :

Router(config)#exit
Таким же образом можно быстро отключить какой либо интерфейс зайдя в режим конфигурирования интерфейса:

Router#configure terminal
Router(config)#interface ethernet 0
Router(config-if)#shutdown
Router(config-if)#exit
Router(config)#exit
Router#write memory
Building configuration ...
Если вы введете no shutdown то интерфейс будет активизирован. В более новых версиях IOS команда write memory заменена на copy-runing config startup-config, т.е текущий файл конфигурации записывается в энергонезависимую память (NVRAM). Другая команда write terminal показыват действующую конфигурацию (в новых версия IOS - show running config).

На этом этапе нам надо убедиться что сетевой интерфейс Ethernet 0 у нас активирован его IP адрес - 200.200.200.1 пингуется из локальной сети.

Теперь перейдем к рассмотрению Serail интерфейсов. В большинстве случаев подключени синхронных интерфесов клиента и провайдера производится по V.35 интерфейсу и серийные порты конфмгурируются как unnunbered. Это дает возможность вести политику доступа в пределах одного адресного пространства манипулируя трафиком на одном ethernet интерфейсе. Для этого нам необходимо сконфигурировать интерфейс Serial 0 следующим образом, без присвоения ему IP адреса :

Router#conf t
Router(config)#int s0
Router(config-if)#ip unnumbered Ethernet 0
Router(config-if)#exit
Router(config)#exit
Router#wr mem
IP адресс ethernet интерфеса нашего ISP 200.200.199.1 (а мы договорились что у ISP Serial скофигрурен как непронумерованный). Для того чтобы мы могли работать с ресурсами Интернета мы пропишем статический роутинг на этот IP через интерфес Serial 0:

Router(config)#ip route 0.0.0.0 0.0.0.0 200.200.200.199.1 Serial0
Router#wr mem
Провайдер со своей стороны прописывает роутинг на своем маршрутизаторе на IP адрес нашего роутера (200.200.200.1) на всю нашу сеть. Во всех хостах локальной сети мы должны поставить IP адрес нашего роутера (200.200.200.1) как адрес шлюза в интернет. Маска же должна соответствовать той подсети в которой находится данных хост, согласно логической структуре компании.

При поступлении пакета из внутреней сети наш роутер будет проверяет на адресован ли он в локальную сеть по заголовку IP пакета, если это не так то он адресует это пакет во внешнюю сеть через IP адрес роутера ISP. Сам же провайдер работает конечно не с применением статической маршрутизации а динамической (как правило в использованием BGP, IGRP протоколов).

Динамическая маршрутизация достаточно сложная тема и она будет освещаться на void.ru в отдельной статье. Теперь перейдем к пониманию принциппа деления подсетей на сети, что необходимо нам для организовации списки доступа по подсетям согласно отделам компании.

2. IP адресация и работа с подсетями

Системный администратор должен свободно ориентироватся в IP адресации и тому как применять подсети на практике. Крупные ISP помимо решения проблем безо- пасности ресурсов своей сети и клиентов постоянно управляют направлением трафика деля сети на подсети и надо сказать что во всем мире 80% парка маршрутизаторов составляют именно оборудование Cisco. Итак приступим. Как вы уже знаете адрес любого компьютера подключенного к сети интернета состоит из двух частей : адрес сети и адрес хоста, например в сети класса C полный адрес хоста выглядит так :

233.233.233.113, где 233.233.233 - адрес сети, а 113 - адрес хоста.
Конечно, роутер работает с адресами в двоичном представлении (в качестве основания взято число "2")о чем и подет речь ниже. Полный IP адрес занимает 32 байта или 4 октета по 8 битов в каждом. Напрмер часто используемая маска сети 255.255.255.0 в двоичном представлении выглядит так :

11111111 11111111 11111111 00000000
Преобразование адресов из двоичной в десятичную систему счисления (CC) производится путем подсчета значащих (заполненных единицами ) битов в каждом октете и возведении в эту степень двойки. Напрмер число 255 есть 2 в восьмой степени или полностью заполненые все восемь битов в октете единицами (см. выше). Обратный же процесс преобразования адреса из десятичной CC в двоичную тоже прост - достаточно запомнить значение каждого бита в десятичной системе и путем операции "Логическое И" над адресом и нашим шаблоном получаем двоичное представление.

7 6 5 4 3 2 1 0 степень 2
--------------------------------------------------------------------------
128 64 32 16 8 4 2 1 значение 2
Верхняя строка показывает нумерацию разрядов в октете или степень двойки в каждом разряде, нижняя строка - значение двойки в степени. Напрмер возмем адрес 233.233.233.111, и начнем перевод в двоичную СС. 233 в десятичную систему счисления : первый байт 233 получается суммой следующих слагаемых, которые мы набираем из нижней строки :

233 = 128+ 64 + 32 + 8 + 1
где позиции из которых были задействованны слагаемые мы записываем единицами, остальные нулями и получается - "11101001". Адрес хоста (последний октет) - десятичное 113 раскладывается так :

64 + 32 + 16 + 1

В итоге полный адрес будет выглядеть так :

11101001 11101001 11101001 01110001
Адрес сети в зависимости от первых трех битов делится на сети класса A, B, C, а маршрутизатор по первым битам определяет какого класса данная сеть, что ускоряет процесс маршрутизации. Ниже представленна таблица сетей, где AAA - часть адреса сети, BBB - часть адреса хоста

Сеть класса A (первый бит "0):

AAA.HHH.HHH.HHH (диапазон AAA от 1 до 127), например : 63.12.122.12

Сеть класса B (первые два бита 10) :

AAA.AAA.HHH.HHH (диапазон AAA от 128 до 191), например 160.12.234.12

Сеть класса C (первые три бита 110):

AAA.AAA.AAA.HHH (диапазон AAA от 192 до 223), например 200.200.200.1
Соответственно число узлов в сети класса A (16 777 214) больше чем узлов в сети класса B (65534) и совсем немного станций можно определить в сети класа C - всего 254. Почему не 256 - спросите вы ? Дело в том что два адреса содержащего только нули и только единицы резервируется и от числа адресов отнимается 2 адреса 256-2 = 254. То же касается и части адреса сети : в сети класса A можно создать 128-1=127 сетей, так как один нулевой адрес сети используется при указании маршрута по умолчанию при статической маршрутизации, сетей класса B может быть 2 в 14 степени = 16384 (2 октета по 8 бит = 16 битов - 2 первых зарезервированных бита = 14), сетей класса C насчитывается 2 в 21 степени (3 октета по 8 бит = 24 бита - 3 первых зарезервированных бита = 21).

Еще пример. Есть маска сети 255.255.224.0 и ее надо представить в двоичном виде. Вспомнив что 255 в двоичной системе счисления есть 8 единиц мы записываем :

11111111 11111111 ???????? 00000000
Число 224 раскладывается по шаблону на следующие множители :

128 + 64 + 32 = 224 и заполнив единицами позиции из которых мы использовали слагаемые а нулями неиспользуемые позиции получаем полный адрес в двоичном представлении : получаем двоичное число

11111111 11111111 1110000 00000000
Теперь перейдем к пониманию того как же образуются подсети на примере сети класса C. Введение понятия подсети необходимо для экономии и четкого упорядочивания адресного пространства в компании, поскольку давать каждому отделу свое адресное пространство на 256 хостов в каждой сети нет необходимости да и накладно будет подобное для ISP. К тому же снижается трафик в сети поскольку роутер теперь может направлять пакеты непосрественно в нужную подсеть (определяющую отдел компании) а не всей сети.

Для того чтобы разделить сеть на подсети используют часть битов из адресного пространства описывающего адрес хоста с помошью маски подсети. Например в сети класса C мы можем использовать последний октет (8 битов), точнее его часть. Теперь разберемся с логической структурой компании . Компания имеет 10 отделов с числом компьютеров в каждом отделе не более 12-ти. Для такой струкруты подойдет маска подсети 255.255.255.240. Почему спросим мы ? Если представить маску в двоичном представлении :

1111111 11111111 11111111 11110000
то мы увидим что последний октет состоит из 4-х единиц и нулей. Поскольку 4 бита забирается из адреса сети для маски подсети то у нас остается 2 в четвертой степени адреса (2xx4=16 - адресов). Но согласно RFC использовать нулевые адреса и адреса состоящие их единиц не рекомендуется, значит из 16 адресов мы вычитаем 2 адреса = 14 адресов в каждой подсети. Аналогично мы можем подсчитать число подсетей равное : 2 в 4-й степени = 16 - 2 зарезервированных адреса , итого 14 подсетей.

Применяя данную методику посчета мы можем организовывать адресное пространство согласно структуре компании, в нашем случае каждый отдел будет иметь по 14 адресов с маской 255.255.255.240 с числом отделов до 14-ти. Но системный администратор должен знать еще и диапазон адресов в назначаемый им каждом отделе. Это делается путем вычитания первого подсети ("16) подсети из числа 256, т.е 256-16=240, 240-16=224... и так до тех пор пока не получится число меньше чем 16. Корректные адреса хостов лежат в диапазоне между подсетями, как в таблице :

Подсеть 16 (17-30)
Подсеть 32 (33-46)
Подсеть 48 (49-62)
Подсеть 64 (65-..)
...
...
Подсеть 224 (225-238)
В первой подсети 16 вы видите что диапазон адресов находится в границах от 17 до 30. "31" адрес (а если быть точнее часть адреса исключая биты подсети) состоит из единиц (используя 4 последних бита под адрес хоста мы получим широковещательный адрес) и мы не можем использовать его, само число 31 в двоичном представлении = 00011111. Старайтесь всегда переводить числа в двоичную с/с или пользуйтесь таблицами, ведь маршрутизатор получив неправильную маску или адрес хосто не сможет доставить обратно пакеты этому хосту.

Значит первую подсеть мы можем выделить секретариат отделу где каждый хост должен иметь маску подсети 255.255.255.240. При работе с маршрутизатором Вам следует учесть что использовать нулевую подсеть, c маской 255.255.255.128 в RFC не рекомендуется , но Вы можете решить эту проблему введя команду ip classless в глобальную кофигурацию роутера.

3. Создание списков доступа (ACL)

Списки доступа на роутере Сisco работают и строятся также как правил фильтрации в популярном IPFW или IPF на базе FreeBSD. Правила читаются в пордке следования и как только находится соот- ветствие шаблону маршрут пакета определяется этип правилом. Вы можете создавать списки доступа в глобальном конфиге (командой access list) а затем закрепить какой либо список за любым интерфейсом. Можно создать следующие списки доступа :

Router#configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)#access-list ?
<1-99> IP standard access list
<100-199> IP extended access list
<1100-1199> Extended 48-bit MAC address access list
<200-299> Protocol type-code access list
<700-799> 48-bit MAC address access list
Вот полный синтактис команды : access-list номер_списка permit/deny протокол исходный_адрес порт целевой_адрес порт

Синтактис расширеного списка мы рассмотрим на примере строчки списка разрешающей работать по протоколу SMTP всем сотрудникам компании :

Номер расширенного списка берем произвольный, 110 :

Router(config)#access-list 110 ?
deny Specify packets to reject
permit Specify packets to forward

Разрешаем прохождение пакетов :

Router(config)#access-list 110 permit ?
<0-255> An IP protocol number
eigrp Cisco's EIGRP routing protocol
gre Cisco's GRE tunneling
icmp Internet Control Message Protocol
igmp Internet Gateway Message Protocol
igrp Cisco's IGRP routing protocol
ip Any Internet Protocol
ipinip IP in IP tunneling
nos KA9Q NOS compatible IP over IP tunneling
ospf OSPF routing protocol
tcp Transmission Control Protocol
udp User Datagram Protocol

Вводим протокол :

Router(config)#access-list 110 permit tcp ?
A.B.C.D Source address
any Any source host
host A single source host
Вводим исходный адрес (в нашем примере "any" означает любой хост или сеть) :

Router(config)#access-list 110 permit tcp any ?
A.B.C.D Destination address
any Any destination host
eq Match only packets on a given port number
gt Match only packets with a greater port number
host A single destination host
lt Match only packets with a lower port number
neq Match only packets not on a given port number
range Match only packets in the range of port numbers

Вводим целевой адрес :

Router(config)#access-list 110 permit tcp any any ?
eq Match only packets on a given port number
established Match established connections
gt Match only packets with a greater port number
log Log matches against this entry
lt Match only packets with a lower port number
neq Match only packets not on a given port number
precedence Match packets with given precedence value
range Match only packets in the range of port numbers
tos Match packets with given TOS value
<cr>
Указываем что мы хотим только один критерий - номер порта равный smtp (eq) :

Router(config)#access-list 110 permit tcp any any eq ?
<0-65535> Port number
bgp Border Gateway Protocol (179)
chargen Character generator (19)
cmd Remote commands (rcmd, 514)
daytime Daytime (13)
discard Discard (9)
domain Domain Name Service (53)
echo Echo (7)
exec Exec (rsh, 512)
finger Finger (79)
ftp File Transfer Protocol (21)
ftp-data FTP data connections (used infrequently, 20)
gopher Gopher (70)
hostname NIC hostname server (101)
irc Internet Relay Chat (194)
klogin Kerberos login (543)
kshell Kerberos shell (544)
login Login (rlogin, 513)
lpd Printer service (515)
nntp Network News Transport Protocol (119)
pop2 Post Office Protocol v2 (109)
pop3 Post Office Protocol v3 (110)
smtp Simple Mail Transport Protocol (25)
sunrpc Sun Remote Procedure Call (111)
syslog Syslog (514)
tacacs TAC Access Control System (49)
talk Talk (517)
telnet Telnet (23)
time Time (37)
uucp Unix-to-Unix Copy Program (540)
whois Nicname (43)
www World Wide Web (HTTP, 80)
И вводим порт smtp (можно было ввести и "25) :

Router(config)#access-list 110 permit tcp any any eq smtp
Теперь вводим остальные строчки списка доступа под наши задачи. Разрешаем работу с POP3 серверами сотрудникам компании :

access-list 110 permit tcp any any eq pop3
Включаем доступ на наш прокси сервер (200.200.200.2) на 8080 порту

access-list 120 permit tcp 200.200.200.0 0.0.0.255 host 200.200.200.2 eq 8080
access-list 110 permit tcp host 200.200.200.2 any
На нашем прокси сервер мы настраиваем Squid на кеширование запросов от сотрудников по FTP и HTPP протоколам но не даем сотрудникам доступ напрямую в WWW cерверам . Разрешаем весь трафик в локальной сети (по стандартному списку доступа) : access-list 10 permi ip 200.200.200.0 0.0.0.255 200.200.200.0 0.0.0.255

Если вам необходимо разделить доступ по отделам компании то вы можете применяя маску подсети оперировать трафиком в локальной сети, напрмер доступ к серверу бухгалтерии 200.200.200.50 должны иметь только отдел бухгалтерии (200.200.200.48 255.255.255.240) и руководство компании (200.200.200.224 255.255.255.240) :

access-list 110 permi ip 200.200.200.48 0.0.0.240 200.200.200.224 0.0.0.240
Если вы планируете ограничение трафика средствами серверов то вы должны разрешить весь IP трафик в локальной сети (применяя стандартный список доступа) :

access-list 10 permit 200.200.200.0 0.0.0.255 200.200.200.0 0.0.0.255
После того как вы разберетесь с доступом и составите полный список access-list -ов вы должны сделать их привязку к интерфесу, в нашем случае Ethernet 0 :

Router#configure terminal
Router(config)#int e0
! Разрешаем входящий трафик на прокси сервер
Router(config)#access-group 120 in
! Разрешаем исходящий трайик от прокси сервера и
Router(config)#access-group 110 in
! Разрешаем весь локальный трафик
Router(config)#access-group 10 in
Router(config)#exit
Router#wr mem
Как вы заметили, мы указываем правилам фильтрации выполняться на e0 интерфейсе для всех входящих пакетов.

4. Защита доступа к роутеру

Зашщита стека TCP/IP на роутере Cisco была описанна в предудущей статье, сейчас же мы займемся защитой паролем доступ к трем внешним источникам конфигрирования роутера :

- консоли роутера
- дополнительного порта для подлкючения модема (AUX)
- доступа по telnet сеансу
Для того чтобы закрыть доступ по консоли роутера войдите в режим конфигурирования

Router#config terminal

и введите команду задания пароля :

Router(config)#line console 0
Router(config)#password your_password
Router(config)#login
Router(config)#exit
Router#wr mem

Задание пароля на AUX порту задается так же :

Router(config)#line aux 0
Router(config)#password your_password
Router(config)#login
Router(config)#exit
Router#wr mem

И наконец пароль для telnet сессий :

Router(config)#line vty 0 4
Router(config)#password your_password
Router(config)#login
Router(config)#exit
Router#wr mem
Обратите внимение, что при задании пароля для telnet сеанса вы указываете число разрешенных сессий равное 4-м. При попытке получить доступ по любому из перечисленных способов получения доступа к роутеру вы получите приглашение такого рода : "Enter password:" При большом количестве роутеров использкуюте AAA acounting для задания механизма единой авторизации на всех устройствах cоздав пользователя командой :

Router(config)#username vasya password pipkin_password
Router(config)#exit
Router#wr term
По комапнде snow config мы увидим что наш пароль зашифрован и разгадать его достаточно сложно :

username vasya password 7 737192826282927612
Затем включаем в глобальном конфиге AAA accounting :

aaa new-model
aaa authentication login default local
aaa authentication login CONSOLE none
aaa authorization exec local if-authenticated
Далее сконфигурируем AUX, Console, telnet сессию, чтобы получить в итоге в конфиге :

line con 0
login authentication CONSOLE
line aux 0
transport input none
line vty 0 4
!
Теперь при попытке залогиниться получим следующее приглашение (пароль не отображается):

User Access Verification

Username:vasya
Password:
Router>
5. Сбор статистики с роутера

Для этого Вам понадобится любой UNIX хост с установленным на нем пакетом MRTG и создать файл конфигурации с помошью программы cfgmaker :

cfgmaker community_name@name_your_router,
где SNMP community_name (в режиме тольо чтение) вы задаете на роутере командой :

Routet(config)#snmp-server community community_name RO
а на UNIX хосте вы задаете на обработку перловым скриптом файл конфигурации :

Workdir: /usr/local/www/docs
Interval: 5
Refresh: 60
WriteExpires: Yes
Background[router.victim.com.1]:#CFCFCF
Options[router.victim.com.1]: bits, growright
Target[router.victim.com.1]: 1:community_name@victim.com
MaxBytes[router.victim.com.1]: 1250000
Title[router.victim.com.1]: router.victim.com : Ethernet0
PageTop[router.victim.com.1]: <H1>Traffic Analysis for Ethernet0
</H1>
<TABLE>
<TR><TD>System:</TD><TD>router.victim.com in </TD></TR>
<TR><TD>Maintainer:</TD><TD></TD></TR>
<TR><TD>Interface:</TD><TD>Ethernet0 (1)</TD></TR>
<TR><TD>IP:</TD><TD>router.victim.com (200.200.200.1)</TD></TR>
<TR><TD>Max Speed:</TD>
<TD>1250.0 kBytes/s (ethernetCsmacd)</TD></TR>
</TABLE>
### Serial 0 ###
Background[router.victim.com.2]:#CFCFCF
Options[community_name@victim.com.2]: bits, growright
Target[community_name@victim.com.2]: 2:community_name@victim.com
MaxBytes[community_name@victim.com.2]: 8000
Title[community_name@victim.com.2]: MTO 64K : Serial0
PageTop[community_name@victim.com.2]: <H1>Traffic Analysis for Serial0
</H1>
<TABLE>
<TR><TD>System:</TD><TD>router.victim.com </TD></TR>
<TR><TD>Maintainer:</TD><TD></TD></TR>
<TR><TD>Interface:</TD><TD>Serial0 (2)</TD></TR>
<TR><TD>IP:</TD><TD> ()</TD></TR>
<TR><TD>Max Speed:</TD>
<TD>8000.0 Bytes/s (propPointToPointSerial)</TD></TR>
</TABLE>
каждые пять минут (с помошью crond), который будет генерить отчеты по трайику в катаге /usr/local/www/data в виде HTML страничек с графиками. Вам необходимо запустить на этом хосте WWW сервер Apache для публикации статистики по внутреннему трафику (router.victim.com.html) на Ethernet интерфейсе и трафику на Serail 0 (router.victim.com.2.html) интерфейсу.

Заключение

Несмотря на кажущуюся простоту команд в EXEC режиме роутеры Cisco являются мощным средстом для диагностики неисправностей в глобальных и локальных сетях. Использую режим отладки (помощь доступна по команде "debug ?") вы можете прослушивать трафик в локальной сети по любому поддерживаемому вашей версией IOS протоколу (IPX, IP, Appletalk) или с помошью cdp получать информацию о соседних роутерах Cisco.

В следующей статье мы осветим вопросы динамической маршрутизации по наиболее используемым протоколам машрутизации таким как OSPF, BGP, IGRP и рассмотрим их применение на практике.
mrak
Настройка SSH на Cisco IOS


SSH доступен на IOS с модулем crypto.

Для того чтобы использовать вместо стандартного телнета, нужно выполнить следующие операции:

hostname carter

!--- The aaa new-model command causes the local username and password on the router
!--- to be used in the absence of other AAA statements.

aaa new-model
username cisco password 0 cisco

!--- Step 2: Configure the DNS domain of the router.

ip domain-name rtp.cisco.com

!--- Step 3: Generate an SSH key to be used with SSH.

cry key generate rsa
ip ssh time-out 60
ip ssh authentication-retries 2

!--- Step 4: By default the vtys' transport is Telnet. In this case,
!--- Telnet is disabled and only SSH is supported.

line vty 0 4
transport input SSH


Источник _http://www.cisco.com/warp/public/707/ssh.shtml
mrak
Как настроить Cisco для работы основного и бэкапного каналов.

ip sla или как сделать чтобы красиво работал основный\бэкапный каналы без BGP.
Итак, у нас есть маршрутизатор Cisco и 2 канала, основной и бэкапный.
Мы хотим
1. чтобы когда отваливался основной, работал бэкапный (и когда основной
поднялся, маршрут обратно переписывался на него)
2. чтобы нагрузка между ними балансировалась (и с PBR в том числе).
Опять же, при падении провайдера трафик не него не должен ходить.
Оба провайдера у нас через ethernet, и статический маршрут не исчезнет
при падении провайдера.
Настроим IP SLA для проверки доступности провайдеров
(пингуем наши дефолт-гейтвеи)

ip sla 1
icmp-echo 80.91.170.13 source-interface GigabitEthernet0/1
timeout 2000
frequency 3
ip sla schedule 1 life forever start-time now

ip sla 2
icmp-echo 83.218.239.13 source-interface GigabitEthernet0/2
timeout 2000
frequency 3
ip sla schedule 2 life forever start-time now

track 1 rtr 1 reachability
track 2 rtr 2 reachability

Метод icmp-echo не очень хорош, т.к. при пропадании одного icmp пакета,
что случается чаще чем я думал (можно глянуть коммандой show track),
идёт переключение маршрута(об этом чуть позже). Лучше использовать, icmp-jitter
(доступен с только с 12.4Т), тк. он пускает несколько пакетов.
Например:

ip sla 1
icmp-jitter 80.91.170.13 source-ip 80.91.170.14 num-packets 5
timeout 2
frequency 4
ip sla schedule 2 life forever start-time now

ip sla 2
icmp-jitter 83.218.239.13 source-ip 83.218.239.14 num-packets 5
timeout 2
frequency 4
ip sla schedule 2 life forever start-time now


И собственно добавим статические маршруты на провайдеров.

ip route 0.0.0.0 0.0.0.0 80.91.170.13 50 track 1 (основной провайдер, AD 50)
ip route 0.0.0.0 0.0.0.0 83.218.239.13 100 track 2 (бэкапный, AD 100)

Если нету ответа на эхо запрос от провайдера, статический маршрут
убирается.

При отсутствии AD (Administrative Distance) в ip route у статических маршрутов будет load blancing
(per destanation, при влючённом ip cef. Т.е. на один dst-ip всё поёдет через одного провайдера, на другой dst-ip через другого)

Добавим еще PolicyBasedRouting (если у нас не симметричные каналы, или мы хотим чтобы
некоторые внутренние хосты выходили через конкретного провайдера, а в
случае его падения через бэкапного). В route-map выставляется приоритет
на лучшего провайдера.

рисуем рoут мап

route-map 115 permit 10
match ip address 115
set ip next-hop verify-availability 80.91.170.13 10 track 1
set ip next-hop verify-availability 83.218.239.13 20 track 2

указывем в acl внутренних хостов

access-list 115 permit ip host 192.168.0.15 any
access-list 115 permit ip host 192.168.10.2 any
access-list 115 permit ip host 192.168.0.161 any

И вешаем

ip policy route-map 115

На интерфейс который смотрит в локалку.

При такой конфигурации переход на живого провайдера происходит примерно
за время timeout в ip sla, т.е. 2 секунды.

Источник _http://www.opennet.ru/base/cisco/ip_sla.txt.html
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.
Русская версия Invision Power Board © 2001-2010 Invision Power Services, Inc.