SlideShare uma empresa Scribd logo
1 de 18
Ryu SDN-IP
Tseng 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 Speaker
External
AS
External
AS
External
AS
External
AS
eBGP
eBGP
eBGP
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!

Mais conteúdo relacionado

Mais procurados

智能广域网及开源项目更新
智能广域网及开源项目更新智能广域网及开源项目更新
智能广域网及开源项目更新Bertrand Duvivier
 
Openstack neutron 原理详解
Openstack neutron 原理详解Openstack neutron 原理详解
Openstack neutron 原理详解Yong Luo
 
Nodejs & NAE
Nodejs & NAENodejs & NAE
Nodejs & NAEq3boy
 
BLE室內定位技術實現龍珠雷達裝置
BLE室內定位技術實現龍珠雷達裝置BLE室內定位技術實現龍珠雷達裝置
BLE室內定位技術實現龍珠雷達裝置艾鍗科技
 
AI/ML-driven closed-loop automation using ONAP - Kate Hsuan
AI/ML-driven closed-loop automation using ONAP - Kate HsuanAI/ML-driven closed-loop automation using ONAP - Kate Hsuan
AI/ML-driven closed-loop automation using ONAP - Kate HsuanHanLing Shen
 
Train.IO 【第六期-OpenStack 二三事】
Train.IO 【第六期-OpenStack 二三事】Train.IO 【第六期-OpenStack 二三事】
Train.IO 【第六期-OpenStack 二三事】inwin stack
 
Mininet Learning Guide(Mininet 学习指南)
Mininet Learning Guide(Mininet 学习指南)Mininet Learning Guide(Mininet 学习指南)
Mininet Learning Guide(Mininet 学习指南)呈 李
 
SACC2015 ”互联网+“任重而道远-白金&高春辉
SACC2015 ”互联网+“任重而道远-白金&高春辉SACC2015 ”互联网+“任重而道远-白金&高春辉
SACC2015 ”互联网+“任重而道远-白金&高春辉ptcracker
 
I pv6 windows 實做課程_0705
I pv6 windows 實做課程_0705I pv6 windows 實做課程_0705
I pv6 windows 實做課程_0705宏義 張
 
Opening Remarks - Pulsar Summit Asia 2021
Opening Remarks - Pulsar Summit Asia 2021Opening Remarks - Pulsar Summit Asia 2021
Opening Remarks - Pulsar Summit Asia 2021StreamNative
 
TechCCU Workshop OpenFlow Introduction
TechCCU Workshop OpenFlow IntroductionTechCCU Workshop OpenFlow Introduction
TechCCU Workshop OpenFlow Introductionicemango
 
Free rtos简介
Free rtos简介Free rtos简介
Free rtos简介Bei Li
 
OpenStack Introduction Ecosystem
OpenStack Introduction EcosystemOpenStack Introduction Ecosystem
OpenStack Introduction EcosystemNUTC, imac
 
Lambda's CNC @FabLab 10/27/14
Lambda's CNC @FabLab 10/27/14Lambda's CNC @FabLab 10/27/14
Lambda's CNC @FabLab 10/27/14宗凡 楊
 
Cncf k8s Ingress Example-03
Cncf k8s Ingress Example-03Cncf k8s Ingress Example-03
Cncf k8s Ingress Example-03Erhwen Kuo
 

Mais procurados (20)

IPV6
IPV6IPV6
IPV6
 
智能广域网及开源项目更新
智能广域网及开源项目更新智能广域网及开源项目更新
智能广域网及开源项目更新
 
Openstack neutron 原理详解
Openstack neutron 原理详解Openstack neutron 原理详解
Openstack neutron 原理详解
 
Nodejs & NAE
Nodejs & NAENodejs & NAE
Nodejs & NAE
 
BLE室內定位技術實現龍珠雷達裝置
BLE室內定位技術實現龍珠雷達裝置BLE室內定位技術實現龍珠雷達裝置
BLE室內定位技術實現龍珠雷達裝置
 
Sdn 101-2
Sdn 101-2Sdn 101-2
Sdn 101-2
 
AI/ML-driven closed-loop automation using ONAP - Kate Hsuan
AI/ML-driven closed-loop automation using ONAP - Kate HsuanAI/ML-driven closed-loop automation using ONAP - Kate Hsuan
AI/ML-driven closed-loop automation using ONAP - Kate Hsuan
 
Train.IO 【第六期-OpenStack 二三事】
Train.IO 【第六期-OpenStack 二三事】Train.IO 【第六期-OpenStack 二三事】
Train.IO 【第六期-OpenStack 二三事】
 
Mininet Learning Guide(Mininet 学习指南)
Mininet Learning Guide(Mininet 学习指南)Mininet Learning Guide(Mininet 学习指南)
Mininet Learning Guide(Mininet 学习指南)
 
金盾集訓 II
金盾集訓 II金盾集訓 II
金盾集訓 II
 
SACC2015 ”互联网+“任重而道远-白金&高春辉
SACC2015 ”互联网+“任重而道远-白金&高春辉SACC2015 ”互联网+“任重而道远-白金&高春辉
SACC2015 ”互联网+“任重而道远-白金&高春辉
 
I pv6 windows 實做課程_0705
I pv6 windows 實做課程_0705I pv6 windows 實做課程_0705
I pv6 windows 實做課程_0705
 
Opening Remarks - Pulsar Summit Asia 2021
Opening Remarks - Pulsar Summit Asia 2021Opening Remarks - Pulsar Summit Asia 2021
Opening Remarks - Pulsar Summit Asia 2021
 
TechCCU Workshop OpenFlow Introduction
TechCCU Workshop OpenFlow IntroductionTechCCU Workshop OpenFlow Introduction
TechCCU Workshop OpenFlow Introduction
 
Openstack的研究与实践
Openstack的研究与实践Openstack的研究与实践
Openstack的研究与实践
 
Free rtos简介
Free rtos简介Free rtos简介
Free rtos简介
 
OpenStack Introduction Ecosystem
OpenStack Introduction EcosystemOpenStack Introduction Ecosystem
OpenStack Introduction Ecosystem
 
Lambda's CNC @FabLab 10/27/14
Lambda's CNC @FabLab 10/27/14Lambda's CNC @FabLab 10/27/14
Lambda's CNC @FabLab 10/27/14
 
專題-2017Linux Driver 實現
專題-2017Linux Driver 實現專題-2017Linux Driver 實現
專題-2017Linux Driver 實現
 
Cncf k8s Ingress Example-03
Cncf k8s Ingress Example-03Cncf k8s Ingress Example-03
Cncf k8s Ingress Example-03
 

Destaque

2015 COSCUP SDN Workshop -- SDN Quick Start
2015 COSCUP SDN Workshop -- SDN Quick Start2015 COSCUP SDN Workshop -- SDN Quick Start
2015 COSCUP SDN Workshop -- SDN Quick StartYi Tseng
 
ONOS intent introduction
ONOS intent introductionONOS intent introduction
ONOS intent introductionYi Tseng
 
Ryu dynamic loader
Ryu dynamic loaderRyu dynamic loader
Ryu dynamic loaderYi Tseng
 
2016 COSCUP SDN Introduction
2016 COSCUP SDN Introduction2016 COSCUP SDN Introduction
2016 COSCUP SDN IntroductionYi Tseng
 
2016 COSCUP ONOS
2016 COSCUP ONOS2016 COSCUP ONOS
2016 COSCUP ONOSYi Tseng
 
2016 NCTU P4 Workshop
2016 NCTU P4 Workshop2016 NCTU P4 Workshop
2016 NCTU P4 WorkshopYi Tseng
 
Global SDN-IP Deployment at NCTU, Taiwan
Global SDN-IP Deployment at NCTU, TaiwanGlobal SDN-IP Deployment at NCTU, Taiwan
Global SDN-IP Deployment at NCTU, TaiwanFei Ji Siao
 
JS introduction
JS introductionJS introduction
JS introductionYi Tseng
 
RouteFlow & IXPs
RouteFlow & IXPsRouteFlow & IXPs
RouteFlow & IXPsnvirters
 
Ryu SDN Framework
Ryu SDN FrameworkRyu SDN Framework
Ryu SDN FrameworkAPNIC
 
Developing SDN apps in Ryu
Developing SDN apps in RyuDeveloping SDN apps in Ryu
Developing SDN apps in RyuChe Wei Lin
 
Introduction to Beryllium release of OpenDaylight
Introduction to Beryllium release of OpenDaylightIntroduction to Beryllium release of OpenDaylight
Introduction to Beryllium release of OpenDaylightSDN Hub
 
Docker初识
Docker初识Docker初识
Docker初识hubugui
 
Sdnds tw-meetup-2
Sdnds tw-meetup-2Sdnds tw-meetup-2
Sdnds tw-meetup-2Fei Ji Siao
 
A 30-minute Introduction to NETCONF and YANG
A 30-minute Introduction to NETCONF and YANGA 30-minute Introduction to NETCONF and YANG
A 30-minute Introduction to NETCONF and YANGTail-f Systems
 

Destaque (17)

2015 COSCUP SDN Workshop -- SDN Quick Start
2015 COSCUP SDN Workshop -- SDN Quick Start2015 COSCUP SDN Workshop -- SDN Quick Start
2015 COSCUP SDN Workshop -- SDN Quick Start
 
ONOS intent introduction
ONOS intent introductionONOS intent introduction
ONOS intent introduction
 
Ryu dynamic loader
Ryu dynamic loaderRyu dynamic loader
Ryu dynamic loader
 
2016 COSCUP SDN Introduction
2016 COSCUP SDN Introduction2016 COSCUP SDN Introduction
2016 COSCUP SDN Introduction
 
2016 COSCUP ONOS
2016 COSCUP ONOS2016 COSCUP ONOS
2016 COSCUP ONOS
 
2016 NCTU P4 Workshop
2016 NCTU P4 Workshop2016 NCTU P4 Workshop
2016 NCTU P4 Workshop
 
Global SDN-IP Deployment at NCTU, Taiwan
Global SDN-IP Deployment at NCTU, TaiwanGlobal SDN-IP Deployment at NCTU, Taiwan
Global SDN-IP Deployment at NCTU, Taiwan
 
NSCTF
NSCTFNSCTF
NSCTF
 
JS introduction
JS introductionJS introduction
JS introduction
 
RouteFlow & IXPs
RouteFlow & IXPsRouteFlow & IXPs
RouteFlow & IXPs
 
Ryu SDN Framework
Ryu SDN FrameworkRyu SDN Framework
Ryu SDN Framework
 
Developing SDN apps in Ryu
Developing SDN apps in RyuDeveloping SDN apps in Ryu
Developing SDN apps in Ryu
 
Introduction to Beryllium release of OpenDaylight
Introduction to Beryllium release of OpenDaylightIntroduction to Beryllium release of OpenDaylight
Introduction to Beryllium release of OpenDaylight
 
Docker初识
Docker初识Docker初识
Docker初识
 
從線上售票看作業系統設計議題
從線上售票看作業系統設計議題從線上售票看作業系統設計議題
從線上售票看作業系統設計議題
 
Sdnds tw-meetup-2
Sdnds tw-meetup-2Sdnds tw-meetup-2
Sdnds tw-meetup-2
 
A 30-minute Introduction to NETCONF and YANG
A 30-minute Introduction to NETCONF and YANGA 30-minute Introduction to NETCONF and YANG
A 30-minute Introduction to NETCONF and YANG
 

Semelhante a Ryu SDN-IP

使用 eBPF 代替 iptables 加速服务网格-刘齐均Kebe.pdf
使用 eBPF 代替 iptables 加速服务网格-刘齐均Kebe.pdf使用 eBPF 代替 iptables 加速服务网格-刘齐均Kebe.pdf
使用 eBPF 代替 iptables 加速服务网格-刘齐均Kebe.pdfroolling stone
 
SITCON 2021 想上網?大展 l3 路由魔法吧!
SITCON 2021 想上網?大展 l3 路由魔法吧!SITCON 2021 想上網?大展 l3 路由魔法吧!
SITCON 2021 想上網?大展 l3 路由魔法吧!Tsung-Yi Yu
 
Cisco路由协议高度总结
Cisco路由协议高度总结Cisco路由协议高度总结
Cisco路由协议高度总结blackbird_ly
 
Lvs在大规模网络环境下的应用pukong
Lvs在大规模网络环境下的应用pukongLvs在大规模网络环境下的应用pukong
Lvs在大规模网络环境下的应用pukongMichael Zhang
 
[1]投影片 futurewad樹莓派研習會 141120
[1]投影片 futurewad樹莓派研習會 141120[1]投影片 futurewad樹莓派研習會 141120
[1]投影片 futurewad樹莓派研習會 141120CAVEDU Education
 
從軟體開發角度
談 Docker 的應用
從軟體開發角度
談 Docker 的應用從軟體開發角度
談 Docker 的應用
從軟體開發角度
談 Docker 的應用謝 宗穎
 
LINE Messaging API with LinkIt 7697
LINE Messaging API with LinkIt 7697 LINE Messaging API with LinkIt 7697
LINE Messaging API with LinkIt 7697 CAVEDU Education
 
Vic weekly learning_20160504
Vic weekly learning_20160504Vic weekly learning_20160504
Vic weekly learning_20160504LearningTech
 
專利侵權及損害賠償
專利侵權及損害賠償專利侵權及損害賠償
專利侵權及損害賠償Shu-Yi Lin
 
探索 ISTIO 新型 DATA PLANE 架構 AMBIENT MESH - GOLANG TAIWAN GATHERING #77 X CNTUG
探索 ISTIO 新型 DATA PLANE 架構 AMBIENT MESH - GOLANG TAIWAN GATHERING #77 X CNTUG探索 ISTIO 新型 DATA PLANE 架構 AMBIENT MESH - GOLANG TAIWAN GATHERING #77 X CNTUG
探索 ISTIO 新型 DATA PLANE 架構 AMBIENT MESH - GOLANG TAIWAN GATHERING #77 X CNTUGYingSiang Geng
 
课题二:Node.js那些事儿
课题二:Node.js那些事儿课题二:Node.js那些事儿
课题二:Node.js那些事儿Liu Allen
 
A brief introduction to Vagrant – 原來 VirtualBox 可以這樣玩
A brief introduction to Vagrant – 原來 VirtualBox 可以這樣玩A brief introduction to Vagrant – 原來 VirtualBox 可以這樣玩
A brief introduction to Vagrant – 原來 VirtualBox 可以這樣玩Wen-Tien Chang
 
141118 Raspberry Pi 電鈴工作坊@松山文創園區
141118 Raspberry Pi 電鈴工作坊@松山文創園區141118 Raspberry Pi 電鈴工作坊@松山文創園區
141118 Raspberry Pi 電鈴工作坊@松山文創園區CAVEDU Education
 
[2020 .NET Conf] 企業Azure DevOps Service 實際應用架構與秘辛
[2020 .NET Conf] 企業Azure DevOps Service 實際應用架構與秘辛[2020 .NET Conf] 企業Azure DevOps Service 實際應用架構與秘辛
[2020 .NET Conf] 企業Azure DevOps Service 實際應用架構與秘辛Edward Kuo
 
Ch5 network basic(2013 ncu-nos_nm)
Ch5   network basic(2013 ncu-nos_nm)Ch5   network basic(2013 ncu-nos_nm)
Ch5 network basic(2013 ncu-nos_nm)Kir Chou
 
該怎麼樣(認真的)部署你的 Python Web 應用程式?
該怎麼樣(認真的)部署你的 Python Web 應用程式?該怎麼樣(認真的)部署你的 Python Web 應用程式?
該怎麼樣(認真的)部署你的 Python Web 應用程式?Andy Dai
 
Gops2016 云端基于Docker的微服务与持续交付实践
Gops2016 云端基于Docker的微服务与持续交付实践Gops2016 云端基于Docker的微服务与持续交付实践
Gops2016 云端基于Docker的微服务与持续交付实践Li Yi
 

Semelhante a Ryu SDN-IP (20)

使用 eBPF 代替 iptables 加速服务网格-刘齐均Kebe.pdf
使用 eBPF 代替 iptables 加速服务网格-刘齐均Kebe.pdf使用 eBPF 代替 iptables 加速服务网格-刘齐均Kebe.pdf
使用 eBPF 代替 iptables 加速服务网格-刘齐均Kebe.pdf
 
SITCON 2021 想上網?大展 l3 路由魔法吧!
SITCON 2021 想上網?大展 l3 路由魔法吧!SITCON 2021 想上網?大展 l3 路由魔法吧!
SITCON 2021 想上網?大展 l3 路由魔法吧!
 
Cisco路由协议高度总结
Cisco路由协议高度总结Cisco路由协议高度总结
Cisco路由协议高度总结
 
Lvs在大规模网络环境下的应用pukong
Lvs在大规模网络环境下的应用pukongLvs在大规模网络环境下的应用pukong
Lvs在大规模网络环境下的应用pukong
 
[1]投影片 futurewad樹莓派研習會 141120
[1]投影片 futurewad樹莓派研習會 141120[1]投影片 futurewad樹莓派研習會 141120
[1]投影片 futurewad樹莓派研習會 141120
 
2021/06/07 CSST
2021/06/07 CSST2021/06/07 CSST
2021/06/07 CSST
 
從軟體開發角度
談 Docker 的應用
從軟體開發角度
談 Docker 的應用從軟體開發角度
談 Docker 的應用
從軟體開發角度
談 Docker 的應用
 
LINE Messaging API with LinkIt 7697
LINE Messaging API with LinkIt 7697 LINE Messaging API with LinkIt 7697
LINE Messaging API with LinkIt 7697
 
Vic weekly learning_20160504
Vic weekly learning_20160504Vic weekly learning_20160504
Vic weekly learning_20160504
 
專利侵權及損害賠償
專利侵權及損害賠償專利侵權及損害賠償
專利侵權及損害賠償
 
探索 ISTIO 新型 DATA PLANE 架構 AMBIENT MESH - GOLANG TAIWAN GATHERING #77 X CNTUG
探索 ISTIO 新型 DATA PLANE 架構 AMBIENT MESH - GOLANG TAIWAN GATHERING #77 X CNTUG探索 ISTIO 新型 DATA PLANE 架構 AMBIENT MESH - GOLANG TAIWAN GATHERING #77 X CNTUG
探索 ISTIO 新型 DATA PLANE 架構 AMBIENT MESH - GOLANG TAIWAN GATHERING #77 X CNTUG
 
Cnc fablab
Cnc   fablabCnc   fablab
Cnc fablab
 
课题二:Node.js那些事儿
课题二:Node.js那些事儿课题二:Node.js那些事儿
课题二:Node.js那些事儿
 
A brief introduction to Vagrant – 原來 VirtualBox 可以這樣玩
A brief introduction to Vagrant – 原來 VirtualBox 可以這樣玩A brief introduction to Vagrant – 原來 VirtualBox 可以這樣玩
A brief introduction to Vagrant – 原來 VirtualBox 可以這樣玩
 
141118 Raspberry Pi 電鈴工作坊@松山文創園區
141118 Raspberry Pi 電鈴工作坊@松山文創園區141118 Raspberry Pi 電鈴工作坊@松山文創園區
141118 Raspberry Pi 電鈴工作坊@松山文創園區
 
[2020 .NET Conf] 企業Azure DevOps Service 實際應用架構與秘辛
[2020 .NET Conf] 企業Azure DevOps Service 實際應用架構與秘辛[2020 .NET Conf] 企業Azure DevOps Service 實際應用架構與秘辛
[2020 .NET Conf] 企業Azure DevOps Service 實際應用架構與秘辛
 
20110607 IPv6
20110607 IPv620110607 IPv6
20110607 IPv6
 
Ch5 network basic(2013 ncu-nos_nm)
Ch5   network basic(2013 ncu-nos_nm)Ch5   network basic(2013 ncu-nos_nm)
Ch5 network basic(2013 ncu-nos_nm)
 
該怎麼樣(認真的)部署你的 Python Web 應用程式?
該怎麼樣(認真的)部署你的 Python Web 應用程式?該怎麼樣(認真的)部署你的 Python Web 應用程式?
該怎麼樣(認真的)部署你的 Python Web 應用程式?
 
Gops2016 云端基于Docker的微服务与持续交付实践
Gops2016 云端基于Docker的微服务与持续交付实践Gops2016 云端基于Docker的微服务与持续交付实践
Gops2016 云端基于Docker的微服务与持续交付实践
 

Ryu SDN-IP

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