ΠΠΎΡΠ»Π΅Π΄Π½ΠΈΡ ΠΏΡΡ Π³ΠΎ Π½Π°ΠΏΡΠ°Π²ΠΈΡ
ΠΌΠ΅
Mininet
ΠΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡΡ Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° Π½Π°ΡΡΡΠΎΠΈΡΠ΅ ΡΠΎΡΡΡΠ΅ΡΠ½ΠΎ ΡΠΏΡΠ°Π²Π»ΡΠ²Π°Π½Π° ΠΌΡΠ΅ΠΆΠ° Π½Π° Π΅Π΄Π½Π° ΠΌΠ°ΡΠΈΠ½Π° (Π²ΠΈΡΡΡΠ°Π»Π½Π° ΠΈΠ»ΠΈ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠ°). ΠΡΠΎΡΡΠΎ Π²ΡΠ²Π΅Π΄Π΅ΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ°: $ sudo mn. Π‘ΠΏΠΎΡΠ΅Π΄ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈΡΠ΅ Mininet Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡ Π·Π° Π²Π½Π΅Π΄ΡΡΠ²Π°Π½Π΅ Π½Π° ΡΠ΅ΡΡΠΎΠ²ΠΈ ΡΡΠ΅Π΄ΠΈ.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ ΡΡΠΈΡΠ΅Π»ΠΈ Π² Π‘ΡΠ°Π½ΡΠΎΡΠ΄ (ΠΊΡΠ΄Π΅ΡΠΎ Π΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ΅Π½ Mininet) ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ ΠΏΠΎΠΌΠΎΡΠ½Π°ΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ° ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅ Π½Π° ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π·Π°Π½ΡΡΠΈΡ Π² ΡΠ½ΠΈΠ²Π΅ΡΡΠΈΡΠ΅ΡΠ°. ΠΠΎΠΌΠ°Π³Π° Π·Π° Π²Π½ΡΡΠ°Π²Π°Π½Π΅ Π½Π° ΡΠΌΠ΅Π½ΠΈΡ Π·Π° ΡΠ°Π±ΠΎΡΠ° Π² ΠΌΡΠ΅ΠΆΠ° Ρ ΡΡΠ΅Π½ΠΈΡΠΈΡΠ΅. ΠΡΠΊΠΎΠΈ ΠΎΡ Π·Π°Π΄Π°ΡΠΈΡΠ΅ ΠΈ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠ°ΡΠΈΠΈΡΠ΅ ΠΌΠΎΠ³Π°Ρ Π΄Π° Π±ΡΠ΄Π°Ρ Π½Π°ΠΌΠ΅ΡΠ΅Π½ΠΈ
Mininet ΡΡΡΠΎ Π΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡ Π·Π° ΡΠ΅ΡΡΠ²Π°Π½Π΅ Π½Π° ΠΏΠ΅ΡΡΠΎΠ½Π°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΈ SDN ΡΠΎΠΏΠΎΠ»ΠΎΠ³ΠΈΠΈ. ΠΠΈΡΡΡΠ°Π»Π½Π°ΡΠ° ΠΌΡΠ΅ΠΆΠ° ΡΠ΅ ΡΠ°Π·Π³ΡΡΡΠ° Ρ Π²ΡΠΈΡΠΊΠΈ ΠΊΠΎΠΌΡΡΠ°ΡΠΎΡΠΈ, ΠΊΠΎΠ½ΡΡΠΎΠ»Π΅ΡΠΈ ΠΈ Ρ ΠΎΡΡΠΎΠ²Π΅, ΡΠ»Π΅Π΄ ΠΊΠΎΠ΅ΡΠΎ Π½Π΅ΠΉΠ½Π°ΡΠ° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡ ΡΠ΅ ΠΏΡΠΎΠ²Π΅ΡΡΠ²Π° Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° ΡΠΊΡΠΈΠΏΡΠΎΠ²Π΅ Π½Π° Python. Π‘Π»Π΅Π΄ ΡΠΎΠ²Π° Π½Π°ΡΡΡΠΎΠΉΠΊΠΈΡΠ΅ ΡΠ΅ ΠΏΡΠ΅Ρ Π²ΡΡΠ»ΡΡ ΠΎΡ Mininet ΠΊΡΠΌ ΡΠ΅Π°Π»Π½Π°ΡΠ° ΠΌΡΠ΅ΠΆΠ°.
Π‘ΡΠ΅Π΄ Π½Π΅Π΄ΠΎΡΡΠ°ΡΡΡΠΈΡΠ΅ Π½Π° ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ΡΠΎ
Mininet Π΅ ΠΏΡΡΠ½Π°Ρ ΠΏΠΎΠ΄ Π»ΠΈΡΠ΅Π½Π· BSD Open Source ΠΈ ΡΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ²Π° Π°ΠΊΡΠΈΠ²Π½ΠΎ. ΠΡΠ΅ΠΊΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° Π΄ΠΎΠΏΡΠΈΠ½Π΅ΡΠ΅ - ΠΈΠΌΠ° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΊΠ°ΠΊ Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈΡΠ΅ ΡΠΎΠ²Π° Π½Π°
ns-3
Π‘ΠΈΠΌΡΠ»Π°ΡΠΎΡ Π·Π°
Π‘ΡΠ΅Π΄ ΠΏΡΠ΅Π΄ΠΈΠΌΡΡΠ²Π°ΡΠ° Π½Π° ΠΏΠΎΠΌΠΎΡΠ½Π°ΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ° ΡΠ° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°ΡΠ° Π½Π° ΡΠΎΠΊΠ΅ΡΠΈ ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ
ΠΠ΅Π΄ΠΎΡΡΠ°ΡΡΡΠΈΡΠ΅ Π²ΠΊΠ»ΡΡΠ²Π°Ρ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»Π½ΠΎ ΡΠ»Π°Π±Π° Π²ΠΈΠ·ΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ. ΠΠ° ΠΏΠΎΠΊΠ°Π·Π²Π°Π½Π΅ Π½Π° ΡΠΎΠΏΠΎΠ»ΠΎΠ³ΠΈΡ
Π§Π΅ΡΠ΅ΡΠ΅ ΠΏΠΎ ΡΠ΅ΠΌΠ°ΡΠ° Π² Π½Π°ΡΠΈΡ ΠΊΠΎΡΠΏΠΎΡΠ°ΡΠΈΠ²Π΅Π½ Π±Π»ΠΎΠ³:
OpenNet
Π’ΠΎΠ·ΠΈ SDN Π΅ΠΌΡΠ»Π°ΡΠΎΡ Π΅ ΠΈΠ·Π³ΡΠ°Π΄Π΅Π½ Π½Π° Π±Π°Π·Π°ΡΠ° Π½Π° Π΄Π²Π° ΠΏΡΠ΅Π΄ΠΈΡΠ½ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ° - Mininet ΠΈ ns-3. Π’ΠΎΠΉ ΡΡΡΠ΅ΡΠ°Π²Π° ΡΠΈΠ»Π½ΠΈΡΠ΅ ΡΡΡΠ°Π½ΠΈ Π½Π° Π²ΡΠ΅ΠΊΠΈ ΠΎΡ ΡΡΡ . ΠΠ° Π΄Π° Π½Π°ΠΊΠ°ΡΠ° ΡΠ΅ΡΠ΅Π½ΠΈΡΡΠ° Π΄Π° ΡΠ°Π±ΠΎΡΡΡ Π·Π°Π΅Π΄Π½ΠΎ, OpenNet ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Π·Π° ΡΠ²ΡΡΠ·Π²Π°Π½Π΅ Π² Python.
ΠΠΎ ΡΠΎΠ·ΠΈ Π½Π°ΡΠΈΠ½ Mininet Π² OpenNet Π΅ ΠΎΡΠ³ΠΎΠ²ΠΎΡΠ΅Π½ Π·Π° Π΅ΠΌΡΠ»ΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° ΠΏΡΠ΅Π²ΠΊΠ»ΡΡΠ²Π°ΡΠ΅Π»ΠΈ OpenFlow, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΡΠΉΠΊΠΈ CLI ΠΈ Π²ΠΈΡΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ. Π©ΠΎ ΡΠ΅ ΠΎΡΠ½Π°ΡΡ Π΄ΠΎ ns-3, ΡΠΎΠΉ Π΅ΠΌΡΠ»ΠΈΡΠ° ΡΠ΅Π·ΠΈ ΠΌΠΎΠ΄Π΅Π»ΠΈ, ΠΊΠΎΠΈΡΠΎ Π½Π΅ ΡΠ° Π² Mininet. ΠΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π½Π°ΠΌΠ΅ΡΠΈΡΠ΅ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ Π·Π° Π΅ΠΊΡΠΏΠ»ΠΎΠ°ΡΠ°ΡΠΈΡ
/
ΠΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ½Π° ΠΌΡΠ΅ΠΆΠ°
Π’ΠΎΠ²Π° Π΅ Mininet fork Π·Π° ΡΠ°Π±ΠΎΡΠ° Ρ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ Π·Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. Docker ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈΡΠ΅ Π΄Π΅ΠΉΡΡΠ²Π°Ρ ΠΊΠ°ΡΠΎ Ρ
ΠΎΡΡΠΎΠ²Π΅ Π² Π΅ΠΌΡΠ»ΠΈΡΠ°Π½ΠΈ ΠΌΡΠ΅ΠΆΠΈ. Π Π΅ΡΠ΅Π½ΠΈΠ΅ΡΠΎ Π΅ ΡΡΠ·Π΄Π°Π΄Π΅Π½ΠΎ, Π·Π° Π΄Π° ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈ Π½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈΡΠ΅ Π΄Π° Π΅ΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠΈΡΠ°Ρ Ρ ΠΈΠ·ΡΠΈΡΠ»Π΅Π½ΠΈΡ Π² ΠΎΠ±Π»Π°ΠΊ, ΠΊΡΠ°ΠΉ, ΠΌΡΠ³Π»Π° ΠΈ NFV. Π‘ΠΈΡΡΠ΅ΠΌΠ°ΡΠ° Π²Π΅ΡΠ΅ Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π° ΠΎΡ Π°Π²ΡΠΎΡΠΈΡΠ΅ Π½Π° SONATA NFV Π·Π° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ° Π·Π° ΠΎΡΠΊΠ΅ΡΡΡΠ°ΡΠΈΡ Π²ΡΠ² Π²ΠΈΡΡΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΈ 5G ΠΌΡΠ΅ΠΆΠΈ. ΠΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ½Π° ΠΌΡΠ΅ΠΆΠ°
ΠΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°ΡΠ΅ Containernet, ΠΊΠ°ΡΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅
Tinynet
ΠΠ΅ΠΊΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°, ΠΊΠΎΡΡΠΎ Π²ΠΈ ΠΏΠΎΠΌΠ°Π³Π° Π±ΡΡΠ·ΠΎ Π΄Π° ΡΡΠ·Π΄Π°Π²Π°ΡΠ΅ ΠΏΡΠΎΡΠΎΡΠΈΠΏΠΈ Π½Π° SDN ΠΌΡΠ΅ΠΆΠΈ.
ΠΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡΡ Π½Π΅ Π΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡ Π·Π° Π΅ΠΌΡΠ»ΠΈΡΠ°Π½Π΅ Π½Π° ΡΠΈΡΠΎΠΊΠΎΠΌΠ°ΡΠ°Π±Π½ΠΈ ΠΌΡΠ΅ΠΆΠΈ ΠΏΠΎΡΠ°Π΄ΠΈ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π° ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡ. ΠΠΎ ΡΠ΅ Π±ΡΠ΄Π΅ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ, ΠΊΠΎΠ³Π°ΡΠΎ ΡΠ°Π±ΠΎΡΠΈΡΠ΅ Π²ΡΡΡ Ρ ΠΌΠ°Π»ΠΊΠΈ Π»ΠΈΡΠ½ΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠΈ ΠΈΠ»ΠΈ Π±ΡΡΠ·ΠΎ ΠΏΡΠΎΡΠΎΡΠΈΠΏΠΈΡΠ°Π½Π΅.
ΠΡΠΈΠΌΠ΅ΡΠ½ΠΈ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ Π·Π° ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°Π½Π΅ Π½Π° Tinynet ΡΠ° Π΄ΠΎΡΡΡΠΏΠ½ΠΈ Π½Π°
MaxiNet
Π’ΠΎΠ·ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ ΠΏΡΠ°Π²ΠΈ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° Mininet Π½Π° ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΈ ΠΌΠ°ΡΠΈΠ½ΠΈ ΠΈ ΡΠ°Π±ΠΎΡΠ° Ρ ΡΠΈΡΠΎΠΊΠΎΠΌΠ°ΡΠ°Π±Π½ΠΈ SDN ΠΌΡΠ΅ΠΆΠΈ. ΠΡΡΠΊΠ° Π΅Π΄Π½Π° ΠΎΡ ΠΊΠΎΠ»ΠΈΡΠ΅
MaxiNet Π²ΠΈ ΠΏΠΎΠΌΠ°Π³Π° Π±ΡΡΠ·ΠΎ Π΄Π° ΠΌΠ°ΡΠ°Π±ΠΈΡΠ°ΡΠ΅ ΠΌΡΠ΅ΠΆΠΈΡΠ΅ ΠΈ Π΄Π° ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠ°ΡΠ΅ ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΡΠ΅ΡΡΡΡΠΈΡΠ΅. MaxiNet ΡΡΡΠΎ ΠΈΠΌΠ° ΡΡΠ½ΠΊΡΠΈΠΈ Π·Π° ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³, Π²Π³ΡΠ°Π΄Π΅Π½ CLI ΠΈ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ Ρ Docker. ΠΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡΡ ΠΎΠ±Π°ΡΠ΅ Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° Π΅ΠΌΡΠ»ΠΈΡΠ° ΡΠ°Π±ΠΎΡΠ°ΡΠ° Π½Π° Π΅Π΄ΠΈΠ½ ΠΊΠ»ΡΡ Π·Π° Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΠΌΠ°ΡΠΈΠ½ΠΈ.
ΠΠ·Ρ
ΠΎΠ΄Π½ΠΈΡΡ ΠΊΠΎΠ΄ Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠ° Π΅ Π½Π°Π»ΠΈΡΠ΅Π½
Π§Π΅ΡΠ΅ΡΠ΅ ΠΏΠΎ ΡΠ΅ΠΌΠ°ΡΠ° Π² Π½Π°ΡΠΈΡ ΠΊΠΎΡΠΏΠΎΡΠ°ΡΠΈΠ²Π΅Π½ Π±Π»ΠΎΠ³:
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: www.habr.com