锐捷认证。非标准的802.1认证。 我采用mystar来认证,但是不会重连。。
我自已写了个shell script来实现断线后重连。。。
华农现在的校园网用锐捷认证,windows下的认证程序还行。linux下的客户端垃圾得不得了啊。。我用苹果笔记本PowerBookG3(fireware)。锐捷没有苹果下的认证客户端,于是我上不了网了,很是郁闷。。。
我装了gentoo。最初尝试用qemu的user-mode来虚拟x86的指令集,再用xrgsu(锐捷linux版认证程序)提供运行所需的libs。最终xrgsu可以运行。但是找不到网卡。后面我就放弃了。
拉了一个月ADSL,在一次偶然的机会我发现了mystar。mystar是用libnet+libpcap写的,关键的代码不到200行(libnet和libpcap是平台无关的分组构造发送、分组截获C函数库)mystar是网上一个叫netxray的人写的。
下面是源码http://bbs.whnet.edu.cn/upload/mystarV0.1-src.zip,解压密码是netxray 解压后:
cd mystarV0.1
make
编译。
#修改我的ID跟password。
vim mystar.conf
使用./mystar运行,并且认证成功!
随后我发现一个问题,就是不会自动重连,老是会断线。在mystar.conf里面有一段
#enable intelligent reconnect?
# 1 means enable, and 0 means disable
intelligentReconnect=1
我将其设置为1也不行。
这样每次过几分钟我就要^C,再./mystar,很不爽。。于是我决定写个script来实现自动重连。
一开始我采用一个笨方法。写一个循环让它过三分钟就kill
mystar,再重新运行。 如下:
#!/bin/bash
cd ~/mystarV0.1
while :
do
./mystar &
sleep 180
killall mystar
done
后面我改进了这个脚本。代码如下:
#!/bin/bash
PATH=/bin:/usr/bin:/sbin:/usr/sbin
cd ~/mystarV0.1
./mystar &
while :
do
ping -c 5 -W 3 219.222.66.254 &>/dev/null
if [ $? -ne 0 ] ; then
kill -9 `pidof mystar`
./mystar &
fi
sleep 10
done
每10秒钟ping一次华农的网关。如果不通过,证明已经断线。将mystar
kill掉,并重新运行。
这样子就可以了。。
只要开机运行一个这个script就行。当然也可以用rc-update将其加入到系统运行级别。现在上网根本就没感觉到认证的存在。。
哈哈。。。