目标是在具有多个接口和live ips的计算机上频繁更改默认传出源ip。
我根据文档使用ip route replace default,让脚本在循环中运行一段时间。它改变了源IP一段时间,但随后所有对该机器的互联网访问都丢失了。它必须从Web界面远程重启才能使任何工作
是否有任何可能阻止其稳定运作的事情。我在多台服务器上试过这个?
以下是最低限度的例子
# extract all currently active source ips except loopback
IPs="$(ifconfig | grep 'inet addr:'| grep -v '127.0.0.1' | cut -d: -f2 |
awk '{ print $1}')"
read -a ip_arr <<<$IPs
# extract all currently active mac / ethernet addresses
Int="$(ifconfig | grep 'eth'| grep -v 'lo' | awk '{print $1}')"
read -a eth_arr <<<$Int
ip_len=${#ip_arr[@]}
eth_len=${#eth_arr[@]}
i=0;
e=0;
while(true); do
#ip route replace 0.0.0.0 dev eth0:1 src 192.168.1.18
route_cmd="ip route replace 0.0.0.0 dev ${eth_arr[e]} src ${ip_arr[i]}"
echo $route_cmd
eval $route_cmd
sleep 300
(i++)
(e++)
if [ $i -eq $ip_len ]; then
i=0;
e=0;
echo "all ips exhausted - starting from first again"
# break;
fi
done
答案 0 :(得分:4)
我想发表评论,但由于我没有足够的分数,所以不会让我。
考虑:
关于最后一句话: bootp / dhcp将为x持续时间提供IP。说它的60分钟。一半时间之后它将“检查”bootp / dhcp服务器是否可以保留IP,并再次将租约延长到60分钟,这可能意味着对ifconfig进行小的重新配置(甚至可能在脚本的同一时间) ?)。
HTH