Upload
yi-tseng
View
1.011
Download
2
Embed Size (px)
Citation preview
Ryu SDN-IPTseng Yi
Outline
• 簡介 SDN-IP
• Ryu SDN-IP 架構
• Ryu SDN-IP 運作流程
• ARP proxy
• BGP exchange
• Install routes
• 建置方法
• VM
• 實體部屬
• Ryu SDN-IP 指令
簡介 SDN-IP
• SDN-IP 原先是 ONOS 下的其中一項應用
• 透過 eBGP 與外部網路交換路由資訊
• 透過 iBGP 讓 ONOS 與內部的 BGP Speaker 交換路由資訊
• ONOS 無需與外部 Router 交談,專注於內部網路
• 可擴充多台 BGP Speaker 來處理 eBGP
• 除了 BGP 封包以外,其他的封包皆不經過 Speaker
ONOS 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
Ryu SDN-IP 架構
• 啟動 Ryu SDN-IP 需要:
• ARP proxy app
• eBGP forwarding app
• SDN-IP app
ARP proxy
• 代替 Host 發出 ARP reply 的應用程式
• ARP request 封包皆送至 Controller,由 Controller
查表後送 ARP reply
• 對於內部的 host,外部網路的 mac 皆為geteway(speaker) mac
• 外部與內部 router 的 mac address 時也是透過 ARP
proxy 回覆
BGP 情報交換
• 針對 BGP 封包(TCP port 179)去撰寫一個簡易的shortest path app,讓外部與內部的 speaker 能夠直接使用一組 flow 去交換訊息。
SDN Network
BGP SpeakerExternal
AS
External
AS
External
AS
External
AS
eBGP
eBGPeBGP
eBGP
安裝外部路由規則
• 內部的 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
VM 部屬
• 可透過 Example VM 獲得完整設定資訊與範例
• https://github.com/sdnds-tw/SDN-IP-Example-VM
實體部屬• 放置 SDN-IP 用的 Server
• Ryu 4.1 以上
• network 1.11 以上
• Python 3.x
• 放置 BGP Speaker 用的 Server
• GoBGP
• Quagga
• 至少一台支援 OpenFlow 1.3 的 Switch
實體部屬
• Ryu SDN-IP
• https://github.com/sdnds-tw/Ryu-SDN-IP#install
• 依據環境設定好要連線的 speaker
• 設定好 local as number 以及自身 router id
• 設定 Ryu speaker port
• 設定 SDN 內網 IP prefix(可略)
實體部屬
• Quagga or GoBGP
• 設定內部 speaker (Ryu SDN-IP)
• 設定外部 speaker
• 無需啟動 zebra (Routing 交給 Ryu)
• GoBGP 需另外設定 RIB
實體部屬
• 啟動 Ryu SDN-IP
./bin/sdnip-mgr --sdn-ip-cfg-file ./config.json --observe-links
sdnip.arp_proxy sdnip.fwd_bgp sdnip.sdn_ip
Ryu SDN-IP 指令
• 若有先安裝 Dragon Knight tools,則可以使用 Ryu SDN-IP 指令。
• 啟動時需加入一個 dragon_knight.dk_plugin。
• 啟動後執行 dragon-knight cli
Ryu SDN-IP 指令• sdn-ip:info
• 查看 AS number、Router ID、Speaker port
• sdn-ip:routes
• 查看目前路由資訊
• arp-proxy:table
• 查看目前所記錄的 arp 資訊
• arp-proxy:reload
• 重新整理 arp table
Thanks!