هدف اصلی این ابزار بر ایجاد و مدیریت شبکه بصورت خودکار و داینامیک در سطح وسیعی از سرورهای لینوکسی هست. یعنی هم بتونیم با اسکریپت خودمون اینترفیسهای مجازی رو ایجاد، مدیریت، حذف و مونیتور کنیم.
تاکید خود Open vSwitch بر مولتی سرور بودن قابلیت مدیریت و ایجاد شبکه هست که طبیعتا در محیطهای کلود این کاربرد بسیار به چشم می آید.
برای اینکه مفهوم vSwitch را بهتر بفهمیم میرم سراغ یه مثال ساده که شکل زیر نشون میده میخوایم چه کنیم:
گامها:
۱- ایجاد دو network namespace به نامهای ns1 و ns2
۲- ساخت زوج پورت اینترفیس veth1 و veth2 و اتصال آنها بهم
۳- ساخت زوج پورت اینتفریس veth3 و veth4 و اتصال آنها بهم
۴- انتقال پورتهای veth1, veth2 به ns1
۵- انتقال پورتهای veth3,veth4 به ns2
۶- آی پی دادن به پورتهای حاضر در ns1 و ns2
۷- ساخت vSwitch
۸- اتصال veth2,veth4 به vSwitch ایجاد شده
۹- بررسی اتصال
۱۰- آی پی دادن به vSwitch و دسترسی به اینترفیسهای داخل namespace ها از طریق هاست (لینوکسی که روی آن سوئیچ را ایجاد کردیم)
گام ۱: ایجاد دو network namespace به نامهای ns1 و ns2
ip netns add ns1 ip netns add ns2
گام ۲: ساخت زوج پورت اینترفیس veth1 و veth2 و اتصال آنها بهم
ip link add veth1 type veth peer name veth2
گام ۳: ساخت زوج پورت اینتفریس veth3 و veth4 و اتصال آنها بهم
ip link add veth3 type veth peer name veth4
گام ۴: انتقال پورتهای veth1, veth2 به ns1
ip link set veth1 netns ns1
گام ۵: انتقال پورتهای veth3,veth4 به ns2
ip link set veth3 netns ns2
گام ۶: آی پی دادن به پورتهای حاضر در ns1 و ns2
ip netns exec ns1 ifconfig veth1 10.10.11.1/24 up ip netns exec ns2 ifconfig veth3 10.10.11.2/24 up
حالا اگر از داخل فضانام ns1 پینگ آی پی 10.10.11.2 گرفته شود جواب گرفته نمیشود چون این دو نتورک کاملا ایزوله هستند.
ip netns exec ns1 ping 10.10.11.2
گام ۷: ساخت vSwitch
ovs-vsctl add-br vSwitch
گام ۸: اتصال veth2,veth4 به vSwitch ایجاد شده
ovs-vsctl add-port vSwitch veth2 ovs-vsctl add-port vSwitch veth4 ifconfig veth2 up ifconfig veth4 up
گام ۹: بررسی اتصال
ip netns exec ns1 ping 10.10.11.2
گام ۱۰: آی پی دادن به vSwitch و دسترسی به اینترفیسهای داخل namespace ها از طریق هاست
ifconfig vSwitch 10.10.11.3/24 up ping 10.10.11.1 ping 10.10.11.2
تمام!