В этом разделе будут приведены примеры некоторых особенностей командной строки, Command Line Interface (CLI). Для получения полной информации о CLI, смотрите документацию по JUNOS на сайте Juniper Networks, http://www.juniper.net/techpubs.
Операционная система JUNOS основана на FreeBSD. Если вы уже хорошо знакомы с FreeBSD или эквивалентом Unix, это поможет вам в понимании команд JUNOS.
CLI имеет два режима: оперативный режим и конфигурационный режим. Оба режима имеют различный набор команд. В оперативном режиме вы можете мониторить все, что касается железа и программного обеспечения маршрутизатора, а также контролировать сетевые операции. Команды в конфигурационном режиме позволяют определять поведение маршрутизатора, например посмотреть какие сетевые адреса используются и какие протоколы запущены. Важно понимать разницу между этими двумя режимами - какой тип действий можно применить в каждом режиме, и как следить в каком режиме вы работаете.
На маршрутизаторе вы можете определить в каком режиме находитесь по виду приглашения на ввод команды CLI. Базовый формат командной строки имеет вид - username@router-name
. Когда вы находитесь в оперативном режиме, приглашение оканчивается символом >
, а когда вы находитесь в конфигурационном режиме, приглашение оканчивается символом #
. Таким образом, по символу, который предшествует каждой команде, можно определить в каком режиме вы находитесь - в оперативном или конфигурационном.
Когда вы в первый раз авторизуетесь на маршрутизаторе, вы попадаете в оперативный режим. Команды, доступные в оперативном режиме позволяют вам мониторить операции, выполняемые на маршрутизаторе и в сети. К примеру, вы можете получить информацию о железе и программном обеспечении на маршрутизаторе, сетевом трафике, который приходит на маршрутизатор, сконфигурированных протоколах маршрутизации. Далее будет подробно описано как используя команды в оперативном режиме можно проверять что происходит на маршрутизаторе.
Вы можете посмотреть какие команды можно ввести, используя знак вопроса ?
для вызова интерактивной справки. Если вы введете ?
на верхнем уровне иерархии в оперативном режиме, вы увидите набор команд, который вы можете использовать для мониторинга маршрутизатора и выполнения операций, не связанных с его конфигурированием:
aviva@router1> ? | |
Possible completions: | |
clear | Clear information in the system |
configure | Manipulate software configuration information |
file | Perform file operations |
help | Provide help information |
monitor | Show real-time debugging information |
mtrace | Trace multicast path from source to receiver |
ping | Ping remote target |
quit | Exit the management session |
request | Make system-level requests |
restart | Restart software process |
set | Set CLI properties, date/time, craft interface message |
show | Show system information |
ssh | Start secure shell on another host |
start | Start shell |
telnet | Telnet to another host |
test | Perform diagnostic debugging |
traceroute | Trace route to remote host |
К примеру, вы можете использовать различные комбинации команды show
для отображения информации о маршрутизаторе, интерфейсах, протоколах, или вы можете использовать различные команды request
для выполнения операций на маршрутизаторе, таких как перезагрузка, скачивание и инсталляция обновлений программного обеспечения.
Две команды из представленного списка в оперативном режиме не предназначены для мониторинга маршрутизатора или сети: quit
- используется для выхода из CLI и configure
- используется для входа в конфигурационный режим, в котором вы можете конфигурировать маршрутизатор.
Когда вы входите в конфигурационный режим, строка приглашения изменяется от username@router-name>
на username@router-name#
, и строка выше приглашения [edit]
, показывает, что вы находитесь в конфигурационном режиме. Также, [edit]
показывает, что вы находитесь на вершине конфигурационной иерархии, подобно вершине иерархии файловой системы Unix (/). Синонимом команды configure
является команда edit
(скрытая команда, она не представлена в списке доступных команд).
Если ввести ?
на верхнем уровне конфигурационного режима, вы увидите список доступных команд, использующихся для конфигурирования маршрутизатора:
[edit] | |
aviva@router1# ? | |
Possible completions: | |
<[Enter]> | Execute this command |
activate | Remove the inactive tag from a statement |
annotate | Annotate the statement with a comment |
commit | Commit current set of changes |
copy | Copy a statement |
deactivate | Add the inactive tag to a statement |
delete | Delete a data element |
edit | Edit a sub-element |
exit | Exit from this level |
help | Provide help information |
insert | Insert a new ordered data element |
load | Load configuration from ASCII file |
quit | Quit from this level |
rename | Rename a statement |
rollback | Roll back to previous committed configuration |
run | Run an operational-mode command |
save | Save configuration to ASCII file |
set | Set a parameter |
show | Show a parameter |
status | Show users currently editing configuration |
top | Exit to top level of configuration |
up | Exit one level of configuration |
wildcard | Wildcard operations |
Когда создается или изменяется конфигурация, вы сначала используете команды edit
и set
. Используйте команду edit
для перемещения к тому участку конфигурации, который вы хотите изменить (это аналогично использованию Unix команды cd
для перемещения к различным директориям) и используйте команду set
для конфигурирования специфичных параметров. Команда up
перемещает вверх на один уровень иерархии, а команда top
возвращает на вершину иерархии - [edit]
(аналогична Unix команде cd /
). На вершине иерархии используйте команды exit
или quit
для возврата к оперативному режиму.
Команда show
показывает состояние конфигурации на текущем уровне иерархии. Если вы начнете с уровня [edit]
, вы увидите всю конфигурацию:
[edit]
aviva@router1# show
version "7.4R1.7";
groups {
re0 {
system {
host-name router1;
}
interfaces {
fxp0 {
unit 0 {
family inet {
…
Если вы находитесь на нижних уровнях иерархии, вы только видите часть конфигурации. В следующем примере показана OSPF часть конфигурации:
[edit protocols ospf]
aviva@router1# show
export export-statics;
area 0.0.0.0 {
interface fe-0/0/1.0;
interface fe-1/0/1.0;
}
Что означают здесь фигурные скобки? JUNOS использует фигурные скобки для представления структуры файла конфигурации, очерчивая связные секции параметров конфигурации. Если вы программист языка C, вам будет это знакомо.
Противоположностью команды set
выступает команда delete
, которая удаляет значения из конфигурации. Вы можете удалить индивидуальное значение из конфигурации (например, delete interface fe-1/0/1.0
из конфигурации OSPF), или удалить всю секцию области 0.0.0.0
из OSPF конфигурации:
[edit protocols ospf]
aviva@router1# delete area 0.0.0.0
Команда run
экономит время и позволяет выполнять команды оперативного режима. Например, команда run show route
в конфигурационном режиме аналогична команде show route
в оперативном режиме:
Что означают переходы к частям конфигурации? Конфигурация JUNOS представляет собой иерархию контейнеров параметров конфигурации, разграниченную фигурными скобками {}
, определяющими границы, в которых эти параметры применены. Эта иерархия позволяет организовать группирование большого количества связных параметров и функций вместе. Когда вы в первый раз заходите в конфигурационный режим, вы попаадете на вершину иерархии. Вы видите ваше расположение в иерархии в строке, которая предшествует приглашению на ввод команды. Строка [edit]
показывает вам, что вы на вершине иерархии. Команда edit
позволяет перемещаться по иерархии конфигурации, при этом все команды конфигурации применяются в пределах текущего контейнера. По мере движения по иерархии текст в квадратных скобках изменяется, сообщая о местонахождении в иерархии.
Параметры конфигурации, которые используются для определения поведения маршрутизатора также устроены в виде иерархии. Если ввести edit ?
на вершине иерархии конфигурационного режима, можно увидеть обширные функциональные области JUNOS, которыми можно управлять через конфигурацию:
[edit] | |
aviva@router1# edit ? | |
Possible completions: | |
> access | Network access configuration |
> accounting-options | Accounting data configuration |
> applications | Define applications by protocol characteristics |
> chassis | Chassis configuration |
> class-of-service | Class-of-service configuration |
> firewall | Define a firewall configuration |
> forwarding-options | Configure options to control packet sampling |
> groups | Configuration groups |
> interfaces | Interface configuration |
> logical-routers | Logical routers |
> policy-options | Routing policy option configuration |
> protocols | Routing protocol configuration |
> routing-instances | Routing instance configuration |
> routing-options | Protocol-independent routing option configuration |
> security | Security configuration |
> services | Service PIC applications settings |
> snmp | Simple Network Management Protocol configuration |
> system | System parameters |
Каждый представленный раздел на вершине представляет собой отдельную иерархию конфигурации. Например, раздел protocols
на вершине конфигурации, в которой конфигурируются все протоколы маршрутизации:
[edit] | |
aviva@router1# edit protocols ? | |
Possible completions: | |
<[Enter]> | Execute this command |
> bfd | Bidirectional Forwarding Detection (BFD) options |
> bgp | BGP options |
> connections | Circuit cross-connect configuration |
> dvmrp | DVMRP options |
> igmp | IGMP options |
> isis | IS-IS options |
> l2circuit | Configuration for Layer 2 circuits over MPLS |
> ldp | LDP options |
> link-management | LMP options |
> mld | MLD options |
> mpls | Label Switching options |
> msdp | MSDP configuration |
> ospf | OSPF configuration |
> ospf3 | OSPFv3 configuration |
> pgm | PGM options |
> pim | PIM configuration |
> rip | RIP options |
> ripng | RIPng options |
> router-advertisement | IPv6 router advertisement options |
> router-discovery | ICMP router discovery options |
> rsvp | RSVP options |
> sap | Session Advertisement Protocol options |
> vrrp | VRRP options |
| | Pipe through a command |
При движении вниз по иерархии в этом примере, приглашение на ввод команды изменится на [edit protocols]
, показывая вам где вы находитесь:
[edit]
aviva@router1# edit protocols
[edit protocols]
aviva@router1#