| ovs-vswitchd.conf.db(5) | Open vSwitch Manual | ovs-vswitchd.conf.db(5) |
نام (NAME)
ovs-vswitchd.conf.db - طرح پایگاهداده Open_vSwitch
پایگاهدادهای با این طرح، پیکربندی یک دیمن Open vSwitch را در خود نگه میدارد. پیکربندی سطحبالا برای دیمن، جدول Open_vSwitch است که باید دقیقاً یک رکورد داشته باشد. رکوردهای موجود در سایر جدولها تنها زمانی اهمیت دارند که بتوان مستقیماً یا بهطور غیرمستقیم از جدول Open_vSwitch به آنها دسترسی پیدا کرد. رکوردهایی که از جدول Open_vSwitch قابل دسترسی نباشند، بهطور خودکار از پایگاهداده حذف میشوند، بهجز رکوردهای موجود در چند جدول شاخص «مجموعه ریشه» (root set).
ستونهای مشترک (Common Columns)
بیشتر جدولها شامل دو ستون ویژه به نامهای other_config و external_ids هستند. این ستونها در هر جایی که ظاهر میشوند، شکل و هدف یکسانی دارند، از این رو برای صرفهجویی در فضا در بخشهای بعدی، آنها را در اینجا شرح میدهیم.
- other_config: نگاشتی از جفتهای رشته-رشته
- جفتهای کلید-مقدار برای پیکربندی قابلیتهای کمتر استفادهشده. کلیدهای پشتیبانیشده، به همراه شکلهای مقادیر آنها، بهطور جداگانه برای هر جدول مستند شدهاند.
- تعداد اندکی از جدولها فاقد ستون other_config هستند زیرا هنوز هیچ جفت کلید-مقداری برای آنها تعریف نشده است.
- external_ids: نگاشتی از جفتهای رشته-رشته
- جفتهای کلید-مقدار برای استفاده توسط چارچوبهای بیرونی که با Open vSwitch ادغام میشوند، نه توسط خود Open vSwitch. یکپارچهسازان سیستم باید یا از فهرست پستی توسعه Open vSwitch برای هماهنگی روی تعاریف مشترک کلید-مقدار استفاده کنند، یا نامهای کلیدی را انتخاب نمایند که احتمالاً یکتا باشند. در برخی موارد، جایی که جفتهای کلید-مقدار تعریف شدهاند که احتمالاً کاربرد گستردهای دارند، بهطور جداگانه برای هر جدول مستند شدهاند.
خلاصه جدولها (TABLE SUMMARY)
فهرست زیر هدف هر یک از جدولها را در پایگاهداده Open_vSwitch خلاصه میکند. هر جدول در صفحهای پس از این با جزئیات بیشتر شرح داده شده است.
- جدول
- هدف
- Open_vSwitch
- پیکربندی Open
vSwitch.
- Bridge
- پیکربندی
پل (Bridge).
- Port
- پیکربندی
پورت.
- Interface
- یک دستگاه
شبکه
فیزیکی در
یک پورت.
- Flow_Table
- پیکربندی
جدول OpenFlow
- QoS
- پیکربندی
کیفیت
خدمات (QoS)
- Queue
- صف خروجی QoS.
- Mirror
- آینهکردن
پورت (Port mirroring).
- Controller
- پیکربندی
کنترلکننده
OpenFlow.
- Manager
- اتصال
مدیریتی OVSDB.
- NetFlow
- پیکربندی NetFlow.
- Datapath
- پیکربندی
مسیر داده
(Datapath).
- CT_Zone
- پیکربندی CT_Zone.
- CT_Timeout_Policy
- پیکربندی
CT_Timeout_Policy.
- SSL
- پیکربندی SSL.
- sFlow
- پیکربندی sFlow.
- IPFIX
- پیکربندی IPFIX.
- Flow_Sample_Collector_Set
- پیکربندی
Flow_Sample_Collector_Set.
- AutoAttach
- پیکربندی AutoAttach.
جدول Open_vSwitch (Open_vSwitch TABLE)
پیکربندی برای یک دیمن Open vSwitch. باید دقیقاً یک رکورد در جدول Open_vSwitch وجود داشته باشد.
چکیده (Summary):
- پیکربندی (Configuration):
- datapaths
- نگاشتی از
جفتهای
رشته-Datapath
- bridges
- مجموعهای
از Bridgeها
- ssl
- SSL اختیاری
- external_ids : system-id
- رشته
اختیاری
- external_ids : hostname
- رشته
اختیاری
- external_ids : rundir
- رشته
اختیاری
- other_config : stats-update-interval
- رشته
اختیاری،
شامل یک عدد
صحیح،
دستکم
۵٬۰۰۰
- other_config : flow-restore-wait
- رشته
اختیاری،
یا true یا false
- other_config : flow-limit
- رشته
اختیاری،
شامل یک عدد
صحیح،
دستکم ۰
- other_config : max-idle
- رشته
اختیاری،
شامل یک عدد
صحیح،
دستکم ۵۰۰
- other_config : max-revalidator
- رشته
اختیاری،
شامل یک عدد
صحیح،
دستکم ۱۰۰
- other_config : min-revalidate-pps
- رشته
اختیاری،
شامل یک عدد
صحیح،
دستکم ۰
- other_config : offloaded-stats-delay
- رشته
اختیاری،
شامل یک عدد
صحیح،
دستکم ۰
- other_config : hw-offload
- رشته
اختیاری،
یا true یا false
- other_config : hw-offload-priority
- رشته
اختیاری
- other_config : n-offload-threads
- رشته
اختیاری،
شامل یک عدد
صحیح، در
بازه ۱ تا
۱۰
- other_config : tc-policy
- رشته
اختیاری،
یکی از none،
skip_hw، یا skip_sw
- other_config : dpdk-init
- رشته
اختیاری،
یکی از false،
true، یا try
- other_config : dpdk-lcore-mask
- رشته
اختیاری،
شامل یک عدد
صحیح،
دستکم ۱
- other_config : pmd-cpu-mask
- رشته
اختیاری
- other_config : dpdk-alloc-mem
- رشته
اختیاری،
شامل یک عدد
صحیح،
دستکم ۰
- other_config : dpdk-socket-mem
- رشته
اختیاری
- other_config : dpdk-socket-limit
- رشته
اختیاری
- other_config : dpdk-hugepage-dir
- رشته
اختیاری
- other_config : dpdk-probe-at-init
- رشته
اختیاری،
یا true یا false
- other_config : dpdk-extra
- رشته
اختیاری
- other_config : vhost-sock-dir
- رشته
اختیاری
- other_config : vhost-iommu-support
- رشته
اختیاری،
یا true یا false
- other_config : vhost-postcopy-support
- رشته
اختیاری،
یا true یا false
- other_config : per-port-memory
- رشته
اختیاری،
یا true یا false
- other_config : shared-mempool-config
- رشته
اختیاری
- other_config : tx-flush-interval
- رشته
اختیاری،
شامل یک عدد
صحیح، در
بازه ۰ تا
۱٬۰۰۰٬۰۰۰
- other_config : pmd-perf-metrics
- رشته
اختیاری،
یا true یا false
- other_config : smc-enable
- رشته
اختیاری،
یا true یا false
- other_config : pmd-rxq-assign
- رشته
اختیاری،
یکی از cycles،
group، یا roundrobin
- other_config : pmd-rxq-isolate
- رشته
اختیاری،
یا true یا false
- other_config : n-handler-threads
- رشته
اختیاری،
شامل یک عدد
صحیح،
دستکم ۱
- other_config : n-revalidator-threads
- رشته
اختیاری،
شامل یک عدد
صحیح،
دستکم ۱
- other_config : emc-insert-inv-prob
- رشته
اختیاری،
شامل یک عدد
صحیح، در
بازه ۰ تا
۴٬۲۹۴٬۹۶۷٬۲۹۵
- other_config : vlan-limit
- رشته
اختیاری،
شامل یک عدد
صحیح،
دستکم ۰
- other_config : bundle-idle-timeout
- رشته
اختیاری،
شامل یک عدد
صحیح،
دستکم ۱
- other_config : offload-rebalance
- رشته
اختیاری،
یا true یا false
- other_config : pmd-auto-lb
- رشته
اختیاری،
یا true یا false
- other_config : pmd-auto-lb-rebal-interval
- رشته
اختیاری،
شامل یک عدد
صحیح، در
بازه ۰ تا
۲۰٬۰۰۰
- other_config : pmd-auto-lb-load-threshold
- رشته
اختیاری،
شامل یک عدد
صحیح، در
بازه ۰ تا
۱۰۰
- other_config : pmd-auto-lb-improvement-threshold
- رشته
اختیاری،
شامل یک عدد
صحیح، در
بازه ۰ تا
۱۰۰
- other_config : pmd-sleep-max
- رشته
اختیاری
- other_config : userspace-tso-enable
- رشته
اختیاری،
یا true یا false
- other_config : explicit-sampled-drops
- رشته اختیاری، یا true یا false
- وضعیت (Status):
- next_cfg
- عدد صحیح
- cur_cfg
- عدد صحیح
- dpdk_initialized
- بولی (boolean)
- آمار (Statistics):
- other_config : enable-statistics
- رشته
اختیاری،
یا true یا false
- statistics : cpu
- رشته
اختیاری،
شامل یک عدد
صحیح،
دستکم ۱
- statistics : load_average
- رشته
اختیاری
- statistics : memory
- رشته
اختیاری
- statistics : process_NAME
- رشته
اختیاری
- statistics : file_systems
- رشته اختیاری
- گزارش نسخه (Version Reporting):
- ovs_version
- رشته
اختیاری
- db_version
- رشته
اختیاری
- system_type
- رشته
اختیاری
- system_version
- رشته
اختیاری
- dpdk_version
- رشته اختیاری
- قابلیتها (Capabilities):
- datapath_types
- مجموعهای
از رشتهها
- iface_types
- مجموعهای از رشتهها
- پیکربندی پایگاهداده (Database Configuration):
- manager_options
- مجموعهای از Managerها
- آیپیسک (IPsec):
- other_config : private_key
- رشته
اختیاری
- other_config : certificate
- رشته
اختیاری
- other_config : ca_cert
- رشته
اختیاری
- سیاست تونل متنآشکار (Plaintext Tunnel Policy):
- other_config : ipsec_skb_mark
- رشته اختیاری
- ستونهای مشترک (Common Columns):
- other_config
- نگاشتی از
جفتهای
رشته-رشته
- external_ids
- نگاشتی از جفتهای رشته-رشته
جزئیات (Details):
- datapaths: نگاشتی از جفتهای رشته-Datapath
- نگاشتی از انواع مسیر داده (datapath) به مسیرهای داده. ستون datapath_type در جدول Bridge به عنوان کلید این نگاشت استفاده میشود. مقدار آن به ردیفی در جدول Datapath اشاره میکند.
- bridges: مجموعهای از Bridgeها
- مجموعهای از پلها (bridges) که توسط دیمن مدیریت میشوند.
- ssl: یک SSL اختیاری
- پیکربندی SSL/TLS که به صورت سراسری توسط دیمن استفاده میشود.
- external_ids : system-id: رشته اختیاری
- شناسه یکتا برای میزبان فیزیکی Open vSwitch. قالب این شناسه به نوع میزبان بستگی دارد.
- external_ids : hostname: رشته اختیاری
- نام میزبان (hostname) برای میزبانی که Open vSwitch را اجرا میکند. از نسخه 2.6.2 به بعد این مقدار یک نام دامنه کاملاً واجد شرایط (FQDN) است.
- external_ids : rundir: رشته اختیاری
- در Open vSwitch نسخه 2.8 و بالاتر، دایرکتوری اجرای دیمن در حال اجرای Open vSwitch است. این دایرکتوری برای نگهداری وضعیت زمان اجرا مانند سوکتهای کنترلی و مدیریتی استفاده میشود. مقدار other_config:vhost-sock-dir نسبت به این دایرکتوری سنجیده میشود.
- other_config : stats-update-interval: رشته اختیاری، شامل یک عدد صحیح، حداقل 5,000
- فاصله زمانی برای بهروزرسانی آمار در پایگاهداده، به میلیثانیه. این گزینه بر بهروزرسانی ستون statistics در جدولهای زیر تأثیر میگذارد: Port، Interface، Mirror.
- مقدار پیشفرض 5000 میلیثانیه است.
- دریافت مکررتر آمار را میتوان از طریق OpenFlow انجام داد.
- other_config : flow-restore-wait: رشته اختیاری، یا true یا false
- هنگامی که ovs-vswitchd راهاندازی میشود، دارای جدول جریان (flow table) خالی است و بنابراین تمام بستههای دریافتی را بر اساس پیکربندی خود به شیوه پیشفرض پردازش میکند: با انداختن (drop) آنها یا ارسالشان به یک کنترلکننده OpenFlow یا سوئیچ کردن آنها به عنوان یک سوئیچ مستقل (standalone). این رفتار معمولاً مطلوب است. با این حال، اگر ovs-vswitchd به عنوان بخشی از یک «ارتقای گرم» (hot-upgrade) بازراهاندازی شود، این امر منجر به یک دوره نسبتاً طولانی میشود که طی آن بستهها به اشتباه مدیریت یا دور ریخته میشوند.
- این گزینه امکان بهبود این وضعیت را فراهم میکند. هنگامی که ovs-vswitchd در حالتی آغاز به کار کند که این مقدار روی true تنظیم شده است، جریانهای از پیش تنظیمشده مسیر داده (datapath) را نه پاکسازی و نه منقضی میکند و نه هیچ بستهای را به مسیر داده ارسال کرده یا از آن دریافت مینماید. هنگامی که این مقدار بعداً روی false تنظیم شود، ovs-vswitchd شروع به دریافت بستهها از مسیر داده کرده و جریانها را مجدداً برقرار میسازد.
- علاوه بر این، هنگامی که این مقدار روی true تنظیم شده باشد، از اتصال ovs-vswitchd به کنترلکنندهها جلوگیری میشود. این کار مانع از آن میشود که کنترلکنندهها در میانه فرایند بازیابی جریان، تغییراتی در جدول جریان ایجاد کنند که میتواند منجر به وضعیتهای میانی نامطلوب شود. هنگامی که این مقدار روی false تنظیم شد و وضعیت جریانهای مورد نظر بازیابی گردید، ovs-vswitchd قادر خواهد بود دوباره به کنترلکنندهها متصل شود و هرگونه تغییرات جدید در جدول جریان را پردازش کند.
- بنابراین، با استفاده از این گزینه، روند ارتقای گرم ovs-vswitchd تقریباً به شکل زیر درمیآید:
- 1.
- متوقف کردن ovs-vswitchd.
- 2.
- تنظیم other_config:flow-restore-wait روی true.
- 3.
- راهاندازی ovs-vswitchd.
- 4.
- استفاده از ovs-ofctl (یا برنامهای دیگر مانند یک کنترلکننده OpenFlow) برای بازیابی جدول جریان OpenFlow به وضعیت دلخواه.
- 5.
- تنظیم other_config:flow-restore-wait روی false (یا حذف کامل آن از پایگاهداده).
- توابع «restart» و «force-reload-kmod» در ovs-ctl هنگام ارتقاهای گرم از گزینه پیکربندی فوق استفاده میکنند.
- other_config : flow-limit: رشته اختیاری، شامل یک عدد صحیح، حداقل 0
- حداکثر تعداد جریانهای (flows) مجاز در جدول جریان مسیر داده. در لایه درونی، OVS حد جریانی را انتخاب میکند که بر اساس شرایط بلادرنگ شبکه احتمالاً کمتر از این مقدار خواهد بود. تغییر دادن این مقدار توصیه نمیشود، مگر اینکه دقیقاً بدانید چه کاری انجام میدهید.
- مقدار پیشفرض 200000 است.
- other_config : max-idle: رشته اختیاری، شامل یک عدد صحیح، حداقل 500
- حداکثر زمانی (به میلیثانیه) که جریانهای غیرفعال (idle) در حافظه موقت (cache) مسیر داده باقی میمانند. در لایه درونی، OVS اعتبار و فعالیت جریانهای مسیر داده را به طور منظم بررسی میکند و ممکن است بر اساس شرایط بلادرنگ شبکه جریانها را سریعتر از این زمان منقضی کند. تغییر دادن این مقدار توصیه نمیشود، مگر اینکه دقیقاً بدانید چه کاری انجام میدهید.
- مقدار پیشفرض 10000 است.
- other_config : max-revalidator: رشته اختیاری، شامل یک عدد صحیح، حداقل 100
- حداکثر زمانی (به میلیثانیه) که ریسههای اعتبارسنج مجدد (revalidator threads) پیش از اجرای اعتبارسنجی مجدد جریان منتظر میمانند. توجه داشته باشید که این حداکثر مقدار مجاز است. مهلت زمانی واقعی استفادهشده توسط OVS برابر با کمینه مقادیر max-idle و max-revalidator است. تغییر دادن این مقدار توصیه نمیشود، مگر اینکه دقیقاً بدانید چه کاری انجام میدهید.
- مقدار پیشفرض 500 است.
- other_config : min-revalidate-pps: رشته اختیاری، شامل یک عدد صحیح، حداقل 0
- حداقل تعداد بسته بر ثانیه (pps) را تعیین میکند که یک جریان باید داشته باشد تا در صورتی که مدت زمان اعتبارسنجی مجدد از نصف متغیر پیکربندی max-revalidator فراتر رود، مجدداً اعتبارسنجی شود. تنظیم این مقدار روی 0 به این معنی است که جریانها صرفنظر از pps همیشه دوباره اعتبارسنجی شوند.
- مقدار پیشفرض 5 است.
- other_config : offloaded-stats-delay: رشته اختیاری، شامل یک عدد صحیح، حداقل 0
- بدترین حالت تاخیر (به میلیثانیه) را که ممکن است پیش از بهروزرسانی آمار جریانهای برونسپاریشده (offloaded flows) رخ دهد تعیین میکند. جریانهای برونسپاریشدهای که عمرشان کمتر از این میزان تاخیر است، صرفنظر از مقدار other_config:min-revalidate-pps همواره مجدداً اعتبارسنجی خواهند شد.
- مقدار پیشفرض 2000 است.
- other_config : hw-offload: رشته اختیاری، یا true یا false
- تنظیم این مقدار روی true برای فعالسازی برونسپاری سختافزاری جریان در netdev (netdev flow offload) استفاده میشود.
- مقدار پیشفرض false است. تغییر دادن این مقدار نیازمند راهاندازی مجدد دیمن است.
- در حال حاضر Open vSwitch از برونسپاری سختافزاری (hardware offloading) روی سیستمهای لینوکس پشتیبانی میکند. در سایر سیستمها، این مقدار نادیده گرفته میشود. این قابلیت «آزمایشی» تلقی میشود. بسته به اینکه کدام تطابقها و اقدامات OpenFlow پیکربندی شده باشند، چه نسخهای از هسته لینوکس استفاده شود و چه سختافزاری موجود باشد، ممکن است Open vSwitch قادر به برونسپاری قابلیتها به سختافزار نباشد.
- برای تخلیه (dump) جریانهای برونسپاریشده سختافزاری از ovs-appctl dpctl/dump-flows استفاده کنید؛ دستور ovs-dpctl از این قابلیت پشتیبانی نمیکند. برای جزئیات بیشتر به ovs-vswitchd(8) مراجعه فرمایید.
- other_config : hw-offload-priority: رشته اختیاری
- این پیکربندی ترتیب ارائهدهندگان برونسپاری سختافزاری را برای امتحان کردن در صورتی که چندین ارائهدهنده برای یک پیادهسازی مسیر داده مشخص وجود داشته باشند تعیین میکند. آرگومان ارائهشده باید فهرستی از نامهای ارائهدهندگان برونسپاری سختافزاری باشد که با کاما از هم جدا شدهاند.
- اگر پیادهسازیهایی در این فهرست وجود نداشته باشند، در پایان فهرست و با ترتیبی نامشخص اضافه میشوند.
- مقدار پیشفرض tc,dpdk است. در صورتی که برونسپاری سختافزاری از قبل فعال شده باشد، تغییر این مقدار نیازمند راهاندازی مجدد دیمن خواهد بود.
- other_config : n-offload-threads: رشته اختیاری، شامل یک عدد صحیح، در محدوده 1 تا 10
- این مقدار را برابر با تعداد ریسههای ایجادشده برای مدیریت برونسپاریهای سختافزاری قرار دهید.
- مقدار پیشفرض 1 است. تغییر این مقدار نیازمند راهاندازی مجدد دیمن است.
- این گزینه تنها برای مسیر داده فضای کاربری (userspace datapath) و تنها در صورتی که other_config:hw-offload فعال باشد کاربرد دارد.
- other_config : tc-policy: رشته اختیاری، یکی از none، skip_hw یا skip_sw
- سیاست مورداستفاده در برونسپاری سختافزاری را مشخص میکند. گزینهها:
- این گزینه تنها زمانی کاربرد دارد که other_config:hw-offload فعال باشد.
- مقدار پیشفرض none است.
- other_config : dpdk-init: رشته اختیاری، یکی از false، true یا try
- تنظیم این مقدار روی true یا try برای فعالسازی پشتیبانی زمان اجرا از درگاههای DPDK استفاده میشود. سوئیچ مجازی (vswitch) همچنین باید در زمان کامپایل نیز دارای پشتیبانی از DPDK باشد.
- مقدار true باعث میشود در صورت عدم امکان مقداردهی اولیه DPDK، فرایند ovs-vswitchd متوقف (abort) شود. مقدار try به فرایند ovs-vswitchd اجازه میدهد حتی اگر مقداردهی اولیه DPDK با شکست مواجه شد، به اجرای خود ادامه دهد.
- مقدار پیشفرض false است. تغییر این مقدار نیازمند راهاندازی مجدد دیمن است.
- اگر این مقدار در زمان راهاندازی false باشد، هر درگاه dpdk که روی پل پیکربندی شده باشد به دلیل خطاهای حافظه با شکست مواجه خواهد شد.
- other_config : dpdk-lcore-mask: رشته اختیاری، شامل یک عدد صحیح، حداقل 1
- هستههای پردازندهای را مشخص میکند که ریسههای dpdk lcore باید روی آنها ایجاد شوند. ریسههای DPDK lcore برای وظایف کتابخانه DPDK مانند پردازش پیامهای داخلی کتابخانه، ثبت لاگ و غیره استفاده میشوند. مقدار باید در قالب یک رشته هگزادسیمال (مانند «0x123») مشابه ورودی ماسک «taskset» باشد.
- کمارزشترین بیت مربوط به اولین هسته پردازنده است. بیت تنظیمشده (1) به این معنی است که هسته مربوطه در دسترس است و یک ریسه lcore ایجاد شده و به آن متصل (pin) میشود. اگر ورودی تمام هستهها را پوشش ندهد، هستههای پوششدادهنشده به عنوان تنظیمنشده در نظر گرفته میشوند.
- پایینترین هسته تنظیمشده در DPDK به عنوان ریسه اصلی (main thread) DPDK تخصیص مییابد. سایر بیتهای تنظیمشده توسط DPDK به عنوان ریسههای کارگر (worker threads) تخصیص خواهند یافت. از آنجا که OVS مدل چندریسمانی خود را برای مسیر داده پیادهسازی میکند (نگاه کنید به other_config:pmd-cpu-mask)، ریسههای کارگر DPDK بیاستفاده خواهند ماند.
- اگر این گزینه مشخص شود، تمامی ریسههای اصلی، گرداننده (handler) و اعتبارسنج مجدد (revalidator) OVS به هسته ریسه اصلی انتخابی DPDK متصل خواهند شد. این بدان معنی است که احتمالاً ریسههای بسیاری یک هسته پردازنده منفرد را به اشتراک میگذارند که ممکن است به دلایل کارایی مطلوب نباشد.
- اگر این گزینه مشخص نشود، مقدار اولیه برای DPDK به صورت خودکار تعیین میشود و تمام ریسههای اصلی، اعتبارسنج مجدد و گرداننده OVS روی فهرست تمایل پردازنده (cpu affinity) مربوط به OVS شناور خواهند بود.
- other_config : pmd-cpu-mask: رشته اختیاری
- ماسک پردازنده را برای تنظیم تمایل پردازنده (affinity) ریسههای درایور حالت پولینگ (PMD) مشخص میکند. مقدار باید در قالب یک رشته هگزادسیمال، مشابه گزینه «-c COREMASK» در EAL کتابخانه dpdk یا ورودی ماسک «taskset» باشد.
- کمارزشترین بیت مربوط به نخستین هسته پردازنده است. بیت تنظیمشده به این معنی است که هسته مربوطه در دسترس است و یک ریسه pmd ایجاد شده و به آن متصل میشود. اگر ورودی تمام هستهها را پوشش ندهد، آن هستههای پوششدادهنشده به عنوان تنظیمنشده در نظر گرفته میشوند.
- در صورت مشخص نشدن، به طور پیشفرض یک ریسه pmd برای هر گره NUMA ایجاد شده و به یکی از هستههای موجود در آن گره NUMA متصل میگردد.
- other_config : dpdk-alloc-mem: رشته اختیاری، شامل یک عدد صحیح، حداقل 0
- میزان حافظهای را که باید از استخر صفحات بزرگ (hugepage pool) بدون در نظر گرفتن سوکت از پیش تخصیص یابد مشخص میکند. توصیه میشود به جای آن از dpdk-socket-mem استفاده شود.
- other_config : dpdk-socket-mem: رشته اختیاری
- میزان حافظهای را که باید از استخر صفحات بزرگ (hugepage pool) به تفکیک هر سوکت پردازنده از پیش تخصیص یابد مشخص میکند.
- مشخصکننده رشتهای از مقادیر جداشده با کاما به ترتیب صعودی سوکت پردازنده است. به عنوان مثال، در سیستمی با چهار سوکت، مقدار 1024,0,2048 باعث میشود سوکت 0 مقدار 1024 مگابایت، سوکت 1 مقدار 0 مگابایت، سوکت 2 مقدار 2048 مگابایت و سوکت 3 (بدون مقدار ارائهشده) مقدار 0 مگابایت از پیش تخصیص دهند.
- اگر هیچکدام از other_config:dpdk-socket-mem و other_config:dpdk-alloc-mem مشخص نشوند، هیچیک استفاده نخواهند شد و مقدار پیشفرضی برای هر گره NUMA وجود نخواهد داشت. در عوض از مقادیر پیشفرض DPDK استفاده میشود. اگر هر دو گزینه other_config:dpdk-socket-mem و other_config:dpdk-alloc-mem به طور همزمان مشخص شوند، other_config:dpdk-socket-mem به عنوان پیشفرض در نظر گرفته میشود. تغییر این مقدار نیازمند راهاندازی مجدد دیمن است.
- other_config : dpdk-socket-limit: رشته اختیاری
- حداکثر مقدار حافظهای را که میتوان از استخر صفحات بزرگ (hugepage) به تفکیک هر سوکت استفاده کرد محدود میکند.
- مشخصکننده فهرستی از محدودیتهای حافظه به تفکیک سوکت پردازنده است که با کاما از هم جدا شدهاند. مقدار 0 محدودیت را برای یک سوکت خاص غیرفعال میکند.
- در صورت عدم تعیین، OVS به طور پیشفرض هیچ محدودیتی را پیکربندی نمیکند. تغییر این مقدار نیازمند راهاندازی مجدد دیمن است.
- other_config : dpdk-hugepage-dir: رشته اختیاری
- مسیر نقطه اتصال (mount point) مربوط به hugetlbfs را مشخص میکند.
- در صورت عدم تعیین، این مسیر توسط کتابخانه DPDK تخمین زده میشود (پیشفرض /dev/hugepages است). تغییر این مقدار نیازمند راهاندازی مجدد دیمن است.
- other_config : dpdk-probe-at-init: رشته اختیاری، یا true یا false
- مشخص میکند که آیا DPDK در زمان مقداردهی اولیه باید تمامی دستگاههای موجود را پروب (پویش/شناسایی) کند یا خیر. هنگامی که روی false (پیشفرض) تنظیم شود، OVS به DPDK دستور میدهد از پویش دستگاهها در زمان مقداردهی اولیه صرفنظر کند، مگر اینکه other_config:dpdk-extra از قبل حاوی دستگاههای مجاز یا مسدودشده باشد. این گزینه هنگام اعلان درگاههای DPDK با استفاده از ساختار نحوی class=eth,mac=XX:XX:XX:XX:XX:XX الزامی است.
- فعالسازی این گزینه به معنای مصرف منابع بیشتر است، زیرا ممکن است OVS از تمام دستگاههای پویششده استفاده نکند. همچنین ممکن است عوارض جانبی ناخواستهای مانند مدیریت وقفههای اضافی و بررسیهای وضعیت پیوند (link status) برای دستگاههای بیاستفاده ایجاد کند. به عنوان مثال، دستگاههای mlx5 وضعیت پیوند و زندهبودن را با قفلگذاری مکرر هسته بررسی میکنند، حتی زمانی که OVS تنها از زیرمجموعهای از درگاههای موجود استفاده مینماید.
- توجه داشته باشید که این گزینه زمانی که other_config:dpdk-extra حاوی دستگاههای مجاز (-a یا --allow) یا مسدودشده (-b یا --block) باشد هیچ اثری ندارد، زیرا DPDK صرفنظر از این تنظیم آن مشخصات را رعایت خواهد کرد.
- پیشفرض false است.
- other_config : dpdk-extra: رشته اختیاری
- آرگومانهای خط فرمان اضافی EAL را برای DPDK مشخص میکند.
- پیشفرض خالی است. تغییر این مقدار نیازمند راهاندازی مجدد دیمن است.
- other_config : vhost-sock-dir: رشته اختیاری
- مسیری نسبی از external_ids:rundir به فایلهای سوکت دامنه یونیکس vhost-user مشخص میکند. در صورتی که این مقدار تنظیم نشده باشد، سوکتها مستقیماً در external_ids:rundir قرار میگیرند.
- تغییر این مقدار نیازمند راهاندازی مجدد دیمن است.
- other_config : vhost-iommu-support: رشته اختیاری، یا true یا false
- قابلیت vHost IOMMU یک ویژگی امنیتی است که حافظه vhost قابل دسترسی توسط دستگاه virtio را محدود میکند. پشتیبانی از vHost IOMMU به دلیل وجود یک باگ در پیادهسازیهای QEMU از پروتکل vhost REPLY_ACK (که vHost IOMMU به آن متکی است) در نسخههای قبل از 2.9.1 به طور پیشفرض غیرفعال است. تنظیم این مقدار روی true پشتیبانی از vHost IOMMU را برای درگاههای کاربر-کلاینت vHost در OvS-DPDK، از DPDK نسخه 17.11 به بعد فعال میکند.
- تغییر این مقدار نیازمند راهاندازی مجدد دیمن است.
- other_config : vhost-postcopy-support: رشته اختیاری، یا true یا false
- قابلیت vHost post-copy ویژگیای است که امکان تغییر مهاجرت زنده (live migration) ماشین مجازی متصل به درگاه dpdkvhostuserclient به حالت post-copy را فراهم میآورد در صورتی که مهاجرت پیشفرض pre-copy همگرا نشود یا همگرایی آن بیش از حد طول بکشد. تنظیم این مقدار روی true پشتیبانی از vHost post-copy را برای تمامی درگاههای dpdkvhostuserclient فعال میسازد. از نسخه DPDK 18.11 و QEMU 2.12 به بعد در دسترس است.
- تغییر این مقدار نیازمند راهاندازی مجدد دیمن است.
- other_config : per-port-memory: رشته اختیاری، یا true یا false
- به طور پیشفرض OVS DPDK از یک مدل حافظه اشتراکی استفاده میکند که در آن دستگاههایی با مقادیر MTU و سوکت یکسان میتوانند از mempool مشترک استفاده نمایند. تنظیم این مقدار روی true این رفتار را تغییر میدهد. حافظه به ازای هر درگاه به دستگاههای DPDK اجازه میدهد برای هر دستگاه از حافظه خصوصی استفاده کنند. این کار شفافیت بیشتری در مورد میزان مصرف حافظه فراهم میکند اما به قیمت نیاز بالقوه به حافظه بیشتر تمام میشود.
- اگر dpdk-init از قبل روی true تنظیم شده باشد، تغییر این مقدار نیازمند راهاندازی مجدد دیمن است.
- other_config : shared-mempool-config: رشته اختیاری
- پیکربندی mempool اشتراکی dpdk را مشخص میکند.
- مقدار باید به شکل زیر تنظیم شود:
- other_config:shared-mempool-config=< user-shared-mempool-mtu-list>
- که در آن:
- <user-shared-mempool-mtu-list> ::= NULL | <non-empty-list>
- <non-empty-list> ::= <user-mtus> | <user-mtus> , <non-empty-list>
- <user-mtus> ::= <mtu-all-socket> | <mtu-socket-pair>
- <mtu-all-socket> ::= <mtu>
- <mtu-socket-pair> ::= <mtu> : <socket-id>
- اگر dpdk-init از قبل روی true تنظیم شده باشد، تغییر این مقدار نیازمند راهاندازی مجدد دیمن است.
- other_config : tx-flush-interval: رشته اختیاری، شامل یک عدد صحیح، در محدوده 0 تا 1,000,000
- مدت زمانی را بر حسب میکروثانیه مشخص میکند که یک بسته میتواند در دسته خروجی (output batch) برای ارسال منتظر بماند؛ یعنی مدت زمانی که بسته میتواند در یک صف خروجی میانی قبل از ارسال به netdev سپری کند. از این گزینه میتوان برای برقراری تعادل میان پهنای باند گذردهی (throughput) و تأخیر (latency) استفاده کرد. مقادیر کمتر تأخیر را کاهش میدهند در حالی که مقادیر بیشتر ممکن است برای دستیابی به کارایی بالاتر مفید باشند.
- پیشفرض 0 است، یعنی ارسال فوری بسته (بهینهشده برای کمترین تأخیر).
- other_config : pmd-perf-metrics: رشته اختیاری، یا true یا false
- ثبت معیارهای تفصیلی کارایی درایور حالت پولینگ (PMD) را برای تجزیه و تحلیل و عیبیابی فعال میکند. این کار میتواند تأثیری در حدود 1% بر کارایی داشته باشد.
- پیشفرض false است اما در هر زمانی قابل تغییر است.
- other_config : smc-enable: رشته اختیاری، یا true یا false
- حافظه موقت تطابق امضا (Signature Match Cache) یا SMC یک حافظه موقت میان EMC و حافظه موقت مگافلو (megaflow) است. این حافظه کلید کامل جریان را ذخیره نمیکند، بنابراین در مقایسه با حافظه موقت EMC از نظر مصرف حافظه بهینهتر است. حافظه موقت SMC بهویژه زمانی مفید است که تعداد جریانها بیشتر از ظرفیت EMC باشد.
- پیشفرض false است اما در هر زمانی قابل تغییر است.
- other_config : pmd-rxq-assign: رشته اختیاری، یکی از cycles، group یا roundrobin
- چگونگی تخصیص خودکار صفهای RX (صفهای دریافت) را به هستههای پردازنده مشخص میکند. گزینهها:
- cycles
- صفهای دریافت (Rxqs) قبل از تخصیص به هستههای پردازنده، بر اساس چرخههای پردازشی اندازهگیریشده مرتب میشوند.
- roundrobin
- صفهای دریافت به روش نوبتگردشی (round-robin) میان هستههای پردازنده توزیع میشوند.
- group
- صفهای دریافت بر اساس چرخههای پردازشی اندازهگیریشده مرتب شده و سپس به هستههای پردازندهای با کمترین بار تخمینی تخصیص مییابند.
- مقدار پیشفرض cycles است.
- تغییر این مقدار بر تخصیص مجدد خودکار صفهای Rxq به پردازندهها تأثیر میگذارد. توجه: صفهای Rxq که با pmd-rxq-affinity به هستههای پردازنده نگاشت شدهاند، تحت تأثیر قرار نمیگیرند.
- other_config : pmd-rxq-isolate: رشته اختیاری، یا true یا false
- مشخص میکند که آیا یک هسته پردازنده پس از اتصال (pin) به یک صف Rx ایزوله میشود یا خیر.
- این مقدار را روی false تنظیم کنید تا یک هسته پردازنده پس از اتصال به یک Rxq با استفاده از pmd-rxq-affinity، از حالت ایزوله خارج شود. این کار به OVS اجازه میدهد سایر صفهای Rxq را نیز به آن هسته پردازنده تخصیص دهد.
- مقدار پیشفرض true است.
- این مقدار تنها زمانی میتواند false باشد که pmd-rxq-assign روی group تنظیم شده باشد.
- other_config : n-handler-threads: رشته اختیاری، شامل یک عدد صحیح، حداقل 1
- تلاش میکند تعداد ریسههایی را که مسیرهای داده نرمافزاری برای پردازش جریانهای جدید استفاده میکنند مشخص کند. برخی از مسیرهای داده ممکن است از این تنظیم صرفنظر کرده و آن را بر اساس گزینه معقولی برای نوع مسیر داده تعیین نمایند.
- این پیکربندی به ازای هر مسیر داده است. اگر بیش از یک مسیر داده نرمافزاری داشته باشید (به عنوان مثال، تعدادی پل system و تعدادی پل netdev)، در این صورت تعداد کل ریسهها برابر با n-handler-threads ضرب در تعداد مسیرهای داده نرمافزاری خواهد بود.
- other_config : n-revalidator-threads: رشته اختیاری، شامل یک عدد صحیح، حداقل 1
- تلاش میکند تعداد ریسههایی را که مسیرهای داده نرمافزاری برای اعتبارسنجی مجدد جریانها در مسیر داده استفاده میکنند مشخص کند. برخی از مسیرهای داده ممکن است از این تنظیم صرفنظر کرده و آن را بر اساس گزینهای معقول برای نوع مسیر داده تعیین نمایند.
- معمولاً یک همبستگی مستقیم میان تعداد ریسههای اعتبارسنج مجدد (revalidator threads) و تعداد جریانهای مجاز در مسیر داده وجود دارد. مقدار پیشفرض برابر با تعداد هستههای پردازنده تقسیم بر چهار به علاوه یک است. اگر n-handler-threads تنظیم شده باشد، مقدار پیشفرض به تعداد هستههای پردازنده منهای تعداد ریسههای گرداننده تغییر میکند.
- این پیکربندی به ازای هر مسیر داده است. اگر بیش از یک مسیر داده نرمافزاری داشته باشید (به عنوان مثال، تعدادی پل system و تعدادی پل netdev)، تعداد کل ریسهها برابر با n-handler-threads ضرب در تعداد مسیرهای داده نرمافزاری خواهد بود.
- other_config : emc-insert-inv-prob: رشته اختیاری، شامل یک عدد صحیح، در محدوده 0 تا 4,294,967,295
- احتمال معکوس (1/emc-insert-inv-prob) درج یک جریان در حافظه موقت تطابق دقیق (EMC - Exact Match Cache) را مشخص میکند. به طور میانگین از هر emc-insert-inv-prob بستهای که یک جریان یکتا ایجاد میکنند، یک بسته باعث درج در EMC میشود. مقدار 1 منجر به درج برای هر جریان میشود (1/1 = 100%)، در حالی که مقدار صفر به عدم درج و در اصل غیرفعال شدن EMC میانجامد.
- پیشفرض 100 است؛ یعنی شانس درج در EMC برابر با 1% (1/100 =) است.
- other_config : vlan-limit: رشته اختیاری، شامل یک عدد صحیح، حداقل 0
- تعداد هدرهای VLAN را که میتوان تطابق داد به مقدار مشخصشده محدود میکند. هدرهای VLAN بعدی به عنوان بار داده (payload) در نظر گرفته میشوند؛ برای مثال، بستهای با هدرهای 802.1q بیشتر، با نوع اترنت 0x8100 تطابق داده خواهد شد.
- فضای کاربری Open vSwitch در حال حاضر حداکثر از 2 هدر VLAN پشتیبانی میکند و هر مسیر داده حد اختصاصی خود را دارد. اگر vlan-limit غیرصفر باشد، به عنوان یک محدودیت اضافی عمل میکند.
- اگر این مقدار وجود نداشته باشد، پیشفرض کنونی 1 است. این امر سازگاری رو به عقب را با کنترلکنندههایی که برای استفاده با نسخههای Open vSwitch قدیمیتر از 2.8 (که فقط از یک VLAN پشتیبانی میکردند) طراحی شده بودند حفظ میکند.
- other_config : bundle-idle-timeout: رشته اختیاری، شامل یک عدد صحیح، حداقل 1
- حداکثر زمانی (به ثانیه) که دستههای (bundles) غیرفعال از زمان باز شدن، تغییر یافتن یا بسته شدن پیش از منقضی شدن منتظر میمانند.
- مشخصات OpenFlow حکم میکند که این مهلت زمانی باید حداقل یک ثانیه باشد. مقدار پیشفرض 10 ثانیه است.
- other_config : offload-rebalance: رشته اختیاری، یا true یا false
- تعادلبخشی مجدد برونسپاری سختافزاری (HW offload rebalancing) را پیکربندی میکند که امکان برونسپاری و لغو برونسپاری پویای جریانها را در زمان اتمام منابع دستگاه برونسپاری (OOR - Out of Resources) فراهم میسازد. این سیاست اجازه میدهد جریانها بر اساس نرخ بسته بر ثانیه (pps) برای برونسپاری انتخاب شوند.
- این مقدار را روی true قرار دهید تا این گزینه فعال شود.
- مقدار پیشفرض false است. تغییر این مقدار نیازمند راهاندازی مجدد دیمن است.
- این گزینه تنها زمانی کاربرد دارد که برونسپاری سختافزاری فعال باشد (hw-offload). هنگامی که این سیاست فعال شود، همچنین لازم است مقدار «tc-policy» روی «skip_sw» تنظیم شود.
- other_config : pmd-auto-lb: رشته اختیاری، یا true یا false
- تعادل بار خودکار PMD (درایور حالت پولینگ) را پیکربندی میکند که در صورت بار اضافی روی هر یک از PMDها (یعنی چرخههای پردازشی > other_config:pmd-auto-lb-load-threshold)، امکان تخصیص خودکار صفهای RX به PMDها را فراهم میسازد.
- این قابلیت از طرح جاری تخصیص مبتنی بر چرخه برای صفهای RX که به صورت ایستا به PMDها متصل نشدهاند استفاده میکند.
- مقدار پیشفرض false است.
- این مقدار را روی true تنظیم کنید تا این گزینه فعال شود. این ویژگی در حال حاضر به طور پیشفرض غیرفعال و یک قابلیت آزمایشی است.
- این گزینه تنها در صورتی اثرگذار است که تخصیص مبتنی بر چرخه فعال باشد و بیش از یک PMD غیریزوله وجود داشته باشد و حداقل یکی از آنها بیش از یک صف را پیمایش (poll) کند.
- other_config : pmd-auto-lb-rebal-interval: رشته اختیاری، شامل یک عدد صحیح، در محدوده 0 تا 20,000
- حداقل زمان (به دقیقه) میان ۲ تکرار متوالی تعادل بار خودکار PMD.
- مقدار پیشفرض 1 دقیقه است. در صورت تنظیم روی 0، به مقدار پیشفرض یعنی 1 دقیقه تبدیل میشود.
- این گزینه را میتوان برای جلوگیری از راهاندازی مکرر تعادل بار خودکار PMDها پیکربندی کرد؛ به عنوان مثال، مقدار را (به دقیقه) طوری تنظیم کنید که هر چند ساعت یکبار، یکبار در روز یا یکبار در هفته رخ دهد.
- other_config : pmd-auto-lb-load-threshold: رشته اختیاری، شامل یک عدد صحیح، در محدوده 0 تا 100
- حداقل آستانه بار ریسه PMD (درصد چرخههای مصرفشده) هر یک از ریسههای PMD غیریزوله را که در آن تعادل بار خودکار PMD ممکن است راهاندازی شود مشخص میکند.
- مقدار پیشفرض 95% است.
- other_config : pmd-auto-lb-improvement-threshold: رشته اختیاری، شامل یک عدد صحیح، در محدوده 0 تا 100
- حداقل درصد بهبود ارزیابیشده در توزیع بار میان ریسههای PMD غیریزوله را که اجازه وقوع تعادل بار خودکار PMD را میدهد مشخص میکند.
- توجه داشته باشید که تنظیم این پارامتر روی 0 باعث میشود صرفنظر از اینکه بهبود تخمینی وجود داشته باشد یا خیر، تعادل بار خودکار همیشه مجاز به اجرا باشد.
- مقدار پیشفرض 25% است.
- other_config : pmd-sleep-max: رشته اختیاری
- حداکثر زمان خواب درخواستی را به میکروثانیه در هر تکرار برای یک ریسه PMD که صفر یا تعداد کمی بسته از صفهای Rx در حال پیمایش خود دریافت کرده است مشخص میکند.
- زمان خواب درخواستی واقعی بر اساس بار صفهای Rx که PMD پیمایش میکند تعیین میشود و ممکن است کمتر از مقدار حداکثر باشد.
- مقدار پیشفرض 0 میکروثانیه است، به این معنی که PMD صرفنظر از بار صفهای Rx که پیمایش میکند، به خواب نخواهد رفت.
- حداکثر مقدار 10000 میکروثانیه است.
- other_config:pmd-sleep-max=<pmd-sleep-list>
- که در آن:
- <pmd-sleep-list> ::= NULL | <non-empty-list>
- <non-empty-list> ::= <pmd-sleep-value> | <pmd-sleep-value> , <non-empty-list>
- <pmd-sleep-value> ::= <global-default-sleep-value> | <pmd-core-sleep-pair>
- <global-default-sleep-value> ::= <max-sleep-time>
- <pmd-core-sleep-pair> ::= <core> : <max-sleep-time>
- other_config : userspace-tso-enable: رشته اختیاری، یا true یا false
- این مقدار را روی true قرار دهید تا پشتیبانی فضای کاربری از برونسپاری قطعهبندی تیسیپی (TCP Segmentation Offloading یا TSO) فعال شود. وقتی این ویژگی فعال باشد، رابطها میتوانند قطعه TCP بزرگتر از اندازه معمول را در اختیار مسیر داده قرار دهند و مسیر داده در صورت لزوم قطعهبندی TCP و محاسبه چکسام (checksum) را به رابطها برونسپاری خواهد کرد.
- مقدار پیشفرض false است. تغییر این مقدار نیازمند راهاندازی مجدد دیمن است.
- این قابلیت تنها در صورتی کار میکند که Open vSwitch با پشتیبانی از DPDK ساخته شده باشد.
- این قابلیت آزمایشی تلقی میشود.
- other_config : explicit-sampled-drops: رشته اختیاری، یا true یا false
- هنگامی که یک جریان در مسیر داده با فهرست عملیات خالی نصب میشود، نشاندهنده یک اقدام انداختن (drop) ضمنی است. بیشتر مسیرهای داده این رویداد را برای آمارگیری و نظارت (به روشهای ویژه هر مسیر داده) گزارش میکنند.
- با این حال، اگر هر یک از قابلیتهای نمونهبرداری به ازای هر پل یا به ازای هر جریان فعال باشند (مانند: sFlow، IPFIX یا نمونهبرداری محلی)، ممکن است فهرست عملیات خالی نباشد بلکه حاوی اقدامی برای پیادهسازی این قابلیت باشد. این موضوع باعث میشود که مسیرهای داده، انداختن بسته را گزارش نکنند.
- این تنظیم باعث میشود Open vSwitch تشخیص دهد که آیا آخرین اقدام مسیر داده ناشی از این قابلیتهای نمونهبرداری است یا خیر، و یک اقدام انداختن صریح در انتها اضافه کند تا آمار بستههای انداختهشده دقیق باقی بماند.
- مقدار پیشفرض false است.
- next_cfg: عدد صحیح
- شماره ترتیبی (Sequence number) برای افزایش توسط کلاینت. وقتی کلاینت بخشی از پیکربندی پایگاهداده را تغییر میدهد و مایل است منتظر بماند تا Open vSwitch اعمال تغییرات را به پایان برساند، میتواند این شماره ترتیبی را افزایش دهد.
- cur_cfg: عدد صحیح
- شماره ترتیبی که Open vSwitch پس از پایان اعمال مجموعهای از تغییرات پیکربندی، آن را برابر با مقدار جاری next_cfg قرار میدهد.
- dpdk_initialized: بولی (boolean)
- در صورتی که other_config:dpdk-init روی true تنظیم شده باشد و کتابخانه DPDK با موفقیت مقداردهی اولیه شده باشد، مقدار آن True است.
ستون statistics شامل جفتهای کلید-مقداری است که آمارهای سیستمی را که Open vSwitch روی آن اجرا میشود گزارش میدهند. این مقادیر به صورت دورهای (در حال حاضر، هر ۵ ثانیه یکبار) بهروزرسانی میشوند. جفتهای کلید-مقداری که قابل تشخیص نیستند یا برای یک پلتفرم خاص کاربرد ندارند حذف میشوند.
- other_config : enable-statistics: رشته اختیاری، یا true یا false
- آمارها به طور پیشفرض غیرفعال هستند تا از سربار اضافی در شرایط معمول که جمعآوری آمار سودی ندارد جلوگیری شود. این مقدار را روی true تنظیم کنید تا پر کردن ستون statistics فعال شود یا روی false تا به طور صریح غیرفعال گردد.
- statistics : cpu: رشته اختیاری، شامل یک عدد صحیح، حداقل 1
- تعداد پردازندهها، ریسهها یا هستههای پردازنده (CPU) که در حال حاضر آنلاین و در دسترس سیستمعاملی هستند که Open vSwitch روی آن اجرا میشود، به عنوان یک عدد صحیح. این مقدار ممکن است کمتر از تعداد نصبشده باشد، در صورتی که برخی از آنها آنلاین نباشند یا در دسترس سیستمعامل قرار نگرفته باشند.
- statistics : load_average: رشته اختیاری
- فهرستی جداشده با کاما از سه عدد ممیز شناور که میانگین بار سیستم (load average) را به ترتیب در ۱، ۵ و ۱۵ دقیقه گذشته نشان میدهند.
- statistics : memory: رشته اختیاری
- فهرستی جداشده با کاما از اعداد صحیح که هر کدام نشاندهنده مقداری از حافظه بر حسب کیلوبایت هستند که سیستمعامل میزبان Open vSwitch را توصیف میکنند. به ترتیب، این مقادیر عبارتند از:
- 1.
- کل مقدار رم (RAM) تخصیصیافته به سیستمعامل.
- 2.
- مقدار رم تخصیصیافته به سیستمعامل که در حال استفاده است.
- 3.
- مقدار رَمی که در صورت نیاز به آن فضا برای منظوری دیگر، میتواند روی دیسک تخلیه شده یا به هر نحو دیگری آزاد شود. این عدد الزاماً کمتر یا مساوی با مقدار قبلی است.
- 4.
- کل فضای دیسک تخصیصیافته برای حافظه مجازی تعویض (swap).
- 5.
- فضای swap که در حال حاضر استفاده میشود.
- در لینوکس، هر پنج مقدار قابل تعیین هستند و گنجانده میشوند. در سایر سیستمهای عامل، تنها دو مقدار اول قابل تعیین هستند، بنابراین فهرست تنها شامل دو مقدار خواهد بود.
- statistics : process_NAME: رشته اختیاری
- یک چنین جفت کلید-مقداری، با جایگزینی NAME با نام فرایند، برای هر یک از فرایندهای دیمن در حال اجرای Open vSwitch وجود خواهد داشت که در آن name با نام دیمن جایگزین میشود (مانند process_ovs-vswitchd). مقدار آن فهرستی جداشده با کاما از اعداد صحیح است. این اعداد صحیح نشاندهنده موارد زیر هستند که در آنها حافظه با کیلوبایت و مدتزمانها با میلیثانیه سنجیده میشوند:
- 1.
- اندازه حافظه مجازی (virtual memory size) فرایند.
- 2.
- اندازه مقیم در حافظه (resident set size) فرایند.
- 3.
- میزان زمان پردازنده مصرفشده توسط کاربر و سیستم برای این فرایند.
- 4.
- تعداد دفعاتی که فرایند دچار کرش شده و به طور خودکار توسط ناظر (monitor) بازراهاندازی شده است.
- 5.
- مدتزمان سپریشده از زمان شروع فرایند.
- 6.
- مدتزمانی که فرایند به طور پیوسته در حال اجرا بوده است.
- تفسیر برخی از این مقادیر بستگی به این دارد که آیا فرایند با گزینه --monitor راهاندازی شده است یا خیر. اگر بدون آن راهاندازی شده باشد، شمارنده کرش همواره 0 خواهد بود و دو مدتزمان ذکرشده همواره یکسان خواهند بود. اگر --monitor داده شده باشد، شمارنده کرش ممکن است مثبت باشد؛ در این حالت، مدتزمان دوم نشاندهنده مدتزمان سپریشده پس از آخرین کرش و راهاندازی مجدد است.
- برای هر فایل در «دایرکتوری اجرای» Open vSwitch (معمولاً /var/run/openvswitch) که نام آن به .pid ختم میشود، محتوای آن شناسه فرایند (PID) است و توسط یک فرایند در حال اجرا قفل شده است، یک جفت کلید-مقدار وجود خواهد داشت. نام name از نام همان فایل pid گرفته میشود.
- در حال حاضر Open vSwitch تنها در سیستمهای لینوکس قادر است تمام جزئیات فوق را به دست آورد. در سایر سیستمها، همان جفتهای کلید-مقدار حضور خواهند داشت اما مقادیر آنها همیشه رشتهای خالی خواهد بود.
- statistics : file_systems: رشته اختیاری
- فهرستی جداشده با فاصله از اطلاعات مربوط به سیستمفایلهای محلی و قابل نوشتن. هر مورد در این فهرست یک سیستمفایل را توصیف میکند و به نوبه خود شامل فهرستی جداشده با کاما از موارد زیر است:
- 1.
- نقطه اتصال (Mount point)، به عنوان مثال / یا /var/log. هرگونه فاصله یا کاما در نقطه اتصال با زیرخط (underscore) جایگزین میشود.
- 2.
- حجم کل، به کیلوبایت، به صورت یک عدد صحیح.
- 3.
- مقدار فضای ذخیرهسازی در حال استفاده، به کیلوبایت، به صورت یک عدد صحیح.
- اگر هیچ سیستمفایل محلی و قابل نوشتنی وجود نداشته باشد یا Open vSwitch نتواند اطلاعات مورد نیاز را به دست آورد، این جفت کلید-مقدار حذف میشود.
این ستونها نوع و نسخه سختافزار و نرمافزار میزبان اجرای Open vSwitch را گزارش میدهند. ما به طور کلی توصیه میکنیم نرمافزارها به جای تکیه بر بررسی شماره نسخه، پشتیبانی از ویژگیهای خاص را بررسی کنند. این مقادیر در درجه اول برای گزارش به مدیران انسانی در نظر گرفته شدهاند.
- ovs_version: رشته اختیاری
- شماره نسخه Open vSwitch، به عنوان مثال 1.1.0.
- db_version: رشته اختیاری
- شماره نسخه طرحواره (schema) پایگاهداده، به عنوان مثال 1.2.3. برای توضیحات درباره طرح شمارهگذاری به ovsdb-tool(1) مراجعه کنید.
- نسخه طرحواره بخشی از طرحواره پایگاهداده است، بنابراین میتوان آن را با واکشی طرحواره از طریق پروتکل پایگاهداده Open vSwitch نیز به دست آورد.
- system_type: رشته اختیاری
- شناسهای برای نوع سیستمی که Open vSwitch روی آن اجرا میشود، به عنوان مثال KVM.
- یکپارچهسازان سیستم مسئول انتخاب و تنظیم مقدار مناسب برای این ستون هستند.
- system_version: رشته اختیاری
- نسخه سیستمی که با system_type مشخص شده است، به عنوان مثال 4.18.0-372.19.1.el8_6 روی RHEL 8.6 با هسته لینوکس 4.18.0-372.19.1.
- یکپارچهسازان سیستم مسئول انتخاب و تنظیم مقدار مناسب برای این ستون هستند.
- dpdk_version: رشته اختیاری
- نسخه کتابخانه لینکشده DPDK.
این ستونها قابلیتهای نمونه (instance) فعال Open vSwitch را گزارش میدهند.
- datapath_types: مجموعهای از رشتهها
- این ستون dpifهای مختلف ثبتشده در سیستم را گزارش میدهد. اینها مقادیری هستند که این نمونه در ستون datapath_type از جدول Bridge پشتیبانی میکند.
- iface_types: مجموعهای از رشتهها
- این ستون netdevهای مختلف ثبتشده در سیستم را گزارش میدهد. اینها مقادیری هستند که این نمونه در ستون type از جدول Interface پشتیبانی میکند.
این ستونها در درجه اول پایگاهداده Open vSwitch (ovsdb-server) را پیکربندی میکنند، نه سوئیچ Open vSwitch (ovs-vswitchd) را. پایگاهداده OVSDB همچنین از تنظیمات ssl استفاده میکند.
سوئیچ Open vSwitch پیکربندی پایگاهداده را میخواند تا آدرسهای IP راه دور را که کنترل درونباندی (in-band control) باید روی آنها اعمال شود تعیین کند.
- manager_options: مجموعهای از Managerها
- کلاینتهای پایگاهداده که سرور پایگاهداده Open vSwitch باید به آنها متصل شود یا به آنها گوش فرا دهد، همراه با گزینههایی برای نحوه پیکربندی این اتصالات. برای اطلاعات بیشتر جدول Manager را ببینید.
- برای اینکه این ستون به هدف خود برسد، ovsdb-server باید طوری پیکربندی شود که به آن توجه کند. سادهترین راه برای انجام این کار، اجرای ovsdb-server با گزینه --remote=db:Open_vSwitch,Open_vSwitch,manager_options است. اسکریپتهای راهاندازی ارائهشده همراه با Open vSwitch این کار را به طور پیشفرض انجام میدهند.
این تنظیمات، پیکربندی سراسری تونلهای IPsec را کنترل میکنند. ستون options در جدول Interface، آیپیسک را برای تکتک تونلها پیکربندی میکند. ستون options همچنین امکان انتقال گزینههای سفارشی با پیشوند ipsec_ را به اتصالات جداگانه فراهم میسازد.
بخش IPsec در OVS از سه روش احراز هویت زیر پشتیبانی میکند. در حال حاضر، تمام تونلهای IPsec باید از یک روش مشابه استفاده کنند:
- 1.
- کلیدهای از پیش به اشتراک گذاشتهشده (Pre-shared keys): صرفنظر کردن از تنظیمات سراسری. در هر تونل، مقدار options:psk را تنظیم کنید.
- 2.
- گواهیهای خودامضا (Self-signed certificates): مقادیر سراسری private_key و certificate را تنظیم کنید. در هر تونل، مقدار options:remote_cert را تنظیم کنید. گواهی راه دور میتواند خودامضا باشد.
- 3.
- گواهیهای امضاشده توسط مراجع صدور گواهی (CA-signed certificates): تمامی تنظیمات سراسری را تنظیم کنید. در هر تونل، options:remote_name را روی نام عمومی (CN) گواهی راه دور تنظیم کنید. گواهی راه دور باید توسط CA امضا شده باشد.
- other_config : private_key: رشته اختیاری
- نام یک فایل PEM حاوی کلید خصوصی که به عنوان هویت سوئیچ برای تونلهای IPsec استفاده میشود.
- other_config : certificate: رشته اختیاری
- نام یک فایل PEM حاوی گواهیای که کلید خصوصی سوئیچ را تأیید میکند و یک سوئیچ قابل اعتماد را برای تونلهای IPsec مشخص میسازد. این گواهی باید از نوع x.509 نسخه 3 بوده و رشته موجود در نام عمومی (CN) آن در نام جایگزین موضوع (SAN) نیز تنظیم شده باشد.
- other_config : ca_cert: رشته اختیاری
- نام یک فایل PEM حاوی گواهی CA که برای تأیید قابل اعتماد بودن سوئیچ راه دور تونل IPsec استفاده میشود.
هنگامی که یک تونل IPsec در این پایگاهداده پیکربندی میشود، چندین جزء مستقل مسئولیت پیادهسازی آن را بر عهده میگیرند. دیمن ovs-vswitchd و مسیر داده (datapath) آن ارسال بسته به تونل را مدیریت میکنند و یک دیمن جداگانه پیکربندی سیاست IPsec تونل را به هسته لینوکس یا موجودیت دیگری که آن را پیادهسازی میکند ارسال مینماید. در اینجا شرایط مسابقه (race condition) وجود دارد: اگر پیکربندی اولیه پیش از پیکربندی دومی تکمیل شود، بستههای ارسالشده توسط میزبان محلی از طریق تونل ممکن است به صورت متنآشکار (plaintext) مخابره شوند. با استفاده از این تنظیم، کاربران OVS میتوانند از این وضعیت نامطلوب جلوگیری کنند.
- other_config : ipsec_skb_mark: رشته اختیاری
- این تنظیم به شکل value/mask است. اگر مشخص شود، فیلد skb_mark در هر بسته تونلشده خروجی که به صورت متنآشکار ارسال میشود با آن مقایسه میگردد و در صورت تطابق، بسته دور انداخته (drop) میشود. این یک تنظیم سراسری است که برای هر بسته تونلشده اعمال میشود، صرفنظر از اینکه رمزنگاری IPsec برای تونل فعال باشد یا خیر، نوع تونل چه باشد یا اینکه آیا OVS در آن دخیل است یا خیر.
- نمونه سیاستها:
- 1/1
- انداختن تمام بستههای تونلشده رمزنگارینشده که کمارزشترین بیت skb_mark در آنها 1 است. این یک سیاست مفید با فرض وجود جدول جریان OpenFlow است که skb_mark را برای ترافیکی که باید رمزنگاری شود روی 1 تنظیم میکند. مقدار پیشفرض skb_mark برابر با 0 است، بنابراین این امر بر سایر ترافیکها تأثیری نخواهد گذاشت.
- 0/1
- انداختن تمام بستههای تونلشده رمزنگارینشده که کمارزشترین بیت skb_mark در آنها 0 است. این سیاست زمانی مفید خواهد بود که هیچ ترافیک تونلشده رمزنگارینشدهای نباید بدون مجوز ویژه با تنظیم skb_mark روی 1 از سیستم خارج شود.
- (خالی)
- اگر این تنظیم خالی باشد یا مقداردهی نشده باشد، در این صورت تمام بستههای تونلشده رمزنگارینشده به شیوه معمول منتقل میشوند.
هدف کلی این ستونها ذیل ستونهای مشترک (Common Columns) در ابتدای این سند توصیف شده است.
جدول Bridge (Bridge TABLE)
پیکربندی برای یک پل (bridge) درون یک Open_vSwitch.
یک رکورد Bridge نمایانگر یک سوییچ اترنت با یک یا چند «پورت» است، که همان رکوردهای Port هستند که ستون ports در Bridge به آنها اشاره میکند.
چکیده (Summary):
- ویژگیهای اصلی (Core Features):
- name
- رشته
تغییرناپذیر
(باید در
جدول یکتا
باشد)
- ports
- مجموعهای
از Portها
- mirrors
- مجموعهای
از Mirrorها
- netflow
- NetFlow اختیاری
- sflow
- sFlow اختیاری
- ipfix
- IPFIX اختیاری
- flood_vlans
- مجموعهای
از حداکثر
۴٬۰۹۶ عدد
صحیح، در
محدوده ۰ تا
۴٬۰۹۵
- auto_attach
- AutoAttach اختیاری
- پیکربندی OpenFlow (OpenFlow Configuration):
- controller
- مجموعهای
از Controllerها
- flow_tables
- نگاشتی از
جفتهای
عدد
صحیح-Flow_Table،
کلید در
محدوده ۰ تا
۲۵۴
- fail_mode
- رشته
اختیاری،
یا secure یا standalone
- datapath_id
- رشته
اختیاری
- datapath_version
- رشته
- other_config : datapath-id
- رشته
اختیاری
- other_config : dp-desc
- رشته
اختیاری
- other_config : dp-sn
- رشته
اختیاری
- other_config : disable-in-band
- رشته
اختیاری،
یا true یا false
- other_config : in-band-queue
- رشته
اختیاری،
شامل یک عدد
صحیح، در
محدوده ۰ تا
۴٬۲۹۴٬۹۶۷٬۲۹۵
- other_config : controller-queue-size
- رشته
اختیاری،
شامل یک عدد
صحیح، در
محدوده ۱ تا
۵۱۲
- protocols
- مجموعهای از رشتهها، یکی از OpenFlow10، OpenFlow11، OpenFlow12، OpenFlow13، OpenFlow14 یا OpenFlow15
- پیکربندی درخت پوشا (Spanning Tree Configuration):
- پیکربندی STP (STP Configuration):
- stp_enable
- بولی (boolean)
- other_config : stp-system-id
- رشته
اختیاری
- other_config : stp-priority
- رشته
اختیاری،
شامل یک عدد
صحیح، در
محدوده ۰ تا
۶۵٬۵۳۵
- other_config : stp-hello-time
- رشته
اختیاری،
شامل یک عدد
صحیح، در
محدوده ۱ تا
۱۰
- other_config : stp-max-age
- رشته
اختیاری،
شامل یک عدد
صحیح، در
محدوده ۶ تا
۴۰
- other_config : stp-forward-delay
- رشته
اختیاری،
شامل یک عدد
صحیح، در
محدوده ۴ تا
۳۰
- other_config : mcast-snooping-aging-time
- رشته
اختیاری،
شامل یک عدد
صحیح،
دستکم ۱
- other_config : mcast-snooping-table-size
- رشته
اختیاری،
شامل یک عدد
صحیح،
دستکم ۱
- other_config : mcast-snooping-disable-flood-unregistered
- رشته اختیاری، یا true یا false
- وضعیت STP (STP Status):
- status : stp_bridge_id
- رشته
اختیاری
- status : stp_designated_root
- رشته
اختیاری
- status : stp_root_path_cost
- رشته اختیاری
- درخت پوشای سریع (Rapid Spanning Tree):
- پیکربندی RSTP (RSTP Configuration):
- rstp_enable
- بولی (boolean)
- other_config : rstp-address
- رشته
اختیاری
- other_config : rstp-priority
- رشته
اختیاری،
شامل یک عدد
صحیح، در
محدوده ۰ تا
۶۱٬۴۴۰
- other_config : rstp-ageing-time
- رشته
اختیاری،
شامل یک عدد
صحیح، در
محدوده ۱۰
تا
۱٬۰۰۰٬۰۰۰
- other_config : rstp-force-protocol-version
- رشته
اختیاری،
شامل یک عدد
صحیح
- other_config : rstp-max-age
- رشته
اختیاری،
شامل یک عدد
صحیح، در
محدوده ۶ تا
۴۰
- other_config : rstp-forward-delay
- رشته
اختیاری،
شامل یک عدد
صحیح، در
محدوده ۴ تا
۳۰
- other_config : rstp-transmit-hold-count
- رشته اختیاری، شامل یک عدد صحیح، در محدوده ۱ تا ۱۰
- وضعیت RSTP (RSTP Status):
- rstp_status : rstp_bridge_id
- رشته
اختیاری
- rstp_status : rstp_root_id
- رشته
اختیاری
- rstp_status : rstp_root_path_cost
- رشته
اختیاری،
شامل یک عدد
صحیح،
دستکم ۰
- rstp_status : rstp_designated_id
- رشته
اختیاری
- rstp_status : rstp_designated_port_id
- رشته
اختیاری
- rstp_status : rstp_bridge_port_id
- رشته اختیاری
- پیکربندی اسنوپینگ چندپخشی (Multicast Snooping Configuration):
- mcast_snooping_enable
- بولی (boolean)
- سایر ویژگیها (Other Features):
- datapath_type
- رشته
- external_ids : bridge-id
- رشته
اختیاری
- other_config : hwaddr
- رشته
اختیاری
- other_config : forward-bpdu
- رشته
اختیاری،
یا true یا false
- other_config : mac-aging-time
- رشته
اختیاری،
شامل یک عدد
صحیح،
دستکم ۱
- other_config : mac-table-size
- رشته اختیاری، شامل یک عدد صحیح، دستکم ۱
- ستونهای مشترک (Common Columns):
- other_config
- نگاشتی از
جفتهای
رشته-رشته
- external_ids
- نگاشتی از جفتهای رشته-رشته
جزئیات (Details):
- name: immutable string (must be unique within table)
- شناسه پل. باید در میان نام پورتها، رابطها و پلهای روی یک میزبان یکتا باشد.
- نام باید الفبایی-عددی باشد و نباید شامل اسلش رو به جلو یا رو به عقب باشد. نام پل همچنین نام یک Interface (و یک Port) درون پل است، بنابراین محدودیتهای ستون name در جدول Interface، بهویژه در مورد طول، برای نامهای پل نیز اعمال میشود. برای جزئیات به مستندات نامهای Interface مراجعه کنید.
- ports: set of Ports
- پورتهای گنجاندهشده در پل.
- mirrors: set of Mirrors
- پیکربندی آینهسازی پورت (Port mirroring).
- netflow: optional NetFlow
- پیکربندی NetFlow.
- sflow: optional sFlow
- پیکربندی sFlow(R).
- ipfix: optional IPFIX
- پیکربندی IPFIX.
- flood_vlans: set of up to 4,096 integers, in range 0 to 4,095
- شناسههای VLAN مربوط به VLANهایی که یادگیری آدرس MAC روی آنها باید غیرفعال شود، تا بستهها بهجای ارسال به پورتهای خاصی که تصور میشود حاوی MAC مقصد بستهها هستند، به صورت سیلابی (flood) ارسال شوند. این گزینه معمولاً باید برای غیرفعال کردن یادگیری MAC در VLANهای مورد استفاده برای آینهسازی (RSPAN VLANها) استفاده شود. همچنین ممکن است برای اشکالزدایی مفید باشد.
- پیوند SLB (به ستون bond_mode در جدول Port مراجعه کنید) با flood_vlans ناسازگار است. استفاده از حالت پیوند دیگر یا نوع متفاوتی از آینهسازی را در نظر بگیرید.
- auto_attach: optional AutoAttach
- پیکربندی اتصال خودکار (Auto Attach).
- controller: set of Controllers
- مجموعه کنترلکنندههای OpenFlow. اگر تنظیم نشود، هیچ کنترلکننده OpenFlow استفاده نخواهد شد.
- اگر کنترلکنندههای اصلی وجود داشته باشند، حذف همه آنها جدولهای جریان، جدول گروه و جدول سنجش (meter table) مربوط به OpenFlow را پاک میکند. اگر کنترلکننده اصلی وجود نداشته باشد، افزودن یکی نیز این جدولها را پاک میکند. سایر تغییرات در مجموعه کنترلکنندهها، مانند افزودن یا حذف یک کنترلکننده سرویس، افزودن یک کنترلکننده اصلی دیگر برای تکمیل کنترلکننده اصلی موجود، یا حذف تنها یکی از دو کنترلکننده اصلی، تأثیری بر این جدولها ندارد.
- flow_tables: map of integer-Flow_Table pairs, key in range 0 to 254
- پیکربندی برای جدولهای OpenFlow. هر جفت از یک شناسه جدول OpenFlow به پیکربندی آن جدول نگاشت میشود.
- fail_mode: optional string, either secure or standalone
- هنگامی که یک کنترلکننده پیکربندی میشود، معمولاً مسئول برپایی تمام جریانها روی سوییچ است. بنابراین، اگر اتصال به کنترلکننده قطع شود، هیچ اتصال شبکه جدیدی قابل برپایی نیست. اگر قطعی اتصال به کنترلکننده به اندازه کافی طول بکشد، هیچ بستهای اصلاً نمیتواند از سوییچ عبور کند. این تنظیم واکنش سوییچ به چنین وضعیتی را تعیین میکند. ممکن است روی یکی از مقادیر زیر تنظیم شود:
- standalone
- اگر به مدت سه برابر بازه کاوش عدمفعالیت (به inactivity_probe مراجعه کنید) پیامی از کنترلکننده دریافت نشود، Open vSwitch مسئولیت برپایی جریانها را بر عهده خواهد گرفت. در این حالت، Open vSwitch باعث میشود پل مانند یک سوییچ معمولی یادگیرنده MAC عمل کند. Open vSwitch در پسزمینه به تلاش مجدد برای اتصال به کنترلکننده ادامه میدهد و هنگامی که اتصال موفق شد، رفتار مستقل خود را متوقف میکند.
- secure
- هنگامی که اتصال کنترلکننده قطع شود یا هیچ کنترلکنندهای تعریف نشده باشد، Open vSwitch به خودی خود جریانی برقرار نمیکند. پل تا ابد به تلاش مجدد برای اتصال به کنترلکنندههای تعریفشده ادامه میدهد.
- در صورتی که مقدار تنظیم نشده باشد، مقدار پیشفرض standalone است، اما نسخههای آینده Open vSwitch ممکن است این پیشفرض را تغییر دهند.
- حالت standalone میتواند روی پلی که بیش از یک پورت آپلینک دارد حلقههای بازارسال (forwarding loops) ایجاد کند مگر اینکه STP فعال باشد. برای جلوگیری از ایجاد حلقه روی چنین پلی، حالت secure را پیکربندی کنید یا STP را فعال نمایید (به stp_enable مراجعه کنید).
- تنظیم fail_mode فقط برای کنترلکنندههای اصلی اعمال میشود. هنگامی که بیش از یک کنترلکننده اصلی پیکربندی شده باشد، fail_mode تنها زمانی در نظر گرفته میشود که نتوان با هیچیک از کنترلکنندههای پیکربندیشده ارتباط برقرار کرد.
- تغییر fail_mode در زمانی که هیچ کنترلکننده اصلی پیکربندی نشده باشد، جدولهای جریان، جدول گروه و جدول سنجش OpenFlow را پاک میکند.
- datapath_id: optional string
- شناسه مسیر داده OpenFlow در حال استفاده را گزارش میدهد. دقیقاً ۱۶ رقم هگزادسیمال. (تنظیم این ستون اثر مفیدی ندارد. بهجای آن other-config:datapath-id را تنظیم کنید.)
- datapath_version: string
- نسخه مسیر داده را گزارش میدهد. این ستون برای سازگاری با نسخههای پیشین حفظ شده است. مکان ترجیحی ستون datapath_id در جدول Datapath است. مستندات کامل این ستون در آنجا قرار دارد.
- other_config : datapath-id: optional string
- شناسه مسیر داده OpenFlow پیشفرض را با تنظیم آن روی مقدار مشخصشده بر حسب هگزادسیمال بازنویسی میکند. مقدار باید دارای پیشوند 0x باشد یا دقیقاً ۱۶ رقم هگزادسیمال طول داشته باشد. نمیتواند تماماً صفر باشد.
- other_config : dp-desc: optional string
- توضیحات خوانا برای انسان از مسیر داده. این یک رشته آزاد با حداکثر طول ۲۵۶ بایت برای توصیف مسیر داده به منظور اشکالزدایی است، مانند switch3 in room 3120. مقدار توسط سوییچ به عنوان بخشی از پاسخ به درخواست OFPMP_DESC برگردانده میشود (ofp_desc). مشخصات OpenFlow (مانند ۱.۳.۵) ساختار ofp_desc را به گونهای توصیف میکند که شامل «رشتههای ASCII خاتمهیافته با NULL» باشد. به دلایل سازگاری، نباید بیش از ۲۵۵ نویسه ASCII استفاده شود.
- other_config : dp-sn: optional string
- شماره سریال. این یک رشته آزاد با حداکثر طول ۳۲ بایت برای ارائه شناسه سوییچ اضافی است. مقدار توسط سوییچ به عنوان بخشی از پاسخ به درخواست OFPMP_DESC برگردانده میشود (ofp_desc). مشابه آنچه در توضیحات other-config:dp-desc ذکر شد، رشته باید برای سازگاری بیش از ۳۱ نویسه ASCII نباشد.
- other_config : disable-in-band: optional string, either true or false
- اگر روی true تنظیم شود، کنترل درونباند (in-band control) را روی پل بدون توجه به تنظیمات کنترلکننده و مدیر غیرفعال میکند.
- other_config : in-band-queue: optional string, containing an integer, in range 0 to 4,294,967,295
- یک شناسه صف به عنوان یک عدد صحیح غیرمنفی. این شناسه صف OpenFlow را تنظیم میکند که توسط جریانهای برپاشده از طریق کنترل درونباند روی این پل استفاده خواهد شد. اگر تنظیم نشود، یا اگر پورت مورد استفاده توسط یک جریان کنترل درونباند دارای QoS پیکربندیشده نباشد، یا اگر پورت صفی با شناسه مشخصشده نداشته باشد، صف پیشفرض استفاده میشود.
- other_config : controller-queue-size: optional string, containing an integer, in range 1 to 512
- این گزینه حداکثر اندازه صف بستههایی را تنظیم میکند که باید به کنترلکننده مدیریتی OpenFlow ارسال شوند. مقدار باید کمتر از ۵۱۲ باشد. اگر مشخص نشود، اندازه صف به طور پیشفرض به ۱۰۰ بسته محدود میشود. نکته: افزایش اندازه صف ممکن است تأثیر منفی بر تأخیر بگذارد.
- protocols: set of strings, one of OpenFlow10, OpenFlow11, OpenFlow12, OpenFlow13, OpenFlow14, or OpenFlow15
- فهرستی از پروتکلهای OpenFlow که ممکن است هنگام مذاکره برای اتصال با یک کنترلکننده استفاده شوند. اگر این ستون خالی باشد، پروتکلهای OpenFlow 1.0، 1.1، 1.2، 1.3، 1.4 و 1.5 به طور پیشفرض فعال هستند.
پروتکل درخت پوشا (STP) استاندارد IEEE 802.1D یک پروتکل شبکه است که توپولوژیهای بدون حلقه را تضمین میکند. این پروتکل امکان گنجاندن پیوندهای افزونه (redundant links) را در شبکه فراهم میسازد تا در صورت خرابی پیوندهای فعال، مسیرهای پشتیبان خودکار ایجاد شوند.
این تنظیمات نسخه کندتر از نظر همگرایی اما همچنان پرکاربرد پروتکل درخت پوشا را که گاهی با نام 802.1D-1998 شناخته میشود، پیکربندی میکنند. پروتکل Open vSwitch همچنین از پروتکل جدیدتر درخت پوشای سریع (RSTP) پشتیبانی میکند که بعداً در بخشی با عنوان پیکربندی درخت پوشای سریع (Rapid Spanning Tree Configuration) مستند شده است.
- stp_enable: boolean
- درخت پوشا را روی پل فعال میکند. به طور پیشفرض، STP روی پلها غیرفعال است. پورتهای پیوند (Bond)، داخلی و آینه پشتیبانی نمیشوند و در درخت پوشا شرکت نخواهند کرد.
- پروتکلهای STP و RSTP مانعةالجمع هستند. اگر هر دو فعال باشند، RSTP استفاده خواهد شد.
- other_config : stp-system-id: optional string
- شناسه STP پل (۴۸ بیت پایینی bridge-id) در قالب xx:xx:xx:xx:xx:xx. به طور پیشفرض، این شناسه آدرس MAC پل است.
- other_config : stp-priority: optional string, containing an integer, in range 0 to 65,535
- مقدار اولویت نسبی پل برای تعیین پل ریشه (۱۶ بیت بالایی bridge-id). پلی با کمترین bridge-id به عنوان ریشه انتخاب میشود. به طور پیشفرض، اولویت 0x8000 است.
- other_config : stp-hello-time: optional string, containing an integer, in range 1 to 10
- بازه زمانی بین ارسال پیامهای hello توسط پورتهای اختصاصیافته (designated ports)، بر حسب ثانیه. به طور پیشفرض بازه hello برابر با ۲ ثانیه است.
- other_config : stp-max-age: optional string, containing an integer, in range 6 to 40
- حداکثر عمر اطلاعات ارسالی توسط پل در زمانی که پل ریشه است، بر حسب ثانیه. به طور پیشفرض، حداکثر عمر ۲۰ ثانیه است.
- other_config : stp-forward-delay: optional string, containing an integer, in range 4 to 30
- تأخیر انتظار بین انتقال پورتهای ریشه و اختصاصیافته به وضعیت forwarding، بر حسب ثانیه. به طور پیشفرض، تأخیر ارسال ۱۵ ثانیه است.
- other_config : mcast-snooping-aging-time: optional string, containing an integer, at least 1
- حداکثر تعداد ثانیههای نگهداری یک ورودی اسنوپینگ چندپخشی که هیچ بستهای برای آن دیده نشده است. مقدار پیشفرض در حال حاضر ۳۰۰ ثانیه (۵ دقیقه) است. مقدار مشخصشده به یک محدوده معقول، در حال حاضر ۱۵ تا ۳۶۰۰ ثانیه، محدود میشود.
- other_config : mcast-snooping-table-size: optional string, containing an integer, at least 1
- حداکثر تعداد آدرسهای اسنوپینگ چندپخشی برای یادگیری. مقدار پیشفرض در حال حاضر ۲۰۴۸ است. مقدار مشخصشده به یک محدوده معقول، در حال حاضر ۱۰ تا ۱٬۰۰۰٬۰۰۰، محدود میشود.
- other_config : mcast-snooping-disable-flood-unregistered: optional string, either true or false
- اگر روی false تنظیم شود، بستههای چندپخشی ثبتنشده به تمام پورتها ارسال میشوند. اگر روی true تنظیم شود، بستههای چندپخشی ثبتنشده به پورتهای متصل به روترهای چندپخشی ارسال میشوند.
این جفتهای کلید-مقدار وضعیت 802.1D-1998 را گزارش میدهند. آنها تنها در صورتی وجود دارند که STP فعال باشد (از طریق ستون stp_enable).
- status : stp_bridge_id: optional string
- شناسه پل استفادهشده در اعلانهای درخت پوشا، در قالب xxxx.yyyyyyyyyyyy که در آن xها اولویت STP، yها شناسه سیستم STP هستند و هر x و y یک رقم هگزادسیمال است.
- status : stp_designated_root: optional string
- ریشه تعیینشده برای این درخت پوشا، در همان قالب status:stp_bridge_id. اگر این پل ریشه باشد، همان مقدار status:stp_bridge_id را خواهد داشت، در غیر این صورت متفاوت خواهد بود.
- status : stp_root_path_cost: optional string
- هزینه مسیر برای رسیدن به پل تعیینشده. عدد کمتر بهتر است. اگر این پل ریشه باشد مقدار ۰ است، در غیر این صورت بیشتر است.
پروتکل درخت پوشای سریع (RSTP)، مانند STP، یک پروتکل شبکه است که توپولوژیهای بدون حلقه را تضمین میکند. پروتکل RSTP با انتشار استاندارد 802.1D-2004 جایگزین STP شد. در مقایسه با STP، پروتکل RSTP سریعتر همگرا میشود و با سرعت بیشتری از خرابیها بازیابی میگردد.
- rstp_enable: boolean
- درخت پوشای سریع را روی پل فعال میکند. به طور پیشفرض، RSTP روی پلها غیرفعال است. پورتهای پیوند (Bond)، داخلی و آینه پشتیبانی نمیشوند و در درخت پوشا شرکت نخواهند کرد.
- پروتکلهای STP و RSTP مانعةالجمع هستند. اگر هر دو فعال باشند، RSTP استفاده خواهد شد.
- other_config : rstp-address: optional string
- آدرس RSTP پل (۴۸ بیت پایینی bridge-id) در قالب xx:xx:xx:xx:xx:xx. به طور پیشفرض، آدرس همان آدرس MAC پل است.
- other_config : rstp-priority: optional string, containing an integer, in range 0 to 61,440
- مقدار اولویت نسبی پل برای تعیین پل ریشه (۱۶ بیت بالایی bridge-id). پلی با کمترین bridge-id به عنوان ریشه انتخاب میشود. به طور پیشفرض، اولویت 0x8000 (32768) است. این مقدار باید مضربی از ۴۰۹۶ باشد، در غیر این صورت به نزدیکترین مقدار کمتر گرد میشود.
- other_config : rstp-ageing-time: optional string, containing an integer, in range 10 to 1,000,000
- پارامتر زمان کهنگی (Ageing Time) برای پل. مقدار پیشفرض ۳۰۰ ثانیه است.
- other_config : rstp-force-protocol-version: optional string, containing an integer
- پارامتر نسخه پروتکل اجباری (Force Protocol Version) برای پل. این میتواند مقدار ۰ (حالت سازگاری با STP) یا ۲ (پیشفرض، عملکرد عادی) را بگیرد.
- other_config : rstp-max-age: optional string, containing an integer, in range 6 to 40
- حداکثر عمر اطلاعات ارسالی توسط پل در زمانی که پل ریشه است. مقدار پیشفرض ۲۰ است.
- other_config : rstp-forward-delay: optional string, containing an integer, in range 4 to 30
- تأخیر استفادهشده توسط پلهای STP برای انتقال پورتهای ریشه و اختصاصیافته به وضعیت Forwarding. مقدار پیشفرض ۱۵ است.
- other_config : rstp-transmit-hold-count: optional string, containing an integer, in range 1 to 10
- شمارنده نگهداشت انتقال (Transmit Hold Count) استفادهشده توسط ماشین حالت انتقال پورت برای محدود کردن نرخ انتقال. مقدار پیشفرض ۶ است.
این جفتهای کلید-مقدار وضعیت 802.1D-2004 را گزارش میدهند. آنها تنها در صورتی وجود دارند که RSTP فعال باشد (از طریق ستون rstp_enable).
- rstp_status : rstp_bridge_id: optional string
- شناسه پل استفادهشده در اعلانهای درخت پوشای سریع، در قالب x.yyy.zzzzzzzzzzzz که در آن x اولویت RSTP، yها یک پسوند شناسه سیستم اختصاصیافته محلی، zها شناسه سیستم STP هستند و هر x، y یا z یک رقم هگزادسیمال است.
- rstp_status : rstp_root_id: optional string
- ریشه این درخت پوشا، در همان قالب rstp_status:rstp_bridge_id. اگر این پل ریشه باشد، همان مقدار rstp_status:rstp_bridge_id را خواهد داشت، در غیر این صورت متفاوت خواهد بود.
- rstp_status : rstp_root_path_cost: optional string, containing an integer, at least 0
- هزینه مسیر برای رسیدن به ریشه. عدد کمتر بهتر است. اگر این پل ریشه باشد مقدار ۰ است، در غیر این صورت بیشتر است.
- rstp_status : rstp_designated_id: optional string
- شناسه تعیینشده RSTP، در همان قالب rstp_status:rstp_bridge_id.
- rstp_status : rstp_designated_port_id: optional string
- شناسه پورت تعیینشده RSTP، به صورت یک عدد هگزادسیمال ۴ رقمی.
- rstp_status : rstp_bridge_port_id: optional string
- شناسه پورت پل RSTP، به صورت یک عدد هگزادسیمال ۴ رقمی.
اسنوپینگ چندپخشی (RFC 4541) ترافیک پروتکل مدیریت گروه اینترنت (IGMP) و کشف شنونده چندپخشی (MLD) را بین میزبانها و روترهای چندپخشی نظارت میکند. سوییچ از آنچه اسنوپینگ IGMP و MLD یاد میگیرد استفاده میکند تا ترافیک چندپخشی را تنها به رابطهایی ارسال کند که به گیرندگان علاقهمند متصل هستند. در حال حاضر از پروتکلهای IGMPv1، IGMPv2، IGMPv3، MLDv1 و MLDv2 پشتیبانی میکند.
- mcast_snooping_enable: boolean
- اسنوپینگ چندپخشی را روی پل فعال میکند. در حال حاضر، حالت پیشفرض غیرفعال است.
- datapath_type: string
- نام ارائهدهنده مسیر داده. مسیر داده هسته دارای نوع system است. مسیر داده فضای کاربری دارای نوع netdev است. یک مدیر میتواند برای فهرستی از انواع پذیرفتهشده توسط این نمونه Open vSwitch به ستون datapath_types در جدول Open_vSwitch مراجعه کند.
- external_ids : bridge-id: optional string
- یک شناسه یکتا برای پل.
- other_config : hwaddr: optional string
- یک آدرس اترنت در قالب xx:xx:xx:xx:xx:xx برای تنظیم آدرس سختافزاری پورت محلی و تأثیرگذاری بر شناسه مسیر داده.
- other_config : forward-bpdu: optional string, either true or false
- ارسال BPDUها و سایر فریمهای کنترل شبکه را در هنگام فراخوانی اقدام NORMAL کنترل میکند. هنگامی که این گزینه false باشد یا تنظیم نشده باشد، فریمهای دارای آدرسهای اترنت رزروشده (جدول زیر را ببینید) بازارسال نمیشوند. هنگامی که این گزینه true باشد، با چنین فریمهایی رفتار ویژهای نخواهد شد.
- قاعده کلی فوق دارای استثناهای زیر است:
- اگر STP روی پل فعال باشد (به ستون stp_enable در جدول Bridge مراجعه کنید)، پل تمام بستههای STP دریافتی را پردازش میکند و هرگز آنها را به OpenFlow منتقل نکرده یا بازارسال نمیکند. این موضوع حتی در صورتی که STP روی یک پورت خاص غیرفعال باشد نیز صادق است.
- اگر LLDP روی یک رابط فعال باشد (به ستون lldp در جدول Interface مراجعه کنید)، رابط بستههای LLDP دریافتی را پردازش میکند و هرگز آنها را به OpenFlow منتقل نکرده یا بازارسال نمیکند.
- اگر پل Open vSwitch شبکههای اترنت مختلف را به هم متصل میکند و برای شرکت در STP پیکربندی نشده است، این گزینه را روی true تنظیم کنید.
- این گزینه روی بستههایی با آدرسهای MAC مقصد زیر تأثیر میگذارد:
- 01:80:c2:00:00:00
- پروتکل درخت پوشا (STP) استاندارد IEEE 802.1D.
- 01:80:c2:00:00:01
- فریم مکث (Pause frame) استاندارد IEEE.
- 01:80:c2:00:00:0x
- سایر پروتکلهای رزروشده.
- 00:e0:2b:00:00:00
- پروتکل کشف اکستریم (EDP).
- 00:e0:2b:00:00:04 و 00:e0:2b:00:00:06
- سوییچینگ حفاظت خودکار اترنت (EAPS).
- 01:00:0c:cc:cc:cc
- پروتکل کشف سیسکو (CDP)، پروتکل ترانکینگ VLAN (VTP)، پروتکل ترانکینگ پویا (DTP)، پروتکل تجمیع پورت (PAgP) و موارد دیگر.
- 01:00:0c:cc:cc:cd
- پروتکل درخت پوشای اشتراکی سیسکو PVSTP+.
- 01:00:0c:cd:cd:cd
- سیسکو STP Uplink Fast.
- 01:00:0c:00:00:00
- سیسکو Inter Switch Link.
- 01:00:0c:cc:cc:cx
- سیسکو CFM.
- other_config : mac-aging-time: optional string, containing an integer, at least 1
- حداکثر تعداد ثانیههای نگهداری یک ورودی یادگیری MAC که هیچ بستهای برای آن دیده نشده است. مقدار پیشفرض در حال حاضر ۳۰۰ ثانیه (۵ دقیقه) است. مقدار مشخصشده به یک محدوده معقول، در حال حاضر ۱۵ تا ۳۶۰۰ ثانیه، محدود میشود.
- زمان کهنگی کوتاه برای MAC به شبکه امکان میدهد سریعتر متوجه شود که میزبانی دیگر به پورت سوییچ متصل نیست. با این حال، همچنین این احتمال را افزایش میدهد که بستهها در صورت ارسال به یک میزبان متصل که بهندرت بسته ارسال میکند، بیمورد سیلابی شوند. برای کاهش وقوع سیلابی غیرضروری، از زمان کهنگی MAC طولانیتر از حداکثر بازهای که یک میزبان به طور معمول بسته ارسال میکند، استفاده کنید.
- other_config : mac-table-size: optional string, containing an integer, at least 1
- حداکثر تعداد آدرسهای MAC برای یادگیری. مقدار پیشفرض در حال حاضر ۸۱۹۲ است. مقدار مشخصشده به یک محدوده معقول، در حال حاضر ۱۰ تا ۱٬۰۰۰٬۰۰۰، محدود میشود.
هدف کلی این ستونها در بخش ستونهای مشترک (Common Columns) در ابتدای این سند توصیف شده است.
جدول Port (Port TABLE)
یک پورت درون یک Bridge.
معمولاً، یک پورت دقیقاً یک «رابط» دارد که توسط ستون interfaces آن مشخص میشود. چنین پورتی از نظر منطقی با یک پورت روی یک سوییچ اترنت فیزیکی مطابقت دارد. پورتی با بیش از یک رابط، یک «پورت پیوندی (bonded port)» است (به پیکربندی پیوند (Bonding Configuration) مراجعه کنید).
برخی از ویژگیهایی که ممکن است تصور شود متعلق به یک پورت هستند، در واقع بخشی از اعضای Interface آن پورت میباشند.
چکیده (Summary):
- name
- رشته
تغییرناپذیر
(باید در
جدول یکتا
باشد)
- interfaces
- مجموعهای
از ۱ یا چند
Interface
- پیکربندی VLAN (VLAN Configuration):
- vlan_mode
- رشته
اختیاری،
یکی از access،
dot1q-tunnel، native-tagged،
native-untagged یا trunk
- tag
- عدد صحیح
اختیاری،
در محدوده ۰
تا ۴٬۰۹۵
- trunks
- مجموعهای
از حداکثر
۴٬۰۹۶ عدد
صحیح، در
محدوده ۰ تا
۴٬۰۹۵
- cvlans
- مجموعهای
از حداکثر
۴٬۰۹۶ عدد
صحیح، در
محدوده ۰ تا
۴٬۰۹۵
- other_config : qinq-ethtype
- رشته
اختیاری،
یا 802.1ad یا 802.1q
- other_config : priority-tags
- رشته اختیاری، یکی از always، if-nonzero یا never
- پیکربندی پیوند (Bonding Configuration):
- bond_mode
- رشته
اختیاری،
یکی از active-backup،
balance-slb یا balance-tcp
- other_config : bond-hash-basis
- رشته
اختیاری،
شامل یک عدد
صحیح
- other_config : lb-output-action
- رشته
اختیاری،
یا true یا false
- other_config : bond-primary
- رشته
اختیاری
- other_config : all-members-active
- رشته
اختیاری،
یا true یا false
- تشخیص خرابی پیوند (Link Failure Detection):
- other_config : bond-detect-mode
- رشته
اختیاری،
یا carrier یا miimon
- other_config : bond-miimon-interval
- رشته
اختیاری،
شامل یک عدد
صحیح
- bond_updelay
- عدد صحیح
- bond_downdelay
- عدد صحیح
- پیکربندی LACP (LACP Configuration):
- lacp
- رشته
اختیاری،
یکی از active، off
یا passive
- other_config : lacp-system-id
- رشته
اختیاری
- other_config : lacp-system-priority
- رشته
اختیاری،
شامل یک عدد
صحیح، در
محدوده ۱ تا
۶۵٬۵۳۵
- other_config : lacp-time
- رشته
اختیاری،
یا fast یا slow
- other_config : lacp-fallback-ab
- رشته اختیاری، یا true یا false
- پیکربندی بازتعادل (Rebalancing Configuration):
- other_config : bond-rebalance-interval
- رشته اختیاری، شامل یک عدد صحیح، در محدوده ۰ تا ۲٬۱۴۷٬۴۸۳٬۶۴۷
- bond_fake_iface
- بولی (boolean)
- پروتکل درخت پوشا (Spanning Tree Protocol):
- پیکربندی STP (STP Configuration):
- other_config : stp-enable
- رشته
اختیاری،
یا true یا false
- other_config : stp-port-num
- رشته
اختیاری،
شامل یک عدد
صحیح، در
محدوده ۱ تا
۲۵۵
- other_config : stp-port-priority
- رشته
اختیاری،
شامل یک عدد
صحیح، در
محدوده ۰ تا
۲۵۵
- other_config : stp-path-cost
- رشته اختیاری، شامل یک عدد صحیح، در محدوده ۰ تا ۶۵٬۵۳۵
- وضعیت STP (STP Status):
- status : stp_port_id
- رشته
اختیاری
- status : stp_state
- رشته
اختیاری،
یکی از blocking،
disabled، forwarding، learning
یا listening
- status : stp_sec_in_state
- رشته
اختیاری،
شامل یک عدد
صحیح،
دستکم ۰
- status : stp_role
- رشته اختیاری، یکی از alternate، designated یا root
- پروتکل درخت پوشای سریع (Rapid Spanning Tree Protocol):
- پیکربندی RSTP (RSTP Configuration):
- other_config : rstp-enable
- رشته
اختیاری،
یا true یا false
- other_config : rstp-port-priority
- رشته
اختیاری،
شامل یک عدد
صحیح، در
محدوده ۰ تا
۲۴۰
- other_config : rstp-port-num
- رشته
اختیاری،
شامل یک عدد
صحیح، در
محدوده ۱ تا
۴٬۰۹۵
- other_config : rstp-path-cost
- رشته
اختیاری،
شامل یک عدد
صحیح
- other_config : rstp-port-admin-edge
- رشته
اختیاری،
یا true یا false
- other_config : rstp-port-auto-edge
- رشته
اختیاری،
یا true یا false
- other_config : rstp-port-mcheck
- رشته اختیاری، یا true یا false
- وضعیت RSTP (RSTP Status):
- rstp_status : rstp_port_id
- رشته
اختیاری
- rstp_status : rstp_port_role
- رشته
اختیاری،
یکی از Alternate،
Backup، Designated، Disabled
یا Root
- rstp_status : rstp_port_state
- رشته
اختیاری،
یکی از Disabled،
Discarding، Forwarding یا
Learning
- rstp_status : rstp_designated_bridge_id
- رشته
اختیاری
- rstp_status : rstp_designated_port_id
- رشته
اختیاری
- rstp_status : rstp_designated_path_cost
- رشته اختیاری، شامل یک عدد صحیح
- آمار RSTP (RSTP Statistics):
- rstp_statistics : rstp_tx_count
- عدد صحیح
اختیاری
- rstp_statistics : rstp_rx_count
- عدد صحیح
اختیاری
- rstp_statistics : rstp_error_count
- عدد صحیح
اختیاری
- rstp_statistics : rstp_uptime
- عدد صحیح اختیاری
- اسنوپینگ چندپخشی (Multicast Snooping):
- other_config : mcast-snooping-flood
- رشته
اختیاری،
یا true یا false
- other_config : mcast-snooping-flood-reports
- رشته اختیاری، یا true یا false
- سایر ویژگیها (Other Features):
- qos
- QoS اختیاری
- mac
- رشته
اختیاری
- fake_bridge
- بولی (boolean)
- protected
- بولی (boolean)
- external_ids : fake-bridge-*
- رشته
اختیاری
- other_config : transient
- رشته اختیاری، یا true یا false
- bond_active_slave
- رشته
اختیاری
- آمار پورت (Port Statistics):
- آمار: شمارندههای ارسال و دریافت STP (Statistics: STP transmit and receive counters):
- statistics : stp_tx_count
- عدد صحیح
اختیاری
- statistics : stp_rx_count
- عدد صحیح
اختیاری
- statistics : stp_error_count
- عدد صحیح اختیاری
- ستونهای مشترک (Common Columns):
- other_config
- نگاشتی از
جفتهای
رشته-رشته
- external_ids
- نگاشتی از جفتهای رشته-رشته
جزئیات (Details):
- name: immutable string (must be unique within table)
- نام پورت. برای یک پورت غیرپیوندی، این نام باید همان نام رابط آن باشد. در غیر این صورت، نامهای پورت باید در میان نام پورتها، رابطها و پلهای روی یک میزبان یکتا باشند. از آنجا که نامهای پورت و رابط معمولاً یکسان هستند، محدودیتهای ستون name در جدول Interface، بهویژه در مورد طول، برای نامهای پورت نیز اعمال میشود. برای جزئیات به مستندات نامهای Interface مراجعه کنید.
- interfaces: set of 1 or more Interfaces
- رابطهای پورت. اگر بیش از یک مورد باشد، این پورت یک پورت پیوندی (bonded Port) است.
به طور خلاصه، یک VLAN (مخفف «شبکه محلی مجازی یا Virtual LAN») روشی برای تقسیم یک سوییچ منفرد به چندین سوییچ است. مفهوم VLAN میتواند گیجکننده باشد، بنابراین برای آشنایی اولیه، لطفاً به پرسش «VLAN چیست؟» در بخش پرسشهای متداول (FAQ) مربوط به Open vSwitch مراجعه فرمایید.
یک VLAN گاهی با استفاده از هدر VLAN استاندارد 802.1Q یا 802.1ad درون یک بسته کدگذاری میشود، اما هر بسته بدون توجه به اینکه آیا در خود بسته کدگذاری شده باشد یا خیر، بخشی از یک VLAN است. (بستهای که به نظر میرسد فاقد VLAN است، به طور پیشفرض بخشی از VLAN 0 است.) در نتیجه، بهتر است VLAN را به عنوان یک ویژگی فرادادهای از یک بسته، جدا از نحوه کدگذاری آن، در نظر بگیرید. برای یک پورت مشخص، این ستون تعیین میکند که چگونه کدگذاری بستهای که به پورت وارد یا از آن خارج میشود، به VLAN آن بسته نگاشت گردد. هنگامی که بستهای وارد سوییچ میشود، VLAN آن بر اساس تنظیمات این ستون و هدرهای VLAN آن (در صورت وجود) تعیین میشود و سپس از نظر مفهومی هدرهای VLAN برداشته میشوند. برعکس، هنگامی که بستهای از سوییچ خارج میشود، VLAN آن و تنظیمات این ستون تعیین میکنند که چه هدرهای VLAN (در صورت وجود) قبل از خروج از پورت به بسته اضافه شوند.
پیکربندی VLAN در این ستون تنها زمانی بر Open vSwitch تأثیر میگذارد که «سوییچینگ عادی (normal switching)» را انجام میدهد. این تنظیمات بر جریانهای برپاشده توسط یک کنترلکننده OpenFlow، خارج از اقدام «عادی (normal action)» در OpenFlow، تأثیری ندارد.
پورتهای پل از انواع زیر در پیکربندی VLAN پشتیبانی میکنند:
- trunk
- یک پورت ترانک (trunk) بستهها را روی یک یا چند VLAN مشخصشده در ستون trunks (اغلب روی همه VLANها) حمل میکند. بستهای که از یک پورت ترانک وارد میشود، در VLAN مشخصشده در هدر 802.1Q خود قرار دارد، یا اگر فاقد هدر 802.1Q باشد در VLAN 0 خواهد بود. بستهای که از یک پورت ترانک خارج میشود، در صورتی که شناسه VLAN غیرصفر داشته باشد، دارای هدر 802.1Q خواهد بود.
- هر بستهای که از یک پورت ترانک با برچسب VLAN وارد شود که پورت آن را ترانک نمیکند، دور انداخته میشود (drop).
- access
- یک پورت اکسس (access) بستهها را دقیقاً روی یک VLAN مشخصشده در ستون tag حمل میکند. بستههایی که از پورت اکسس خارج میشوند فاقد هدر 802.1Q هستند.
- هر بستهای با هدر 802.1Q و شناسه VLAN غیرصفر که از یک پورت اکسس وارد شود، صرفنظر از اینکه شناسه VLAN موجود در هدر همان شناسه VLAN پورت اکسس باشد یا خیر، دور انداخته میشود.
- native-tagged
- یک پورت native-tagged شبیه به یک پورت ترانک است، با این تفاوت که بستهای بدون هدر 802.1Q که از یک پورت native-tagged وارد میشود، در «VLAN بومی (native VLAN)» (مشخصشده در ستون tag) قرار میگیرد.
- native-untagged
- یک پورت native-untagged شبیه به یک پورت native-tagged است، با این تفاوت که بستهای که از یک پورت native-untagged در VLAN بومی خارج میشود، فاقد هدر 802.1Q خواهد بود.
- dot1q-tunnel
- یک پورت dot1q-tunnel تا حدی شبیه به یک پورت اکسس است. همانند پورت اکسس، بستهها را روی همان VLAN منفرد مشخصشده در ستون tag حمل میکند و این VLAN که VLAN سرویس (service VLAN) نامیده میشود، در هدر 802.1Q برای بستههای ورودی یا خروجی از پورت ظاهر نمیشود. تفاوت اصلی در رفتار هنگام ورود بستههای حاوی هدر 802.1Q به پورت است. در حالی که پورت اکسس چنین بستههایی را دور میاندازد، پورت dot1q-tunnel با آنها به عنوان بستههای دوبرچسبه (double-tagged) با برچسب خارجی tag سرویس و برچسب داخلی VLAN مشتری گرفتهشده از هدر 802.1Q رفتار میکند. متقابلاً برای خروج از پورت، VLAN بیرونی (یا تنها VLAN) بسته باید همان tag باشد که قبل از خروج حذف میشود و در نتیجه VLAN درونی (مشتری) در صورت وجود نمایان میگردد.
- اگر cvlans تنظیم شده باشد، تنها به بستههای موجود در VLANهای مشتری مشخصشده اجازه عبور میدهد.
یک بسته تنها از طریق پورتهای پلی خارج میشود که VLAN آن بسته را حمل میکنند، همانطور که در قوانین بالا شرح داده شد.
- vlan_mode: optional string, one of access, dot1q-tunnel, native-tagged, native-untagged, or trunk
- حالت VLAN پورت، همانطور که در بالا توصیف شد. هنگامی که این ستون خالی باشد، یک حالت پیشفرض به شرح زیر انتخاب میشود:
- اگر tag حاوی مقداری باشد، پورت یک پورت اکسس است. ستون trunks باید خالی باشد.
- در غیر این صورت، پورت یک پورت ترانک است. مقدار ستون trunks در صورت وجود لحاظ میشود.
- tag: optional integer, in range 0 to 4,095
- برای یک پورت اکسس، VLAN با برچسب ضمنی پورت. برای یک پورت native-tagged یا native-untagged، VLAN بومی پورت. اگر این یک پورت ترانک باشد باید خالی باشد.
- trunks: set of up to 4,096 integers, in range 0 to 4,095
- برای یک پورت trunk، native-tagged یا native-untagged، VLAN یا VLANهای 802.1Q که این پورت ترانک میکند؛ اگر خالی باشد، پورت تمام VLANها را ترانک میکند. اگر این یک پورت اکسس باشد باید خالی باشد.
- یک پورت native-tagged یا native-untagged همیشه VLAN بومی خود را ترانک میکند، صرفنظر از اینکه trunks شامل آن VLAN باشد یا خیر.
- cvlans: set of up to 4,096 integers, in range 0 to 4,095
- برای یک پورت dot1q-tunnel، VLANهای مشتری که این پورت شامل آنها میشود. اگر این ستون خالی باشد، پورت شامل تمام VLANهای مشتری خواهد بود.
- برای سایر انواع پورتها، این تنظیم نادیده گرفته میشود.
- other_config : qinq-ethtype: optional string, either 802.1ad or 802.1q
- برای یک پورت dot1q-tunnel، این TPID برای برچسب سرویس است، یعنی برای هدر 802.1Q که شامل شناسه VLAN سرویس است. از آنجا که بستههایی که واقعاً از یک پورت dot1q-tunnel وارد یا خارج میشوند شامل هدر 802.1Q برای VLAN سرویس نیستند، این گزینه بر بستههای روی خود پورت dot1q-tunnel تأثیری ندارد. بلکه VLAN سرویس را برای بستهای که از یک پورت dot1q-tunnel وارد و از یک پورت ترانک خارج میشود، تعیین میکند.
- مقدار 802.1ad شناسه TPID 0x88a8 را مشخص میکند که در صورت عدم تنظیم، مقدار پیشفرض نیز هست. مقدار 802.1q شناسه TPID 0x8100 را مشخص میکند.
- برای سایر انواع پورتها، این تنظیم نادیده گرفته میشود.
- other_config : priority-tags: optional string, one of always, if-nonzero, or never
- یک هدر 802.1Q شامل دو بخش اطلاعاتی مهم است: شناسه VLAN و اولویت. با فریمی با شناسه VLAN صفر، که فریم «دارای برچسب اولویت (priority-tagged)» نامیده میشود، باید همانند فریمی بدون هدر 802.1Q رفتار شود (به استثنای اولویت).
- با این حال، برخی از عناصر شبکه هر فریمی را که اصلاً دارای هدر 802.1Q باشد، نادیده میگیرند، حتی زمانی که شناسه VLAN صفر باشد. بنابراین، به طور پیشفرض Open vSwitch فریمهای دارای برچسب اولویت را در خروجی ارسال نمیکند، بلکه در صورتی که شناسه VLAN صفر باشد، هدر 802.1Q را کاملاً حذف میکند. این کلید را روی if-nonzero تنظیم کنید تا فریمهای دارای برچسب اولویت روی یک پورت فعال شوند.
- در حالت if-nonzero، اگر هر دو مقدار شناسه VLAN و اولویت صفر باشند، Open vSwitch هدر 802.1Q را در خروجی حذف میکند. روی always تنظیم کنید تا هدر 802.1Q در چنین فریمهایی نیز حفظ شود.
- تمام فریمهای خروجی به پورتهای native-tagged دارای شناسه VLAN غیرصفر هستند، بنابراین این تنظیم روی پورتهای native-tagged معنادار نیست.
پورتی که بیش از یک رابط دارد یک «پورت پیوندی (bonded port)» است. پیوند زدن امکان تعادل بار (load balancing) و تغییر مسیر در صورت خرابی (fail-over) را فراهم میکند.
انواع زیر از پیوندها با هر نوع سوییچ بالادستی کار میکنند. روی سوییچ بالادستی، رابطها را به عنوان پیوند (bond) پیکربندی نکنید:
- balance-slb
- جریانها را میان اعضا بر اساس آدرس MAC مبدأ و VLAN خروجی، همراه با بازتعادل دورهای با تغییر الگوهای ترافیک، متعادل میکند.
- active-backup
- تمام جریانها را به یک عضو اختصاص میدهد و در صورت غیرفعال شدن عضو فعال، به یک عضو پشتیبان سوئیچ میکند. این تنها حالت پیوندی است که در آن رابطها ممکن است به سوییچهای بالادستی متفاوتی متصل شوند.
حالتهای زیر نیازمند آن هستند که سوییچ بالادستی از استاندارد 802.3ad با مذاکره موفق LACP پشتیبانی کند. اگر مذاکره LACP شکست بخورد و other-config:lacp-fallback-ab روی true باشد، حالت active-backup استفاده میشود:
- balance-tcp
- جریانها را میان اعضا بر اساس اطلاعات پروتکل لایه ۳ و لایه ۴ مانند آدرسهای IP و پورتهای TCP/UDP متعادل میکند.
این ستونها تنها برای پورتهای پیوندی اعمال میشوند. در غیر این صورت، مقادیر آنها نادیده گرفته میشود.
- bond_mode: optional string, one of active-backup, balance-slb, or balance-tcp
- نوع پیوند استفادهشده برای یک پورت پیوندی. در صورت عدم تنظیم، به طور پیشفرض روی active-backup قرار دارد.
- other_config : bond-hash-basis: optional string, containing an integer
- یک عدد صحیح که هنگام انتخاب اعضای خروجی در پیوندهای متعادلکننده بار، همراه با جریانها هش میشود. در صورت تغییر، به همه جریانها مقادیر هش متفاوتی اختصاص مییابد که احتمالاً باعث تغییر تصمیمات انتخاب عضو میشود. روی حالتهای پیوندی که از تعادل بار استفاده نمیکنند، مانند active-backup، تأثیری ندارد.
- other_config : lb-output-action: optional string, either true or false
- فعال یا غیرفعال کردن استفاده از اقدام بهینهسازیشده lb_output برای متعادل کردن جریانها میان اعضای خروجی در پیوندهای متعادلکننده بار در حالت balance-tcp. در صورت فعال بودن، با استفاده از هش rss مسیر بهینهسازیشده را برای حالت balance-tcp استفاده کرده و از گردش مجدد (recirculation) جلوگیری میکند. این گزینه بر سایر حالتهای تعادل بار تأثیری ندارد.
- other_config : bond-primary: optional string
- اگر یک رابط عضو با این نام در پیوند وجود داشته باشد و فعال (up) باشد، به عنوان فعال اصلی انتخاب میشود. تنها زمانی مرتبط است که other_config:bond_mode روی active-backup باشد یا اگر balance-tcp به active-backup بازگردد (برای مثال، مذاکره LACP ناموفق باشد و other_config:lacp-fallback-ab برابر با true باشد).
- other_config : all-members-active: optional string, either true or false
- فعال یا غیرفعال کردن تحویل بستههای برودکست/مالتیکست روی رابط ثانویه یک پیوند balance-slb. تنها زمانی مرتبط است که lacp روی off باشد.
- این پارامتر با all_slaves_active در پیوندهای هسته لینوکس یکسان است. به طور پیشفرض غیرفعال است زیرا برای اکثر کاربران پیکربندی مطلوبی نیست.
بخش مهمی از پیوند زدن لینکها، تشخیص قطع شدن لینکها است تا بتوان آنها را غیرفعال کرد. این تنظیمات نحوه تشخیص خرابی پیوند توسط Open vSwitch را تعیین میکنند.
- other_config : bond-detect-mode: optional string, either carrier or miimon
- روش مورد استفاده برای تشخیص خرابی پیوند. به طور پیشفرض روی carrier قرار دارد که از حامل سیگنال هر رابط برای تشخیص خرابی استفاده میکند. وقتی روی miimon تنظیم شود، با پایش وضعیت MII هر رابط، خرابیها را بررسی میکند.
- other_config : bond-miimon-interval: optional string, containing an integer
- بازه زمانی، بر حسب میلیثانیه، بین تلاشهای متوالی برای پایش MII هر رابط. تنها زمانی مرتبط است که other_config:bond-detect-mode روی miimon باشد.
- bond_updelay: integer
- تعداد میلیثانیههایی که پیوند روی یک رابط باید فعال بماند قبل از اینکه آن رابط فعال (up) در نظر گرفته شود. برای فعالسازی فوری رابط، 0 را مشخص کنید.
- این تنظیم تنها زمانی اعمال میشود که دستکم یک رابط پیوندی از قبل فعال شده باشد. هنگامی که هیچ رابطی فعال نیست، اولین رابط پیوندی که فعال شود بلافاصله فعال میگردد.
- bond_downdelay: integer
- تعداد میلیثانیههایی که پیوند روی یک رابط باید قطع بماند قبل از اینکه آن رابط قطع (down) در نظر گرفته شود. برای غیرفعالسازی فوری رابط، 0 را مشخص کنید.
پروتکل LACP (پروتکل کنترل تجمیع پیوند)، یک استاندارد IEEE است که به سوییچها امکان میدهد به طور خودکار تشخیص دهند که توسط چندین پیوند به یکدیگر متصل شدهاند و آن پیوندها را با یکدیگر تجمیع کنند. این تنظیمات رفتار LACP را کنترل میکنند.
- lacp: optional string, one of active, off, or passive
- پروتکل LACP را روی این پورت پیکربندی میکند. پروتکل LACP به سوییچهای متصل مستقیم اجازه میدهد در مورد اینکه کدام پیوندها ممکن است پیوند شوند مذاکره کنند. پروتکل LACP ممکن است روی پورتهای غیرپیوندی به نفع هر سوییچی که ممکن است به آن متصل باشند فعال شود. پورتهای active مجاز به آغاز مذاکرات LACP هستند. پورتهای passive مجاز به شرکت در مذاکرات LACP آغازشده توسط یک سوییچ راه دور هستند، اما خود مجاز به آغاز چنین مذاکراتی نیستند. اگر LACP روی پورتی فعال شود که سوییچ مقابل آن از LACP پشتیبانی نمیکند، پیوند غیرفعال میشود، مگر اینکه other-config:lacp-fallback-ab روی true تنظیم شده باشد. در صورت عدم تنظیم، به طور پیشفرض off است.
- other_config : lacp-system-id: optional string
- شناسه سیستم LACP این Port. شناسه سیستم یک پیوند LACP برای شناسایی خود به طرف مقابل استفاده میشود. باید یک آدرس MAC غیرصفر باشد. در صورت عدم تنظیم، به طور پیشفرض آدرس اترنت پل است.
- other_config : lacp-system-priority: optional string, containing an integer, in range 1 to 65,535
- اولویت سیستم LACP این Port. در مذاکرات LACP، تصمیمات مربوط به وضعیت پیوند توسط سیستمی گرفته میشود که اولویت آن از نظر عددی کمتر است.
- other_config : lacp-time: optional string, either fast or slow
- زمانبندی LACP که باید روی این Port استفاده شود. به طور پیشفرض slow استفاده میشود. هنگامی که روی fast پیکربندی شود، ضربانهای LACP با نرخ یک بار در ثانیه درخواست میشوند که باعث میشود مشکلات اتصال سریعتر شناسایی شوند. در حالت slow، ضربانها با نرخ یک بار در هر ۳۰ ثانیه درخواست میشوند.
- other_config : lacp-fallback-ab: optional string, either true or false
- رفتار پیوند openvswitch را در حالت LACP تعیین میکند. اگر سوییچ همتا از LACP پشتیبانی نکند، تنظیم این گزینه روی true به openvswitch امکان میدهد به حالت active-backup بازگردد. اگر گزینه روی false تنظیم شود، پیوند غیرفعال خواهد شد. در هر دو حالت، هنگامی که سوییچ همتا به حالت LACP پیکربندی شود، پیوند از LACP استفاده خواهد کرد.
این تنظیمات رفتار پیوند را در حالت balance-slb یا balance-tcp کنترل میکنند.
- other_config : bond-rebalance-interval: optional string, containing an integer, in range 0 to 2,147,483,647
- برای یک پورت پیوندی متعادلکننده بار، تعداد میلیثانیهها بین تلاشهای متوالی برای بازتعادل پیوند، یعنی انتقال جریانها از یک رابط روی پیوند به رابط دیگر در تلاش برای حفظ استفاده تقریباً برابر از هر رابط. اگر صفر باشد، تعادل بار روی پیوند غیرفعال میشود (خرابی پیوند همچنان باعث انتقال جریانها خواهد شد). اگر کمتر از ۱۰۰۰ میلیثانیه باشد، بازه بازتعادل ۱۰۰۰ میلیثانیه خواهد بود.
- bond_fake_iface: boolean
- برای یک پورت پیوندی، مشخص میکند که آیا یک رابط داخلی ساختگی با نام پورت ایجاد شود یا خیر. تنها برای سازگاری با نرمافزارهای قدیمی که به این مورد نیاز دارند استفاده شود.
پیکربندی در اینجا تنها زمانی معنادار است، و وضعیت تنها زمانی تکمیل میشود، که پروتکل درخت پوشا استاندارد 802.1D-1998 روی Bridge پورت از طریق ستون stp_enable آن فعال شده باشد.
- other_config : stp-enable: optional string, either true or false
- هنگامی که STP روی یک پل فعال است، به طور پیشفرض روی تمام پورتهای پل به جز پورتهای پیوندی، داخلی و آینهای (که با STP کار نمیکنند) فعال میشود. اگر مقدار این ستون false باشد، STP روی پورت غیرفعال است.
- other_config : stp-port-num: optional string, containing an integer, in range 1 to 255
- شماره پورت استفادهشده برای ۸ بیت پایینی شناسه پورت (port-id). به طور پیشفرض، شمارهها به صورت خودکار تخصیص مییابند. اگر شماره هر پورتی به صورت دستی روی یک پل پیکربندی شود، همه آنها باید دستی پیکربندی شوند.
- other_config : stp-port-priority: optional string, containing an integer, in range 0 to 255
- مقدار اولویت نسبی پورت برای تعیین پورت ریشه (۸ بیت بالایی port-id). پورتی با port-id کمتر به عنوان پورت ریشه انتخاب میشود. به طور پیشفرض، اولویت 0x80 است.
- other_config : stp-path-cost: optional string, containing an integer, in range 0 to 65,535
- هزینه مسیر درخت پوشا برای پورت. یک عدد کمتر نشاندهنده یک پیوند سریعتر است. به طور پیشفرض، هزینه بر اساس حداکثر سرعت پیوند تعیین میشود.
- status : stp_port_id: optional string
- شناسه پورت استفادهشده در اعلانهای درخت پوشا برای این پورت، به صورت ۴ رقم هگزادسیمال. پیکربندی شناسه پورت در کلیدهای stp-port-num و stp-port-priority در بخش other_config پیشتر توصیف شده است.
- status : stp_state: optional string, one of blocking, disabled, forwarding, learning, or listening
- وضعیت STP پورت.
- status : stp_sec_in_state: optional string, containing an integer, at least 0
- مدت زمانی که این پورت در وضعیت فعلی STP بوده است، بر حسب ثانیه.
- status : stp_role: optional string, one of alternate, designated, or root
- نقش STP پورت.
پیکربندی در اینجا تنها زمانی معنادار است، و وضعیت و آمار تنها زمانی پر میشوند، که پروتکل درخت پوشا استاندارد 802.1D-1998 روی Bridge پورت از طریق ستون stp_enable آن فعال شده باشد.
- other_config : rstp-enable: optional string, either true or false
- هنگامی که RSTP روی یک پل فعال میشود، به طور پیشفرض روی تمام پورتهای پل به جز پورتهای پیوندی، داخلی و آینهای (که با RSTP کار نمیکنند) فعال میگردد. اگر مقدار این ستون false باشد، RSTP روی پورت غیرفعال است.
- other_config : rstp-port-priority: optional string, containing an integer, in range 0 to 240
- مقدار اولویت نسبی پورت برای تعیین پورت ریشه، با مضارب ۱۶. به طور پیشفرض، اولویت پورت 0x80 (128) است. هر مقداری در ۴ بیت پایینی گرد میشود. ۴ بیت باارزش بالایی به ۴ بیت بالایی port-id تبدیل میشوند. پورتی با کمترین port-id به عنوان ریشه انتخاب میشود.
- other_config : rstp-port-num: optional string, containing an integer, in range 1 to 4,095
- شماره پورت محلی RSTP که به عنوان ۱۲ بیت پایینی port-id استفاده میشود. به طور پیشفرض شمارههای پورت به صورت خودکار تخصیص مییابند و معمولاً ممکن است با شماره پورتهای OpenFlow مطابقت نداشته باشند. پورتی با کمترین port-id به عنوان ریشه انتخاب میشود.
- other_config : rstp-path-cost: optional string, containing an integer
- هزینه مسیر پورت. سهم پورت، در زمانی که پورت ریشه است، در هزینه مسیر ریشه برای پل. به طور پیشفرض هزینه به صورت خودکار از سرعت پورت محاسبه میشود.
- other_config : rstp-port-admin-edge: optional string, either true or false
- پارامتر پورت لبه مدیریتی (admin edge) برای پورت. مقدار پیشفرض false است.
- other_config : rstp-port-auto-edge: optional string, either true or false
- پارامتر پورت لبه خودکار (auto edge) برای پورت. مقدار پیشفرض true است.
- other_config : rstp-port-mcheck: optional string, either true or false
- پارامتر پورت mcheck برای پورت. مقدار پیشفرض false است. ممکن است برای وادار کردن ماشین حالت مهاجرت پروتکل پورت به ارسال RST BPDU برای یک دوره MigrateTime تنظیم شود، تا آزمایش شود که آیا همه پلهای STP روی LAN متصل حذف شدهاند و پورت میتواند به ارسال RSTP BPDU ادامه دهد یا خیر. تنظیم mcheck در صورتی که پل در حالت سازگاری STP کار کند، هیچ اثری ندارد.
- تغییر مقدار از true به false اثری ندارد، اما اگر قرار باشد این رفتار بعداً با تغییر مقدار از false به true مجدداً فعال شود، باید انجام گیرد.
- rstp_status : rstp_port_id: optional string
- شناسه پورت استفادهشده در اعلانهای درخت پوشا برای این پورت، به صورت ۴ رقم هگزادسیمال. پیکربندی شناسه پورت در کلیدهای rstp-port-num و rstp-port-priority در بخش other_config پیشتر توصیف شده است.
- rstp_status : rstp_port_role: optional string, one of Alternate, Backup, Designated, Disabled, or Root
- نقش RSTP پورت.
- rstp_status : rstp_port_state: optional string, one of Disabled, Discarding, Forwarding, or Learning
- وضعیت RSTP پورت.
- rstp_status : rstp_designated_bridge_id: optional string
- شناسه پل تعیینشده RSTP پورت، در همان قالب rstp_status:rstp_bridge_id در جدول Bridge.
- rstp_status : rstp_designated_port_id: optional string
- شناسه پورت تعیینشده RSTP پورت، به صورت ۴ رقم هگزادسیمال.
- rstp_status : rstp_designated_path_cost: optional string, containing an integer
- هزینه مسیر تعیینشده RSTP پورت. عدد کمتر بهتر است.
- rstp_statistics : rstp_tx_count: optional integer
- تعداد RSTP BPDUهای ارسالشده از طریق این پورت.
- rstp_statistics : rstp_rx_count: optional integer
- تعداد RSTP BPDUهای معتبر دریافتشده توسط این پورت.
- rstp_statistics : rstp_error_count: optional integer
- تعداد RSTP BPDUهای نامعتبر دریافتشده توسط این پورت.
- rstp_statistics : rstp_uptime: optional integer
- مدت زمان پوششدادهشده توسط سایر آمارهای RSTP، بر حسب ثانیه.
- other_config : mcast-snooping-flood: optional string, either true or false
- اگر روی true تنظیم شود، بستههای چندپخشی (به جز Reports) بدون قید و شرط به پورت خاص ارسال میشوند.
- other_config : mcast-snooping-flood-reports: optional string, either true or false
- اگر روی true تنظیم شود، گزارشهای چندپخشی (Reports) بدون قید و شرط به پورت خاص ارسال میشوند.
- qos: optional QoS
- پیکربندی کیفیت خدمات (QoS) برای این پورت.
- mac: optional string
- آدرس MAC مورد استفاده برای این پورت به منظور انتخاب آدرس MAC پل. این ستون لزوماً نشاندهنده آدرس MAC واقعی پورت نیست، و تنظیم آن نیز آدرس MAC واقعی پورت را تغییر نخواهد داد.
- fake_bridge: boolean
- آیا این پورت نشاندهنده یک زیرپل (sub-bridge) برای VLAN برچسبخورده خود درون Bridge است؟ برای اطلاعات بیشتر به ovs-vsctl(8) مراجعه فرمایید.
- protected: boolean
- ویژگی پورتهای محافظتشده به پورتهای خاصی اجازه میدهد تا به عنوان محافظتشده تعیین شوند. ترافیک بین پورتهای محافظتشده مسدود میشود. پورتهای محافظتشده میتوانند ترافیک را به پورتهای محافظتنشده ارسال کنند. پورتهای محافظتنشده میتوانند ترافیک را به هر پورتی ارسال کنند. پیشفرض false است.
- external_ids : fake-bridge-*: optional string
- شناسههای خارجی برای یک پل ساختگی (به ستون fake_bridge مراجعه کنید) با اضافه کردن پیشوند fake-bridge- به کلید external_ids در Bridge تعریف میشوند، برای مثال fake-bridge-bridge-id.
- other_config : transient: optional string, either true or false
- اگر روی true تنظیم شود، هنگامی که از دستور ovs-ctl start --delete-transient-ports استفاده شود، پورت حذف خواهد شد.
- bond_active_slave: optional string
- برای یک پورت پیوندی، آدرس MAC عضو فعال فعلی را ثبت میکند.
جفتهای کلید-مقدار که آمار پورت را گزارش میدهند. دوره بهروزرسانی توسط other_config:stats-update-interval در جدول Open_vSwitch کنترل میشود.
- statistics : stp_tx_count: optional integer
- تعداد BPDUهای STP ارسالشده روی این پورت توسط کتابخانه درخت پوشا.
- statistics : stp_rx_count: optional integer
- تعداد BPDUهای STP دریافتشده روی این پورت و پذیرفتهشده توسط کتابخانه درخت پوشا.
- statistics : stp_error_count: optional integer
- تعداد BPDUهای خراب STP دریافتشده روی این پورت. بستههای خراب شامل بستههای کوتاه (runt) و بستههایی با شناسه پروتکل غیرمنتظره هستند.
هدف کلی این ستونها در بخش ستونهای مشترک (Common Columns) در ابتدای این سند توصیف شده است.
جدول Interface (Interface TABLE)
یک رابط درون یک Port.
چکیده (Summary):
- ویژگیهای اصلی (Core Features):
- name
- رشته
تغییرناپذیر
(باید در
جدول یکتا
باشد)
- ifindex
- عدد صحیح
اختیاری،
در محدوده 0
تا 4,294,967,295
- mac_in_use
- رشته
اختیاری
- mac
- رشته
اختیاری
- error
- رشته
اختیاری
- شماره پورت OpenFlow (OpenFlow Port Number):
- ofport
- عدد صحیح
اختیاری
- ofport_request
- عدد صحیح اختیاری، در محدوده 1 تا 65,279
- جزئیات وابسته به سیستم (System-Specific Details):
- type
- رشته
- گزینههای تونل (Tunnel Options):
- options : remote_ip
- رشته
اختیاری
- options : local_ip
- رشته
اختیاری
- options : in_key
- رشته
اختیاری
- options : out_key
- رشته
اختیاری
- options : dst_port
- رشته
اختیاری
- options : key
- رشته
اختیاری
- options : tos
- رشته
اختیاری
- options : ttl
- رشته
اختیاری
- options : df_default
- رشته
اختیاری،
یا true یا false
- options : egress_pkt_mark
- رشته
اختیاری
- گزینههای تونل: فقط vxlan (Tunnel Options: vxlan only):
- options : exts
- رشته
اختیاری
- options : packet_type
- رشته اختیاری، یکی از legacy_l2، legacy_l3، یا ptap
- گزینههای تونل: فقط gre (Tunnel Options: gre only):
- options : packet_type
- رشته
اختیاری،
یکی از legacy_l2،
legacy_l3، یا ptap
- options : seq
- رشته اختیاری، یا true یا false
- گزینههای تونل: gre، ip6gre، geneve، bareudp و vxlan (Tunnel Options):
- options : csum
- رشته اختیاری، یا true یا false
- گزینههای تونل: IPsec (Tunnel Options: IPsec):
- options : psk
- رشته
اختیاری
- options : remote_cert
- رشته
اختیاری
- options : remote_name
- رشته اختیاری
- گزینههای تونل: فقط erspan (Tunnel Options: erspan only):
- options : erspan_idx
- رشته
اختیاری
- options : erspan_ver
- رشته
اختیاری
- options : erspan_dir
- رشته
اختیاری
- options : erspan_hwid
- رشته اختیاری
- گزینههای تونل: فقط Bareudp (Tunnel Options: Bareudp only):
- options : payload_type
- رشته اختیاری
- گزینههای تونل: فقط srv6 (Tunnel Options: srv6 only):
- options : srv6_segs
- رشته
اختیاری
- options : srv6_flowlabel
- رشته اختیاری، یکی از compute، copy، یا zero
- گزینههای Patch (Patch Options):
- options : peer
- رشته اختیاری
- گزینههای PMD (درایور حالت پولینگ):
- options : n_rxq
- رشته
اختیاری،
شامل یک عدد
صحیح،
حداقل 1
- options : dpdk-devargs
- رشته
اختیاری
- other_config : pmd-rxq-affinity
- رشته
اختیاری
- options : xdp-mode
- رشته
اختیاری،
یکی از best-effort،
generic، native-with-zerocopy،
یا native
- options : vhost-server-path
- رشته
اختیاری
- options : vhost-max-queue-pairs
- رشته
اختیاری،
شامل یک عدد
صحیح، در
محدوده 1 تا 128
- options : tx-retries-max
- رشته
اختیاری،
شامل یک عدد
صحیح، در
محدوده 0 تا 32
- options : n_rxq_desc
- رشته
اختیاری،
شامل یک عدد
صحیح،
حداقل 1
- options : n_txq_desc
- رشته
اختیاری،
شامل یک عدد
صحیح،
حداقل 1
- options : dpdk-vf-mac
- رشته
اختیاری
- options : rx-steering
- رشته
اختیاری،
یا rss+lacp یا rss
- other_config : tx-steering
- رشته اختیاری، یا hash یا thread
- پیکربندی EMC (حافظه پنهان تطابق دقیق):
- other_config : emc-enable
- رشته اختیاری، یا true یا false
- واحد انتقال بیشینه (MTU):
- mtu
- عدد صحیح
اختیاری
- mtu_request
- عدد صحیح اختیاری، حداقل 1
- وضعیت رابط (Interface Status):
- admin_state
- رشته
اختیاری،
یا down یا up
- link_state
- رشته
اختیاری،
یا down یا up
- link_resets
- عدد صحیح
اختیاری
- link_speed
- عدد صحیح
اختیاری
- duplex
- رشته
اختیاری،
یا full یا half
- lacp_current
- بولی
اختیاری
- status
- نگاشتی از
جفتهای
رشته-رشته
- status : driver_name
- رشته
اختیاری
- status : driver_version
- رشته
اختیاری
- status : firmware_version
- رشته
اختیاری
- status : peer_ifindex
- رشته
اختیاری
- status : source_ip
- رشته
اختیاری
- status : tunnel_egress_iface
- رشته
اختیاری
- status : tunnel_egress_iface_carrier
- رشته
اختیاری،
یا down یا up
- dpdk:
- status : port_no
- رشته
اختیاری
- status : numa_id
- رشته
اختیاری
- status : min_rx_bufsize
- رشته
اختیاری
- status : max_rx_pktlen
- رشته
اختیاری
- status : max_rx_queues
- رشته
اختیاری
- status : max_tx_queues
- رشته
اختیاری
- status : max_mac_addrs
- رشته
اختیاری
- status : max_hash_mac_addrs
- رشته
اختیاری
- status : max_vfs
- رشته
اختیاری
- status : max_vmdq_pools
- رشته
اختیاری
- status : n_rxq
- رشته
اختیاری
- status : n_txq
- رشته
اختیاری
- status : rx_csum_offload
- رشته
اختیاری
- status : if_type
- رشته
اختیاری
- status : if_descr
- رشته
اختیاری
- status : bus_info
- رشته
اختیاری
- status : dpdk-vf-mac
- رشته
اختیاری
- status : rx-steering
- رشته
اختیاری
- status : rx_steering_queue
- رشته
اختیاری
- status : rss_queues
- رشته اختیاری
- status : mode
- رشته
اختیاری
- status : features
- رشته
اختیاری
- status : num_of_vrings
- رشته
اختیاری
- status : numa
- رشته
اختیاری
- status : socket
- رشته
اختیاری
- status : status
- رشته
اختیاری
- status : vring_n_size
- رشته
اختیاری
- status : userspace-tso
- رشته اختیاری
- status : xdp-mode
- رشته اختیاری
- آمار (Statistics):
- آمار: شمارندههای ارسال و دریافت موفق (Successful transmit and receive counters):
- statistics : rx_packets
- عدد صحیح
اختیاری
- statistics : rx_bytes
- عدد صحیح
اختیاری
- statistics : tx_packets
- عدد صحیح
اختیاری
- statistics : tx_bytes
- عدد صحیح اختیاری
- آمار: خطاهای دریافت (Receive errors):
- statistics : rx_dropped
- عدد صحیح
اختیاری
- statistics : rx_frame_err
- عدد صحیح
اختیاری
- statistics : rx_over_err
- عدد صحیح
اختیاری
- statistics : rx_crc_err
- عدد صحیح
اختیاری
- statistics : rx_errors
- عدد صحیح اختیاری
- آمار: خطاهای ارسال (Transmit errors):
- statistics : tx_dropped
- عدد صحیح
اختیاری
- statistics : collisions
- عدد صحیح
اختیاری
- statistics : tx_errors
- عدد صحیح اختیاری
- سیاستگذاری ورودی (Ingress Policing):
- ingress_policing_rate
- عدد صحیح،
حداقل 0
- ingress_policing_kpkts_rate
- عدد صحیح،
حداقل 0
- ingress_policing_burst
- عدد صحیح،
حداقل 0
- ingress_policing_kpkts_burst
- عدد صحیح، حداقل 0
- تشخیص ارسال دوطرفه (BFD):
- پیکربندی BFD (BFD Configuration):
- bfd : enable
- رشته
اختیاری،
یا true یا false
- bfd : min_rx
- رشته
اختیاری،
شامل یک عدد
صحیح،
حداقل 1
- bfd : min_tx
- رشته
اختیاری،
شامل یک عدد
صحیح،
حداقل 1
- bfd : decay_min_rx
- رشته
اختیاری،
شامل یک عدد
صحیح
- bfd : forwarding_if_rx
- رشته
اختیاری،
یا true یا false
- bfd : cpath_down
- رشته
اختیاری،
یا true یا false
- bfd : check_tnl_key
- رشته
اختیاری،
یا true یا false
- bfd : bfd_local_src_mac
- رشته
اختیاری
- bfd : bfd_local_dst_mac
- رشته
اختیاری
- bfd : bfd_remote_dst_mac
- رشته
اختیاری
- bfd : bfd_src_ip
- رشته
اختیاری
- bfd : bfd_dst_ip
- رشته
اختیاری
- bfd : oam
- رشته
اختیاری
- bfd : mult
- رشته اختیاری، شامل یک عدد صحیح، در محدوده 1 تا 255
- وضعیت BFD (BFD Status):
- bfd_status : state
- رشته
اختیاری،
یکی از admin_down،
down، init، یا up
- bfd_status : forwarding
- رشته
اختیاری،
یا true یا false
- bfd_status : diagnostic
- رشته
اختیاری
- bfd_status : remote_state
- رشته
اختیاری،
یکی از admin_down،
down، init، یا up
- bfd_status : remote_diagnostic
- رشته
اختیاری
- bfd_status : flap_count
- رشته اختیاری، شامل یک عدد صحیح، حداقل 0
- مدیریت خطای اتصال (CFM):
- cfm_mpid
- عدد صحیح
اختیاری
- cfm_flap_count
- عدد صحیح
اختیاری
- cfm_fault
- بولی
اختیاری
- cfm_fault_status : recv
- بدون مقدار
- cfm_fault_status : rdi
- بدون مقدار
- cfm_fault_status : maid
- بدون مقدار
- cfm_fault_status : loopback
- بدون مقدار
- cfm_fault_status : overflow
- بدون مقدار
- cfm_fault_status : override
- بدون مقدار
- cfm_fault_status : interval
- بدون مقدار
- cfm_remote_opstate
- رشته
اختیاری،
یا down یا up
- cfm_health
- عدد صحیح
اختیاری،
در محدوده 0
تا 100
- cfm_remote_mpids
- مجموعهای
از اعداد
صحیح
- other_config : cfm_interval
- رشته
اختیاری،
شامل یک عدد
صحیح
- other_config : cfm_extended
- رشته
اختیاری،
یا true یا false
- other_config : cfm_demand
- رشته
اختیاری،
یا true یا false
- other_config : cfm_opstate
- رشته
اختیاری،
یا down یا up
- other_config : cfm_ccm_vlan
- رشته
اختیاری،
شامل یک عدد
صحیح، در
محدوده 1 تا 4,095
- other_config : cfm_ccm_pcp
- رشته اختیاری، شامل یک عدد صحیح، در محدوده 1 تا 7
- پیکربندی پیوند (Bonding Configuration):
- other_config : lacp-port-id
- رشته
اختیاری،
شامل یک عدد
صحیح، در
محدوده 1 تا 65,535
- other_config : lacp-port-priority
- رشته
اختیاری،
شامل یک عدد
صحیح، در
محدوده 1 تا 65,535
- other_config : lacp-aggregation-key
- رشته اختیاری، شامل یک عدد صحیح، در محدوده 1 تا 65,535
- شناسههای ماشین مجازی (Virtual Machine Identifiers):
- external_ids : attached-mac
- رشته
اختیاری
- external_ids : iface-id
- رشته
اختیاری
- external_ids : iface-status
- رشته
اختیاری،
یا active یا inactive
- external_ids : vm-id
- رشته اختیاری
- پیکربندی Auto Attach (Auto Attach Configuration):
- lldp : enable
- رشته اختیاری، یا true یا false
- پیکربندی کنترل جریان (Flow control Configuration):
- options : rx-flow-ctrl
- رشته
اختیاری،
یا true یا false
- options : tx-flow-ctrl
- رشته
اختیاری،
یا true یا false
- options : flow-ctrl-autoneg
- رشته اختیاری، یا true یا false
- حالت تشخیص تغییر وضعیت پیوند (Link State Change detection mode):
- options : dpdk-lsc-interrupt
- رشته اختیاری، یا true یا false
- پیکربندی تخلیه بار سختافزاری (Hardware Offload Configuration):
- other_config : hw-offload-priority
- رشته اختیاری
- ستونهای مشترک (Common Columns):
- other_config
- نگاشتی از
جفتهای
رشته-رشته
- external_ids
- نگاشتی از جفتهای رشته-رشته
جزئیات (Details):
- name: رشته تغییرناپذیر (باید در جدول یکتا باشد)
- نام رابط. باید حروفی-عددی باشد. برای پورتهای بدون پیوند (non-bonded)، این نام باید با نام پورت یکسان باشد. در غیر این صورت باید در میان نامهای پورتها، رابطها و پلهای موجود روی میزبان یکتا باشد.
- حداکثر طول نام رابط به مسیر داده (datapath) زیرین بستگی دارد:
- نام رابطهایی که به عنوان دستگاههای شبکه لینوکس و BSD پیادهسازی شدهاند، شامل رابطهای از نوع internal، tap یا system به علاوه انواع مختلف پورتهای تونل، به 15 بایت محدود میشوند. به طور کلی، پیادهسازیهای مختلف مسیر داده ممکن است محدودیتهای متفاوتی داشته باشند.
- نامهای پورتهای patch در مسیر داده زیرین استفاده نمیشوند، بنابراین محدودیتهای سیستمعامل برای آنها اعمال نمیشود. در نتیجه، میتوانند طول دلخواهی داشته باشند.
- صرفنظر از سایر محدودیتها، OpenFlow تنها از نامهای 15 بایتی پشتیبانی میکند، که به این معنی است که ovs-ofctl و کنترلکنندههای OpenFlow نامها را برشخورده به 15 بایت نمایش خواهند داد.
- ifindex: عدد صحیح اختیاری، در بازه 0 تا 4,294,967,295
- یک شاخص مثبت رابط مطابق با تعریف SNMP MIB-II در RFCهای 1213 و 2863، در صورتی که رابط دارای آن باشد، در غیر این صورت 0. مقدار ifindex برای یکپارچهسازی بینقص با پروتکلهایی مانند SNMP و sFlow مفید است.
- mac_in_use: رشته اختیاری
- آدرس MAC در حال استفاده توسط این رابط.
- mac: رشته اختیاری
- آدرس اترنت که برای این رابط تنظیم میشود. در صورت عدم تنظیم، از آدرس MAC پیشفرض استفاده میشود:
- برای رابط محلی، مقدار پیشفرض کمترین شماره آدرس MAC در میان سایر پورتهای پل است؛ یا مقدار mac در رکورد Port آن (در صورت تنظیم)، یا آدرس MAC واقعی آن (برای پورتهای پیوندی، آدرس MAC عضوی که نامش از نظر الفبایی اول است). پورتهای داخلی و پورتهای پلی که به عنوان مقصدهای آینهسازی پورت استفاده میشوند (جدول Mirror را ببینید) نادیده گرفته میشوند.
- برای سایر رابطهای داخلی، آدرس MAC پیشفرض به صورت تصادفی تولید میشود.
- رابطهای خارجی معمولاً دارای یک آدرس MAC مرتبط با سختافزار خود هستند.
- برخی از رابطها ممکن است آدرس MAC قابل کنترل توسط نرمافزار نداشته باشند. این گزینه فقط بر پورتهای داخلی تأثیر میگذارد. برای سایر انواع پورتها، میتوانید آدرس MAC را در خارج از Open vSwitch با استفاده از دستور ip تغییر دهید.
- error: رشته اختیاری
- اگر پیکربندی پورت با شکست مواجه شود، همانطور که با مقدار -1 در ofport مشخص میشود، Open vSwitch این ستون را با توضیحی درباره خطا به فرم قابل خواندن برای انسان تنظیم میکند. در غیر این صورت، Open vSwitch این ستون را پاک مینماید.
هنگامی که یک کلاینت یک رابط جدید اضافه میکند، Open vSwitch یک شماره پورت OpenFlow برای پورت جدید انتخاب میکند. اگر کلاینتی که پورت را اضافه میکند مقدار ofport_request را پر کرده باشد، در این صورت Open vSwitch سعی میکند از مقدار آن به عنوان شماره پورت OpenFlow استفاده کند. در غیر این صورت، یا اگر شماره پورت درخواستی قبلاً استفاده شده باشد یا به دلیل دیگری نتواند استفاده شود، Open vSwitch به طور خودکار یک شماره پورت آزاد را اختصاص میدهد. صرفنظر از چگونگی به دست آمدن شماره پورت، Open vSwitch سپس شماره پورت اختصاصیافته واقعی را در ofport گزارش میدهد.
سامانه Open vSwitch شماره پورتهایی را که به طور خودکار اختصاص میدهد به بازه 1 تا 32,767 (شامل خود آنها) محدود میکند. بنابراین، کنترلکنندهها میتوانند آزادانه از پورتهای 32,768 به بالا استفاده کنند.
- ofport: عدد صحیح اختیاری
- شماره پورت OpenFlow برای این رابط. مقدار این ستون توسط Open vSwitch تنظیم میشود، بنابراین سایر کلاینتها باید با آن به عنوان فقطخواندنی رفتار کنند.
- پورت «محلی» OpenFlow برابر با (OFPP_LOCAL) 65,534 است. سایر شماره پورتهای معتبر در بازه 1 تا 65,279 (شامل خود آنها) قرار دارند. مقدار -1 نشاندهنده بروز خطا در افزودن رابط است.
- ofport_request: عدد صحیح اختیاری، در بازه 1 تا 65,279
- شماره پورت درخواستی OpenFlow برای این رابط.
- بهتر است کلاینت مقدار این ستون را در همان تراکنش پایگاهدادهای که برای ایجاد رابط استفاده میکند، تنظیم نماید. نسخه 2.1 و نسخههای بعدی Open vSwitch به درخواستهای بعدی برای یک شماره پورت خاص احترام میگذارند، اگرچه ممکن است برخی از کنترلکنندهها را سردرگم کند: OpenFlow روشی برای اعلام تغییر شماره پورت ندارد، بنابراین Open vSwitch آن را در OpenFlow به صورت حذف پورت و بلافاصله پس از آن افزودن پورت نمایش میدهد.
- اگر ofport_request بر روی شماره پورت اختصاصیافته خودکار پورت دیگری تنظیم یا تغییر داده شود، Open vSwitch یک شماره پورت جدید برای پورت دوم انتخاب میکند.
- type: رشته
- نوع رابط. انواع پشتیبانیشده توسط یک نمونه خاص از Open vSwitch در ستون iface_types در جدول Open_vSwitch فهرست شدهاند. انواع زیر تعریف شدهاند:
- system
- یک دستگاه شبکه معمولی، مانند eth0 در لینوکس. گاهی اوقات به عنوان «رابطهای خارجی» از آنها یاد میشود زیرا معمولاً به سختافزاری متصل هستند که خارج از سیستمی است که Open vSwitch روی آن اجرا میشود. رشته خالی مترادفی برای system است.
- internal
- یک دستگاه شبکه شبیهسازیشده که ترافیک را ارسال و دریافت میکند. یک رابط داخلی که name آن با name پل آن یکسان باشد، «رابط محلی» نامیده میشود. پیوند دادن (bonding) یک رابط داخلی معنایی ندارد، بنابراین اصطلاحات «پورت» و «رابط» اغلب برای رابطهای داخلی به صورت غیردقیق به کار میروند.
- tap
- یک دستگاه TUN/TAP که توسط Open vSwitch مدیریت میشود.
- سامانه Open vSwitch وضعیت رابط را پیش از ارسال بستهها به دستگاه بررسی میکند. هنگامی که وضعیت آن down باشد، بستهها دور ریخته میشوند و آمار tx_dropped متناسب با آن بهروزرسانی میشود. نسخههای قدیمیتر Open vSwitch وضعیت رابط را بررسی نمیکردند و در نتیجه مقدار tx_packets همراه با tx_dropped افزایش مییافت.
- geneve
- یک تونل IPv4/IPv6 اترنت روی Geneve (http://tools.ietf.org/html/draft-ietf-nvo3-geneve). شرح نحوه تطابق و تنظیم گزینههای Geneve را میتوان در صفحه راهنمای ovs-ofctl یافت.
- gre
- تونل کپسولهسازی مسیریابی عمومی (GRE) روی IPv4، با قابلیت پیکربندی برای کپسولهسازی ترافیک لایه 2 یا لایه 3.
- ip6gre
- تونل کپسولهسازی مسیریابی عمومی (GRE) روی IPv6، برای کپسولهسازی ترافیک لایه 2.
- vxlan
- یک تونل اترنت روی پروتکل مبتنی بر UDP با نام VXLAN که در RFC 7348 شرح داده شده است.
- سامانه Open vSwitch از پورت مقصد UDP با شماره 4789 که توسط IANA تخصیص یافته استفاده میکند. پورت مبدأ استفادهشده برای ترافیک VXLAN بر اساس هر جریان متغیر است و در محدوده پورتهای زودگذر (ephemeral) قرار دارد.
- patch
- یک جفت دستگاه مجازی که مانند کابل پچ (patch cable) عمل میکنند.
- gtpu
- پروتکل تونلسازی GPRS به اختصار (GTP)، گروهی از پروتکلهای ارتباطی مبتنی بر IP است که برای انتقال سرویس عمومی بستههای رادیویی (GPRS) در شبکههای GSM، UMTS و LTE استفاده میشود. پروتکل GTP-U برای انتقال دادههای کاربر درون شبکه اصلی GPRS و بین شبکه دسترسی رادیویی و شبکه اصلی استفاده میشود. دادههای کاربر منتقلشده میتوانند بستههایی در هر یک از قالبهای IPv4، IPv6 یا PPP باشند.
- این پروتکل در نشانی http://www.3gpp.org/DynaReport/29281.htm مستند شده است.
- سامانه Open vSwitch از پورت مقصد UDP با شماره 2152 استفاده میکند. پورت مبدأ استفادهشده برای ترافیک GTP بر اساس هر جریان متغیر است و در محدوده پورتهای زودگذر قرار دارد.
- Bareudp
- تونل Bareudp پشتیبانی عمومی از کپسولهسازی L3 را برای تونلسازی پروتکلهای مختلف L3 مانند MPLS، IP، NSH و غیره در داخل یک تونل UDP فراهم میکند.
- srv6
- تونل مسیریابی بخش IPv6 به اختصار (SRv6)، ترافیک L3 را به صورت «IPv6 در IPv6» یا «IPv4 در IPv6» همراه با هدر مسیریابی بخش (SRH) تعریفشده در RFC 8754 کپسوله میکند. فهرست بخشها در SRH را میتوان با استفاده از یک گزینه ویژه SRv6 تنظیم کرد.
این گزینهها برای رابطهایی با type از نوع geneve، bareudp، gre، ip6gre، vxlan و srv6 اعمال میشوند.
هر تونل باید به طور یکتا با ترکیبی از type، options:remote_ip، options:local_ip و options:in_key شناسایی شود. اگر دو پورت تعریف شوند که یکسان باشند به جز اینکه یکی دارای شناسه اختیاری باشد و دیگری نباشد، موردی که خاصتر است ابتدا مطابقت داده میشود. اگر یک پورت یکی را تعریف کند و پورت دیگر دیگری را، options:in_key خاصتر از options:local_ip در نظر گرفته میشود. گزینه options:in_key برای تونلهای bareudp و srv6 کاربرد ندارد. بنابراین هنگام شناسایی تونلهای bareudp یا srv6 در نظر گرفته نمیشود.
- options : remote_ip: رشته اختیاری
- الزامی. نقطه پایانی راه دور تونل، یکی از موارد زیر:
- یک آدرس IPv4 یا IPv6 (نه یک نام DNS)، برای مثال 192.168.0.123. فقط نقاط پایانی تکپخشی (unicast) پشتیبانی میشوند.
- کلمه flow. تونل بستهها را از هر نقطه پایانی راه دور تونل میپذیرد. برای پردازش بستهها فقط از یک نقطه پایانی راه دور مشخص تونل، مدخلهای جریان میتوانند روی فیلد tun_src یا tun_ipv6_src مطابقت داده شوند. هنگام ارسال بستهها به یک تونل با remote_ip=flow، کنشهای جریان باید فیلد tun_dst یا tun_ipv6_dst را صراحتاً روی آدرس IP نقطه پایانی راه دور مورد نظر تنظیم کنند، مثلاً با یک کنش set_field.
- نقطه پایانی راه دور تونل برای هر بسته دریافتی از تونل، در فیلد tun_src برای تطبیق در جدول جریان در دسترس است.
- options : local_ip: رشته اختیاری
- اختیاری. آدرس IP مقصد تونل که بستههای دریافتی باید با آن مطابقت داشته باشند. حالت پیشفرض تطبیق با همه آدرسها است. در صورت مشخص شدن، میتواند یکی از موارد زیر باشد:
- یک آدرس IPv4/IPv6 (نه یک نام DNS)، برای مثال 192.168.12.3.
- کلمه flow. تونل بستههای ارسالی به هر یک از آدرسهای IP محلی سیستم اجراکننده OVS را میپذیرد. برای پردازش بستههای ارسالی فقط به یک آدرس IP مشخص، مدخلهای جریان میتوانند روی فیلد tun_dst یا tun_ipv6_dst مطابقت داده شوند. هنگام ارسال بستهها به یک تونل با local_ip=flow، کنشهای جریان میتوانند فیلد tun_src یا tun_ipv6_src را صراحتاً روی آدرس IP مورد نظر تنظیم کنند، مثلاً با یک کنش set_field. با این حال، هنگام مسیریابی بسته تونلشده به بیرون، سیستم محلی ممکن است آدرس مشخصشده را با آدرس IP محلی پیکربندیشده برای رابط خروجی سیستم جایگزین کند.
- این گزینه فقط برای تونلهایی معتبر است که با گزینه remote_ip=flow نیز پیکربندی شده باشند.
- آدرس IP مقصد تونل برای هر بسته دریافتی از یک تونل، در فیلد tun_dst یا tun_ipv6_dst برای تطبیق در جدول جریان در دسترس است.
- options : in_key: رشته اختیاری
- اختیاری، برای bareudp و srv6 کاربرد ندارد. کلیدی که بستههای دریافتی باید شامل آن باشند، یکی از موارد زیر:
- 0. تونل بستههای بدون کلید یا با کلید 0 را دریافت میکند. این معادل مشخص نکردن هیچ options:in_key است.
- یک عدد مثبت 24 بیتی (برای Geneve و VXLAN) یا 32 بیتی (برای GRE). تونل فقط بستههای دارای کلید مشخصشده را دریافت میکند.
- کلمه flow. تونل بستهها را با هر کلیدی میپذیرد. کلید در فیلد tun_id برای تطبیق در جدول جریان قرار داده خواهد شد. صفحه راهنمای ovs-fields(7) حاوی اطلاعات تکمیلی در مورد فیلدهای تطبیق در جریانهای OpenFlow است.
- options : out_key: رشته اختیاری
- اختیاری، برای bareudp و srv6 کاربرد ندارد. کلیدی که باید روی بستههای خروجی تنظیم شود، یکی از موارد زیر:
- 0. بستههای ارسالشده از طریق تونل هیچ کلیدی نخواهند داشت. این معادل مشخص نکردن هیچ options:out_key است.
- یک عدد مثبت 24 بیتی (برای Geneve و VXLAN) یا 32 بیتی (برای GRE). بستههای ارسالشده از طریق تونل دارای کلید مشخصشده خواهند بود.
- کلمه flow. بستههای ارسالشده از طریق تونل، کلید تنظیمشده با استفاده از افزونه ارائهدهنده set_tunnel در Nicira OpenFlow را خواهند داشت (در صورت عدم وجود کنش، 0 استفاده میشود). صفحه راهنمای ovs-fields(7) شامل اطلاعات تکمیلی درباره افزونههای ارائهدهنده Nicira OpenFlow است.
- options : dst_port: رشته اختیاری
- اختیاری. پورت مقصد لایه انتقال تونل، برای پروتکلهای تونل مبتنی بر UDP (مانند Geneve و VXLAN).
- options : key: رشته اختیاری
- اختیاری. روشی خلاصه برای تنظیم همزمان in_key و out_key.
- options : tos: رشته اختیاری
- اختیاری. مقدار بیتهای ToS که باید روی بسته کپسولهکننده تنظیم شود. بیتهای ToS به عنوان بیتهای DSCP و ECN تفسیر میشوند و بخش ECN باید صفر باشد. همچنین میتواند کلمه inherit باشد که در این صورت، اگر بسته درونی IPv4 یا IPv6 باشد، ToS از آن رونوشت میشود (در غیر این صورت 0 خواهد بود). فیلدهای ECN همیشه به ارث برده میشوند. مقدار پیشفرض 0 است.
- options : ttl: رشته اختیاری
- اختیاری. مقدار TTL که باید روی بسته کپسولهکننده تنظیم شود. همچنین میتواند کلمه inherit باشد که در این صورت، اگر بسته درونی IPv4 یا IPv6 باشد، TTL از آن رونوشت میشود (در غیر این صورت مقدار پیشفرض سیستم خواهد بود که معمولاً 64 است). مقدار پیشفرض برابر با TTL پیشفرض سیستم است.
- options : df_default: رشته اختیاری، یا true یا false
- اختیاری. در صورت فعال بودن، بیت Don’t Fragment روی هدرهای بیرونی تونل تنظیم میشود تا امکان کشف MTU مسیر فراهم گردد. مقدار پیشفرض فعال است؛ برای غیرفعال کردن روی false تنظیم کنید.
- options : egress_pkt_mark: رشته اختیاری
- اختیاری. مقدار pkt_mark که باید روی بسته کپسولهکننده تنظیم شود. این گزینه نشان بسته را برای نقطه پایانی تونل برای تمام بستههای تونل شامل پایش تونل تنظیم میکند.
- options : exts: رشته اختیاری
- اختیاری. فهرستی از افزونههای اختیاری VXLAN جداشده با کاما برای فعالسازی. افزونههای زیر پشتیبانی میشوند:
- gbp: افزونه VXLAN-GBP امکان انتقال زمینه سیاست گروهی (group policy context) یک بسته را در سرتاسر تونل VXLAN به سایر همتایان شبکه فراهم میسازد. برای اطلاعات بیشتر توضیحات tun_gbp_id و tun_gbp_flags را در ovs-fields(7) مشاهده کنید. (https://tools.ietf.org/html/draft-smith-vxlan-group-policy)
- gpe: پشتیبانی از کپسولهسازی پروتکل عمومی بر اساس پیشنویس IETF https://tools.ietf.org/html/draft-ietf-nvo3-vxlan-gpe. بدون این گزینه، یک بسته VXLAN همیشه یک فریم اترنت را کپسوله میکند. با این گزینه، یک بسته VXLAN ممکن است بستههای IPv4، IPv6، NSH یا MPLS را نیز کپسوله کند.
- options : packet_type: رشته اختیاری، یکی از legacy_l2، legacy_l3، یا ptap
- این گزینه کنترل میکند که تونل چه انواعی از بستهها را ارسال و دریافت کند و چگونه آنها را نمایش دهد:
- به طور پیشفرض، یا در صورتی که این گزینه legacy_l2 باشد، تونل فقط فریمهای اترنت را ارسال و دریافت میکند.
- اگر این گزینه legacy_l3 باشد، تونل فقط بستههای غیر اترنت (L3) را ارسال و دریافت میکند، اما بستهها برای سازگاری با کنترلکنندههای قدیمی OpenFlow که انتظار این رفتار را دارند، به عنوان فریمهای اترنت نمایش داده میشوند. این امر نیازمند فعالسازی gpe در options:exts است.
- اگر این گزینه ptap باشد، Open vSwitch بستههای موجود در تونل را با استفاده از مکانیزم packet_type معرفیشده در OpenFlow 1.5 نمایش میدهد. این مکانیزم از هر نوع بستهای پشتیبانی میکند، اما ارسال و دریافت واقعی بستههای غیر اترنت نیازمند فعالسازی اضافی gpe در options:exts است.
رابطهای gre از این گزینهها پشتیبانی میکنند.
- options : packet_type: رشته اختیاری، یکی از legacy_l2، legacy_l3، یا ptap
- این گزینه کنترل میکند که تونل چه نوع بستههایی را ارسال و دریافت کند و چگونه آنها را نمایش دهد:
- به طور پیشفرض، یا اگر این گزینه legacy_l2 باشد، تونل فقط فریمهای اترنت را ارسال و دریافت میکند.
- اگر این گزینه legacy_l3 باشد، تونل فقط بستههای غیر اترنت (L3) را ارسال و دریافت میکند، اما بستهها برای سازگاری با کنترلکنندههای قدیمی OpenFlow که انتظار این رفتار را دارند به صورت فریمهای اترنت نمایش داده میشوند.
- اگر این گزینه ptap باشد، تونل هر نوع بستهای را ارسال و دریافت میکند. سامانه Open vSwitch بستهها را در تونل با استفاده از مکانیزم packet_type معرفیشده در OpenFlow 1.5 نمایش میدهد.
- options : seq: رشته اختیاری، یا true یا false
- اختیاری. یک فیلد شماره ترتیب 4 بایتی فقط برای تونل GRE. مقدار پیشفرض غیرفعال است، برای فعالسازی روی true تنظیم کنید. شماره ترتیب با هر بسته خروجی یک واحد افزایش مییابد.
رابطهای gre، ip6gre، geneve، bareudp و vxlan از این گزینهها پشتیبانی میکنند.
- options : csum: رشته اختیاری، یا true یا false
- اختیاری. محاسبه چکسامهای هدر کپسولهسازی (یا GRE یا UDP) روی بستههای خروجی. در صورت عدم تنظیم (مقدار پیشفرض)، محاسبه چکسام برای بستههای خروجی برای تونلهای UDP IPv6 فعال است و برای تونلهای GRE و UDP IPv4 غیرفعال میباشد. هنگامی که روی false تنظیم شود، هیچ چکسامی برای هدرهای کپسولهسازی تونل خروجی محاسبه نخواهد شد. هنگامی که true باشد، چکسامها برای تمام هدرهای کپسولهسازی تونل خروجی محاسبه میشوند. چکسامهای موجود در بستههای ورودی صرفنظر از این تنظیم اعتبارسنجی خواهند شد. بستههای ورودی بدون چکسام نیز صرفنظر از این تنظیم پذیرفته خواهند شد.
- هنگام استفاده از مسیر داده (datapath) هسته لینوکس، محاسبه چکسامها برای geneve و vxlan نیازمند نسخه 4.0 یا بالاتر هسته لینوکس است. رابطهای gre و ip6gre از چکسامها در تمام نسخههای Open vSwitch که از GRE پشتیبانی میکنند، پشتیبانی مینمایند.
تنظیم هر یک از این گزینهها پشتیبانی از IPsec را برای یک تونل مشخص فعال میکند. رابطهای gre، geneve و vxlan از این گزینهها پشتیبانی میکنند. برای توضیحات هر حالت، بخش IPsec در جدول Open_vSwitch را مشاهده کنید.
- options : psk: رشته اختیاری
- فقط در حالت PSK، راز پیشاشتراکگذاشتهشده برای مذاکره تونل. این مقدار باید در هر دو انتهای تونل مطابقت داشته باشد.
- options : remote_cert: رشته اختیاری
- فقط در حالت گواهی خودامضا (self-signed)، نام یک فایل PEM شامل گواهی سوئیچ راه دور. گواهی باید x.509 نسخه 3 بوده و رشته موجود در نام مشترک (CN) آن در نام جایگزین موضوع (SAN) نیز تنظیم شده باشد.
- options : remote_name: رشته اختیاری
- فقط در حالت گواهی امضاشده توسط CA، نام مشترک (CN) گواهی راه دور.
تنها رابطهای erspan از این گزینهها پشتیبانی میکنند.
- options : erspan_idx: رشته اختیاری
- شاخص/شماره پورت 20 بیتی مرتبط با پورت مبدأ ترافیک ERSPAN و جهت آن (ورودی/خروجی). این فیلد وابسته به پلتفرم است.
- options : erspan_ver: رشته اختیاری
- نسخه ERSPAN: مقدار 1 برای نسخه 1 (نوع II) یا 2 برای نسخه 2 (نوع III).
- options : erspan_dir: رشته اختیاری
- جهت ترافیک آینهشده ERSPAN v2 را مشخص میکند. مقدار 1 برای ترافیک خروجی (egress) و 0 برای ترافیک ورودی (ingress).
- options : erspan_hwid: رشته اختیاری
- شناسه سختافزاری ERSPAN یک شناسه یکتای 6 بیتی از یک موتور ERSPAN v2 در یک سیستم است.
- options : payload_type: رشته اختیاری
- مقدار ethertype مربوط به پروتکل l3 را که دستگاه bareudp در حال تونل کردن آن است مشخص میکند. برای تونلهایی که از چندین ethertype یک پروتکل l3 پشتیبانی میکنند (IP، MPLS)، این فیلد نام پروتکل را به صورت یک رشته مشخص مینماید.
- options : srv6_segs: رشته اختیاری
- فهرست بخشها را در هدر مسیریابی بخش (SRH) مشخص میکند. این مقدار شامل فهرستی از بخشها است که با کاما از هم جدا شده و در قالب IPv6 نمایش داده میشوند، مثلاً "fc00:100::1,fc00:200::1,fc00:300::1". توجه داشته باشید که اولین بخش باید با options:remote_ip یکسان باشد.
- options : srv6_flowlabel: رشته اختیاری، یکی از compute، copy، یا zero
- اختیاری. این گزینه نحوه پیکربندی برچسب جریان (flowlabel) را در هدر بیرونی IPv6 کنترل میکند. این گزینه مزیت تعادل بار بر اساس برچسب جریان IPv6 را به همراه دارد که توسط تجهیزات برخی از شرکتهای مطرح پشتیبانی میشود. مانند پیکربندی سیستمی net.ipv6.seg6_flowlabel، یکی از سه مقدار زیر است:
- به طور پیشفرض، یا در صورتی که این گزینه copy باشد، برچسب جریان هدر درونی IPv6 در برچسب جریان هدر بیرونی IPv6 رونوشت میشود. اگر هدر درونی IPv6 نباشد، روی 0 تنظیم میگردد.
- اگر این گزینه zero باشد، برچسب جریان صرفاً روی 0 تنظیم میشود.
- اگر این گزینه compute باشد، برچسب جریان روی یک هش از فیلدهای L3/L4 بسته درونی تنظیم میشود.
این گزینهها فقط برای پورتهای پچ (patch ports) اعمال میشوند، یعنی رابطهایی که ستون type آنها patch است. پورتهای پچ عمدتاً روشی برای اتصال پلهای مستقل به یکدیگر هستند، شبیه به اینکه چگونه یک کابل اترنت (یک «کابل پچ») را به دو سوئیچ فیزیکی متصل میکنیم تا آن سوئیچها را به هم وصل کنیم. اثر وصل کردن یک پورت پچ به دو سوئیچ از نظر مفهومی مشابه وصل کردن دو سر یک دستگاه veth لینوکس به آن سوئیچها است، اما پیادهسازی پورتهای پچ آنها را بسیار کارآمدتر میکند.
پورتهای پچ ممکن است دو پل مختلف (حالت معمول) یا یک پل یکسان را به هم متصل کنند. در حالت دوم، برای جلوگیری از ایجاد حلقه (loop) باید دقت ویژهای به خرج داد، مثلاً از طریق برنامهریزی جریانهای مناسب با OpenFlow. پورتهای پچ در صورتی که دو سر آنها به پلهایی روی مسیرهای داده (datapaths) متفاوتی متصل باشند کار نمیکنند، مثلاً برای اتصال پلها در مسیرهای داده system و netdev.
دستور زیر پورتهای پچ p0 و p1 را ایجاد و متصل کرده و آنها را به ترتیب به پلهای br0 و br1 اضافه میکند:
ovs-vsctl add-port br0 p0 - set Interface p0 type=patch options:peer=p1 \
- add-port br1 p1 - set Interface p1 type=patch options:peer=p0
- options : peer: رشته اختیاری
- مقدار name مربوط به Interface برای سمت دیگر پچ. گزینه peer خودِ Interface نامبرده باید نام این Interface را مشخص کند. یعنی این دو رابط پچ باید مقادیر name و peer معکوس نسبت به هم داشته باشند.
تنها netdevهای PMD از این گزینهها پشتیبانی میکنند.
- options : n_rxq: رشته اختیاری، شامل یک عدد صحیح، حداقل 1
- حداکثر تعداد صفهای rx را که برای netdev مربوط به PMD ایجاد میشوند مشخص میکند. اگر مشخص نشود یا روی 0 تنظیم شود، به طور پیشفرض یک صف rx ایجاد خواهد شد. توسط رابطهای vHost در DPDK پشتیبانی نمیشود.
- options : dpdk-devargs: رشته اختیاری
- آدرس PCI مرتبط با پورت را برای دستگاههای فیزیکی، یا درایور مجازی مورد استفاده برای پورت را در زمانی که قصد استفاده از PMD مجازی وجود دارد، مشخص میکند. برای مورد دوم، رشته آرگومان معمولاً به شکل eth_driver_namex است، که در آن driver_name نام معتبر درایور PMD مجازی DPDK و x یک شناسه یکتا به انتخاب شما برای پورت مورد نظر است. فقط توسط نوع پورت dpdk پشتیبانی میشود.
- other_config : pmd-rxq-affinity: رشته اختیاری
- نگاشت صفهای RX این رابط را به هستههای CPU مشخص میکند.
- مقدار باید در قالب زیر تنظیم شود:
- other_config:pmd-rxq-affinity=<rxq-affinity-list>
- به طوری که
- <rxq-affinity-list> ::= NULL | <non-empty-list>
- <non-empty-list> ::= <affinity-pair> | <affinity-pair> , <non-empty-list>
- <affinity-pair> ::= <queue-id> : <core-id>
- options : xdp-mode: رشته اختیاری، یکی از best-effort، generic، native-with-zerocopy، یا native
- حالت عملیاتی برنامه XDP را مشخص میکند.
- در حالت native-with-zerocopy، برنامه XDP با فعال بودن رونوشت صفر (zero-copy) در RX و TX در درایور دستگاه بارگذاری میشود. این حالت نیازمند پشتیبانی درایور دستگاه است و بهترین کارایی را دارد زیرا هیچ رونوشتبرداری از بستهها نباید انجام شود.
- حالت native همانند native-with-zerocopy است، اما بدون قابلیت رونوشت صفر. این حالت حداقل نیازمند یک بار رونوشتبرداری بین هسته و فضای کاربر است. این حالت نیز نیازمند پشتیبانی از سوی درایور دستگاه میباشد.
- در حالت generic، برنامه XDP در هسته پس از تخصیص skb در مراحل اولیه پردازش بسته درون پشته شبکه عمل میکند. این حالت نیازی به پشتیبانی درایور ندارد، اما کارایی بسیار پایینتری دارد.
- حالت best-effort تلاش میکند بهترین (سریعترین) حالت را از میان حالتهای موجود برای رابط جاری تشخیص داده و انتخاب کند.
- توجه داشته باشید که این گزینه مختص netdev-afxdp است. مقدار پیشفرض آن حالت best-effort است.
- options : vhost-server-path: رشته اختیاری
- این مقدار مسیر سوکت مرتبط با دستگاه در حالت کلاینت vHost User را که توسط QEMU ایجاد شده است یا خواهد شد، مشخص میکند. فقط توسط رابطهای dpdkvhostuserclient پشتیبانی میشود.
- options : vhost-max-queue-pairs: رشته اختیاری، شامل یک عدد صحیح، در بازه 1 تا 128
- این مقدار حداکثر تعداد جفتهای صف پشتیبانیشده توسط یک دستگاه vHost را مشخص میکند. این گزینه برای backendهای vhost-user نادیده گرفته میشود و فقط VDUSE پشتیبانی میشود. فقط توسط رابطهای dpdkvhostuserclient پشتیبانی میشود.
- مقدار پیشفرض 1 است.
- options : tx-retries-max: رشته اختیاری، شامل یک عدد صحیح، در بازه 0 تا 32
- این مقدار حداکثر تعداد تلاشهای مجدد tx در vhost را که میتوان هنگام تلاش برای ارسال دستهای از بستهها به یک رابط انجام داد، مشخص میکند. فقط توسط رابطهای dpdkvhostuserclient پشتیبانی میشود.
- مقدار پیشفرض 8 است.
- options : n_rxq_desc: رشته اختیاری، شامل یک عدد صحیح، حداقل 1
- اندازه صف rx (تعداد توصیفکنندههای rx) را برای پورتهای dpdk مشخص میکند. این مقدار باید توانی از 2 باشد و توسط سختافزار دستگاه در حال پیکربندی پشتیبانی شود. اگر مشخص نشود یا مقدار نادرستی مشخص شود، به طور پیشفرض از 2048 توصیفکننده rx استفاده خواهد شد.
- options : n_txq_desc: رشته اختیاری، شامل یک عدد صحیح، حداقل 1
- اندازه صف tx (تعداد توصیفکنندههای tx) را برای پورتهای dpdk مشخص میکند. این مقدار باید توانی از 2 باشد و توسط سختافزار دستگاه در حال پیکربندی پشتیبانی شود. اگر مشخص نشود یا مقدار نادرستی مشخص شود، به طور پیشفرض از 2048 توصیفکننده tx استفاده خواهد شد.
- options : dpdk-vf-mac: رشته اختیاری
- آدرس اترنت که برای این رابط VF تنظیم میشود. در صورت عدم تنظیم، از آدرس MAC پیشفرض استفاده میشود:
- برای بیشتر درایورها، آدرس MAC پیشفرض اختصاصیافته توسط سختافزار آنها.
- برای درایورهای دوشاخهشده (bifurcated)، آدرس MAC در حال حاضر استفادهشده توسط netdevice هسته.
- این گزینه فقط ممکن است با نمایندههای VF در dpdk استفاده شود.
- options : rx-steering: رشته اختیاری، یا rss+lacp یا rss
- سیاست هدایت صف Rx سختافزاری را پیکربندی میکند.
- این گزینه یکی از مقادیر زیر را میپذیرد:
- اگر کاربر از قبل چندین options:n_rxq را روی پورت پیکربندی کرده باشد، یک صف اضافی برای پروتکلهای مشخصشده اختصاص داده میشود. حتی اگر سختافزار نتواند تعداد صفهای درخواستی Rx را برآورده کند، از آخرین صف Rx استفاده خواهد شد. اگر فقط یک صف Rx در دسترس باشد یا اگر سختافزار از تطبیقدهندهها/کنشهای rte_flow مورد نیاز برای تغییر مسیر پروتکلهای انتخابشده پشتیبانی نکند، مقدار سفارشی rx-steering به حالت پیشفرض rss بازمیگردد.
- این ویژگی با other_config:hw-offload ناسازگار است زیرا ممکن است با جریانهای تخلیهبارشده تداخل داشته باشد. اگر هر دو فعال باشند، rx-steering به حالت پیشفرض rss بازمیگردد.
- این گزینه فقط برای رابطهای با نوع dpdk قابل اعمال است.
- other_config : tx-steering: رشته اختیاری، یا hash یا thread
- حالت هدایت Tx را برای رابط مشخص میکند.
- مقدار thread نگاشت ایستا (1:1) ریسمان به txq را در زمانی که تعداد صفهای Tx بیشتر از تعداد ریسمانهای PMD باشد، و نگاشت پویا (N:1) را در صورت برابر یا کمتر بودن فعال میکند. در این حالت یک ریسمان منفرد نمیتواند از بیش از 1 صف ارسال پورت دادهشده استفاده کند.
- مقدار hash هدایت Tx مبتنی بر هش را فعال میکند که بستهها را بر اساس هش 5تایی (5-tuple) آنها روی تمام صفهای ارسال توزیع مینماید.
- مقدار پیشفرض thread است.
این تنظیمات رفتار جستجوها/درجهای EMC را برای بستههای دریافتشده از رابط کنترل میکند.
- other_config : emc-enable: رشته اختیاری، یا true یا false
- مشخص میکند که آیا کش تطابق دقیق (EMC) باید هنگام پردازش بستههای دریافتی از این رابط استفاده شود یا خیر. در صورت درست بودن، other_config:emc-insert-inv-prob روی این رابط تأثیر خواهد داشت.
- مقدار پیشفرض true است.
مقدار MTU (حداکثر واحد انتقال) بزرگترین میزان دادهای است که میتواند در یک فریم اترنت منفرد جا بگیرد. مقدار استاندارد MTU اترنت 1500 بایت است. برخی رسانههای فیزیکی و بسیاری از انواع رابطهای مجازی را میتوان با MTUهای بالاتر پیکربندی کرد.
یک کلاینت میتواند MTU یک رابط را با پر کردن mtu_request تغییر دهد. سپس Open vSwitch مقدار پیکربندیشده فعلی را در mtu گزارش میدهد.
- mtu: عدد صحیح اختیاری
- مقدار فعلی پیکربندیشده MTU برای رابط.
- این ستون برای رابطی که MTU ندارد، مانند برخی انواع تونلها، خالی خواهد بود.
- سامانه Open vSwitch مقدار این ستون را تنظیم میکند، بنابراین سایر کلاینتها باید با آن به عنوان فقطخواندنی رفتار کنند.
- mtu_request: عدد صحیح اختیاری، حداقل 1
- مقدار درخواستی MTU (حداکثر واحد انتقال) برای رابط. یک کلاینت میتواند این ستون را برای تغییر MTU یک رابط پر کند.
- استاندارد RFC 791 ایجاب میکند که هر ماژول اینترنت قادر به هدایت یک دیتاگرام 68 اکتی بدون تکهتکهشدن بیشتر باشد. حداکثر اندازه یک بسته IP برابر با 65535 بایت است.
- اگر این مقدار تنظیم نشود و رابط از نوع internal باشد، Open vSwitch مقدار MTU را به گونهای تغییر میدهد که با حداقل MTU سایر رابطهای پل مطابقت داشته باشد.
اطلاعات وضعیت مربوط به رابطهای متصل به پلها، که هر 5 ثانیه یک بار بهروزرسانی میشود. همه رابطها دارای تمام این ویژگیها نیستند؛ برای مثال، رابطهای مجازی سرعت پیوند (link speed) ندارند. ستونهای غیرقابلاعمال مقادیر خالی خواهند داشت.
- admin_state: رشته اختیاری، یا down یا up
- وضعیت مدیریتی پیوند شبکه فیزیکی.
- link_state: رشته اختیاری، یا down یا up
- وضعیت مشاهدهشده پیوند شبکه فیزیکی. این مقدار معمولاً وضعیت حامل (carrier status) پیوند است. اگر Port مربوط به رابط یک پیوند پیکربندیشده برای پایش miimon باشد، در عوض وضعیت miimon پیوند شبکه خواهد بود.
- link_resets: عدد صحیح اختیاری
- تعداد دفعاتی که Open vSwitch تغییر در link_state این Interface را مشاهده کرده است.
- link_speed: عدد صحیح اختیاری
- سرعت مذاکرهشده پیوند شبکه فیزیکی. مقادیر معتبر، اعداد صحیح مثبت بزرگتر از 0 هستند.
- duplex: رشته اختیاری، یا full یا half
- حالت دوطرفه (duplex) پیوند شبکه فیزیکی.
- lacp_current: مقدار بولی اختیاری
- مقدار بولی که وضعیت LACP را برای این رابط نشان میدهد. در صورت درست بودن، این رابط اطلاعات LACP جاری درباره شریک LACP خود دارد. این اطلاعات ممکن است برای پایش سلامت رابطها در یک پورت با LACP فعال استفاده شود. اگر LACP فعال نباشد این ستون خالی خواهد بود.
- status: نگاشتی از جفتهای رشته-رشته
- جفتهای کلید-مقداری که وضعیت پورت را گزارش میدهند. مقادیر وضعیت پشتیبانیشده به type وابستهاند؛ برای مثال، برخی از رابطها ممکن است یک status:driver_name معتبر نداشته باشند.
- status : driver_name: رشته اختیاری
- نام درایور دستگاه که آداپتور شبکه را کنترل میکند.
- status : driver_version: رشته اختیاری
- رشته نسخه درایور دستگاه که آداپتور شبکه را کنترل میکند.
- status : firmware_version: رشته اختیاری
- رشته نسخه سفتافزار (firmware) آداپتور شبکه، در صورت موجود بودن.
- status : peer_ifindex: رشته اختیاری
- برای دستگاههای veth در لینوکس، این ستون حاوی شاخص رابط دستگاه veth همتا است. این امر به برنامهها امکان میدهد جفتهای veth را بدون نیاز به فراخوانیهای سیستمی اضافی یا تجزیه اطلاعات رابط شبکه، به صورت برنامهنویسیشده کشف کنند.
- فقط برای دستگاههای veth موجود است (زمانی که status:driver_name برابر "veth" باشد). در سیستمهای غیر لینوکسی در دسترس نیست.
- status : source_ip: رشته اختیاری
- آدرس IP مبدأ استفادهشده برای یک نقطه پایانی تونل IPv4/IPv6، مانند gre.
- status : tunnel_egress_iface: رشته اختیاری
- رابط خروجی برای تونلها. در حال حاضر فقط برای تونلها در سیستمهای لینوکس مرتبط است؛ این ستون نام رابطی را نشان میدهد که مسئول مسیریابی ترافیک به مقصد options:remote_ip پیکربندیشده است. این میتواند یک رابط داخلی مانند یک پورت پل باشد.
- status : tunnel_egress_iface_carrier: رشته اختیاری، یا down یا up
- اینکه آیا حامل (carrier) روی status:tunnel_egress_iface شناسایی شده است یا خیر.
گزینههای وضعیت رابط ویژه DPDK.
- status : port_no: رشته اختیاری
- شناسه پورت DPDK.
- status : numa_id: رشته اختیاری
- شناسه سوکت NUMA که یک دستگاه اترنت به آن متصل است.
- status : min_rx_bufsize: رشته اختیاری
- حداقل اندازه بافر RX.
- status : max_rx_pktlen: رشته اختیاری
- حداکثر طول قابل پیکربندی بسته RX.
- status : max_rx_queues: رشته اختیاری
- حداکثر تعداد صفهای RX.
- status : max_tx_queues: رشته اختیاری
- حداکثر تعداد صفهای TX.
- status : max_mac_addrs: رشته اختیاری
- حداکثر تعداد آدرسهای MAC.
- status : max_hash_mac_addrs: رشته اختیاری
- حداکثر تعداد آدرسهای MAC هش برای MTA و UTA.
- status : max_vfs: رشته اختیاری
- حداکثر تعداد آدرسهای MAC هش برای MTA و UTA. حداکثر تعداد VFها.
- status : max_vmdq_pools: رشته اختیاری
- حداکثر تعداد استخرهای VMDq.
- status : n_rxq: رشته اختیاری
- تعداد صفهای Rx.
- status : n_txq: رشته اختیاری
- تعداد صفهای Tx.
- status : rx_csum_offload: رشته اختیاری
- اینکه آیا تخلیه بار چکسام Rx فعال است یا خیر.
- status : if_type: رشته اختیاری
- شناسه نوع رابط بر اساس تعاریف ifTYPE MIB در IANA.
- status : if_descr: رشته اختیاری
- رشته توصیف رابط.
- status : bus_info: رشته اختیاری
- نام گذرگاه و اطلاعات گذرگاه مانند شناسه فروشنده (Vendor ID) و شناسه دستگاه (Device ID) دستگاه PCI.
- status : dpdk-vf-mac: رشته اختیاری
- آدرس اترنت تنظیمشده برای این رابط VF. فقط برای نمایندههای VF در dpdk گزارش میشود.
- status : rx-steering: رشته اختیاری
- سیاست هدایت صف Rx سختافزاری در حال استفاده.
- status : rx_steering_queue: رشته اختیاری
- شناسه صف هدایت rx. فقط در صورتی گزارش میشود که rx-steering توسط سختافزار پشتیبانی شود.
- status : rss_queues: رشته اختیاری
- شناسههای صفهای rss. فقط در صورتی گزارش میشود که rx-steering توسط سختافزار پشتیبانی شود.
اطلاعات وضعیت رابط ویژه netdevهای dpdkvhostuser و dpdkvhostuserclient.
- status : mode: رشته اختیاری
- کلاینت (متصلشونده) یا سرور (گوشدهنده) در ارتباط سوکت.
- status : features: رشته اختیاری
- بیتمپ ویژگیهای virtio طبق مشخصات virtio.
- status : num_of_vrings: رشته اختیاری
- تعداد virtqueueهای موجود.
- status : numa: رشته اختیاری
- شناسه numa دستگاه و حافظه مهمان.
- status : socket: رشته اختیاری
- مسیر سوکت استفادهشده برای ارتباط.
- status : status: رشته اختیاری
- وضعیت اتصال به دستگاه.
- status : vring_n_size: رشته اختیاری
- اندازه هر یک از virtqueueها گزارش خواهد شد، که در آن n شماره virtqueue از 0..(num_of_vrings-1) است.
- status : userspace-tso: رشته اختیاری
- اینکه آیا userspace-tso فعال یا غیرفعال است.
گزینههای وضعیت رابط ویژه AF_XDP.
- status : xdp-mode: رشته اختیاری
- حالت XDP در حال استفاده فعلی. برای شرح مقادیر ممکن، options:xdp-mode را ببینید.
جفتهای کلید-مقداری که آمار رابط را گزارش میدهند. پیادهسازی فعلی این شمارندهها را به صورت دورهای بهروزرسانی میکند. دوره بهروزرسانی توسط other_config:stats-update-interval در جدول Open_vSwitch کنترل میشود. پیادهسازیهای آینده ممکن است هنگام ایجاد یک رابط، هنگام پرسوجوی آنها (مثلاً با استفاده از عملیات select در OVSDB)، و درست قبل از حذف رابط به دلیل قطع گرم (hot-unplug) رابط مجازی یا خاموش شدن ماشین مجازی، و شاید در زمانهای دیگر آنها را بهروزرسانی کنند، اما نه بر مبنای دورهای منظم.
اینها همان آماری هستند که توسط OpenFlow در ساختار struct ofp_port_stats آن گزارش میشوند. اگر رابطی از یک آمار معین پشتیبانی نکند، آن جفت حذف میشود.
- statistics : rx_packets: عدد صحیح اختیاری
- تعداد بستههای دریافتشده.
- statistics : rx_bytes: عدد صحیح اختیاری
- تعداد بایتهای دریافتشده.
- statistics : tx_packets: عدد صحیح اختیاری
- تعداد بستههای ارسالشده.
- statistics : tx_bytes: عدد صحیح اختیاری
- تعداد بایتهای ارسالشده.
- statistics : rx_dropped: عدد صحیح اختیاری
- تعداد بستههای دور ریختهشده توسط RX.
- statistics : rx_frame_err: عدد صحیح اختیاری
- تعداد خطاهای همترازی فریم (frame alignment).
- statistics : rx_over_err: عدد صحیح اختیاری
- تعداد بستههای دارای سرریز (overrun) در RX.
- statistics : rx_crc_err: عدد صحیح اختیاری
- تعداد خطاهای CRC.
- statistics : rx_errors: عدد صحیح اختیاری
- تعداد کل خطاهای دریافت، بزرگتر یا مساوی مجموع موارد بالا.
- statistics : tx_dropped: عدد صحیح اختیاری
- تعداد بستههای دور ریختهشده توسط TX.
- statistics : collisions: عدد صحیح اختیاری
- تعداد برخوردها (collisions).
- statistics : tx_errors: عدد صحیح اختیاری
- تعداد کل خطاهای ارسال، بزرگتر یا مساوی مجموع موارد بالا.
این تنظیمات سیاستگذاری ورودی (ingress policing) را برای بستههای دریافتشده روی این رابط کنترل میکنند. روی یک رابط فیزیکی، این کار نرخی را محدود میکند که با آن ترافیک اجازه ورود به سیستم از بیرون را دارد؛ روی یک رابط مجازی (رابط متصل به یک ماشین مجازی)، این کار نرخی را که ماشین مجازی قادر به ارسال است محدود میکند.
سیاستگذاری (policing) شکل سادهای از کیفیت خدمات (QoS) است که صرفاً بستههای دریافتی مازاد بر نرخ پیکربندیشده را دور میریزد. به دلیل سادگی، سیاستگذاری معمولاً دقت و اثربخشی کمتری نسبت به QoS خروجی دارد (که با استفاده از جداول QoS و Queue پیکربندی میشود).
تنظیمات سیاستگذاری را میتوان بر حسب نرخ بایت یا نرخ بسته تعیین کرد، و میتوان آنها را با هم پیکربندی نمود که در این صورت با هم اعمال میشوند؛ این بدان معناست که محدودیت سرعت کوچکتر میان آنها اعمال خواهد شد.
در حال حاضر، سیاستگذاری نرخ بایت در لینوکس و OVS همراه با DPDK پیادهسازی شده است، در حالی که سیاستگذاری نرخ بسته فقط در لینوکس پیادهسازی شده است. هر دو پیادهسازی لینوکس و OVS DPDK از یک رویکرد ساده «سطل ژتون» (token bucket) استفاده میکنند.
سیاستگذاری نرخ بایت:
- اندازه سطل با ingress_policing_burst مطابقت دارد. در ابتدا سطل پر است.
- هر زمان که بستهای دریافت شود، اندازه آن (تبدیلشده به ژتون) با تعداد ژتونهای فعلی موجود در سطل مقایسه میشود. اگر تعداد ژتونهای مورد نیاز موجود باشد، ژتونها برداشته شده و بسته هدایت (forward) میشود. در غیر این صورت، بسته دور ریخته میشود.
- هر زمان که سطل پر نباشد، با ژتونها با نرخی که توسط ingress_policing_rate مشخص شده دوباره پر میشود.
سیاستگذاری نرخ بسته:
- اندازه سطل با ingress_policing_kpkts_burst مطابقت دارد. در ابتدا سطل پر است.
- هر زمان که بستهای دریافت شود، یک ژتون از سطل فعلی مصرف خواهد کرد. اگر ژتون در سطل موجود باشد، برداشته شده و بسته هدایت میشود. در غیر این صورت، بسته دور ریخته میشود.
- هر زمان که سطل پر نباشد، با ژتونها با نرخی که توسط ingress_policing_kpkts_rate مشخص شده دوباره پر میشود.
سیاستگذاری ترافیک با برخی از پروتکلهای شبکه و به ویژه با بستههای تکهتکهشده (fragmented) IP تعامل نامناسبی دارد. فرض کنید فعالیت شبکه به اندازهای باشد که سطل تقریباً همیشه خالی بماند. در این حالت، این الگوریتم سطل ژتون هر از چند گاهی یک بسته منفرد را هدایت میکند، به طوری که دوره زمانی آن به اندازه بسته و نرخ پیکربندیشده بستگی دارد. تمام تکههای یک بسته IP به طور معمول پشت سر هم و به صورت یک گروه ارسال میشوند. بنابراین در چنین شرایطی، تنها یکی از این تکهها هدایت میشود و باقی تکهها دور ریخته خواهند شد. پروتکل IP هیچ روشی را برای گیرنده مورد نظر فراهم نمیکند تا فقط تکههای باقیمانده را درخواست کند. در چنین حالتی دو احتمال عمده برای آنچه بعداً رخ خواهد داد وجود دارد: یا تمام تکهها در نهایت دوباره ارسال خواهند شد (همانطور که TCP انجام میدهد) که در این صورت همان مشکل دوباره تکرار خواهد شد، یا فرستنده متوجه دور ریخته شدن بستهاش نخواهد شد و دادهها به سادگی از دست خواهند رفت (همانطور که برخی پروتکلهای مبتنی بر UDP انجام میدهند). در هر دو حالت، ممکن است هیچ پیشرفتی در ارسال ترافیک هرگز حاصل نشود.
- ingress_policing_rate: عدد صحیح، حداقل 0
- حداکثر نرخ برای دادههای دریافتی روی این رابط، بر حسب کیلوبیت بر ثانیه (kbps). دادههایی که سریعتر از این نرخ دریافت شوند دور ریخته میشوند. برای غیرفعال کردن سیاستگذاری، روی 0 (پیشفرض) تنظیم کنید.
- ingress_policing_kpkts_rate: عدد صحیح، حداقل 0
- حداکثر نرخ برای دادههای دریافتی روی این رابط، بر حسب kpps (هر 1 kpps برابر با 1000 pps است). دادههایی که سریعتر از این نرخ دریافت شوند دور ریخته میشوند. برای غیرفعال کردن سیاستگذاری، روی 0 (پیشفرض) تنظیم کنید.
- ingress_policing_burst: عدد صحیح، حداقل 0
- حداکثر اندازه جهش / انفجار (burst size) برای دادههای دریافتی روی این رابط، بر حسب کیلوبیت (kb). اندازه جهش پیشفرض در صورت تنظیم روی 0 برابر با 8000 کیلوبیت است. اگر ingress_policing_rate برابر 0 باشد، این مقدار هیچ تأثیری ندارد.
- مشخص کردن اندازه جهش بزرگتر به الگوریتم اجازه میدهد بخشندهتر باشد، که برای پروتکلهایی مانند TCP که به بستههای دور ریختهشده واکنش شدیدی نشان میدهند، حائز اهمیت است. اندازه جهش باید حداقل به اندازه MTU رابط باشد. تعیین مقداری که از نظر عددی حداقل به اندازه 80% از ingress_policing_rate باشد، به TCP کمک میکند تا به دستیابی به نرخ کامل نزدیکتر شود.
- ingress_policing_kpkts_burst: عدد صحیح، حداقل 0
- حداکثر اندازه جهش / انفجار برای دادههای دریافتی روی این رابط، بر حسب kpkts (هر 1 kpkts برابر با 1000 بسته است). اندازه جهش پیشفرض در صورت تنظیم روی 0 برابر با 16 kpkts است. اگر ingress_policing_kpkts_rate برابر 0 باشد، این مقدار هیچ تأثیری ندارد.
- مشخص کردن اندازه جهش بزرگتر به الگوریتم اجازه میدهد بخشندهتر باشد، که برای پروتکلهایی مانند TCP که به بستههای دور ریختهشده واکنش شدیدی نشان میدهند، حائز اهمیت است. تعیین مقداری که از نظر عددی حداقل به اندازه 80% از ingress_policing_kpkts_rate باشد، به TCP کمک میکند تا به دستیابی به نرخ کامل نزدیکتر شود.
پروتکل BFD، تعریفشده در RFC 5880 و RFC 5881، امکان تشخیص نقطه به نقطه خرابیهای اتصال را از طریق ارسال گاهبهگاه پیامهای کنترلی BFD فراهم میکند. سامانه Open vSwitch پروتکل BFD را پیادهسازی میکند تا به عنوان یک جایگزین محبوبتر و سازگارتر با استانداردها برای CFM عمل کند.
پروتکل BFD با ارسال منظم پیامهای کنترلی BFD با نرخی که به طور مستقل در هر جهت مذاکره میشود، کار میکند. هر نقطه پایانی نرخی را که در آن انتظار دریافت پیامهای کنترلی را دارد و نرخی را که مایل به ارسال آنها است، مشخص میکند. به طور پیشفرض، Open vSwitch از ضریب تشخیص (detection multiplier) سه استفاده میکند، به این معنی که اگر سه پیام کنترلی متوالی BFD نرسد، یک نقطه پایانی خطای اتصال را اعلام میکند. در صورت بروز مشکل اتصال یکطرفه، سیستمی که پیامهای کنترلی BFD را دریافت نمیکند، مشکل را در پیامهایی که ارسال میکند به همتای خود علامت میدهد.
پیادهسازی BFD در Open vSwitch با هدف پایبندی دقیق به الزامات RFC 5880 انجام شده است. سامانه Open vSwitch ویژگیهای اختیاری احراز هویت (Authentication) یا «حالت انعکاس» (Echo Mode) را پیادهسازی نمیکند.
نسخه OVS 2.13 و نسخههای پیشین آن تمام بستههای BFD را رهگیری و پردازش میکردند. نسخه OVS 2.14 و نسخههای جدیدتر تنها بستههای BFD را که به مقصد یک نمونه BFD پیکربندیشده ارسال شدهاند رهگیری و پردازش میکنند، و سایر بستههای BFD در دسترس جدول جریان OVS برای هدایت قرار میگیرند.
یک کنترلکننده برای فعالسازی و پیکربندی BFD، جفتهای کلید-مقدار را در ستون bfd تنظیم میکند.
- bfd : enable: رشته اختیاری، یا true یا false
- مقدار true برای فعالسازی BFD روی این Interface. در صورت عدم تعیین، BFD به طور پیشفرض فعال نخواهد شد.
- bfd : min_rx: رشته اختیاری، شامل یک عدد صحیح، حداقل 1
- کوتاهترین بازه زمانی، به میلیثانیه، که این نشست BFD پیشنهاد میکند پیامهای کنترلی BFD را دریافت کند. نقطه پایانی راه دور ممکن است تصمیم بگیرد پیامها را با نرخ کمتری ارسال کند. مقدار پیشفرض 1000 است.
- bfd : min_tx: رشته اختیاری، شامل یک عدد صحیح، حداقل 1
- کوتاهترین بازه زمانی، به میلیثانیه، که این نشست BFD مایل است پیامهای کنترلی BFD را ارسال کند. اگر نقطه پایانی راه دور تمایلی به دریافت با سرعتی که تعیین شده نداشته باشد، پیامها در عمل با نرخ کمتری ارسال خواهند شد. مقدار پیشفرض 100 است.
- bfd : decay_min_rx: رشته اختیاری، شامل یک عدد صحیح
- یک بازه دریافت جایگزین، به میلیثانیه، که باید بزرگتر یا مساوی با bfd:min_rx باشد. زمانی که ترافیک داده ورودی آشکاری در رابط وجود نداشته باشد، پیادهسازی از bfd:min_rx به bfd:decay_min_rx سوئیچ میکند تا هزینه CPU و پهنای باند پایش یک رابط غیرفعال (idle) کاهش یابد. این ویژگی ممکن است با تنظیم مقدار 0 غیرفعال شود. هر زمان که bfd:decay_min_rx یا bfd:min_rx تغییر کند، این ویژگی بازنشانی میشود.
- bfd : forwarding_if_rx: رشته اختیاری، یا true یا false
- هنگامی که true باشد، ترافیک دریافتشده روی Interface برای نشان دادن قابلیت ورودی/خروجی (I/O) بسته استفاده میشود. بستههای کنترلی BFD همچنان ارسال و دریافت میشوند. حداقل یک بسته کنترلی BFD باید در هر بازه زمانی 100 * bfd:min_rx دریافت شود. در غیر این صورت، حتی در صورت دریافت ترافیک، مقدار bfd:forwarding برابر با false خواهد بود.
- bfd : cpath_down: رشته اختیاری، یا true یا false
- برای اطلاع به نقطه پایانی راه دور مبنی بر اینکه به دلیلی غیر از خرابی اتصال در رابط تحت پایش، ترافیک نباید به این سیستم هدایت شود، روی true تنظیم کنید. دلیل معمول در لایه زیرین «قطع بودن مسیر متوالی» (concatenated path down) است، به این معنی که اتصال فراتر از سیستم محلی قطع است. مقدار پیشفرض false است.
- bfd : check_tnl_key: رشته اختیاری، یا true یا false
- برای اینکه BFD فقط پیامهای کنترلی با کلید تونل صفر را بپذیرد، روی true تنظیم کنید. به طور پیشفرض، BFD پیامهای کنترلی با هر کلید تونلی را میپذیرد.
- bfd : bfd_local_src_mac: رشته اختیاری
- برای تنظیم MAC مورد استفاده به عنوان مبدأ برای بستههای BFD ارسالی، روی یک آدرس اترنت در قالب xx:xx:xx:xx:xx:xx تنظیم کنید. مقدار پیشفرض، آدرس mac رابطی است که BFD روی آن فعال شده است.
- bfd : bfd_local_dst_mac: رشته اختیاری
- برای تنظیم MAC مورد استفاده به عنوان مقصد برای بستههای BFD ارسالی، روی یک آدرس اترنت در قالب xx:xx:xx:xx:xx:xx تنظیم کنید. مقدار پیشفرض 00:23:20:00:00:01 است.
- bfd : bfd_remote_dst_mac: رشته اختیاری
- برای تنظیم MAC مورد استفاده جهت بررسی مقصد بستههای BFD دریافتی، روی یک آدرس اترنت در قالب xx:xx:xx:xx:xx:xx تنظیم کنید. بستههای دارای MAC مقصد متفاوت به عنوان بستههای BFD در نظر گرفته نخواهند شد. در صورت عدم تعیین، آدرس MAC مقصد بستههای BFD دریافتی بررسی نمیشود.
- bfd : bfd_src_ip: رشته اختیاری
- برای تنظیم آدرس IP مورد استفاده به عنوان مبدأ برای بستههای BFD ارسالی، روی یک آدرس IPv4 تنظیم کنید. مقدار پیشفرض 169.254.1.1 است.
- bfd : bfd_dst_ip: رشته اختیاری
- برای تنظیم آدرس IP مورد استفاده به عنوان مقصد برای بستههای BFD ارسالی، روی یک آدرس IPv4 تنظیم کنید. مقدار پیشفرض 169.254.1.0 است.
- bfd : oam: رشته اختیاری
- برخی از پروتکلهای تونل (مانند Geneve) شامل بیتی در هدر هستند که نشان میدهد بسته کپسولهشده یک فریم OAM است. با تنظیم این مقدار روی true، در صورت کپسولهسازی در یکی از این تونلها، بستههای BFD به عنوان OAM علامتگذاری میشوند.
- bfd : mult: رشته اختیاری، شامل یک عدد صحیح، در بازه 1 تا 255
- ضریب تشخیص BFD، که مقدار پیشفرض آن 3 است. اگر تعداد مشخصشدهای از پیامهای کنترلی متوالی BFD نرسد، یک نقطه پایانی خطای اتصال را اعلام میکند.
سوئیچ جفتهای کلید-مقدار را در ستون bfd_status تنظیم میکند تا وضعیت BFD را روی این رابط گزارش دهد. هنگامی که BFD فعال نیست (با bfd:enable)، سوئیچ تمام جفتهای کلید-مقدار را از bfd_status پاک میکند.
- bfd_status : state: رشته اختیاری، یکی از admin_down، down، init، یا up
- وضعیت نشست BFD را گزارش میدهد. در صورت UP بودن، نشست BFD کاملاً سالم و مذاکرهشده است.
- bfd_status : forwarding: رشته اختیاری، یا true یا false
- گزارش میدهد که آیا نشست BFD معتقد است که این Interface ممکن است برای هدایت ترافیک استفاده شود یا خیر. معمولاً این بدان معناست که نشست محلی وضعیت UP را علامت میدهد و سیستم راه دور نیز مشکلی مانند قطع بودن مسیر متوالی را اعلام نمیکند.
- bfd_status : diagnostic: رشته اختیاری
- یک کد تشخیصی که دلیل سیستم محلی برای آخرین تغییر در وضعیت نشست را مشخص میکند. پیامهای خطا در بخش 4.1 از [RFC 5880] تعریف شدهاند.
- bfd_status : remote_state: رشته اختیاری، یکی از admin_down، down، init، یا up
- وضعیت نشست BFD نقطه پایانی راه دور را گزارش میدهد.
- bfd_status : remote_diagnostic: رشته اختیاری
- یک کد تشخیصی که دلیل سیستم راه دور برای آخرین تغییر در وضعیت نشست را مشخص میکند. پیامهای خطا در بخش 4.1 از [RFC 5880] تعریف شدهاند.
- bfd_status : flap_count: رشته اختیاری، شامل یک عدد صحیح، حداقل 0
- تعداد نوسانات (flaps) مربوط به bfd_status:forwarding را از زمان شروع میشمارد. هر تغییر در مقدار bfd_status:forwarding به عنوان یک نوسان در نظر گرفته میشود.
مدیریت خطای اتصال 802.1ag به اختصار (CFM)، به گروهی از نقاط نگهداری (MPs) به نام یک انجمن نگهداری (MA) اجازه میدهد تا مشکلات اتصال با یکدیگر را شناسایی کنند. نقاط نگهداری درون یک MA باید اتصال متقابل کامل و انحصاری داشته باشند. این امر با انتشار گاهبهگاه پیامهای بررسی تداوم (CCMs) در یک بازه ارسال قابل پیکربندی تأیید میشود.
طبق مشخصات 802.1ag، هر نقطه نگهداری باید خارج از باند با فهرستی از نقاط نگهداری راه دور که باید با آنها اتصال داشته باشد پیکربندی شود. سامانه Open vSwitch در این زمینه با مشخصات تفاوت دارد. این سامانه صرفاً فرض میکند اگر هیچ نقطه نگهداری راه دوری قابل دسترسی نباشد، پیوند دچار خطا است و در غیر این صورت آن را بدون خطا در نظر میگیرد.
هنگام کار بر روی تونلهایی که فاقد in_key هستند یا مقدار in_key آنها flow است، CFM تنها پیامهای CCM با کلید تونل صفر را میپذیرد.
- cfm_mpid: عدد صحیح اختیاری
- یک شناسه نقطه نگهداری (MPID) هر نقطه پایانی درون یک انجمن نگهداری را به طور یکتا مشخص میکند. شناسه MPID برای معرفی این نقطه پایانی به سایر نقاط نگهداری در MA استفاده میشود. هر سر پیوندی که پایش میشود باید MPID متفاوتی داشته باشد. برای فعالسازی CFM روی این Interface باید پیکربندی شود.
- طبق مشخصات 802.1ag، شناسههای MPID تنها میتوانند در بازه [1, 8191] باشند. با این حال، حالت توسعهیافته (ستون other_config:cfm_extended را ببینید) از MPIDهای هشت بایتی پشتیبانی میکند.
- cfm_flap_count: عدد صحیح اختیاری
- تعداد نوسانات خطای cfm را از زمان بوت میشمارد. هر تغییر در مقدار cfm_fault به عنوان یک نوسان در نظر گرفته میشود.
- cfm_fault: مقدار بولی اختیاری
- نشاندهنده خطای اتصال ایجادشده ناشی از عدم توانایی در دریافت تپشهای قلب (heartbeats) از هر نقطه پایانی راه دور است. هنگامی که خطایی روی Interfaceهایی که در پیوندها (bonds) شرکت دارند ایجاد شود، آنها غیرفعال خواهند شد.
- خطاها میتوانند به دلایل متعددی ایجاد شوند. مهمتر از همه، هنگامی ایجاد میشوند که هیچ پیام CCM برای مدتی معادل 3.5 برابر بازه ارسال دریافت نشود. همچنین خطاها زمانی ایجاد میشوند که هر یک از پیامهای CCM نشان دهند که یک نقطه نگهداری راه دور پیامهای CCM را دریافت نمیکند اما قادر به ارسال آنها است. در نهایت، اگر یک CCM دریافت شود که نشاندهنده پیکربندی غیرمنتظره باشد، خطا ایجاد میشود. به ویژه، این حالت زمانی رخ میدهد که یک CCM دریافت شود که MPID محلی را اعلان میکند.
- cfm_fault_status : recv: ندارد (none)
- نشان میدهد که یک خطای CFM به دلیل عدم دریافت پیامهای CCM در Interface ایجاد شده است.
- cfm_fault_status : rdi: ندارد (none)
- نشان میدهد که یک خطای CFM به دلیل دریافت یک CCM با بیت RDI نشانهگذاریشده ایجاد شده است. نقاط پایانی زمانی که خودشان پیامهای CCM را دریافت نمیکنند، بیت RDI را در CCMهای خود تنظیم میکنند. این امر معمولاً نشاندهنده نقص در اتصال یکطرفه است.
- cfm_fault_status : maid: ندارد (none)
- نشان میدهد که یک خطای CFM به دلیل دریافت یک CCM با مقداری برای MAID غیر از آنچه Open vSwitch استفاده میکند ایجاد شده است. انتشارهای CFM علاوه بر MPID، با یک شماره شناسایی به نام MAID برچسبگذاری میشوند. سامانه Open vSwitch تنها از دریافت انتشارهای CCM برچسبگذاریشده با MAID که خود در داخل استفاده میکند، پشتیبانی مینماید.
- cfm_fault_status : loopback: ندارد (none)
- نشان میدهد که یک خطای CFM به دلیل دریافت یک CCM ایجاد شده است که همان MPID پیکربندیشده در ستون cfm_mpid این Interface را اعلان میکند. این ممکن است نشاندهنده وجود یک حلقه در شبکه باشد.
- cfm_fault_status : overflow: ندارد (none)
- نشان میدهد که یک خطای CFM به این دلیل رخ داده است که ماژول CFM پیامهای CCM را از نقاط پایانی راه دوری بیشتر از آنچه میتواند ردیابی کند، دریافت کرده است.
- cfm_fault_status : override: ندارد (none)
- نشان میدهد که یک خطای CFM به صورت دستی توسط یک مدیر سیستم با استفاده از یک دستور ovs-appctl فعال شده است.
- cfm_fault_status : interval: ندارد (none)
- نشان میدهد که یک خطای CFM به دلیل دریافت یک فریم CCM با بازه زمانی نامعتبر ایجاد شده است.
- cfm_remote_opstate: رشته اختیاری، یا down یا up
- در حالت توسعهیافته، وضعیت عملیاتی نقطه پایانی راه دور را به عنوان up یا down نشان میدهد. ستون other_config:cfm_opstate را ببینید.
- cfm_health: عدد صحیح اختیاری، در بازه 0 تا 100
- سلامت رابط را به صورت درصدی از فریمهای CCM دریافتشده در طول 21 other_config:cfm_intervals نشان میدهد. سلامت یک رابط در صورتی که با بیش از یک cfm_remote_mpids در حال ارتباط باشد، تعریفنشده است. اگر تپشهای قلب سالم با نرخ مورد انتظار دریافت نشوند کاهش مییابد، و با دریافت تپشهای قلب سالم با نرخ مورد نظر به تدریج بهبود مییابد. هر 21 other_config:cfm_intervals، سلامت رابط نوسازی میشود.
- همانطور که در بالا ذکر شد، خطاها میتوانند به دلایل متعددی رخ دهند. سلامت پیوند حتی اگر تپشهای قلب دریافت شوند اما ناسالم گزارش شوند، کاهش مییابد. یک تپش قلب ناسالم در این زمینه، تپش قلبی است که برای آن خطایی تنظیم شده باشد یا خارج از ترتیب باشد. سلامت رابط تنها در صورت دریافت تپشهای قلب سالم با نرخ مورد نظر میتواند 100 باشد.
- cfm_remote_mpids: مجموعهای از اعداد صحیح
- هنگامی که CFM به درستی پیکربندی شده باشد، Open vSwitch گاهبهگاه انتشارهای CCM را دریافت خواهد کرد. این انتشارها حاوی MPID نقطه نگهداری فرستنده هستند. فهرست MPIDهایی که این Interface از آنها انتشار دریافت میکند به طور منظم جمعآوری شده و در این ستون نوشته میشود.
- other_config : cfm_interval: رشته اختیاری، شامل یک عدد صحیح
- بازه زمانی، به میلیثانیه، بین ارسالهای تپش قلب CFM. عدم دریافت سه تپش قلب نشاندهنده خطای اتصال است.
- در عملکرد استاندارد تنها بازههای 3، 10، 100، 1,000، 10,000، 60,000 یا 600,000 میلیثانیه پشتیبانی میشوند. سایر مقادیر به نزدیکترین مقدار موجود در فهرست به سمت پایین گرد خواهند شد. حالت توسعهیافته (ستون other_config:cfm_extended را ببینید) از هر بازهای تا 65,535 میلیثانیه پشتیبانی میکند. در هر دو حالت، مقدار پیشفرض 1000 میلیثانیه است.
- استفاده از بازههای کمتر از 100 میلیثانیه توصیه نمیشود.
- other_config : cfm_extended: رشته اختیاری، یا true یا false
- هنگامی که true باشد، ماژول CFM در حالت توسعهیافته عمل میکند. این امر باعث میشود که از یک آدرس مقصد غیراستاندارد استفاده کند تا از تداخل با پیادهسازیهای سازگار با استاندارد که ممکن است همزمان روی شبکه در حال اجرا باشند جلوگیری شود. علاوه بر این، حالت توسعهیافته با شکستن سازگاری خط ارتباطی با پیادهسازیهای منطبق با استاندارد 802.1ag، دقت پارامتر پیکربندی cfm_interval را افزایش میدهد. همچنین حالت توسعهیافته امکان استفاده از MPIDهای هشت بایتی را فراهم میسازد. مقدار پیشفرض false است.
- other_config : cfm_demand: رشته اختیاری، یا true یا false
- هنگامی که true باشد و other_config:cfm_extended نیز درست باشد، ماژول CFM در حالت تقاضا (demand mode) عمل میکند. در حالت تقاضا، ترافیک دریافتشده روی Interface برای نشان دادن زنده بودن پیوند استفاده میشود. پیامهای CCM همچنان ارسال و دریافت میشوند. حداقل یک CCM باید در هر بازه زمانی 100 * other_config:cfm_interval دریافت شود. در غیر این صورت، حتی در صورت دریافت ترافیک، ماژول CFM خطای اتصال را اعلام خواهد کرد.
- حالت تقاضا دارای چند نکته مهم است:
- برای اطمینان از اینکه ovs-vswitchd زمان کافی برای دریافت آمار از مسیر داده (datapath) را دارد، بازه تشخیص خطا روی 3.5 * MAX(other_config:cfm_interval, 500) میلیثانیه تنظیم شده است.
- برای جلوگیری از ابهام، حالت تقاضا در صورت وجود چندین نقطه نگهداری راه دور، خود را غیرفعال میکند.
- اگر Interface به شدت شلوغ و متراکم باشد، ممکن است پیامهای CCM حاوی وضعیت other_config:cfm_opstate دور ریخته شوند که باعث تأخیر در تغییرات وضعیت عملیاتی میشود. به طور مشابه، اگر پیامهای CCM حاوی بیت RDI دریافت نشوند، خرابیهای پیوند یکطرفه ممکن است شناسایی نشوند.
- other_config : cfm_opstate: رشته اختیاری، یا down یا up
- هنگامی که down باشد، ماژول CFM تمام پیامهای CCM تولیدی خود را به عنوان از نظر عملیاتی غیرفعال بدون اعلام خطا علامتگذاری میکند. این امر به نقاط نگهداری راه دور اجازه میدهد تصمیم بگیرند ترافیک را به Interface که این ماژول CFM روی آن اجرا میشود هدایت نکنند. در حال حاضر، در Open vSwitch، بیت opdown در پیامهای CCM بر Interfaceهایی که در پیوندها شرکت دارند و کنش OpenFlow از نوع bundle تأثیر میگذارد. اگر CFM در حالت توسعهیافته نباشد، این تنظیم نادیده گرفته میشود. مقدار پیشفرض up است.
- other_config : cfm_ccm_vlan: رشته اختیاری، شامل یک عدد صحیح، در بازه 1 تا 4,095
- در صورت تنظیم، ماژول CFM یک برچسب VLAN را با مقدار دادهشده برای تمام پیامهای CCM که تولید میکند اعمال خواهد کرد. میتواند رشته random باشد که در این صورت هر CCM با یک VLAN تصادفی تولیدشده متفاوت برچسبگذاری میشود.
- other_config : cfm_ccm_pcp: رشته اختیاری، شامل یک عدد صحیح، در بازه 1 تا 7
- در صورت تنظیم، ماژول CFM یک برچسب VLAN را برای تمام پیامهای CCM که تولید میکند با مقدار PCP ارائهشده اعمال خواهد کرد؛ شناسه VLAN برچسب توسط مقدار other_config:cfm_ccm_vlan تعیین میشود. اگر other_config:cfm_ccm_vlan تنظیم نشده باشد، شناسه VLAN صفر استفاده میشود.
- other_config : lacp-port-id: رشته اختیاری، شامل یک عدد صحیح، در بازه 1 تا 65,535
- شناسه پورت LACP برای این Interface. شناسههای پورت در مذاکرات LACP برای شناسایی تکتک پورتهای شرکتکننده در یک پیوند استفاده میشوند.
- other_config : lacp-port-priority: رشته اختیاری، شامل یک عدد صحیح، در بازه 1 تا 65,535
- اولویت پورت LACP برای این Interface. در مذاکرات LACP، رابطهای (Interface) دارای اولویتهای با شماره کمتر برای تجمیع ترجیح داده میشوند.
- other_config : lacp-aggregation-key: رشته اختیاری، شامل یک عدد صحیح، در بازه 1 تا 65,535
- کلید تجمیع LACP برای این Interface. رابطهای (Interface) دارای کلیدهای تجمیع متفاوت ممکن است به طور همزمان در یک Port مشخص فعال نباشند.
این جفتهای کلید-مقدار به طور خاص برای رابطی اعمال میشوند که نشاندهنده یک رابط اترنت مجازی متصل به یک ماشین مجازی است. این جفتهای کلید-مقدار نباید برای سایر انواع رابطها وجود داشته باشند. کلیدهایی که نام آنها با -uuid پایان مییابد، دارای مقادیری هستند که موجودیت مورد نظر را به طور یکتا مشخص میکنند.
- external_ids : attached-mac: رشته اختیاری
- آدرس MAC برنامهریزیشده در «سختافزار مجازی» برای این رابط، در قالب xx:xx:xx:xx:xx:xx.
- external_ids : iface-id: رشته اختیاری
- یک شناسه یکتا در سطح سیستم برای رابط.
- external_ids : iface-status: رشته اختیاری، یا active یا inactive
- هایپروایزرها ممکن است گاهی بیش از یک رابط مرتبط با یک external_ids:iface-id مشخص داشته باشند، که تنها یکی از آنها در یک زمان معین واقعاً مورد استفاده قرار میگیرد. برای مثال، در برخی شرایط ممکن است هایپروایزر هم یک رابط «tap» و هم یک رابط «vif» برای یک external_ids:iface-id منفرد داشته باشد، اما در هر زمان تنها از یکی از آنها استفاده کند. هایپروایزری که اینگونه عمل میکند باید رابط در حال استفاده فعلی را active و سایرین را inactive علامتگذاری کند. هایپروایزری که هرگز بیش از یک رابط برای یک external_ids:iface-id مشخص ندارد، میتواند آن رابط را active علامتگذاری کند یا external_ids:iface-status را به طور کامل حذف نماید.
- در طول مهاجرت ماشین مجازی (VM migration)، ممکن است یک external_ids:iface-id مشخص به طور موقت روی دو هایپروایزر مختلف به عنوان active علامتگذاری شود. به عبارت دیگر، active به این معنا است که این external_ids:iface-id نمونه فعال در یک هایپروایزر منفرد است، نه در دامنهای وسیعتر. یک استثنا وجود دارد: برخی هایپروایزرها از «مهاجرت» از یک هایپروایزر به خودش (بیشتر برای اهداف آزمایشی) پشتیبانی میکنند. در طول چنین «مهاجرتی»، دو نمونه از یک external_ids:iface-id منفرد ممکن است هر دو برای مدت کوتاهی روی یک هایپروایزر به عنوان active علامتگذاری شوند.
- external_ids : vm-id: رشته اختیاری
- ماشین مجازی که این رابط به آن تعلق دارد.
پیکربندی اتصال خودکار برای یک رابط مشخص.
- lldp : enable: رشته اختیاری، یا true یا false
- مقدار true برای فعالسازی LLDP روی این Interface. در صورت عدم تعیین، LLDP به طور پیشفرض غیرفعال خواهد بود.
کنترل جریان اترنت تعریفشده در IEEE 802.1Qbb کنترل جریان در سطح پیوند را با استفاده از فریمهای مکث (pause) مربوط به MAC فراهم میکند. فقط برای رابطهایی با نوع dpdk پیادهسازی شده است.
- options : rx-flow-ctrl: رشته اختیاری، یا true یا false
- برای فعالسازی کنترل جریان Rx روی پورتهای فیزیکی، روی true تنظیم کنید. به طور پیشفرض، کنترل جریان Rx غیرفعال است.
- options : tx-flow-ctrl: رشته اختیاری، یا true یا false
- برای فعالسازی کنترل جریان Tx روی پورتهای فیزیکی، روی true تنظیم کنید. به طور پیشفرض، کنترل جریان Tx غیرفعال است.
- options : flow-ctrl-autoneg: رشته اختیاری، یا true یا false
- برای فعالسازی مذاکره خودکار کنترل جریان روی پورتهای فیزیکی، روی true تنظیم کنید. به طور پیشفرض، مذاکره خودکار غیرفعال است.
- options : dpdk-lsc-interrupt: رشته اختیاری، یا true یا false
- این مقدار را روی false تنظیم کنید تا حالت پولینگ (poll mode) برای تشخیص تغییر وضعیت پیوند (LSC) به جای حالت وقفه (interrupt mode) برای رابط DPDK پیکربندی شود.
- اگر این مقدار تنظیم نشود، حالت وقفه پیکربندی میشود.
- این پارامتر تنها روی رابطهای dpdk مربوط به netdev تأثیر دارد.
- other_config : hw-offload-priority: رشته اختیاری
- این پیکربندی فهرستی صریح از ارائهدهندگان تخلیه بار سختافزاری را برای امتحان کردن روی این رابط تعیین میکند. آرگومان باید فهرستی از نامهای ارائهدهندگان تخلیه بار سختافزاری باشد که با کاما از هم جدا شدهاند، یا کلمه none باشد.
- اگر none در فهرست مشاهده شود، تلاشهای بیشتر برای ارائهدهندگان تخلیه بار متوقف میشود. برای مثال، اگر فهرست فقط شامل none باشد، تخلیه بار سختافزاری روی این رابط غیرفعال میشود حتی اگر به صورت سراسری فعال باشد. توجه داشته باشید که نامهای ناشناخته ارائهدهندگان تخلیه بار سختافزاری نادیده گرفته میشوند.
- در صورت عدم تنظیم، از پیکربندی سراسری other_config:hw-offload-priority استفاده میشود. تغییر این مقدار پس از فعالسازی تخلیه بار نیازمند راهاندازی مجدد دیمن است. برای جلوگیری از راهاندازی مجدد دیمن، این گزینه را در همان تراکنشی که پورت را اضافه میکند تنظیم نمایید. برای مثال:
-
ovs-vsctl add-port br0 p1 - \ set Interface p1 other_config:hw-offload-priority=none
هدف کلی این ستونها در بخش ستونهای مشترک (Common Columns) در ابتدای این سند شرح داده شده است.
جدول Flow_Table (Flow_Table TABLE)
پیکربندی برای یک جدول OpenFlow مشخص.
چکیده (Summary):
- name
- رشته
اختیاری
- سیاست اخراج (Eviction Policy):
- flow_limit
- عدد صحیح
اختیاری،
حداقل ۰
- overflow_policy
- رشته
اختیاری،
یا evict یا refuse
- groups
- مجموعهای از رشتهها
- بهینهسازی دستهبندیکننده (Classifier Optimization):
- prefixes
- مجموعهای از حداکثر ۴ رشته
- ستونهای مشترک (Common Columns):
- external_ids
- نگاشتی از جفتهای رشته-رشته
جزئیات (Details):
- name: رشته اختیاری
- نام جدول. این ستون را برای تغییر نامی که کنترلکنندهها هنگام درخواست آمار جدول دریافت میکنند تنظیم کنید، به عنوان مثال ovs-ofctl dump-tables. این نام تأثیری بر رفتار سوییچ ندارد.
سامانه Open vSwitch از طریق ستون flow_limit از محدود کردن تعداد جریانهایی که میتوانند در یک جدول جریان نصب شوند پشتیبانی میکند. هنگامی که افزودن یک جریان از این محدودیت فراتر رود، Open vSwitch به طور پیشفرض خطایی گزارش میدهد، اما دو راه برای پیکربندی Open vSwitch وجود دارد تا به جای آن، جریانی را برای باز کردن فضا برای جریان جدید حذف («اخراج» یا «evict») کند:
- تنظیم ستون overflow_policy روی evict.
- ارسال یک «درخواست تغییر جدول» (table mod request) مربوط به +OpenFlow 1.4 برای فعالسازی اخراج برای جدول جریان (به عنوان مثال ovs-ofctl -O OpenFlow14 mod-table br0 0 evict برای فعالسازی اخراج در جدول جریان ۰ از پل br0).
هنگامی که جریانی به دلیل سرریز باید اخراج شود، جریان مورد نظر برای اخراج از طریق تقریبی از الگوریتم زیر انتخاب میشود. این الگوریتم صرفنظر از چگونگی فعال شدن اخراج به کار گرفته میشود:
- 1.
- جریانهای درون جدول بر اساس مقادیر فیلدها یا زیرفیلدهای مشخصشده در ستون groups به گروههایی تقسیم میشوند، به طوری که تمام جریانهای یک گروه مشخص دارای مقادیر یکسانی برای آن فیلدها باشند. اگر جریانی فیلد مشخصی را تعیین نکرده باشد، مقدار آن فیلد معادل ۰ در نظر گرفته میشود. اگر groups خالی باشد، تمام جریانهای جدول جریان به عنوان یک گروه واحد در نظر گرفته میشوند.
- 2.
- جریانهای بزرگترین گروه بررسی میشوند؛ یعنی گروهی که بیشترین تعداد جریان را در بر دارد. اگر دو یا چند گروه همگی بیشترین تعداد یکسان جریان را داشته باشند، جریانهای تمام آن گروهها مورد بررسی قرار میگیرند.
- 3.
- اگر جریانهای تحت بررسی مقادیر اهمیت (importance) متفاوتی داشته باشند، هر جریانی به جز آنهایی که کمترین مقدار اهمیت را دارند از بررسی کنار گذاشته میشوند. («اهمیت»، یک مقدار عدد صحیح ۱۶ بیتی متصل به هر جریان، در OpenFlow 1.4 معرفی شد. جریانهای درجشده با نسخههای قدیمیتر OpenFlow همواره اهمیتی برابر با ۰ دارند.)
- 4.
- از میان جریانهای تحت بررسی، جریانی که زودتر از همه منقضی میشود برای اخراج انتخاب میشود.
فرایند اخراج فقط جریانهایی را بررسی میکند که دارای مهلت زمانی عدم فعالیت (idle timeout) یا مهلت زمانی قطعی (hard timeout) هستند. به عبارت دیگر، اخراج هرگز جریانهای دائمی را حذف نمیکند. (جریانهای دائمی در شمارش مربوط به flow_limit محاسبه میشوند.)
- flow_limit: عدد صحیح اختیاری، حداقل ۰
- در صورت تنظیم، تعداد جریانهایی را که ممکن است به جدول اضافه شوند محدود میکند. همچنین سامانه Open vSwitch ممکن است به دلایل دیگر، به عنوان مثال به دلیل محدودیتهای سختافزاری یا دلایل مربوط به در دسترس بودن منابع یا کارایی، تعداد جریانهای یک جدول را محدود کند.
- overflow_policy: رشته اختیاری، یا evict یا refuse
- رفتار سوییچ را زمانی که یک درخواست اصلاح جدول جریان OpenFlow جریانهایی فراتر از flow_limit اضافه کند، کنترل مینماید. مقادیر پشتیبانیشده عبارتند از:
- groups: مجموعهای از رشتهها
- هنگامی که overflow_policy برابر با evict باشد، نحوه انتخاب جریانها را برای اخراج در شرایطی که در غیر این صورت جدول جریان از تعداد جریانهای flow_limit فراتر میرود، کنترل میکند. مقدار آن مجموعهای از فیلدها یا زیرفیلدهای NXM است که هر یک از آنها یکی از قالبهای field[] یا field[start..end] را میگیرند، مانند NXM_OF_IN_PORT[]. لطفاً برای مشاهده فهرست کامل نامهای فیلدهای NXM به meta-flow.h مراجعه کنید.
- سامانه Open vSwitch هرگونه مشخصات فیلد نامعتبر یا ناشناخته را نادیده میگیرد.
- هنگامی که اخراج از طریق overflow_policy یا یک «table mod» در +OpenFlow 1.4 فعال نشده باشد، این ستون هیچ تأثیری ندارد.
- prefixes: مجموعهای از حداکثر ۴ رشته
- این مجموعه رشته تعیین میکند که کدام فیلدها باید برای ردیابی پیشوند آدرس (prefix tracking) استفاده شوند. ردیابی پیشوند به دستهبندیکننده (classifier) اجازه میدهد قواعدی با پیشوندهای طولانیتر از حد لازم را نادیده بگیرد، که منجر به وایلدکاردسازی (wildcarding) بهتر برای جریانهای مسیر داده (datapath flows) میشود.
- ردیابی پیشوند ممکن است زمانی سودمند باشد که یک جدول جریان شامل تطابقهایی روی فیلدهای آدرس IP با طول پیشوندهای متفاوت باشد. به عنوان مثال، هنگامی که یک جدول جریان شامل تطابقهای آدرس IP هم روی آدرسهای کامل و هم روی پیشوندهای سره (proper prefixes) باشد، تطابقهای آدرس کامل معمولاً باعث میشوند که جریان مسیر داده کل فیلد آدرس را از حالت وایلدکارد خارج کند (بسته به اولویتهای مدخل جریان). در این حالت، هر بسته با آدرس متفاوت برای پردازش جریان به فضای کاربری (userspace) تحویل داده میشود و جریان مسیر داده اختصاصی خود را تولید میکند. با فعال بودن ردیابی پیشوند برای فیلد آدرس مورد نظر، بستههایی با آدرسهای منطبق بر پیشوندهای کوتاهتر، جریانهای مسیر دادهای تولید میکنند که در آنها بیتهای نامربوط آدرس وایلدکارد شدهاند، که این امر به همان جریان مسیر داده اجازه میدهد تمامی بستههای درون پیشوند مورد نظر را پردازش کند. در این حالت میتوان از بسیاری از فراخوانیهای رو به بالا به فضای کاربری (userspace upcalls) اجتناب کرد و کارایی کلی بهتر خواهد شد.
- این قابلیت صرفاً یک بهینهسازی کارایی است، بنابراین بستهها با یا بدون ردیابی پیشوند رفتار یکسانی دریافت خواهند کرد.
- فیلدهای پشتیبانیشده عبارتند از: tun_id، tun_src، tun_dst، tun_ipv6_src، tun_ipv6_dst، nw_src، nw_dst (یا نامهای مستعار ip_src و ip_dst)، ipv6_src و ipv6_dst. (استفاده از این ویژگی برای tun_id تنها زمانی معنا دارد که شناسههای تونل ساختار پیشوندی مشابه با آدرسهای IP داشته باشند.)
- به طور پیشفرض، مقادیر prefixes=ip_dst,ip_src,ipv6_dst,ipv6_src در هر جدول جریان استفاده میشوند. این امر به دستهبندیکننده جریان دستور میدهد تا آدرسهای مبدأ و مقصد IPv4 و IPv6 استفادهشده توسط قواعد را در این جدول جریان خاص ردیابی کند.
- کلمه کلیدی none به عنوان بازنویسی صریح مقادیر پیشفرض شناخته میشود و باعث میشود هیچ فیلد پیشوندی ردیابی نشود.
- برای تنظیم فیلدهای پیشوند، رکورد جدول جریان باید وجود داشته باشد:
- ovs-vsctl set Bridge br0 flow_tables:0=@N1 -- --id=@N1 create Flow_Table name=table0
- یک رکورد جدول جریان برای جدول شماره ۰ در OpenFlow ایجاد میکند.
- ovs-vsctl set Flow_Table table0 prefixes=ip_dst,ip_src
- ردیابی پیشوند را برای فیلدهای آدرس مبدأ و مقصد IPv4 فعال میکند.
- حداکثر تعدادی از فیلدها وجود دارد که میتوان برای هر جدول جریان فعال کرد. در حال حاضر این محدودیت ۴ است.
هدف کلی این ستونها در بخش ستونهای مشترک (Common Columns) در ابتدای این سند تشریح شده است.
جدول QoS (QoS TABLE)
پیکربندی کیفیت خدمات (QoS) برای هر Port که به آن ارجاع میدهد.
چکیده (Summary):
- type
- رشته
- queues
- نگاشتی از
جفتهای
عدد
صحیح-Queue،
کلید در
محدوده ۰ تا
۴٬۲۹۴٬۹۶۷٬۲۹۵
- پیکربندی برای linux-htb و linux-hfsc (Configuration for linux-htb and linux-hfsc):
- other_config : max-rate
- رشته اختیاری، شامل یک عدد صحیح
- پیکربندی برای QoS از نوع egress-policer (Configuration for egress-policer QoS):
- other_config : cir
- رشته
اختیاری،
شامل یک عدد
صحیح
- other_config : cbs
- رشته
اختیاری،
شامل یک عدد
صحیح
- other_config : eir
- رشته
اختیاری،
شامل یک عدد
صحیح
- other_config : ebs
- رشته اختیاری، شامل یک عدد صحیح
- پیکربندی برای linux-sfq (Configuration for linux-sfq):
- other_config : perturb
- رشته
اختیاری،
شامل یک عدد
صحیح
- other_config : quantum
- رشته اختیاری، شامل یک عدد صحیح
- پیکربندی برای linux-netem (Configuration for linux-netem):
- other_config : latency
- رشته
اختیاری،
شامل یک عدد
صحیح
- other_config : limit
- رشته
اختیاری،
شامل یک عدد
صحیح
- other_config : loss
- رشته
اختیاری،
شامل یک عدد
صحیح
- other_config : jitter
- رشته اختیاری، شامل یک عدد صحیح
- ستونهای مشترک (Common Columns):
- other_config
- نگاشتی از
جفتهای
رشته-رشته
- external_ids
- نگاشتی از جفتهای رشته-رشته
جزئیات (Details):
- type: رشته
- نوع QoS برای پیادهسازی. انواع تعریفشده کنونی در زیر فهرست شدهاند:
- linux-htb
- دستهبندیکننده «hierarchy token bucket» در لینوکس. برای اطلاعات درباره نحوه کارکرد این دستهبندیکننده و نحوه پیکربندی آن، tc-htb(8) (همچنین در http://linux.die.net/man/8/tc-htb) و راهنمای HTB (http://luxik.cdi.cz/~devik/qos/htb/manual/userg.htm) را ببینید.
- linux-hfsc
- دستهبندیکننده «Hierarchical Fair Service Curve» در لینوکس. برای اطلاعات درباره نحوه کارکرد این دستهبندیکننده به http://linux-ip.net/articles/hfsc.en مراجعه کنید.
- linux-sfq
- دستهبندیکننده «Stochastic Fairness Queueing» در لینوکس. برای اطلاعات درباره نحوه کارکرد این دستهبندیکننده به tc-sfq(8) (همچنین در http://linux.die.net/man/8/tc-sfq) مراجعه کنید.
- linux-codel
- دستهبندیکننده «Controlled Delay» در لینوکس. برای اطلاعات درباره نحوه کارکرد این دستهبندیکننده به tc-codel(8) (همچنین در http://man7.org/linux/man-pages/man8/tc-codel.8.html) مراجعه کنید.
- linux-fq_codel
- دستهبندیکننده «Fair Queuing with Controlled Delay» در لینوکس. برای اطلاعات درباره نحوه کارکرد این دستهبندیکننده به tc-fq_codel(8) (همچنین در http://man7.org/linux/man-pages/man8/tc-fq_codel.8.html) مراجعه کنید.
- linux-netem
- دستهبندیکننده «Network Emulator» در لینوکس. برای اطلاعات درباره نحوه کارکرد این دستهبندیکننده به tc-netem(8) (همچنین در http://man7.org/linux/man-pages/man8/tc-netem.8.html) مراجعه کنید.
- linux-noop
- «بدون عملیات» (No operation) در لینوکس. سامانه Open vSwitch به طور پیشفرض کیفیت خدمات را روی تمام پورتهای پیکربندیشده خود مدیریت میکند. این امر میتواند مفید باشد، اما گاهی مدیران ترجیح میدهند از نرمافزارهای دیگری برای مدیریت QoS استفاده کنند. این type مانع از آن میشود که Open vSwitch پیکربندی QoS را برای یک پورت تغییر دهد.
- egress-policer
- الگوریتم نظارت بر خروجی (egress policer) در DPDK با استفاده از کتابخانه rte_meter در DPDK. کتابخانه rte_meter پیادهسازی لازم را برای اندازهگیری و نظارت (policing) بر ترافیک فراهم میکند. پیادهسازی در OVS اساساً یک سطل ژتون (token bucket) منفرد ایجاد میکند که برای نظارت بر ترافیک استفاده میشود. باید توجه داشت که وقتی rte_meter به عنوان بخشی از QoS پیکربندی میشود، سربار کارایی به همراه خواهد داشت زیرا خود rte_meter برای نظارت بر ترافیک چرخههای پردازنده (CPU) را مصرف میکند. این چرخههای پردازنده به طور معمول برای پردازش بستهها استفاده میشوند. به این ترتیب، افت کارایی در مجموع پهنای باند ترافیک محسوس خواهد بود.
- trtcm-policer
- الگوریتم نظارت بر خروجی DPDK با استفاده از نشانهگذار دونوخی، سهرنگی (Two-Rate, Three-Color marker) استاندارد RFC 4115. این یک ناظر سلسلهمراتبی دو سطحی است که ابتدا نشانهگذاری بدون توجه به رنگ (color-blind) ترافیک را در سطح صف انجام میدهد، و به دنبال آن نشانهگذاری با توجه به رنگ (color-aware) را در سطح پورت به کار میگیرد. در پایان، ترافیک نشانهگذاریشده به رنگ سبز یا زرد هدایت میشود و ترافیک قرمز دور انداخته میشود. برای جزئیات نحوه نشانهگذاری ترافیک به RFC 4115 مراجعه کنید. اگر «صف پیشفرض»، یعنی ۰، پیکربندی نشده باشد، به صورت خودکار با همان مقادیر other_config پورت فیزیکی ایجاد میشود.
- queues: نگاشتی از جفتهای عدد صحیح-Queue، کلید در محدوده ۰ تا ۴٬۲۹۴٬۹۶۷٬۲۹۵
- نگاشتی از شمارههای صف به رکوردهای Queue. محدوده پشتیبانیشده شمارههای صف به type بستگی دارد. شمارههای صف همان queue_id استفادهشده در OpenFlow در struct ofp_action_enqueue و ساختارهای دیگر هستند.
- صف ۰ «صف پیشفرض» است. این صف توسط عملیاتهای خروجی OpenFlow زمانی استفاده میشود که هیچ صف مشخصی تعیین نشده باشد. هنگامی که هیچ پیکربندی برای صف ۰ وجود نداشته باشد، به طور خودکار به گونهای پیکربندی میشود که گویی یک رکورد Queue با ستونهای خالی dscp و other_config مشخص شده است. (قبل از نسخه 1.6، سامانه Open vSwitch در این حالت صف ۰ را بدون پیکربندی رها میکرد. با برخی از انضباطهای صفبندی، این امر باعث دور ریخته شدن تمام بستههای مقصد صف پیشفرض میشد.)
کلاسهای linux-htb و linux-hfsc از جفت کلید-مقدار زیر پشتیبانی میکنند:
- other_config : max-rate: رشته اختیاری، شامل یک عدد صحیح
- حداکثر نرخ به اشتراک گذاشته شده توسط تمام ترافیک در صف قرار گرفته، به بیت بر ثانیه (bit/s). اختیاری. در صورت عدم تعیین، برای رابطهای فیزیکی، مقدار پیشفرض همان نرخ پیوند (link rate) است. برای سایر رابطها یا اگر نرخ پیوند قابل تعیین نباشد، مقدار پیشفرض در حال حاضر 10 Gbps است.
مقدار type در QoS با مقدار egress-policer، نظارت بر خروجی (egress policing) را برای انواع پورتهای فضای کاربری با DPDK فراهم میکند. جفتهای کلید-مقدار زیر برای آن تعریف شدهاند.
- other_config : cir: رشته اختیاری، شامل یک عدد صحیح
- نرخ اطلاعات متعهدشده (Committed Information Rate یا CIR) بر حسب بایتهای بستههای IP در ثانیه سنجیده میشود، به این معنی که شامل سرآیند IP میشود، اما شامل سرآیندهای خاص پیوند (مانند اترنت) نیست. این مقدار نشاندهنده نرخ بایت بر ثانیهای است که سطل ژتون با آن بهروزرسانی خواهد شد. مقدار cir از ضرب (pps در اندازه داده بسته) محاسبه میشود. برای مثال، با فرض اینکه کاربری بخواهد جریانی متشکل از بستههای ۶۴ بایتی را به ۱ میلیون بسته بر ثانیه محدود کند، مقدار CIR روی 46000000 تنظیم میشود. این مقدار را میتوان به «1,000,000 x 46» تفکیک کرد؛ جایی که 1,000,000 نرخ نظارت برای تعداد بستهها در ثانیه است و 46 نشاندهنده اندازه داده بسته برای یک بسته IP با اندازه ۶۴ بایت بدون ۱۴ بایت سرآیند اترنت و ۴ بایت سرآیند FCS است.
- other_config : cbs: رشته اختیاری، شامل یک عدد صحیح
- اندازه جهش متعهدشده (Committed Burst Size یا CBS) بر حسب بایت سنجیده میشود و نمایانگر یک سطل ژتون است. حداقل این مقدار باید بر روی بزرگترین اندازه بسته مورد انتظار در جریان ترافیک تنظیم شود. در عمل میتوان از مقادیر بزرگتر برای افزایش اندازه سطل ژتون استفاده کرد. اگر بستهای بتواند ارسال شود، مقدار cbs به اندازه تعداد بایتها/ژتونهای بسته کاهش مییابد. اگر ژتون کافی در سطل cbs وجود نداشته باشد، بسته دور انداخته خواهد شد.
- other_config : eir: رشته اختیاری، شامل یک عدد صحیح
- نرخ اطلاعات مازاد (Excess Information Rate یا EIR) بر حسب بایتهای بستههای IP در ثانیه سنجیده میشود، به این معنی که شامل سرآیند IP میشود، اما شامل سرآیندهای خاص پیوند (مانند اترنت) نیست. این مقدار نشاندهنده نرخ بایت بر ثانیهای است که سطل ژتون با آن بهروزرسانی خواهد شد. مقدار eir از ضرب (pps در اندازه داده بسته) محاسبه میشود. برای مثال، با فرض اینکه کاربری بخواهد جریانی متشکل از بستههای ۶۴ بایتی را به ۱ میلیون بسته بر ثانیه محدود کند، مقدار EIR روی 46000000 تنظیم میشود. این مقدار را میتوان به «1,000,000 x 46» تفکیک کرد؛ جایی که 1,000,000 نرخ نظارت برای تعداد بستهها در ثانیه است و 46 نشاندهنده اندازه داده بسته برای یک بسته IP با اندازه ۶۴ بایت بدون ۱۴ بایت سرآیند اترنت و ۴ بایت سرآیند FCS است.
- other_config : ebs: رشته اختیاری، شامل یک عدد صحیح
- اندازه جهش مازاد (Excess Burst Size یا EBS) بر حسب بایت سنجیده میشود و نمایانگر یک سطل ژتون است. حداقل این مقدار باید بر روی بزرگترین اندازه بسته مورد انتظار در جریان ترافیک تنظیم شود. در عمل میتوان از مقادیر بزرگتر برای افزایش اندازه سطل ژتون استفاده کرد. اگر بستهای بتواند ارسال شود، مقدار ebs به اندازه تعداد بایتها/ژتونهای بسته کاهش مییابد. اگر ژتون کافی در سطل ebs وجود نداشته باشد، ممکن است بسته دور انداخته شود.
کیفیت خدمات linux-sfq از جفتهای کلید-مقدار زیر پشتیبانی میکند:
- other_config : perturb: رشته اختیاری، شامل یک عدد صحیح
- تعداد ثانیههای بین پریشانیهای (perturbations) متوالی در الگوریتم درهمسازی (هشینگ). جریانهای مختلف ممکن است در یک سطل هش مشترک قرار گیرند و باعث بیعدالتی شوند. هدف از پریشانی، از بین بردن بیعدالتیهای احتمالی است. مقدار پیشفرض و توصیهشده ۱۰ است. مقدار خیلی پایین توصیه نمیشود، زیرا هر پریشانی میتواند باعث بههمریختگی ترتیب بستهها (packet reordering) شود.
- other_config : quantum: رشته اختیاری، شامل یک عدد صحیح
- تعداد بایتهایی که QoS از نوع linux-sfq میتواند در یک نوبت به شیوه نوبتگردشی (round-robin) از یک جریان از صف خارج کند (dequeue). مقدار پیشفرض و توصیهشده برابر با MTU رابط است.
کیفیت خدمات linux-netem از جفتهای کلید-مقدار زیر پشتیبانی میکند:
- other_config : latency: رشته اختیاری، شامل یک عدد صحیح
- تاخیر انتخابشده را به بستههای خروجی به سمت رابط شبکه انتخابشده اضافه میکند. مقدار تاخیر (latency) بر حسب میکروثانیه (us) بیان میشود.
- other_config : limit: رشته اختیاری، شامل یک عدد صحیح
- حداکثر تعداد بستههایی که qdisc میتواند در یک زمان در صف نگه دارد. مقدار پیشفرض 1000 است.
- other_config : loss: رشته اختیاری، شامل یک عدد صحیح
- یک احتمال افت (loss) مستقل را به بستههای خروجی از رابط شبکه انتخابشده اضافه میکند.
- other_config : jitter: رشته اختیاری، شامل یک عدد صحیح
- جیتر (jitter) ارائهشده را به تاخیر خروجی به سمت رابط شبکه انتخابشده اضافه میکند. مقدار جیتر بر حسب میکروثانیه (us) بیان میشود.
هدف کلی این ستونها در بخش ستونهای مشترک (Common Columns) در ابتدای این سند تشریح شده است.
جدول Queue (Queue TABLE)
پیکربندی برای یک صف خروجی پورت، که در پیکربندی ویژگیهای کیفیت خدمات (QoS) استفاده میشود. ممکن است توسط ستون queues در جدول QoS مورد ارجاع قرار گیرد.
چکیده (Summary):
- dscp
- عدد صحیح
اختیاری،
در محدوده ۰
تا ۶۳
- پیکربندی برای QoS از نوع linux-htb (Configuration for linux-htb QoS):
- other_config : min-rate
- رشته
اختیاری،
شامل یک عدد
صحیح،
حداقل ۱
- other_config : max-rate
- رشته
اختیاری،
شامل یک عدد
صحیح،
حداقل ۱
- other_config : burst
- رشته
اختیاری،
شامل یک عدد
صحیح،
حداقل ۱
- other_config : priority
- رشته اختیاری، شامل یک عدد صحیح، در محدوده ۰ تا ۴٬۲۹۴٬۹۶۷٬۲۹۵
- پیکربندی برای QoS از نوع linux-hfsc (Configuration for linux-hfsc QoS):
- other_config : min-rate
- رشته
اختیاری،
شامل یک عدد
صحیح،
حداقل ۱
- other_config : max-rate
- رشته اختیاری، شامل یک عدد صحیح، حداقل ۱
- ستونهای مشترک (Common Columns):
- other_config
- نگاشتی از
جفتهای
رشته-رشته
- external_ids
- نگاشتی از جفتهای رشته-رشته
جزئیات (Details):
- dscp: عدد صحیح اختیاری، در محدوده ۰ تا ۶۳
- در صورت تنظیم، سامانه Open vSwitch تمام ترافیک خروجی از این Queue را با بیتهای DSCP دادهشده علامتگذاری میکند. ترافیک خارجشده از Queue پیشفرض تنها در صورتی علامتگذاری میشود که در زمان خروج بسته، به طور صریح به عنوان Queue انتخاب شده باشد. در صورت عدم تنظیم، بیتهای DSCP ترافیک خروجی از این Queue بدون تغییر باقی خواهند ماند.
نوع linux-htb در QoS ممکن است از queue_idهای کمتر از ۶۱۴۴۰ استفاده کند. جفتهای کلید-مقدار زیر برای آن تعریف شدهاند.
- other_config : min-rate: رشته اختیاری، شامل یک عدد صحیح، حداقل ۱
- حداقل پهنای باند تضمینشده، بر حسب بیت بر ثانیه (bit/s).
- other_config : max-rate: رشته اختیاری، شامل یک عدد صحیح، حداقل ۱
- حداکثر پهنای باند مجاز، بر حسب بیت بر ثانیه (bit/s). اختیاری. در صورت تعیین، نرخ صف اجازه نخواهد داشت از مقدار مشخصشده فراتر رود، حتی اگر پهنای باند مازاد در دسترس باشد. در صورت عدم تعیین، به طور پیشفرض بدون محدودیت است.
- other_config : burst: رشته اختیاری، شامل یک عدد صحیح، حداقل ۱
- اندازه جهش، بر حسب بیت. این حداکثر مقدار «اعتباری» است که یک صف میتواند در زمان بیکار بودن ذخیره کند. اختیاری. جزئیات پیادهسازی linux-htb نیازمند حداقل اندازه جهش است، بنابراین مقدار بسیار کوچک burst بدون هشدار نادیده گرفته خواهد شد.
- other_config : priority: رشته اختیاری، شامل یک عدد صحیح، در محدوده ۰ تا ۴٬۲۹۴٬۹۶۷٬۲۹۵
- صفی با priority کوچکتر، تمام پهنای باند مازادی را که بتواند مصرف کند، پیش از دریافت هرگونه پهنای باندی توسط صفی با اولویت بزرگتر دریافت خواهد کرد. مقادیر خاص اولویت اهمیت ندارند؛ فقط ترتیب نسبی آنها مهم است. در صورت عدم تعیین، مقدار پیشفرض ۰ است.
نوع linux-hfsc در QoS ممکن است از queue_idهای کمتر از ۶۱۴۴۰ استفاده کند. جفتهای کلید-مقدار زیر برای آن تعریف شدهاند.
- other_config : min-rate: رشته اختیاری، شامل یک عدد صحیح، حداقل ۱
- حداقل پهنای باند تضمینشده، بر حسب بیت بر ثانیه (bit/s).
- other_config : max-rate: رشته اختیاری، شامل یک عدد صحیح، حداقل ۱
- حداکثر پهنای باند مجاز، بر حسب بیت بر ثانیه (bit/s). اختیاری. در صورت تعیین، نرخ صف اجازه نخواهد داشت از مقدار مشخصشده فراتر رود، حتی اگر پهنای باند مازاد در دسترس باشد. در صورت عدم تعیین، به طور پیشفرض بدون محدودیت است.
هدف کلی این ستونها در بخش ستونهای مشترک (Common Columns) در ابتدای این سند تشریح شده است.
جدول Mirror (Mirror TABLE)
یک بازتاب پورت (port mirror) درون یک Bridge.
یک بازتاب پورت، پل را پیکربندی میکند تا فریمهای انتخابشده را علاوه بر مقصدهای معمول خود، به پورتهای ویژه «بازتابشده» (mirrored) نیز ارسال کند. بازتاب ترافیک بسته به نحوه ارسال ترافیک بازتابیافته، ممکن است به عنوان SPAN یا RSPAN نیز شناخته شود.
هنگامی که بستهای وارد یک پل Open vSwitch میشود، بر اساس پورت ورودی (ingress) و VLAN خود واجد شرایط بازتاب میگردد. همانطور که بسته در میان جدولهای جریان حرکت میکند، هر بار که به یک پورت خروجی فرستاده میشود، بر اساس پورت خروجی (egress) و VLAN واجد شرایط بازتاب میشود. در Open vSwitch نسخه 2.5 و بالاتر، بازتاب بلافاصله پس از آنکه بسته برای نخستین بار واجد شرایط شد، با استفاده از وضعیت بسته در همان نقطه رخ میدهد؛ در Open vSwitch نسخه 2.4 و قبل از آن، بازتاب تنها پس از پیمودن تمام جدولهای جریان توسط بسته، با استفاده از بسته اولیه همانگونه که وارد پل شده بود انجام میگیرد. این تفاوت تنها زمانی اهمیت پیدا میکند که جدول جریان، بسته را تغییر دهد: در Open vSwitch 2.4، این تغییرات هرگز برای بازتابها قابل مشاهده نیستند، در حالی که در Open vSwitch 2.5 و بالاتر، تغییرات اعمالشده پیش از نخستین خروجی که بسته را برای بازتاب به یک مقصد خاص واجد شرایط میکند، قابل رویت خواهند بود.
بستهای که وارد پل Open vSwitch میشود، حتی اگر به دلایل متعددی واجد شرایط باشد، تنها یک بار به یک مقصد مشخص بازتاب داده میشود. به عنوان مثال، یک بسته فقط یک بار به یک output_port خاص بازتاب داده خواهد شد، حتی اگر توسط select_dst_port و select_src_port در یک رکورد یکسان یا رکوردهای متفاوتی از Mirror برای بازتاب به آن پورت انتخاب شده باشد.
چکیده (Summary):
- name
- رشته
- انتخاب بستهها برای بازتاب (Selecting Packets for Mirroring):
- select_all
- بولی
- select_dst_port
- مجموعهای
از
ارجاعهای
ضعیف به
Portها
- select_src_port
- مجموعهای
از
ارجاعهای
ضعیف به
Portها
- select_vlan
- مجموعهای
از حداکثر
۴٬۰۹۶ عدد
صحیح، در
محدوده ۰ تا
۴٬۰۹۵
- filter
- رشته اختیاری
- پیکربندی مقصد بازتاب (Mirroring Destination Configuration):
- output_port
- ارجاع ضعیف
اختیاری به
Port
- output_vlan
- عدد صحیح
اختیاری،
در محدوده ۱
تا ۴٬۰۹۵
- snaplen
- عدد صحیح اختیاری، در محدوده ۱۴ تا ۶۵٬۵۳۵
- آمار: شمارندههای بازتاب (Statistics: Mirror counters):
- statistics : tx_packets
- عدد صحیح
اختیاری
- statistics : tx_bytes
- عدد صحیح اختیاری
- ستونهای مشترک (Common Columns):
- external_ids
- نگاشتی از جفتهای رشته-رشته
جزئیات (Details):
- name: رشته
- شناسه اختیاری برای Mirror.
برای انتخاب جهت بازتاب، بسته مورد نظر باید از طریق یک پورت انتخابشده وارد پل شود یا آن را ترک کند و همچنین باید در یکی از VLANهای انتخابشده قرار داشته باشد.
- select_all: بولی
- اگر true باشد، هر بستهای که در هر پورتی وارد یا خارج شود برای بازتاب انتخاب میگردد.
- select_dst_port: مجموعهای از ارجاعهای ضعیف به Portها
- پورتهایی که بستههای خروجی روی آنها برای بازتاب انتخاب میشوند.
- select_src_port: مجموعهای از ارجاعهای ضعیف به Portها
- پورتهایی که بستههای ورودی روی آنها برای بازتاب انتخاب میشوند.
- select_vlan: مجموعهای از حداکثر ۴٬۰۹۶ عدد صحیح، در محدوده ۰ تا ۴٬۰۹۵
- VLANهایی که بستهها روی آنها برای بازتاب انتخاب میشوند. یک مجموعه خالی، بستهها را روی تمام VLANها انتخاب میکند.
- filter: رشته اختیاری
- در صورت تنظیم، تنها بستههای منطبق با filter برای بازتاب انتخاب میشوند. بستههایی که مطابقت ندارند توسط این آینه نادیده گرفته میشوند. نحو (syntax) عبارت filter در ovs-fields(7) تشریح شده است. با این حال، فیلد in_port پشتیبانی نمیشود؛ باید از select_src_port برای محدود کردن بازتاب به یک پورت مبدأ استفاده شود.
- این فیلتر پس از اعمال select_all، select_dst_port، select_src_port و select_vlan اعمال میگردد.
این ستونها مانعةالجمع هستند. دقیقاً یکی از آنها باید غیرخالی باشد.
- output_port: ارجاع ضعیف اختیاری به Port
- پورت خروجی برای بستههای انتخابشده، در صورت غیرخالی بودن.
- تعیین یک پورت برای خروجی بازتاب، آن پورت را به طور اختصاصی برای بازتاب رزرو میکند. هیچ فریمی به جز آنهایی که برای بازتاب از طریق این ستون انتخاب شدهاند به این پورت هدایت نخواهند شد، و هر فریمی که روی این پورت دریافت شود دور ریخته خواهد شد.
- پورت خروجی ممکن است هر نوع پورتی باشد که توسط Open vSwitch پشتیبانی میشود. برای مثال، میتواند یک پورت فیزیکی (که گاهی SPAN نامیده میشود) یا یک تونل GRE باشد.
- output_vlan: عدد صحیح اختیاری، در محدوده ۱ تا ۴٬۰۹۵
- شناسه VLAN خروجی برای بستههای انتخابشده، در صورت غیرخالی بودن.
- فریمها از طریق تمام پورتهایی که output_vlan را ترانک (trunk) میکنند و همچنین پورتهایی با VLAN ضمنی output_vlan ارسال خواهند شد. هنگامی که یک فریم بازتابشده از یک پورت ترانک خارج میشود، برچسب VLAN فریم روی output_vlan تنظیم میشود و جایگزین هر برچسب موجود میگردد؛ هنگامی که از یک پورت با VLAN ضمنی ارسال میشود، فریم برچسبگذاری نخواهد شد. این نوع بازتاب گاهی RSPAN نامیده میشود.
- برای مشاهده فهرستی از آدرسهای MAC مقصد که به منظور جلوگیری از سردرگمی سوییچهایی که پروتکلهای مربوط به آنها را تفسیر میکنند، به VLAN بازتاب داده نمیشوند، مستندات مربوط به other_config:forward-bpdu را در جدول Interface ببینید.
- لطفاً توجه داشته باشید: بازتاب به یک VLAN میتواند شبکهای را که شامل سوییچهای مدیریتنشده است دچار اختلال کند. یک سوییچ فیزیکی مدیریتنشده با دو پورت را در نظر بگیرید: پورت ۱ متصل به یک میزبان نهایی، و پورت ۲ متصل به یک Open vSwitch که به گونهای پیکربندی شده است که بستههای دریافتی را به VLAN 123 روی پورت ۲ بازتاب دهد. فرض کنید میزبان نهایی بستهای را روی پورت ۱ ارسال میکند و سوییچ فیزیکی آن را به پورت ۲ هدایت مینماید. سامانه Open vSwitch این بسته را به مقصد خود هدایت کرده و سپس آن را دوباره روی پورت ۲ در VLAN 123 بازتاب میدهد. این بسته بازتابیافته باعث میشود سوییچ فیزیکی مدیریتنشده مدخل جدول یادگیری MAC خود را که به درستی به پورت ۱ اشاره میکرد، با مدخلی جایگزین کند که به اشتباه به پورت ۲ اشاره دارد. پس از آن، سوییچ فیزیکی بستههای مقصد میزبان نهایی را به جای ارسال به میزبان نهایی روی پورت ۱، به Open vSwitch روی پورت ۲ هدایت میکند که منجر به قطع ارتباط میشود. اگر در این سناریو بازتاب به یک VLAN مطلوب باشد، سوییچ فیزیکی باید با سوییچی جایگزین شود که آدرسهای اترنت را به ازای هر VLAN یاد میگیرد. علاوه بر این، یادگیری باید روی VLAN حاوی ترافیک بازتابشده غیرفعال گردد. در صورت عدم انجام این کار، سوییچهای واسط آدرس MAC هر میزبان نهایی را از روی ترافیک بازتابیافته یاد خواهند گرفت. اگر بستههای ارسالی به آن میزبان نهایی نیز بازتاب داده شوند، دور انداخته خواهند شد زیرا سوییچ تلاش خواهد کرد آنها را از پورت ورودی ارسال کند. غیرفعال کردن یادگیری برای این VLAN باعث میشود سوییچ بسته را به درستی به تمام پورتهای پیکربندیشده برای آن VLAN ارسال کند. اگر Open vSwitch به عنوان یک سوییچ واسط استفاده میشود، میتوان یادگیری را با افزودن VLAN بازتابیافته به flood_vlans در جدول یا جدولهای مناسب Bridge غیرفعال کرد.
- بازتاب به یک تونل GRE محدودیتها و هشدارهای کمتری نسبت به بازتاب به یک VLAN دارد و عموماً باید ترجیح داده شود.
- snaplen: عدد صحیح اختیاری، در محدوده ۱۴ تا ۶۵٬۵۳۵
- حداکثر تعداد بایتهای هر بسته برای بازتاب.
- یک بسته بازتابشده با اندازهای بزرگتر از snaplen، در مسیر داده پیش از ارسال به پورت خروجی بازتاب به اندازه snaplen بایت بریده خواهد شد. در صورت عدم تعیین، بستهها بریده نمیشوند.
جفتهای کلید-مقدار که آمار بازتاب را گزارش میدهند. دوره بهروزرسانی توسط other_config:stats-update-interval در جدول Open_vSwitch کنترل میشود.
- statistics : tx_packets: عدد صحیح اختیاری
- تعداد بستههای ارسالشده از طریق این بازتاب.
- statistics : tx_bytes: عدد صحیح اختیاری
- تعداد بایتهای ارسالشده از طریق این بازتاب.
هدف کلی این ستونها در بخش ستونهای مشترک (Common Columns) در ابتدای این سند تشریح شده است.
جدول Controller (Controller TABLE)
یک کنترلکننده OpenFlow.
چکیده (Summary):
- ویژگیهای اصلی (Core Features):
- type
- رشته
اختیاری،
یا primary یا service
- target
- رشته
- connection_mode
- رشته اختیاری، یا in-band یا out-of-band
- تشخیص و مدیریت خرابی کنترلکننده (Controller Failure Detection and Handling):
- max_backoff
- عدد صحیح
اختیاری،
حداقل 1,000
- inactivity_probe
- عدد صحیح اختیاری
- پیامهای ناهمگام (Asynchronous Messages):
- enable_async_messages
- بولی
اختیاری (optional
boolean)
- محدودسازی نرخ کنترلکننده (Controller Rate Limiting):
- controller_queue_size
- عدد صحیح
اختیاری،
در محدوده 1
تا 512
- controller_rate_limit
- عدد صحیح
اختیاری،
حداقل 100
- controller_burst_limit
- عدد صحیح
اختیاری،
حداقل 25
- آمار محدودسازی نرخ کنترلکننده (Controller Rate Limiting Statistics):
- status : packet-in-TYPE-bypassed
- رشته
اختیاری،
شامل یک عدد
صحیح،
حداقل 0
- status : packet-in-TYPE-queued
- رشته
اختیاری،
شامل یک عدد
صحیح،
حداقل 0
- status : packet-in-TYPE-dropped
- رشته
اختیاری،
شامل یک عدد
صحیح،
حداقل 0
- status : packet-in-TYPE-backlog
- رشته اختیاری، شامل یک عدد صحیح، حداقل 0
- پیکربندی اضافی درونباند (Additional In-Band Configuration):
- local_ip
- رشته
اختیاری
- local_netmask
- رشته
اختیاری
- local_gateway
- رشته اختیاری
- وضعیت کنترلکننده (Controller Status):
- is_connected
- بولی (boolean)
- role
- رشته
اختیاری،
یکی از master،
other یا slave
- status : last_error
- رشته
اختیاری
- status : state
- رشته
اختیاری،
یکی از ACTIVE،
BACKOFF، CONNECTING، IDLE
یا VOID
- status : sec_since_connect
- رشته
اختیاری،
شامل یک عدد
صحیح،
حداقل 0
- status : sec_since_disconnect
- رشته اختیاری، شامل یک عدد صحیح، حداقل 1
- پارامترهای اتصال (Connection Parameters):
- other_config : dscp
- رشته اختیاری، شامل یک عدد صحیح
- ستونهای مشترک (Common Columns):
- external_ids
- نگاشتی از
جفتهای
رشته-رشته
- other_config
- نگاشتی از جفتهای رشته-رشته
جزئیات (Details):
- type: رشته اختیاری، یا primary یا service
- سامانه Open vSwitch از دو نوع کنترلکننده OpenFlow پشتیبانی میکند. یک پل میتواند به هر تعداد از هر نوع داشته باشد:
- کنترلکنندههای اصلی (Primary controllers)
- این همان نوع کنترلکنندهای است که در مشخصات OpenFlow پیشبینی شده است. معمولاً یک کنترلکننده اصلی با در دست گرفتن کنترل جدول جریان سوییچ، خطمشی شبکه را پیادهسازی میکند.
- ستون fail_mode در جدول Bridge برای کنترلکنندههای اصلی اعمال میشود.
- هنگامی که چندین کنترلکننده اصلی پیکربندی شده باشند، Open vSwitch به طور همزمان به همه آنها متصل میشود. پروتکل OpenFlow امکانات اندکی برای هماهنگی چندین کنترلکننده در تعامل با یک سوییچ واحد فراهم میکند، بنابراین بیش از یک کنترلکننده اصلی تنها زمانی باید مشخص شود که خود کنترلکنندهها برای هماهنگی با یکدیگر طراحی شده باشند.
- کنترلکنندههای سرویس (Service controllers)
- این نوع اتصالهای کنترلکننده OpenFlow برای استفادههای مقطعی، پشتیبانی و نگهداری در نظر گرفته شدهاند، به عنوان مثال با ovs-ofctl. معمولاً یک کنترلکننده سرویس فقط برای مدت کوتاهی متصل میشود تا بخشی از وضعیت سوییچ را بازبینی یا اصلاح کند.
- ستون fail_mode در جدول Bridge برای کنترلکنندههای سرویس اعمال نمیشود.
- به طور پیشفرض، Open vSwitch با کنترلکنندههای دارای روشهای اتصال فعال به عنوان کنترلکننده اصلی و با کنترلکنندههای دارای روشهای اتصال غیرفعال به عنوان کنترلکننده سرویس رفتار میکند. برای لغو این پیشفرض، این ستون را روی نوع دلخواه تنظیم کنید.
- target: رشته
- روش اتصال به کنترلکننده.
- روشهای اتصال فعال زیر در حال حاضر پشتیبانی میشوند:
- ssl:host[:port]
- پورت SSL/TLS مشخصشده (port) روی میزبان در host دادهشده، که میتواند یک نام DNS (اگر با کتابخانه unbound ساخته شده باشد) یا یک آدرس IP باشد. هنگامی که این قالب استفاده میشود، ستون ssl در جدول Open_vSwitch باید به یک پیکربندی معتبر SSL/TLS اشاره کند.
- اگر port مشخص نشود، مقدار پیشفرض آن 6653 است.
- پشتیبانی از SSL/TLS یک ویژگی اختیاری است که همیشه به عنوان بخشی از Open vSwitch ساخته نمیشود.
- tcp:host[:port]
- پورت TCP مشخصشده (port) روی میزبان در host دادهشده، که میتواند یک نام DNS (اگر با کتابخانه unbound ساخته شده باشد) یا یک آدرس IP (نسخه ۴ یا ۶) باشد. اگر host یک آدرس IPv6 است، آن را درون کروشه قرار دهید، مثلاً tcp:[::1]:6653.
- اگر port مشخص نشود، مقدار پیشفرض آن 6653 است.
- روشهای اتصال غیرفعال زیر در حال حاضر پشتیبانی میشوند:
- pssl:[port][:host]
- به اتصالات SSL/TLS روی پورت TCP مشخصشده (port) گوش میدهد. اگر host، که میتواند یک نام DNS (اگر با کتابخانه unbound ساخته شده باشد) یا یک آدرس IP باشد، مشخص شود، اتصالات به آدرس IP محلی مشخص یا حلشده (IPv4 یا IPv6) محدود میشوند. اگر host یک آدرس IPv6 است، آن را درون کروشه قرار دهید، مثلاً pssl:6653:[::1].
- اگر port مشخص نشود، مقدار پیشفرض آن 6653 است. اگر host مشخص نشود، تنها روی آدرسهای IPv4 (و نه IPv6) گوش میدهد. هنگامی که این قالب استفاده میشود، ستون ssl در جدول Open_vSwitch باید به یک پیکربندی معتبر SSL/TLS اشاره کند.
- اگر port مشخص نشود، در حال حاضر روی 6653 قرار میگیرد.
- پشتیبانی از SSL/TLS یک ویژگی اختیاری است که همیشه به عنوان بخشی از Open vSwitch ساخته نمیشود.
- ptcp:[port][:host]
- به اتصالات روی پورت TCP مشخصشده (port) گوش میدهد. اگر host، که میتواند یک نام DNS (اگر با کتابخانه unbound ساخته شده باشد) یا یک آدرس IP باشد، مشخص شود، اتصالات به آدرس IP محلی مشخص یا حلشده (IPv4 یا IPv6) محدود میشوند. اگر host یک آدرس IPv6 است، آن را درون کروشه قرار دهید، مثلاً ptcp:6653:[::1]. اگر host مشخص نشود، تنها روی آدرسهای IPv4 گوش میدهد.
- اگر port مشخص نشود، مقدار پیشفرض آن 6653 است.
- هنگامی که چندین کنترلکننده برای یک پل منفرد پیکربندی میشوند، مقادیر target باید یکتا باشند. مقادیر تکراری target نتایج تعریفنشدهای به همراه خواهند داشت.
- connection_mode: رشته اختیاری، یا in-band یا out-of-band
- در صورت مشخص شدن، این تنظیم باید یکی از رشتههای زیر باشد که نحوه تماس Open vSwitch با این کنترلکننده OpenFlow را از طریق شبکه توصیف میکند:
- in-band
- در این حالت، ترافیک OpenFlow این کنترلکننده از روی پل مرتبط با کنترلکننده عبور میکند. با این تنظیم، Open vSwitch صرفنظر از محتویات جدول جریان OpenFlow، اجازه عبور ترافیک به سمت کنترلکننده و از مبدأ آن را میدهد. (در غیر این صورت، Open vSwitch هرگز نمیتوانست به کنترلکننده متصل شود، زیرا جریانی برای فعالسازی آن وجود نداشت.) این متداولترین حالت اتصال است چرا که نیازی به نگهداری دو شبکه مستقل ندارد.
- out-of-band
- در این حالت، ترافیک OpenFlow از یک شبکه کنترلی مجزا از پل مرتبط با این کنترلکننده استفاده میکند، به این معنی که پل از هیچیک از دستگاههای شبکه خود برای ارتباط با کنترلکننده استفاده نمیکند. شبکه کنترلی باید به طور جداگانه، پیش یا پس از راهاندازی ovs-vswitchd پیکربندی شود.
- در صورت مشخص نشدن، مقدار پیشفرض وابسته به پیادهسازی است.
- max_backoff: عدد صحیح اختیاری، حداقل 1,000
- حداکثر تعداد میلیثانیهها برای انتظار میان تلاشهای اتصال. مقدار پیشفرض وابسته به پیادهسازی است.
- inactivity_probe: عدد صحیح اختیاری
- حداکثر مدت زمان بیکاری اتصال به کنترلکننده بر حسب میلیثانیه پیش از ارسال پیام کاوش عدمفعالیت (inactivity probe). اگر Open vSwitch برای تعداد ثانیههای مشخصشده با کنترلکننده ارتباطی نداشته باشد، یک پیام کاوش ارسال میکند. اگر در مدت زمان مشابه دیگری پاسخی دریافت نشود، Open vSwitch فرض میکند که اتصال قطع شده است و برای برقراری مجدد اتصال تلاش میکند. مقدار پیشفرض وابسته به پیادهسازی است. مقدار 0 کاوشهای عدمفعالیت را غیرفعال میکند.
سوییچهای OpenFlow پیامهای خاصی را به طور خودجوش برای کنترلکنندهها ارسال میکنند، یعنی در پاسخ به هیچ درخواستی از سوی کنترلکننده نیست. به این پیامها «پیامهای ناهمگام» (asynchronous messages) گفته میشود. این ستونها امکان محدودسازی یا غیرفعال کردن پیامهای ناهمگام را فراهم میکنند تا از بهترین استفاده از منابع شبکه اطمینان حاصل شود.
- enable_async_messages: بولی اختیاری (optional boolean)
- پروتکل OpenFlow پیامهای ناهمگام را در زمان برقراری اتصال فعال میکند، که به این معنی است که یک کنترلکننده میتواند پیامهای ناهمگام (احتمالاً تعداد زیادی از آنها) را دریافت کند، حتی اگر بلافاصله پس از اتصال آنها را خاموش کند. این ستون را روی false تنظیم کنید تا رفتار Open vSwitch تغییر کرده و به طور پیشفرض تمام پیامهای ناهمگام را غیرفعال کند. کنترلکننده میتواند از افزونه NXT_SET_ASYNC_CONFIG متعلق به Nicira برای OpenFlow استفاده کند تا هر پیامی را که مایل به دریافت آن است، در صورت وجود، فعال نماید.
یک سوییچ میتواند بستهها را از طریق پروتکل OpenFlow به یک کنترلکننده هدایت کند. هدایت بستهها به این شیوه با نرخ بسیار بالا میتواند کنترلکننده را تحت فشار شدید قرار دهد، مانع استفاده از اتصال OpenFlow برای اهداف دیگر شود، تأخیر راهاندازی جریان را افزایش دهد و پهنای باند نامعقولی مصرف کند. بنابراین، Open vSwitch از محدود کردن نرخ هدایت بستهها به یک کنترلکننده پشتیبانی میکند.
در OpenFlow دو دلیل اصلی برای ارسال یک بسته به کنترلکننده وجود دارد: یا بسته در جدول جریان «از دست میرود» (misses)، یعنی جریان منطبقی وجود ندارد، یا یک عملیات (action) در جدول جریان دستور میدهد که بسته به کنترلکننده ارسال شود. سامانه Open vSwitch نرخ هر نوع بسته را به طور جداگانه با نرخ پیکربندیشده محدود میکند. بنابراین، هنگامی که بستهها به هر دو دلیل ارسال میشوند، نرخ واقعی بستههای ارسالی به کنترلکننده میتواند تا دو برابر نرخ پیکربندیشده باشد.
این ویژگی مختص هدایت بستهها روی اتصال OpenFlow است. این یک کیفیت خدمات (QoS) عمومی نیست. برای پیکربندی کیفیت خدمات به جدول QoS و برای پیکربندی پلیسینگ ورودی به ingress_policing_rate در جدول Interface مراجعه کنید.
- controller_queue_size: عدد صحیح اختیاری، در محدوده 1 تا 512
- این گزینه حداکثر اندازه صف بستههایی را تنظیم میکند که باید به این کنترلکننده OpenFlow ارسال شوند. این مقدار باید کمتر از 512 باشد. در صورت مشخص نشدن، اندازه صف به مقدار تنظیمشده برای کنترلکننده مدیریتی در other_config:controller-queue-size (در صورت وجود) یا به طور پیشفرض به 100 بسته محدود میشود. نکته: افزایش اندازه صف ممکن است تأثیر منفی بر تاخیر (latency) داشته باشد.
- controller_rate_limit: عدد صحیح اختیاری، حداقل 100
- حداکثر نرخی که سوییچ بستهها را به کنترلکننده OpenFlow هدایت میکند، بر حسب بسته بر ثانیه. اگر مقداری مشخص نشود، محدودسازی نرخ غیرفعال است.
- controller_burst_limit: عدد صحیح اختیاری، حداقل 25
- هنگامی که یک نرخ بالا باعث تحریک محدودسازی نرخ میشود، Open vSwitch بستهها را برای هر پورت در صف ارسال به کنترلکننده قرار میدهد و آنها را با نرخ پیکربندیشده به کنترلکننده مخابره میکند. این مقدار تعداد بستههای درون صف را محدود میکند. پورتهای روی یک پل صف بستهها را به صورت منصفانه به اشتراک میگذارند.
- این مقدار هیچ اثری ندارد مگر اینکه controller_rate_limit پیکربندی شده باشد. پیشفرض فعلی هنگامی که این مقدار مشخص نشده است، یکچهارم controller_rate_limit است، به این معنی که صفبندی میتواند هدایت یک بسته به کنترلکننده را تا 250 میلیثانیه به تأخیر بیندازد.
این مقادیر اثرات محدودسازی نرخ را گزارش میدهند. مقادیر آنها نسبت به برقراری جدیدترین اتصال OpenFlow، یا از زمانی که محدودسازی نرخ فعال شده است (هر کدام که اخیراً رخ داده باشد) محاسبه میشوند. هر کدام شامل دو مقدار است: یکی با جایگزینی miss به جای TYPE برای محدودسازی نرخ موارد عدم تطابق جدول جریان، و دیگری با جایگزینی action به جای TYPE برای محدودسازی نرخ بستههای ارسالی توسط اکشنهای OpenFlow.
این آمار تنها زمانی گزارش میشوند که محدودسازی نرخ کنترلکننده فعال باشد.
- status : packet-in-TYPE-bypassed: رشته اختیاری، شامل یک عدد صحیح، حداقل 0
- تعداد بستههایی که بدون قرار گرفتن در صف مستقیماً به کنترلکننده ارسال شدهاند، زیرا نرخ از حداکثر پیکربندیشده فراتر نرفته است.
- status : packet-in-TYPE-queued: رشته اختیاری، شامل یک عدد صحیح، حداقل 0
- تعداد بستههای اضافهشده به صف برای ارسال در آینده.
- status : packet-in-TYPE-dropped: رشته اختیاری، شامل یک عدد صحیح، حداقل 0
- تعداد بستههای اضافهشده به صف که بعداً به دلیل سرریز دور ریخته شدهاند. این مقدار کمتر یا مساوی با status:packet-in-TYPE-queued است.
- status : packet-in-TYPE-backlog: رشته اختیاری، شامل یک عدد صحیح، حداقل 0
- تعداد بستههایی که در حال حاضر در صف قرار دارند. سایر آمار به صورت یکنواخت افزایش مییابند، اما این مقدار با تغییر شرایط بین 0 و controller_burst_limit نوسان میکند.
این مقادیر تنها در حالت کنترل درونباند در نظر گرفته میشوند (به connection_mode مراجعه کنید).
هنگامی که چندین کنترلکننده روی یک پل پیکربندی میشوند، تنها باید یک مجموعه از مقادیر یکتا در این ستونها وجود داشته باشد. اگر مقادیر متفاوتی برای این ستونها در کنترلکنندههای مختلف تنظیم شود، اثر آن نامشخص است.
- local_ip: رشته اختیاری
- آدرس IP برای پیکربندی روی پورت محلی، مثلاً 192.168.0.123. اگر این مقدار تنظیم نشده باشد، local_netmask و local_gateway نادیده گرفته میشوند.
- local_netmask: رشته اختیاری
- ماسک شبکه IP (نتماسک) برای پیکربندی روی پورت محلی، مثلاً 255.255.255.0. اگر local_ip تنظیم شده باشد اما این مقدار تنظیم نشده باشد، مقدار پیشفرض بر اساس اینکه آدرس IP از کلاس A، B یا C است انتخاب میشود.
- local_gateway: رشته اختیاری
- آدرس IP درگاه (gateway) برای پیکربندی روی پورت محلی، به صورت یک رشته، مثلاً 192.168.0.1. اگر این شبکه هیچ درگاهی ندارد، این ستون را خالی بگذارید.
- is_connected: بولی (boolean)
- در صورت اتصال فعلی به این کنترلکننده برابر با true و در غیر این صورت false است.
- role: رشته اختیاری، یکی از master، other یا slave
- سطح اختیاراتی که این کنترلکننده روی پل مرتبط دارد. مقادیر ممکن عبارتند از:
- other
- به کنترلکننده اجازه دسترسی به تمام ویژگیهای OpenFlow را میدهد.
- master
- معادل other است، با این تفاوت که در هر زمان حداکثر یک کنترلکننده از این نوع میتواند وجود داشته باشد. اگر یک کنترلکننده مشخص خود را به این نقش ارتقا دهد، ovs-vswitchd هر کنترلکننده موجود با این نقش را به slave تنزل میدهد.
- slave
- به کنترلکننده دسترسی فقطخواندنی به ویژگیهای OpenFlow میدهد. تلاشها برای تغییر جدول جریان با خطا رد خواهند شد. چنین کنترلکنندههایی پیامهای OFPT_PACKET_IN یا OFPT_FLOW_REMOVED را دریافت نمیکنند، اما پیامهای OFPT_PORT_STATUS را دریافت مینمایند.
- status : last_error: رشته اختیاری
- توصیفی خوانا برای انسان از آخرین خطای رخداده روی اتصال به کنترلکننده؛ یعنی strerror(errno). این کلید تنها در صورتی وجود خواهد داشت که خطایی رخ داده باشد.
- status : state: رشته اختیاری، یکی از ACTIVE، BACKOFF، CONNECTING، IDLE یا VOID
- وضعیت اتصال به کنترلکننده:
- VOID
- اتصال غیرفعال است.
- BACKOFF
- تلاش برای اتصال مجدد با دوره زمانی فزاینده (عقبنشینی).
- CONNECTING
- در حال تلاش برای برقراری اتصال.
- ACTIVE
- متصل است و میزبان راه دور پاسخگو میباشد.
- IDLE
- اتصال بیکار است. در حال انتظار برای پاسخ پیام زنده نگهداشتن (keep-alive).
- این مقادیر ممکن است در آینده تغییر کنند. آنها تنها برای مصرف و خوانش انسان ارائه شدهاند.
- status : sec_since_connect: رشته اختیاری، شامل یک عدد صحیح، حداقل 0
- مدت زمانی که از آخرین اتصال موفق این کنترلکننده به سوییچ گذشته است (بر حسب ثانیه). اگر کنترلکننده تا به حال با موفقیت متصل نشده باشد، این مقدار خالی است.
- status : sec_since_disconnect: رشته اختیاری، شامل یک عدد صحیح، حداقل 1
- مدت زمانی که از آخرین قطع اتصال این کنترلکننده از سوییچ گذشته است (بر حسب ثانیه). اگر کنترلکننده تا به حال قطع اتصال نشده باشد، این مقدار خالی است.
پیکربندی اضافی برای اتصال میان کنترلکننده و Open vSwitch.
- other_config : dscp: رشته اختیاری، شامل یک عدد صحیح
- کد نقطه خدمات متمایز (DSCP) با استفاده از ۶ بیت در فیلد نوع خدمت (TOS) در هدر IP مشخص میشود. مقدار DSCP سازوکاری برای دستهبندی ترافیک شبکه و ارائه کیفیت خدمات (QoS) در شبکههای IP فراهم میکند. مقدار DSCP مشخصشده در اینجا هنگام برقراری اتصال میان کنترلکننده و Open vSwitch استفاده میشود. اگر مقداری مشخص نشود، مقدار پیشفرض 48 انتخاب میشود. مقادیر معتبر DSCP باید در محدوده 0 تا 63 باشند.
هدف کلی این ستونها در بخش ستونهای مشترک (Common Columns) در ابتدای این سند توصیف شده است.
جدول Manager (Manager TABLE)
پیکربندی برای اتصال پایگاهداده به یک کلاینت پایگاهداده Open vSwitch (OVSDB).
این جدول در درجه اول پایگاهداده Open vSwitch (ovsdb-server) را پیکربندی میکند، نه سوییچ Open vSwitch (ovs-vswitchd) را. سوییچ این جدول را میخواند تا مشخص کند چه اتصالاتی باید به عنوان درونباند (in-band) تلقی شوند.
سرور پایگاهداده Open vSwitch میتواند اتصالات فعال به کلاینتهای راه دور را آغاز و نگهداری کند. همچنین میتواند برای اتصالات پایگاهداده در حالت شنود (listen) قرار گیرد.
چکیده (Summary):
- ویژگیهای اصلی (Core Features):
- target
- رشته (باید
در جدول
یکتا باشد)
- connection_mode
- رشته اختیاری، یا in-band یا out-of-band
- تشخیص و مدیریت خرابی کلاینت (Client Failure Detection and Handling):
- max_backoff
- عدد صحیح
اختیاری،
حداقل 1,000
- inactivity_probe
- عدد صحیح اختیاری
- وضعیت (Status):
- is_connected
- بولی (boolean)
- status : last_error
- رشته
اختیاری
- status : state
- رشته
اختیاری،
یکی از ACTIVE،
BACKOFF، CONNECTING، IDLE
یا VOID
- status : sec_since_connect
- رشته
اختیاری،
شامل یک عدد
صحیح،
حداقل 0
- status : sec_since_disconnect
- رشته
اختیاری،
شامل یک عدد
صحیح،
حداقل 0
- status : locks_held
- رشته
اختیاری
- status : locks_waiting
- رشته
اختیاری
- status : locks_lost
- رشته
اختیاری
- status : n_connections
- رشته
اختیاری،
شامل یک عدد
صحیح،
حداقل 2
- status : bound_port
- رشته اختیاری، شامل یک عدد صحیح
- پارامترهای اتصال (Connection Parameters):
- other_config : dscp
- رشته اختیاری، شامل یک عدد صحیح
- ستونهای مشترک (Common Columns):
- external_ids
- نگاشتی از
جفتهای
رشته-رشته
- other_config
- نگاشتی از جفتهای رشته-رشته
جزئیات (Details):
- target: رشته (باید در جدول یکتا باشد)
- روش اتصال برای مدیران (managers).
- روشهای اتصال زیر در حال حاضر پشتیبانی میشوند:
- ssl:host[:port]
- پورت SSL/TLS مشخصشده (port) روی میزبان در host دادهشده، که میتواند یک نام DNS (اگر با کتابخانه unbound ساخته شده باشد) یا یک آدرس IP باشد. هنگامی که این قالب استفاده میشود، ستون ssl در جدول Open_vSwitch باید به یک پیکربندی معتبر SSL/TLS اشاره کند.
- اگر port مشخص نشود، مقدار پیشفرض آن 6640 است.
- پشتیبانی از SSL/TLS یک ویژگی اختیاری است که همیشه به عنوان بخشی از Open vSwitch ساخته نمیشود.
- tcp:host[:port]
- پورت TCP مشخصشده (port) روی میزبان در host دادهشده، که میتواند یک نام DNS (اگر با کتابخانه unbound ساخته شده باشد) یا یک آدرس IP (نسخه ۴ یا ۶) باشد. اگر host یک آدرس IPv6 است، آن را درون کروشه قرار دهید، مثلاً tcp:[::1]:6640.
- اگر port مشخص نشود، مقدار پیشفرض آن 6640 است.
- pssl:[port][:host]
- به اتصالات SSL/TLS روی پورت TCP مشخصشده (port) گوش میدهد. برای port مقدار 0 را مشخص کنید تا کرنل به طور خودکار یک پورت دردسترس را انتخاب کند. اگر host، که میتواند یک نام DNS (اگر با کتابخانه unbound ساخته شده باشد) یا یک آدرس IP باشد، مشخص شود، اتصالات به آدرس IP محلی مشخص یا حلشده (IPv4 یا IPv6) محدود میشوند. اگر host یک آدرس IPv6 است، آن را درون کروشه قرار دهید، مثلاً pssl:6640:[::1]. اگر host مشخص نشود، تنها روی آدرسهای IPv4 (و نه IPv6) گوش میدهد. هنگامی که این قالب استفاده میشود، ستون ssl در جدول Open_vSwitch باید به یک پیکربندی معتبر SSL/TLS اشاره کند.
- اگر port مشخص نشود، مقدار پیشفرض آن 6640 است.
- پشتیبانی از SSL/TLS یک ویژگی اختیاری است که همیشه به عنوان بخشی از Open vSwitch ساخته نمیشود.
- ptcp:[port][:host]
- به اتصالات روی پورت TCP مشخصشده (port) گوش میدهد. برای port مقدار 0 را مشخص کنید تا کرنل به طور خودکار یک پورت دردسترس را انتخاب کند. اگر host، که میتواند یک نام DNS (اگر با کتابخانه unbound ساخته شده باشد) یا یک آدرس IP باشد، مشخص شود، اتصالات به آدرس IP محلی مشخص یا حلشده (IPv4 یا IPv6) محدود میشوند. اگر host یک آدرس IPv6 است، آن را درون کروشه قرار دهید، مثلاً ptcp:6640:[::1]. اگر host مشخص نشود، تنها روی آدرسهای IPv4 گوش میدهد.
- اگر port مشخص نشود، مقدار پیشفرض آن 6640 است.
- هنگامی که چندین مدیر پیکربندی شده باشند، مقادیر target باید یکتا باشند. مقادیر تکراری target نتایج تعریفنشدهای به همراه خواهند داشت.
- connection_mode: رشته اختیاری، یا in-band یا out-of-band
- در صورت مشخص شدن، این تنظیم باید یکی از رشتههای زیر باشد که نحوه تماس Open vSwitch با این کلاینت OVSDB را از طریق شبکه توصیف میکند:
- in-band
- در این حالت، ترافیک این اتصال از روی پلی که توسط Open vSwitch مدیریت میشود عبور میکند. با این تنظیم، Open vSwitch صرفنظر از محتویات جدول جریان OpenFlow، به ترافیک به سمت کلاینت و از مبدأ آن اجازه عبور میدهد. (در غیر این صورت، Open vSwitch هرگز قادر به اتصال به کلاینت نبود، زیرا جریانی برای فعالسازی آن وجود نداشت.) این متداولترین حالت اتصال است چرا که نیازی به نگهداری دو شبکه مستقل ندارد.
- out-of-band
- در این حالت، ترافیک کلاینت از یک شبکه کنترلی مجزا از شبکه مدیریتشده توسط Open vSwitch استفاده میکند، به این معنی که Open vSwitch از هیچیک از دستگاههای شبکه خود برای ارتباط با کلاینت استفاده نمیکند. شبکه کنترلی باید به طور جداگانه، پیش یا پس از راهاندازی ovs-vswitchd پیکربندی شود.
- در صورت مشخص نشدن، مقدار پیشفرض وابسته به پیادهسازی است.
- max_backoff: عدد صحیح اختیاری، حداقل 1,000
- حداکثر تعداد میلیثانیهها برای انتظار میان تلاشهای اتصال. مقدار پیشفرض وابسته به پیادهسازی است.
- inactivity_probe: عدد صحیح اختیاری
- حداکثر مدت زمان بیکاری اتصال به کلاینت بر حسب میلیثانیه پیش از ارسال پیام کاوش عدمفعالیت (inactivity probe). اگر Open vSwitch برای تعداد ثانیههای مشخصشده با کلاینت ارتباطی نداشته باشد، یک پیام کاوش ارسال میکند. اگر در مدت زمان مشابه دیگری پاسخی دریافت نشود، Open vSwitch فرض میکند که اتصال قطع شده است و برای برقراری مجدد اتصال تلاش میکند. مقدار پیشفرض وابسته به پیادهسازی است. مقدار 0 کاوشهای عدمفعالیت را غیرفعال میکند.
جفت کلید-مقدار is_connected همیشه بهروزرسانی میشود. سایر جفتهای کلید-مقدار در ستونهای وضعیت ممکن است بسته به نوع target بهروزرسانی شوند.
هنگامی که target روش اتصالی را مشخص میکند که برای اتصالات ورودی گوش میدهد (مانند ptcp: یا punix:)، هر دو مقدار n_connections و is_connected نیز ممکن است بهروزرسانی شوند در حالی که باقی جفتهای کلید-مقدار حذف میشوند.
از سوی دیگر، هنگامی که target یک اتصال خروجی را مشخص میکند، تمام جفتهای کلید-مقدار ممکن است بهروزرسانی شوند، به جز دو جفت کلید-مقدار ذکرشده در بالا که مرتبط با مقاصد اتصال ورودی هستند. آنها حذف میشوند.
- is_connected: بولی (boolean)
- در صورت اتصال فعلی به این مدیر برابر با true و در غیر این صورت false است.
- status : last_error: رشته اختیاری
- توصیفی خوانا برای انسان از آخرین خطای رخداده روی اتصال به مدیر؛ یعنی strerror(errno). این کلید تنها در صورتی وجود خواهد داشت که خطایی رخ داده باشد.
- status : state: رشته اختیاری، یکی از ACTIVE، BACKOFF، CONNECTING، IDLE یا VOID
- وضعیت اتصال به مدیر:
- VOID
- اتصال غیرفعال است.
- BACKOFF
- تلاش برای اتصال مجدد با دوره زمانی فزاینده (عقبنشینی).
- CONNECTING
- در حال تلاش برای برقراری اتصال.
- ACTIVE
- متصل است و میزبان راه دور پاسخگو میباشد.
- IDLE
- اتصال بیکار است. در حال انتظار برای پاسخ پیام زنده نگهداشتن (keep-alive).
- این مقادیر ممکن است در آینده تغییر کنند. آنها تنها برای مصرف و خوانش انسان ارائه شدهاند.
- status : sec_since_connect: رشته اختیاری، شامل یک عدد صحیح، حداقل 0
- مدت زمانی که از آخرین اتصال موفق این مدیر به پایگاهداده گذشته است (بر حسب ثانیه). اگر مدیر تا به حال با موفقیت متصل نشده باشد، این مقدار خالی است.
- status : sec_since_disconnect: رشته اختیاری، شامل یک عدد صحیح، حداقل 0
- مدت زمانی که از آخرین قطع اتصال این مدیر از پایگاهداده گذشته است (بر حسب ثانیه). اگر مدیر هرگز قطع اتصال نشده باشد، این مقدار خالی است.
- status : locks_held: رشته اختیاری
- فهرستی جداشده با فاصله از نامهای قفلهای OVSDB که این اتصال در دست دارد. در صورتی که اتصال هیچ قفلی در دست نداشته باشد، حذف میشود.
- status : locks_waiting: رشته اختیاری
- فهرستی جداشده با فاصله از نامهای قفلهای OVSDB که این اتصال در حال حاضر منتظر دریافت آنهاست. اگر اتصال در انتظار هیچ قفلی نباشد، حذف میشود.
- status : locks_lost: رشته اختیاری
- فهرستی جداشده با فاصله از نامهای قفلهای OVSDB متعلق به این اتصال که توسط یک کلاینت دیگر OVSDB ربوده شدهاند. اگر هیچ قفلی از این اتصال ربوده نشده باشد، حذف میشود.
- status : n_connections: رشته اختیاری، شامل یک عدد صحیح، حداقل 2
- هنگامی که target روش اتصالی را مشخص میکند که برای اتصالات ورودی گوش میدهد (مانند ptcp: یا pssl:) و بیش از یک اتصال در عمل فعال باشد، این مقدار برابر با تعداد اتصالات فعال است. در غیر این صورت، این جفت کلید-مقدار حذف میشود.
- status : bound_port: رشته اختیاری، شامل یک عدد صحیح
- هنگامی که target برابر با ptcp: یا pssl: باشد، این همان پورت TCP است که سرور OVSDB روی آن گوش میدهد. (این امر بهویژه هنگامی مفید است که target پورت 0 را مشخص کند و به کرنل اجازه دهد هر پورت دردسترسی را انتخاب کند.)
پیکربندی اضافی برای اتصال میان مدیر و پایگاهداده Open vSwitch.
- other_config : dscp: رشته اختیاری، شامل یک عدد صحیح
- کد نقطه خدمات متمایز (DSCP) با استفاده از ۶ بیت در فیلد نوع خدمت (TOS) در هدر IP مشخص میشود. مقدار DSCP سازوکاری برای دستهبندی ترافیک شبکه و ارائه کیفیت خدمات (QoS) در شبکههای IP فراهم میکند. مقدار DSCP مشخصشده در اینجا هنگام برقراری اتصال میان مدیر و Open vSwitch استفاده میشود. اگر مقداری مشخص نشود، مقدار پیشفرض 48 انتخاب میشود. مقادیر معتبر DSCP باید در محدوده 0 تا 63 باشند.
هدف کلی این ستونها در بخش ستونهای مشترک (Common Columns) در ابتدای این سند توصیف شده است.
جدول NetFlow (NetFlow TABLE)
یک مقصد نتفلو (NetFlow target). نتفلو (NetFlow) پروتکلی است که مجموعهای از جزئیات مربوط به جریانهای پایانیافته IP، مانند طرفهای درگیر و مدتزمان جریان را گزارش میدهد.
چکیده (Summary):
- targets
- مجموعهای
از ۱ یا چند
رشته
- engine_id
- عدد صحیح
اختیاری،
در محدوده ۰
تا ۲۵۵
- engine_type
- عدد صحیح
اختیاری،
در محدوده ۰
تا ۲۵۵
- active_timeout
- عدد صحیح،
دستکم -۱
- add_id_to_interface
- بولی (boolean)
- ستونهای مشترک (Common Columns):
- external_ids
- نگاشتی از جفتهای رشته-رشته
جزئیات (Details):
- targets: مجموعهای از ۱ یا چند رشته
- مقاصد نتفلو در قالب ip:port. مقدار ip باید به صورت عددی مشخص شود، نه به عنوان یک نام DNS.
- engine_id: عدد صحیح اختیاری، در محدوده ۰ تا ۲۵۵
- شناسه موتور (Engine ID) برای استفاده در پیامهای نتفلو. در صورت عدم تعیین، به طور پیشفرض روی نمایه مسیر داده (datapath index) قرار میگیرد.
- engine_type: عدد صحیح اختیاری، در محدوده ۰ تا ۲۵۵
- نوع موتور (Engine type) برای استفاده در پیامهای نتفلو. در صورت عدم تعیین، به طور پیشفرض روی نمایه مسیر داده قرار میگیرد.
- active_timeout: عدد صحیح، دستکم -۱
- فاصله زمانی ارسال رکوردهای نتفلو برای جریانهایی که هنوز فعال هستند، بر حسب ثانیه. مقدار 0 مهلت زمانی پیشفرض (در حال حاضر ۶۰۰ ثانیه) را درخواست میکند؛ مقدار -1 مهلتهای زمانی فعال را غیرفعال میسازد.
- مهلت زمانی غیرفعال (passive timeout) نتفلو برای جریانهایی که غیرفعال میشوند، قابل پیکربندی نیست. این مقدار بسته به نسخه Open vSwitch، ساختار و محتوای جدولهای جریان OpenFlow، میزان استفاده از پردازنده (CPU) و حافظه، و فعالیت شبکه متغیر خواهد بود. مهلت زمانی غیرفعال معمول حدود یک ثانیه است.
- add_id_to_interface: بولی (boolean)
- اگر مقدار این ستون false باشد، فیلدهای رابط ورودی (ingress) و خروجی (egress) رکوردهای جریان نتفلو از شماره پورتهای OpenFlow مشتق میشوند. اگر true باشد، ۷ بیت باارزشتر این فیلدها با ۷ بیت کمارزشتر شناسه موتور جایگزین خواهد شد. این قابلیت از آنجا مفید است که بسیاری از جمعآوریکنندههای نتفلو (collectors) انتظار ندارند چندین سوییچ از یک میزبان پیام ارسال کنند، بنابراین اطلاعات موتور را که میتوانست برای ابهامزدایی از ترافیک استفاده شود ذخیره نمیکنند.
- هنگامی که این گزینه فعال باشد، حداکثر ۵۰۸ پورت پشتیبانی میشود.
هدف کلی این ستونها ذیل ستونهای مشترک (Common Columns) در ابتدای این سند توضیح داده شده است.
جدول Datapath (Datapath TABLE)
پیکربندی برای یک مسیر داده (datapath) درون Open_vSwitch.
یک مسیر داده (datapath) مسئولیت مدیریت و پردازش بستهها را در Open vSwitch بر عهده دارد. دو پیادهسازی اصلی مسیر داده توسط Open vSwitch استفاده میشود: کرنل و فضای کاربر (userspace). پیادهسازی مسیر داده کرنل برای لینوکس در دسترس است و با انتخاب system در ستون datapath_type از جدول Bridge برگزیده میشود. مسیر داده فضای کاربر توسط DPDK و AF-XDP استفاده میشود و با انتخاب netdev در ستون datapath_type از جدول Bridge برگزیده میشود.
یک مسیر داده از نوعی خاص، میان تمام پلهایی که از آن مسیر داده استفاده میکنند به اشتراک گذاشته میشود. بنابراین، پیکربندیهای اعمالشده روی این جدول بر تمام پلهایی که از این مسیر داده استفاده میکنند تأثیر میگذارد.
چکیده (Summary):
- datapath_version
- رشته
- ct_zones
- نگاشتی از
جفتهای
عدد
صحیح-CT_Zone،
کلید در
محدوده ۰ تا
۶۵٬۵۳۵
- قابلیتها (Capabilities):
- capabilities : max_vlan_headers
- رشته
اختیاری،
شامل یک عدد
صحیح،
دستکم ۰
- capabilities : recirc
- رشته
اختیاری،
یا true یا false
- capabilities : lb_output_action
- رشته
اختیاری،
یا true یا false
- قابلیتهای رهگیری اتصال (Connection-Tracking Capabilities):
- capabilities : ct_state
- رشته
اختیاری،
یا true یا false
- capabilities : ct_state_nat
- رشته
اختیاری،
یا true یا false
- capabilities : ct_zone
- رشته
اختیاری،
یا true یا false
- capabilities : ct_mark
- رشته
اختیاری،
یا true یا false
- capabilities : ct_label
- رشته
اختیاری،
یا true یا false
- capabilities : ct_orig_tuple
- رشته
اختیاری،
یا true یا false
- capabilities : ct_orig_tuple6
- رشته اختیاری، یا true یا false
- capabilities : masked_set_action
- رشته
اختیاری،
یا true یا false
- capabilities : tnl_push_pop
- رشته
اختیاری،
یا true یا false
- capabilities : ufid
- رشته
اختیاری،
یا true یا false
- capabilities : trunc
- رشته
اختیاری،
یا true یا false
- capabilities : nd_ext
- رشته
اختیاری،
یا true یا false
- عملیاتهای کلون (Clone Actions):
- capabilities : clone
- رشته
اختیاری،
یا true یا false
- capabilities : sample_nesting
- رشته اختیاری، شامل یک عدد صحیح، دستکم ۰
- capabilities : ct_eventmask
- رشته
اختیاری،
یا true یا false
- capabilities : ct_clear
- رشته
اختیاری،
یا true یا false
- capabilities : max_hash_alg
- رشته
اختیاری،
شامل یک عدد
صحیح،
دستکم ۰
- capabilities : check_pkt_len
- رشته
اختیاری،
یا true یا false
- capabilities : ct_timeout
- رشته
اختیاری،
یا true یا false
- capabilities : explicit_drop_action
- رشته
اختیاری،
یا true یا false
- capabilities : ct_zero_snat
- رشته
اختیاری،
یا true یا false
- capabilities : ct_flush
- رشته
اختیاری،
یا true یا false
- capabilities : psample
- رشته اختیاری، یا true یا false
- ct_zone_default_limit
- عدد صحیح
اختیاری،
در محدوده ۰
تا
۴٬۲۹۴٬۹۶۷٬۲۹۵
- ستونهای مشترک (Common Columns):
- external_ids
- نگاشتی از جفتهای رشته-رشته
جزئیات (Details):
- datapath_version: رشته
- شماره نسخه مسیر داده (datapath) در حال استفاده Open vSwitch را گزارش میدهد. این امر به نرمافزار مدیریتی اجازه میدهد تا مغایرتهای میان نسخههای فضای کاربر (userspace) و مسیر داده Open vSwitch را تشخیص داده و گزارش کند. (ستون ovs_version در جدول Open_vSwitch نسخه فضای کاربر Open vSwitch را گزارش میکند.) نسخه گزارششده به مسیر داده در حال استفاده بستگی دارد:
- هنگامی که مسیر داده درون باینری ovs-vswitchd تعبیه شده باشد (built-in)، این ستون مقدار <built-in> را گزارش میدهد. طبق تعریف، یک مسیر داده تعبیهشده دارای همان نسخه سایر بخشهای فضای کاربر Open vSwitch است.
- سایر مسیرهای داده در حال حاضر <unknown> را گزارش میدهند.
- وجود اختلاف نسخه میان ovs-vswitchd و مسیر داده در حال استفاده، معمولاً دلیلی برای نگرانی نیست. بهویژه مسیرهای داده کرنل Open vSwitch برای لینوکس، برای بیشترین سازگاری بیننسخهای طراحی شدهاند: هر نسخه فضای کاربر با هر نسخه کرنل کار میکند. با این حال دلایلی برای اصرار بر جفتسازیهای خاص میان کاربر/کرنل وجود دارد. نخست، نسخههای جدیدتر کرنل ویژگیهای جدیدی اضافه میکنند که تنها توسط فضای کاربر بهاندازه کافی جدید قابل استفاده است، برای نمونه تونلزنی VXLAN به حداقل نسخههای مشخصی از فضای کاربر و کرنل نیاز دارد. دوم، به عنوان توسعهای بر دلیل اول، برخی نسخههای جدیدتر کرنل ویژگیهای جدیدی را برای بهبود عملکرد اضافه میکنند که تنها نسخههای بهاندازه کافی جدید فضای کاربر میتوانند از آنها بهرهمند شوند.
- ct_zones: نگاشتی از جفتهای عدد صحیح-CT_Zone، کلید در محدوده ۰ تا ۶۵٬۵۳۵
- پیکربندی برای نواحی رهگیری اتصال (connection tracking zones). هر جفت از یک شناسه ناحیه به یک پیکربندی برای آن ناحیه نگاشت میشود. ناحیه 0 برای ناحیه پیشفرض اعمال میگردد (یعنی ناحیهای که در صورت عدم تعیین ناحیه در تطابقها و عملیاتهای OpenFlow مرتبط با رهگیری اتصال، استفاده میشود).
ستون capabilities ویژگیهای یک مسیر داده را گزارش میدهد. برای مسیر داده netdev، این قابلیتها برای یک نسخه مشخص از Open vSwitch ثابت هستند زیرا این مسیر داده در باینری ovs-vswitchd تعبیه شده است. هسته لینوکس و سایر مسیرهای داده، که بیرون از فضای کاربر OVS هستند، میتوانند مستقل از ovs-vswitchd از نظر نسخه و قابلیتها تفاوت داشته باشند.
برخی از این ویژگیها نشان میدهند که آیا ویژگیهای سطح بالاتر Open vSwitch در دسترس هستند یا خیر. برای نمونه، ویژگیهای OpenFlow برای رهگیری اتصال تنها زمانی در دسترس هستند که capabilities:ct_state برابر با true باشد. بنابراین کنترلکنندهای که مایل است تعیین کند آیا یک ویژگی پشتیبانی میشود یا خیر، میتواند قابلیتهای مربوطه را در این جدول بررسی کند. با این حال، به عنوان یک قاعده کلی، بهتر است یک کنترلکننده تلاش کند از ویژگی سطح بالاتر استفاده نماید و نتیجه را به عنوان نشانهای از پشتیبانی در نظر بگیرد، زیرا احتمال تغییر قابلیتهای سطح پایین در طول زمان بیشتر از ویژگیهای سطح بالایی است که به آنها متکی هستند.
- capabilities : max_vlan_headers: رشته اختیاری، شامل یک عدد صحیح، دستکم ۰
- تعداد هدرهای 802.1q VLAN پشتیبانیشده توسط مسیر داده، همانطور که توسط مسیر کُند (slow path) در ovs-vswitchd کاوش شده است. اگر مسیر داده از هدرهای VLAN بیشتری نسبت به مسیر کُند پشتیبانی کند، این مقدار سقف مسیر کُند را گزارش میدهد. مقدار other-config:vlan-limit در جدول Open_vSwitch بر عدد گزارششده در اینجا تأثیری ندارد.
- capabilities : recirc: رشته اختیاری، یا true یا false
- اگر این مقدار true باشد، مسیر داده از گردش مجدد (recirculation)، بهویژه OVS_KEY_ATTR_RECIRC_ID پشتیبانی میکند. گردش مجدد کارایی بالاتری را برای MPLS و حالتهای پیوند تعادل بار فعال-فعال (active-active load balancing) فراهم میسازد.
- capabilities : lb_output_action: رشته اختیاری، یا true یا false
- اگر این مقدار true باشد، مسیر داده از حالت پیوند بهینهشده balance-tcp پشتیبانی میکند. این قابلیت عملیاتهای موجود hash و recirc را با عملیات جدید lb_output جایگزین کرده و از گردش مجدد بسته در مسیر داده جلوگیری مینماید. این ویژگی فقط برای حالت پیوند balance-tcp در مسیر داده netdev پشتیبانی میشود. اقدام جدید با استفاده از سطلهای پیوند (bond buckets) بهجای جریانهای پس از گردش مجدد برای انتخاب پورت عضو از پیوند، عملکرد بالاتری ارائه میدهد. به طور پیشفرض این عملیات جدید غیرفعال است، اما میتوان آن را با تنظیم other-config:lb-output-action در جدول Port فعال کرد.
این قابلیتها جزئی و ریزدانهاند زیرا Open vSwitch و مسیرهای داده آن، پشتیبانی از رهگیری اتصال را در طول چندین نگارش اضافه کردند و ویژگیها در طول آن زمان به صورت جداگانه اضافه شدند.
- capabilities : ct_state: رشته اختیاری، یا true یا false
- اگر true باشد، مسیر داده از OVS_KEY_ATTR_CT_STATE پشتیبانی میکند، که نشاندهنده پشتیبانی از بیتهای موجود در فیلد ct_state در OpenFlow (به ovs-fields(7) مراجعه کنید) بهجز snat و dnat است که قابلیت جداگانهای دارند.
- اگر این مقدار false باشد، مسیر داده اصلاً از رهگیری اتصال پشتیبانی نمیکند و باقی قابلیتهای رهگیری اتصال همگی باید false باشند. در این حالت، Open vSwitch جریانهایی را که روی فیلد ct_state تطابق دارند یا از اقدام ct استفاده میکنند رد خواهد کرد.
- capabilities : ct_state_nat: رشته اختیاری، یا true یا false
- اگر true باشد، به این معنی است که مسیر داده از پرچمهای snat و dnat در فیلد ct_state در OpenFlow پشتیبانی میکند. قابلیت ct_state باید true باشد تا این مورد معنا پیدا کند.
- اگر false باشد، Open vSwitch جریانهایی را که روی بیتهای snat یا dnat در ct_state تطابق دارند یا از nat در اقدام ct استفاده میکنند رد خواهد کرد.
- capabilities : ct_zone: رشته اختیاری، یا true یا false
- اگر true باشد، مسیر داده از OVS_KEY_ATTR_CT_ZONE پشتیبانی میکند. اگر false باشد، Open vSwitch جریانهایی را که روی فیلد ct_zone تطابق دارند یا یک ناحیه غیرصفر یا یک فیلد ناحیه را در اقدام ct مشخص میکنند رد مینماید.
- capabilities : ct_mark: رشته اختیاری، یا true یا false
- اگر true باشد، مسیر داده از OVS_KEY_ATTR_CT_MARK پشتیبانی میکند. اگر false باشد، Open vSwitch جریانهایی را که روی فیلد ct_mark تطابق دارند یا ct_mark را در اقدام ct تنظیم میکنند رد مینماید.
- capabilities : ct_label: رشته اختیاری، یا true یا false
- اگر true باشد، مسیر داده از OVS_KEY_ATTR_CT_LABEL پشتیبانی میکند. اگر false باشد، Open vSwitch جریانهایی را که روی فیلد ct_label تطابق دارند یا ct_label را در اقدام ct تنظیم میکنند رد مینماید.
- capabilities : ct_orig_tuple: رشته اختیاری، یا true یا false
- اگر true باشد، مسیر داده از تطابق چندتایی ۵-گانه (5-tuple) از جهت اصلی اتصال برای ترافیک IPv4 پشتیبانی میکند. اگر false باشد، Open vSwitch جریانهایی را که روی ct_nw_src یا ct_nw_dst تطابق دارند، یا از ویژگی ct در اقدام resubmit استفاده میکنند، یا کلیدواژه force را در اقدام ct به کار میبرند رد مینماید. (مورد اخیر از نظر فنی به هیچ وجه به پشتیبانی رهگیری اتصال از چندتاییهای اصلی متصل نیست. این دو به این دلیل با هم ادغام شدهاند که تمام مسیرهای داده فعلی هر دو ویژگی را همزمان پیادهسازی کردند.)
- اگر این مورد و capabilities:ct_orig_tuple6 هر دو false باشند، Open vSwitch جریانهایی را که روی ct_nw_proto، ct_tp_src یا ct_tp_dst تطابق دارند رد میکند.
- capabilities : ct_orig_tuple6: رشته اختیاری، یا true یا false
- اگر true باشد، مسیر داده از تطابق چندتایی ۵-گانه از جهت اصلی اتصال برای ترافیک IPv6 پشتیبانی میکند. اگر false باشد، Open vSwitch جریانهایی را که روی ct_ipv6_src یا ct_ipv6_dst تطابق دارند رد مینماید.
- capabilities : masked_set_action: رشته اختیاری، یا true یا false
- مقدار true در صورتی که مسیر داده از دادههای ماسکشده در عملیاتهای OVS_ACTION_ATTR_SET پشتیبانی کند. دادههای ماسکشده میتوانند با فراهم کردن امکان تطابق مگاجریانها (megaflows) روی فیلدهای کمتر، کارایی را بهبود بخشند.
- capabilities : tnl_push_pop: رشته اختیاری، یا true یا false
- مقدار true در صورتی که مسیر داده از عملیاتهای tnl_push و pop پشتیبانی کند. این یک پیشنیاز است تا مسیر داده بتواند از تونلزنی بومی (native tunneling) پشتیبانی نماید.
- capabilities : ufid: رشته اختیاری، یا true یا false
- مقدار true در صورتی که مسیر داده از OVS_FLOW_ATTR_UFID پشتیبانی کند. پشتیبانی از UFID با انتقال دادههای کمتر میان مسیر کُند و مسیر داده، عملکرد اعتبارسنجی مجدد (revalidation) را ارتقا میدهد.
- capabilities : trunc: رشته اختیاری، یا true یا false
- مقدار true در صورتی که مسیر داده از اقدام OVS_ACTION_ATTR_TRUNC پشتیبانی کند. اگر false باشد، اقدام output با کوتاه کردن بسته (truncation) نیازمند ارسال هر بسته به مسیر کُند Open vSwitch است که احتمالاً آن را برای آینهسازی ترافیک در حجم انبوه بیش از حد کند میسازد.
- capabilities : nd_ext: رشته اختیاری، یا true یا false
- مقدار true در صورتی که مسیر داده از OVS_KEY_ATTR_ND_EXTENSIONS برای تطابق روی فیلدهای هدر ICMPv6 با عنوان "ND reserved" و "ND option type" پشتیبانی کند. اگر false باشد، در صورت استفاده از این ویژگی، مسیر داده خطا گزارش میدهد.
هنگامی که Open vSwitch عملیاتها را از OpenFlow به نمایش مسیر داده ترجمه میکند، ممکن است برخی از اقدامات مسیر داده، بسته را تغییر دهند یا اثرات جانبی دیگری داشته باشند که اقدامات بعدی مسیر داده نتوانند آن را بازگردانند. اقدامات OpenFlow شامل ct، meter، output با کوتاهسازی (truncation)، encap، decap و dec_nsh_ttl در این دسته قرار میگیرند. اغلب این مسئله مشکلی ایجاد نمیکند زیرا در ادامه نیازی به بسته اصلی نیست.
با این حال، چنین اقداماتی ممکن است در شرایطی رخ دهند که ترجمه واقعاً به بسته اصلی نیاز داشته باشد. برای نمونه، یک اقدام output در OpenFlow ممکن است بستهای را به یک پورت پچ (patch port) هدایت کند، که آن هم به نوبه خود ممکن است منجر به اقدام ct شود که بسته را NAT میکند (که قابل بازگشت نیست)، و سپس پس از بازگشت جریان کنترل از روی پورت پچ، اقدام دیگری ممکن است نیاز داشته باشد روی بسته اصلی عمل کند.
سوییچ Open vSwitch دو روش متفاوت برای پیادهسازی این «ذخیره و بازیابی» از طریق عملیاتهای مسیر داده دارد. این قابلیتها مشخص میکنند که Open vSwitch کدام یک را انتخاب خواهد کرد. زمانی که هیچکدام در دسترس نباشد، Open vSwitch در شرایطی که به این ویژگی نیاز دارند، به سادگی با شکست مواجه میشود.
- capabilities : clone: رشته اختیاری، یا true یا false
- مقدار true در صورتی که مسیر داده از اقدام OVS_ACTION_ATTR_CLONE پشتیبانی کند. این گزینه ترجیحی برای ذخیره و بازیابی بستههاست، زیرا برای همین هدف طراحی شده است، اما مسیرهای داده قدیمی از آن پشتیبانی نمیکنند. هر زمان که این قابلیت در دسترس باشد، Open vSwitch از آن استفاده خواهد کرد.
- (اقدام clone در OpenFlow همیشه منجر به اقدام OVS_ACTION_ATTR_CLONE نمیشود. تنها زمانی چنین میکند که مسیر داده از آن پشتیبانی کند و clone اقداماتی را در بر بگیرد که در غیر این صورت قابل بازگشت نیستند.)
- capabilities : sample_nesting: رشته اختیاری، شامل یک عدد صحیح، دستکم ۰
- حداکثر سطح تودرتویی (nesting) مجاز توسط اقدام OVS_ACTION_ATTR_SAMPLE. سوییچ Open vSwitch هنگامی که مسیر داده از بیش از ۳ سطح تودرتویی پشتیبانی کند و OVS_ACTION_ATTR_CLONE در دسترس نباشد، از این اقدام برای ذخیره و بازیابی بستهها استفاده نادرست (سوءاستفاده روشمند) میکند.
- capabilities : ct_eventmask: رشته اختیاری، یا true یا false
- مقدار true در صورتی که اقدام OVS_ACTION_ATTR_CT در مسیر داده، ویژگی OVS_CT_ATTR_EVENTMASK را پیادهسازی کرده باشد. هنگامی که این مقدار true باشد، Open vSwitch از ویژگی ماسک رویداد (event mask) برای محدود کردن انواع رویدادهای گزارششده به شنوندگان بهروزرسانی conntrack استفاده میکند. هنگامی که Open vSwitch ماسک رویداد را محدود نمیکند، شنوندگان گزارشهای مربوط به رویدادهای پرتعداد و معمولاً کماهمیت مانند تغییرات ماشین حالت TCP را دریافت میکنند که میتواند زمان پردازنده (CPU) را هدر دهد.
- capabilities : ct_clear: رشته اختیاری، یا true یا false
- مقدار true در صورتی که مسیر داده از اقدام OVS_ACTION_ATTR_CT_CLEAR پشتیبانی کند. اگر false باشد، اقدام ct_clear در OpenFlow هیچ تأثیری روی مسیر داده ندارد.
- capabilities : max_hash_alg: رشته اختیاری، شامل یک عدد صحیح، دستکم ۰
- بالاترین الگوریتم dp_hash پشتیبانیشده. این به Open vSwitch اجازه میدهد تا از درخواست درهمسازی (هش) بستهای که مسیر داده از آن پشتیبانی نمیکند خودداری ورزد.
- capabilities : check_pkt_len: رشته اختیاری، یا true یا false
- مقدار true در صورتی که مسیر داده از OVS_ACTION_ATTR_CHECK_PKT_LEN پشتیبانی کند. اگر false باشد، Open vSwitch اقدام check_pkt_larger را با ارسال هر بسته از طریق مسیر کُند Open vSwitch پیادهسازی میکند، که احتمالاً آن را برای مدیریت ترافیک انبوه بیش از حد کند میسازد.
- capabilities : ct_timeout: رشته اختیاری، یا true یا false
- مقدار true در صورتی که مسیر داده از OVS_CT_ATTR_TIMEOUT در اقدام OVS_ACTION_ATTR_CT پشتیبانی کند. اگر false باشد، سوییچ Open vSwitch نمیتواند سیاستهای مهلت زمانی بر اساس نواحی رهگیری اتصال را همانطور که از طریق جدول CT_Timeout_Policy پیکربندی شده پیادهسازی کند.
- capabilities : explicit_drop_action: رشته اختیاری، یا true یا false
- مقدار true در صورتی که مسیر داده از OVS_ACTION_ATTR_DROP پشتیبانی کند. اگر false باشد، اقدام دور انداختن صریح (explicit drop action) به مسیر داده فرستاده نخواهد شد.
- capabilities : ct_zero_snat: رشته اختیاری، یا true یا false
- مقدار true در صورتی که مسیر داده از SNAT تمامصفر (all-zero SNAT) پشتیبانی کند. این یک حالت خاص است هنگامی که نشانی IP مربوط به src همگی به صورت ۰ پیکربندی شده باشد، یعنی nat(src=0.0.0.0). در این حالت، هنگامی که یک برخورد پورت مبدأ در طول ثبت (commit) شناسایی شود، پورت مبدأ به یک پورت موقت (ephemeral port) ترجمه میشود. اگر برخوردی وجود نداشته باشد، هیچ SNATای انجام نمیشود.
- capabilities : ct_flush: رشته اختیاری، یا true یا false
- مقدار true در صورتی که مسیر داده از افزونه Nicira در OpenFlow برای پاکسازی CT با نام NXT_CT_FLUSH پشتیبانی کند. افزونه NXT_CT_FLUSH امکان پاکسازی ورودیهای CT را بر اساس پارامترهای مشخصشده فراهم میآورد.
- capabilities : psample: رشته اختیاری، یا true یا false
- مقدار true در صورتی که مسیر داده از OVS_ACTION_ATTR_PSAMPLE پشتیبانی کند. اگر false باشد، نمونهبرداری محلی با مسیر داده کرنل لینوکس پشتیبانی نخواهد شد.
- ct_zone_default_limit: عدد صحیح اختیاری، در محدوده ۰ تا ۴٬۲۹۴٬۹۶۷٬۲۹۵
- محدودیت پیشفرض ناحیه رهگیری اتصال که برای تمام نواحی که مقدار limit را صراحتاً مشخص نکردهاند اعمال میشود. اگر سقف مشخص نشود، پیکربندی سقف پیشفرض برای مسیر داده دستنخورده باقی میماند. مقدار 0 به معنای نامحدود است.
هدف کلی این ستونها ذیل ستونهای مشترک (Common Columns) در ابتدای این سند توضیح داده شده است.
جدول CT_Zone (CT_Zone TABLE)
پیکربندی ناحیه رهگیری اتصال
چکیده (Summary):
- timeout_policy
- CT_Timeout_Policy
اختیاری
- limit
- عدد صحیح
اختیاری،
در محدوده ۰
تا
۴٬۲۹۴٬۹۶۷٬۲۹۵
- ستونهای مشترک (Common Columns):
- external_ids
- نگاشتی از جفتهای رشته-رشته
جزئیات (Details):
- timeout_policy: CT_Timeout_Policy اختیاری
- سیاست مهلت زمانی رهگیری اتصال برای این ناحیه. اگر سیاست مهلت زمانی مشخص نشده باشد، به طور پیشفرض از سیاست مهلت زمانی موجود در سیستم استفاده میشود.
- limit: عدد صحیح اختیاری، در محدوده ۰ تا ۴٬۲۹۴٬۹۶۷٬۲۹۵
- محدودیت رهگیری اتصال برای این ناحیه. اگر این سقف مشخص نشده باشد، مقدار ct_zone_default_limit استفاده خواهد شد. مقدار 0 به معنای نامحدود است.
هدف کلی این ستونها ذیل ستونهای مشترک (Common Columns) در ابتدای این سند توضیح داده شده است.
جدول CT_Timeout_Policy (CT_Timeout_Policy TABLE)
پیکربندی سیاست مهلت زمانی رهگیری اتصال
چکیده (Summary):
- مهلتهای زمانی (Timeouts):
- timeouts
- نگاشتی از
جفتهای
رشته-عدد
صحیح، کلید
یکی از icmp_first،
icmp_reply، tcp_close،
tcp_close_wait، tcp_established،
tcp_fin_wait، tcp_last_ack،
tcp_retransmit، tcp_syn_recv،
tcp_syn_sent2، tcp_syn_sent،
tcp_time_wait، tcp_unack،
udp_first، udp_multiple یا
udp_single، مقدار
در محدوده ۰
تا
۴٬۲۹۴٬۹۶۷٬۲۹۵
- مهلتهای زمانی TCP (TCP Timeouts):
- timeouts : tcp_syn_sent
- عدد صحیح
اختیاری،
در محدوده ۰
تا
۴٬۲۹۴٬۹۶۷٬۲۹۵
- timeouts : tcp_syn_recv
- عدد صحیح
اختیاری،
در محدوده ۰
تا
۴٬۲۹۴٬۹۶۷٬۲۹۵
- timeouts : tcp_established
- عدد صحیح
اختیاری،
در محدوده ۰
تا
۴٬۲۹۴٬۹۶۷٬۲۹۵
- timeouts : tcp_fin_wait
- عدد صحیح
اختیاری،
در محدوده ۰
تا
۴٬۲۹۴٬۹۶۷٬۲۹۵
- timeouts : tcp_close_wait
- عدد صحیح
اختیاری،
در محدوده ۰
تا
۴٬۲۹۴٬۹۶۷٬۲۹۵
- timeouts : tcp_last_ack
- عدد صحیح
اختیاری،
در محدوده ۰
تا
۴٬۲۹۴٬۹۶۷٬۲۹۵
- timeouts : tcp_time_wait
- عدد صحیح
اختیاری،
در محدوده ۰
تا
۴٬۲۹۴٬۹۶۷٬۲۹۵
- timeouts : tcp_close
- عدد صحیح
اختیاری،
در محدوده ۰
تا
۴٬۲۹۴٬۹۶۷٬۲۹۵
- timeouts : tcp_syn_sent2
- عدد صحیح
اختیاری،
در محدوده ۰
تا
۴٬۲۹۴٬۹۶۷٬۲۹۵
- timeouts : tcp_retransmit
- عدد صحیح
اختیاری،
در محدوده ۰
تا
۴٬۲۹۴٬۹۶۷٬۲۹۵
- timeouts : tcp_unack
- عدد صحیح اختیاری، در محدوده ۰ تا ۴٬۲۹۴٬۹۶۷٬۲۹۵
- مهلتهای زمانی UDP (UDP Timeouts):
- timeouts : udp_first
- عدد صحیح
اختیاری،
در محدوده ۰
تا
۴٬۲۹۴٬۹۶۷٬۲۹۵
- timeouts : udp_single
- عدد صحیح
اختیاری،
در محدوده ۰
تا
۴٬۲۹۴٬۹۶۷٬۲۹۵
- timeouts : udp_multiple
- عدد صحیح اختیاری، در محدوده ۰ تا ۴٬۲۹۴٬۹۶۷٬۲۹۵
- مهلتهای زمانی ICMP (ICMP Timeouts):
- timeouts : icmp_first
- عدد صحیح
اختیاری،
در محدوده ۰
تا
۴٬۲۹۴٬۹۶۷٬۲۹۵
- timeouts : icmp_reply
- عدد صحیح اختیاری، در محدوده ۰ تا ۴٬۲۹۴٬۹۶۷٬۲۹۵
- ستونهای مشترک (Common Columns):
- external_ids
- نگاشتی از جفتهای رشته-رشته
جزئیات (Details):
- timeouts: نگاشتی از جفتهای رشته-عدد صحیح، کلید یکی از icmp_first، icmp_reply، tcp_close، tcp_close_wait، tcp_established، tcp_fin_wait، tcp_last_ack، tcp_retransmit، tcp_syn_recv، tcp_syn_sent2، tcp_syn_sent، tcp_time_wait، tcp_unack، udp_first، udp_multiple یا udp_single، مقدار در محدوده ۰ تا ۴٬۲۹۴٬۹۶۷٬۲۹۵
- ستون timeouts شامل جفتهای کلید-مقداری است که برای پیکربندی مهلتهای زمانی رهگیری اتصال در یک مسیر داده استفاده میشوند. جفتهای کلید-مقداری که توسط مسیر داده پشتیبانی نمیشوند نادیده گرفته میشوند. مقدار مهلت زمانی بر حسب ثانیه است.
- timeouts : tcp_syn_sent: عدد صحیح اختیاری، در محدوده ۰ تا ۴٬۲۹۴٬۹۶۷٬۲۹۵
- مهلت زمانی اتصال پس از مشاهده نخستین بسته TCP SYN توسط conntrack.
- timeouts : tcp_syn_recv: عدد صحیح اختیاری، در محدوده ۰ تا ۴٬۲۹۴٬۹۶۷٬۲۹۵
- مهلت زمانی اتصال پس از مشاهده نخستین بسته TCP SYN-ACK توسط conntrack.
- timeouts : tcp_established: عدد صحیح اختیاری، در محدوده ۰ تا ۴٬۲۹۴٬۹۶۷٬۲۹۵
- مهلت زمانی اتصال پس از برقراری کامل اتصال.
- timeouts : tcp_fin_wait: عدد صحیح اختیاری، در محدوده ۰ تا ۴٬۲۹۴٬۹۶۷٬۲۹۵
- مهلت زمانی اتصال پس از مشاهده نخستین بسته TCP FIN توسط conntrack.
- timeouts : tcp_close_wait: عدد صحیح اختیاری، در محدوده ۰ تا ۴٬۲۹۴٬۹۶۷٬۲۹۵
- مهلت زمانی اتصال پس از مشاهده نخستین بسته TCP ACK پس از دریافت بسته TCP FIN. این مهلت زمانی تنها توسط مسیر داده کرنل لینوکس پشتیبانی میشود.
- timeouts : tcp_last_ack: عدد صحیح اختیاری، در محدوده ۰ تا ۴٬۲۹۴٬۹۶۷٬۲۹۵
- مهلت زمانی اتصال پس از مشاهده بستههای TCP FIN توسط conntrack از هر دو جهت. این مهلت زمانی تنها توسط مسیر داده کرنل لینوکس پشتیبانی میشود.
- timeouts : tcp_time_wait: عدد صحیح اختیاری، در محدوده ۰ تا ۴٬۲۹۴٬۹۶۷٬۲۹۵
- مهلت زمانی اتصال پس از مشاهده بسته TCP ACK برای دومین بسته TCP FIN توسط conntrack.
- timeouts : tcp_close: عدد صحیح اختیاری، در محدوده ۰ تا ۴٬۲۹۴٬۹۶۷٬۲۹۵
- مهلت زمانی اتصال پس از مشاهده نخستین بسته TCP RST توسط conntrack.
- timeouts : tcp_syn_sent2: عدد صحیح اختیاری، در محدوده ۰ تا ۴٬۲۹۴٬۹۶۷٬۲۹۵
- مهلت زمانی اتصال هنگامی که تنها یک بسته TCP SYN توسط conntrack از هر دو جهت دیده شده باشد (بازگشایی همزمان یا simultaneous open). این مهلت زمانی تنها توسط مسیر داده کرنل لینوکس پشتیبانی میشود.
- timeouts : tcp_retransmit: عدد صحیح اختیاری، در محدوده ۰ تا ۴٬۲۹۴٬۹۶۷٬۲۹۵
- مهلت زمانی اتصال هنگامی که از حداکثر تعداد ارسالهای مجدد فراتر رود. این مهلت زمانی تنها توسط مسیر داده کرنل لینوکس پشتیبانی میشود.
- timeouts : tcp_unack: عدد صحیح اختیاری، در محدوده ۰ تا ۴٬۲۹۴٬۹۶۷٬۲۹۵
- مهلت زمانی اتصال هنگامی که بستههای غیر SYN اتصالی برقرارشده در حالت رهگیری سست TCP ایجاد کنند. این مهلت زمانی تنها توسط مسیر داده کرنل لینوکس پشتیبانی میشود.
- timeouts : udp_first: عدد صحیح اختیاری، در محدوده ۰ تا ۴٬۲۹۴٬۹۶۷٬۲۹۵
- مهلت زمانی اتصال پس از مشاهده نخستین بسته UDP توسط conntrack. این مهلت زمانی تنها توسط مسیر داده فضای کاربر (userspace datapath) پشتیبانی میشود.
- timeouts : udp_single: عدد صحیح اختیاری، در محدوده ۰ تا ۴٬۲۹۴٬۹۶۷٬۲۹۵
- مهلت زمانی اتصال هنگامی که conntrack تنها بسته UDP را از میزبان مبدأ دیده باشد، اما میزبان مقصد هرگز پاسخی ارسال نکرده باشد.
- timeouts : udp_multiple: عدد صحیح اختیاری، در محدوده ۰ تا ۴٬۲۹۴٬۹۶۷٬۲۹۵
- مهلت زمانی اتصال هنگامی که بستههای UDP در هر دو جهت دیده شده باشند.
- timeouts : icmp_first: عدد صحیح اختیاری، در محدوده ۰ تا ۴٬۲۹۴٬۹۶۷٬۲۹۵
- مهلت زمانی اتصال پس از مشاهده نخستین بسته ICMP توسط conntrack.
- timeouts : icmp_reply: عدد صحیح اختیاری، در محدوده ۰ تا ۴٬۲۹۴٬۹۶۷٬۲۹۵
- مهلت زمانی اتصال هنگامی که بستههای ICMP در هر دو جهت دیده شده باشند. این مهلت زمانی تنها توسط مسیر داده فضای کاربر پشتیبانی میشود.
هدف کلی این ستونها ذیل ستونهای مشترک (Common Columns) در ابتدای این سند توضیح داده شده است.
جدول SSL (SSL TABLE)
پیکربندی اساسال/تیالاس (SSL/TLS) برای یک Open_vSwitch.
چکیده (Summary):
- private_key
- رشته
- certificate
- رشته
- ca_cert
- رشته
- bootstrap_ca_cert
- بولی (boolean)
- ستونهای مشترک (Common Columns):
- external_ids
- نگاشتی از جفتهای رشته-رشته
جزئیات (Details):
- private_key: رشته
- نام یک فایل PEM حاوی کلید خصوصی که به عنوان هویت سوییچ برای اتصالات SSL/TLS به کنترلکننده استفاده میشود.
- certificate: رشته
- نام یک فایل PEM حاوی گواهی، امضاشده توسط مرجع صدور گواهی (CA) مورداستفاده کنترلکننده و مدیر، که کلید خصوصی سوییچ را تایید کرده و یک سوییچ قابل اعتماد را مشخص میسازد.
- ca_cert: رشته
- نام یک فایل PEM حاوی گواهی CA که برای اعتبارسنجی اتصال سوییچ به یک کنترلکننده قابل اعتماد به کار میرود.
- bootstrap_ca_cert: بولی (boolean)
- اگر روی true تنظیم شود، Open vSwitch در نخستین اتصال SSL/TLS خود تلاش خواهد کرد گواهی CA را از کنترلکننده دریافت کرده و آن را در فایل PEM نامبرده ذخیره کند. در صورت موفقیت، بلافاصله اتصال را قطع کرده و مجدداً متصل میشود، و از آن پس تمام اتصالات SSL/TLS باید توسط گواهی امضاشده توسط گواهی CA دریافتشده تایید هویت شوند. این گزینه هنگام دریافت گواهی اولیه CA، اتصال SSL/TLS را در معرض حمله مرد میانی (man-in-the-middle) قرار میدهد. با این حال ممکن است همچنان برای راهاندازی اولیه (bootstrapping) مفید باشد.
هدف کلی این ستونها ذیل ستونهای مشترک (Common Columns) در ابتدای این سند توصیف شده است.
جدول sFlow (sFlow TABLE)
مجموعهای از مقاصد sFlow(R). اسفلو (sFlow) پروتکلی برای نظارت از راه دور بر سوییچها است.
چکیده (Summary):
- agent
- رشته
اختیاری
- header
- عدد صحیح
اختیاری
- polling
- عدد صحیح
اختیاری
- sampling
- عدد صحیح
اختیاری
- targets
- مجموعهای
از ۱ یا چند
رشته
- ستونهای مشترک (Common Columns):
- external_ids
- نگاشتی از جفتهای رشته-رشته
جزئیات (Details):
- agent: رشته اختیاری
- آدرس عامل (agent) را مشخص میکند؛ یعنی آدرس IP که به عنوان منبع دادههای sFlow به گردآورندهها گزارش میشود. این مقدار میتواند یک آدرس IP یا نام یک دستگاه شبکه باشد. در حالت دوم، از آدرس IP آن دستگاه شبکه استفاده میشود.
- در صورت عدم تعیین، دستگاه عامل بر اساس نخستین آدرس مقصد و جدول مسیریابی مشخص میشود. اگر جدول مسیریابی شامل مسیری به مقصد نباشد، آدرس IP به صورت پیشفرض برابر با local_ip در Controller گردآورنده در نظر گرفته میشود.
- اگر نتوان آدرس IP عامل را مشخص کرد، sFlow غیرفعال میشود.
- header: عدد صحیح اختیاری
- تعداد بایتهای یک بسته نمونهبرداریشده برای ارسال به گردآورنده. در صورت عدم تعیین، مقدار پیشفرض 128 بایت است.
- polling: عدد صحیح اختیاری
- نرخ نظرسنجی (polling) بر حسب ثانیه برای ارسال آمار پورت به گردآورنده. در صورت عدم تعیین، مقدار پیشفرض 30 ثانیه است.
- sampling: عدد صحیح اختیاری
- نرخی که بستهها باید با آن نمونهبرداری شده و به گردآورنده ارسال شوند. در صورت عدم تعیین، مقدار پیشفرض 400 است، به این معنی که به طور میانگین از هر 400 بسته، یک بسته به گردآورنده ارسال خواهد شد.
- targets: مجموعهای از ۱ یا چند رشته
- مقاصد sFlow به فرم ip:port.
هدف کلی این ستونها ذیل ستونهای مشترک (Common Columns) در ابتدای این سند توصیف شده است.
جدول IPFIX (IPFIX TABLE)
پیکربندی برای ارسال بستهها به گردآورندههای IPFIX.
آیپیفیکس (IPFIX) پروتکلی است که جزئیات متعددی را درباره جریانها صادر میکند. پیادهسازی IPFIX در Open vSwitch بستهها را با نرخی قابل پیکربندی نمونهبرداری میکند، اطلاعات جریان را از آن بستهها استخراج مینماید، به صورت اختیاری اطلاعات جریان را کش و تجمیع میکند، و نتیجه را به یک یا چند گردآورنده میفرستد.
پروتکل IPFIX در Open vSwitch میتواند به دو شیوه مختلف پیکربندی شود:
- با نمونهبرداری به ازای هر پل (per-bridge sampling)، Open vSwitch نمونهبرداری IPFIX را به طور خودکار روی تمام بستههایی که از یک پل عبور میکنند انجام میدهد. برای پیکربندی نمونهبرداری به ازای هر پل، یک رکورد IPFIX ایجاد کنید و ستون ipfix در جدول Bridge را به آن ارجاع دهید. از جدول Flow_Sample_Collector_Set برای نمونهبرداری به ازای هر پل استفاده نمیشود.
- با نمونهبرداری مبتنی بر جریان (flow-based sampling)، اقدامات sample در جدول جریان OpenFlow نمونهبرداری IPFIX را هدایت میکنند. برای مشاهده توصیف اقدام sample، به ovs-actions(7) مراجعه کنید.
- نمونهبرداری مبتنی بر جریان نیازمند پیکربندی پایگاهداده نیز هست: یک رکورد IPFIX ایجاد کنید که پیکربندی IPFIX را توصیف کند و یک رکورد Flow_Sample_Collector_Set که به Bridge مربوطه (که جدول جریان آن حاوی اقدامات sample است) و به رکورد IPFIX اشاره کند. ستون ipfix در جدول Bridge برای نمونهبرداری مبتنی بر جریان استفاده نمیشود.
چکیده (Summary):
- targets
- مجموعهای
از رشتهها
- cache_active_timeout
- عدد صحیح
اختیاری،
در بازه 0 تا 4,200
- cache_max_flows
- عدد صحیح
اختیاری،
در بازه 0 تا
4,294,967,295
- stats_interval
- عدد صحیح
اختیاری،
در بازه 1 تا 3,600
- template_interval
- عدد صحیح
اختیاری،
در بازه 1 تا 3,600
- other_config : enable-tunnel-sampling
- رشته
اختیاری،
یا true یا false
- other_config : virtual_obs_id
- رشته
اختیاری
- نمونهبرداری به ازای هر پل (Per-Bridge Sampling):
- sampling
- عدد صحیح
اختیاری،
در بازه 1 تا
4,294,967,295
- obs_domain_id
- عدد صحیح
اختیاری،
در بازه 0 تا
4,294,967,295
- obs_point_id
- عدد صحیح
اختیاری،
در بازه 0 تا
4,294,967,295
- other_config : enable-input-sampling
- رشته
اختیاری،
یا true یا false
- other_config : enable-output-sampling
- رشته اختیاری، یا true یا false
- ستونهای مشترک (Common Columns):
- external_ids
- نگاشتی از جفتهای رشته-رشته
جزئیات (Details):
- targets: مجموعهای از رشتهها
- گردآورندههای مقصد IPFIX به فرم ip:port.
- cache_active_timeout: عدد صحیح اختیاری، در بازه 0 تا 4,200
- حداکثر مدتزمان بر حسب ثانیه که یک رکورد جریان IPFIX پیش از ارسال، کش و تجمیع میشود. در صورت عدم تعیین، مقدار پیشفرض 0 است. در صورت 0 بودن، کشسازی غیرفعال میشود.
- cache_max_flows: عدد صحیح اختیاری، در بازه 0 تا 4,294,967,295
- حداکثر تعداد رکوردهای جریان IPFIX که میتوانند همزمان کش شوند. در صورت عدم تعیین، مقدار پیشفرض 0 است. در صورت 0 بودن، کشسازی غیرفعال میشود.
- stats_interval: عدد صحیح اختیاری، در بازه 1 تا 3,600
- فاصله زمانی (بر حسب ثانیه) برای ارسال آمار فرآیند صدور IPFIX مطابق با بخش 4.3 استاندارد IETF RFC 5101.
- مقدار پیشفرض 600 است.
- template_interval: عدد صحیح اختیاری، در بازه 1 تا 3,600
- فاصله زمانی (بر حسب ثانیه) برای ارسال اطلاعات الگوی (Template) پروتکل IPFIX به ازای هر شناسه دامنه مشاهده (Observation Domain ID).
- مقدار پیشفرض 600 است.
- other_config : enable-tunnel-sampling: رشته اختیاری، یا true یا false
- برای فعالسازی نمونهبرداری و گزارش چندتاییهای ۷ گانه (7-tuples) هدر تونل در رکوردهای جریان IPFIX، روی true تنظیم کنید. نمونهبرداری تونل به طور پیشفرض فعال است.
- نهادهای سازمانی زیر اطلاعات تونل نمونهبرداریشده را گزارش میدهند:
- tunnelType:
- شناسه: 891، و شناسه سازمانی 6876 (VMware).
- نوع: عدد صحیح ۸ بیتی بدون علامت.
- معناشناسی نوع داده: شناسه (identifier).
- توضیحات: شناسه نوع کپسولهسازی شبکه همپوشان لایه ۲ شبکه: 0x01 VxLAN، 0x02 GRE، 0x07 GENEVE.
- tunnelKey:
- شناسه: 892، و شناسه سازمانی 6876 (VMware).
- نوع: آرایه بایت (octetarray) با طول متغیر.
- معناشناسی نوع داده: شناسه (identifier).
- توضیحات: کلیدی که برای شناسایی یک جریان ترافیکی منفرد در یک تونل VxLAN (VNI ۲۴ بیتی)، GENEVE (VNI ۲۴ بیتی) یا GRE (کلید ۳۲ بیتی) استفاده میشود. این کلید در این آرایه بایت به صورت یک شناسه عدد صحیح ۳ یا ۴ بایتی با ترتیب بایت شبکه (network byte order) کدگذاری میشود.
- tunnelSourceIPv4Address:
- شناسه: 893، و شناسه سازمانی 6876 (VMware).
- نوع: عدد صحیح ۳۲ بیتی بدون علامت.
- معناشناسی نوع داده: شناسه (identifier).
- توضیحات: آدرس IPv4 مبدا در هدر بسته IP تونل.
- tunnelDestinationIPv4Address:
- شناسه: 894، و شناسه سازمانی 6876 (VMware).
- نوع: عدد صحیح ۳۲ بیتی بدون علامت.
- معناشناسی نوع داده: شناسه (identifier).
- توضیحات: آدرس IPv4 مقصد در هدر بسته IP تونل.
- tunnelProtocolIdentifier:
- شناسه: 895، و شناسه سازمانی 6876 (VMware).
- نوع: عدد صحیح ۸ بیتی بدون علامت.
- معناشناسی نوع داده: شناسه (identifier).
- توضیحات: مقدار شماره پروتکل در هدر بسته IP تونل. شماره پروتکل نوع بار مفید (payload) بسته IP تونل را مشخص میکند.
- tunnelSourceTransportPort:
- شناسه: 896، و شناسه سازمانی 6876 (VMware).
- نوع: عدد صحیح ۱۶ بیتی بدون علامت.
- معناشناسی نوع داده: شناسه (identifier).
- توضیحات: شناسه پورت مبدا در هدر انتقال (transport) تونل. برای پروتکلهای انتقال UDP، TCP و SCTP، این مقدار همان شماره پورت مبدا ارائهشده در هدر مربوطه است.
- tunnelDestinationTransportPort:
- شناسه: 897، و شناسه سازمانی 6876 (VMware).
- نوع: عدد صحیح ۱۶ بیتی بدون علامت.
- معناشناسی نوع داده: شناسه (identifier).
- توضیحات: شناسه پورت مقصد در هدر انتقال (transport) تونل. برای پروتکلهای انتقال UDP، TCP و SCTP، این مقدار همان شماره پورت مقصد ارائهشده در هدر مربوطه است.
- پیش از نسخه 2.5.90 برنامه Open vSwitch، گزینه other_config:enable-tunnel-sampling فقط در نمونهبرداری به ازای هر پل پشتیبانی میشد و در غیر این صورت نادیده گرفته میشد. نسخه 2.5.90 و بالاتر Open vSwitch از other_config:enable-tunnel-sampling برای نمونهبرداری به ازای هر پل و به ازای هر جریان پشتیبانی میکنند.
- other_config : virtual_obs_id: رشته اختیاری
- رشتهای که به همراه هر رکورد جریان IPFIX ارسال میشود. کاربرد موردنظر آن برای «شناسه مشاهده مجازی» (virtual observation ID)، شناسهای برای یک نقطه مشاهده مجازی است که در یک شبکه مجازی به صورت محلی یکتا است. این مقدار مکانی در شبکه مجازی را که بستههای IP در آن قابل مشاهده هستند توصیف میکند. حداکثر طول آن 254 بایت است. در صورت عدم تعیین، این فیلد از رکورد جریان IPFIX حذف میشود.
- نهاد سازمانی زیر شناسه مشاهده مجازی مشخصشده را گزارش میدهد:
- virtualObsID:
- شناسه: 898، و شناسه سازمانی 6876 (VMware).
- نوع: رشته با طول متغیر.
- معناشناسی نوع داده: شناسه (identifier).
- توضیحات: یک شناسه دامنه مشاهده مجازی که در یک شبکه مجازی به صورت محلی یکتا است.
- این قابلیت در نسخه 2.5.90 برنامه Open vSwitch معرفی شد.
این مقادیر فقط بر نمونهبرداری به ازای هر پل تاثیر میگذارند. برای توصیف تفاوتهای میان نمونهبرداری به ازای هر پل و مبتنی بر جریان، به بالا مراجعه کنید.
- sampling: عدد صحیح اختیاری، در بازه 1 تا 4,294,967,295
- نرخی که بستهها باید با آن نمونهبرداری شده و به هر گردآورنده مقصد ارسال شوند. در صورت عدم تعیین، مقدار پیشفرض 400 است، به این معنی که به طور میانگین از هر 400 بسته، یک بسته به هر گردآورنده مقصد ارسال خواهد شد.
- obs_domain_id: عدد صحیح اختیاری، در بازه 0 تا 4,294,967,295
- شناسه دامنه مشاهده (Observation Domain ID) پروتکل IPFIX که در هر بسته IPFIX ارسال میشود. در صورت عدم تعیین، مقدار پیشفرض 0 است.
- obs_point_id: عدد صحیح اختیاری، در بازه 0 تا 4,294,967,295
- شناسه نقطه مشاهده (Observation Point ID) پروتکل IPFIX که در هر رکورد جریان IPFIX ارسال میشود. در صورت عدم تعیین، مقدار پیشفرض 0 است.
- other_config : enable-input-sampling: رشته اختیاری، یا true یا false
- به طور پیشفرض، Open vSwitch از جریانها در ورودی پورت پل نمونهبرداری کرده و آنها را در رکوردهای جریان IPFIX گزارش میدهد. این ستون را روی false تنظیم کنید تا نمونهبرداری ورودی غیرفعال شود.
- other_config : enable-output-sampling: رشته اختیاری، یا true یا false
- به طور پیشفرض، Open vSwitch از جریانها در خروجی پورت پل نمونهبرداری کرده و آنها را در رکوردهای جریان IPFIX گزارش میدهد. این ستون را روی false تنظیم کنید تا نمونهبرداری خروجی غیرفعال شود.
هدف کلی این ستونها ذیل ستونهای مشترک (Common Columns) در ابتدای این سند توصیف شده است.
جدول Flow_Sample_Collector_Set (Flow_Sample_Collector_Set TABLE)
مجموعهای از گردآورندههای نمونهبرداری IPFIX یا محلی برای نمونههای بستهای که توسط اقدامات sample در OpenFlow ایجاد شدهاند.
اگر ستون ipfix حاوی ارجاعی به یک مدخل معتبر IPFIX باشد، نمونهها از طریق IPFIX ارسال خواهند شد. این سازوکار به عنوان نمونهبرداری IPFIX مبتنی بر جریان در برابر نمونهبرداری مبتنی بر پل شناخته میشود (برای شرح این دو شیوه به جدول IPFIX مراجعه کنید).
اگر ستون local_group_id حاوی یک عدد صحیح باشد و مسیر داده (datapath) در حال اجرا از ارسال نمونه محلی پشتیبانی کند، بستهها به یک گردآورنده نمونه محلی ارسال میشوند. نمونهها حاوی شماره گروه مشخصشده توسط local_group_id خواهند بود که به شناسایی منبع آنها کمک میکند، و همچنین یک کوکی ۶۴ بیتی ناشی از الحاق observation_domain_id و observation_point_id با ترتیب بایت شبکه (network byte order). نحوه ارسال نمونه و در دسترس قرار گرفتن آن برای گردآورندههای محلی وابسته به مسیر داده است. در حال حاضر تنها مسیر داده کرنل لینوکس از نمونهبرداری محلی پشتیبانی میکند که از طریق ارسال بسته به گروه چندپخشی نتلینک psample پیادهسازی شده است.
نکته: هر دو گزینه local_group_id و ipfix را میتوان به طور همزمان پیکربندی کرد.
چکیده (Summary):
- id
- عدد صحیح،
در بازه 0 تا
4,294,967,295
- bridge
- Bridge
- ipfix
- IPFIX اختیاری
- local_group_id
- عدد صحیح
اختیاری،
در بازه 0 تا
4,294,967,295
- ستونهای مشترک (Common Columns):
- external_ids
- نگاشتی از جفتهای رشته-رشته
جزئیات (Details):
- id: عدد صحیح، در بازه 0 تا 4,294,967,295
- شناسه این مجموعه گردآورنده، یکتا میان مجموعههای گردآورنده پل، برای استفاده به عنوان collector_set_id در اقدامات sample در OpenFlow.
- bridge: Bridge
- پلی که میتوان اقدامات sample در OpenFlow را به آن افزود تا نمونههای بسته به این مجموعه از گردآورندههای IPFIX ارسال شوند.
- ipfix: IPFIX اختیاری
- پیکربندی مجموعه گردآورندههای IPFIX جهت ارسال یک رکورد جریان به ازای هر بسته نمونهبرداریشده.
- local_group_id: عدد صحیح اختیاری، در بازه 0 تا 4,294,967,295
- پیکربندی شناسه گروه نمونه برای استفاده در نمونهبرداری محلی.
هدف کلی این ستونها ذیل ستونهای مشترک (Common Columns) در ابتدای این سند توصیف شده است.
جدول AutoAttach (AutoAttach TABLE)
پیکربندی اتصال خودکار (Auto Attach) درون یک پل. پیشنویس استاندارد IETF Auto-Attach SPBM روشی فشرده را برای استفاده از پروتکل کشف لایه پیوند IEEE 802.1AB (LLDP) همراه با یک شبکه پلبندی کوتاهترین مسیر IEEE 802.1aq (SPB) توصیف میکند تا به طور خودکار دستگاههای شبکه را به سرویسهای مجزا در یک شبکه SPB متصل نماید. هدف در اینجا این است که به برنامهها و دستگاههای شبکهای که از OVS استفاده میکنند امکان داده شود تا به آسانی از ویژگیهای ارائهشده توسط شبکههای استاندارد صنعتی SPB بهرهمند شوند.
اتصال خودکار (Auto Attach یا AA) از پروتکل LLDP برای برقراری ارتباط میان یک کلاینت اتصال خودکار (AAC) و سرور اتصال خودکار (AAS) با اتصال مستقیم استفاده میکند. پروتکل LLDP گسترش یافته تا دو چندتایی جدید نوع-طول-مقدار (TLVs) را اضافه کند. نخستین TLV جدید از کشف مداوم طرفهای ارتباطی AA متصل به صورت مستقیم پشتیبانی میکند. اتصال خودکار با ارسال منظم TLVهای کشف AA میان کلاینت AA و سرور AA عمل میکند. با تبادل این پیامهای کشف، هر دو بخش AAC و AAS از نام سیستم و توضیحات سیستم طرف مقابل خود مطلع میشوند. در چارچوب OVS، سیستم OVS به عنوان کلاینت AA عمل میکند و سرور AA بر روی سوییچی در لبه شبکه SPB مستقر است.
پس از تکمیل کشف AA، کلاینت AAC از دومین TLV جدید برای ارسال نگاشتهای شناسه از AAC به AAS استفاده میکند. یکی از ویژگیهای اصلی Auto Attach تسهیل نگاشت VLANهای تعریفشده در خارج از شبکه SPB به شناسههای سرویس (ISIDs) تعریفشده در داخل شبکه SPB است. با انجام این کار، VLANهای خارجی مجزا میتوانند به سرویسهای مشخصی در شبکه SPB نگاشت شوند. این نگاشتهای شناسه VLAN به ISID را میتوان با استفاده از گزینههای جدید اضافهشده به دستور ovs-vsctl به صورت محلی پیکربندی و مدیریت کرد.
قابلیت Auto Attach در OVS پیادهسازی کاملی از پروتکل LLDP ارائه نمیدهد. پشتیبانی از TLVهای اجباری مطابق با تعریف استاندارد LLDP و پشتیبانی از الحاقات TLV مربوط به AA فراهم شده است. پشتیبانی از پروتکل LLDP در OVS را میتوان پورتبهپورت فعال یا غیرفعال کرد. پشتیبانی از LLDP به طور پیشفرض غیرفعال است.
چکیده (Summary):
- system_name
- رشته
- system_description
- رشته
- mappings
- نگاشتی از جفتهای عدد صحیح-عدد صحیح، کلید در بازه 0 تا 16,777,215، مقدار در بازه 0 تا 4,095
جزئیات (Details):
- system_name: رشته
- رشته system_name در پیامهای LLDP صادر میشود. این رشته باید پل را در شبکه به طور یکتا مشخص کند.
- system_description: رشته
- رشته system_description در پیامهای LLDP صادر میشود. این رشته باید نوع نرمافزار و سختافزار را شرح دهد.
- mappings: نگاشتی از جفتهای عدد صحیح-عدد صحیح، کلید در بازه 0 تا 16,777,215، مقدار در بازه 0 تا 4,095
- نگاشتی از شناسه سرویس مجزای (ISID) شبکه SPB به شناسه VLAN.
| DB Schema 8.8.0 | Open vSwitch 4.0.0 |