DNS及DHCP
配置说明
1. 配置以太网动态IP¶
我们发布的sdk包编译出image升级包后默认打包udhcpc
工具,用于动态获取IP,可使用类似以下方式为指定网卡动态获取IP地址。如eth0网卡,使用网线连接好板子与路由器(或其他DHCP服务器)后可通过如下命令动态获取IP
ifconfig eth0 up;
udhcpc -i eth0 -s /etc/init.d/udhcpc.script
2. 开启DNS¶
DNS依赖libresolv
、libnsl
及libnxx_*
系列库文件,默认不打包到升级image中,需要时可从我们配套的交叉编译工具链中获取。如gcc-10.2.1
版本的交叉编译工具链,dns依赖的库文件位于gcc-10.2.1-20210303-sigmastar-glibc-x86_64_aarch64-linux-gnu/aarch64-linux-gnu/libc/lib/
,如下:
可将这些lib库一起打包到image中,或将它们放在挂载目录下并添加到LD_LIBRARY_PATH
环境变量中用于测试,如将以上库放到/customer/dns
目录之后export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/customer/dns
3. 添加默认的DNS域名服务器¶
正常情况下在dhcp获取IP地址时,dhcp服务器会分发一个dns服务器地址。如果用户需要添加一个默认的服务器的话可按以下操作:
在project\image\etc\init.d\udhcpc.script中找到:
for i in &dns ;do echo "Adding DNS server $i" echo "nameserver $i" >> "$tmpfile" done
修改或者在后面加入:
echo "name server 202.96.134.133" >> "$tmpfile"
4. 测试网络¶
可通过ping命令检查dns配置是否正常,当网络通信正常时
ping www.baidu.com PING www.baidu.com (163.177.151.109): 56 data bytes 64 bytes from 163.177.151.109: seq=0 ttl=128 time=54.557 ms 64 bytes from 163.177.151.109: seq=1 ttl=128 time=14.317 ms 64 bytes from 163.177.151.109: seq=2 ttl=128 time=4.245 ms 64 bytes from 163.177.151.109: seq=3 ttl=128 time=4.082 ms
若是出现类似以下log,可以获取到域名对应的IP地址但ping失败的情况,此时说明域名解析成功,dns工作正常,但开发板到目标地址无法正常通信,请检查网络环境设置确保网络通信正常。
ping -I eth0 www.baidu.com PING www.baidu.com (14.215.177.38):56 data bytes # 出现这中情况说明dns已经解析到ip,但网络限制无法访问外部网络。