[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [paho-dev] MQTTSNGateway and AWS IoT

Hello Tomoaki,

I use njh.mqtt-sn-tools for command line publish/subscribe.
gateway.conf - configuration file
gateway.log - log file

I'm starting gateway, and then trying to subscribe to the topic:

njh.mqtt-sn-tools$ ./mqtt-sn-sub -h 127.0.0.1 -p 10000 -t topic1
2017-07-27 15:28:26 ERROR Keep alive error: timed out while waiting for
a PUBLISH from gateway.
njh.mqtt-sn-tools$

When I'm adding a simple parameters check to the Network::recv()
function, the subscribing starts working well. Otherwise, client
disconnected after first PINGREQ.

SSL_ERROR_ZERO_RETURN error code after the publish operation is not a
problem. It appears every time when "mqtt-sn-pub" utility disconnecting
from Gateway.


With best regards, Sergey.


27.07.2017 12:27, Tomoaki Yamaguchi wrote:
> Hi,
> 
> I could not recreate your bug.
> I tried Raspbery Pi Model A and corei7 ubuntu.
> see attached log of the gateway.
> 
> I tested it by the GatewayTester in the repo.
> 
> 
> 
> Tomy Technology
> Tomoaki  YAMAGUCHI
> 
> 2017-07-22 13:11 GMT+09:00 Tomoaki Yamaguchi <tomoaki@xxxxxxxxxxxxx
> <mailto:tomoaki@xxxxxxxxxxxxx>>:
> 
>     Hi,
> 
>     Thank you for your information.
>     I'm working on it.
> 
>     Tomy Technology
>     Tomoaki  YAMAGUCHI
> 
>     2017-07-20 22:46 GMT+09:00 Sergey Semernin
>     <sergey.semernin@xxxxxxxxx <mailto:sergey.semernin@xxxxxxxxx>>:
> 
>         Hello Tomoaki,
> 
>         Looks like the problem in the function
>             int Network::recv(uint8_t* buf, uint16_t len)
>         called with len == 0 from function
>             int MQTTGWPacket::recv(Network* network)
>         line
>             int remlen = network->recv(_data, _remainingLength);
> 
>         Then, the SSL_read() call fails with SSL_ERROR_SYSCALL, and next
>         SSL_read() call always fails with SSL_ERROR_ZERO_RETURN.
> 
>         I've add simple check to the begin of Network::recv() function:
>             if (!buf)
>                 return -1;
>             if (!len)
>                 return 0;
>         And subscribing to a topic messages starts to work normally.
> 
>         However, after each publish operation (message successfully sent
>         to the
>         AWS message broker) the SSL_read() call fails with
>         SSL_ERROR_ZERO_RETURN. I don't understand why yet.
> 
>         Therefore looks like there are problems in the SSL code of the
>         MQTTSNGateway. I checked my AWS IoT configuration using
>         RSMB+Mosquitto,
>         and all works well (using same SSL certificates, of course).
> 
> 
>         With best regards, Sergey.
> 
> 
>         19.07.2017 14:24, Tomoaki Yamaguchi wrote:
>         > Hi Sergey,
>         >
>         > I checked the gateway was working with AWS IoT before.
>         > I will check it again.
>         >
>         > could you try TLS 1.2 ï
>         >
>         >
>         >
>         > Tomy Technology
>         > Tomoaki  YAMAGUCHI
>         >
>         > 2017-07-19 20:17 GMT+09:00 Sergey Semernin <sergey.semernin@xxxxxxxxx <mailto:sergey.semernin@xxxxxxxxx>
>         > <mailto:sergey.semernin@xxxxxxxxx
>         <mailto:sergey.semernin@xxxxxxxxx>>>:
>         >
>         >     Hello Tomoaki,
>         >
>         >     Thank you for the answer, and sorry for my english.
>         >
>         >     Yes, of course. I also tried to change client identification string, and
>         >     then I got error message that client is rejected by the gateway. So,
>         >     client authentication is working well.
>         >
>         >     Build system: Debian GNU/Linux 9.0, SSL version 1.1.0f.
>         >
>         >     I see successful SSL connection handshake between Gateway and AWS
>         >     server. But then, the Gateway somehow closing this connection.
>         >     I tried to deactivate AWS keypair, and then I got "connection error to
>         >     the broker" on gateway, as expected. So, keypairs is valid too. Some
>         >     problem in send()/recv() cycle, I suppose.
>         >
>         >
>         >     With best regards, Sergey.
>         >
>         >
>         >     19.07.2017 14:05, Tomoaki Yamaguchi wrote:
>         >     > Hi,
>         >     >
>         >     > Did you register your ClientID and Sensorïet Address address to
>         >     > clients.conf ?
>         >     >
>         >     > In order to authenticate ïïï client, the gateway confirms that the ID
>         >     > and Sensorïet Address are registered in clients.conf in case of TLS
>         >     > connection.
>         >     >
>         >     >
>         >     > Tomy Technology
>         >     > Tomoaki  YAMAGUCHI
>         >     >
>         >     > 2017-07-19 18:21 GMT+09:00 Sergey Semernin <sergey.semernin@xxxxxxxxx <mailto:sergey.semernin@xxxxxxxxx>
>         <mailto:sergey.semernin@xxxxxxxxx
>         <mailto:sergey.semernin@xxxxxxxxx>>
>         >     > <mailto:sergey.semernin@xxxxxxxxx
>         <mailto:sergey.semernin@xxxxxxxxx>
>         >     <mailto:sergey.semernin@xxxxxxxxx <mailto:sergey.semernin@xxxxxxxxx>>>>:
>         >     >
>         >     >     Hello All!
>         >     >
>         >     >     I'm new to transparent MQTT-SN gateway that published in Paho project.
>         >     >     I'm trying to test this gateway with Amazon MQTT message broker. I set
>         >     >     up SSL/TLS certificates, test connection to the MQTT, and it works.
>         >     >
>         >     >     Then, I setup gateway:
>         >     >
>         >     >     BrokerName=....iot.eu-central-1.amazonaws.com
>         <http://iot.eu-central-1.amazonaws.com>
>         <http://iot.eu-central-1.amazonaws.com
>         <http://iot.eu-central-1.amazonaws.com>>
>         >     >     <http://iot.eu-central-1.amazonaws.com
>         <http://iot.eu-central-1.amazonaws.com>
>         >     <http://iot.eu-central-1.amazonaws.com
>         <http://iot.eu-central-1.amazonaws.com>>>
>         >     >     BrokerPortNo=1883
>         >     >     BrokerSecurePortNo=8883
>         >     >     ClientAuthentication=YES
>         >     >     ClientsList=clients.conf
>         >     >
>         >     >     RootCAfile=root-CA.crt
>         >     >     CertKey=my-certificate.pem.crt
>         >     >     PrivateKey=my-private.pem.key
>         >     >
>         >     >     GatewayID=1
>         >     >     GatewayName=PahoGateway-01
>         >     >     KeepAlive=900
>         >     >
>         >     >     GatewayPortNo=10000
>         >     >     MulticastIP=225.1.1.1
>         >     >     MulticastPortNo=1883
>         >     >
>         >     >     And I'm trying to publish or subscribe with
>         mqtt-sn-tools.
>         >     >     Each time I got this error:
>         >     >
>         >     >     20170719 120527.230   CONNECT           <--- 
>         mqtt-sn-tools-7142
>         >     >              04 04 01 00 0A 6D 71 74 74 2D 73 6E 2D 74
>         6F 6F 6C 73
>         >     2D 37 31
>         >     >     34 32
>         >     >     20170719 120527.910   CONNECT           ---> 
>         mqtt-sn-tools-7142
>         >     >              10 1E 00 04 4D 51 54 54 04 02 00 0A 00 12
>         6D 71 74 74
>         >     2D 73 6E
>         >     >     2D 74 6F 6F 6C 73 2D 37 31 34 32
>         >     >     Error: BrokerRecvTask can't receive a packet from
>         the broker
>         >     errno=0
>         >     >     mqtt-sn-tools-7142
>         >     >
>         >     >     I checked traffic with tcpdump and saw that SSL/TLS
>         connection
>         >     with AWS
>         >     >     cloud is present. But nothing more.
>         >     >
>         >     >     What I missed? Or this gateway just not working/not
>         tested
>         >     with AWS MQTT
>         >     >     broker?
>         >     >
>         >     >
>         >     >     With best regards, Sergey.
>         >     >     _______________________________________________
>         >     >     paho-dev mailing list
>         >     >     paho-dev@xxxxxxxxxxx <mailto:paho-dev@xxxxxxxxxxx>
>         <mailto:paho-dev@xxxxxxxxxxx <mailto:paho-dev@xxxxxxxxxxx>>
>         >     <mailto:paho-dev@xxxxxxxxxxx <mailto:paho-dev@xxxxxxxxxxx>
>         <mailto:paho-dev@xxxxxxxxxxx <mailto:paho-dev@xxxxxxxxxxx>>>
>         >     >     To change your delivery options, retrieve your
>         password, or
>         >     >     unsubscribe from this list, visit
>         >     >     https://dev.eclipse.org/mailman/listinfo/paho-dev
>         <https://dev.eclipse.org/mailman/listinfo/paho-dev>
>         >     <https://dev.eclipse.org/mailman/listinfo/paho-dev
>         <https://dev.eclipse.org/mailman/listinfo/paho-dev>>
>         >     >     <https://dev.eclipse.org/mailman/listinfo/paho-dev
>         <https://dev.eclipse.org/mailman/listinfo/paho-dev>
>         >     <https://dev.eclipse.org/mailman/listinfo/paho-dev
>         <https://dev.eclipse.org/mailman/listinfo/paho-dev>>>
>         >     >
>         >     >
>         >     >
>         >     >
>         >     > _______________________________________________
>         >     > paho-dev mailing list
>         >     > paho-dev@xxxxxxxxxxx <mailto:paho-dev@xxxxxxxxxxx>
>         <mailto:paho-dev@xxxxxxxxxxx <mailto:paho-dev@xxxxxxxxxxx>>
>         >     > To change your delivery options, retrieve your password, or
>         >     unsubscribe from this list, visit
>         >     > https://dev.eclipse.org/mailman/listinfo/paho-dev
>         <https://dev.eclipse.org/mailman/listinfo/paho-dev>
>         >     <https://dev.eclipse.org/mailman/listinfo/paho-dev
>         <https://dev.eclipse.org/mailman/listinfo/paho-dev>>
>         >     >
>         >     _______________________________________________
>         >     paho-dev mailing list
>         >     paho-dev@xxxxxxxxxxx <mailto:paho-dev@xxxxxxxxxxx>
>         <mailto:paho-dev@xxxxxxxxxxx <mailto:paho-dev@xxxxxxxxxxx>>
>         >     To change your delivery options, retrieve your password, or
>         >     unsubscribe from this list, visit
>         >     https://dev.eclipse.org/mailman/listinfo/paho-dev
>         <https://dev.eclipse.org/mailman/listinfo/paho-dev>
>         >     <https://dev.eclipse.org/mailman/listinfo/paho-dev
>         <https://dev.eclipse.org/mailman/listinfo/paho-dev>>
>         >
>         >
>         >
>         >
>         > _______________________________________________
>         > paho-dev mailing list
>         > paho-dev@xxxxxxxxxxx <mailto:paho-dev@xxxxxxxxxxx>
>         > To change your delivery options, retrieve your password, or
>         unsubscribe from this list, visit
>         > https://dev.eclipse.org/mailman/listinfo/paho-dev
>         <https://dev.eclipse.org/mailman/listinfo/paho-dev>
>         >
>         _______________________________________________
>         paho-dev mailing list
>         paho-dev@xxxxxxxxxxx <mailto:paho-dev@xxxxxxxxxxx>
>         To change your delivery options, retrieve your password, or
>         unsubscribe from this list, visit
>         https://dev.eclipse.org/mailman/listinfo/paho-dev
>         <https://dev.eclipse.org/mailman/listinfo/paho-dev>
> 
> 
> 
> 
> 
> _______________________________________________
> paho-dev mailing list
> paho-dev@xxxxxxxxxxx
> To change your delivery options, retrieve your password, or unsubscribe from this list, visit
> https://dev.eclipse.org/mailman/listinfo/paho-dev
> 
BrokerName=NNNNNNNNNNNNNN.iot.eu-central-1.amazonaws.com
BrokerPortNo=1883
BrokerSecurePortNo=8883

ClientAuthentication=YES
ClientsList=clients.conf

RootCAfile=root-CA.crt
CertKey=NNNNNNNNNN-certificate.pem.crt
PrivateKey=NNNNNNNNNN-private.pem.key

GatewayID=1
GatewayName=PahoGateway-01
KeepAlive=900

# UDP
GatewayPortNo=10000
MulticastIP=225.1.1.1
MulticastPortNo=1883

# LOG
ShearedMemory=NO
$ ./MqttSnGateway -f gateway.conf 

 ***************************************************************************
 * MQTT-SN Transparent Gateway
 * Part of Project Paho in Eclipse
 * (http://git.eclipse.org/c/paho/org.eclipse.paho.mqtt-sn.embedded-c.git/)
 *
 * Author : Tomoaki YAMAGUCHI
 * Version: 1.0.0
 ***************************************************************************

20170727 152752.221 PahoGateway-01 has been started.

 ConfigFile: ./gateway.conf
 SensorN/W:  UDP Multicast 225.1.1.1:1883 Gateway Port 10000
 Broker:     NNNNNNNNNNNNNN.iot.eu-central-1.amazonaws.com : 1883, 8883
 RootCApath: (null)
 RootCAfile: root-CA.crt
 CertKey:    NNNNNNNNNN-certificate.pem.crt
 PrivateKey: NNNNNNNNNN-private.pem.key

20170727 152805.497   CONNECT           <---  mqtt-sn-tools-16751                 04 04 01 00 0A 6D 71 74 74 2D 73 6E 2D 74 6F 6F 6C 73 2D 31 36 37 35 31
20170727 152805.737   CONNECT           --->  mqtt-sn-tools-16751                 10 1F 00 04 4D 51 54 54 04 02 00 0A 00 13 6D 71 74 74 2D 73 6E 2D 74 6F 6F 6C 73 2D 31 36 37 35 31
20170727 152806.224   CONNACK           <---  mqtt-sn-tools-16751                 20 02 00 00
20170727 152806.224   CONNACK           --->  mqtt-sn-tools-16751                 05 00

20170727 152806.224   SUBSCRIBE   0001  <---  mqtt-sn-tools-16751                 12 00 00 01 74 6F 70 69 63 31
20170727 152806.224   SUBSCRIBE   0001  --->  mqtt-sn-tools-16751                 82 0B 00 01 00 06 74 6F 70 69 63 31 00
20170727 152806.286   SUBACK      0001  <---  mqtt-sn-tools-16751                 90 03 00 01 00
20170727 152806.286   SUBACK      0001  --->  mqtt-sn-tools-16751                 13 00 00 01 00 01 00

20170727 152816.297   PINGREQ           <---  Client                              16
20170727 152816.297   PINGREQ           --->  mqtt-sn-tools-16751                 C0 00
Error: BrokerRecvTask can't receive a packet from the broker errno=0 mqtt-sn-tools-16751
^C20170727 152843.870 BrokerSendTask   stopped.
20170727 152843.870 ClientSendTask   stopped.
20170727 152843.870 PacketHandleTask stopped.
20170727 152844.326 ClientRecvTask   stopped.
20170727 152844.342 BrokerRecvTask   stopped.

20170727 152844.870 MQTT-SN Gateway  stoped