Home AMX User Forum NetLinx Studio

All TCP-Ports will be blocked, if a DNS inquiry runs, which is not answered

I work with the i!-EquipmentMonitor to generate alarm-emails.
Unfortunately provided all TCP communication haven blocked, if the EmailOut.axi makes a DNS inquiry, which no DNS server finds.
The remarkable thereby is that I receive an error message, which comes of the NI2000/NI700-Firmware. Here still another "old stack" seems to be from the earlier time...

"PanjaInetAddr or hostGetNyName error 0x0"

(see in my appendix).

There the DNS inquiry runs a "layer further down", i.e. in the firmware is worked on, is this an almost unsolvable problem for me.
I cannot rely always on the fact that the DNS server is always attainable in the userside installation.

Does someone have an idea?

Comments

  • chillchill Posts: 186
    I work with the i!-EquipmentMonitor to generate alarm-emails. unfortunately provided all TCP communication haven blocked, if the EmailOut.axi makes a DNS inquiry, which no DNS server finds. The remarkable thereby is that I receive an error message, which comes of the NI2000/NI700-Firmware. Here still another "old stack" seems to be from the earlier time...

    "PanjaInetAddr or hostGetNyName error 0x0"

    (see in my appendix).

    It doesn't look as though *all* TCP communication is blocked; your telnet connection didn't drop, right? Besides, if I recall correctly DNS queries run over UDP.

    I suspect that PanjaInetAddr is some low-level function to resolve DNS names, implemented in the Netlinx "firmware". hostGetByName is a function used in VXworks (and maybe other OSs as well) to essentially do the same thing; it seems to be analogous to gethostbyname() and friends in BSD.

    There the DNS inquiry runs a "layer further down", i.e. in the firmware is worked
    on, is this an almost unsolvable problem for me. I cannot rely always on the fact
    that the DNS server is always attainable in the userside installation.

    That's a problem. Is it possible to delay queries until the DNS server is up? Perhaps by pinging it before querying? Or use more than one DNS server? Sorry, I'm not familiar enough with i!-EquipmentMonitor to know if it has those capabilities. If not, perhaps you could [persuade the client to] set up a caching-only name server between the Netlinx and the "real" DNS server.

    Hope this helps.
  • How to ping from netlinxcode in runtime?

    Do you know a possibility to do a ping-request in runtime from the Netlinx?
  • Do you know a possibility to do a ping-request in runtime from the Netlinx?

    Open a TCP/IP socket into the master itself on the telnet port (23). You can issue a ping through that.

    - Chip
  • I work very much with the telnet & "msg on" on the master.
    The question is, how I can guarantee from the Netlinxcode that a DNS is present?
  • I work very much with the telnet & "msg on" on the master.
    The question is, how I can guarantee from the Netlinxcode that a DNS is present?

    If you set up the "telnet into itself" mechanism, you could do something like "ping www.amx.com". If DNS is up and running, you'll get a positive response - otherwise not so much... Just parse the response.

    - Chip
  • i've found this problem as well. and it happens when a modem or router or internet access fails (which does happen to us all at some time).

    i've actually created a test program to look into the problem, as it's been impacting the reliability of installations for some time now.

    and it's been affecting things like the Max Comms module.

    from my test program i can tell you exactly when the problem will occur..

    if one process is trying to get a DNS reply and waiting for a non-responsive DNS server, and another process tries to open a network connection (and not even using DNS) at the same time, the second process will also timeout with the first process and return an error.

    this is definitely happening and it's a very frustrating, intermittent issue. (but my test program can reproduce the error repeatedly so long as a DNS server cannot be found).

    in fact, i tend to think this issue is causing all sorts of intermittent network errors that some of us are experiencing. and i also think it's probably affecting panels, not just controllers, that are doing a DNS lookup (most likely using the same core code/firmware/hardware).

    anything using DNS is at risk. Weather, RSS, TV guides, time servers, email, motion jpeg web cameras.. this list goes on.

    i am very impressed that someone else has caught onto the problem :) would be even more impressive if AMX caught onto the problem.
  • by the way, doing a ping test before trying a connection may not help. you will still be relying on the panja dns service.. and it will still hold up the processor. haven't actually checked, just taking an educated guess. i'll do the test and let you all know.

    if i regain enough motivation to do the work that others should be doing, that is.
  • Well done Richard.

    Did you pass on your findings to AMX tech support?
  • i've passed it on via my suppliers. who say they've passed it to AMX

    would be nice to hear something about progress
Sign In or Register to comment.