SDN

## **SDN сүлжээний үүсэл** 
 Програмчлах боломжтой сүлжээний санаа нь маш олон жилийн туршид судлагдсаар байгаа бөгөөд хамгийн сүүлийн оновчтой санаа нь SDN юм.	 Уламжлалт буюу IP сүлжээний асуудлуудыг шийдэн гарч ирж буй SDN  технологийг олон улсын сүлжээний компаниуд судалж, хэрэглээндээ нэвтрүүлж эхлээд байна. Энэ нь сүлжээний технологийн чиг хандлага энэ технологи руу шилжиж байгааг харуулж байна.  
## **SDN сүлжээ гэж юу вэ?** 
Software-Defined network буюу програм хангамжаар тодорхойлогдсон сүлжээ гэдэг нь  сүлжээний төхөөрөмжүүдийн өгөгдөл дамжуулах болон удирлагын үе шатыг тусгаарлан зохион байгуулсан нээлттэй стандартад суурилсан сүлжээ юм.
SDN сүлжээ нь өндөр түвшний програмчлалын хэл болон интерфейсүүд ашиглан том хэмжээний сүлжээг автоматаар болон динамикаар удирдахыг сүлжээний администраторт зөвшөөрдөг фреймворк юм.
SDN сүлжээ нь шууд програмчлах боломжтой, хурдан ажиллагаатай, төвлөрсөн удирдлагатай, тохиргоо програмчлагдсан, үйлдвэрлэгч болон борлуулагчийн төхөөрөмжүүд өөр хоорондоо харшихгүй давуу талуудтай. Мөн төвлөрсөн удирдлагатай учраас сүлжээ хариуцагч болон сүлжээний инженерийн ажлыг хөнгөвчлж, ажиллагааны хувьд ч илүү хурдан, найдвартай болсноороо илүү давуу талтай сүлжээ болж байна.
### **SDN сүлжээний бүтэц** 
SDN технологи Станфордын их сургууль дээр хийгдэж байсан судалгааны ажлаас үндэслэн бий болсон.  

### SDN технологи нь 4 үндсэн тулгуур баганатай: 
1.	Удирдлагын үе шат болон өгөгдөл дамжуулах үе шатыг салгасан. Сүлжээний төхөөрөмжөөс удирдлагын үе шатыг ( програм хангамж ) салгаснаар сүлжээний төхөөрөмж энгийн нэг өгөгдөл дамжуулах төхөөрөмж болсон.

2.	Нэгэн ижил эх үүсгэвэрийн хаяг болон хүлээн авах хаяг бүхий пакетуудын  дарааллыг нэг флов ( урсгал ) гэдэг. Өгөгдөл дамжуулах төхөөрөмжүүд фловын эхний пакетийг дамжуулсан төлөвийн мэдээллийг хадгалж авдаг ба энэ төлөвийн дагуу дараагийн пакетуудыг боловсруулдаг. Өмнө нь өгөгдлийг дамжуулах үйл ажиллагаа нь зөвхөн хүрэх хаягууд дээр тулгуурлаж хийгддэг байсан бол одоо пакетын олон талбарууд дээр үндэслэгдэж дамжуулалт хийгддэг болсон. Тиймээс сүлжээний төхөөрөмжүүдийг рутер, свитч, галт хана гэж ялгах шаардлагагүй болсон.

3.	Удирдлагын үе шат нь сүлжээний үйлдлийн систем ( Network Operating System ) буюу SDN контроллёр луу шилжсэн. Сүлжээний үйлдлийн систем нь өгөгдөл дамжуулах төхөөрөмжүүдийг нэгдсэн логик удирдлагатай болгож байгаа сервер дээр суусан програм хангамж юм. Үүний зорилго нь уламжлалт сүлжээний үйлдлийн системтэй ижил юм.

4.	Өгөгдөл дамжуулах төхөөрөмжтэй шууд холбогддог. NOS дээр ажиллаж байгаа програм хангамжаар сүлжээ програмчлагддаг.

### SDN сүлжээ үндсэн 3-н түвшингээс тогтдог: 
  Аппликейшн түвшин
Хойш чиглэлтэй холболт 

Аппликейшн түвшин болон удирдлагын түвшинг холбодог. Энэ холболтоор хөгжүүлэгч болон борлуулагч нар сүлжээний менежмент, хяналт ба ачаалал тэнцвэржүүлэлтийн аппликейшний хамаарлыг хөгжүүлж хэрэгжүүлдэг. Мөн жава, питон, c ++ гэх мэт өндөр түвшний хэл ашиглан сүлжээний менежмент, хяналт ба ачаалал тэнцвэржүүлэлтийн аппликейшний хамаарлыг хялбархан өөрчилж болдог давуу талтай

Урагш чиглэлтэй холболт

Удирдлагын түвшин болон дэд бүтцийн түвшин хоорондох холболт юм. Сүлжээнд траффик анализ болон хяналт хийдэг OpenFlow, NetFlow гэх мэт протоколуудыг ашигладаг.
  Удирдлагын түвшин 
Энэ түвшин нь дэд бүтцийн түвшин буюу сүлжээний төхөөрөмжүүдийг удирдах бөгөөд сүлжээний бүх тохиргоо болон бодлогын удирдлагыг зохицуулдаг төвлөрсөн нэг буюу хэд хэдэн контроллёроос бүрддэг. 

**Контроллёр:** Маш ойлгомжтойгоор хэлбэл, контроллёр нь сүлжээний тархи юм. Өөрөөр хэлбэл SDN сүлжээний бүх тохиргоо энд хийгддэг. Контроллёр нь өгөгдөл дамжуулах төхөөрөмжүүдийг удирдаж чигийг заадаг. Маш олон төрлийн контроллёрууд байдаг. Жишээлбэл: NOX/POX, Floodlight, Pyreic гэх мэт. Эдгээр нь дэмжих буюу таних програмын хэл, ажиллагаа гэх мэт шинж чанаруудаасаа ялгаатай байдаг. Ерөнхийдөө контроллёрын гол зорилго нь сүлжээний төхөөрөмжид урсгалын дүрэм нэмэх юм. 
Өгөгдлийг пакет замчлалын мэдээллийн бааз ( RIB ) гэж нэрлэгддэг бөгөөд энд сүлжээний топологи хадгалагддаг. Замчлалын мэдээллийн баазыг ихэнхдээ сүлжээн дэх контроллёрууд бусад тохиолдолд хоорондоо мэдээлэл солилцох замаар байнга хадгалагдаж байдаг. Флов хүснэгтийн оруултууд нь ихэвчлэн дамжуулах мэдээллийн бааз ( FIB ) гэж нэрлэгддэг багаад энэ нь ихэвчлэн жирийн төхөөрөмжийн удирдлагын болон өгөгдлийн үе шат хооронд толин тусгал хэлбэрээр байдаг.

  Дэд бүтцийн түвшин 
Утастай болон утасгүй сувгаар холбогдсон програмчлагдах боломжтой өгөгдөл дамжуулах төхөөрөмжүүдээс ( switch ) тогтсон хэсэг. Свич нь зөвхөн опенплов дэмждэг юмуу эсвэл уламжлалт свич шиг ажиллагаатайн дээр нэмэлтээр опенплов протокол дэмждэг хосолсон загвартай ч байж болно. Виртуал свич нь свич тест аппликейшн болон SDN сүлжээний үйлчилгээнүүдийг дэмжиж ажиллах боломжтой програм  хангамжаар ч хэрэгжинэ.

## **SDN сүлжээний ажиллагаа** 
Нэгт, сүлжээний дундын төхөөрөмжүүд болох рутер болон свитчүүд дээр өгөгдөл дамжуулах үе шат болон удирдлагын үе шат нэгдмэл байснаас удирдлагын үе шатыг салгасан. 

Хоёрдугаарт, сүлжээний дундын төхөөрөмжүүд нь энгийн нэг өгөгдлийг дамжуулдаг төхөөрөмж болж хувирах ба удирдлагын үе шат нь тусгайлан програмчлагдсан контроллёр төхөөрөмж дээр хийгдэнэ. Тиймээс дамжуулах төхөөрөмж болон SDN контроллёрын хооронд маш сайн тодорхойлогдсон программын интерфейс байх ёстой гэсэн үг юм. Контроллёр нь сайтар тодорхойлогдсон хэрэглээний программын интерфейс  ( Application programming interface-API )-р өгөгдөл дамжуулах үе шатын элементүүдийн төлвийг шууд удирддаг. API-н хамгийн түгээмэл жишээ бол Опенплов юм. 

Опенплов интерфейс нь өгөгдөл дамжуулах төхөөрөмжүүд нь багцыг боловсруулах дүрмүүдийг агуулсан нэг ба түүнээс олон флов хүснэгттэй байдаг. Дүрмийн дагуу пакетыг боловсруулана гэдэг нь пакетыг хаях, дамжуулах, өөрчлөх гэх мэт үйлдлийг хийнэ. Контроллёрын програм хангамж дээр ямар дүрмүүд байгаагаас хамаараад сүлжээний өгөгдөл дамжуулах төхөөрөмж рутер, свич, галт хана ч юмуу эсвэл өөр төхөөрөмжийн үүргээр ажиллаж чадна. 

### SDN сүлжээ нь хоёр аргаар флов буюу урсгалыг зохицуулдаг. 
*	Реактив арга 	 
Эхний пакет свичд ирэх үед, свич пакетийг хэрхэн удирдахаа мэддэггүй.Тиймээс свич пакетийг контроллёр руу илгээдэг. 

Контроллёр офенплов протокол ашиглан свичийн флов хүснэгт рүү фловыг оруулах үүрэгтэй.

Энэ аргын гол дутагдалтай тал нь свич нь контроллёрын шийдвэрээс бүрэн хамааралтай учраас свич контроллёртой хоболт тасарвал пакетыг удирдаж болохгүй болох юм.

*	Проактив арга
Контроллёр нь  свич тус бүрийн флов хүснэгтэнд флов оруулгыг урьдаас тооцоолдог. Энэ арга нь reactive аргаас илүү давуу талтай бөгөөд хэрвээ свич контроллёртой холболт тасарвал траффик алдагдахгүй.

Уламжлалт аргаас илүү SDN сүлжээний гол давуу тал нь бодит сүлжээнд шинэ аппликейшнийг хурдан тестлэх ,  хөгжүүлэх,  ажиллагааны болон  капиталын зардлыг хэмнэх, мөн свич тус бүрийн менежментийг төвлөрүүлсэнд оршино.

### SDN сүлжээгээр дамжигдах мессежүүд 
Ямар  ч сүлжээний хувьд сүлжээний төхөөрөмжүүд танилт хийхийн тулд хоорондоо мессеж  солилцдог. 
*	Контроллёр свич хоорондын мессеж ( controller-to-switch )
Handshake болон багцын гаралт (packet-out) төрлийн мессежүүд нь флов оролтыг суулгадаг. Мөн свичийн тохиргоо, тохиргооны үүрэг, асинхрон мессежийн тохиргоог засварлах гэх мэт маш олон тохиргоог удирддаг.
Энэ мессежүүд нь свич болон контроллёр хооронд TCP холболт үүсгэн контроллёроос свич рүү дамжуулагддаг.
*	Асинхрон мессеж ( asynchronous )
Энэ мессежүүд нь урсгал алдагдах, устгагдах, порт статус болон алдааны мессеж гэсэн шалтгаантайгаар контроллёр луу илгээгддэг багцын оролтын (packet-in) төрлийн мессеж.
*	Симметрик мессеж ( symmetric )
Энэ төрлийн мессежүүд нь hello, echo request, echo replay, болон experimenter гэх мэт handshake хийх зорилготойгоор ашиглагддаг. Энэ мессеж нь свич болон контроллёрын альнаас нь ч хүсэлт илгээгүй байхад илгээгддэг.	
### ОпенПлов протокол 
Удирдлагын түвшин болон дэд бүтцийн түвшин хоорондох холболтоор дамжуулагдах бүх багцууд энэ протоколыг ашиглан дамжуулалт хийгддэг. Опенплов протоколын хамгийн сүүлийн хувилбар нь SSL дэмждэг. Энэ протокол нь анх Станфордын их сургуулиас дэвшигдсэн бөгөөд одоо ONF байгууллага үргэлжлүүлэн стандартчилж байна. 

Опенплов свич
Нэг групп хүснэгт болон хэд хэдэн флов хүснэгтээс бүрддэг. Эдгээр нь пакетийг хянаж дамжуулалтыг гүйцэтгэдэг. Свич нь контроллёроор удирдагддаг бөгөөд флов хүснэгт нь олон тооны фловоос тогтдог.

### Флов хүснэгт 
	Олон тооны багцуудыг хаашаа, хэрхэн дамжуулагдахыг тодорхойлсон олон тооны  дүрмийн цуглуулга. Эх үүсгэврээс багц орж ирэхэд хэрхэн дамжуулахыг тооцож, өөрт байгаа дүрмийн дагуу захирагдаж ажилладаг хүснэгт юм.	

#### **Floodlight контроллёр** 
	Энэ контроллёр нь маш түгээмэл юм. Жава дээр суурилсан enterprise-class, апаче лицензтэй опенплов протоколыг дэмждэг нээлттэй SDN контроллёр юм.

	Floodlight- ийг хөгжүүлэгчид нээлттэй нийгэмлэгийн боловсруулсан байна. Апачегийн лицензтэй учир хэрэглэгч дурын зориулалтаар хэрэглэх боломжтой. Big Switch сүлжээ компаний хяналтын бүтээгдэхүүний гол төлөөлөл бөгөөд идэвхтэй мэргэжлийн хөгжүүлэгчид нь олон нийтэд туршилт, сайжирсан байна.

	Floodlight нь опенплов стандартыг дэмждэг свич, рутер, виртуал свичүүд хамтран ажиллах боломжтойгоор загварчлагдсан.

	Уламжлалт сүлжээний загварт дундын төхөөрөмж бүр дээр өгөгдлийг дамжуулахад шаардлагатай удирдлагын мэдээллийг цуглуулан, боловсруулах үе шат болон өгөгдлийг дамжуулах үйл ажиллагаа хамтдаа хийгдэж байгаа бол SDN сүлжээнд удирдлагын мэдээллийг цуглуулах үйл ажиллагаа контроллёр төхөөрөмж дээр хийгдэнэ, контроллёроос ирсэн удирдлагын мэдээллийн дагуу дундын төхөөрөмжүүд өгөгдлийг дамжуулах үүрэгтэй.

	Уламжлалт сүлжээнд дундын төхөөрөмжүүд тус тусдаа үүргээ гүйцэтгэж тооцоолол хийн, маш олон шат дамжлага шалгалтын эцэст өгөгдөл хүрэх цэгтээ хүрдэг. Жишээлбэл: Рутер өөрөө замчлах, свич орж ирсэн багцуудыг хаагуур оруулж хаагуур гаргаж, дараагийн төхөөрөмж дээр очиж мөн л тооцоолол хийгдсээр дамжуулагддаг.

## **Уламжлалт сүлжээний асуудал:** 
*	Хугацааны хоцрогдол

*	Хязгаарлагдмал зурвасын өргөн

*	Удирдан зохион байгуулахад төвөгтэй

*	Сүлжээний загварчлал албан ёсны загварчлалд тулгуурлаагүй 

*	Бүх талаараа хувьсан өөрчлөгдөж байгаа

## **SDN сүлжээний давуу тал:** 
*	Боловсруулалтын хоцролтыг багасгаснаар хурдан ажиллагаатай болсон

*	Сүлжээг шууд програмчлах боломжтой

*	Тохиргоо програмчлагдсан

*	Төвлөрсөн нэг удирдлагатай

*	Харилцагч болон сүлжээний инженерийн ажлыг хөнгөвчилсөн

*	Ажиллагаа илүү найдвартай

*	Үйлдвэрлэгч болон борлуулагчийн төхөөрөмжүүд өөр хоорондоо харшихгүй

*	Нээлттэй стандарт

Ангилал:Сүлжээний архитектур