You are on page 1of 13

CÂU 1: Xây dựng 1 mạng SDN đơn giản bao gồm: Bộ điều

khiển, 4 host, 2 switch

• Mở trình duyệt Mininet, đăng nhập mininet với login: mininet và


password: mininet
• Nhập câu lệnh pwd dùng để in ra đường dẫn đến thư mục làm việc
hiện tại
• Nhập câu lênh cd mininet để đăng nhập vào vào thư mục mininet
• Nhập câu lệnh cd custom để vào thư mục custom trong thư mục
mininet
• Nhập tiếp nano topo-2host-2sw.py để mở tệp

• Trong tệp topo-2host-2sw.py ta bắt đầu chỉnh sửa theo đề bài. Với
cách làm này ta rút ngắn được thời gian gõ câu lệnh.
• Thêm 1 host với câu lệnh <tên host> = self.addHost( ‘ ‘)
• Thêm 1 switch với câu lệnh <tên switch> = self.addSwitch(‘ ’)
• Thiết lập đường truyền với self.addLink( , )

• Tiếp theo với tổ hợp phím Ctrl+X ta lưu file với tên
chuyende.py

• Ta sử dụng lệnh
sudo mn --custom ~/mininet/custom/chuyende.py --topo
mytopo –mac –switch ovsk –controller remote
để chạy tệp chuyende.py để tạo mạng SDN
• Tệp chạy thành công và xuất ra màn hình 1 bộ điều khiển, 4 host,
2switch

• Kiểm tra xem mạng có hoạt động không với các câu lệnh
o Net Liệt kê các interfaces có trong nodes
o Nodes: Danh sách các nodes
o Links Liệt kê link
o Dump Liệt kê thông số các nodes
Sau các lệnh trên, ta thấy hệ thống hoạt động bình thường. Vậy là đã
tạo xong 1 mạng SDN đơn giản với 1 bộ điều khiển,4 host và 2 switch

Bảng luồng chưa có 1 entry nào vì chưa khởi động 1 bộ điều khiển nào

Câu 2: Kiểm tra hoạt động thực hiện các cơ chế tạo
luồng giữa các host, ý nghĩa nội dụng Flowtable
• Ping kiểm tra từ host 1 sang host 3 ta thấy không có kết nối giữa 2
host

• Tạo 2 luồng từ host1 sang host3 và host1 sang host2 bằng các câu
lệnh trên

• Ping kiểm tra từ host 1 sang host 3 và từ host 1 sang host 2 ta


thấy đã có kết nối từ host 1 sang host 3 và từ host 1 sang host 2
• Kiểm tra bảng luồng ta thấy đã có từ host 1 sang host 3 (switch 1 :
port1-port2, switch 2: port 1-port2), từ host 1 sang host 2(switch
1: port1-port3)
KẾT LUẬN Ý NGHĨA CỦA BẢNG LUỒNG
• Flowtable được xem như bảng định tuyến giữa các host với nhau
thông qua các port. Dựa vào các thông số như địa chỉ
MAC,IP,Vlan tag, .....

CÂU 3 : Phân tích các bản tin giao thức khi khởi động
mạng,ping và tạo luồng

• Dùng lệnh ifconfig để kiểm tra ip của eth0


• Địa chỉ ip của eth0 192.168.120.132 Submask 255.255.255.0

• Sử dụng phần mềm điều khiển từ xa SSH là PuTTY


• Nhập ip của eth0 ở tab Basic option với số port là 22

• Thiết lập các thông số ở tab X11 như trong hình và chọn Xming làm
phần mềm giả lập mạng ảo
• Sau khi chạy thành công ta thiết lập được 1 mạng điều khiển từ xa

• Dùng lệnh sudo wireshark & để mở wireshark kiểm tra gói tin.
• Tạo mạng với các Topologies theo đề bài
sudo mn --custom ~/mininet/custom/chuyende.py --topo
mytopo
• Ta tạo được 1 mạng SDN bằng trình điều khiển từ xa

• Ta ping kiểm tra giữa host 1 và host 3 để kiểm tra mạng có hoạt
động
• Liên kết giữa host 1 và host 3 bình thường
• Sau khi mở wireshark ta thấy được các bản tin khởi tạo mạng

• Đây là 1 bản tin hello- kiểm tra các thông số như port,ip,lenght,....
dùng để thực hiện thỏa thuận phiên bản giao thức OpenFlow giữa 2
thiết bị.Trong bản tin này, vùng version là phiên bản cao nhất của giao
thức OpenFlow mà bên gửi có thể hỗ trợ.Bên nhận bản tin Hello này
sẽ so sánh vùng version này với phiên bản của nó và chọn phiên bản
thấp hơn giữa 2 giá trị này.Vùng xid dùng nhận diện giao dịch có giá
trị 5353738
Sau thủ tục bắt tay tạo kết nối (dùng bản tin HELLO). Việc đầu tiên bộ điều

khiển thực hiện là gởi một bản tin OFPT_FEATURES_REQUEST để lấy được
Datapath ID và các đặc tính của chuyển mạch. Chuyển mạch sẽ đáp ứng lại
với một bản tin OFPT_FEATURES_ REPLY với vùng datapath_id = 2 và một số
thông tin về khả năng của chuyển mạch : số lượng gói cực đại chuyển mạch
có thể đệm khi gởi các gói tới bộ điều khiển dùng các bản tin packet_in là
256 (n-buffer) , số lượng bảng chuyển mạch có thể hỗ trợ là 254 (n_tables),
thông tin các cổng của chuyển mạch (of_port_desc list), các hoạt động
chuyển mạch có thể hỗ trợ (actions)

Bản tin reply

• Bản tin OFPT_SET_CONFIG do bộ điều khiển gởi đến chuyển mạch để


thiết lập chế độ hoạt động của chuyển mạch
• Type = 9 cho biết đây là bản tin OFPT_SET_CONFIG.
• Xid : số nhận diện giao dịch
• Flags = 0 (OFPT_FRAG_NORMAL) : chỉ thị bộ chuyển mạch xử lý các
phân đoạn của gói IP một cách bình thường, có nghĩa là nó nên cố
gắng chuyển tiếp các phân đoạn này đi qua các bảng OpenFlow
• Miss_send_len = 128 : số lượng byte của mỗi gói mà đường ống
OpenFlow gởi đến bộ điều khiển khi nó không sử dụng hoạt động xuất
đến cổng luận lý của bộ điều khiển, ví dụ khi gởi một gói với giá trị TTL
không hợp lệ.

PACKET IN VÀ PACKET OUT

Thực hiện lệnh ping từ h1 đến h3: h1 ping h3

Trên wireshark ta sẽ bắt được một số bản tin :

Packet_in : từ bộ chuyển mạch (cổng TCP 59302) đến bộ điều khiển (cổng
TCP 6653) , lý do chuyển bản tin này đến bộ điều khiển và vì nó không so
trùng với bất kỳ mục nào trong bảng luồng, cổng vào port 1, tổng chiều dài
là 42 và vùng data chứa frame ethernet (đóng gói bản tin của giao thức
ICMP - lệnh ping)
Packet_out : gởi từ bộ điều khiển (6653) đến chuyển mạch (59302), có
buffer_id giống buffer_id của gói packet_in (256), danh sách action chỉ
gồm một hoạt động xuất ra port 65531

BẢN TIN OFPT FLOW MOD

Bản tin thay đổi luồng OFPT_FLOW_MOD với vùng command =0 có


tác dụng điều chuyển mạch thêm một luồng mới. Luồng mới này với vùng
match cho thấy mục luồng này chỉ điều khiển chuyển tiếp lưu lượng đi từ
port 3 đến port 1, với idle_timeout = 60 và hard_timeout = 0 thì luồng mới
này sẽ hết hạn sau 60’ không có lưu lượng, với flags= 0 thì chuyển mạch phải
gởi bản tin loại bỏ luồng về bộ điều khiển khi đến thời hạn
idle-timeout (60’) hoặc luồng bị xóa, với buffer_id=263 thì chuyển mạch phải
lấy gói tương ứng trong bản tin packet_in (có buffer_id=263) ra khỏi bộ đệm
và xử lý nó đi qua toàn bộ đường ống OpenFlow sau khi luồng này được đưa
vào bản luồng.

You might also like