자유형 설계
청사진
Freeform 레퍼런스 설계로 새 네트워크를 만들 때 청사진을 만드는 것부터 시작합니다. 다른 레퍼런스 설계와 마찬가지로, 청사진은 Apstra가 관리하는 운영 네트워크와 관련된 모든 요소를 포함합니다. 청사진을 구조화하고 Freeform에서 사용하는 방법에는 몇 가지 중요한 차이점이 있습니다. 데이터센터 레퍼런스 설계에는 논리적 디바이스, 인터페이스 맵, 랙, 템플릿과 같은 설계 및 빌드 요소가 필요합니다. 구성 세부 정보 및 디바이스 링크가 청사진에 직접 생성되기 때문에 이러한 단계는 Freeform 설계에서 불필요합니다. 새 청사진을 만들 때 표시된 대로 Freeform Reference Design을 선택하기만 하면 됩니다.
토폴로지
새 Freeform 청사진을 만든 후 네트워크 토폴로지 설계를 시작할 수 있습니다. DC 레퍼런스 아키텍처와 마찬가지로 모든 설계 작업은 Staged Blueprint 탭에서 수행됩니다. Freeform의 Staged 토폴로지 편집 영역은 요소와 상호 작용하여 네트워크 설계 및 아키텍처를 생성하는 곳입니다. 토폴로지 에디터는 Freeform의 새로운 기능으로 대화형 방식으로 맞춤형 네트워크 설계를 생성할 수 있습니다. 네트워킹 디바이스를 선택하고 이들 간의 링크를 정의하여 대화형으로 연결할 수 있습니다. 아래와 같이 이러한 디바이스는 내부 또는 외부에 있을 수 있습니다.
토폴로지 편집기를 액세스하려면 토폴로지 보기에서 Edit 버튼을 클릭합니다.
내부 디바이스는 Apstra 관리하에 있으며 디바이스 기능을 모델링하고 에이전트를 사용하여 디바이스와 상호 작용하는 디바이스 프로파일에 매핑되어야 합니다. 외부 디바이스는 Apstra 관리 우산 바로 아래에 있지 않지만 링크 및 속도와 같은 내부 디바이스와의 상호 작용을 위해 토폴로지 뷰에서 여전히 모델링할 수 있습니다. 외부 장치는 장비 에이전트나 모델을 이용하지 않습니다. 디바이스 간 링크를 생성하거나, 단일 또는 여러 디바이스 간에 링크를 생성하거나, 집계된 링크를 생성할 수도 있습니다. 토폴로지와 상호 작용하여 설계 레이아웃을 다시 정렬하고 링크를 추가하며 디바이스 및 링크의 색상이나 태그를 편집할 수 있습니다. 시스템의 장비 아이콘을 선택하여 CRUD(Create, Read, Update, and Delete) 작업을 수행할 수 있습니다. 개별 객체와 객체 모두에 대해 CRUD 작업을 대량으로 수행할 수 있는 옵션이 있습니다.
색상
색상을 사용하여 빠른 시각적 그룹화와 Apstra 디바이스 간 구분을 생성할 수 있습니다. 예를 들어, 방화벽에 연결하는 디바이스는 빨간색으로, IP 포워딩을 수행하는 디바이스는 주황색일 수 있습니다.
태그
Apstra에서 태그는 강력한 기능입니다. 태그는 Apstra가 관리하는 리소스에 메타데이터를 할당하는 방법입니다. 이러한 태그는 Apstra 리소스(현재 디바이스 및 링크)를 식별, 구성, 검색 및 필터링하는 데 도움이 됩니다. 태그는 목적, 소유자, 환경 또는 기타 기준에 따라 리소스를 범주화하는 데에도 유용합니다. 태그는 메타데이터이므로 시각적 레이블링에만 사용되는 것이 아니라 Apstra 그래프 데이터베이스에서 노드의 속성으로도 적용됩니다. 그런 다음 이 노드 속성 또는 디바이스 속성을 사용하여 구성 생성의 동적 변수에 대해 Jinja에서 참조할 수 있으며, Apstra의 라이브 쿼리 기술과 Apstra 인텐트 기반 분석을 통해 Apstra 실시간 분석을 이용할 수 있습니다.
예를 들어, 태그 '방화벽'을 사용하여 특정 설명을 렌더링할 수 있습니다.
{% if has_tag(interface.link.neighbor_system.id, 'firewall') %} description "this is a firewall facing interface"; {% endif %}
Jinja Support 섹션에서 태그에 액세스하고 사용하는 방법에 대한 자세한 예는 에서 확인할 수 있습니다.
시스템 생성
토폴로지 보기 또는 시스템 보기에서 시스템을 생성할 수 있습니다.
-
Staged > 토폴로지 > 토폴로지 에디터
하단 메뉴의 처음 두 아이콘을 사용하여 내부 또는 외부 시스템을 생성합니다. 새로운 시스템이 토폴로지 보기에 나타납니다. 내부 시스템을 생성하기 전에 디바이스 프로파일을 청사진 카탈로그로 가져온 다음 내부 시스템을 만들 때 할당합니다.
-
staged > 시스템에서
이 방법은 토폴로지 보기에 새 시스템을 자동으로 추가합니다. 기존 매니지드 디바이스에서 새 시스템을 생성하거나 특정 장비 프로필을 가진 새 시스템을 생성하고 장비가 준비되고 Apstra 매니지드 디바이스의 일부가 준비되면 나중에 매니지드 디바이스를 할당할 수 있습니다.
링크 생성
링크는 객체 또는 디바이스를 함께 연결하는 데 사용됩니다. 링크는 단일 링크 또는 통합 링크일 수 있습니다. 이러한 링크에는 토폴로지 편집기 "기어" 아이콘을 통해 매개 변수가 할당되어 있을 수 있습니다. 링크에는 IP 주소와 태그가 할당되어 있을 수 있습니다.
디바이스 프로파일
장비 프로파일은 지원되는 하드웨어 디바이스의 기능을 정의합니다. 일부 기능 기능은 NOS 버전에 따라 서로 다른 동작을 가지므로 NOS 버전별로 기능을 표현할 수 있습니다.
Freeform의 초기 버전에서는 주니퍼 네트웍스의 장비 프로파일만 지원됩니다.
디바이스 프로파일을 작성하기 전에 디바이스 프로파일을 청사진으로 임포트해야 합니다. 그런 다음 청사진의 토폴로지 편집기에서 이러한 디바이스를 사용할 수 있습니다.
구성 템플릿
Freeform의 네트워크 요소 설계는 임의적이기 때문에 장치 구성은 Freeform 참조 설계에 의해 자동으로 렌더링되지 않습니다. 완벽하게 정의할 수 있도록 구성이 남아 있습니다. Apstra 4.1.1부터는 특히 Freeform에서 디바이스 구성을 구동하기 위한 Config 템플릿의 개념을 소개합니다. 구성 템플릿은 사용 사례 및 익숙한 자동화 수준에 따라 매우 복잡하고 프로그래밍 방식으로 매우 간단하고 정적일 수 있습니다. 구성 템플릿은 디바이스 컨텍스트 및 속성 집합과 옵션으로 상호 작용할 수 있는 Jinja2 템플릿 언어의 사용을 지원합니다.
네스티(구성 가능) 구성 템플릿
Config 템플릿이 Jinja 템플릿 작성을 지원함에 따라 다른 구성 템플릿의 목록에서 구성 템플릿의 섹션을 포함할 수 있는 강력한 네스티잉 기능이 지원됩니다. 네스티잉 구성 템플릿은 두 가지 주요 이점을 제공합니다. 첫 번째는 네스티링(nesting)을 사용하면 다양한 서비스, 구성 섹션 등을 공통 구성 요소로 분리하고 전용 구성 템플릿을 생성할 수 있다는 것입니다.
예를 들어, 대부분의 주니퍼 디바이스에서 배너, 로그인, NTP 등을 위한 기본 시스템 스탠자 구성이 있다고 가정합니다. 동일한 구성을 각 디바이스 템플릿에 복사하여 붙여넣는 대신 기본 시스템 구성을 위한 전용 구성 템플릿을 만들 수 있습니다. 그런 다음 다른 템플릿 내에서 해당 템플릿을 참조하기만 하면 됩니다.
각 시스템에 하나의 구성 템플릿만 할당할 수 있기 때문에 두 번째 이점은 네스티드 구성 템플릿의 모든 엔티티가 자동으로 상속된다는 것입니다.
그림처럼 아래의 구성 템플릿 junos_configuration.jinja
은 여러 개의 네스티드 구성 템플릿(예: junos_system.jinja
네스티드 구성 템플릿)을 갖춘 단일 구성 템플릿입니다.
네스티드 junos_system.jinja
템플릿은 시스템 호스트네임을 렌더링하는 데 사용됩니다.
렌더링 순서
구성 템플릿 순서대로 구성이 렌더링됩니다.
속성 세트
속성 세트는 Config 템플릿 및 IBA 프로브에서 사용할 청사진 카탈로그로 임포트하는 키 가치 쌍의 모음입니다. 속성 집합의 사용은 선택 사항이지만 구성 템플릿을 완전히 매개 변수화하여 구성 템플릿의 변경되지 않는 부분을 실제 변수와 분리할 수 있는 중요한 기능을 제공합니다. 속성 집합을 사용하면 임의적이고 유연한 방식으로 구성을 렌더링하는 데 사용되는 장비 모델을 풍부하게 할 수 있습니다.
예를 들어 기업의 모든 디바이스에서 NTP 구성은 일관적일 수 있지만 지역별로 시간 소스 또는 계층이 다를 수 있습니다. NTP 구성 템플릿은 각 영역에 대해 서로 다른 변수를 사용하여 구축할 수 있습니다. 이 경우 "ntp"라는 이름의 속성을 사용할 수 있습니다.
올바른 구문을 사용하는 것이 중요합니다. 키 값은 대소시에 민감합니다.
구성 템플릿은 NTP 서버에 사용하려는 실제 IP 주소 대신 구성 {{ntp}}
됩니다. 동일한 Config 템플릿이 모든 청사진으로 임포트되지만 동부 지역에서 실행되는 청사진에는 "EAST" 속성 집합이 임포트되고 서 지역에서 실행되는 청사진은 "WEST" 속성 집합을 임포트합니다. 속성 세트는 기본적으로 청사진 폭이 넓거나 컨텍스트에서 전역입니다.
Freeform은 장비에 특별히 할당될 수 있는 속성 집합도 지원합니다. 이를 통해 특정 속성 세트를 설정하고 할당하고 지정된 디바이스에서만 사용할 수 있습니다. 속성 세트는 그래프의 일부이며, IBA 프로브에서 해당 값을 사용할 수 있습니다.
위의 예는 디바이스 컨텍스트(왼쪽) 또는 그래프(오른쪽)를 통해 속성 세트에 액세스할 수 있음을 보여줍니다.
속성 집합의 데이터 구조
Freeform 속성 집합은 다양한 사용 사례를 수행하는 데 사용할 수 있는 고급 데이터 구조를 지원합니다. Freeform 속성 세트는 다음과 같은 일반적인 Python 데이터 유형을 지원합니다.
-
어레이(항목 목록)
-
Boolean: True 또는 False
-
Int: 1, 2, 3 등
-
플로트: 1.2, 3.65 등
-
문자열: "Hello World"
-
사전: {"asn": 65432, "lo0": "1.2.3.4/32"}
위의 예는 Config 템플릿에 서로 다른 데이터 유형을 보여줍니다.
전역적으로 속성 집합을 참조하거나 청사진의 시스템에 할당할 수 있습니다. 아래 스크린샷은 내포된 사전(사전 사전) 데이터 구조를 사용하여 구축된 속성 집합을 보여줍니다.
예를 들어 키를 사용하여 딕셔니를 다시 사용하고 필요에 따라 키를 값으로 사용할 수 있습니다.
-
esxRedTrunk 는 인터페이스 설명으로 사용될 링크 태그 이름입니다.
-
99, 100, 101은 할당될 VLAN ID /트렁크 멤버 및 irb.<value>
-
서브넷/설명/게이트웨이는 또한 의미 있는 구성을 도출하는 데 사용됩니다.
구축 모드(구축/ 레디/드레인)
시스템의 구축 모드를 Freeform(데이터센터 청사진과 동일)으로 설정할 수 있습니다.
그러나 Freeform에서는 시스템이 각 모드에 있는 경우 렌더링된 구성을 정의합니다.
Deploy 모드를 사용하여 라우팅 프로토콜 세션을 렌더링할지 또는 특정 라우트 맵이 장비에서 렌더링되는지 나타내는 등 다양한 구성을 조건부로 렌더링할 수 있습니다. 예를 들어 디바이스가 "드레인(Drain)"으로 설정되면 동적 라우팅 프로토콜을 제거하는 구성을 생성할 수 있는 특정 Jinja를 갖게 됩니다.
시스템의 Deploy 모드는 장비 컨텍스트에서 사용자에게 노출되며 Config 템플릿에서 Jinja 변수로 참조할 수 있습니다.
인접 시스템의 Deploy 모드도 사용할 수 있습니다.
시스템의 Deploy 모드를 변경하는 것은 시스템에 할당된 Config 템플릿에 의해 참조되지 않은 경우 렌더링된 구성에 영향을 미치지 않습니다.
Jinja Config 템플릿에서 이를 수행하는 방법의 예는 다음과 같습니다.
{% if deploy_mode in ['deploy', 'drain'] %} {% include 'protocols.jinja' %} {% include 'policy_options.jinja' %} {% endif %}
이 예에서는 지정된 노드가 '구축' 또는 '드레인' 상태에 있는 경우 모두 protocols.jinja
policy_options.jinja
활성화되고 활성화됩니다. 개별 요구에 맞게 동작을 수정할 수 있습니다.