The Extensible Messaging and Presence Protocol (XMPP) is an open technology for real-time communication using XML (Extensible Markup Language) as the base format for exchanging information. The XMPP provides a way to send small pieces of XML from one entity to another in close to real time.
In a Nuage DC, an XMPP ejabberd server has an interface to the Nuage VSD as well as the Nuage VSC/VSG and the 7750 SR, 7450 ESS, or 7950 XRS DGW.
Figure 1 shows the basic XMPP architecture in the data center. While a single XMPP server is represented in the diagram, XMPP allows for easy server clustering and performs message replication to the cluster. It is similar to how BGP can scale and replicate the messages through the use of route reflectors.
Also the VSD is represented as a single server, but a cluster of VSD servers (using the same data base) is a very common configuration in a DC.
In the Nuage solution, each XMPP client, including the 7750 SR, 7450 ESS, and 7950 XRS, is referred to with a JID (JabberID) in the following format: username@xmppserver.domain. The xmppserver.domain points to the XMPP Server.
To enable the XMPP interface on the 7750 SR, 7450 ESS, or 7950 XRS, the following command must be added to indicate to which XMPP server address the DGW has to register, as well as the router’s JID:
*A:PE-2# configure system xmpp server
- server <xmpp-server-name> [domain-name <fqdn>] [username <user-name>]
[password <password>] [create] [service-name <service-name>]
- no server <xmpp-server-name>
- server <xmpp-server-name> [domain-name <fqdn>] [username <user-name>]
[password <password>] [create] [router <router-instance>]
<xmpp-server-name> : [32 chars max]
<fqdn> : [256 chars max]
<user-name> : [32 chars max]
<password> : [32 chars max]
<create> : keyword - mandatory while creating an entry.
<router-instance> : <router-name>|<vprn-svc-id>
router-name - "Base"|"management"
vprn-svc-id - [1..2147483647]
<service-name> : [64 chars max]
[no] shutdown - Administratively enable or disable XMPP server
Where:
[domain-name <fqdn>] is the domain portion of the JID.
<user-name> and <password> is the username:password portion of the JID of the router acting as an XMPP client. Plain/MD5/anonymous authentication is supported.
The user can choose not to configure the username portion of the JID. In that case, an in-band registration is attempted, using the chassis MAC as username.
The user has the option to try to establish an XMPP TCP session over a router instance by using the router router-instance command. The router name can be ‟Base”, ‟management”, or a specified VPRN service identifier.
When the xmpp server is properly configured and no shutdown, the 7750 SR tries to establish a TCP session with the XMPP server through the management interface first. If it fails to establish communication, the 7750 SR uses an in-band communication and uses its system IP as source IP address. Shutdown does not remove the dynamic configs in all the services. No server removes all the dynamic configs in all the services.
Only one xmpp server can be configured.
After the XMPP server is properly configured, the router can generate or receive XMPP stanza elements, such as presence and IQ (Information/Query) messages. IQ messages are used between the VSD and the router to request and receive configuration parameters. The status of the XMPP communication channel can be checked with the following command:
Dut# show system xmpp server "vsd1-hy"
===============================================================================
XMPP Server Table
===============================================================================
XMPP FQDN : vsd1-hy.alu.us
XMPP Admin User : csproot
XMPP Oper User : csproot
State Lst Chg Since: 0d 02:56:44 State : Functional
Admin State : Up Connection Mode : outOfBand
Auth Type : md5
IQ Tx. : 47 IQ Rx. : 47
IQ Error : 0 IQ Timed Out : 0
IQ Min. Rtt : 0 ms IQ Max. Rtt : 180 ms
IQ Ack Rcvd. : 47
Push Updates Rcvd : 1 VSD list Upd Rcvd : 12
Msg Tx. : 27 Msg Rx. : 27
Msg Ack. Rx. : 27 Msg Error : 0
Msg Min. Rtt : 0 ms Msg Max. Rtt : 180 ms
Sub Tx. : 1 UnSub Tx. : 0
Msg Timed Out : 0
===============================================================================
In addition to the XMPP server, the router must be configured with a VSD system-id that uniquely identifies the router in the VSD:
*B:Dut>config>system>vsd# info
----------------------------------------------
system-id "SR12U-46-PE"
----------------------------------------------
After the above configuration is complete, the router subscribes to a VSD XMPP PubSub node to discover the available VSD servers. Then, the router is discovered in the VSD UIs. On the router, the available VSD servers can be shown with the following command.
B:Dut#show system xmpp vsd
===============================================================================
Virtual Services Directory Table
===============================================================================
Id User Name Uptime Status
-------------------------------------------------------------------------------
1 cna@vsd1-hy.alu-srpm.us/nua* 0d 00:44:36 Available
-------------------------------------------------------------------------------
No. of VSD's: 1
===============================================================================
* indicates that the corresponding row element may have been truncated.
*B:Dut#show system xmpp vsd 1
===============================================================================
VSD Server Table
===============================================================================
VSD User Name : cna@vsd1-hy.alu-srpm.us/nuage
Uptime : 0d 00:44:39 Status : Available
Msg Tx. : 16 Msg Rx. : 10
Msg Ack. Rx. : 4 Msg Error : 6
Msg TimedOut : 0 Msg MinRtt : 80 ms
Msg MaxRtt : 240 ms
===============================================================================