예: EX9200 스위치에서 OpenFlow 활성화
OpenFlow는 경로를 따라 OpenFlow 소프트웨어 패키지가 설치된 EX9200 스위치를 포함하여 각 디바이스에서 플로우를 생성, 삭제 및 수정하여 네트워크의 트래픽 경로를 제어할 수 있도록 지원하는 개방형 표준입니다. 이 예에서는 EX9200 스위치에서 OpenFlow 지원을 구성하는 방법을 보여줍니다.
요구 사항
이 예에서 사용되는 하드웨어 및 소프트웨어 구성 요소는 다음과 같습니다.
Junos OS 릴리스 13.3 이상을 실행하는 EX9200 스위치.
OpenFlow 소프트웨어 패키지가 스위치에 설치되며, 소프트웨어 패키지 릴리스는 스위치에서 실행되는 Junos OS 릴리스와 일치합니다.
스위치는 OpenFlow 컨트롤러에 대한 TCP 연결을 가지고 있으며, 이 컨트롤러는 스위치의 데이터 플레인에 액세스해야 합니다.
스위치는 me0 인터페이스를 통해 관리 네트워크에 연결되며 OpenFlow 컨트롤러 IP 주소에서 연결할 수 있습니다.
개요 및 토폴로지
이 예에서는 EX9200 스위치에서 OpenFlow에 대한 지원을 구성합니다. 스위치에는 OpenFlow 트래픽 처리를 위한 3개의 인터페이스인 ge-1/0/0.0, ge-1/1/0.0 및 xe-0/0/0.0이 있습니다.
EX9200 스위치에는 가상 스위치를 위한 별도의 라우팅 인스턴스가 필요합니다. 이 라우팅 인스턴스는 실험적인 OpenFlow 트래픽을 일반 네트워크 트래픽과 격리합니다. 이 예에서는 계층 수준에서 인스턴스 유형을 virtual-switch
[edit routing-instances]
사용하여 가상 스위치OF-ri
에 대한 라우팅 인스턴스를 구성합니다. 라우팅 인스턴스 OF-ri
에는 OpenFlow에 참여하는 모든 논리적 인터페이스가 포함됩니다.
가상 스위치 OFswitch1
은(는) IP 주소 198.51.100.174에서 TCP 연결을 통해 OpenFlow 컨트롤러에 연결됩니다. 가상 스위치 구성에는 OpenFlow에 참여하는 모든 논리 인터페이스가 포함되어야 하며, OpenFlow 트래픽은 이러한 인터페이스에 들어오거나 나가는 것뿐입니다.
플로우 항목은 OpenFlow 인터페이스에 들어오는 패킷을 비교하는 일치 조건과 조건과 일치하는 패킷에 적용되는 작업으로 구성됩니다. 각 OpenFlow 인터페이스에는 하나 이상의 플로우 항목이 있을 수 있습니다. OpenFlow 구성의 문은 default-action
일치하는 플로우 항목이 없는 패킷에 대해 스위치가 적용하는 작업을 나타냅니다. 문을 명시적으로 구성 default-action
하지 않는 경우, 기본 작업은 packet-in
이며, 이는 일치하는 플로우 항목이 없는 패킷이 처리를 위해 OpenFlow 컨트롤러로 전송됨을 나타냅니다. 이 예에서는 일치하는 플로우 항목이 없는 패킷에 대한 기본 작업으로 을(를) 명시적으로 구성합니다 packet-in
.
이 예에서는 OpenFlow traceoptions도 구성합니다. traceoptions가 명령문으로 flag all
구성되면 모든 OpenFlow 이벤트가 캡처되고 로깅됩니다. 이 예제에서는 로그 파일에 대해 특정 파일 이름이 구성되지 않습니다. 따라서 OpenFlow 이벤트는 /var/log/ofd의 기본 OpenFlow 로그 파일에 기록됩니다.
구성
CLI 빠른 구성
이 예를 빠르게 구성하려면, 아래 명령을 복사하여 텍스트 파일로 붙여 넣은 다음 모든 라인브레이크를 제거하고, 네트워크 구성을 일치하는 데 필요한 세부 사항을 변경하고, 계층 수준에서 명령을 CLI로 [edit]
복사해 붙여 넣은 다음, 구성 모드에서 을 입력합니다 commit
.
set interfaces ge-1/0/0 unit 0 family ethernet-switching set interfaces ge-1/1/0 unit 0 family ethernet-switching set interfaces xe-0/0/0 unit 0 family ethernet-switching set routing-instances OF-ri instance-type virtual-switch set routing-instances OF-ri interface ge-1/0/0.0 set routing-instances OF-ri interface ge-1/1/0.0 set routing-instances OF-ri interface xe-0/0/0.0 set routing-instances OF-ri vlans of-bridge vlan-id none set protocols openflow switch OFswitch1 controller address 198.51.100.174 set protocols openflow switch OFswitch1 controller protocol tcp port 6633 set protocols openflow switch OFswitch1 interfaces ge-1/0/0.0 set protocols openflow switch OFswitch1 interfaces ge-1/1/0.0 set protocols openflow switch OFswitch1 interfaces xe-0/0/0.0 set protocols openflow switch OFswitch1 default-action packet-in set protocols openflow traceoptions flag all
절차
단계별 절차
OpenFlow에 대한 지원을 구성하려면 다음을 수행합니다.
OpenFlow 인터페이스를 레이어 2 인터페이스로 구성합니다.
[edit interfaces] user@switch# set ge-1/0/0 unit 0 family ethernet-switching user@switch# set ge-1/1/0 unit 0 family ethernet-switching user@switch# set xe-0/0/0 unit 0 family ethernet-switching
가상 스위치 라우팅 인스턴스를 구성합니다.
[edit routing-instances] user@switch# set OF-ri instance-type virtual-switch user@switch# set OF-ri interface ge-1/0/0.0 user@switch# set OF-ri interface ge-1/1/0.0 user@switch# set OF-ri interface xe-0/0/0.0 user@switch# set OF-ri vlans of-bridge vlan-id none
OpenFlow 컨트롤러 IP 주소 및 연결 프로토콜을 구성합니다.
[edit protocols openflow switch OFswitch1] user@switch# set controller address 198.51.100.174 user@switch# set controller protocol tcp port 6633
이 가상 스위치 인스턴스에서 OpenFlow에 참여하는 논리적 인터페이스를 구성합니다.
[edit protocols openflow switch OFswitch1] user@switch# set interfaces ge-1/0/0.0 user@switch# set interfaces ge-1/1/0.0 user@switch# set interfaces xe-0/0/0.0
일치하는 플로우 항목이 없는 패킷에 대한 기본 작업을 구성합니다.
[edit protocols openflow switch OFswitch1] user@switch# set default-action packet-in
OpenFlow traceoptions 구성:
[edit protocols openflow] user@switch# set traceoptions flag all
구성을 커밋합니다.
[edit] user@switch# commit
결과
운영 모드에서 , show configuration protocols openflow
, 명령을 show configuration routing-instances
입력하여 show configuration interfaces
구성 결과를 표시합니다. 출력에 지정된 구성이 표시되지 않으면 이 예제의 지침을 반복하여 구성을 수정하십시오.
user@switch> show configuration interfaces ge-1/0/0 { unit 0 { family ethernet-switching; } } ge-1/1/0 { unit 0 { family ethernet-switching; } } xe-0/0/0 { unit 0 { family ethernet-switching; } }
user@switch> show configuration protocols openflow switch OFswitch1 { default-action { packet-in; } interfaces { ge-1/0/0.0; ge-1/1/0.0; xe-0/0/0.0; } controller { address 198.51.100.174; protocol tcp { port 6633; } } traceoptions { flag all; }
user@switch> show configuration routing-instances OF-ri { instance-type virtual-switch; interface ge-1/0/0.0; interface ge-1/1/0.0; interface xe-0/0/0.0; vlans { of-bridge { vlan-id none; } } }
확인
구성이 올바르게 작동하고 있는지 확인합니다.
OpenFlow Controller 연결 확인
목적
OpenFlow 컨트롤러 연결이 작동 중인지 확인합니다.
작업
show openflow controller
작동 모드 명령을 실행하여 컨트롤러 연결 상태가 up
인지 확인합니다. 가상 스위치 구성에는 컨트롤러가 하나뿐이므로 구성을 커밋한 후 가상 스위치가 자동으로 컨트롤러에 대한 연결을 시작합니다.
user@switch> show openflow controller Openflowd controller information: Controller socket: 11 Controller IP address: 198.51.100.174 Controller protocol: tcp Controller port: 6633 Controller connection state: up Number of connection attempt: 5 Controller role: equal
의미
출력은 컨트롤러에 대한 다른 정보와 함께 OpenFlow 컨트롤러 up
의 연결 상태가 임을 보여줍니다.
OpenFlow 인터페이스 확인
목적
OpenFlow 인터페이스가 작동 중인지 확인합니다.
작업
show openflow interfaces
운영 모드 명령을 실행하고 각 OpenFlow 인터페이스의 상태가 인지 Up
확인합니다.
user@switch> show openflow interfaces Switch name: OFswitch1 Interface Name: ge-1/0/0.0 Interface port number: 41507 Interface Hardware Address: 00:00:5E:00:53:b1 Interface speed: 1Gb Full-duplex Interface Auto-Negotiation: Disabled Interface media type: Fiber Interface state: Up Switch name: OFswitch1 Interface Name: ge-1/1/0.0 Interface port number: 44538 Interface Hardware Address: 00:00:5E:00:53:b2 Interface speed: 1Gb Full-duplex Interface Auto-Negotiation: Disabled Interface media type: Fiber Interface state: Up Switch name: OFswitch1 Interface Name: xe-0/0/0.0 Interface port number: 45549 Interface Hardware Address: 00:00:5E:00:53:b3 Interface speed: 10Gb Full-duplex Interface Auto-Negotiation: Disabled Interface media type: Fiber Interface state: Up
의미
출력은 인터페이스에 대한 다른 정보와 더불어 각 OpenFlow 인터페이스의 Up
상태가 임을 보여줍니다.