Contrail SDN controller bao gồm 3 thành phần chính (Hình 2.7).
Analytics node chịu trách nhiệm thu thập dữ liệu từ các phần tử mạng và mô tả chúng vào một form thích hợp để lớp ứng dụng có thể sử dụng. Analytics node giao tiếp với các ứng dụng sử dụng giao diện phía bắc REST API, với các analytics node khác sử dụng các kỹ thuật đồng bộ, với các phần tử khác trong control và configuration node bằng XML (Hình 2.8).
Chức năng Analytics node:
o Trao đổi bản tin Sandesh (Sandesh là một giao thức dựa trên XML-based để báo cáo thông tin phân tích) với các thành phần trong control node và configuration node thu thập thông tin phân tích.
o NoSQL database lưu trữ thông tin đó.
o Các quy tắc tự động thu thập trạng thái hoạt động khi xảy ra các sự kiện cụ thể.
Configuration node chịu trách nhiệm biên dịch mô hình dữ liệu mức cao thành mức thấp hơn phù hợp đểtương tác với các phần tử mạng. Configuration node giao tiếp với hệ thống điều phối thông qua giao diện REST. Với các Configuration node khác bằng kỹ thuật đồng bộ phân phối. Và với control node thông qua IF-MAP (Hình 2.9).
Hình 2.9 - Configuration Node Hình 2.8 - Analytics Node
Configuration node cung cấp dịch vụ Discovery cho khách hàng sử dụng có thể định vị các nhà cung cấp dịch vụ. Ví dụ khi vRouter agent trong compute node kết nối với một control node. Nó sử dụng dịch vụ Discovery để khám phá địa chỉ IP của các control node. Máy khách có thể dử dụng để cấu hình cục bộ DHCP hoặc SDN để xác định vị trí của service discovery server.
Configuration node bao gồm các thành phần:
o REST API server.
o Một bus bản tin Redis.
o Cassandra database.
o Schema transformer.
o Server IF-MAP.
o Zookeeper.
Control node chịu trách nhiệm truyền đạt các dữ liệu trạng thái mức thấp đó tới các phần tử mạng và kết nối với các hệ thống khác một cách nhất quán.
Control node giao tiếp với nhiều node khác nhau (Hình 2.10):
Hình 2.10 – Control Node
o Nhận trạng thái cấu hình từ configuration node sử dụng giao thức if-map
o Trao đổi định tuyến với các control node khác bằng giao thức iBGP
o Trao đổi định tuyến với các vRouter agent trong compute node bằng giao thức XMPP
o Trao đổi định tuyến với gateway node sử dụng BGP và cũng có thể gửi trạng thái cấu hình sử dụng NETCONF