Cisco ก็สามารถเขียน script TCL ได้น่ะครับ ตัวอย่างต้องการ ping ไปหลายๆ ip
#tclsh ! เรียกใช้ tcl shell
foreach ip {
192.168.1.1
192.168.1.2
192.168.1.3
192.168.1.4
} { puts [ ping $ip source loopback0 repeat 100 ] }
! ก็จะเห็น Output
! ถ้าต้องการ ออกจาก tcl shell
#tclquit
เราสามารถเอาไป apply เพื่อใช้งาน script อื่นๆได้
Thursday, March 29, 2007
[Cisco] เขียน script tcl บน router
[Cisco] เคยลอง ping test จำนวนมาก ไปที่ CAT65xx ตัวเอง แล้ว show proc cpu สูงมาก
วิธีแก้ไขให้ไปทำการ police icmp ที่ control-plane
แต่ผลของการ config จะไม่มีผลกับการ ping ผ่านตัว router ออกไป น่ะครับ จะมีผลเฉพาะกับการ ping มาที่ตัว router เท่านั้น
#conf t
ip access-list extended DDOS
permit icmp any any
class-map DDOS
match access-group name DDOS
policy-map CONTROL_PLANE
class DDOS
police 128000 conform-action transmit exceed-action drop violate-action drop
control-plane
service-policy input CONTROL_PLANE
end
#show policy-map control-plane
เท่านี้เรียบร้อยแล้ว ping มาที่ตัว router เท่าไหร่ก็ cpu ไม่สูง
[Cisco] ให้เก็บ config เป็น Archive log เวลา write mem ทุกครั้ง
เวลาเราต้องการดู log config เก่าๆมักจะมีปัญหา เพราะอาจจะไม่มีการเก็บไว วิธีนี้จะทำการเก็บ config ไว้ทุกครั้งที่ทำการ write mem ....
IOS version ใหม่ๆหน่อยน่ะครับ
เราจะทำ archive configไปเก็บไว้ใน flash ง่ายสุด
#mkdir flash:config-backup !<-- สร้าง directory ก่อนเพื่อเก็บ config
#conf t
archive
path flash:config-backup/config
maximum 14
write-memory
end
เสร็จแล้วต้องลองทดสอบดู
#wr
#show archive
There are currently 7 archive configurations saved.
The next archive file will be named flash:config-backup/config-7
Archive # Name
0
1 flash:config-backup/config-1
2 flash:config-backup/config-2
3 flash:config-backup/config-3
4 flash:config-backup/config-4
5 flash:config-backup/config-5
6 flash:config-backup/config-6 <- Most Recent
7
8
9
10
11
12
13
14
Ok จะเห็น config เก็บไว้
รู้จัก traceroute
[Cisco] command ใน cisco สำหรับ test aaa
ต้องการ performance testing ของ aaa
#conf t
aaa new-model
aaa authentication login default group radius local
radius-server host 192.168.1.1 key cisco
#test aaa group radius USERNAME PASSWORD new-code count 1000 rate 100
[Mac] จน เครียด อยากได้ MacBook
acตอนนี้มีอาการบ้า อยากได้ macbook 2.0G black มาใช้เล่นจัง ต้องมาระบายใน blog
at 1:43 AM
[Linux] เขียนแต่ cisco มาเยอะแล้วอยากเก็บ script firewall ง่ายๆเอาใว้ใช้เอง
เขียนแต่ cisco มาเยอะแล้วอยากเก็บ script firewall ง่ายๆเอาใว้ใช้เอง เวลา install linux จะได้ copy ไปใช้เลย
#vi rc.firewall
#! /bin/sh
export PATH="${PATH:+$PATH:}/usr/sbin:/sbin"
do_start() {
iptables -A INPUT -i lo -j ACCEPT
## syn-flodding protection
iptables -N syn-flood
iptables -A INPUT -p tcp --syn -j syn-flood
iptables -A syn-flood -m limit --limit 1/s --limit-burst 4 -j RETURN
iptables -A syn-flood -j LOG --log-prefix "FIREWALL SYN-FLOOD: "
iptables -A syn-flood -j DROP
iptables -A INPUT -p udp -m udp -s 0/0 --sport 53 -d 0/0 -j ACCEPT
## Make sure NEW tcp connections are SYN packets
iptables -A INPUT -p tcp ! --syn -m state --state NEW -j DROP
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
## Allow deluge bittorrent open tcp port 53045
iptables -A INPUT -p tcp -m tcp --dport 53045 --syn -j ACCEPT
## Allow ssh open tcp port 22
iptables -A INPUT -p tcp -m tcp --dport 22 --syn -j ACCEPT
iptables -A INPUT -p udp -j LOG --log-prefix "FIREWALL UDP-IN: "
iptables -A INPUT -p udp -j DROP
iptables -A INPUT -p icmp -j LOG --log-prefix "FIREWALL ICMP-IN: "
iptables -A INPUT -p icmp -j DROP
iptables -A INPUT -p tcp -j LOG --log-prefix "FIREWALL TCP-IN: "
iptables -A INPUT -p tcp -j DROP
iptables -A INPUT -j LOG --log-prefix "FIREWALL PROTO-X-IN: "
iptables -A INPUT -j DROP
}
do_stop() {
iptables -F
iptables -X
iptables -Z
}
case "$1" in
start)
echo "Starting Firewall..."
do_start
;;
stop)
echo "Stopping Firewall..."
do_stop
;;
restart)
echo "Restarting Firewall..."
do_stop
sleep 2
do_start
;;
*)
echo "Usage: $0 {start|stop|restart}"
exit 1
esac
exit 0
[Cisco] อยากจะ decrypt password ที่เราตั้งไว้ใน cisco router
พอดีลืม password ของ router แต่มันถูก encrypt ไว้ แต่มี config ของเก่าเก็บไว้ไม่อยากจะ recovery password ทำไงดี...ไม่มี program decrypt ด้วย พอดีมี trick ซึ่งใช้ได้เฉพาะที่เป็น type 7 เท่านั้น เช่นใน router มีการ config
Router(config-keychain)#key 1
Router(config-keychain-key)#key-string 7 112A3036343D
Router(config-keychain-key)#end
Router#sh key chain TEST
Key-chain TEST:
key 1 -- text "CISCO" ! <--- this is result from decrypt accept lifetime (always valid) - (always valid) [valid now] send lifetime (always valid) - (always valid) [valid now]
[Cisco] จะ config access-list ให้ทำงานในช่วงเวลา
R1#conf t
periodic weekdays 8:30 to 17:30 ! กำหนดช่วงเวลาทุกวันจันทร์ - ศุกร์ เวลา 08:30 - 17:30
[Cisco] อยากตั้งเวลาให้ save config ใน router เหมือน crontab ใน linux
policy-list BACKUP ! มีการเรียกใช้ policy-list BACKUP
!
kron policy-list BACKUP ! สร้าง policy-list ชื่อ BACKUP
!
BACKUP inactive, will run again in 0 days 00:04:3
[Cisco] Cisco router ก็สร้างเมนูก็ได้น่ะ
ไม่รู้ว่าจะเริ่มต้นยังไงเอาเป็นว่าเรามา config Cisco router ให้มีเมนูใช้เวลาเรา login เข้ามา
menu MAIN-MENU title Title Menu for MAIN-MENU <---------- แสดง title menu menu MAIN-MENU line-mode <---- เพื่อต้องการให้ key enter เมื่อเลือก item โดยปกติถ้าเรากด key มันจะทำงานตาม item นั้นทันที menu MAIN-MENU text 1. Ping to R5 <--- แสดงข้อความ "Ping to R5" menu MAIN-MENU command 1. ping 150.1.5.5 <---- item ที่ 1 ให้ run command : ping 150.1.5.5 menu MAIN-MENU text 2. Ping to R6 menu MAIN-MENU command 2. ping 150.1.6.6 menu MAIN-MENU text 3. Traceroute to R5 menu MAIN-MENU command 3. trace 150.1.5.5 menu MAIN-MENU text 4. Traceroute to R6 menu MAIN-MENU command 4. trace 150.1.6.6 menu MAIN-MENU text 5. Exit menu MAIN-MENU command 5. exit menu MAIN-MENU prompt CPlease Selection menu: <--- แสดง prompt และ รับ key item ที่เลือก
-----------------
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 150.1.6.6, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 60/176/304 ms
[Cisco] Config Cisco870 ต่อ ADSL
พอดีลูกค้าให้ผม config Cisco870 เชื่อมต่อ ADSL ของ true เลยเอา config มาแบ่งกัน
ผมใช้ IOS version นี้ และต้องขอโทษด้วยครับที่ไม่มี show status พอดีลืม capture ไว้....
Cisco IOS Software, C870 Software (C870-ADVIPSERVICESK9-M), Version 12.4(11)T, RELEASE SOFTWARE (fc2)ตัวอย่างการ config
Router#sh run
Building configuration...
Current configuration : 1377 bytes
!
version 12.4
no service pad
service timestamps debug datetime msec
service timestamps log datetime msec
service password-encryption
!
hostname Router
!
boot-start-marker
boot-end-marker
!
!
no aaa new-model
ip cef
!
!
no ip dhcp use vrf connected
!
ip dhcp pool DEFAULT
network 172.25.0.0 255.255.255.0
default-router 172.25.0.254
dns-server 203.144.207.29 203.144.207.49
!
!
!
multilink bundle-name authenticated
!
interface ATM0
mtu 1492
no ip address
no atm ilmi-keepalive
pvc 0/100
encapsulation aal5snap
pppoe-client dial-pool-number 1
!
dsl operating-mode auto
!
interface FastEthernet0
!
interface FastEthernet1
!
interface FastEthernet2
!
interface FastEthernet3
!
interface Vlan1
ip address 172.25.0.254 255.255.255.0
ip nat inside
ip virtual-reassembly
!
interface Dialer1
ip address negotiated
ip nat outside
ip virtual-reassembly
encapsulation ppp
dialer pool 1
dialer-group 1
ppp pap sent-username USERNAME password PASSWORD
!
ip route 0.0.0.0 0.0.0.0 Dialer1
!
!
no ip http server
no ip http secure-server
ip nat inside source list 1 interface Dialer1 overload
!
access-list 1 permit 172.25.0.0 0.0.0.255
dialer-list 1 protocol ip permit
!
!
!
!
control-plane
!
!
line con 0
no modem enable
transport output all
line aux 0
line vty 0 4
login
!
scheduler max-task-time 5000
end
[Cisco] Config ให้ Cisco router เป็น PPPoE server
พอดีหัวหน้าอยากได้ให้ Cisco router สามารถทำเป็น pppoe server ใน LAN แล้วให้ user ใน LAN connect ผ่าน PPPoE ก่อนออกไป internet โดยใช้ username/password จาก radius server.
network diagram..
{internet cloud}<----->[ g0/0 Cisco2800 g0/1 ]<----->[ PC .(pppoe client) ]
aaa authentication login PPPoE group radius local
aaa authentication ppp PPPoE group radius local
aaa authorization network PPPoE group radius local
aaa accounting exec PPPoE start-stop group radius
aaa accounting network PPPoE start-stop group radius
bba-group pppoe global
virtual-template 1
sessions auto cleanup
interface GigabitEthernet0/0
description *** public internet ***
ip address x.x.x.x 255.255.255.252
load-interval 30
duplex auto
speed auto
ip nat outside
end
interface GigabitEthernet0/1
description *** PPPoE ***
ip address 192.168.222.1 255.255.255.0
load-interval 30
duplex auto
speed auto
pppoe enable group global
end
interface Virtual-Template1
ip unnumbered GigabitEthernet0/0
ip nat inside
ip virtual-reassembly
peer default ip address pool PPPoE_POOL
ppp authentication pap PPPoE
ppp authorization PPPoE
ppp accounting PPPoE
!
ip local pool PPPoE_POOL 192.168.234.1 192.168.234.254
ip nat inside source list 1 interface GigabitEthernet0/0 overload
radius-server host 192.168.222.2 key cisco
access-list 1 permit 192.168.234.0 0.0.0.255
[linux] อยากทำ ramdisk ใน linux
อันเนื่องมาจากต้องการเขียนและอ่านไฟล์เร็วๆ ไว้สำหรับเป็น temp ไฟล์เลยต้องสร้าง ramdisk แล้วไปใช้เนื้อที่ตรงส่วนนั้น เริ่มต้นเลยดีกว่า
ผมใช้ linux Ubuntu 7.04 (feisty) ครับ
sudo vi /boot/grub/menu.lst
เพิ่มตรงบรรทัด kernel ตรงท้ายบรรทัด ramdisk_size=256000 (หน่วยเป็น K) แล้ว reboot
พอ reboot ให้ตรวจสอบโดย
#dmesg | grep RAM
RAMDISK driver initialized: 16 RAM disks of 256000K size 1024 blocksize
จากนั้นเราสร้างเป็น script ไว้เรียกใช้
vi make_ramdisk.sh
#!/bin/sh
dd if=/dev/zero of=/dev/ram0 bs=1k count=256000
mke2fs -vm0 /dev/ram0 256000
mkdir -p /mnt/ramdisk
mount /dev/ram0 /mnt/ramdisk
จัดการให้มันสามารถ execute ได้
#sudo chmod 755 make_ramdisk.sh
เริ่มต้นที่จะมี blog เป็นของตัวเอง....
ไม่รู้เป็นไงอยากมี blog เป็นของตัวเองให้ชาวบ้านมาอ่านดู...............แบ่งปันความรู้ (หรือความโง่) ออกมาให้สาธารณะชน ยืมคำจาก www.pantip.com ว่า "ไม่มีใครรู้ในทุกๆ อย่าง เรารู้ในสิ่งที่ผู้อื่นไม่รู้ มากเท่ากับที่ไม่รู้ในสิ่งที่ผู้อื่นรู้"