Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

진화한 Junos OS 실행하는 디바이스의 Python 3 애플리케이션에서 라우팅 인스턴스를 지정하는 방법

libpyvrf 모듈 이해하기

라우팅 인스턴스는 라우팅 테이블, 인터페이스 및 라우팅 프로토콜 매개 변수 모음입니다. 각 라우팅 인스턴스에는 고유한 이름과 해당 IP 유니캐스트 테이블이 있으며, 이를 사용하여 해당 인스턴스의 트래픽을 다른 트래픽과 구분하는 데 사용할 수 있습니다. 예를 들어, Junos OS Evolved를 실행하는 디바이스에서 관리 작업에 전념하는 별도의 관리 라우팅 테이블 사용하는 전용 관리 가상 라우팅 및 포워딩(VRF) 인스턴스 mgmt_junos를 활성화할 수 있습니다.

라우팅 인스턴스를 사용하면 여러 디바이스를 사용하여 네트워크를 분할하지 않고 네트워크를 통과하는 트래픽을 분리할 수 있습니다. 라우팅 인스턴스를 사용하여 트래픽을 분리할 때, 네트워크 유틸리티는 해당 ping ssh 인스턴스를 통해 도달할 수 있는 대상으로 트래픽을 전송하기 위해 올바른 라우팅 인스턴스를 참조해야 합니다.

Junos OS Evolved 이미지는 Linux에서 기본적으로 실행되며, 기본 이미지의 일부인 Python 라이브러리를 포함하여 모든 Linux 유틸리티 및 운영에 직접 액세스할 수 있습니다. Junos OS Evolved를 실행하는 디바이스의 Python 3 라이브러리에도 주니퍼 네트웍스 libpyvrf 모듈이 포함되어 있어 쉘에서 실행되는 Python 3 애플리케이션이 특정 프로세스 및 네트워크 유틸리티에 사용할 라우팅 인스턴스를 지정할 수 있습니다.

표 1 에서는 libpyvrf Linux 셸에서 실행되는 Python 3 애플리케이션에서 사용할 수 있는 기능을 간략하게 설명합니다. 기능을 사용하여 프로세스에 특정 라우팅 인스턴스를 사용하도록 지시할 수 있습니다. 동일한 프로세스에 여러 라우팅 인스턴스가 필요한 경우, 프로세스 자체의 컨텍스트에 영향을 미치지 않는 특정 소켓에 대한 라우팅 인스턴스 컨텍스트를 설정할 수도 있습니다. 소켓을 통한 패킷은 해당 인스턴스와 연관된 라우팅 테이블 사용합니다. 프로세스 또는 소켓에 대한 라우팅 인스턴스를 설정할 때 모듈은 libpyvrf Junos OS 라우팅 인스턴스에 해당하는 Linux VRF에 컨텍스트를 설정합니다.

표 1: libpyvrf 기능

libpyvrf 함수

설명

get_host_vrf_name()

Junos OS 라우팅 인스턴스에 해당하는 Linux VRF를 반환합니다.

get_table_id()

지정된 라우팅 인스턴스와 연관된 라우팅 테이블 인덱스 를 반환합니다.

get_task_vrf()

지정된 작업과 연관된 라우팅 인스턴스를 반환합니다.

참고:

이 기능은 Junos OS Evolved 릴리스 22.1R1부터 사용되지 않습니다.

get_vrf()

현재 프로세스와 연결된 라우팅 인스턴스를 반환합니다.

set_socket_vrf()

지정된 소켓에 대한 라우팅 인스턴스를 설정합니다.

set_task_vrf()

지정된 프로세스에 대한 라우팅 인스턴스를 설정합니다.

참고:

이 기능은 Junos OS Evolved 릴리스 22.1R1부터 사용되지 않습니다.

set_vrf()

현재 프로세스에 대한 라우팅 인스턴스를 설정합니다.

모듈의 libpyvrf 기능은 기능 및 오류에 따라 다음과 같은 예외를 발생하게 할 수 있습니다.

  • libpyvrf.error- 오류를 반환할 때 libvrf 생성됩니다.

  • libpyvrf.evo_not_ready—디바이스가 부팅 중일 때 Junos OS Evolved 네트워크 스택이 준비되지 않은 경우 생성됩니다.

  • libpyvrf.invalid_table- 지정된 라우팅 인스턴스 또는 테이블 ID가 유효하지 않은 경우 생성됩니다.

다음 샘플 Python 스크립트는 라우팅 인스턴스를 통해서만 도달할 수 있는 호스트 핑을 mgmt_junos 시도합니다. 스크립트는 먼저 함수를 호출하기 전에 호스트 핑을 합니다 set_vrf() . 그런 다음 스크립트는 기능을 호출 set_vrf() 하여 라우팅 인스턴스를 현재 프로세스와 연결 mgmt_junos 하고 호스트를 다시 핑합니다.

스크립트를 실행하면 첫 번째 ping 명령이 실패합니다. 프로세스가 이 경우 기본 라우팅 인스턴스를 사용하고 호스트가 라우팅 인스턴스를 통해 mgmt_junos 서만 도달할 수 있기 때문입니다. 라우팅 인스턴스를 사용하는 두 번째 핑 명령이 mgmt_junos 성공합니다.

라우팅 인스턴스 이름에 대한 빈 문자열을 지정하여 Python 애플리케이션의 기본 라우팅 인스턴스 연결로 라우팅 인스턴스를 재설정할 수 있습니다. 예를 들어:

애플리케이션이 라우팅 인스턴스를 지정하지 않으면, 기본 라우팅 인스턴스 연결은 프로세스 환경에 따라 달라집니다. 환경이 libsi.so 라이브러리를 미리 로드하면 기본적으로 애플리케이션은 기본 라우팅 인스턴스와 테이블을 default.inet사용합니다. 그렇지 않으면 프로세스 또는 소켓과 관련된 기본 라우팅 인스턴스가 없습니다.

환경이 libsi.so 라이브러리를 미리 로드하는지 확인하려면 환경 변수 값 LD_PRELOAD 에 라이브러리 경로가 포함되어 있는지 확인합니다.

변수에 LD_PRELOAD libsi.so 라이브러리 경로가 포함되어 있지 않은 경우, 쉘에 적합한 명령을 사용하여 추가할 수 있습니다( 예:

get_host_vrf_name() 기능

구문

설명

Junos OS 라우팅 인스턴스에 해당하는 Linux VRF를 반환합니다.

매개 변수

vrf_name

Junos OS 라우팅 인스턴스의 이름입니다.

반환 값

host_vrf_name

Junos OS 라우팅 인스턴스에 해당하는 Linux VRF의 이름입니다.

사용 예

다음 예는 여러 Junos OS 라우팅 인스턴스에 해당하는 Linux VRF를 인쇄합니다.

릴리스 정보

Junos OS Evolved 릴리스 20.3R1에서 소개된 기능.

get_table_id() 기능

구문

설명

지정된 라우팅 인스턴스와 연관된 라우팅 테이블 인덱스 를 반환합니다. 라우팅 인스턴스가 정의되지 않으면 함수는 -1을 반환합니다.

매개 변수

vrf_name

Junos OS 라우팅 인스턴스의 이름입니다.

반환 값

table_id

지정된 라우팅 인스턴스에 대한 라우팅 테이블 인덱스입니다.

사용 예

다음 예는 라우팅 인스턴스 및 정의되지 않은 라우팅 인스턴스에 mgmt_junos 대한 테이블 인덱스를 검색하고 인쇄합니다 foo.

스크립트는 인스턴스에 대한 테이블 인덱스 를 mgmt_junos 반환하고 정의되지 않은 인스턴스에 대해 -1을 반환합니다.

릴리스 정보

Junos OS Evolved 릴리스 20.3R1에서 소개된 기능.

get_task_vrf() 기능

구문

설명

지정된 프로세스 ID와 연결된 Junos OS 라우팅 인스턴스를 반환합니다.

매개 변수

tid

연결된 라우팅 인스턴스를 검색할 프로세스 ID입니다.

반환 값

vrf_name

프로세스 ID와 연결된 라우팅 인스턴스 이름입니다.

사용 예

다음 예는 현재 프로세스에 대한 프로세스 ID를 검색하고 라우팅 인스턴스를 mgmt_junos 해당 프로세스와 연결합니다. 스크립트가 해당 프로세스 ID에 get_task_vrf() 대한 라우팅 인스턴스를 요청하기 위해 함수를 호출하면 라우팅 인스턴스를 mgmt_junos 반환합니다.

릴리스 정보

Junos OS Evolved 릴리스 20.3R1에서 소개된 기능.

Junos OS Evolved 릴리스 22.1R1에서 사용되지 않습니다.

get_vrf() 기능

구문

설명

현재 프로세스와 연결된 Junos OS 라우팅 인스턴스를 반환합니다.

반환 값

vrf_name

현재 프로세스와 연결된 라우팅 인스턴스 이름입니다.

사용 예

다음 예는 라우팅 인스턴스를 mgmt_junos 현재 프로세스와 연결합니다. 스크립트가 현재 프로세스에 get_vrf() 대한 라우팅 인스턴스를 요청하기 위해 함수를 호출하면 라우팅 인스턴스를 mgmt_junos 반환합니다.

릴리스 정보

Junos OS Evolved 릴리스 20.3R1에서 소개된 기능.

set_socket_vrf() 기능

구문

설명

지정된 소켓에서 사용하는 라우팅 인스턴스를 설정합니다. 소켓의 라우팅 인스턴스를 설정하는 것은 동일한 애플리케이션 내의 여러 소켓이 다른 라우팅 인스턴스를 사용해야 할 때 유용합니다. 프로세스 또는 애플리케이션의 라우팅 인스턴스 컨텍스트에 영향을 주지 않고 각 소켓에 대한 라우팅 인스턴스 컨텍스트를 개별적으로 설정할 수 있습니다.

매개 변수

socket_fd

소켓의 파일 설명자.

vrf_name

Junos OS 라우팅 인스턴스의 이름입니다.

  • 값: 허용되는 값에는 Junos OS 구성에서 사용자가 구성한 라우팅 인스턴스에 정의된, , 또는 이름이 포함"default""iri""mgmt_junos"됩니다.

릴리스 정보

Junos OS Evolved 릴리스 20.3R1에서 소개된 기능.

set_task_vrf() 기능

구문

설명

지정된 프로세스 ID가 있는 프로세스가 작업을 수행하는 데 사용할 라우팅 인스턴스를 설정합니다.

현재 프로세스에 대한 라우팅 인스턴스를 설정하는 반면 set_vrf() , set_task_vrf() 지정된 프로세스 ID로 프로세스에 대한 라우팅 인스턴스를 설정합니다.

매개 변수

tid

지정된 라우팅 인스턴스를 사용할 프로세스에 대한 프로세스 ID입니다.

vrf_name

Junos OS 라우팅 인스턴스의 이름입니다.

  • 값: 허용되는 값에는 Junos OS 구성에서 사용자가 구성한 라우팅 인스턴스에 정의된, , "mgmt_junos"또는 이름이 포함"default""iri"됩니다.

사용 예

다음 샘플 Python 스크립트는 현재 프로세스에 대한 프로세스 ID를 검색하고 라우팅 인스턴스를 mgmt_junos 해당 프로세스와 연결합니다. 그런 다음 스크립트는 해당 라우팅 인스턴스를 통해서만 도달할 수 있는 호스트 핑을 합니다.

릴리스 정보

Junos OS Evolved 릴리스 20.3R1에서 소개된 기능.

Junos OS Evolved 릴리스 22.1R1에서 사용되지 않습니다.

set_vrf() 기능

구문

설명

현재 프로세스가 작업을 수행하는 데 사용할 라우팅 인스턴스를 설정합니다. 향후 조회는 이 라우팅 인스턴스를 사용합니다.

라우팅 인스턴스를 현재 프로세스 대신 특정 프로세스와 연결하려면 이 기능을 사용합니다 set_task_vrf() .

매개 변수

vrf_name

Junos OS 라우팅 인스턴스의 이름입니다.

  • 값: 허용되는 값에는 Junos OS 구성에서 사용자가 구성한 라우팅 인스턴스에 정의된, , "mgmt_junos"또는 이름이 포함"default""iri"됩니다.

사용 예

다음 샘플 Python 스크립트는 라우팅 인스턴스를 mgmt_junos 현재 프로세스와 연결합니다. 그런 다음 스크립트는 해당 라우팅 인스턴스를 통해서만 도달할 수 있는 호스트 핑을 합니다.

릴리스 정보

Junos OS Evolved 릴리스 20.3R1에서 소개된 기능.