2009年10月29日 星期四

網路開機 Wake on Lan

◎在Windows下,使用命令列網路開機
1.從Depicus下載WoL Command Line程式
2.解壓縮後得到WolCmd.exe
3.從命令列執行或是寫成批次擋執行
EX.
d:\wolcmd 001122334455 200.210.230.240 255.255.255.240
d:\wolcmd 00aabbccddee 10.0.0.254 255.255.255.0

Depicus官網: http://www.depicus.com/wake-on-lan/

Depicus下載: http://www.depicus.com/download.aspx?product=commandline


◎在Linux下,使用命令列網路開機
1.使用RPM安裝
rpm -ivh http://gsd.di.uminho.pt/jpo/software/wakeonlan/downloads/wakeonlan-0.41-0.fdr.1.noarch.rpm
2.執行 wakeonlan
EX.
一般喚醒
wakeonlan 00:11:22:33:44:99
指定IP跟PORT
wakeonlan -i 192.168.1.1 -p 7 00:11:22:33:44:99

官網: http://gsd.di.uminho.pt/jpo/software/wakeonlan/

2009年10月22日 星期四

使用tc進行限流(QOS)

系統使用CentOS 5.1
使用內建的tc指令進行限流

1.編輯tc規則
◎此例是與iptables規則檔放在一起,也可另外存放執行

vim /etc/iptables.rule

#設定網卡參數

WAN_IF="eth0"

LAN_IF="eth1"

#下載限流規則(針對內部網卡)
##清除規則
/sbin/tc qdisc del dev $LAN_IF root 2>/dev/null
##設定預設群組
/sbin/tc qdisc add dev $LAN_IF root handle 10: htb default 30
##設定群組總流量,rate保障頻寬、ceil限制頻寬
/sbin/tc class add dev $LAN_IF parent 10: classid 10:1 htb rate 256kbps ceil 256kbps
##設定各群組限流,prio為分配頻寬的優先順序
/sbin/tc class add dev $LAN_IF parent 10:1 classid 10:10 htb rate 64kbps ceil 256kbps prio 1
/sbin/tc class add dev $LAN_IF parent 10:1 classid 10:20 htb rate 64kbps ceil 128kbps prio 1
/sbin/tc class add dev $LAN_IF parent 10:1 classid 10:30 htb rate 32kbps ceil 64kbps prio 2
/sbin/tc qdisc add dev $LAN_IF parent 10:10 handle 101: pfifo
/sbin/tc qdisc add dev $LAN_IF parent 10:20 handle 102: pfifo
/sbin/tc qdisc add dev $LAN_IF parent 10:30 handle 103: pfifo
/sbin/tc filter add dev $LAN_IF parent 10: protocol ip prio 100 handle 10 fw classid 10:10
/sbin/tc filter add dev $LAN_IF parent 10: protocol ip prio 100 handle 20 fw classid 10:20
/sbin/tc filter add dev $LAN_IF parent 10: protocol ip prio 100 handle 30 fw classid 10:30

#上傳限流規則(針對外部網卡)
/sbin/tc qdisc del dev $WAN_IF root 2>/dev/null
/sbin/tc qdisc add dev $WAN_IF root handle 10: htb default 30
/sbin/tc class add dev $WAN_IF parent 10: classid 10:1 htb rate 256kbps ceil 256kbps
/sbin/tc class add dev $WAN_IF parent 10:1 classid 10:10 htb rate 64kbps ceil 256kbps prio 1
/sbin/tc class add dev $WAN_IF parent 10:1 classid 10:20 htb rate 64kbps ceil 128kbps prio 1
/sbin/tc class add dev $WAN_IF parent 10:1 classid 10:30 htb rate 32kbps ceil 64kbps prio 2
/sbin/tc qdisc add dev $WAN_IF parent 10:10 handle 101: pfifo
/sbin/tc qdisc add dev $WAN_IF parent 10:20 handle 102: pfifo
/sbin/tc qdisc add dev $WAN_IF parent 10:30 handle 103: pfifo
/sbin/tc filter add dev $WAN_IF parent 10: protocol ip prio 100 handle 10 fw classid 10:10
/sbin/tc filter add dev $WAN_IF parent 10: protocol ip prio 100 handle 20 fw classid 10:20
/sbin/tc filter add dev $WAN_IF parent 10: protocol ip prio 100 handle 30 fw classid 10:30

2.設定iptables規則,針對IP將封包加上標記
◎如果美各IP需分別設定上傳跟下載的規則,用戶多時會造成規則暴增,所以我改用陣列方式執行規則

#建立QOSa陣列,將分組10用戶IP加入
QOSa=(192.168.1.1 192.168.1.2 192.168.1.3)

#針對QOSa陣列,標記為群組10
for IPa in ${QOSa[@]}; do
/sbin/iptables -t mangle -A POSTROUTING -d $IPa -j MARK --set-mark 10
/sbin/iptables -t mangle -A PREROUTING -s $IPa -j MARK --set-mark 10
done

#建立QOSa陣列,將分組20用戶IP加入
QOSb=(192.168.1.10 192.168.1.11 192.168.1.12)

#針對QOSb陣列,標記為群組20
for IPb in ${QOSb[@]}; do
/sbin/iptables -t mangle -A POSTROUTING -d $IPb -j MARK --set-mark 20
/sbin/iptables -t mangle -A PREROUTING -s $IPb -j MARK --set-mark 20
done

3.執行規則
如果規則都是放在iptables.rule的話,只要執行iptables.rule即可
sh /etc/iptables.rule
或是執行自建的規則檔

2009年10月8日 星期四

SIP的圖形管理介面:asterisk-gui

使用CentOS系統,已安裝asterisk 1.4

1.安裝svn
yum install subversion

2.使用svn下載asterisk-gui
svn co http://svn.digium.com/svn/asterisk-gui/branches/2.0 asterisk-gui

3.安裝
asterisk-gui
cd asterisk-gui sh configure && make && make install

4.設定網頁環境
vim /etc/asterisk/http.conf
http.conf:

[general]
enabled=yes
bindaddr=0.0.0.0 #指定使用IP
bindport=8088 #指定使用PORT
prefix=asterisk
enablestatic=yes

5.設定登入帳號
vim /etc/asterisk/manager.conf
manager.conf:

[general]
enabled=yes
webenabled=yes
port=5038
bindaddr=0.0.0.0

[admin] #登入ID
secret=admin123 #登入密碼
deny=0.0.0.0/0.0.0.0 #拒絕來源的IP
permit=127.0.0.1/255.255.255.0 #允許來源的IP
read = system,call,log,verbose,command,agent,user
write = system,call,log,verbose,command,agent,user


  • 執行make checkconfig 可以檢查是否有設定錯誤

##EasyReadMore##