Protocols

All load balancers must define the protocol of the service which is being load balanced. The protocol selection should be based on the protocol of the back-end nodes. When configuring a load balancer, the default port for the given protocol is selected unless otherwise specified.

Note

  • UDP-Based protocols (DNS_UDP, UDP, and UDP_STREAM) have the following limitations:

    • They are not capable of using the Health Monitor features.

    • Also, SSL Termination is unavailable when using UDP-based ports.

  • Changing the protocol for a load balancer will disable session persistence.

Table. Load balancing protocols

Name

Description

DNS_TCP

This protocol works with IPv6 and allows your DNS server to receive traffic using TCP port 53.

DNS_UDP

This protocol works with IPv6 and allows your DNS server to receive traffic using UDP port 53.

FTP

The File Transfer Protocol defines how files are transported over the Internet. It is typically used when downloading or uploading files to or from web servers.

HTTP

The Hypertext Transfer Protocol defines how communications occur on the Internet between clients and web servers. For example, if you request a web page in your browser, HTTP defines how the web server fetches the page and returns it your browser.

HTTPS

The Hypertext Transfer Protocol over Secure Socket Layer (SSL) provides encrypted communication over the Internet. It securely verifies the authenticity of the web server you are communicating with.

IMAPS

The Internet Message Application Protocol over Secure Socket Layer (SSL) defines how an email client, such as Microsoft Outlook, retrieves and transfers email messages with a mail server.

IMAPv2

Version 2 of IMAPS.

IMAPv3

Version 3 of IMAPS.

IMAPv4

Version 4, the current version of IMAPS.

LDAP

The Lightweight Directory Access Protocol provides access to distributed directory information services over the Internet. This protocol is typically used to access a large set of hierarchical records, such as corporate email or a telephone directory.

LDAPS

The Lightweight Directory Access Protocol over Secure Socket Layer (SSL).

MYSQL

This protocol allows communication with MySQL, an open source database management system.

POP3

The Post Office Protocol is one of the two most common protocols for communication between email clients and email servers. Version 3 is the current standard of POP.

POP3S

Post Office Protocol over Secure Socket Layer.

SFTP

The SSH File Transfer Protocol is a secure file transfer and management protocol. This protocol assumes the files are using a secure channel, such as SSH, and that the identity of the client is available to the protocol.

SMTP

The Simple Mail Transfer Protocol is used by electronic mail servers to send and receive email messages. Email clients use this protocol to relay messages to another computer or web server, but use IMAP or POP to send and receive messages.

TCP

The Transmission Control Protocol is a part of the Transport Layer protocol and is one of the core protocols of the Internet Protocol Suite. It provides a reliable, ordered delivery of a stream of bytes from one program on a computer to another program on another computer. Applications that require an ordered and reliable delivery of packets use this protocol.

TCP_CLIE (TCP_CLIENT_ FIRST)

This protocol is similar to TCP, but is more efficient when a client is expected to write the data first.

TCP_STREAM

TCP Streaming allows either the client or server to send the first message when a connection is established. This option is for protocols where there is no request-response semantic. Either side of the connection can write the first message, with no response being necessarily required or expected.

UDP

The User Datagram Protocol provides a datagram service that emphasizes speed over reliability, It works well with applications that provide security through other measures.

UDP_STRE (UDP_STREAM)

This protocol is designed to stream media over networks and is built on top of UDP.

List load balancing protocols

GET /v1.0/{account}/loadbalancers/protocols

Lists supported load balancing protocols.

The following table shows the possible response codes for this operation:

Response Code

Name

Description

200

Success

Request succeeded.

400

Bad Request

The request is missing one or more elements, or the values of some elements are invalid.

401

Unauthorized

You are not authorized to complete this operation. This error can occur if the request is submitted with an invalid authentication token.

404

Not Found

The requested item was not found.

413

Over Limit

The number of items returned is above the allowed limit.

422

ImmutableEntity

This fault is returned when a user attempts to modify an item that is not currently in a state that allows modification. For example, load balancers in a status of PENDING_UPDATE,BUILD, or DELETED may not be modified.

500

Load Balancer Fault

The load balancer has experienced a fault.

503

Service Unavailable

The service is not available.

Request

The following table shows the URI parameters for the request:

Name

Type

Description

{account}

String

The ID for the tenant or account in a multi- tenancy cloud.

This operation does not accept a request body.

Response

Example List load balancing protocols: JSON response

{"protocols": [
        {
            "name": "DNS_TCP",
            "port": 53
        },
        {
            "name": "DNS_UDP",
            "port": 53
        },
        {
            "name": "FTP",
            "port": 21
        },
        {
            "name": "HTTP",
            "port": 80
        },
        {
            "name": "HTTPS",
            "port": 443
        },
        {
            "name": "IMAPS",
            "port": 993
        },
        {
            "name": "IMAPv4",
            "port": 143
        },
        {
            "name": "LDAP",
            "port": 389
        },
        {
            "name": "LDAPS",
            "port": 636
        },
        {
            "name": "MYSQL",
            "port": 3306
        },
        {
            "name": "POP3",
            "port": 110
        },
        {
            "name": "POP3S",
            "port": 995
        },
        {
            "name": "SMTP",
            "port": 25
        },
        {
            "name": "TCP",
            "port": 0
        },
        {
            "name": "TCP_CLIENT_FIRST",
            "port": 0
        },
        {
            "name": "UDP",
            "port": 0
        },
        {
            "name": "UDP_STREAM",
            "port": 0
        },
        {
            "name": "SFTP",
            "port": 22
        },
        {
            "name": "TCP_STREAM",
            "port": 0
        }
    ]
}

Example List load balancing protocols: XML response

<protocols xmlns="http://docs.openstack.org/loadbalancers/api/v1.0">
    <protocol name="DNS_TCP" port="53" />
    <protocol name="DNS_UDP" port="53" />
    <protocol name="FTP" port="21" />
    <protocol name="HTTP" port="80" />
    <protocol name="HTTPS" port="443" />
    <protocol name="IMAPS" port="993" />
    <protocol name="IMAPv4" port="143" />
    <protocol name="LDAP" port="389" />
    <protocol name="LDAPS" port="636" />
    <protocol name="MYSQL" port="3306" />
    <protocol name="POP3" port="110" />
    <protocol name="POP3S" port="995" />
    <protocol name="SMTP" port="25" />
    <protocol name="TCP" port="0" />
    <protocol name="TCP_CLIENT_FIRST" port="0" />
    <protocol name="UDP" port="0" />
    <protocol name="UDP_STREAM" port="0" />
    <protocol name="SFTP" port="22" />
    <protocol name="TCP_STREAM" port="0" />
</protocols>