<4D F736F F F696E74202D FBAF4B8F4B9EAC5E728A7F5B8D6B0B6A6D1AE7629A7F3B E BACDBAE65BCD2A6A15D>

Similar documents
幻灯片 1

untitled

IP505SM_manual_cn.doc

文件1

Simulator By SunLingxi 2003

工程师培训

一、选择题

網路安全:理論與實務 第二版

財金資訊-80期.indd

ebook140-8

C6_ppt.PDF

ebook48-8

飞鱼星多WAN防火墙路由器用户手册

MASQUERADE # iptables -t nat -A POSTROUTING -s / o eth0 -j # sysctl net.ipv4.ip_forward=1 # iptables -P FORWARD DROP #

BYOD Http Redirect convergence Client (1) 2008R2 NLB( ) (2) NLB Unicast mode switch flooding (arp ) NLB DNS Redirect 1. Round-Robin DNS DNS IP/DNS Cli

¶C¶L§§¬_™¨ A.PDF

(UTM???U_935_938_955_958_959 V )

untitled

ebook140-9

ebook140-11

Symantec™ Sygate Enterprise Protection 防护代理安装使用指南

Chapter #

AL-M200 Series

IP Access Lists IP Access Lists IP Access Lists

Microsoft PowerPoint - 数据通信-ch1.ppt

WebSphere Studio Application Developer IBM Portal Toolkit... 2/21 1. WebSphere Portal Portal WebSphere Application Server stopserver.bat -configfile..

ext-web-auth-wlc.pdf

Microsoft Word - XN30Chap3.doc

计算机网络概论

安裝 Mininet 前的準備工作 1. 安裝 KVM $ sudo aptitude update $ sudo aptitude install qemu-kvm uml-utilities socat screen $ sudo modprobe kvm_amd $ lsmod grep kv

untitled

第 7 章 下 一 代 网 际 协 议 IPv6 141 足 的 措 施 只 能 是 权 宜 之 计 (3) 路 由 表 膨 胀 早 期 IPv4 的 地 址 结 构 也 造 成 了 路 由 表 的 容 量 过 大 IPv4 地 址 早 期 为 网 络 号 + 主 机 号 结 构, 后 来 引 入

D-link用户手册.doc

第 11 章 互聯網技術 11.1 互聯 網 和 萬 維 網 的 發 展 歷 史 A. 互聯網的發展 互聯網是由 ARPANET 開 始發展的 1969 年 美國國防部高級研究計劃署 (ARPA) 把部分軍事研究所和大 的電腦連接起來 建造了㆒個實驗性的電腦網絡 稱為 ARPANET 並 列 的功能

第 1 章 概 述 1.1 计 算 机 网 络 在 信 息 时 代 中 的 作 用 1.2 计 算 机 网 络 的 发 展 过 程 *1.2.1 分 组 交 换 的 产 生 *1.2.2 因 特 网 时 代 *1.2.3 关 于 因 特 网 的 标 准 化 工 作 计 算 机 网 络 在

穨CAS1042中文手冊.doc

BYOD SDN IT L2 / L3 Channel VLAN ( ) Thin AP SDN L2/L3 QOS ( ) NSX NSX NSX VMware NSX VMware NSX SDN

( CIP) /,. - :, ISBN TP312 CIP ( 2004 ) : ( ) : : : : /16 : 21 : 347 : : : I

IC-900W Wireless Pan & Tilt Wireless Pan & Tilt Remote Control / Night Vision FCC ID:RUJ-LR802UWG

Oracle 4

Data Server_new_.doc

C3_ppt.PDF

TCP/IP TCP/IP OSI IP TCP IP IP TCP/IP TCP/IP

A API Application Programming Interface 见 应 用 程 序 编 程 接 口 ARP Address Resolution Protocol 地 址 解 析 协 议 为 IP 地 址 到 对 应 的 硬 件 地 址 之 间 提 供 动 态 映 射 阿 里 云 内

<4D F736F F F696E74202D20A1B6CFEEC4BFD2BB20B3F5CAB6BCC6CBE3BBFACDF8C2E7A1B7C8CECEF1C8FD20CAECCFA A1A24950D0ADD2E9BACD4950B5D8D6B72E707074>

自由軟體教學平台

EMC® VNX® Series VNX8000™ Block 安装指南

经华名家讲堂

D E 答 案 :C 3. 工 作 站 A 配 置 的 IP 地 址 为 /28. 工 作 站 B 配 置 的 IP 地 址 为 /28. 两 个 工 作 站 之 间 有 直 通 线 连 接, 两 台

IP TCP/IP PC OS µclinux MPEG4 Blackfin DSP MPEG4 IP UDP Winsock I/O DirectShow Filter DirectShow MPEG4 µclinux TCP/IP IP COM, DirectShow I

PL600 IPPBX 用户手册_V2.0_.doc

SERVERIRON ADX

1 公 司 简 介 2 VRRP 原 理 和 应 用 3 新 产 品 和 创 业 计 划 及 赠 书 活 动

第3章

穨CAS1042快速安速說明.doc

GPRS IP MODEM快速安装说明

用 Virt-Manager 製作虛擬機器開啟 Mininet 1. 將設置好的虛擬機器 import step1 開啟 virt-manager 主視窗 $ virt-manager 點選左上角的電腦圖示 Create a new virtual machine, 開啟虛擬機器的製作

Abstract arm linux tool-chain root NET-Start! 2

Windows 2000 Server for T100

KillTest 质量更高 服务更好 学习资料 半年免费更新服务

TCP/IP LAN : : IPv4 NGI, NGN, GENI, AGN, Veno II 2

ebook20-8

第4章网络层_2_.doc

入學考試網上報名指南

9 Internet 10 Internet

1 目 錄 1. 簡 介 一 般 甄 試 程 序 第 一 階 段 的 準 備 第 二 階 段 的 準 備 每 間 學 校 的 面 試 方 式 各 程 序 我 的 做 法 心 得 及 筆 記 結 論..

...1 What?...2 Why?...3 How? ( ) IEEE / 23

Chapter 2

NSC-161

About me 北京上海无锡湖州 openstack 私有云解决方案和实施 openstack 公有云解决方案和实施 openstack / vmware 培训

ch09.PDF

计算机网络

FreeRouter V2 完全手册

目 彔 1. 准 备 工 作 登 彔 设 置 功 能 说 明 实 时 监 控 基 本 控 制 功 能 设 置 画 质 调 节 彔 像 与 抓 拍

M-LAG 技术白皮书

untitled

《计算机网络》实验指导书

UDP 8.2 TCP/IP OSI OSI 3 OSI TCP/IP IP TCP/IP TCP/IP Transport Control Protocol TCP User Datagram Protocol UDP TCP TCP/IP IP TCP TCP/IP TC

OSI OSI 15% 20% OSI OSI ISO International Standard Organization 1984 OSI Open-data System Interface Reference Model OSI OSI OSI OSI ISO Prototype Prot

Microsoft PowerPoint - Lecture7II.ppt

f2.eps

RunPC2_.doc

软件测试(TA07)第一学期考试

Microsoft Word - DIR-615_B2_Manual_1.00_T_.doc

Bus Hound 5

联想天工800R路由器用户手册 V2.0

目 錄 頁 次 政 風 法 令 宣 導 一 行 政 中 立 實 務 探 討 二 收 到 支 付 命 令 不 可 置 之 不 理 3 9 公 務 機 密 維 護 宣 導 一 淺 談 駭 客 攻 擊 14 二 何 不 自 行 設 計 入 侵 防 禦 系 統? 17 安 全 維 護 宣 導 認 識 爆 竹

Microsoft Word - linux命令及建议.doc

RUN_PC連載_10_.doc

Microsoft Word - A doc

<4D F736F F F696E74202D FC2B2B3F85FA44AAB49B0BBB4FABB50B977A8BEA874B2CEC2B2A4B6BB50C0B3A5CE2E707074>

...31 (POTS) Internet VPN VPN VPN ATM ( ) CPE VPN L2TP PPTP ( ) IPSec ( ) VPN (PP-VPNs) MPLS VPN BGP/MPLS VPN RFC2547bis ( ) RFC 2547bis VPN RFC 2547b

11N 无线宽带路由器

投影片 1

1 产 品 简 介 特 性 包 装 产 品 外 观 电 脑 系 统 要 求 硬 件 安 装 软 件 安 装 软 件 操 作 IP

ch_code_infoaccess

ebook71-13

lan03_yen

穨control.PDF

中国计算机软件专业技术资格和水平考试

Transcription:

教育部 資通訊軟體創新人才推升計畫 系統軟體創作跨校資源中心 軟體定義網路與應用 1

單元十 : 軟體定義網路 (SDN) 實驗 參與團隊 : 李詩偉教授 黃仁竑教授 鄭伯炤教授 江為國教授 林柏青教授 2

Open vswitch v2.3.1 Environment 環境 OS: Ubuntu 14.04.1 Server LTS X86_64 Kernel version: 3.13.0-34-generic 預先安裝 apt-get install aptitude aptitude install dh-autoreconf libssl-dev openssl 3

Open vswitch Installation 下載及編譯 wget http://openvswitch.org/releases/openvswitch- 2.3.1.tar.gz tar zxvf openvswitch-2.3.1.tar.gz && cd openvswitch-2.3.1./boot.sh./configure --with-linux=/lib/modules/`uname -r`/build make -j && sudo make install sudo make modules_install sudo modprobe gre sudo modprobe openvswitch sudo modprobe libcrc32c 使用 lsmod grep openvswitch 確認 ovs 正確地掛載起來 4

Open vswitch Installation (cont.) 設定 ovsdb ovsdb-tool create /usr/local/etc/openvswitch/conf.db ovsdb-tool create /usr/local/share/openvswitch/vswitch.ovsschema 建立一次即可, 如果設定有問題的話可以把 conf.db 砍掉重建開啟 ovsdb-server ovsdb-server --remote=punix:/usr/local/var/run/openvswitch/db.sock \ --remote=db:open_vswitch,open_vswitch,manager_options \ --pidfile --detach --log-file cat /usr/local/var/log/openvswitch/ovsdb-server.log 可查到 ovsdb log 開啟 ovs-vsctl ovs-vsctl --no-wait init 開啟 ovs-switchd 功能 ovs-vswitchd --pidfile --detach --log-file 5

Open vswitch Command 新增 Brdige ovs-vsctl add-br [bridge name] ex: ovs-vsctl add-br ovs-br 在 ovs-br 上對應 interface ovs-vsctl add-port [bridge name] [interface name] ex: ovs-vsctl add-port ovs-br eth0 6

Open vswitch Command (cont.) 移除 Bridge ovs-vsctl del-br [bridge name] ex: ovs-vsctl del-br ovs-br 設定 Controller ovs-vsctl set-controller ovs-br tcp:[controller ip]:[port] ex: ovs-vsctl set-controller ovs-br tcp:1.2.3.4:6633 查詢 Controller 設定 ovs-vsctl show 如果有成功連到 controller 則會顯示 is_connected:true 7

Open vswitch Command (cont.) 移除 Controller ovs-vsctl del-controller [bridge name] ex: ovs-vsctl del-controller ovs-br 支援 OpenFlow Version 1.3 1.2 ovs-vsctl set bridge ovs-br protocols=openflow12,openflow13 8

Open vswitch Command (cont.) 新增 flow ovs-ofctl add-flow [bridge name] [match field] actions=[actions] ex: ovs-ofctl add-flow ovs-br priority=0,in_port=1,actions=output:2 刪除 flow ovs-ofctl del-flows [bridge name] ex: ovs-ofctl del-flows ovs-br 查看 flow state ovs-ofctl dump-flows [bridge name] ex: ovs-ofctl dump-flows ovs-br 9

OpenFlow Match Field Field in_port dl_vlan dl_src dl_dst dl_type nw_src nw_dst nw_proto ip_proto tcp_src tcp_dst udp_src udp_dst sctp_src sctp_dst arp_spa arp_tpa Description Matches OpenFlow port port, which may be an OpenFlow port number Matches IEEE 802.1q Virtual LAN tag vlan. Matches an Ethernet source (or destination) address Matches Ethernet protocol type ethertype When dl_type is 0x0800 matches IPv4 source (or destination) address ip matches IP protocol type proto Matches a TCP, UDP, or SCTP source or destination port port Match the source and target IPv4 address 10

Action Description output:port Outputs the packet to OpenFlow port number port. If port is the packet's input port, the packet is not output. group:group Outputs the packet to the OpenFlow group group_id. Group tables _id are only supported in OpenFlow 1.1+. normal Subjects the packet to the device's normal L2/L3 processing. controller Shorthand for controller() or controller(max_len=nbytes), respectively. controller[:n bytes] enqueue(po rt,queue) drop push_vlan: ethertype Actions Enqueues the packet on the specified queue within port port, which must be an OpenFlow port number or keyword (e.g. LOCAL). The number of supported queues depends on the switch; some OpenFlow implementations do not support queuing at all. Discards the packet, so no further processing or forwarding takes place. If a drop action is used, no other actions may be specified. Push a new VLAN tag onto the packet. Ethertype is used as the the Ethertype for the tag. Only ethertype 0x8100 should be used. (0x88a8 which the spec allows isn't supported at the moment.) A priority of zero and the tag of zero are used for the new tag. 11

Actions(cont.) Action Description set_field:value-> Set the value to field field goto_table:table Indicates the next table in the process pipeline. 12

Part I : Without controller Demo Ping HTTP Redirection NAT 13

Question: Step 1. Demo Ping 透過 openflow 協定讓兩端的 host 能夠使用 ICMP 協定進行通訊. ARP reply ARP reply HOST A eth1 Open vswitch eth2 HOST B Step 2. ARP request ICMP reply ARP request ICMP reply HOST A eth1 Open vswitch eth2 HOST B ICMP request ICMP request 14

Demo Ping (Cont.) 建立一個名稱為 br0 的 bridge sudo ovs-vsctl add-br br0 將 port eth1 加入 bridge sudo ovs-vsctl add-port br0 eth1 將 port eth2 加入 bridge sudo ovs-vsctl add-port br0 eth2 透過 show 指令取得 eth1 與 eth2 在 bridge 中的 port number sudo ovs-ofctl -O OpenFlow13 show br0 加入 flow entry. 內容為 port 1 進來的 packet 往 port 2 轉送 sudo ovs-ofctl -O OpenFlow13 add-flow br0 priority=1,in_port=1,actions=output:2 加入 flow entry. 內容為 port 2 進來的 packet 往 port 1 轉送 sudo ovs-ofctl -O OpenFlow13 add-flow br0 priority=1,in_port=2,actions=output:1 查看 flow entry 是否成功寫入 sudo ovs-ofctl -O OpenFlow13 dump-flows br0 15

HTTP Redirect 實驗目的 : 善用 openflow 可以根據需求查看封包內容的特性, 檢查封包是否為 HTTP 的封包, 再根據目的位址作重新導向. 實驗解說 : HTTP server IP:192.168.0.3 16

HTTP Redirect (Cont.) 步驟 1. 先下幾條 flow entry, 只有目的 IP 位址是 server 且使用 TCP/IP 協定與目的 port 為 80 的封包才允許被轉送 sudo ovs-ofctl -O OpenFlow13 add-flow br0 priority=1, dl_type=0x0800, nw_dst=192.168.0.3, ip_proto=6, tcp_dst=80, actions=output:3 步驟 2. 再下幾條 flow entry, 使得 server 能夠回應來自 Host 的請求, 根據目的位址來決定轉送的 port. sudo ovs-ofctl -O OpenFlow13 add-flow br0 priority=1, dl_type=0x0800, nw_dst=192.168.0.1, actions=output:1 sudo ovs-ofctl -O OpenFlow13 add-flow br0 priority=1, dl_type=0x0800, nw_dst=192.168.0.2, actions=output:2 17

NAT 實驗目的 : 透過 NAT 將 Private IP 轉為 Public IP 來連上網路 實驗解說 : Host 192.168.1.1 WAN 18

NAT (Cont.) 步驟 1: 下幾條 flow entry, 先將 ARP 的封包資訊更改為對外 IP 的資訊, 並將反向的 flow entry 也完成 sudo ovs-ofctl -O OpenFlow13 add-flow br0 priority=1, dl_type=0x0806, in_port=1, arp_spa=192.168.1.1 actions= set_field:140.123.1.100-> arp_spa, output:2 sudo ovs-ofctl -O OpenFlow13 add-flow br0 priority=1,ether type=0x0806,in_port=2,arp_tpa=140.123.1.100 actions= set_field:192.168.1.1-> arp_tpa, output:1 步驟 2: 再下幾條 flow entry, 將 IP 封包資訊更改為對外 IP 的資訊, 並將反向的 flow entry 也完成 sudo ovs-ofctl -O OpenFlow13 add-flow br0 priority=1, dl_type=0x0800, in_port=1, nw_src =192.168.1.1 actions= set_field:140.123.1.100-> nw_src, output:2 sudo ovs-ofctl -O OpenFlow13 add-flow br0 priority=1, dl_type=0x0800, in_port=2, nw_src =140.123.1.100 actions= set_field:192.168.1.1-> nw_src, output:1 19

Part II : With controller Demo Ping HTTP Redirection NAT Block specific flow 20

實驗目的 Step 1. Demo Ping 透過 openflow 協定讓兩端的 host 能夠使用 ICMP 協定進行通訊. Controller ARP reply ARP reply HOST A eth1 Open vswitch eth2 HOST B Step 2. ARP request ICMP reply ARP request ICMP reply HOST A eth1 Open vswitch eth2 HOST B ICMP request ICMP request 21

Demo Ping (Cont.) ARP match = parser.ofpmatch(eth_type = 0x0806, arp_tpa = "10.0.0.2", arp_spa = "10.0.0.1") actions = [parser.ofpactionoutput(2)] inst = [parser.ofpinstructionactions(ofproto.ofpit_apply_actions,actions)] self.add_flow(datapath, 0, match, actions, inst) match = parser.ofpmatch(eth_type = 0x0806, arp_tpa = "10.0.0.1", arp_spa = "10.0.0.2") actions = [parser.ofpactionoutput(1)] inst = [parser.ofpinstructionactions(ofproto.ofpit_apply_actions,actions)] self.add_flow(datapath, 0, match, actions, inst) 22

Demo Ping (Cont.) ICMP match = parser.ofpmatch(eth_type = 0x0800, ipv4_src = "10.0.0.1", ipv4_dst = "10.0.0.2") actions = [parser.ofpactionoutput(2)] inst = [parser.ofpinstructionactions(ofproto.ofpit_apply_actions,actions)] self.add_flow(datapath, 0, match, actions, inst) match = parser.ofpmatch(eth_type = 0x0800, ipv4_src = "10.0.0.2", ipv4_dst = "10.0.0.1") actions = [parser.ofpactionoutput(1)] inst = [parser.ofpinstructionactions(ofproto.ofpit_apply_actions,actions)] self.add_flow(datapath, 0, match, actions, inst) 23

HTTP Redirect 實驗目的 : 善用 openflow 可以根據需求查看封包內容的特性, 透過 controller 下達 openflow 的 flow_mod 指令, 檢查封包是否為 HTTP 的封包, 再根據目的位址作重新導向. 實驗解說 : Controller HTTP server IP:192.168.0.3 預期結果 : Host 能夠連上 HTTP server 的網頁 24

HTTP Redirect (Cont.) Request match = parser.ofpmatch(eth_type = 0x0800, ipv4_dst = 192.168.0.3, ip_proto=6,tcp_dst=80") actions = [parser.ofpactionoutput(3)] inst = [parser.ofpinstructionactions(ofproto.ofpit_apply_actions,actions)] self.add_flow(datapath, 0, match, actions, inst) Reply match = parser.ofpmatch(eth_type = 0x0800, ipv4_dst = "192.168.0.1 ) actions = [parser.ofpactionoutput(1)] inst = [parser.ofpinstructionactions(ofproto.ofpit_apply_actions,actions)] self.add_flow(datapath, 0, match, actions, inst) match = parser.ofpmatch(eth_type = 0x0800, ipv4_dst = "192.168.0.2 ) actions = [parser.ofpactionoutput(2)] inst = [parser.ofpinstructionactions(ofproto.ofpit_apply_actions,actions)] self.add_flow(datapath, 0, match, actions, inst) 25

NAT 實驗目的 : 透過 controller 下達 openflow 的 flow_mod 指令, 實現 NAT 將 Private IP 轉為 Public IP 來連上網路的功能. 實驗解說 : Controller Host 192.168.1.1 WAN 預期結果 : Host 能夠透過 private IP 連上外部網路. 26

NAT (Cont.) Send match = parser.ofpmatch(eth_type = 0x0800, ipv4_src = 192.168.1.1 ) actions = [parser.ofpactionsetfield(ipv4_src= 140.123.1.100") parser.ofpactionoutput(2)] inst = [parser.ofpinstructionactions(ofproto.ofpit_apply_actions,actions)] self.add_flow(datapath, 0, match, actions, inst) Receive match = parser.ofpmatch(eth_type = 0x0800, ipv4_dst = 140.123.1.100 ) actions = [parser.ofpactionsetfield(ipv4_dst= 192.168.1.1 ") parser.ofpactionoutput(1)] inst = [parser.ofpinstructionactions(ofproto.ofpit_apply_actions,actions)] self.add_flow(datapath, 0, match, actions, inst) 27

Block 實驗目的 : 現在的網路攻擊有很多種, 就以 DDoS 攻擊為例, 透過大量合法的請求佔用大量網路資源, 以達到癱瘓網路的目的, 此時如果我們有使用 SDN switch 的話,controller 可以透過 openflow 指令定期查看 flow entry 的封包數量, 來阻隔特定大流量攻擊者的封包 實驗解說 : Controller 預期結果 : controller 透過 openflow 的 multi-part message 向 switch 取得 flow table 中所有 flow entry 的封包數量統計值, 再使用 flow_mod 指令下達指定 IP 封包丟棄的 flow. 28

Block (Cont.) 29

Block (Cont.) 30

Block (Cont.) 31

Reference [1]:https://www.facebook.com/paulintoro/posts/1383317425016639?pn ref=story [2]:https://lrs.itsa.org.tw/file.php/587/%E8%BB%9F%E9%AB%94%E5 %AE%9A%E7%BE%A9%E7%B6%B2%E8%B7%AF%E8%88%8 7%E6%87%89%E7%94%A8/%E5%96%AE%E5%85%83%E5%8 D%81- %E7%B6%B2%E8%B7%AF%E5%AF%A6%E9%A9%97.pdf [3]:http://roan.logdown.com/posts/191801-set-openvswitch [4]:http://sdnds.tw/ [5]:http://onlab.us/ [6]:https://wiki.onosproject.org/display/AM/Phil+Huang 05/15/15 32