
Part2 အနေနဲ့ ပြောပြချင်တဲ့ အကြောင်းအရာက Lab practice လေး လုပ်ဖို့ လိုအပ်တဲ့ Mininet အကြောင်း ကို ပြောပြပေးမှာ ဖြစ်ပါတယ်။ သီအိုရီကြီးပဲ ဖတ်နေရတာထက် Lab လေးနဲ့ လုပ်ကြည့် စမ်းကြည့်မှာ ပိုပြီး မှတ်မိတာ။
https://github.com/mininet/mininet/releases ကနေပြီးတော့ ကိုယ့်စက်နဲ့ ကိုက်မယ့် (32bit or 64bit) VM ဒေါင်းပြီး Virtual machine မှာ import လုပ်လိုက်ပါ။
Run ပြီးရင် ဝင်ရမယ့် login username & password သည် mininet ဖြစ်ပါတယ်။ .. ဟုတ်ပြီ mininet ထဲ ကို putty နဲ့ ssh ကိုသုံးပြီး ဝင်ကြည့်ကျရအောင်.. Ifconfig နဲ့ IP Address ကို အရင်စစ်ကြည့်ပါ။
Putty မှာ username@ipAddress (mininet@192.168.43.239) နဲ့ ဝင်ကြည့်ပါ။ အောက်ပါပုံ အတိုင်း ဝင်လို့ရနေတာကို တွေ့ရမှာပါ.. Login name & password တော့ မှန်အောင်ရိုက်ရပါမယ်။ 😉
အရင် အရှေ့ Part 1 တုန်းကလဲ ပြောခဲ့တယ် mininet သည် virtual host, switch, controller, link စတာတွေ ကို emulate လုပ်ပေးမယ့် Network Emulator တစ်ခုပဲဖြစ်ပါတယ် ..
Mininet:
- Provides a simple and inexpensive network testbed for developing OpenFlow applications
- Enables multiple concurrent developers to work independently on the same topology
- Supports system-level regression tests, which are repeatable and easily packaged
- Enables complex topology testing, without the need to wire up a physical network
- Includes a CLI that is topology-aware and OpenFlow-aware, for debugging or running network-wide tests
- Supports arbitrary custom topologies, and includes a basic set of parametrized topologies
- is usable out of the box without programming, but
- also Provides a straightforward and extensible Python API for network creation and experimentation
Mininet ကို ODL နဲ့ တွဲသုံးပြမှာမို့.. OpenDayLight ကို ဖွင့်ပါ.. ပြီးရင် IP address ကိုမှတ်ထားပါ
အဲ့နောက်မှာ ODL ကို စ RUN လိုက်ပါ။
Browser မှာ ခုနက ကြည့်ခဲ့တဲ့ IP (192.168.43.136) ကို ODL port 8181 နဲ့ ဝင်ကြည့်လိုက်ပါ။ ODL အတွက် username – admin & password – admin ဖြစ်ပါတယ်။
Login ဝင်ပြီးသွားရင်တော့ Topology view မှာ ဘာမှရှိဦးမှာ မဟုတ်ပါဘူး.. Reload လုပ်လဲ ထွက်မလာသေးပါဘူး.. mininet VM ကိုစထားပြီး.. emulation မလုပ်ရသေးလို့ပါ။
ဆိုတော့ကား.. mininet ဘက်ကိုသွားပါ sudo mn ဆိုပြီး mininet ကို စလိုက်ရင် default minimum topology ဖြစ်တဲ့ host နှစ်ခု ရယ် ကို switch တစ်ခုနဲ့ ချိတ်ထားတဲ့ topology တစ်ခုကို create လုပ်လိုက်ပါတယ်။
Sudo mn ဆိုတာနဲ့ တက်လာတဲ့ noti message လေးတွေကို တစ်ချက်ကြည့်ကြည့်ပါ..
Creating network – Network တစ်ခုကို စတင်ဖန်တီးပါတယ်
Adding controller – Controller ဘယ်သူဆိုတာ ကြေညာပါတယ် default သည် local controller ပါ
Adding hosts – host (PC) 2 လုံးထည့်ပါတယ် default option ပါ
Adding switches – Switch S1 ထည့်ပါတယ် ဒါလဲ default အတိုင်းပဲဖြစ်ပါတယ်။
Adding Links – လင့်တွေချိတ်ဆက်လိုက်ပါတယ် H1 နဲ့ S1 ကို တစ်ကြိုး H2 နဲ့ S1 ကို တစ်ကြိုး ချိတ်ပါတယ်
Configuring Hosts – Hostတွေကို config (IP address ပေးတာ ဘာညာပေ့ါ) ချပါတယ်။
Start controller – local controller ကို စ ပါတယ်.. (ODL ကို သုံးမှာပါ)
Start switch – Switch S1 ကို စ on လိုက်ပါတယ်။
Start CLI – mininet ရဲ့ emulation CLI mode ကို စတင် လိုက်ပါတယ် (mininet> လို့မြင်နေရပါလိမ့်မယ်)
ဟုတ်ပြီ အဲ့လို Create လုပ်ပြီးပြီ ဆိုတော့ ODL ဘက်မှာ တစ်ချက်ပြန်လုပ်ကြည့်ပါ reload လုပ်ကြည့်ပါ .. အဲ့လိုဆိုပေမယ့်လဲ Topology ကိုမြင်ရဦးမှာ မဟုတ်ပါဘူး။
ဘာလို့လဲ ဆိုတော့ mininet သည် default အားဖြင့် local controller ကို register သွားလုပ်တာမို့ပါ အဲ့အတွက် ကြောင့် ODL controller ကို register မလုပ်ထားသေးတာမို့ သွားကြည့်တဲ့ အခါ မရှိတာပါ။ အဲ့တော့ exit နဲ့ထွက်ပါ ..
Exit ထွက်ပြီးလို့.. Terminal ပြန်ရောက်သွားရင် default အတိုင်း local controller ကို မသုံးတော့ပဲ remote controller (different machine) ဖြစ်တဲ့ ODL သုံးပါမယ်.. အဲ့အတွက် ရေးရမယ့် command ကတော့
sudo mn –controller=remote,ip=192.168.43.136 လို့ရေးပေးလိုက်ယုံပါပဲ။
–controller=remote ဆိုတာက local ကိုမသုံးပဲ remote controller ကိုသုံးပါမယ်လို့ ပြောတာဖြစ်ပါတယ်
ip=192.168.43.136 ဆိုပြီးတော့ remote controller ရဲ့ IP ကို ညွန်ပေးလိုက်ယုံပါပဲ
Mininet ကို စပြီးပြီဆိုတော့ OpenDayLight Controller ဘက်ကို ပြန်ကြည့်ပါ.. Switch s1 ကို မြင်နေရပါလိမ့်မယ်.. H1 နဲ့ H2 host နှစ်ခုကို မမြင်ရသေးတာကို PC (host) တွေကနေ Traffic မရှိသေးတဲ့ အတွက် controller က မသိသေးတာပါ။
mininet သည် default အားဖြင့် Traffic တွေကို generate မလုပ်ပါဘူး အဲ့အတွက် traffice Generate လုပ်ဖို့ရင် ရိုးရှင်းပါတယ် PC1 (H1) ကနေ PC2(H2) ကို ping လုပ်လိုက်ယုံပါပဲ.. အဲ့အတွက် mininet emulation
CLI မှာ လိုအပ်တဲ့ command ကတော့ pingall လို့ရိုက်ပေးလိုက်ယုံပါပဲ။ pingallသည် mininet မှာရှိနေတဲ့ host တွေ တစ်ခုနဲ့ တစ်ခု အပြန်အလှန် pingကျတာပါ။
h1 -> h2 သည် Host1 ကနေ Host2 ကို ping ပါတယ်လို့ပြောတာဖြစ်ပြီး h2 -> h2 ကလဲ ထို့နည်းတူ host2 ကနေ host1 ကို pingနေပါတယ်လို့ ပြောတာပဲ ဖြစ်ပါတယ်။ Results: မှာ 0% dropped ဆိုတာက 100% ping success ဖြစ်တယ်လို့ ဆိုလိုတာပဲ ဖြစ်ပါတယ်။ ကဲ ping ကြည့်ပြီးသွားရင် ODL မှာ reload ပြန်လုပ်ကြည့်ပါ။
Reload ပြန်လုပ်ကြည့်လိုက်ရင်တော့ host 2 ပါ ရောက်နေပြီး switch နဲ့ ချိတ်ထားတာကို မြင်နေရပါလိမ့်မယ်။
Nodes ကို ဒေါက်ကြည့်မယ် ဆိုရင်တော့ openflow node တစ်ခုရှိနေတာကို တွေ့ရပါမယ် .. Node connectors မှာ တော့ 3 လို့ပေါ်နေပါတယ်. နှိပ်ကြည့်လိုက်ပါ။
Switch မှာ port2 (eth2) နဲ့ port1 (eth1) တို့သည် host တွေနဲ့ ချိတ်နေတဲ့ physical port တွေဖြစ်ပြီးတော့ port numberမှာ LOCAL ဆိုတာကတော့ controller နဲ့ချိတ်တဲ့ port ကို ပြောတာပဲ ဖြစ်ပါတယ်.. ဒီ SDN part 2 ကို ဒီမှာ ခန ရပ်နားပါမယ်.. Part 3 ကျမှ mininet commandတွေနဲ့ ODL အကြောင်းကို ဆက်ပြောကျတာပေါ့ဗျာ.. Happy Myanmar New Year pr !!
Happy Learning at Stay Home ^_^
With Best Regards,
Khant Phyo
Core Network Team Leader @Ericsson Myanmar