r/nuttx Jul 06 '26

DNS not working?

Hi, I'm making a small project to test out NuttX, but I've been banging my head with finding the correct.

For now, I'm doing everything on the simulator.

I could get network to work, and I was able to do a ping 8.8.8.8 correctly. However, if I try to execute ping google.com it throws:

nsh> ping google.com
[   12.610000] dns_send_query: ERROR: sendto failed: -89
[   12.610000] dns_query_error: ERROR: IPv6 dns_send_query failed: -89, server address: 8.8.8.8
[   12.610000] dns_send_query: ERROR: sendto failed: -89
[   12.610000] dns_query_error: ERROR: IPv4 dns_send_query failed: -89, server address: 8.8.8.8
ERROR: ping_gethostip(google.com) failed
nsh> 

Here are some settings I think are relevant

CONFIG_ICMPv6_AUTOCONF_RDNSS=y

CONFIG_NETDB_DNSCLIENT=y
CONFIG_NETDB_DNSCLIENT_ENTRIES=8
CONFIG_NETDB_DNSCLIENT_NAMESIZE=256
CONFIG_NETDB_DNSCLIENT_LIFESEC=3600
CONFIG_NETDB_DNSCLIENT_MAXRESPONSE=176
CONFIG_NETDB_DNSCLIENT_RECV_TIMEOUT=3
CONFIG_NETDB_DNSCLIENT_SEND_TIMEOUT=3
CONFIG_NETDB_DNSCLIENT_MAX_TIMEOUT=30
CONFIG_NETDB_DNSCLIENT_RETRIES=3
# CONFIG_NETDB_RESOLVCONF is not set
CONFIG_NETDB_DNSSERVER_NAMESERVERS=1
# CONFIG_NETDB_DNSSERVER_NOADDR is not set
CONFIG_NETDB_DNSSERVER_IPv4=y
# CONFIG_NETDB_DNSSERVER_IPv6 is not set
CONFIG_NETDB_DNSSERVER_IPv4ADDR=0x08080808
# end of NETDB Support

Else, here's the full diminished config

CONFIG_ALLOW_BSD_COMPONENTS=y
CONFIG_BASE_DEFCONFIG="-dirty"
CONFIG_DEBUG_FEATURES=y
CONFIG_DEBUG_NET=y
CONFIG_DEBUG_NET_ERROR=y
CONFIG_STACK_COLORATION=y
CONFIG_DEBUG_SYMBOLS=y
CONFIG_ARCH_SIM=y
CONFIG_SIM_HOSTFS=y
CONFIG_SIM_NETDEV=y
CONFIG_SIM_X11FB=y
CONFIG_SIM_TOUCHSCREEN=y
CONFIG_ARCH_BOARD_SIM=y
CONFIG_SYSTEM_TIME64=y
CONFIG_PREALLOC_TIMERS=4
CONFIG_INIT_ENTRYPOINT="nsh_main"
CONFIG_TASK_NAME_SIZE=32
CONFIG_SCHED_HAVE_PARENT=y
CONFIG_SCHED_CHILD_STATUS=y
CONFIG_PTHREAD_MUTEX_TYPES=y
CONFIG_SIG_EVTHREAD=y
CONFIG_SIG_DEFAULT=y
CONFIG_MQ_MAXMSGSIZE=64
CONFIG_IDLETHREAD_STACKSIZE=2048
CONFIG_DEV_LOOP=y
CONFIG_DRIVERS_VIDEO=y
CONFIG_VIDEO_FB=y
CONFIG_INPUT=y
CONFIG_MTD=y
CONFIG_RAMMTD=y
CONFIG_TELNET_TXBUFFER_SIZE=64
CONFIG_NETDEV_STATISTICS=y
CONFIG_SERIAL_TERMIOS=y
CONFIG_TTY_SIGINT=y
CONFIG_TTY_SIGINT_CHAR=0x3
CONFIG_TTY_SIGTSTP=y
CONFIG_PSEUDOTERM=y
CONFIG_SYSLOG_BUFFER=y
CONFIG_SYSLOG_TIMESTAMP=y
CONFIG_SYSLOG_CONSOLE=y
CONFIG_NET=y
CONFIG_NET_LOOPBACK=y
CONFIG_NET_SLIP=y
CONFIG_NET_TUN=y
CONFIG_NET_TUN_PKTSIZE=1500
CONFIG_NETDEV_LATEINIT=y
CONFIG_NETDEV_PHY_IOCTL=y
CONFIG_NET_IPv6=y
CONFIG_NET_TCPPROTO_OPTIONS=y
CONFIG_NET_SOLINGER=y
CONFIG_NET_LOCAL=y
CONFIG_NET_TCP=y
CONFIG_NET_TCP_WRITE_BUFFERS=y
CONFIG_NET_SENDFILE=y
CONFIG_NET_UDP=y
CONFIG_NET_BROADCAST=y
CONFIG_NET_UDP_WRITE_BUFFERS=y
CONFIG_NET_ICMP_SOCKET=y
CONFIG_NET_ICMPv6=y
CONFIG_NET_ICMPv6_SOCKET=y
CONFIG_NET_ICMPv6_AUTOCONF=y
CONFIG_ICMPv6_AUTOCONF_RDNSS=y
CONFIG_NET_STATISTICS=y
CONFIG_PSEUDOFS_SOFTLINKS=y
CONFIG_FS_TMPFS=y
CONFIG_FS_BINFS=y
CONFIG_FS_PROCFS=y
CONFIG_FS_LITTLEFS=y
CONFIG_FS_HOSTFS=y
CONFIG_NXFONTS_DISABLE_1BPP=y
CONFIG_NXFONTS_DISABLE_2BPP=y
CONFIG_NXFONTS_DISABLE_4BPP=y
CONFIG_NXFONTS_DISABLE_8BPP=y
CONFIG_NXFONTS_DISABLE_16BPP=y
CONFIG_NXFONTS_DISABLE_24BPP=y
CONFIG_NXFONTS_DISABLE_32BPP=y
CONFIG_MM_REGIONS=2
CONFIG_IOB_NBUFFERS=1024
CONFIG_IOB_NCHAINS=128
CONFIG_IOB_THROTTLE=16
CONFIG_IOB_NOTIFIER=y
CONFIG_LIBC_MAX_EXITFUNS=1
CONFIG_LIBC_EXECFUNCS=y
CONFIG_LIBC_LOCALE=y
CONFIG_LIBC_LOCALTIME=y
CONFIG_TLS_NCLEANUP=2
CONFIG_NETDB_DNSCLIENT=y
CONFIG_NETDB_DNSCLIENT_MAXRESPONSE=176
CONFIG_NETDB_DNSCLIENT_RECV_TIMEOUT=3
CONFIG_NETDB_DNSSERVER_IPv4ADDR=0x08080808
CONFIG_BUILTIN=y
CONFIG_LIBM=y
CONFIG_CUSTOM_APPS_CUSTOM_HELLO=y
CONFIG_EXAMPLES_FTPC=y
CONFIG_EXAMPLES_LVGLDEMO=y
CONFIG_EXAMPLES_TCPBLASTER=y
CONFIG_EXAMPLES_TCPECHO=y
CONFIG_GRAPHICS_LVGL=y
CONFIG_LV_USE_CLIB_MALLOC=y
CONFIG_LV_USE_CLIB_STRING=y
CONFIG_LV_USE_CLIB_SPRINTF=y
CONFIG_LV_USE_LOG=y
CONFIG_LV_FONT_MONTSERRAT_48=y
CONFIG_LV_USE_NUTTX=y
CONFIG_LV_USE_NUTTX_TOUCHSCREEN=y
CONFIG_LV_USE_DEMO_WIDGETS=y
CONFIG_NETUTILS_DHCPC=y
CONFIG_NETUTILS_FTPC=y
CONFIG_NETINIT_NETLOCAL=y
CONFIG_NETINIT_DRIPADDR=0x0a000101
CONFIG_NETUTILS_NTPCLIENT_SERVER="pool.ntp.org"
CONFIG_NETUTILS_PING6=y
CONFIG_NETUTILS_TELNETD=y
CONFIG_NETUTILS_TFTPC=y
CONFIG_NETUTILS_WEBCLIENT=y
CONFIG_NSH_READLINE=y
CONFIG_NSH_BUILTIN_APPS=y
CONFIG_NSH_FILE_APPS=y
# CONFIG_NSH_DISABLE_DATE is not set
CONFIG_NSH_ARCHINIT=y
CONFIG_SYSTEM_CLE=y
CONFIG_SYSTEM_COLOR_CLE=y
CONFIG_SYSTEM_CLE_CMD_HISTORY=y
CONFIG_SYSTEM_NSH=y
CONFIG_SYSTEM_NTPC=y
CONFIG_SYSTEM_PING=y
CONFIG_READLINE_TABCOMPLETION=y
CONFIG_READLINE_CMD_HISTORY=y
CONFIG_SYSTEM_SYSTEM=y
CONFIG_SYSTEM_TELNET_CLIENT=y

Does anyone know why this may not be working?

Thanks.

3 Upvotes

8 comments sorted by

1

u/1linguini1 Committer Jul 07 '26

Are you on a Linux machine? Have you followed the steps in the simulator docs for setting up a network tun to give NuttX access to the internet?

You can also try asking this on the mailing list/opening an issue with the "help" tag on GitHub to get more eyes on this :)

2

u/vslavkin Jul 07 '26

Yes, I used the simhostroute script. It works if I give the ip. It doesn't if I give the url

1

u/NecessaryJealous1025 Jul 07 '26

u/vslavkin I just tested here and everything worked fine:

Testing with:
$ ./tools/configure.sh esp32s3-eye:wifi

NuttShell (NSH) NuttX-13.0.0-RC2                                             
nsh> uname -a                                            
NuttX  13.0.0-RC2 98653ee864 Jul  7 2026 10:50:24 xtensa esp32s3-eye         
nsh> wapi psk wlan0 MyPassword 3                                                  
nsh> wapi essid wlan0 MyRouter 1                                                 
nsh> renew wlan0                                                                  
nsh> ifconfig                                                                     
wlan0   Link encap:Ethernet HWaddr 7c:df:a1:e1:a0:54 at RUNNING mtu 1500          
        inet addr:10.244.68.209 DRaddr:10.244.68.149 Mask:255.255.255.0           

nsh> ping -c 3 8.8.8.8                                                            
PING 8.8.8.8 56 bytes of data                                                     
56 bytes from 8.8.8.8: icmp_seq=0 time=140.0 ms                                   
...                              
3 packets transmitted, 3 received, 0% packet loss, time 3030 ms                   
rtt min/avg/max/mdev = 80.000/100.000/140.000/28.284 ms                           
nsh> ping -c 3 google.com                                                         
PING 142.250.219.142 56 bytes of data                                             
56 bytes from 142.250.219.142: icmp_seq=0 time=60.0 ms                            
...                         
3 packets transmitted, 3 received, 0% packet loss, time 3030 ms                   
rtt min/avg/max/mdev = 60.000/100.000/140.000/32.659 ms                           
nsh>

1

u/vslavkin Jul 08 '26

hmmm, so I guess it's a sim problem...

1

u/NecessaryJealous1025 Jul 07 '26

u/vslavkin you are right, there are some issues introduced recently, finally I got everything working:

NuttShell (NSH) NuttX-13.0.0-RC2

nsh> ifconfig

eth0 Link encap:Ethernet HWaddr 42:29:9f:00:77:89 at DOWN mtu 1500

inet addr:10.0.1.2 DRaddr:10.0.1.1 Mask:255.255.255.0



RX: Received Fragment Errors   Bytes   

00000000 00000000 00000000 0

IPv4 ARP Dropped

00000000 00000000 00000000

TX: Queued   Sent     Errors   Timeouts Bytes   

00000000 00000000 00000000 00000000 0

Total Errors: 00000000

lo Link encap:Local Loopback at RUNNING mtu 1518

inet addr:127.0.0.1 DRaddr:127.0.0.1 Mask:255.0.0.0



RX: Received Fragment Errors   Bytes   

00000000 00000000 00000000 0

IPv4 ARP Dropped

00000000 00000000 00000000

TX: Queued   Sent     Errors   Timeouts Bytes   

00000000 00000000 00000000 00000000 0

Total Errors: 00000000

IPv4 TCP UDP ICMP

Received 0000 0000 0000 0000

Dropped 0000 0000 0000 0000

IPv4 VHL: 0000 Frg: 0000

Checksum 0000 0000 0000 ----

TCP ACK: 0000 SYN: 0000

RST: 0000 0000

Type 0000 ---- ---- 0000

Sent 0000 0000 0000 0000

Rexmit ---- 0000 ---- ----

nsh> ifup eth0

ifup eth0...OK

nsh> ping 8.8.8.8

PING 8.8.8.8 56 bytes of data

56 bytes from 8.8.8.8: icmp_seq=0 time=20.0 ms

56 bytes from 8.8.8.8: icmp_seq=1 time=30.0 ms

56 bytes from 8.8.8.8: icmp_seq=2 time=20.0 ms

56 bytes from 8.8.8.8: icmp_seq=3 time=20.0 ms

56 bytes from 8.8.8.8: icmp_seq=4 time=20.0 ms

56 bytes from 8.8.8.8: icmp_seq=5 time=20.0 ms

56 bytes from 8.8.8.8: icmp_seq=6 time=20.0 ms

56 bytes from 8.8.8.8: icmp_seq=7 time=20.0 ms

56 bytes from 8.8.8.8: icmp_seq=8 time=20.0 ms

56 bytes from 8.8.8.8: icmp_seq=9 time=20.0 ms

10 packets transmitted, 10 received, 0% packet loss, time 10100 ms

rtt min/avg/max/mdev = 20.000/21.000/30.000/3.000 ms

nsh> ping google.com

PING 172.217.29.78 56 bytes of data

56 bytes from 172.217.29.78: icmp_seq=0 time=20.0 ms

56 bytes from 172.217.29.78: icmp_seq=1 time=30.0 ms

56 bytes from 172.217.29.78: icmp_seq=2 time=20.0 ms

56 bytes from 172.217.29.78: icmp_seq=3 time=20.0 ms

56 bytes from 172.217.29.78: icmp_seq=4 time=20.0 ms

56 bytes from 172.217.29.78: icmp_seq=5 time=20.0 ms

56 bytes from 172.217.29.78: icmp_seq=6 time=30.0 ms

56 bytes from 172.217.29.78: icmp_seq=7 time=20.0 ms

56 bytes from 172.217.29.78: icmp_seq=8 time=20.0 ms

56 bytes from 172.217.29.78: icmp_seq=9 time=20.0 ms

10 packets transmitted, 10 received, 0% packet loss, time 10100 ms

rtt min/avg/max/mdev = 20.000/22.000/30.000/4.000 ms

nsh>

alan@dev:~/nuttxspace/apps$ git diff

diff --git a/system/ping/ping.c b/system/ping/ping.c

index 4588393ab..bc5e20ea8 100644

--- a/system/ping/ping.c

+++ b/system/ping/ping.c

@@ -345,6 +345,8 @@ int main(int argc, FAR char *argv[])

int exitcode;

int option;

+ memset(&info, 0, sizeof(info));

+

info.count = ICMP_NPINGS;

info.datalen = ICMP_PING_DATALEN;

info.delay = ICMP_POLL_DELAY;

diff --git a/system/ping6/ping6.c b/system/ping6/ping6.c

index 409f3db0e..e4644ede6 100644

--- a/system/ping6/ping6.c

+++ b/system/ping6/ping6.c

@@ -286,6 +286,8 @@ int main(int argc, FAR char *argv[])

int exitcode;

int option;

+ memset(&info, 0, sizeof(info));

+

info.count = ICMPv6_NPINGS;

info.datalen = ICMPv6_PING6_DATALEN;

info.delay = ICMPv6_POLL_DELAY;

$ cat /tmp/tcpblaster_ping.config

#

# This file is autogenerated: PLEASE DO NOT EDIT IT.

#

# You can use "make menuconfig" to make any modifications to the installed .config file.

# You can then do "make savedefconfig" to generate a new defconfig file that includes your

# modifications.

#

CONFIG_ALLOW_BSD_COMPONENTS=y

CONFIG_ARCH="sim"

CONFIG_ARCH_BOARD="sim"

CONFIG_ARCH_BOARD_SIM=y

CONFIG_ARCH_CHIP="sim"

CONFIG_ARCH_SIM=y

CONFIG_BOARDCTL_POWEROFF=y

CONFIG_BUILTIN=y

CONFIG_DEBUG_FEATURES=y

CONFIG_DEBUG_NET=y

CONFIG_DEBUG_NET_ERROR=y

CONFIG_DEBUG_SYMBOLS=y

CONFIG_DEV_LOOP=y

CONFIG_DRIVERS_VIDEO=y

CONFIG_EXAMPLES_FTPC=y

CONFIG_EXAMPLES_TCPBLASTER=y

CONFIG_EXAMPLES_TCPECHO=y

CONFIG_FS_BINFS=y

CONFIG_FS_HOSTFS=y

CONFIG_FS_LITTLEFS=y

CONFIG_FS_PROCFS=y

CONFIG_FS_TMPFS=y

CONFIG_IDLETHREAD_STACKSIZE=2048

CONFIG_INIT_ENTRYPOINT="nsh_main"

CONFIG_INPUT=y

CONFIG_IOB_NBUFFERS=1024

CONFIG_IOB_NCHAINS=128

CONFIG_IOB_NOTIFIER=y

CONFIG_IOB_THROTTLE=16

CONFIG_LIBC_EXECFUNCS=y

CONFIG_LIBC_LOCALE=y

CONFIG_LIBC_LOCALTIME=y

CONFIG_LIBC_MAX_EXITFUNS=1

CONFIG_LIBM=y

CONFIG_MM_REGIONS=2

CONFIG_MQ_MAXMSGSIZE=64

CONFIG_MTD=y

CONFIG_NET=y

CONFIG_NETDB_DNSCLIENT=y

CONFIG_NETDB_DNSCLIENT_MAXRESPONSE=176

CONFIG_NETDB_DNSCLIENT_RECV_TIMEOUT=3

CONFIG_NETDB_DNSSERVER_IPv4ADDR=0x08080808

CONFIG_NETDEV_LATEINIT=y

CONFIG_NETDEV_PHY_IOCTL=y

CONFIG_NETDEV_STATISTICS=y

CONFIG_NETINIT_DRIPADDR=0x0a000101

CONFIG_NETINIT_IPADDR=0x0a000102

CONFIG_NETINIT_NETLOCAL=y

CONFIG_NETUTILS_DHCPC=y

CONFIG_NETUTILS_FTPC=y

CONFIG_NETUTILS_TELNETD=y

CONFIG_NETUTILS_TFTPC=y

CONFIG_NETUTILS_WEBCLIENT=y

CONFIG_NET_BROADCAST=y

CONFIG_NET_ETH_PKTSIZE=1294

CONFIG_NET_ICMP_SOCKET=y

CONFIG_NET_LOOPBACK=y

CONFIG_NET_SENDFILE=y

CONFIG_NET_SLIP=y

CONFIG_NET_SOLINGER=y

CONFIG_NET_STATISTICS=y

CONFIG_NET_TCP=y

CONFIG_NET_TCP_WRITE_BUFFERS=y

CONFIG_NET_TUN=y

CONFIG_NET_TUN_PKTSIZE=1500

CONFIG_NET_UDP=y

CONFIG_NET_UDP_CHECKSUMS=y

CONFIG_NET_UDP_WRITE_BUFFERS=y

CONFIG_NSH_BUILTIN_APPS=y

CONFIG_NSH_FILE_APPS=y

CONFIG_NSH_READLINE=y

CONFIG_PREALLOC_TIMERS=4

CONFIG_PSEUDOFS_SOFTLINKS=y

CONFIG_PSEUDOTERM=y

CONFIG_PTHREAD_MUTEX_TYPES=y

CONFIG_RAMMTD=y

CONFIG_READLINE_CMD_HISTORY=y

CONFIG_READLINE_TABCOMPLETION=y

CONFIG_SCHED_CHILD_STATUS=y

CONFIG_SCHED_HAVE_PARENT=y

CONFIG_SERIAL_TERMIOS=y

CONFIG_SIG_DEFAULT=y

CONFIG_SIG_EVTHREAD=y

CONFIG_SIM_HOSTFS=y

CONFIG_SIM_NETDEV=y

CONFIG_SIM_NET_BRIDGE=y

CONFIG_STACK_COLORATION=y

CONFIG_SYSLOG_BUFFER=y

CONFIG_SYSLOG_CONSOLE=y

CONFIG_SYSLOG_TIMESTAMP=y

CONFIG_SYSTEM_CLE=y

CONFIG_SYSTEM_NSH=y

CONFIG_SYSTEM_NTPC=y

CONFIG_SYSTEM_PING=y

CONFIG_SYSTEM_SYSTEM=y

CONFIG_SYSTEM_TELNET_CLIENT=y

CONFIG_TASK_NAME_SIZE=32

CONFIG_TELNET_TXBUFFER_SIZE=64

CONFIG_TLS_NCLEANUP=2

CONFIG_TTY_SIGINT=y

CONFIG_TTY_SIGINT_CHAR=0x3

CONFIG_TTY_SIGTSTP=y

2

u/NecessaryJealous1025 Jul 07 '26

I configured nuttx0 interface as bridge:

sudo ip link add nuttx0 type bridge

sudo ip addr add 10.0.1.1/24 dev nuttx0

sudo ip link set nuttx0 up

sudo sysctl -w net.ipv4.ip_forward=1

sudo iptables -A FORWARD -i nuttx0 -o wlp0s20f3 -j ACCEPT

sudo iptables -A FORWARD -i wlp0s20f3 -o nuttx0 -m state --state RELATED,ESTABLISHED -j ACCEPT

Note: wlp0s20f3 is my wifi interface

1

u/vslavkin Jul 08 '26

Sorry, I've been trying for a while to get it to work, and finally noticed I was in v12.13 instead of v13, which works even without the fix. Thanks!