我目前正在使用设置无线网状网络巴贝尔德作为路由算法。文档非常稀疏,我在网上看到的大多数配置指南都使用已弃用的 ifconfig 命令。
显然我可以ifconfig
按原样安装并运行命令。但是,如果可能的话,我宁愿不创建对 的不必要的依赖ifconfig
,而只使用基于内置的iproute2
命令。所以我一直在将ifconfig
遇到的命令转换为相应的ip
版本(例如ifconfig eth0 up
--> ip link set eth0 up
)
然而,今天我遇到了以下情况babeld
配置脚本:
ifconfig wlan0 down
iwconfig wlan0 mode ad-hoc essid reseaulibre.ca ap 02:CA:FF:EE:BA:BE channel 9
ifconfig wlan0 up
avahi-autoipd wlan0
ifconfig wlan0:avahi netmask 255.255.255.255
babeld -D wlan0:avahi wlan0
...而且我不明白如何将以下行转换为相应的ip
命令:
ifconfig wlan0:avahi netmask 255.255.255.255
ip
在上述配置脚本的上下文中使用 的等效命令是什么?
答案1
这似乎是无法直接替代 with 的一件事ip
。
一种解决方案是:
IPNM=$(ip a sh dev wlan0:avahi scope global | awk '/inet / {print $2}')
IP=${IPNM/\/*})
ip a add $IP/32 dev wlan0:avahi
ip a del $IPNM dev wlan0:avahi
首先从输出中提取包括网络掩码的 IP 地址ip addr show
并将其存储在 $IPNM 中。之后,子网部分被剥离并存储在 $IP 中。
现在,您可以将具有所需网络掩码的 IP 地址添加到设备,然后从设备中删除旧的 IP/网络掩码。