이 페이지의 내용
디바이스 구성 수정
CLI를 사용하면 기존 Junos OS Evolved 구성을 수정할 수 있습니다. 이 섹션에서는 문을 추가하고, 문을 삭제하고, 문을 복사하고, 예를 포함하여 새 식별자를 삽입하는 것과 관련된 세부 사항을 설명합니다.
현재 구성을 편집하는 사용자 표시
현재 구성을 편집하는 사용자를 표시하려면 구성 모드 명령을 사용합니다.status
user@host# status
Users currently editing the configuration:
rchen terminal p0 (pid 55691) on since 2018-03-01 13:17:25 PST
[edit interfaces]
시스템은 구성을 편집하는 사람(), 사용자의 로그인 위치(rchen
terminal p0
), 로그인한 사용자의 날짜 및 시간(2018-03-01 13:17:25
PST
) 및 사용자가 편집하는 계층의 수준([edit interfaces]
)을 표시합니다.
구성 모드 명령을 실행 status
한 뒤 사용자가 향후 활성화를 위해 후보 구성을 예약한 경우, 시스템은 커밋을 예약한 사람(root
), 사용자가 로그인한 위치(terminal d0
), 사용자가 로그인한 날짜 및 시간(2018-10-31 14:55:15 PST
) 및 커밋이 보류 중임을 표시합니다 (commit at).
[edit]
user@host# status
Users currently editing the configuration:
root terminal d0 (pid 767) on since 2018-10-31 14:55:15 PST, idle 00:03:09
commit at
구성 모드 명령을 실행 status
한 뒤 사용자가 구성 제외 모드에서 구성을 편집하는 경우, 시스템은 구성을 편집하는 사람(), 사용자가 로그인한 위치(root
terminal d0
), 사용자가 로그인한 날짜 및 시간(), 구성 제외 모드에서 구성을 편집하고 있는 사용자(2018-11-01 13:05:11 PST
exclusive [edit]
)를 표시합니다.
[edit]
user@host# status
Users currently editing the configuration:
root terminal d0 (pid 2088) on since 2018-11-01 13:05:11 PST
exclusive [edit]
또한보십시오
주니퍼 네트웍스 디바이스 구성 수정 방법
주니퍼 네트웍스 디바이스를 구성하거나 기존 구성을 수정하려면 및 set
명령을 사용하여 edit
구성에 문을 추가합니다. 각 문 계층에 대해 최상위 수준에서 문으로 시작하는 계층을 생성합니다. 그런 다음 계층에서 점점 아래로 내려가는 문으로 계층을 계속 생성합니다.
계층을 수정하려면 두 개의 구성 모드 명령을 사용합니다. 수행하려는 작업에 따라 관련 명령을 선택합니다.
edit
- 지정된 계층 수준으로 이동합니다. 해당 계층 수준이 존재하지edit
않으면 명령이 계층 수준을 생성합니다. 명령의 구문은edit
다음과 같습니다.edit <statement-path>
set
- 구성 문을 생성하고 식별자 값을 설정합니다. 명령을 실행set
한 후에는 계층에서 동일한 수준으로 유지됩니다. 명령의 구문은set
다음과 같습니다.set <statement-path> statement <identifier>
구성 문에 대한 계층 및 문 자체는 입니다
statement-path
. 이미 문의 계층 수준으로 이동한 경우 문 경로를 생략할 수 있습니다. 구성 문 자체는statement
입니다. 문자열은identifier
문의 인스턴스를 식별합니다.
문은 컨테이너 문 또는 리프 문일 수 있습니다. 컨테이너 문은 리프 문뿐만 아니라 내부에 추가 컨테이너 문을 포함할 수 있습니다. 그러나 리프 스테이트먼트는 홀로 서 있습니다. 이 명령은 edit?
컨테이너 문을 표시하는 반면 set?
, 컨테이너와 리프 문을 구분하는 을(를) 사용하여 >
둘 다 표시합니다.
명령을 사용하여 edit
식별자 값을 변경할 수 없습니다. 명령을 사용해야 set
합니다.
또한보십시오
구성 문 및 식별자를 추가하는 방법
구성에 문을 포함하여 주니퍼 네트웍스 디바이스의 모든 속성을 구성합니다. 문은 고정 텍스트인 키워드로 구성됩니다. 문에 식별자를 포함할 수도 있습니다. 식별자는 인터페이스 이름이나 사용자 이름과 같이 사용자가 정의하는 식별 이름으로, 이를 통해 사용자와 CLI가 문 모음 중에서 구별할 수 있습니다.
예를 들어, 다음 목록은 구성 모드의 최상위 수준에서 사용할 수 있는 문을 보여줍니다.
user@host# set ?
Possible completions:
> accounting-options Accounting data configuration
+ apply-groups Groups from which to inherit configuration data
> 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
> policy-options Routing policy option configuration
> protocols Routing protocol configuration
> routing-instances Routing instance configuration
> routing-options Protocol-independent routing option configuration
> snmp Simple Network Management Protocol
> system System parameters
문 이름 앞의 꺾쇠 괄호( >
)는 해당 문이 컨테이너 문이며 그 아래 수준에서 다른 문을 정의할 수 있음을 나타냅니다. 문 이름 앞에 꺾쇠 괄호( >
)가 없으면 문은 리프 문이며, 그 아래의 계층 수준에서 다른 문을 정의할 수 없습니다.
문 이름 앞의 더하기 기호(+)는 값 세트를 포함할 수 있음을 나타냅니다. 세트를 지정하려면 괄호 안에 값을 포함하십시오. 예를 들어:
[edit]
user@host# set policy-options community my-as1-transit members [65535:10 65535:11]
일부 문에는 식별자를 포함할 수 있습니다. 인터페이스 이름과 같은 일부 식별자의 경우 식별자를 정확한 형식으로 지정해야 합니다. 예를 들어, 인터페이스 이름 so-0/0/0은 슬롯 0, 첫 번째 PIC 위치, PIC(Physical Interface Card)의 첫 번째 포트 FPC(Flexible PIC Concentrator)에 있는 SONET/SDH 인터페이스를 나타냅니다.
일부 문에는 식별자를 포함할 수 있습니다. 인터페이스 이름과 같은 일부 식별자의 경우 식별자를 정확한 형식으로 지정해야 합니다. 예를 들어, 인터페이스 이름 et-0/0/0은 슬롯 0, 첫 번째 PIC 위치, PIC(Physical Interface Card)의 첫 번째 포트 FPC(Flexible PIC Concentrator)에 있는 SONET/SDH 인터페이스를 나타냅니다.
인터페이스 설명 텍스트, 정책, 방화벽 용어 이름과 같은 기타 식별자의 경우, 특수 문자, 공백, 탭을 포함한 모든 이름을 지정할 수 있습니다.
식별자는 따옴표(큰따옴표)로 묶어야 합니다. 또한 따옴표를 사용하여 공백, 탭 문자 또는 다음 문자가 포함된 식별자와 모든 문자열을 묶어야 합니다.
( ) [ ] { } ! @ # $ % ^ & | ' = ?
옵션이 필요한 문에 옵션을 입력하지 않으면 필요한 정보 유형을 나타내는 메시지가 표시됩니다. 이 예에서 명령을 완료하려면 영역 번호를 입력해야 합니다.
[edit]
user@host# set protocols ospf area
^
syntax error, expecting <identifier>
또한보십시오
디바이스 구성에서 문을 삭제하는 방법
구성 모드 명령을 사용하여 디바이스 구성에서 문이나 식별자를 delete
삭제합니다. 문 또는 식별자를 삭제하면 해당 문 또는 식별자와 관련된 기능이 효과적으로 "구성 해제"되어 해당 기능이 기본 조건으로 돌아갑니다.
user@host# delete <statement-path> <identifier>
문을 삭제하면 문과 모든 종속 문 및 식별자가 구성에서 제거됩니다.
두 개 이상의 식별자를 가질 수 있는 문의 경우, 한 개의 식별자를 삭제하면 해당 식별자만 삭제됩니다. 문의 다른 식별자는 그대로 유지됩니다.
현재 계층 수준에서 시작하여 전체 계층을 삭제하려면 문이나 식별자를 delete
지정하지 않고 명령을 사용합니다. 문이나 식별자를 생략하면 삭제를 확인하는 메시지가 표시됩니다.
[edit]
user@host# delete
Delete everything under this level? [yes, no] (no)
Possible completions:
no Don't delete everything under this level
yes Delete everything under this level
Delete everything under this level? [yes, no] (no)
단일 delete
명령을 사용하여 계층 내에서 여러 문이나 식별자를 삭제할 수 없습니다. 여러 delete
명령을 사용하여 각 문이나 식별자를 개별적으로 삭제해야 합니다. 예를 들어 계층 수준에서 다음 구성을 고려합니다.[edit system]
system { host-name host-211; domain-name domain-122; backup-router 192.168.71.254; arp; authentication-order [ radius password tacplus ]; }
구성에서, host-name
및 을 backup-router
삭제domain-name
하려면 각 문을 개별적으로 삭제해야 합니다.
user@hostdelete system host-name host-211
user@hostdelete system domain-name domain-122
user@hostdelete system backup-router 192.168.71.254
단일 delete
명령을 실행할 수 없습니다. 예를 들어 다음 명령은 작동하지 않습니다.
user@host> delete system hostname host-211 domain-name domain-122 backup-router 192.168.71.254
단일 명령과 정규식을 사용하여 채널화된 인터페이스 또는 정적 경로와 같은 관련 구성 항목을 동시에 삭제할 수 있습니다. 문 또는 식별자를 삭제하면 해당 문 또는 식별자와 관련된 기능이 효과적으로 "구성 해제"되어 해당 기능이 기본 조건으로 돌아갑니다.
일반적으로 인터페이스와 같이 여러 항목을 배치하는 구성의 특정 부분만 삭제할 수 있습니다. 그러나 다음 예와 같이 서로 다른 항목의 '그룹'은 삭제할 수 없습니다.
user@host#show system services
ftp; rlogin; rsh; ssh { root-login allow; } telnet; [edit] user@host#wildcard delete system services *
syntax error.
문을 삭제하면 문과 모든 종속 문 및 식별자가 구성에서 제거됩니다.
관련 구성 항목을 삭제하려면 구성 모드 명령을 delete
옵션으로 실행하고 wildcard
문 경로, 정규식으로 요약할 항목 및 정규식을 다음과 같이 지정하십시오.
user@host# wildcard delete <statement-path> <identifier> <regular-expression>
명령을 사용하여 wildcard
관련 구성 항목을 삭제할 때 정규식은 최종 문이어야 합니다.
Junos OS Evolved가 8개 이상의 관련 항목과 일치하는 경우, CLI는 처음 8개 항목만 표시합니다.
구성에서 인터페이스를 삭제하는 방법
다음 구문을 사용하여 에서 t1-0/0/0:0
까지 t1-0/0/0:23
범위의 여러 T1 인터페이스를 삭제할 수 있습니다.
user@host# wildcard delete interfaces t1-0/0/0:.*
matched: t1-0/0/0:0
matched: t1-0/0/0:1
matched: t1-0/0/0:2
Delete 3 objects? [yes,no] (no) no
구성에서 경로를 삭제하는 방법
다음 구문을 사용하여 에서 까지의 172.0.0.0
172.255.0.0
범위에서 정적 경로를 삭제할 수 있습니다.
user@host# wildcard delete routing-options static route 172.*
matched: 172.16.0.0/12
matched: 172.16.14.0/24
matched: 172.16.100.0/24
matched: 172.16.128.0/19
matched: 172.16.160.0/24
matched: 172.17.12.0/23
matched: 172.17.24.0/23
matched: 172.17.28.0/23
...
Delete 13 objects? [yes,no] (no)
예: 디바이스 구성에서 문 삭제
다음 예는 명령문을 삭제 ospf
하여 라우터에서 OSPF를 효과적으로 구성 해제하는 방법을 보여줍니다.
[edit] user@host#set protocols ospf area 0.0.0.0 interface et-0/0/0 hello-interval 5
[edit] user@host#show
protocols { ospf { area 0.0.0.0 { interface et-0/0/0 { hello-interval 5; } } } } [edit] user@host#delete protocols ospf
[edit] user@host#show
[edit] user@host#
현재 수준 아래에서 모든 문을 삭제합니다.
[edit] user@host#edit protocols ospf area 0.0.0.0
[edit protocols ospf area 0.0.0.0] user@host#set interface et-0/0/0 hello-interval 5
[edit protocols ospf area 0.0.0.0] user@host#delete
Delete everything under this level? [yes, no]yes
[edit protocols ospf area 0.0.0.0] user@host#show
[edit] user@host#
특정 속성을 구성 해제합니다. 이 예에서 인터페이스 설명 설정을 제거합니다.
[edit] user@host#set interfaces et-3/0/0 description "Description of Test interface"
[edit] user@host#show
interfaces { et-3/0/0 { description "Description of Test interface"; } } [edit] user@host#delete interfaces et-3/0/0 description
[edit] user@host#show
interfaces { et-3/0/0; }
구성에 문 복사
디바이스 구성에 유사한 문이 여러 개 있는 경우 하나의 문을 추가한 다음 해당 문의 복사본을 만들 수 있습니다. 명령문을 복사하면 해당 명령문과 해당 명령문에 따라 구성된 전체 명령문 계층이 복제됩니다. 문 복사는 동일한 유형의 물리적 또는 논리적 인터페이스를 여러 개 구성할 때 유용합니다.
구성에서 기존 문의 복사본을 만들려면:
- 구성 모드
copy
명령을 사용합니다.user@host#
copy existing-statement to new-statement
- 구성의 일부를 복사한 직후 새 구성의 유효성을 확인합니다.
- 구성이 유효하지 않은 경우 복사된 부분이나 원본 부분을 수정하여 유효한 구성을 생성합니다.
예: 구성에서 문 복사
이 예는 기존 VC를 복사하여 인터페이스에 하나의 가상 연결(VC)을 생성하는 방법을 보여줍니다.
요구 사항
이 예제를 구성하기 전에 디바이스 초기화 이외의 특별한 구성은 필요하지 않습니다.
이 예를 시작하기 전에 다음 초기 구성을 구성합니다.
[edit interfaces]
user@host# show
at-1/0/0 {
description "PAIX to MAE West"
encapsulation atm-pvc;
unit 61 {
point-to-point;
vci 0.61;
family inet {
address 10.0.1.1/24;
}
}
}
이 예의 초기 구성을 빠르게 구성하려면, 아래 명령을 복사하여 텍스트 파일로 붙여 넣은 다음 모든 라인브레이크를 제거하고, 네트워크 구성과 일치시키는 데 필요한 세부 사항을 변경하고, 계층 수준에서 이 [edit]
명령을 CLI에 복사해 붙여 넣은 다음, 구성 모드에서 을(를) 입력합니다 commit
.
set interfaces at-1/0/0 description "PAIX to MAE West" set interfaces at-1/0/0 encapsulation atm-pvc set interfaces at-1/0/0 unit 61 point-to-point set interfaces at-1/0/0 unit 61 vci 0.61 set interfaces at-1/0/0 unit 61 family inet address 10.0.1.1/24
개요
문을 복사하는 방법을 보여주는 이 예에서는 이미 구성된 가상 연결과 매우 유사한 가상 연결을 추가합니다.
구성
CLI 빠른 구성
[edit interfaces at-1/0/0]
계층 수준에서 시작합니다.
copy unit 61 to unit 62
set unit 62 vci 0.62
edit unit 62
replace pattern 10.0.1.1 with 10.0.2.1
복사에 의한 구성
단계별 절차
구성을 복사하여 구성하려면:
[edit interfaces at-1/0/0]
계층 수준으로 이동하여 유닛 61을 복사합니다.[edit interfaces at-1/0/0] user@host#
copy unit 61 to unit 62
-
새 구성을 살펴보고 구성을 유효하게 만들기 위해 변경해야 할 사항을 확인합니다.
user@host#
show interfaces at-1/0/0
description "PAIX to MAE West" encapsulation atm-pvc; unit 61 { point-to-point; vci 0.61; family inet { address 10.0.1.1/24; } } unit 62 { point-to-point; vci 0.61; family inet { address 10.0.1.1/24; } } 구성을 변경하여 유효성을 확인합니다.
이 예에서는 VCI(Virtual Circuit Identifier) 및 VPI(Virtual Path Identifier)를 재구성하려고 합니다.
[edit interfaces at-1/0/0] user@host#
set unit 62 vci 0.62
또한 새 인터페이스의 IP 주소를 자체 IP 주소로 교체하려고 합니다.
[edit interfaces at-1/0/0] user@host#
edit unit 62
user@host#replace pattern 10.0.1.1 with 10.0.2.1
결과
[edit] show interfaces at-1/0/0 { description "PAIX to MAE West" encapsulation atm-pvc; unit 61 { point-to-point; vci 0.61; family inet { address 10.0.1.1/24; } } unit 62 { point-to-point; vci 0.62; family inet { address 10.0.2.1/24; } } }
예: 구성 교체
디바이스의 구성을 변경해야 하는 경우 명령을 사용하여 항상 원래 구성 설정을 제거하고 명령을 사용하여 delete
set
새 구성 설정을 추가할 수 있습니다. 그러나 보다 효율적이고 사용하기 쉬운 구성을 수정하는 다른 방법이 있습니다.
이 예에서는 다음 구성 모드 명령을 사용하여 기존 구성을 업데이트하는 방법을 보여 줍니다.
rename
- 인터페이스 이름과 같은 기존 구성 설정의 이름을 바꿉니다. 이 명령은 디바이스에 새 인터페이스를 추가할 때 유용할 수 있습니다.copy
- 구성 설정과 해당 설정에 따라 구성된 문의 전체 계층을 복사합니다. 구성문을 복사하는 것은 동일한 유형의 여러 물리적 또는 논리적 인터페이스를 구성할 때 유용합니다.replace
- 구성에서 텍스트 패턴을 전체적으로 변경합니다. 예를 들어, 디바이스의 모든 인터페이스에 대한 설명 문에 공통적인 단어의 철자가 지속적으로 틀리는 경우 단일 명령으로 이 실수를 수정할 수 있습니다.
요구 사항
이 예제를 구성하기 전에 디바이스 초기화 이외의 특별한 구성은 필요하지 않습니다.
개요
이 항목의 첫 번째 예제에서는 다음과 같이 구성을 변경합니다.
입력 오류가 포함된 설명을 사용하여 새 인터페이스를 만듭니다.
생성한 인터페이스에서 구성을 복사하여 새 인터페이스를 생성합니다.
생성한 인터페이스 중 하나의 이름을 바꿉니다.
생성한 인터페이스에 대한 설명의 입력 오류를 수정합니다.
두 번째, 더 짧은 예제에서는 약간 다른 상황에서 동일한 명령 중 일부를 시도합니다.
구성
복사, 이름 바꾸기 및 바꾸기 명령을 사용하여 루프백 인터페이스 구성 수정
단계별 절차
기존 구성이 이 예에서 사용된 루프백 인터페이스 유닛 번호를 사용하는 경우, 다른 미사용 루프백 인터페이스 유닛 번호로 대체해야 합니다. 그렇지 않으면 이러한 단계를 수행하면 디바이스의 기존 작동 상태가 손상될 수 있습니다.
, rename
및 replace
명령을 사용하여 copy
루프백 인터페이스의 구성을 만들고 수정하려면:
-
새 루프백 인터페이스 단위 번호를 생성하고 설명을 포함합니다.
설명에서 루프백 철자의 오류는 의도적인 것입니다.
[edit] user@host#
set interfaces lo0 unit 100 description "this is a lopbck interface"
-
방금 추가한 루프백 인터페이스의 구성을 표시합니다.
[edit] user@host#
show interfaces lo0 unit 100
description "this is a lopbck interface";
-
오류를 포함하여 방금 만든 루프백 인터페이스를 유닛 100에서 유닛 101로 복제합니다.
[edit] user@host#
copy interfaces lo0 unit 100 to unit 101
-
루프백 인터페이스 lo0 유닛 100 및 lo0 유닛 101에 대한 구성을 표시합니다.
[edit] user@host#
show interfaces lo0 unit 100
description "this is a lopbck interface";
[edit] user@host#show interfaces lo0 unit 101
description "this is a lopbck interface";
명령은
copy
와(과) 같은 모든 자식문을 포함하는 인터페이스를 복제합니다description
. -
루프백 인터페이스 lo0 유닛 100의 이름을 루프백 인터페이스 lo0 유닛 102로 변경합니다.
[edit] user@host#
rename interfaces lo0 unit 100 to unit 102
-
루프백 인터페이스 lo0 유닛 100에 대한 구성을 표시합니다.
[edit] user@host#
show interfaces lo0 unit 100
[edit] user@host#이 명령의 결과는 표시되지 않습니다. 루프백 인터페이스 lo0 디바이스 100이 이제 사라졌습니다. 이
rename
명령은 표시된 구성문을 새로운 구성으로 대체합니다. -
루프백 인터페이스 lo0 unit 101 및 lo0 unit 102에 대한 설명에서 단어 loopback 의 오타를 수정합니다.
[edit] user@host#
replace pattern lopbck with loopback
-
루프백 인터페이스 lo0 unit 101 및 lo0 102에 대한 구성을 표시하여 단어 loopback 의 철자가 올바른지 확인합니다.
[edit] user@host#
show interfaces lo0 unit 101
description "this is a loopback interface";
[edit] user@host#show interfaces lo0 unit 102
description "this is a loopback interface";
명령은
replace
어떤 방식으로든 제한되지 않는 한 명령에 지정된 패턴의 모든 인스턴스를 대체합니다. 이 항목의 다음 예에서는 명령의replace
효과를 제한하는 한 가지 방법을 보여 줍니다. -
구성 모드에서 명령을 사용하여
rollback
디바이스 구성을 이전 단계를 실행하기 전의 상태로 되돌립니다.[edit] user@host#
rollback
결과
구성 모드에서 및 show interfaces lo0 unit 102
명령을 사용하여 show interfaces lo0 unit 101
디바이스 구성이 이 예제의 단계를 실행하기 전의 상태인지 확인합니다.
[edit]
user@host: show interfaces lo0 unit 101
[edit]
user@host#
이 명령의 결과는 표시되지 않습니다.
[edit] user@host# show interfaces lo0 unit 102 [edit] user@host#
이 명령의 결과는 표시되지 않습니다.
최상위 구성 계층 수준에서 복사 명령 비교
단계별 절차
앞의 예제에서는 계층 수준에서 , rename
, 명령을 replace
[edit interfaces interface-name unit logical-interface-number]
보여 줍니다copy
. 이 예에서는 이러한 명령 중 일부가 CLI 구성 모드 계층의 최상위 수준에서 작동하는 방식을 보여 줍니다.
다음 예제에서는 구성 계층의 다양한 수준으로 이동해야 합니다. CLI 탐색에 대한 정보는 구성 모드에서 CLI 편집기 사용을 참조하십시오 .
-
이더넷 인터페이스를 생성합니다.
[edit] user@host#
set interfaces et-2/0/0 unit 0 family inet address 192.0.2.2
-
방금 생성한 인터페이스를 다른 인터페이스에 복사합니다.
[edit] user@host#
copy interfaces et-2/0/0 to et-2/1/0
이
copy
명령을 이전 예제의 명령과 비교합니다. 여기서copy
명령은 복사할 값 앞에 키워드unit
를 사용합니다.[edit] user@host#
copy interfaces lo0 unit 100 to unit 101
키워드
interfaces
는 전치to
사 뒤와 복사할 값 앞에 반복되지 않습니다. 이 문제는 명령을 사용하는copy
일부 최상위 문에서 발생합니다.팁:마찬가지로, 명령에서는
rename
일부 최상위 명령문에서 새 식별자 앞에 있는 명령문의 키워드 부분을 반복하지 않습니다. -
지금까지의 구성을 표시합니다.
[edit] user@host#
show interfaces
et-2/0/0 { unit 0 { family inet { address 192.0.2.2/32; } } } et-2/1/0 { unit 0 { family inet { address 192.0.2.2/32; } } } -
et-2/1/0의 주소를 다른 IP 주소로 바꿉니다.
[edit interfaces et-2/1/0 unit 0 family inet] user@host#
replace pattern 192.0.2.2 with 192.0.2.40
모든 발생 항목 대신 패턴의 특정 발생 항목만 변경하려면 명령을 사용하기
replace
전에 해당 특정 계층 수준으로 이동해야 합니다. -
인터페이스를 다시 표시합니다.
[edit] user@host#
show interfaces
et-2/0/0 { unit 0 { family inet { address 192.0.2.2/32; } } } et-2/1/0 { unit 0 { family inet { address 192.0.2.40/32; } } } -
구성 모드에서 명령을 사용하여
rollback
디바이스 구성을 이전 단계를 실행하기 전의 상태로 되돌립니다.[edit] user@host#
rollback
결과
구성 모드에서 및 show interfaces et-2/1/0
명령을 사용하여 show interfaces et-2/0/0
디바이스 구성이 이 예제의 단계를 실행하기 전의 상태인지 확인합니다.
[edit]
user@hostshow interfaces et-2/0/0
[edit]
user@host#
이 명령의 결과는 표시되지 않습니다.
[edit]
user@R1# show interfaces et-2/1/0
[edit]
user@host#
이 명령의 결과는 표시되지 않습니다.
디바이스 구성에 새 식별자 삽입
주니퍼 네트웍스 디바이스를 구성할 때 대부분의 문과 식별자를 원하는 순서대로 입력할 수 있습니다. 구성 문을 입력하는 순서에 관계없이 CLI는 항상 엄격한 순서로 구성을 표시합니다. 그러나 구성 문이 순서대로 분석되는 시퀀스를 생성하기 때문에 문의 순서가 중요한 경우가 있습니다.
예를 들어, 라우팅 정책이나 방화벽 필터에서 순차적으로 분석되는 용어를 정의합니다. 또한 동적 MPLS에서 명명된 경로를 생성할 때 첫 번째 전송 라우터에서 시작하여 마지막 전송 라우터로 끝나는 경로에 있는 전송 라우터의 정렬된 목록을 정의합니다.
문 순서가 중요한 구성 부분을 수정하려면 구성 모드 명령을 insert
사용합니다.
user@host#insert <statement-path> identifier1 (before | after) identifier2
명령을 사용하지 insert
않고 대신 식별자를 구성하는 경우, 식별자는 유사한 식별자 목록의 끝에 배치됩니다.
예: 디바이스 구성에 새 식별자 삽입
이 예에서는 명령을 사용하는 방법을 보여 줍니다 insert
.
명령을 사용하여 set
추가한 용어는 기존 용어 목록의 끝에 배치되는 반면, 명령을 사용하면 insert
지정한 순서대로 용어를 추가할 수 있습니다. 구성 문은 순서대로 분석되는 시퀀스를 생성하기 때문에 명령문의 순서를 지정하는 것은 순서가 중요한 경우에 중요합니다.
이 예에서 볼 수 있듯이 명령과 함께 insert
사용하려면 먼저 용어를 생성해야 합니다(또는 이미 존재해야 함). 용어를 배치하기 위한 기준점도 존재해야 합니다. 예를 들어 T1이라는 용어를 T2라는 용어 앞에 배치하려면 T1과 T2가 모두 이미 존재하고 채워져 있어야 합니다. Junos OS Evolved 는 빈 용어를 자동으로 제거합니다.
요구 사항
용어를 삽입하려면 먼저 초기 정책을 구성해야 합니다. 이 예의 초기 정책을 빠르게 구성하려면, 아래 명령을 복사하여 텍스트 파일로 붙여 넣은 다음 모든 라인브레이크를 제거하고, 네트워크 구성과 일치시키는 데 필요한 세부 사항을 변경하고, 계층 수준에서 명령을 CLI로 [edit policy-options]
복사해 붙여 넣은 다음, 구성 모드에서 을 입력합니다 commit
.
set policy-statement statics term term1 from route-filter 192.168.0.0/16 orlonger set policy-statement statics term term1 from route-filter 224.0.0.0/3 orlonger set policy-statement statics term term1 then reject set policy-statement statics term term2 from protocol direct set policy-statement statics term term2 then reject set policy-statement statics term term3 from protocol static set policy-statement statics term term3 then reject set policy-statement statics term term4 then accept
이제 계층이 올바르게 구성되었는지 확인합니다.
[edit policy-options]
user@host# show
policy-statement statics {
term term1 {
from {
route-filter 192.168.0.0/16 orlonger;
route-filter 224.0.0.0/3 orlonger;
}
then reject;
}
term term2 {
from protocol direct;
then reject;
}
term term3 {
from protocol static;
then reject;
}
term term4 {
then accept;
}
}
개요
문 순서가 중요한 구성 부분을 수정하려면 구성 모드 명령을 insert
사용해야 합니다. 명령을 대신 사용하는 set
경우 추가된 문 또는 식별자가 순서대로 잘못된 위치에 있습니다. 명령의 조건을 올바른 순서로 가져오는 유일한 방법은 구성을 해체하고 다시 시작하는 것입니다.
구성
CLI 빠른 구성
이 예를 빠르게 구성하려면 다음 명령을 복사하여 텍스트 파일에 붙여 넣은 다음 줄 바꿈을 제거하고, 네트워크 구성과 일치하는 데 필요한 세부 정보를 변경하고, 명령을 복사하여 [edit policy-options] 계층 수준에서 CLI에 붙여넣은 다음, 구성 모드로 들어갑니다 commit
.
[edit] user@host#rename policy-options policy-statement statics term term4 to term term6
[edit] user@host#set policy-options policy-statement statics term term4 from protocol local
[edit] user@host#set policy-options policy-statement statics term term4 then reject
[edit] user@host#set policy-options policy-statement statics term term5 from protocol aggregate
[edit] user@host#set policy-options policy-statement statics term term5 then reject
[edit] user@host#insert policy-options policy-statement statics term term4 after term term3
[edit] user@host#insert policy-options policy-statement statics term term5 after term term4
용어를 삽입하도록 구성
단계별 절차
-
구성 용어가 필요한 순서를 결정합니다. 원래 용어와 추가하려는 새 용어를 모두 고려합니다.
원래 구성에서 정책 이름은
statics
이며, 네 개의 용어가 있습니다. 처음 세 개의 용어는 각각 다른 일치 기준에 따라 일치하며 결과 일치는 거부됩니다. 마지막 용어는 나머지 모든 트래픽을 허용합니다.이 예에서는 추가 트래픽 유형을 제거하는 두 개의 용어를 추가해야 합니다. 이 두 용어는 모두 원래 구성의 마지막 용어 앞에 와야 합니다.
원래 용어4의 이름을 용어6으로 바꿉니다.
[edit] user@host#
rename policy-options policy-statement statics term term4 to term term6
이 단계에서는 현재 용어6으로 이름이 변경된 원래의 마지막 용어를 마지막 용어로 유지합니다.
새 용어4를 생성합니다.
[edit] user@host#
set policy-options policy-statement statics term term4 from protocol local
user@host#set policy-options policy-statement statics term term4 then reject
로컬 시스템 주소의 트래픽을 일치시키고 거부하는 새 용어가 추가되었습니다.
새 용어5를 생성합니다.
[edit] user@host#
set policy-options policy-statement statics term term5 from protocol aggregate
user@host#set policy-options policy-statement statics term term5 then reject
집계 경로의 트래픽을 일치시키고 이를 거부하는 새 용어가 추가되었습니다.
용어3 뒤에 용어4를 삽입합니다.
[edit] user@host#
insert policy-options policy-statement statics term term4 after term term3
용어4 뒤에 용어5를 삽입합니다.
[edit] user@host#
insert policy-options policy-statement statics term term5 after term term4
결과
[edit]
user@host# show policy-options policy-statement statics
term term1 {
from {
route-filter 192.168.0.0/16 orlonger;
route-filter 224.0.0.0/3 orlonger;
}
then reject;
}
term term2 {
from protocol direct;
then reject;
}
term term3 {
from protocol static;
then accept;
}
term term4 {
from protocol local;
then reject;
}
term term5 {
from protocol aggregate;
then reject;
}
term term6 {
then accept;
}
장치 구성에서 문과 식별자 비활성화 및 재활성화
Junos OS Evolved 구성에서는 명령문을 실행할 때 효력이 발생하지 않도록 문과 식별자를 비활성화할 commit
수 있습니다. 비활성화된 모든 문과 식별자는 태그로 inactive
표시됩니다. 이는 구성에 남아 있지만 명령을 실행할 commit
때 활성화되지 않습니다.
문이나 식별자를 비활성화하려면 구성 모드 명령을 deactivate
사용합니다.
user@host# deactivate( statement | identifier )
문이나 식별자를 다시 활성화하려면 구성 모드 명령을 activate
사용합니다.
user@host# activate ( statement | identifier )
두 명령에서 사용자가 지정한 및 statement
은 identifier
현재 계층 수준에 있어야 합니다. 문을 비활성화하면 해당 특정 문이 무시되고 명령을 실행할 commit
때 전혀 적용되지 않습니다.
문을 비활성화하려면 구성 모드 명령을 disable
사용합니다.
구성 계층의 일부에서 문을 포함하여 disable
기능을 비활성화할 수 있습니다. 한 가지 예는 계층 수준에서 문을 포함하여 disable
인터페이스를 비활성화하는 것입니다 [edit interface
interface-name]
. 기능을 비활성화하면 명령을 실행할 commit
때 다시 활성화되지만 작동이 중단되거나 관리상 비활성화된 것처럼 처리됩니다.
예: 디바이스 구성에서 문과 식별자 비활성화 및 재활성화
이 예는 및 activate
구성 모드 명령을 사용하는 deactivate
일반적인 사용 사례를 보여줍니다. 여기에는 GRES(Graceful Routing Engine Switchover)가 구성된 이중 라우팅 엔진(기본 및 백업)이 포함됩니다. 두 라우팅 엔진의 소프트웨어를 모두 업그레이드해야 합니다. 이 작업은 GRES를 비활성화하고 라우팅 엔진을 업데이트한 다음 GRES를 다시 활성화하여 쉽게 수행할 수 있습니다.
GRES 대신 NSR(Non-Stop Active Routing)이 구성된다는 점을 제외하고 동일한 설정을 사용하여 유사한 업그레이드를 수행할 수도 있습니다. NSR을 비활성화한 다음 NSR을 다시 활성화하기 전에 라우팅 엔진을 업그레이드해야 합니다.
요구 사항
이 예에서는 업그레이드 가능한 이중 라우팅 엔진이 있는 디바이스를 사용해야 합니다.
이 예를 시작하기 전에 GRES가 구성되어 있는지 확인하십시오.
개요
이 예에는 두 개의 라우팅 엔진이 있습니다. GRES가 구성되었으며 라우팅 엔진을 업그레이드해야 합니다. 업그레이드를 수행하려면 GRES 기능을 비활성화하고 각 라우팅 엔진을 업그레이드한 다음 GRES를 다시 활성화해야 합니다.
구성
GRES의 비활성화 및 재활성화 구성
단계별 절차
라우팅 엔진 업그레이드를 위한 GRES 비활성화 및 재활성화:
라우터에 대해 GRES가 활성화되어 있음을 보여줍니다.
[edit] user@host#
show chassis
redundancy { graceful-switchover; } fpc 2 { pic 0 { tunnel-services { bandwidth 1g; } } }GRES를 비활성화합니다.
[edit] user@host#
deactivate chassis redundancy graceful-switchover
user@host#commit
GRES가 비활성화되어 있음을 보여줍니다.
[edit] user@host#
show chassis
redundancy { inactive: graceful-switchover; } fpc 2 { pic 0 { tunnel-services { bandwidth 1g; } } }-
라우팅 엔진을 하나씩 업그레이드합니다.
GRES를 다시 활성화합니다.
[edit] user@host#
activate chassis redundancy graceful-switchover
user@host#commit
결과
GRES 기능이 다시 활성화되었는지 확인합니다.
[edit]
user@host# show chassis
redundancy {
graceful-switchover;
}
fpc 2 {
pic 0 {
tunnel-services {
bandwidth 1g;
}
}
}
디바이스 구성을 전체적으로 변경하는 방법
구성 모드 명령을 사용하여 디바이스 구성의 변수 및 식별자를 replace
전체적으로 변경할 수 있습니다. 이 명령은 구성의 패턴을 다른 패턴으로 대체합니다. 예를 들어, 이 명령을 사용하여 PIC가 라우터의 다른 슬롯으로 이동할 때 인터페이스 이름의 모든 발생 항목을 찾아 대체할 수 있습니다.
user@host# replace pattern pattern1 with pattern2 <upto n>
pattern
pattern1
옵션은 구성에서 대체할 식별자와 값을 정의하는 텍스트 문자열 또는 정규식입니다.
옵션은 pattern2
내에 있는 pattern1
식별자와 값을 대체하는 텍스트 문자열 또는 정규식입니다.
CLI는 표준 UNIX 스타일 정규식 구문(POSIX 1003.2에 정의됨)을 사용합니다. 정규식에 공백, 연산자 또는 와일드카드 문자가 포함된 경우 따옴표로 묶습니다. Greedy 한정자(가능한 많이 일치)가 지원됩니다. 지연 한정자(가능한 한 적게 일치)는 지원되지 않습니다.
옵션은 upto
n
대체되는 개체 수를 지정합니다. 값은 n
구성에서 대체되는 총 개체 수(패턴이 발생한 총 횟수가 아님)를 제어합니다. 동일한 계층 수준의 개체(형제)가 먼저 대체됩니다. 주어진 개체 내에서 패턴이 여러 번 발생하면 단일 교체로 간주됩니다. 예를 들어, 구성에 텍스트 문자열이 010101
포함된 경우 명령은 replace pattern 01 with pattern 02 upto 2
(대신020201
)으로 020202
대체 010101
됩니다. 을 로 020202
교체 010101
하는 것은 세 개의 개별 교체( =)가 아니라 단일 교체(n
n
= 1
3
)로 간주됩니다.
옵션을 지정하지 upto
않으면 구성에서 일치하는 pattern1
모든 식별자와 값이 대체됩니다.
명령은 replace
모든 계층 수준의 구성 모드에서 사용할 수 있습니다. 모든 일치 항목은 대소문자를 구분합니다.
명령과 함께 사용할 수 있는 replace
일반적인 정규 표현식
연산자 |
기능 |
---|---|
|
파이프 양쪽에 있는 두 용어 중 하나가 일치할 수 있음을 나타냅니다. |
|
표현식의 시작 부분에 사용되며, 일치가 시작되는 위치를 나타냅니다. |
|
표현식의 끝 부분에 사용되며, 용어가 문자 지점 |
|
일치하는 문자 또는 자릿수 범위를 지정합니다. 범위의 시작과 끝을 구분하려면 하이픈( - )을 사용합니다. |
|
일치시킬 용어 그룹을 지정합니다. 번호가 매겨진 변수로 저장됩니다. 역 참조에 로 |
|
0개 이상의 용어를 나타냅니다. |
|
하나 이상의 용어를 나타냅니다. |
|
공백(" ")을 제외한 모든 문자를 표시합니다. |
|
백슬래시는 특수 문자를 이스케이프하여 특수 문자의 특별한 의미를 억제합니다. 예를 들어\. 일치합니다 |
|
번째 그룹과 일치하는 역참조입니다 n. |
|
전체 일치 항목과 일치하는 역참조입니다. |
다음 표에는 몇 가지 대체 예가 나와 있습니다.
명령 |
결과 |
---|---|
|
성냥: 결과: |
|
성냥: 결과: |
|
성냥: 결과: |
|
성냥: 결과: |
예: 디바이스 구성에서 전역 바꾸기를 사용하는 방법 - \n 역참조
이 예는 역참조를 사용하여 패턴을 대체하는 방법을 보여줍니다.
요구 사항
이 예를 구성하기 전에 디바이스 초기화 이외의 특별한 구성은 필요하지 않습니다.
시작하기 전에 다음을 구성하십시오.
[edit]
user@host# show interfaces
xe-0/0/0 {
unit 0;
}
et-3/0/1 {
vlan-tagging;
unit 0 {
description "inet6 configuration. IP: 2000::c0a8::1bf5";
vlan-id 100;
family inet {
address 17.10.1.1/24;
}
family inet6 {
address 2000::c0a8:1bf5/3;
}
}
}
이 초기 구성을 빠르게 구성하려면 다음 명령을 복사하여 텍스트 파일에 붙여 넣고, 줄 바꿈을 제거하고, 네트워크 구성과 일치시키는 데 필요한 세부 사항을 변경한 다음, 명령을 복사하여 계층 수준에서 CLI에 [edit]
붙여넣습니다.
set interfaces xe-0/0/0 unit 0
set interfaces et-3/0/1 vlan-tagging
set interfaces et-3/0/1 unit 0 description "inet6 configuration IP: 2000::c0a8::1bf5"
set interfaces et-3/0/1 unit 0 vlan-id 100
set interfaces et-3/0/1 unit 0 family inet address 17.10.1.1/24
set interfaces et-3/0/1 unit 0 family inet6 address 2000::c0a8:1bf5/3
개요
정규 표현식의 가장 유용한 기능 중 하나는 역참조입니다. 역참조는 문자열 내에서 반복되는 문자나 부분 문자열을 식별할 수 있는 편리한 방법을 제공합니다. 패턴을 찾으면 다시 쓰지 않고 반복할 수 있습니다. 이전에 \#
캡처한 패턴만 참조합니다(여기서 #
는 패턴을 일치시키려는 횟수를 나타내는 숫자임).
역참조를 사용하여 데이터를 불러오거나 찾아서 다른 것으로 바꿀 수 있습니다. 이러한 방식으로 단일 교체 명령으로 대용량 데이터 세트를 다시 포맷할 수 있으므로 패턴을 수동으로 찾고 교체하는 데 걸리는 시간을 절약할 수 있습니다.
구성
명령에서 역참조를 사용하여 교체 구성
단계별 절차
역참조를 사용하여 Junos OS Evolved 구성에서 패턴을 교체하는 방법:
replace
명령을 사용합니다.[edit] user@host#
replace pattern pattern1 with pattern2
이 경우 로 바꾸
:1bf5
1bf5
려고 합니다.[edit] user@host#
replace pattern "(.*):1bf5" with "\11bf5"
패턴을 검색하고 한 번만 교체해야 함을 나타내는 역참조(\1)에 주의하십시오.
결과
다음은 결과 구성입니다.
[edit]
user@host# show interfaces
xe-0/0/0 {
unit 0;
}
et-3/0/1 {
vlan-tagging;
unit 0 {
description "inet6 configuration. IP: 2000::c0a8:1bf5";
vlan-id 100;
family inet {
address 17.10.1.1/24;
}
family inet6 {
address 2000::c0a8:1bf5/3;
}
}
}
이 예에서 패턴 2000::c0a8::1bf5
은 한 번으로 2000::c0a8:1bf5
대체됩니다.
예: 디바이스 구성의 전역 교체 - 인터페이스 이름 교체
이 예는 명령을 사용하여 구성에서 전역으로 인터페이스 이름을 교체하는 replace
방법을 보여줍니다.
replace
명령을 사용하면 구성을 더 빠르고 효과적으로 변경할 수 있습니다. 예를 들어, PIC가 라우터의 다른 슬롯으로 이동하여 인터페이스 이름이 변경될 수 있습니다. 하나의 명령으로 전체 구성을 업데이트할 수 있습니다. 또는 다른 유사한 구성(예: 유사 인터페이스)으로 구성을 빠르게 확장할 수 있습니다.
및 replace
명령을 조합 copy
하여 구성에 추가한 다음 새로 복사된 구성의 특정 측면을 교체할 수 있습니다. 명령은 replace
정규식에서 작동합니다. 정규식은 빠르고 유연하며 보편적입니다. 검색해야 하는 거의 모든 패턴을 만들 수 있으며 대부분의 프로그래밍 언어는 정규식을 지원합니다.
요구 사항
이 예제를 구성하기 전에 디바이스 초기화 이외의 특별한 구성은 필요하지 않습니다.
시작하기 전에 라우터에서 다음 계층을 구성합니다. 이 계층을 빠르게 구성하려면 CLI 빠른 구성을 참조하십시오 .
user@host#show interfaces
et-0/0/0 { dce; } user@host#show protocols
ospf { area 0.0.0.0 { interface et-0/0/0.0 { hello-interval 5; } } }
개요
이 예는 명령을 사용하여 구성에서 전역으로 인터페이스 이름을 교체하는 replace
방법을 보여줍니다. 간단한 예입니다.
이전 구성은 이 구성 업데이트의 시작점입니다. 이 예를 진행하면서 하나의 명령으로 구성 전체의 초기 인터페이스 이름을 변경합니다.
구성
CLI 빠른 구성
이 예의 초기 구성을 빠르게 구성하려면, 아래 명령을 복사하여 텍스트 파일로 붙여 넣은 다음 모든 라인브레이크를 제거하고, 네트워크 구성과 일치시키는 데 필요한 세부 사항을 변경하고, 계층 수준에서 이 [edit]
명령을 CLI에 복사하여 붙여 넣은 다음, 구성 모드에서 을 입력합니다 commit
.
set interfaces xe-0/0/0 description "Description for Test interface" set protocols ospf area 0.0.0.0 interface xe-0/0/0.0 hello-interval 5
인터페이스 이름 변경 구성
단계별 절차
인터페이스 이름 변경 방법:
구성 모드 계층의 맨 위에 있는지 확인합니다.
user@host#
top
-
키워드를
replace
사용하는 명령을 사용하여 로xe-1/1/0
대체xe-0/0/0
합니다pattern
.user@host#
replace pattern xe-0/0/0 with xe-1/1/0
결과
필요한 변경을 수행한 후 및 show protocols
구성 모드 명령을 사용하여 show interfaces
구성을 확인합니다.
[edit] user@host#show interfaces
xe-1/1/0 { description "Description for Test interface"; } user@host#show protocols
ospf { area 0.0.0.0 { interface xe-1/1/0.0 { hello-interval 5; } } }
구성이 올바른지 확인한 후 명령을 입력합니다 commit
.
디바이스 구성에 코멘트 추가
디바이스 구성에 코멘트를 포함하여 구성의 모든 문을 설명할 수 있습니다. CLI에서 대화형으로 그리고 ASCII 구성 파일을 편집하여 코멘트를 추가할 수 있습니다.
인터페이스를 구성할 때, 계층 수준에서 문을 [edit interfaces
interface-name
]
포함하여 description
인터페이스에 대한 코멘트를 추가할 수 있습니다. 포함한 모든 코멘트는 명령의 출력에 show interfaces
나타납니다.
CLI에서 코멘트 추가
구성 모드에서 코멘트를 추가할 때, 현재 수준의 문과 연결됩니다. 각 문에는 하나의 한 줄 주석이 연결될 수 있습니다. 주석을 문과 연결하려면 먼저 문이 존재해야 합니다. 코멘트는 문 앞의 줄에 배치됩니다.
구성에 코멘트를 추가하려면, 구성 모드 명령을 annotate
사용합니다:
user@host# annotate statement "comment-string
"
statement
은(는) 주석을 첨부할 구성 문입니다. 현재 계층 수준에 있어야 합니다. 지정된 statement
에 대한 코멘트가 이미 존재하면, 그 코멘트는 삭제되고 새로운 코멘트로 대체됩니다.
comment-string
은(는) 주석의 텍스트입니다. 주석 텍스트의 길이는 제한이 없으며 한 줄에 입력해야 합니다. 주석에 공백이 있으면 따옴표로 묶어야 합니다. 주석 문자열에 주석 구분 기호 또는 #
를 포함할 수 있습니다/* */
. 아무 것도 지정하지 않으면 주석 문자열이 주석 구분 기호로 /* */
묶입니다.
기존 주석을 삭제하려면 빈 주석 문자열을 지정합니다.
user@host# annotate statement ""
명령과 함께 annotate
코멘트를 추가하는 경우, show configuration 모드 명령 또는 show configuration
운영 모드 명령을 입력하여 구성 내의 코멘트를 볼 수 있습니다.
Junos OS Evolved 는 원라이너를 포함하여 구성 계층의 마지막 수준까지 주석을 지원합니다. 그러나 원라이너 부분(원라이너 내의 하위 문 또는 식별자)의 주석은 지원되지 않습니다. 예를 들어, 다음 샘플 구성 계층에서 주석은 상위 계층까지 level 1
지원되지만 하위 문에 metric
대해서는 지원되지 않습니다.
[edit protocols] isis { interface et-0/0/0.0 { level 1 metric 10; } } }
파일에 주석 추가
ASCII 구성 파일을 편집하고 주석을 추가할 때, 주석은 하나 이상의 행이 될 수 있으며 연관된 명령문 앞에 와야 합니다. 명령문 다음의 같은 줄 또는 명령문 다음의 별개의 행과 같이 파일의 다른 위치에 코멘트를 배치하는 경우, CLI에 구성을 열기 위해 명령을 사용하는 load
경우 제거됩니다.
구성 예에서 발췌한 다음 내용은 구성 파일에 주석을 배치하는 방법과 배치하지 않는 방법을 보여줍니다.
/* This comment goes with routing-options */ routing-options { /* This comment goes with routing-options traceoptions */ traceoptions { /* This comment goes with routing-options traceoptions tracefile */ tracefile rpd size 1m files 10; /* This comment goes with routing-options traceoptions traceflag task */ traceflag task; /* This comment goes with routing-options traceoptions traceflag general */ traceflag general; } autonomous-system 10458; /* This comment is dropped */ } routing-options { rib-groups { ifrg { import-rib [ inet.0 inet.2 ]; /* A comment here is dropped */ } dvmrp-rib { import-rib inet.2; export-rib inet.2; /* A comment here is dropped */ } /* A comment here is dropped */ } /* A comment here is dropped */ }
구성 파일에 직접 주석을 포함하면 다음과 같은 방법으로 주석의 형식을 지정할 수 있습니다.
로 주석
/*
을 시작하고 로 끝납니다*/
. 코멘트 텍스트는 한 줄이거나 여러 줄에 걸쳐 있을 수 있습니다.주석을 a
#
로 시작하고 새 줄로 끝납니다(캐리지 리턴).
예: CLI를 사용하여 디바이스 구성에 코멘트 포함
디바이스 구성에 코멘트를 추가하면 사용자가 구성 파일을 판독 가능하고 더 쉽게 이해할 수 있습니다. 문을 사용하여 구성하면 코멘트를 포함할 수 있습니다 annotate
. 이 예에서는 이미 존재하는 구성에 CLI를 사용하여 코멘트를 추가합니다.
요구 사항
이 예제를 구성하기 전에 디바이스 초기화 이외의 특별한 구성은 필요하지 않습니다.
코멘트를 추가하기 전에 라우터에서 다음 계층을 구성해야 합니다.
이 예의 초기 구성을 빠르게 구성하려면, 다음 명령을 복사하여 텍스트 파일로 붙여 넣은 다음 모든 줄 바꿈을 제거하고, 네트워크 구성과 일치시키는 데 필요한 세부 사항을 변경하고, 계층 수준에서 이 명령을 CLI에 [edit]
복사하여 붙여 넣은 다음, 구성 모드에서 을 입력합니다 commit
.
set protocols ospf area 0.0.0.0 interface et-0/0/0.0 hello-interval 5
이제 이 계층이 구성되었는지 확인합니다.
user@host# show protocols
ospf {
area 0.0.0.0 {
interface et-0/0/0 {
hello-interval 5;
}
}
}
개요
CLI를 사용하여 코멘트를 추가할 때, 문을 사용하여 annotate
구성 모드에서 코멘트를 추가합니다. 추가하는 각 코멘트는 현재 수준의 문과 연결됩니다. 각 문에는 하나의 한 줄 주석이 연결될 수 있습니다.
문을 구성 annotate
하려면, 코멘트를 연결하려는 문의 수준으로 이동합니다. 코멘트를 보려면 구성 계층의 맨 위로 이동하여 명령을 사용합니다 show
.
구성
CLI 빠른 구성
이 예의 코멘트를 빠르게 구성하려면, 아래 명령을 복사하여 텍스트 파일로 붙여 넣은 다음 모든 라인브레이크를 제거하고, 네트워크 구성과 일치시키는 데 필요한 세부 사항을 변경하고, 계층 수준에서 시작하는 [edit]
CLI에 명령을 복사하여 붙여 넣은 다음, 구성 모드에서 을(를) 입력합니다 commit
.
edit protocols ospf
annotate area 0.0.0.0 "Backbone area configuration added June 15, 2020"
edit area 0.0.0.0
annotate interface et-0/0/0.0 "Interface from router sj1 to router sj2"
명령은 계층의 다른 섹션에 주석을 달 때 계층 아래로 이동합니다.
CLI 구성 모드에 코멘트 포함
단계별 절차
이 절차에서는 초기 구성을 이미 구성했다고 가정합니다.
구성에 코멘트 추가하기:
코멘트를 추가해야 하는 첫 번째 계층 수준으로 이동합니다.
[edit] user@host#
edit protocols ospf
문을 사용하여
annotate
구성 문에 코멘트를area
추가합니다.[edit protocols ospf] user@host#
annotate area 0.0.0.0 "Backbone area configuration added June 15, 1998"
구성 문으로
interface
수준을 내립니다.[edit protocols ospf] user@host#
edit area 0.0.0.0
-
문을 사용하여
annotate
인터페이스에et-0/0/0.0
코멘트를 추가합니다.[edit protocols ospf area 0.0.0.0] user@host#
annotate interface et-0/0/0.0 "Interface from router sj1 to router sj2"
결과
계층 맨 위로 이동하고 명령을 사용하여 show
추가한 주석을 확인합니다. 코멘트는 연결된 문보다 우선합니다.
[edit]
user@host# show protocols
ospf {
/* Backbone area configuration added June 15, 2020 */
area 0.0.0.0 {
/* Interface from router sj1 to router sj2 */
interface et-0/0/0.0 {
hello-interval 5;
}
}
}
구성이 올바른지 확인한 후 명령을 입력합니다 commit
.
예: 범위 옵션과 함께 와일드카드 명령 사용
디바이스의 구성을 변경해야 하는 경우 명령을 사용하여 항상 원래 구성 설정을 제거하고 명령을 사용하여 delete
set
새 구성 설정을 추가할 수 있습니다. 그러나 보다 효율적이고 사용하기 쉬운 구성을 수정하는 다른 방법이 있습니다.
이 예에서는 활성화, 비활성화, 삭제, 보호, 설정, 표시 및 보호 해제 구성 명령의 범위와 함께 와일드카드 명령을 사용하는 방법을 보여줍니다.
와일드카드 명령은 구성 계층을 생성할 수 없습니다. 기존 문을 수정하는 데 사용합니다. 빈 계층에서 deactivate와 같은 매개 변수를 설정하려고 할 때 형식의 warning: statement not found
CLI 오류가 발생할 수 있습니다.
요구 사항
디바이스에서 실행되는 Junos OS 릴리스 12.1 이상
개요
와일드카드 명령과 함께 범위 옵션을 사용하면 활성화, 비활성화, 삭제, 보호, 설정, 표시 및 보호 해제 명령에서 범위를 지정할 수 있습니다. 범위를 사용하여 인터페이스, 논리적 단위, VLAN 및 기타 번호가 매겨진 요소의 범위를 지정할 수 있습니다. 와일드카드 범위 옵션은 입력한 명령을 각각 범위의 한 항목에 해당하는 여러 명령으로 확장합니다.
와일드카드 범위 옵션을 사용하면 각 구성 문을 개별적으로 구성하는 대신 단일 set 명령을 사용하여 여러 구성 문을 구성할 수 있습니다. 예를 들어, 서로 다른 포트 번호를 가진 24개의 기가비트 이더넷 인터페이스를 구성하기 위해 24개의 개별 set interfaces 명령 대신 단일 와일드카드 range set 명령을 사용할 수 있습니다.
마찬가지로, 30개의 논리적 인터페이스 그룹을 비활성화하려면 각 논리적 인터페이스를 개별적으로 비활성화하는 대신 와일드카드 범위 비활성화 명령을 사용할 수 있습니다.
구성
- 다양한 구성 작업에 대해 와일드카드 명령을 range 문과 함께 사용합니다.
- 구성 문에 대한 일련의 명명된 식별자를 구성하기 위해 범위 옵션 사용
- 구문에 여러 범위 지정
- 구문에서 범위 및 고유 번호 지정
- 범위에서 일부 값 제외
- 단계 번호로 범위 지정
- 와일드카드를 사용하여 정책 삭제 p1-p10
다양한 구성 작업에 대해 와일드카드 명령을 range 문과 함께 사용합니다.
단계별 절차
- 와일드카드 범위는 active, deactivate, delete, protect, set, show, unprotect 구성 명령과 함께 사용할 수 있습니다.
[edit] user@host#
wildcard range ? Possible completions: activate Remove the inactive tag from a statement annotate Annotate the statement with a comment deactivate Add the inactive tag to a statement delete Delete a data element protect Protect the statement set Set a parameter show Show a parameter unprotect Unprotect the statement
-
문은
wildcard
전체 구성 계층으로 규정될 수 있습니다. 구성 계층에 배치된 경우, 와일드카드 명령은 해당 계층에서 지원되는 옵션에 상대적입니다.[edit] user@host#
wildcard range set interfaces ? Possible completions: <interface-name> Interface name + apply-groups Groups from which to inherit configuration data + apply-groups-except Don't inherit configuration data from these groups > interface-range Interface ranges configuration > interface-set Logical interface set configuration lo0 Interface name > stacked-interface-set Stacked interface set configuration > traceoptions Interface trace options xe-0/0/0:0 Interface name xe-0/0/0:1 Interface name
user@host# edit interfaces [edit interfaces]wildcard range set ? Possible completions: <interface-name> Interface name + apply-groups Groups from which to inherit configuration data + apply-groups-except Don't inherit configuration data from these groups > interface-range Interface ranges configuration > interface-set Logical interface set configuration lo0 Interface name > stacked-interface-set Stacked interface set configuration > traceoptions Interface trace options xe-0/0/0:0 Interface name xe-0/0/0:1 Interface name
첫 번째 경우, 인터페이스 계층에 대한 전체 경로는 와일드카드 문으로 지정됩니다. 두 번째로, 사용자는 인터페이스 계층에 주차됩니다. 지원되는 옵션은 두 방법 모두 동일합니다.
구성 문에 대한 일련의 명명된 식별자를 구성하기 위해 범위 옵션 사용
단계별 절차
서로 다른 포트 번호(0에서 23)를 가진 일련의 동일한 유형의 인터페이스를 구성하려면 다음 형식으로 포트 번호의 범위를 지정합니다.
-
[edit] user@host# wildcard range set interfaces ge-0/0/[0-23] unit 0 family vpls
-
결과를 표시합니다. 범위 와일드카드 범위는 24개의 서로 다른 set 명령으로 확장되어 포트 번호가 0에서 23 사이인 인터페이스를 구성합니다. 이 경우 프로토콜 패밀리를 추가하기
vpls
위해 인터페이스가 생성됩니다. 인터페이스가 이미 정의되어 있으면 패밀리만 추가됩니다.root@R1# show | compare [edit interfaces] + ge-0/0/0 { + unit 0 { + family vpls; + } + } + ge-0/0/1 { + unit 0 { + family vpls; + } + } + ge-0/0/2 { + unit 0 { + family vpls; + } + } . . . + ge-0/0/23 { + unit 0 { + family vpls; + }
구문에 여러 범위 지정
단계별 절차
와일드카드 범위 명령에 여러 범위를 지정할 수 있습니다. 각 범위는 쉼표로 구분해야 합니다. 겹치는 범위를 가질 수도 있습니다.
나머지 예제에서는 10개의 정책 문으로 구성의 임시 복사본을 생성합니다. 이러한 문을 사용하면 계층의 null 부분에서 속성을 조작하려고 할 때 보고되는 CLI 오류를 방지할 수 있습니다.
[edit] user@device# set policy-options policy-statement p1 then reject set policy-options policy-statement p10 then reject set policy-options policy-statement p2 then reject set policy-options policy-statement p3 then reject set policy-options policy-statement p4 then reject set policy-options policy-statement p5 then reject set policy-options policy-statement p6 then reject set policy-options policy-statement p7 then reject set policy-options policy-statement p8 then reject set policy-options policy-statement p9 then reject [edit] user@device# save temp Wrote 254 lines of configuration to 'temp'
- 구문에 둘 이상의 범위를 지정하려면 각 범위의 최소값과 최대값을 쉼표로 구분하여 포함합니다.
[edit] user@host# wildcard range deactivate policy-options policy-statement p[1-3,5-7,6-9]
-
결과를 표시합니다. 와일드카드 범위가 확장되어 지정된 범위와 일치하는 이름을 가진 정책에 명령문이 추가됩니다
deactivate
. 주목할 점은 후보 구성에 대한 변경 사항 목록에 및 p10 가 없다는 p4 것입니다.메모:지정된 정책 이름이 구성에 아직 없는 경우 오류가 반환됩니다. 이는 구성 계층의 빈 부분에 deactivate 문을 추가할 수 없기 때문입니다.
[edit] show | compare [edit policy-options] ! inactive: policy-statement p1 { ... } ! inactive: policy-statement p2 { ... } ! inactive: policy-statement p3 { ... } ! inactive: policy-statement p5 { ... } ! inactive: policy-statement p6 { ... } ! inactive: policy-statement p7 { ... } ! inactive: policy-statement p8 { ... } ! inactive: policy-statement p9 { ... }
구문에서 범위 및 고유 번호 지정
단계별 절차
와일드카드 범위 명령 구문에서 범위와 고유 번호의 조합을 지정할 수 있습니다.
-
임시 구성을 다시 로드합니다.
[edit] user@host# load override temp load complete
- 범위와 고유 번호를 지정하려면 쉼표로 구분합니다. 이 예에서 10은 일련의 범위에 고유 번호로 추가됩니다.
[edit] user@host# wildcard range deactivate policy-options policy-statement p[1-3,5,7,10]
-
결과를 표시합니다. 와일드카드 범위가 확장되어 지정된 범위와 일치하는 이름을 가진 정책 및 고유 번호에 명령문이 추가됩니다
deactivate
. 따라서 p10 이 예에서는 정책도 비활성화됩니다.메모:지정된 정책 이름이 구성에 아직 없는 경우 오류가 반환됩니다. 이는 빈 구성 계층에 deactivate 문을 추가할 수 없기 때문입니다.
[edit] user@host# show | compare [edit policy-options] ! inactive: policy-statement p1 { ... } ! inactive: policy-statement p10 { ... } ! inactive: policy-statement p2 { ... } ! inactive: policy-statement p3 { ... } ! inactive: policy-statement p5 { ... } ! inactive: policy-statement p7 { ... }
범위에서 일부 값 제외
단계별 절차
숫자를 표시하여 범위에서 특정 값을 제외하거나 느낌표를 사용하여 제외할 숫자 범위를 제외할 수 있습니다.
-
임시 구성을 다시 로드합니다.
[edit] user@host# load override temp load complete
- 범위에서 특정 값을 제외하려면 로 제외할 부분을 포함합니다! 구문에서.
[edit] user@host# wildcard range deactivate policy-options policy-statement p[1-5,!3-4]
-
결과를 표시합니다. 와일드카드 범위가 확장되어 지정된 범위와 일치하는 이름을 가진 정책에 명령문이 추가됩니다
deactivate
. 정책 p3 및 p4 는 후보 구성에 대한 수정 사항 목록에 없습니다. 와일드카드 범위에서 제외되었습니다.메모:지정된 정책 이름이 구성에 아직 없는 경우 오류가 반환됩니다. 이는 빈 구성 계층에 deactivate 문을 추가할 수 없기 때문입니다.
[edit] user@host# show | compare [edit policy-options] ! inactive: policy-statement p1 { ... } ! inactive: policy-statement p2 { ... } ! inactive: policy-statement p5 { ... }
단계 번호로 범위 지정
단계별 절차
범위 내에서 일정한 간격을 갖도록 단계 번호를 제공할 수 있습니다. 단계 값은 첫 번째 일치 항목을 계산한 다음 지정된 단계 값까지 후속 일치 항목을 건너뜁니다.
-
임시 구성을 다시 로드합니다.
[edit] user@host# load override temp load complete
- 단계를 제공하려면 앞에 슬래시(/)가 오는 구문에 단계 값을 포함합니다. 여기서는 1-10의 범위를 지정하고 단계 값 2를 사용하여 각 일치 항목 사이에 1개의 숫자를 건너뜁니다. 그 효과는 홀수(1)를 일치시키는 것으로 시작할 때 모든 짝수 일치 항목을 건너뛰는 것입니다.
[edit] user@host# wildcard range deactivate policy-options policy-statement p[1-10/2]
-
결과를 표시합니다. 와일드카드 범위가 확장되어 첫 번째 일치 항목부터 시작하여 일치하는 다른 모든 문에 문이 추가됩니다
deactivate
.메모:지정된 정책 이름이 구성에 아직 없는 경우 오류가 반환됩니다. 이는 빈 구성 계층에 deactivate 문을 추가할 수 없기 때문입니다.
[edit] user@host# show | compare [edit policy-options] ! inactive: policy-statement p1 { ... } ! inactive: policy-statement p3 { ... } ! inactive: policy-statement p5 { ... } ! inactive: policy-statement p7 { ... } ! inactive: policy-statement p9 { ... }
단계 기능을 더 잘 설명하기 위해 임시 구성이 복원되고 와일드카드 명령이 반복되며, 이번에는 단계 값이 4입니다. 이제 각 초기 일치 후 3개의 항목을 건너뜁니다.
[edit] user@host# load override temp load complete user@host## wildcard range deactivate policy-options policy-statement p[1-10/4] \
-
결과를 표시합니다. 와일드카드 범위가 확장되어 첫 번째 일치 항목부터 시작하여 네 번째 일치 항목마다 문을 추가합니다
deactivate
.[edit] user@host# show | compare [edit policy-options] ! inactive: policy-statement p1 { ... } ! inactive: policy-statement p5 { ... } ! inactive: policy-statement p9 { ... }
와일드카드를 사용하여 정책 삭제 p1-p10
단계별 절차
와일드카드 기능을 테스트하기 위해 추가된 임시 정책을 삭제합니다.
- 와일드카드 범위 문과
delete
함께 문을 사용하여 를 통해 p10정책을 p1 삭제합니다.[edit] user@host# wildcard range delete policy-options policy-statement p[1-10]
-
결과를 표시합니다. 우리의
policy-options
스탠자에는 를 통한 p10정책 p1 만 포함되어 있습니다. 이로 인해 구성 계층이 비어 있게policy-options
됩니다.[edit] user@host# show policy-options