Linux tabanlı SDN ve arayüz destekli mikro bilgisayar ile Switch cihazı tasarımı
Linux based SDN and interface supported, microcomputer Switch design
Yazar: SİNAN KARAKAYA
Danışman: DOÇ. DR. BİLAL BABAYİĞİT
Erciyes Üniversitesi / Fen Bilimleri Enstitüsü / Bilgisayar Mühendisliği Ana Bilim Dalı
Derece: Yüksek Lisans, 2019
Konu: Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve Kontrol = Computer Engineering and Computer Science and Control

Özet:
Her geçen gün internete bağlı cihaz sayısı tüm dünyada hiç olmadığı kadar hızlı bir artış göstermektedir. Günümüzde sadece bilgisayar telefon gibi temel cihazlar değil günlük hayatta kullandığımız televizyonlar, lambalar gibi cihazlar dahi internete bağlanmaktadır. IoT (Nesnelerin interneti) kavramı ile bu bağlantı sayısı çok üst noktalara ulaşmıştır. Artan bilgi alışverişine karşılık iletişim hızından beklentide bununla paralel olarak artmıştır. Bu kadar cihazın yüksek hızda internet erişimi ve konfigürasyonu da bu büyümeyle doğru orantılı olarak zorlaşmıştır. Birbiri ile bağlantılı cihazların bu hızda büyümesi ve gelişmesi ağ teknolojilerinde birtakım yenilikler getirmiştir. Bu noktadan yola çıkarak mevcut ağı daha yönetilebilir, dinamik, daha uygun maliyetli bir yapı hedeflenmektedir. Buradan yola çıkarak her cihazı ayrı ayrı konfigürasyon yapmak yerine merkezi yönetilebilir ve programlanabilir bir yapı (Yazılım Tanımlı Ağlar, YTA) sunulmuştur. 
YTA'larda temelde birlikte bulunan ağ kontrol düzlemi ve veri düzlemi birbirinden ayrılmıştır. Bu sayede bir kontrol düzlemi çok fazla sayıda cihazı kontrol edebilir. Bu merkezileştirme sayesinde birçok cihaz üzerinde aynı anda çok hızlı bir şekilde konfigürasyon yapabiliriz.  Ağ kontrol düzlemi bulunduğu ağın işletim sistemi gibi davranır. Diğer cihazlardan aldığı bilgiler ile paketlerin nasıl yönlendirileceği bilgisini veri düzlemine iletmektedir. Veri düzlemi ise kontrol düzleminden aldığı bilgiler doğrultusunda paket iletimi işlemlerini gerçekleştirmektedir. Ağ kontrol düzlemi ve veri katmanı kendi arasında bazı farklı protokoller kullanır. Bu tez çalışmasında kullanılan protokol bunlardan birisi olan openFlow protokolüdür. Ağ kontrol düzlemi ile uygulamalar arasındaki iletişimin bulunduğu kısım güney API ara yüzü olarak adlandırılır. Ağ kontrol düzleminin dışarıdan farklı uygulamalar ile de iletişim halinde bulunmasını sağlayan güney API ara yüzü, standart RESTFUL ile haberleşir. Bu uygulamalara örnek olarak güvenlik duvarı, yük dengeleyici gibi veya kendi geliştirdiğimiz uygulamalarda örnek olabilir. Ağ kontrol düzlemi ile veri düzleminin iletişim kurduğu kısım da kuzey API ara yüzü olarak adlandırılır. Oluşturulan sistemlerde birden fazla da ağ kontrol düzlemi bulunabilir. Bunlarda kendi aralarında batı ara yüzü API'si veya doğu ara yüzü API'si ile iletişimde bulunabilirler. Burada yazılmış açık kaynak kodlu birçok ağ kontrol düzlemi bulunmaktadır. 
Bu tez çalışmasında bu yapının kolayca kurulup kullanılır hale gelebilmesi için bir yapı tasarlandı. Bunun sebebi bu yapıların bulunduğu cihazların maliyetinin fazla olması ve dışarıdan erişimin kısıtlı olması ve başlangıç için uygun olmamalarıdır. Tasarlanan yapının maliyetinin uygun olması için Linux kurulabilen mikro denetleyiciler tercih edildi. Mikro denetleyicilere gerekli olan paketleri otomatik olarak kurup ağ ara yüzlerini tespit eden aynı zamanda bu yapının uzak kontrolcü ile olan bağlantısını gerçekleyen bir yapı tasarlandı. Kullanıcı ara yüzü ile de kolayca erişip değişiklikler yapılabilir şekilde yapılmıştır. 

Anahtar Kelimeler: Yazılım Tabanlı Ağlar, Kontrolcü, Floodlight, Open vSwitch, Virtual Dom, Sunucu

Abstract:
The number of devices connected to the Internet is increasing faster than ever in the world. Nowadays, not only basic devices such as computers and telephones, but also televisions and lamps that we use in daily life are connected to the internet. With the concept of IoT (Internet of Things), this number of connections has reached very high points. In spite of the increasing information exchange, the expectation from the communication speed did not increase in parallel with this. The high-speed internet access and configuration of these devices has become more difficult with this growth. The rapid growth and development of interconnected devices has brought some innovations in network technologies. From this point, it is aimed to have a more manageable, dynamic and cost-effective structure of the existing network. Therefore, instead of configuring each device separately, a centrally manageable and programmable structure (Software Defined Networks, SDN) is provided. In SDN'S, the underlying network control plane and the data plane are essentially separated. In this way, a control plane can control a large number of devices. Thanks to this centralization, we can configure many devices at the same time very quickly. The network control plane acts as the operating system of the network on which it is located. It transmits the information received from other devices to the data plane with information on how to forward the packets. The data plane performs packet transmission operations in accordance with the information received from the control plane. The network control plane and the data layer use some different protocols between itself. The protocol used in this thesis is the openFlow protocol. The part of the communication between the network control plane and the applications is called the southbound API interface. The southbound API interface, which allows the network control plane to communicate with different applications from the outside, communicates with the standard restful. Examples of these applications are firewall, load balancer, or other applications we have developed. The part where the network control plane and the data plane communicate is also called the northbound API interface. The systems can have more than one network control plane. They can communicate with each other via the west interface API or the east interface API. There are many open source network control planes written here.
In this study, a structure is designed in order to make it easy to install and use. This is because the cost of devices with these structures is high and access from outside is limited and unsuitable for start-up. Microcontrollers that can be installed in Linux are preferred for the cost of the designed structure. A structure is designed to automatically install the necessary packets to the microcontrollers and detect the network interfaces, as well as the connection of this structure with the remote controller. The user interface is also made easy to access and make changes.

Keywords : Software Defined Network, Controller, Floodlight, Open vSwitch, Virtual Dom, Server