آموزش تنظیمات کنترلر فلادلایت

کنترل کننده Floodlight

آموزش تنظیمات کنترلر فلادلایت

سلام اس‌دی‌ان سنترالی‌های عزیز،

در این آموزش قصد داریم فایل تنظیمات کنترلر فلادلایت (Floodlight) را به طور کامل تشریح کنیم. تمامی تنظیمات کنترلر فلادلایت در فایلی به آدرس src/main/resources/floodlightdefault.properties قرار دارد. نگاهی به محتوای این فایل می‌اندازیم:

floodlight.modules=\
net.floodlightcontroller.jython.JythonDebugInterface,\
net.floodlightcontroller.storage.memory.MemoryStorageSource,\
net.floodlightcontroller.core.internal.FloodlightProvider,\
net.floodlightcontroller.threadpool.ThreadPool,\
net.floodlightcontroller.debugcounter.DebugCounterServiceImpl,\
net.floodlightcontroller.perfmon.PktInProcessingTime,\
net.floodlightcontroller.staticentry.StaticEntryPusher,\
net.floodlightcontroller.restserver.RestApiServer,\
net.floodlightcontroller.topology.TopologyManager,\
net.floodlightcontroller.routing.RoutingManager,\
net.floodlightcontroller.forwarding.Forwarding,\
net.floodlightcontroller.linkdiscovery.internal.LinkDiscoveryManager,\
net.floodlightcontroller.ui.web.StaticWebRoutable,\
net.floodlightcontroller.loadbalancer.LoadBalancer,\
net.floodlightcontroller.firewall.Firewall,\
net.floodlightcontroller.simpleft.FT,\
net.floodlightcontroller.devicemanager.internal.DeviceManagerImpl,\
net.floodlightcontroller.accesscontrollist.ACL,\
net.floodlightcontroller.statistics.StatisticsCollector
org.sdnplatform.sync.internal.SyncManager.authScheme=CHALLENGE_RESPONSE
org.sdnplatform.sync.internal.SyncManager.keyStorePath=/etc/floodlight/key2.jceks
org.sdnplatform.sync.internal.SyncManager.dbPath=/var/lib/floodlight/
org.sdnplatform.sync.internal.SyncManager.keyStorePassword=PassWord
org.sdnplatform.sync.internal.SyncManager.port=6009
org.sdnplatform.sync.internal.SyncManager.thisNodeId=1
org.sdnplatform.sync.internal.SyncManager.persistenceEnabled=FALSE
org.sdnplatform.sync.internal.SyncManager.nodes=[\
{"nodeId": 1, "domainId": 1, "hostname": "192.168.1.100", "port": 6642},\
{"nodeId": 2, "domainId": 1, "hostname": "192.168.1.100", "port": 6643}\
]
net.floodlightcontroller.forwarding.Forwarding.match=in-port, vlan, mac, ip, transport, flag
net.floodlightcontroller.forwarding.Forwarding.detailed-match=src-mac, dst-mac, src-ip, dst-ip, src-transport, dst-transport
net.floodlightcontroller.forwarding.Forwarding.flood-arp=NO
net.floodlightcontroller.forwarding.Forwarding.idle-timeout=5
net.floodlightcontroller.forwarding.Forwarding.set-send-flow-rem-flag=FALSE
net.floodlightcontroller.forwarding.Forwarding.remove-flows-on-link-or-port-down=TRUE
net.floodlightcontroller.core.internal.FloodlightProvider.role=ACTIVE
net.floodlightcontroller.core.internal.FloodlightProvider.controllerId=1
net.floodlightcontroller.linkdiscovery.internal.LinkDiscoveryManager.latency-history-size=10
net.floodlightcontroller.linkdiscovery.internal.LinkDiscoveryManager.latency-update-threshold=0.5
net.floodlightcontroller.core.internal.FloodlightProvider.shutdownOnTransitionToStandby=true
net.floodlightcontroller.core.internal.OFSwitchManager.openFlowPort=6653
net.floodlightcontroller.core.internal.OFSwitchManager.openFlowAddresses=0.0.0.0
net.floodlightcontroller.core.internal.OFSwitchManager.workerThreads=16
net.floodlightcontroller.core.internal.OFSwitchManager.bossThreads=1
net.floodlightcontroller.core.internal.OFSwitchManager.connectionBacklog=1000
net.floodlightcontroller.core.internal.OFSwitchManager.connectionTimeoutMs=60000
net.floodlightcontroller.core.internal.OFSwitchManager.defaultMaxTablesToReceiveTableMissFlow=1
net.floodlightcontroller.core.internal.OFSwitchManager.maxTablesToReceiveTableMissFlowPerDpid={"00:00:00:00:00:00:00:01":"1","2":"1"}
net.floodlightcontroller.core.internal.OFSwitchManager.clearTablesOnInitialHandshakeAsMaster=YES
net.floodlightcontroller.core.internal.OFSwitchManager.clearTablesOnEachTransitionToMaster=YES
net.floodlightcontroller.core.internal.OFSwitchManager.keyStorePath=/path/to.jecks
net.floodlightcontroller.core.internal.OFSwitchManager.keyStorePassword=PassFL
net.floodlightcontroller.core.internal.OFSwitchManager.useSsl=NO
net.floodlightcontroller.core.internal.OFSwitchManager.supportedOpenFlowVersions=1.0, 1.1, 1.2, 1.3, 1.4, 1.5
net.floodlightcontroller.core.internal.OFSwitchManager.switchesInitialState={"00:00:00:00:00:00:00:01":"ROLE_MASTER","00:00:00:00:00:00:00:02":"ROLE_MASTER", "00:00:00:00:00:00:00:03":"ROLE_MASTER", "00:00:00:00:00:00:00:04":"ROLE_MASTER","00:00:00:00:00:00:00:05":"ROLE_MASTER"}
net.floodlightcontroller.restserver.RestApiServer.keyStorePath=/path/to.jceks
net.floodlightcontroller.restserver.RestApiServer.keyStorePassword=Password
net.floodlightcontroller.restserver.RestApiServer.httpsNeedClientAuthentication=NO
net.floodlightcontroller.restserver.RestApiServer.useHttps=NO
net.floodlightcontroller.restserver.RestApiServer.useHttp=YES
net.floodlightcontroller.restserver.RestApiServer.httpsPort=8081
net.floodlightcontroller.restserver.RestApiServer.httpPort=8080
net.floodlightcontroller.restserver.RestApiServer.accessControlAllowAllOrigins=TRUE
net.floodlightcontroller.statistics.StatisticsCollector.enable=FALSE
net.floodlightcontroller.statistics.StatisticsCollector.collectionIntervalPortStatsSeconds=10
net.floodlightcontroller.topology.TopologyManager.pathMetric=latency
net.floodlightcontroller.topology.TopologyManager.maxPathsToCompute=3

 

۱. رجیستر کردن ماژول

رجیستر کردن یک ماژول به معنای ابراز تمایل برای اجرای یک ماژول در حین شروع کار کنترلر می‌باشد. در خط ۱ تا ۲۰ ماژول‌هایی که در کنترلر فلادلایت می‌خواهیم رجیستر کنیم نوشته می‌شود. این ماژول‌ها شامل مواردی همچون Forwarding، Firewall، StatisticsCollector و غیره می‌شود. دقت کنید که نام کامل ماژول با ساختار زیر باید در  فایل تنظیمات نوشته شود:

<نام کلاس>.<نام پکیـــــــــــــــــــــــــــــــــــــــــج>

به طور مثال:

net.floodlightcontroller.forwarding.Forwarding

تا اینجای کار را تمرین کنید. در قسمت‌های بعدی سایر موارد نیز توضیح داده می‌شود. سوالاتتان را در انجمن مطرح کنید.

 

(ادامه، مورخ ۱۳۹۶/۰۵/۰۶)

۲. تغییر پورت پیش‌فرض OpenFlow

در کنترلر فلادلایت و اکثر کنترلرهای SDN، پورت پیش‌فرض شماره ۶۶۵۳ می‌باشد که این پورت توسط IANA (خوانده می‌شود “آیانا”) برای OpenFlow استاندارد شده است

با این وجود در صورت تمایل می‌توانید این پورت را به عدد دیگری تغییر دهید. بدین منظور در خط ۴۳ می‌توانید عدد ۶۶۵۳ را به عدد مدنظرتان تغییر دهید.

به طور مثال:

net.floodlightcontroller.core.internal.OFSwitchManager.openFlowPort=6654

 

 

 

 

 

 

(1) دیدگاه

  • میترا پاسخ

    داخل فلودلایت من qos وجود داره، من چطور میتونم این ماژول رو برا کدهام استفاده کنم و اون رو به کد ها و توپولوژیم اعمال کنم؟
    چون ظاهرا یه سری قابلیت ها و ماژول ها وجود داره که برای استفاده باید ماژول مورد نظر رو فعال کرد و خود به خود فعال نیستن
    ممنون و سپاسگذار

    ۲۷ تیر ۱۳۹۶ در ۱:۵۴ ق.ظ

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *