Voucher Database Synchronization

  • Hello,

    I'm using version 2.4.4-RELEASE-p2, and I read that the problem https://redmine.pfsense.org/issues/8079 was solved, but when trying to sync the vouchers still it continues with the same error message.

    Could someone tell me if I'm forgetting to do some configuration.

    • Same user(admin) and password on both servers
    • Diagnostics-> Test Port (communication test on port 8888 successfully) on both servers
    • Same protocol and port of webconfigurator on both servers

    On the slave server: (https://IPSLAVE:8888)
    Synchronize Voucher Database IP: IPMASTER
    Voucher sync port: 8888
    Voucher sync username: admin
    Voucher sync password: *****

    Only for voucher synchronization do I need to configure some option in System -> High Availability Sync ? Because the configuration was done only in Services -> Captive Portal -> NameZone -> Vouchers on slave server.

    Error message:

    The following input errors were detected:

    Exception calling XMLRPC method exec_php #1 : Unhandled XML_RPC2_InvalidTypeEncodeException exception:Impossible to encode value '' from type 'NULL'. No analogous type in XML_RPC.#0 /usr/local/share/pear/XML/RPC2/Backend/Php/Value/Struct.php(107): XML_RPC2_Backend_Php_Value::createFromNative(NULL) #1 /usr/local/share/pear/XML/RPC2/Backend/Php/Response.php(86): XML_RPC2_Backend_Php_Value_Struct->encode() #2 /usr/local/share/pear/XML/RPC2/Backend/Php/Server.php(135): XML_RPC2_Backend_Php_Response::encode(Object(XML_RPC2_Backend_Php_Value_Struct), 'utf-8') #3 /usr/local/share/pear/XML/RPC2/Backend/Php/Server.php(99): XML_RPC2_Backend_Php_Server->getResponse() #4 /usr/local/www/xmlrpc.php(768): XML_RPC2_Backend_Php_Server->handleCall() #5 {main}

    Thank you all

  • Rebel Alliance


    In short, High availability for captive portal is not working at all currently :

    • The only part that is supposed to work is the synchronization of avaliable/used vouchers (meaning each node will be aware of which vouchers has been already used or not)
    • Connected users syncronization is NOT working (meaning if one user connect on a node, he/she won't be considered as connected on the other node). This feature has not been implemented yet in pfSense. There is a feature request asking for it : https://redmine.pfsense.org/issues/97
    • For avaliable/used vouchers sync, only master->slave synchronization is working correctly. Backward sync (slave->Master) is not working correctly, even if it should (see https://redmine.pfsense.org/issues/7972#note-5 )

    There is ongoing work for real captive portal High Avaliablilty implementation. No ETA or expected ready time however, that's just ongoing work and it may be avaliable in very long time...or maybe never.

    If you still want to configure vouchers synchronization despite these elements, here is how you can do it :

    • You do need to configure both System -> High Availability Sync (on the master node) and Services -> Captive Portal -> NameZone -> Vouchers (on the slave node)
    • The configuration area Services -> Captive Portal -> NameZone -> Vouchers has to be filled only in slave node (the purpose of this setting is to perform backward sync). Don't configure these settings on the master node.
    • Voucher sync port in your config should be the port of the master node's web GUI (normally, 80 or 443. But not 8888).

Log in to reply