Manual Chapter :
Configuring MQTT MRF Functionality
Applies To:
Show Versions
BIG-IP LTM
- 17.5.0, 17.1.2, 17.1.1, 17.1.0, 17.0.0, 16.1.4, 15.1.10, 15.1.9
Configuring MQTT MRF Functionality
Overview: Creating an MQTT MRF configuration
You can use a Message Queuing Telemetry Transport (MQTT) Message Routing
Framework (MRF) configuration to optimize performance and bandwidth. When creating a
MQTT MRF configuration, in order to use the MRF proxy, you need to configure an MQTT
Session profile. You create an MQTT Session profile to customize settings for
client-side and server-side MQTT connection properties. These are attached to a virtual
server that controls a client-side session, or attached via an optional Transport Config
profile to control a server-side session.
The high performance MRF is a protocol independent extension to the BIG-IP system
hudproxy to support message based protocols. It is designed to deliver messages to the
best route using protocol specific routing helper functions.
Complete these tasks to configure the BIG-IP system to use MQTT MRF
functionality.
Task list
Create an MQTT monitor
Create a pool
Create an MQTT Session profile
Optional: Create a MQTT Transport Config profile
Create a MQTT Peer profile
Create an MQTT Static Route profile
Create an MQTT Router profile
Create a virtual server
Create an MQTT monitor
You can create an MQTT monitor to monitor MQTT
brokers that are configured as pool members in an LTM pool.
- On the Main tab, click.The Monitors List screen opens.
- ClickCreate.The New Monitor screen opens.
- In theNamefield, type a name for the monitor.
- From theTypelist, selectMQTT.The screen refreshes, and displays the configuration options for theMQTTmonitor type.
- From theConfigurationlist, selectAdvanced.This selection makes it possible for you to modify additional default settings.
- In theIntervalfield, type a number that indicates, in seconds, how frequently the system issues the monitor check.The default is5seconds.
- To specify a different interval for health checking, from theUp Intervallist, selectEnabled, and, in theUp Intervalfield, type the number of seconds for the interval.The default isDisabled.
- In theTime Until Upfield, type the number of seconds to wait after a resource first responds correctly to the monitor before setting the resource to up.The default is0seconds.
- In theTimeoutfield, type the number of seconds that the target has in which to respond to the monitor request.The default is16seconds.
- To specify that you must manually re-enable the resource after an unsuccessful monitor check, forManual Resume, selectYes.The default isNo.
- From theMQTT Versionlist, select the protocol version that the monitor will use to communicate with the monitoring object.The default is3.1.1.
- In theClient IDfield, type the Client ID that the monitor will send to communicate with the monitoring object.
- If the monitored object requires authentication, type aUser Name.
- If the monitored target requires authentication, type aPassword.
- In theAlias Addressfield, type an alias IP address for the monitor to check, on behalf of the pools or pool members with which the monitor is associated.The default is* All Addresses.
- In theAlias Service Portfield, type an alias port or, from theAlias Service Portlist, select a service for the monitor to check, on behalf of the pools or pool members with which the monitor is associated.The default is* All Ports.
- ClickFinished.
Create a pool
Before you can assign an MQTT health monitor to a pool, you need to create the MQTT
monitor.
You can create a pool of servers that you can
group together to receive and process traffic. After the pool is created, you can
associate the pool with a virtual server.
- On the Main tab, click.The Pool List screen opens.
- ClickCreate.The New Pool screen opens.
- In theNamefield, type a unique name for the pool.
- For theHealth Monitorssetting, select an MQTT health monitor from theAvailablefield, and move it to theActivefield.
- For each pool member, in theNew Memberssetting, select one of the options, and then follow the steps to configure the applicable settings.OptionStepsNew Node
- In theNode Namefield, type a name for the node portion of the pool member.
- In theAddressfield, type the IP address of the server.
- For theService Portsetting, type one of the following port numbers, or select one of the following services from the list.Port NumberService Name1883MQTT. The Internet Assigned Numbers Authority (IANA) registered port for MQTT service.8883MQTT-TLS. The IANA registered port for secure MQTT service over a Transport Layer Security (TLS) network.
- ClickAdd.
New FQDN Node- In theNode Namefield, type a name for the node portion of the pool member.
- In theFQDNfield, type the FQDN of the server.To use FQDNs instead of IP addresses, you should still type at least one IP address. Typing one IP address ensures that the system can find a pool member if a DNS server is not available.
- For theService Portsetting, type one of the following port numbers, or select one of the following services from the list.Port NumberService Name1883MQTT. The Internet Assigned Numbers Authority (IANA) registered port for MQTT service.8883MQTT-TLS. The IANA registered port for secure MQTT service over a Transport Layer Security (TLS) network.
- From theAuto Populatelist, selectEnabledto automatically create ephemeral nodes, using the IP addresses returned by the resolution of a DNS query for the pool member defined by the FQDN.
- ClickAdd.
- ClickFinished.The screen refreshes, and you see the new pool in the Pool list.
Create an MQTT
Session profile
You can create an MQTT Session profile to customize settings for client-side and server-side
MQTT connection properties.
- On the Main tab, click.The MQTT list screen opens.
- ClickCreate.The New MQTT Session profile screen opens.
- In theNamefield, type a unique name for the MQTT session profile.
- From theParent Profilelist, select a profile from which the new profile inherits properties.
- Select theCustomcheck box.
- In the Settings area, for theClient ID Prefixfield, type a prefix to add to theclient-idfor the server-side connection.
- For theKeepalive Intervalsetting, retain the default, or type a value for theMQTT CONNECTmessage on the server-side connection.The default is60seconds.
- If you want to use peered client-side and server-side connections, select thePeered Session Modecheck box.The default is not to use peered connection (the checkbox is cleared); the BIG-IP system uses the MQTT message routing.
- In theProxy Topic Prefixfield, type a prefix to add to the MQTT topics sent on the server-side connection.
- From theClient Will Handling Modelist:
- To disable forwarding of the client will message, selectIgnore.
- To control thewillaction for the ungraceful shutdown of the client-side connection, retain the default.
The default isSend-Local-Copy. - From theServer Will Handling Modelist:
- To exclude the server side connection, selectIgnore.
- To control thewillaction for the ungraceful shutdown of the server-side connection, retain the default.
The default isCopy-From-Client. - ClickFinished.The screen refreshes, and you see the new MQTT session profile in the MQTT list.
Optional: Create a MQTT Transport Config profile
You can create an MQTT Transport Config
profile to configure server-side connection attributes.
- On the Main tab, click.The MQTT list screen opens.
- ClickTransport Config.The Transport Config list screen opens.
- ClickCreate.The New Transport Config screen opens.
- In theNamefield, type a unique name for the Transport Config profile.
- For theProfilessetting, select the profile(s) you want from theAvailablelist, and move it to theSelectedfield.
- For theiRulessetting, select the name of the server-side iRule from theAvailablelist, and move it to theSelectedlist.
- Retain the default settings for the remaining settings in the Configuration area.
- ClickFinished.The screen refreshes, and you see the new Transport Config profile in the Transport Config list.
Create a MQTT Peer profile
Before you can create a MQTT Peer profile, first
verify that you have created a pool and a MQTT Transport Config profile.
You can create a MQTT Peer profile to specify a
pool of servers and a Transport Config to use for the pool.
- On the Main tab, click.The MQTT list screen opens.
- ClickPeers.The Peers list screen opens.
- ClickCreate.The New Peer screen opens.
- In theNamefield, type a unique name for the Peer profile.
- From thePoollist, select the name of the pool you created previously.
- From theTransport Configlist, select the name of the Transport Config you created previously.
- ClickFinished.The screen refreshes, and you see the new Peer profile in the Peers list.
Create an MQTT Static Route profile
Before you can create an MQTT Static Route
profile, verify you have created a virtual server and a MQTT Peer profile.
You can create an MQTT Static Route profile
to create a route to the peer for traffic coming to a virtual server.
- On the Main tab, click.The MQTT list screen opens.
- ClickStatic Routes.The Static Routes list screen opens.
- ClickCreate.The New Route screen opens.
- In theNamefield, type a unique name for the Route profile.
- From theVirtual Serverlist, select the name of the virtual server you created previously.
- From thePeerlist, select the name of a peer you created previously.
- ClickFinished.The screen refreshes, and you see the new Route profile in the Static Routes list.
Create an MQTT
Router profile
Before you can create an MQTT Router profile,
verify you have created a MQTT Static Route profile.
You can create an MQTT Router profile to select a
static route.
- On the Main tab, click.The MQTT list screen opens.
- On the menu bar, clickRouter Profiles.The Router Profiles list screen opens.
- ClickCreate.The New MQTT Session profile screen opens.
- In theNamefield, type a unique name for the Router profile.
- Configure settings as needed.
- From theStatic Routelist, select the name of a static route you created previously.
- ClickFinished.The screen refreshes, and you see the new Router profile in the Router Profiles list.
Create a virtual server for MQTT
Before creating a virtual server, verify that you have created the pool to which you
want this virtual server to send traffic.
When you create a virtual server, you specify a
destination IP address and service port. All other settings on the virtual server have
default values. You can change the default values of any settings to suit your needs.
- On the Main tab, click.The Virtual Server List screen opens.
- ClickCreate.The New Virtual Server screen opens.
- In theNamefield, type a unique name for the virtual server.
- From theTypelist, for the virtual type, selectMessage Routing.
- In theDestination Address/Maskfield:
- If you want to specify a single IP address, confirm that theHostbutton is selected, and type the IP address in CIDR format.
- If you want to specify multiple IP addresses, select theAddress Listbutton, and confirm that the address list that you previously created appears in the box.
The supported format is address/prefix, where the prefix length is in bits. For example, an IPv4 address/prefix is10.0.0.1or10.0.0.0/24, and an IPv6 address/prefix isffe1::0020/64or2001:ed8:77b5:2:10:10:100:42/64. When you use an IPv4 address without specifying a prefix, the BIG-IP system automatically uses a/32prefix.The IP address or addresses for this field must be on the same subnet as the external self-IP address. - In theService Portfield, type one of these two port numbers, or select one of the two services from the list.Port NumberService Name1883MQTT. The Internet Assigned Numbers Authority (IANA) registered port for MQTT service.8883MQTT-TLS. The IANA registered port for secure MQTT service over a Transport Layer Security (TLS) network.
- In theConfigurationlist, retain the default,Basic.
- For theSSL Profile (Client)setting, from theAvailablelist, select the name of the Client SSL profile you previously created and move the name to theSelectedlist.
- From theApplication Protocollist, selectMQTT.
- From theSession Profilelist, select the name of a MQTT Session profile that you created previously.
- From theRouter Profilelist, select the name of a MQTT Router profile that you created previously.
- Configure any other settings that you need.
- In the Resources area, for theiRulessetting, from theAvailablelist, select the name of the iRule that you want to assign, and move the name into theEnabledlist.
- ClickFinished.
You now have a virtual server that listens for application traffic and acts according
to the values configured within the virtual server.