Привет всем читателям. Сегодня мы вместе с вами снова вернемся к протоколу TFTP и поговорим о том как превратить наш с вами маршрутизатор фирмы Cisco в TFTP сервер. Соглашусь с вами, что надобность в этом на практике возникает не очень часто, но все же лучше знать и уметь пользоваться данным функционалом, мало ли в жизни всякое бывает.
Конечно если есть необходимость в постоянном TFTP сервере, то лучше поднять его на отдельной машинке и тихо мирно работать с ним не трогая более важные устройства, такие как маршрутизаторы. Но иногда бывают моменты когда необходимо быстро перебросить всего несколько файлов с одного маршрутизатора на другой, вот в таких случаях и пригодится умение конфигурировать ваш маршрутизатор в качестве TFTP сервера. Ведь согласитесь, быстрее ввести пару команд на одном маршрутизаторе, сделать его TFTP сервером и скопировать с него файлы с помощью TFTP клиента другого маршрутизатора, чем разворачивать где то в сети TFTP сервер, сначала копировать файлы с первого маршрутизатора на TFTP сервер, а уже потом скачивать с TFTP сервера файлы на другой маршрутизатор. Какая то двойная работа получается.
Разбирать конфигурирование маршрутизаторов фирмы Cisco в качестве TFTP сервера, мы опять же будем на примере, но в этот раз для симуляции сети мы будем использовать GNS3. Соберем в нем следующую простенькую схему, содержащую 3 маршрутизатора, имеющих как минимум по 2 Ethernet интерфейса (в данном примере использован IOS от Cisco 2691 - c2691-advipservicesk9-mz.124-15.T6.bin):
Данная схема сети должна быть собрана в GNS3 |
Внесем в конфигурации маршрутизаторов следующие команды:
Маршрутизатор R1:
R1(config)#interface fastEthernet 0/0
R1(config-if)# ip address 192.168.1.2 255.255.255.252
R1(config-if)#no shutdown
Маршрутизатор R2:
R2(config)#interface fastEthernet 0/0
R2(config-if)#ip address 192.168.1.1 255.255.255.252
R2(config-if)# no shutdown
R2(config)#interface fastEthernet 0/1
R2(config-if)#ip address 192.168.2.1 255.255.255.252
R2(config-if)#no shutdown
Маршрутизатор R3:
R3(config)#interface fastEthernet 0/0
R3(config-if)#ip address 192.168.2.2 255.255.255.252
R3(config-if)#no shutdown
Как вы уже наверное поняли с помощью данных команды, мы с вами назначили IP адреса интерфейсам маршрутизатора, и как следствие установили связь между ними (проверить это можно с помощью команды ping). Настраивать маршрутизацию нет необходимости так как в этот раз она нам не пригодится. Далее будем считать что наша заготовка для опытов готова и перейдем непосредственно к настройке TFTP сервера.
В простейшем случае, для того чтобы сконфигурировать ваш маршрутизатор в качестве TFTP сервера необходимо ввести на нем команду вида tftp-server <место от куда брать файл> <имя файла>.
Давайте попробуем настроить маршрутизатор R2 так, чтобы он раздавал файл своей конфигурации, сохраненный во флеш памяти, по TFTP. Для этого выполним на нем команды:
R2#copy running-config flash:
R2(config)#tftp-server flash:r2-confg
Здесь первой командой мы копируем текущую конфигурацию нашего устройства во флеш память. По умолчанию, если согласится со всеми ее параметрами нажав Enter, эта команда очищает флеш память и создает в ней файл с именем <hostname>-confg (в нашем случае r2-confg). Вторая же команда запускает на маршрутизаторе TFTP сервер, который будет раздавать файл r2-confg, хранящийся во флеш памяти маршрутизатора (полный перечень мест/устройств из которых маршрутизатор может делать файлы доступными по TFTP можно получить с помощью команды tftp-server ?, в зависимости от модели устройства придется использовать разные места). Данная команда не вносит ни каких ограничений, на то кто может скачивать данный файл, поэтому его может скачать любое устройство, с установленным TFTP клиентом, имеющее связь с маршрутизатором по протоколу IP. Проверим это попробовав скопировать данный файл используя машрутизаторы R1 и R3.
На маршрутизаторе R1:
Копируем файл с TFTP сервера во флеш память:
R1#copy tftp flash
Address or name of remote host []? 192.168.1.1
Source filename []? r2-confg
Destination filename [r2-confg]?
Accessing tftp://192.168.1.1/r2-confg...
Erase flash: before copying? [confirm]n
Loading r2-confg from 192.168.1.1 (via FastEthernet0/0): !
[OK - 937 bytes]
Verifying checksum... OK (0x237E)
937 bytes copied in 0.228 secs (4110 bytes/sec)
Просматриваем содержимое флеш памяти:
R1#show flash:
System CompactFlash directory:
File Length Name/status
1 937 r2-confg
[1004 bytes used, 16776208 available, 16777212 total]
16384K bytes of ATA System CompactFlash (Read/Write)
Просматриваем содержимое самого файла:
R1#more flash:r2-confg
На маршрутизаторе R3:
R3#copy tftp flash
Address or name of remote host []? 192.168.2.1
Source filename []? r2-confg
Destination filename [r2-confg]?
Accessing tftp://192.168.2.1/r2-confg...
Erase flash: before copying? [confirm]n
Loading r2-confg from 192.168.2.1 (via FastEthernet0/0): !
[OK - 937 bytes]
Verifying checksum... OK (0x237E)
937 bytes copied in 0.248 secs (3778 bytes/sec)
Как мы и говорили выше файлы раздаваемые TFTP сервером доступны, со всех устройств имеющих связь с ним. А как обстоят дела с записью? Попробуем записать какой либо файл на наш TFTP сервер:
R3#copy running-config flash
R3#copy flash tftp
Source filename [r2-confg]? r3-confg
Address or name of remote host []? 192.168.2.1
Destination filename [r3-confg]?
TFTP: error code 2 received - 16739
%Error opening tftp://192.168.2.1/r3-confg (Permission denied)
Как легко заметить из приведенного выше вывода - записать файл не получилось. Аналогичный результат будет, если мы попробуем произвести запись с маршрутизатора R1. Из этого можно сделать вывод, что запись на TFTP сервер, сконфигурированный на маршрутизаторе фирмы Cisco, запрещена, даже в тех случаях, когда любой клиент имеет доступ на чтение.
А можно ли это как то ограничить доступ на чтение? Да можно, но для этого придется сконфигурировать наш TFTP сервер немного другим образом. Для начала отключим действующий в настоящий момент на маршрутизаторе TFTP сервер, сделаем это с помощью команды (стоит отметить, что данная команда не останавливает TFTP сервер полностью, а лишь отменяет раздачу файла r2-confg):
R2(config)#no tftp-server flash:r2-confg
А уже далее сделаем опять тот же самый файл доступным на TFTP сервере, но уже только одному определенному хосту в сети:
R2(config)#access-list 1 permit 192.168.1.2
R2(config)#access-list 1 deny any
R2(config)#tftp-server flash:r2-confg 1
С помощью первых двух команд мы создаем ACL (Список контроля доступа)с номером 1. В первой строке мы разрешаем доступ хосту с IP адресом 192.168.1.2 (маршрутизатор R1). А второй командой мы запрещаем доступ всем другим хостам. В третье строке мы прикрепляем ACL к нашему TFTP серверу (та самая единичка добавленная в конце команды). Если вам не совсем понятен принцип работы ACL, то не стоит огорчаться, мы рассмотрим эту тему подробнее в наших следующих статьях.
Теперь давайте попробуем еще раз выполнить копирование файла r2-confg с маршрутизатора R2 на маршрутизаторы R1 и R3:
Маршрутизатор R1:
R1#copy tftp flash
Address or name of remote host [192.168.1.1]?
Source filename [r2-confg]?
Destination filename [r2-confg]?
Accessing tftp://192.168.1.1/r2-confg...
Erase flash: before copying? [confirm]n
Loading r2-confg from 192.168.1.1 (via FastEthernet0/0): !
[OK - 937 bytes]
Verifying checksum... OK (0x237E)
937 bytes copied in 0.224 secs (4183 bytes/sec)
Маршрутизатор R3:
R3#copy tftp flash:
Address or name of remote host []? 192.168.2.1
Source filename []? r2-confg
Destination filename [r2-confg]?
Accessing tftp://192.168.2.1/r2-confg...
%Error opening tftp://192.168.2.1/r2-confg (No such file or directory)
Как видно из вывода команд, маршрутизатор R1 успешно скопировал файл с TFTP сервера, а маршрутизатор R3 не смог получить доступ к данному файлу. Это говорит о том , что мы все сделали верно, и наш ACL прикрученный к TFTP серверу работает.
На сегодня это все. До новых встреч.
P.S. В этой статье и далее будем считать, что команды раскрашенные синим цветом предназначены для ввода команд или их параметров в устройство, а зеленые команды - это реакция маршрутизатора, выводимая на экран.
1 коммент.:
Добрый день!
А как узнать на работающей системе, к какому каталогу или файлу привязан tftp-сервер(cisco-2951).
Отправить комментарий