新聞中心
最近在centos下做freeradius的高可用配置,使用LVS的vip做輪詢:

成都創(chuàng)新互聯(lián)服務(wù)項目包括翔安網(wǎng)站建設(shè)、翔安網(wǎng)站制作、翔安網(wǎng)頁制作以及翔安網(wǎng)絡(luò)營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢、行業(yè)經(jīng)驗、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,翔安網(wǎng)站推廣取得了明顯的社會效益與經(jīng)濟效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到翔安省份的部分城市,未來相信會繼續(xù)擴大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!
freeradius的配置見前面的文章;
下面是lvs的keepalived的配置:
global_defs {
router_id LVS_DEVEL_TEST
}
vrrp_sync_group LVS_RA {
group {
VI_1
}
}
vrrp_instance VI_1 {
state MASTER #主備
interface eth0
virtual_router_id 123 #局域網(wǎng)內(nèi)的唯一標(biāo)識
priority 80 #優(yōu)先級
advert_int 3
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
x.x.x.x #虛擬ip地址
}
debug
}
virtual_server x.x.x.x 1812 { #虛擬ip地址 UDP端口
delay_loop 6
lb_algo sh #調(diào)度算法
lb_kind TUN #lvs的轉(zhuǎn)發(fā)模式
protocol UDP #UDP協(xié)議
real_server x.x.x.x 1812 { #real IP地址和UDP端口
MISC_CHECK { #MISC的檢測方式
misc_path "/data/shell/UDP_CHECK.sh x.x.x.x 1812" #UDP的檢測腳本如下
misc_timeout 10 #腳本執(zhí)行超時時間
misc_dynamic
}
}
real_server x.x.x.x 1812 {
MISC_CHECK {
misc_path "/data/shell/UDP_CHECK.sh x.x.x.x 1812"
misc_timeout 10
misc_dynamic
}
}
}
UDP檢測腳本/data/shell/UDP_CHECK.sh:
#!/bin/bash
/usr/bin/nc -uz -w1 $1 $2 | grep succeeded > /dev/null
exit $?
注意:freeradius和keepalived不能在一臺服務(wù)器上,會對包的轉(zhuǎn)發(fā)產(chǎn)生影響
下面需要在real上綁定一下vip并且腳本需放到/etc/rc.d/init.d/目錄底下,綁定腳本addVIP內(nèi)容如下:
#!/bin/bash
IPADDR=(x.x.x.x) //填寫VIP地址
NUM=`expr ${#IPADDR[*]} - 1`
start_vip(){
for i in `seq 0 $NUM`;do
ifconfig lo:$i ${IPADDR[$i]} broadcast ${IPADDR[$i]} netmask 255.255.255.255 up
route add -host ${IPADDR[$i]} dev lo:$i
done
echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore
echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce
echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore
echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce
echo "0">/proc/sys/net/ipv4/conf/all/rp_filter
echo "0">/proc/sys/net/ipv4/conf/eth0/rp_filter
echo "0">/proc/sys/net/ipv4/conf/lo/rp_filter
echo "0">/proc/sys/net/ipv4/conf/default/rp_filter
/sbin/sysctl -p >/dev/null 2>&1
}
stop_vip(){
for i in `seq 0 $NUM`;do
/sbin/route del -host ${IPADDR[$i]} dev lo:$i
/sbin/ifconfig lo:$i ${IPADDR[$i]} broadcast ${IPADDR[$i]} netmask 255.255.255.255 down
done
echo "0" >/proc/sys/net/ipv4/conf/lo/arp_ignore
echo "0" >/proc/sys/net/ipv4/conf/lo/arp_announce
echo "0" >/proc/sys/net/ipv4/conf/all/arp_ignore
echo "0" >/proc/sys/net/ipv4/conf/all/arp_announce
echo "0" >/proc/sys/net/ipv4/ip_forward
echo "1">/proc/sys/net/ipv4/conf/all/rp_filter
echo "1">/proc/sys/net/ipv4/conf/eth0/rp_filter
echo "1">/proc/sys/net/ipv4/conf/lo/rp_filter
echo "1">/proc/sys/net/ipv4/conf/default/rp_filter
/sbin/sysctl -p >/dev/null 2>&1 //這里的文件不一定全部存在,主要看系統(tǒng)
}
case $1 in
start|START)
start_vip
if [ $? == "0" ];then
echo "setting vip success"
else
echo "setting vip fault"
fi
;;
stop|STOP)
stop_vip
if [ $? == "0" ];then
echo "remove vip success"
else
echo "remove vip fault"
fi
;;
*)
echo "Usage: $0 {start|stop}"
exit 1
;;
esac
在real上執(zhí)行此腳本(前提是給定執(zhí)行權(quán)限):#/etc/rc.d/init.d/addVIP start
綁定效果如下;
開啟lvs服務(wù)器的keepalived服務(wù),如果freeradius服務(wù)正常,則lvs看到效果如下:
最后找一臺服務(wù)器用radius的測試命令radtest去測試吧!
說明一下為什么需要在real服務(wù)器上綁定VIP:在 DR 模式下,由于 UDP 是無連接狀態(tài)的,當(dāng) RS 回應(yīng)結(jié)果時默認采用原先的地址,Client 在轉(zhuǎn)發(fā)數(shù)據(jù)包時,源地址不是原先請求的 IP(VS IP),所以會存 在問題 。
下面再分享一些關(guān)于LVS知識的文檔。
網(wǎng)頁標(biāo)題:基于CentOS的FreeRADIUS高可用LVS(UDP)
文章鏈接:http://fisionsoft.com.cn/article/djhhsih.html


咨詢
建站咨詢
