Hành Động (Action)

Một phần của tài liệu Công nghệ mạng điều khiển bằng phần mềm và ứng dụng trong doanh nghiệp (Trang 46 - 51)

4 Giao Thức OpenFlow

4.8 Hành Động (Action)

Một Switch sẽ khơng u cầu hỗ trợ tồn bộ các loại Action mà chỉ gồm các action được gọi là action yêu cầu bắt buộc (Required action). Khi kết nối tới Controller, Switch sẽ chỉ ra những action tùy chọn (Optional action) mà nó hỗ trợ.

Require Action với Output Actionlà chuyển tiếp gói tin đến một cổng xác định. Open Flow switch hỗ trợ việc chuyển gói tin đến cổng vật lý và cổng ảo được định nghĩa trước. Cổng vật lý được gọi là các cổng chuẩn (Standard port). Các cổng ảo gồm:

- ALL: Gửi gói tin qua tồn bộ các cổng chuẩn mà khơng bao gồm cổng mà gói tin đi vào hoặc những cổng được cấu hình OFPPC_NO_FWD.

- CONTROLLER: Đóng gói và gửi tới controller.

- TABLE: Đưa gói tin đến bảng flow đầu tiên để gói tin có thể được xử lý theo một chu trình Pipeline thơng thường.

- IN_PORT: gửi gói tin ra cổng mà gói tin đi vào. Các action trên đều bắt buộc phải có trong Flow Entry.

Cịn một số tùy chọn Optional action (không bắt buộc) khác của Output action: - LOCAL: Gửi gói tin tới cổng nội bộ của Switch. Các cổng nội bộ (Local Port) cho phép những thực thể từ xa tương tác với Switch qua mang OpenFlow thay vì mạng điều khiển.

47

- NORMAL: Xử lý gói tin theo cách thông thường mà không dùng

OpenFlow.

- FLOOD:gửi gói tin ra tồn bộ các cổng ngoại trừ cổng nó đi vào và những cổng ở trạng thái OFPPS_BLOCKED. Switch cũng sử dụng trường VLAN ID để chọn lựa những cổng thuộc VLAN đó để gửi ra.

Với Switch chỉ hỗ trợ OpenFlow thì khơng hỗ trợ Normal và Flood Port, trong khi các Switch lai thì có thể hỗ trợ các loại cổng trên.

Set-queue (hành động tùy chọn): Đây là hàm dùng để gán giá trị queu-id cho một

gói tin. Khi gói tin được chuyển tiếp ra cổng ra thì nó sẽ xác định hàng đợi tương ứng với cổng đó để gửi gói tin đi. Cách xử lý này giúp cho việc cấu hình QoS.

Drop (hành động bắt buộc): Gói tin sẽ không được chuyển ra cổng mạng, sẽ bị

hủy bỏ.

Group (hành động bắt buộc): xử lý gói tin qua một nhóm xác định.

Push-Tag/Pop-Tag (hành động tùy chọn): Switch có thể đặt hoặc xóa các đánh

dấu (tag) trong trường mào đầu (header) của gói tin. Thứ tự các trường hay tag trong mào đầu của gói tin gồm:

Việc chèn thêm các Tag vào tuân theo thứ tự như hình bên trên. Thông tin được chèn sẽ được đặt vào ngồi cũng phía phải. Khi muốn chèn thêm VLAN. thì nên chèn ngay sau trường Ethernet. Tươngtự như vậy, trường MPLS được chèn sau khi VLAN.

Set-Field (hành động tùy chọn): hiệu chỉnh các giá trị trong trường Header của

49

Hình 12: Các tùy chọn của Set Fields

Khi một action push được thực hiện nó sẽ ngầm định copy các trường sau trong gói tin để ghi vào header của gói tin trước khi gửi đi.

4.9 OpenFlow Channel

OpenFlow Channel là kênh giao tiếp giữa các Switch và Controller. Thơng qua

kênh này Controller cấu hình và quản lý Switch, nhận các sự kiện từ Switch và gửi gói tin tới switch.

Các bản tin OpenFlow được gửi qua OpenFlow Channel được quy định bởi giao thức Open Flow. OpenFlow Channel thường được mã hóa bởi giao thức TLS (Transport

Layer Security) hoặc có thể chạy trực tiếp qua TCP (Transmission Control Protocol). OpenFlow hỗ trợ 3 loại bản tin Controller:

- Bản tin controller-to-switch

- Bản tin dị bộ (asynchronous) - Bản tin đối xứng (Symmetric)

Bản tin Controller to Switch được khởi tạo bởi Controller và được sử dụng để quản lý và kiểm tra trạng thái của Switch. Bản tin dị bộ được khởi tạo bởi Switch và được sử dụng để cập nhật cho Controller biết những sự kiện và thay đổi trong trạng thái của Switch. Còn bản tin đối xứng được khởi tạo bởi hoặc Switch hoặc Controller.

50

Chi tiết các loại bản tin sẽ được trình bày trong mục sau.

4.9.1 Controller-to-Switch:

- Features: Controller có thể yêu cầu các khẳ năng của Switch bằng cách

gửi một Feature Request. Switch sẽ trả lời bằng một bản tin Feature Reply mơ tả khẳ năng của nó. Điều này được thực hiện khi thiết lập OpenFlow channel.

- Conguration: Controller có thể set hoặc tìm kiếm các thơng số cấu hình

trong Switch. Switch sẽ trả lời một yêu cầu tìm kiếm thông số trong Switch.

- Modify-State: bản tin này được gửi bởi Controller để quản lý trạng thái

của Switch. Mục đích chính là để thêm, xóa, cập nhật các Flow hoặc group trong OpenFlow table và thiết lập thuộc tính cho cổng của Switch.

- Read-State: Được sử dụng để thu thập thống kê về hoạt động của Switch.

- Packet-out: Được dùng để gửi gói tin ra một cổng nhất định trên Switch.

- Barrier: Được sử dụng để đảm bảo sự phụ thuộc các bản tin được đáp ứng

hay nhận thơng báo để hồn thành các hoạt động

4.9.2 Asynchronous:

- Packet-in: Được gửi khi gói tin khơng kết hợp với Flow Entry. Hoặc trong

trường hợp những gói tin được chuyển đến Controller.

- Flow-Removed: Khi một Flow Entry được thêm vào bằng Flow Modify

message, sau một thời gian (time out) do khơng được sử dụng thì Switch sẽ gửi

Flow-Removed

- Port-status: Switch sẽ gửi bản tin này khi cấu hình hay trạng thái của một cổng trên nó thay đổi.

- Error: Khi có lỗi xảy ra, Switch sẽ gửi bản tin Error cho Controller.

4.9.3 Symmetric:

51

- Echo: Được gửi bởi Switch hoặc Controller (Echo request), phía cịn lại

cần trả lời (Echo reply). Chúng được sử dụng để đo trễ và bằng thông của kết nối giữa Controller và Switch cũng như để kiểm tra tình trạng cịn hoạt động hay

không.

- Experimenter: Được đặt trước, sẽ dùng cho tương lai.

4.9.4 Quá trình thiết lp kết ni

Switch phải thiết lập kết nối để trao đổi thông tin với Controller theo một địa chỉ IP và cổng (port) được cấu hình trước. Nếu Switch biết địa chỉ IP của Controller, Switch sẽ khởi tạo một kết nối TLS hoặc TCP tới Controller. Dữ liệu trao đến và đi trên OpenFlow channel sẽ khơng đi qua qua trình xử lý đường ống (OpenFlow Pipeline). Do đó Switch cần xác định thơng tin gửi tới mình có phải là dành cho mình hay chuyển qua

kiểm tra trong bảng Flow. Ngồi việc cấu hình tĩnh địa chỉ của Controller trên Switch.

Đặc tả giao thức Open Flow cũng miêu tả giao thức giúp Switch có thể nhận động địa chỉ IP và cổng kết nối của Controller.

Khi một kết nối OpenFlow được thiết lập lần đầu tiên, một đầu phải gửi ngay một bản tin OFPT_HELLO với trường Version được đặt là giá trị version của giao thức OpenFlow lớn nhất mà nó hỗ trợ. Khi nhận được bản tin này, hai bên sẽ tính tốn để sử dụng version của giao thức OpenFlow mà nhỏ hơn.

Nếu quá trình đàm phán về phiên bản version giao thức OpenFlow thành cơng thì

kết nối sẽ được tiếp tục. Nếu khơng thì phía nhận sẽ trả lời bằng một bản tin OFPT_ERROR với trường Type được đặt giá trị OFPET_HELLO_FAILED và trường Code là OFPHFC_COMPATIBLE. Sau kết nối sẽ kết thúc.

Một phần của tài liệu Công nghệ mạng điều khiển bằng phần mềm và ứng dụng trong doanh nghiệp (Trang 46 - 51)

Tải bản đầy đủ (PDF)

(85 trang)