SDN- Software Defined Network · – Việc tạo kênh được giải quyết bằng ứng dụng...

29
SDN- Software Defined Network

Transcript of SDN- Software Defined Network · – Việc tạo kênh được giải quyết bằng ứng dụng...

SDN-SoftwareDefinedNetwork

Các“mặtphẳng”trongmạng

•  Dataplane:processinganddeliveryofpacketswithlocalforwardingstate–  Forwardingstate+packetheaderàforwardingdecision–  Filtering,buffering,scheduling

•  Controlplane:computingtheforwardingstateinrouters–  Determineshowandwherepacketsareforwarded–  Routing,trafficengineering,failuredetection/recovery,...

•  Managementplane:configuringandtuningthenetwork–  Trafficengineering,ACLconfig,deviceprovisioning,...

DataplanData Plane Streaming algorithms on packets

–  Matching on some header bits –  Perform some actions

Example: IP Forwarding

host host host

LAN 1

... host host host

LAN 2

...

router router routerWAN WAN

1.2.3.4 1.2.3.7 1.2.3.156 5.6.7.8 5.6.7.9

1.2.3.0/245.6.7.0/24

forwarding table 11

Controlplan

•  Computepathsthepacketswillfollow– Populateforwardingtables– Traditionally,adistributedprotocol

•  Example:Link-staterouting(OSPF,IS-IS)– Floodtheentiretopologytoallnodes– Eachnodecomputesshortestpaths– Dijkstra’salgorithm

Controlplan

1 2

3

“If , send to 3”

Data

“If a packet is going to B, then send it to output 3”

1.  Figure out which routers and links are present. 2.  Run Dijkstra’s algorithm to find shortest paths.

14

ManagementplanManagement Plane

Traffic Engineering: setting the weights –  Inversely proportional to link capacity? –  Proportional to propagation delay? –  Network-wide optimization based on traffic?

32

2

1

13

1

4

5

3

3

15

TimescalesTimescales

Data Control Management

Time-scale

Packet (nsec)

Event (10 msec to sec)

Human (min to hours)

Location Linecard hardware

Router software

Humans or scripts

9

DataplanvsControlplanData and Control Planes

Switching Fabric

Processor

Line card

Line card

Line card

Line card

Line card

Line card

data plane

control plane

10

SDNNetwork

•  Anetworkinwhichthecontrolplaneisphysicallyseparatefromthedataplane.– Controlplanofconventionalroutersaremoveduptocentralizedcontrolprograms

•  Asingle(logicallycentralized)controlplanecontrolsseveralforwardingdevices

SDNnetwork

ControlProgramA ControlProgramB

NetworkOS

SoJwareDefinedNetwork(SDN)

PacketForwarding

PacketForwarding

PacketForwarding

PacketForwarding

PacketForwarding

26

ApplicationofSDN:Networkvirtualisation

•  Consideramulti-tenantdatacenter– Wanttoalloweachtenanttospecifyvirtualtopology–  Thisdefinestheirindividualpoliciesandrequirements

•  Datacenter’snetworkhypervisorcompilesthesevirtualtopologiesintosetofswitchconfigurations–  Takes1000sofindividualtenantvirtualtopologies–  Computesconfigurationstoimplementallsimultaneously

•  Thisiswhatpeoplearepayingmoneyfor....–  EnabledbySDN sabilitytovirtualizethenetwork

Controlprogram

•  Controlprogramoperatesonviewofnetwork–Input:globalnetworkview(graph/database)–Output:configurationofeachnetworkdevice

•  Controlprogramisnotadistributedsystem– Abstractionhidesdetailsofdistributedstate

NetworkOS(onController)

•  NetworkOS:distributedsystemthatcreatesaconsistent,up-to-datenetworkview– Runsonservers(controllers)inthenetwork– NOX,ONIX,Floodlight,Trema,OpenDaylight,HyperFlow,Kandoo,Beehive,Beacon,Maestro,...+more

•  Usesforwardingabstractionto:– Getstateinformationfromforwardingelements– Givecontroldirectivestoforwardingelements

OpenFlowbasics

OpenFlowProtocol

Data Path (Hardware)

Control Path OpenFlowEthernet Switch

NetworkOS

Control Program A Control Program B

OpenFlow Basics

35

OpenFlowbasics•  Meansofcommunicationbetweencontrollerandswitch

•  OpenFlowenablesnetworkcontrollerstodeterminethepathofnetworkpacketsacrossanetworkofswitches

•  OpenFlowallowsremoteadministrationofalayer3switch'spacketforwardingtables,byadding,modifyingandremovingpacketmatchingrulesandactions.

•  TheOpenFlowusesTCPforencapsulatingOpenflowpackets.ControllersshouldlistenonTCPport6653forswitchesthatwanttosetupaconnection.

OpenFlowbasics

Control Program A Control Program B

Network OS

OpenFlow Basics

Packet Forwarding

Packet Forwarding

Packet Forwarding

Flow Table(s)

�If header = p, send to port 4�

�If header = ?, send to me�

�If header = q, overwrite header with r, add header s, and send to ports 5,6�

36

Primitives<Match,Action>Primitives <Match, Action>

Match arbitrary bits in headers:

–  Match on any header, or new header –  Allows any flow granularity

Action

–  Forward to port(s), drop, send to controller –  Overwrite header with mask, push or pop –  Forward at specific bit-rate

Header Data

Match:1000x01xx0101001x

OpenFlowRulesOpenFlow Rules

Exploit the flow table in switches, routers, and chipsets

Rule(exact&wildcard) AcNon StaNsNcs

Rule(exact&wildcard) AcNon StaNsNcs

Rule(exact&wildcard) AcNon StaNsNcs

Rule(exact&wildcard) DefaultAcNon StaNsNcs

Flow1.

Flow2.

Flow3.

FlowN.

Testbed

•  Networkemulationtools– Mininet– Openvswitch

•  SDNController(NetworkOS)– Opendaylight,Floodlight,POX,ONOS….

Bàitập

•  CàiđặtthửnghiệmmạngSDN– SửdụngMininetmôphỏngmạngcácswitch– Sửdụng1controller:Opendaylight,Floodlight,ONOS,POX

– Xâydựngứngdụngngườidùngchophépđịnhtuyếndữliệugiữa2điểmnguồnđíchtheomộtđườngđicótiêuchínhấtđịnhdonhómquyđịnh.

GhépnốiSDN-IP•  VìsaophảighépnốiSDNvàIP?•  MạngIPsửdụngcácrouterđểđịnhtuyến.Cácroutertrao

đổithôngtinđịnhtuyếnđểxâydựngbảngđịnhtuyến.•  MạngSDNkhôngsửdụngroutermàđịnhtuyếntậptrung

từController.•  Dữliệucầnđượcvậnchuyểntừ1núttrọngmạngIPsang1

nút(host)trongmạngSDN.•  Khôngcósựtraođổithôngtinđịnhtuyếngiữa2mạng•  Câuhỏi:

–  Làmthếnào1núttrongmạngIPbiếtlàmthếnàođểđiđến1đíchtrongmạngSDNvàngượclại?

–  LàmthếnàođitừmạngIPnàysangmạngIPkia“qua”mạngSDN

GhépnốiSDN-IP

MạngSDN

Ýtưởngghépnối

•  CầntraođổithôngtinreachabilitygiữavùngSDNvàvùngIP–  Nhờđó1mạngIPbiếtđếnsựtồntạicủacáchosttrongmạngSDNvàbiếtlàmthếnàođiđếncáchostnày

•  Giảipháp:–  CoimạngSDNlà1AS,có1routerBGP–  SửdụngBGPđểtraođổithôngtinđịnhtuyếnvớicácmạngIPbênngoài.

– MỗimạngIPbênngoàicầncórouterBGPriêng•  LàmsaođểrouterBGPcủaSDNthiếtlậpđượcthôngtinđịnhtuyếnchoAStươngứngmạngSDN

Ýtưởngghépnối

•  ControllercủaSDNcầncókhảnăngxâydựngđượcbảngđịnhtuyếnBGPchoAScủaSDN

•  TraođổibảngđịnhtuyếnnàyvớirouterBGPcủaSDN.

•  RouterBGPcủaSDNtraođổivớicácrouterBGPcủacácmạngIPbênngoài.

•  ONOSlà1controllercungcấpkhảnăngnày.

GiảiphápSDN-IPvớiONOS

Khungnhìntừmặtphẳngđiềukhiển

57

Trong mạng SDN có một hoặc nhiều BGP speaker, các BGP speaker không

có yêu cầu gì đặc biệt miễn là chúng hỗ trợ cả hai phiên ngang hàng eBGP và iBGP.

Chúng ta có thể sử dụng phần mềm nguồn mở BIRD hoặc Quagga để triển khai.

Các BGP speaker ngang hàng trong mạng SDN có hai đường kết nối: Một là kết nối

với mặt phằng dữ liệu mạng SDN, nó sẽ ngang hàng với các BGP router bên ngoài,

kết nối sử dụng eBGP. Hai là mỗi BGP speaker kết nối với mỗi instance SDP-IP sử

dụng iBGP do đó nó sẽ chuyển tiếp các tuyến đường đến các instance SDN-IP.

Yêu cầu mỗi SDN-IP có thể nhận tất cả các tuyến đường được quảng bá đến

mạng SDN qua iBGP.

Hinh 22: Cấu hình mạng SDN-IP với BGP.

Hình trên cho thấy các đường màu đen là các phiên eBGP giữa BGP speaker

bên trong và BGP router bên ngoài, đường màu đỏ là các phiên iBGP giữa các BGP

speaker và các instance SDN-IP.

Mỗi router BGP bên ngoài ngang hàng với một hoặc nhiều speaker BGP

trong mạng SDN. Hiện tại SDN-IP không hỗ trợ nhiều bước nhảy BGP cho các

phiên ngang hàng bên ngoài, vì vậy mỗi phiên ngang hàng phải được thiết lập trong

cùng một mạng con, các phiên ngang hàng khác nhau có thể nằm trong các mạng

con khác nhau. Để ngang hàng với các router bên ngoài, mạng SDN cần một địa chỉ

IP cho mỗi phiên ngang hàng, các địa chỉ trên cạnh mạng SDP được gán đến các

BGP speaker để chúng có thể ngang hàng, không yêu cầu mỗi BGP speaker bên

trong ngang hàng với mỗi router bên ngoài vì các speaker BGP có thể phân phối lại

các tuyến đường giữa chúng sử dụng iBGP. Tuy nhiên để dự phòng, một phần tử

ngang hàng bên ngoài sẽ có các phiên ngang hàng với nhiều BGP speaker bên trong

mạng SDN.

GiảiphápSDN-IPvớiONOS

•  Bêncạnhviệctraođổibảngđịnhtuyến,cầnthiếtlậpcácđườngtruyềndữliệugiữaIPvàSDN,giữaIP-SDN-IP

•  ĐườngtruyềndữliệugiữaIPvàSDN–  RouterIPmạngngoàinốivàoswitchcủamạngSDN–  TạocáckênhtruyềngiữamỗirouterIPvàmỗimạngIPbêntrongmạngSDNbằngcác“intents”

–  ViệctạokênhđượcgiảiquyếtbằngứngdụngSDN-IPcủaONOS.•  Cầncungcấpchoứngdụngmộtsốthôngtincấuhìnhkênh:cổngswitchnốivớirouterIP,địachỉmạngtrongSDN

GiảiphápSDN-IPvớiONOS

•  ĐườngtruyềndữliệugiữaIP-SDN-IP– MạngSDNđóngvaitròtransit– RouterIP2bênnốivàoswitch.– Cầnthiếtlậpmộtkênhtruyềngiữacổngswitchnối2routers.

– ViệctạokênhđượcgiảiquyếtbằngứngdụngSDN-IPcủaONOS.•  Cầncungcấpchoứngdụngmộtsốthôngtincấuhìnhkênh:cổngswitchnốivớicácrouterIP

Bàitập

•  GhépnốimạngSDNvàmạngIPsửdụngONOS•  Yêucầu:– pingđượcgiữamạngSDNvàMạngIP– pingđượcgiữa2mạngIPthôngquamạngSDN.

•  Chỉdẫnchitiếtthiếtlậpcấuhình:https://wiki.onosproject.org/display/ONOS/SDN-IP