ryu sdn-ip

18
Ryu SDN-IP Tseng Yi

Upload: yi-tseng

Post on 24-Jan-2018

1.010 views

Category:

Technology


2 download

TRANSCRIPT

Page 1: Ryu SDN-IP

Ryu SDN-IPTseng Yi

Page 2: Ryu SDN-IP

Outline

• 簡介 SDN-IP

• Ryu SDN-IP 架構

• Ryu SDN-IP 運作流程

• ARP proxy

• BGP exchange

• Install routes

• 建置方法

• VM

• 實體部屬

• Ryu SDN-IP 指令

Page 3: Ryu SDN-IP

簡介 SDN-IP

• SDN-IP 原先是 ONOS 下的其中一項應用

• 透過 eBGP 與外部網路交換路由資訊

• 透過 iBGP 讓 ONOS 與內部的 BGP Speaker 交換路由資訊

• ONOS 無需與外部 Router 交談,專注於內部網路

• 可擴充多台 BGP Speaker 來處理 eBGP

• 除了 BGP 封包以外,其他的封包皆不經過 Speaker

Page 4: Ryu SDN-IP

ONOS SDN-IP 架構

Page 5: Ryu SDN-IP

Ryu SDN-IP 架構

Ryu Controller

SDN Network

BGP Speaker

Ryu SDN-IP App

External

AS

External

AS

External

AS

External

AS

iBGP

management

eBGP

Page 6: Ryu SDN-IP

Ryu SDN-IP 架構

• 啟動 Ryu SDN-IP 需要:

• ARP proxy app

• eBGP forwarding app

• SDN-IP app

Page 7: Ryu SDN-IP

ARP proxy

• 代替 Host 發出 ARP reply 的應用程式

• ARP request 封包皆送至 Controller,由 Controller

查表後送 ARP reply

• 對於內部的 host,外部網路的 mac 皆為geteway(speaker) mac

• 外部與內部 router 的 mac address 時也是透過 ARP

proxy 回覆

Page 8: Ryu SDN-IP

BGP 情報交換

• 針對 BGP 封包(TCP port 179)去撰寫一個簡易的shortest path app,讓外部與內部的 speaker 能夠直接使用一組 flow 去交換訊息。

SDN Network

BGP SpeakerExternal

AS

External

AS

External

AS

External

AS

eBGP

eBGPeBGP

eBGP

Page 9: Ryu SDN-IP

安裝外部路由規則

• 內部的 BGP speaker 與外部 BGP Speaker 交換完路由資訊後,依據 IP prefix 以及 next hop 資訊去設定網路路由。

BGP

Speaker

External

AS

SDN Network

Ryu SDN-IP App

eBGP iBGP

IP prefix & next hop

Flow modify

Ryu BGP Speaker

Page 10: Ryu SDN-IP

VM 部屬

• 可透過 Example VM 獲得完整設定資訊與範例

• https://github.com/sdnds-tw/SDN-IP-Example-VM

Page 11: Ryu SDN-IP

實體部屬• 放置 SDN-IP 用的 Server

• Ryu 4.1 以上

• network 1.11 以上

• Python 3.x

• 放置 BGP Speaker 用的 Server

• GoBGP

• Quagga

• 至少一台支援 OpenFlow 1.3 的 Switch

Page 12: Ryu SDN-IP

實體部屬

• Ryu SDN-IP

• https://github.com/sdnds-tw/Ryu-SDN-IP#install

• 依據環境設定好要連線的 speaker

• 設定好 local as number 以及自身 router id

• 設定 Ryu speaker port

• 設定 SDN 內網 IP prefix(可略)

Page 13: Ryu SDN-IP

實體部屬

• Quagga or GoBGP

• 設定內部 speaker (Ryu SDN-IP)

• 設定外部 speaker

• 無需啟動 zebra (Routing 交給 Ryu)

• GoBGP 需另外設定 RIB

Page 14: Ryu SDN-IP

實體部屬

• 啟動 Ryu SDN-IP

./bin/sdnip-mgr --sdn-ip-cfg-file ./config.json --observe-links

sdnip.arp_proxy sdnip.fwd_bgp sdnip.sdn_ip

Page 15: Ryu SDN-IP

Ryu SDN-IP 指令

• 若有先安裝 Dragon Knight tools,則可以使用 Ryu SDN-IP 指令。

• 啟動時需加入一個 dragon_knight.dk_plugin。

• 啟動後執行 dragon-knight cli

Page 16: Ryu SDN-IP

Ryu SDN-IP 指令• sdn-ip:info

• 查看 AS number、Router ID、Speaker port

• sdn-ip:routes

• 查看目前路由資訊

• arp-proxy:table

• 查看目前所記錄的 arp 資訊

• arp-proxy:reload

• 重新整理 arp table

Page 17: Ryu SDN-IP
Page 18: Ryu SDN-IP

Thanks!