ltm rule command listen
iRule(1) BIG-IP TMSH Manual iRule(1)
listen
Sets up a related ephemeral listener to allow an incoming related
connection to be established.
SYNOPSIS
listen (<'proto' UNSIGNED_SHORT> |
<'bind' VLAN_OBJ IP_ADDR PORT> |
<'server' IP_ADDR PORT> |
<'allow' IP_ADDR (PORT)?> |
<'timeout' UNSIGNED_INT>)
DESCRIPTION
Sets up a related ephemeral listener to allow an incoming related
connection to be established. The source address and/or port of the
related connection is unknown but the destination address and port are
known.
Syntax
listen {
proto
timeout
bind
server
allow [] }
* Sets up a related ephemeral listener to allow an incoming related
connection to be established:
+ proto: The IP protocol number used in the connection. See /etc/protocols. Usually 6 (TCP) or 17 (UDP). See also IP::protocol
+ timeout: The number of seconds to hold the listener open waiting
on a connection.
+ bind: vlan, addr, port to listen on. See also LINK::vlan_id
+ server: The address and port to connect the listening connection to. See also LB::server
+ allow: The address and optional port to restrict the incoming connection to. See also IP::client_addr
RETURN VALUE
VALID DURING
AUTH_ERROR, AUTH_FAILURE, AUTH_RESULT, AUTH_SUCCESS,
AUTH_WANTCREDENTIAL, CACHE_REQUEST, CACHE_RESPONSE, CACHE_UPDATE,
CLIENT_ACCEPTED, CLIENT_CLOSED, CLIENT_DATA, CLIENT_LINE,
CLIENTSSL_CLIENTCERT, CLIENTSSL_HANDSHAKE, HTTP_CLASS_FAILED,
HTTP_CLASS_SELECTED, HTTP_REQUEST, HTTP_REQUEST_DATA,
HTTP_REQUEST_SEND, HTTP_RESPONSE, HTTP_RESPONSE_CONTINUE,
HTTP_RESPONSE_DATA, LB_FAILED, LB_SELECTED, NAME_RESOLVED,
PERSIST_DOWN, RTSP_REQUEST, RTSP_REQUEST_DATA, RTSP_RESPONSE,
RTSP_RESPONSE_DATA, SERVER_CLOSED, SERVER_CONNECTED, SERVER_DATA,
SERVER_LINE, SERVERSSL_HANDSHAKE, SIP_REQUEST, SIP_REQUEST_SEND,
SIP_RESPONSE, SIP_RESPONSE_SEND, STREAM_MATCHED, USER_REQUEST,
USER_RESPONSE, XML_BEGIN_DOCUMENT, XML_BEGIN_ELEMENT, XML_CDATA,
XML_END_DOCUMENT, XML_END_ELEMENT, XML_EVENT
EXAMPLES
# Note, this example is not quite working yet...
# connect to virtual and send something like "L 4444" to listen on port 4444.
rule rl_listen {
when RULE_INIT {
set my_port ""
}
when CLIENT_ACCEPTED {
TCP::collect 6
}
when CLIENT_DATA {
set my_port [getfield [TCP::payload 6] " " 2]
}
when LB_SELECTED {
listen {
proto [IP::protocol]
timeout 30
bind [LINK::vlan_id] [IP::local_addr] $my_port
server [LB::server addr] 7
allow [IP::client_addr]
}
}
}
HINTS
SEE ALSO
CHANGE LOG
@BIGIP-9.0.0 --First introduced the command.
BIG-IP 2017-01-31 iRule(1)