วันอังคารที่ 24 มิถุนายน พ.ศ. 2551

wildcard mask

wildcard mask

บังเอิญไปอ่านแบบทดสอบเกี่ยวกับเรื่องของ wildcard mask รู้สึกว่ายังงงๆยังไงไม่รู้ พอดีวันนี้ถือโอกาสหาข้อมูลหลายชั่วโมงก็พอรู้เรื่องกะ
เขาบ้าง ก่อนอื่นมาทำความรู้จักกับ ไอ้ wildcard mask ก่อนว่ามันคืออะไร มันก็คือ subnet ที่ถูก reverse นั่นเอง
อย่างเช่น subnet 255.255.255.0 ถ้าเป็น wildcard mask มันจะเป็น 0.0.0.255
แล้วมันจะเอามาใช้ตอนไหน?? ที่เห็นส่วนใหญ่จะเอามาใช้กับ access-list แล้วก็ OSPF ครับ

ตัวอย่าง config ospf

R1(config)#router ospf 1
R1(config-router)#network 192.168.0.0 0.0.0.255 area 0
R1(config-router)#network 192.168.1.0 0.0.0.3 area 0
R1(config-router)#end

ตัวอย่าง access-list

access-list 101 deny tcp any 65.54.128.1 0.0.0.15



ตารางระหว่าง subnet mask กับ wildcard mask

Subnet mask Wild card mask
/24 255.255.255.0 0.0.0.255
/25 255.255.255.128 0.0.0.127
/26 255.255.255.192 0.0.0.63
/27 255.255.255.224 0.0.0.31
/28 255.255.255.240 0.0.0.15
/29 255.255.255.252 0.0.0.7
/30 255.255.255.255 0.0.0.3


ในการใช้ wildcard mask นั้นมักจะเริ่มจากไอพีที่เป็นเลขคู่เสมอ

เช่น ต้องการบล็อกไอพี 192.168.0.4 - 192.168.0.7 ใน access-list ทำได้ดังนี้

access-list 101 deny ip 192.168.0.4 0.0.0.3 any
คำสั่งนี้หมายความว่าจะไม่ให้ ไอพี 192.168.0.4 - 192.168.0.7 ติดต่อไปยังไอพีอื่นๆได้

ในส่วนของ 0.0.0.3 มันก็คือ 255.255.255.252 ใน subnet mask นั่นเอง ถ้าจะดูแบบง่ายๆก็จะได้ว่า
192.168.0.4/30 = 192.168.0.4 255.255.255.252 ช่วงของไอพีจะเป็น 192.168.0.4 - 192.168.0.7 นั่นเองครับ


แต่ถ้าต้องการ deny จาก 192.168.0.1 - 192.168.0.3 ล่ะเราจะต้องใช้คำสั่งอย่างไร
วิธีที่ง่าย แต่ค่อนข้างพิมพ์หลายบรรทัดหน่อย ก็คือกำหนดแต่ละไอพีไปเลยแนะนำว่าต้องไม่มีช่วงที่ยาวนะครับ

access-list 120 deny ip 192.168.0.1 0.0.0.0 any
access-list 120 deny ip 192.168.0.2 0.0.0.0 any
access-list 120 deny ip 192.168.0.3 0.0.0.0 any

ในที่นี้จะได้อย่างที่ต้องการพอดี แต่ถ้ามีช่วงที่ยาวอย่างเช่น ต้องการ deny จาก 192.168.0.1 - 192.168.0.99 ก็คงต้องทำ 99 บรรทัด ซึ่งจะทำให้ยาวมากๆ

อีกกรณีหนึ่งคือทำบรรทัดน้อยแต่ว่าจะเกินขอบเขตขอบ IP ที่ต้องการ
access-list 121 deny ip 192.168.0.1 0.0.0.3 any
คำสั่งนี้จะ deny ip ตั้งแต่ 192.168.0.0 - 192.168.0.3 ทำไมน่ะเหรอครับ มันก็มีเหตุผลดังนี้

จาก access-list 121 มันหมายความว่าต้องการ deny 192.168.0.1/30

192.168.0.00000001(เลขฐานสอง)
255.255.255.11111100(เลขฐานสอง)

เมื่อทำการ AND กัน จะเป็น 192.168.0.0/30 ซึ่งก็หมายความว่า จะเริ่มตั้งแต่ 192.168.0.1 - 192.168.0.3 นั่นเอง


ต่อไปเป็นการประยุกต์กรณีมี rang ที่ยาว
ต้องการอนุญาติไอพี ตั้งแต่ 192.168.0.7 - 192.168.0.95 สามารถทำได้ดังนี้
access-list 111 permit ip 192.168.0.7 0.0.0.63 any rang นี้จะเริ่มตั้งแต่ 192.168.0.0 - 192.168.0.63
access-list 111 permit ip 192.168.0.64 0.0.0.31 any rang นี้จะเริ่มตั้งแต่ 192.168.0.64 - 192.168.0.95
ดังนั้น จาก access-list 111 จะ permit 192.168.0.0 - 192.168.0.95 ซึ่งอาจจะเป็น rang ip ที่เกินไปสักหน่อย

เพราะว่าในบางครั้งเราอาจจะทำ wildcard mask ที่เกิน ซึ่งอาจจะมีผลต่อการติดต่อในบางไอพี เราจึงต้องทำ wildcard mask
ให้เกินให้น้อยที่สุด หรือให้ได้พอดีที่สุด จะเป็นดีที่สุดครับ

วันพฤหัสบดีที่ 19 มิถุนายน พ.ศ. 2551

DHCP ( Dynamic Host Configuration Protocol )

DHCP ( Dynamic Host Configuration Protocol )

ปกติเราน์เตอร์ทั่วไปจะมีการกำหนดค่า dhcp ให้ทำการแจกไอพีให้ client ใช้งาน ใน router cisco ส่วนใหญ่
จะไม่ได้ทำการเซต dhcp ไว้ ผมก็เลยจะแนะนำการเซต dhcp บน router cisco ครับ


Router(config)#ip dhcp pool test
Router(dhcp-config)# network 192.168.0.0 255.255.255.0
Router(dhcp-config)#default-router 192.168.0.1
Router(dhcp-config)#dns-server a.b.c.d (IP DSN)
Router(dhcp-config)#lease 0 10


บรรทัดแรกเป็นการกำหนดชื่อของ dhcp pool
บรรทัดที่สองเป็นการกำหนด IP ที่ใช้เป็น default gateway ในที่นี้ใช้ 192.168.0.1 เป็น G/W
บรรทัดที่สามกำหนด DNS server
บรรทัดที่สี่เป็นการกำหนดเวลาในการใช้ไอพีของ client แต่ละเครื่อง (lease DAYS HOURS MINUTES)
จากตัวอย่างเซตไว้เป็น 10 ชั่วโมง หลังจากนั้นพอมาต่ออีกก็จะเป็นไอพีอื่น ถ้าอยากจะใช้ไอพีเดิมตลอดก็
สามารถเซตคำสั่งเป็น lease infinite ก็ได้

ผู้อ่านอาจจะสงสัยว่าถ้าเกิดเราอยากกำหนดช่วงของไอพีที่ไม่อยากให้แจก dhcp ล่ะ ???? ต้องทำยังไง ????

Router(config)#ip dhcp excluded-address 192.168.0.2 192.168.0.10

จากคำสั่งข้างต้นเป็นการกำหนดว่าช่วงของไอพี 192.168.0.2-192.168.0.10 จะไม่มีการแจกให้กับเครื่อง client ที่มาต่อ

ถ้าเราอยากกำหนดให้เป็นไอพีตัวเดียวที่ไม่อยากแจกก็ได้นะครับ

Router(config)#ip dhcp excluded-address 192.168.0.2

ซึ่งคำสั่งนี้เป็นการกำหนดให้ไอพี 192.168.0.2 ไม่มีการแจกจากตัวเราน์เตอร์ครับ

หลังจากนั้นเราก็มากำการ enable dhcp กันด้วยคำสั่ง Router(config)#service dhcp แต่ส่วนใหญ่เราน์เตอร์
จะ enable service นี้ไว้อยู่แล้ว



Router#show ip dhcp binding
เป็นคำสั่งที่ใช้ดูว่าเราน์เตอร์ได้แจกไอพีใดไปมั่ง

Router#debug ip dhcp server
เป็นคำสั่งที่ใช้ในการแก้ปัญหา DHCP

วันศุกร์ที่ 13 มิถุนายน พ.ศ. 2551

Time-Range

ก่อนหน้านี้ไม่เคยรู้ว่า router มันทำได้เกี่ยวกับเรื่องจัดการกับเวลา แต่พอรู้ก็รู้สึกว่ามันมีอะไรให้เราเล่นเยอะมากมายคราวนี้เราจะมาดู
คำสั่งใน router cisco อีกหนึ่งคำสั่งที่ใช้ในการกำหนดช่วงของวันเวลากัน


เริ่มเลยดีกว่า

Phoenix#conf t
Phoenix(config)#time-range test
Phoenix(config-time-range)#periodic daily 20:00 to 23:00

คำสั่งที่ใช้ในการสร้างช่วงเวลาคือ time-range แล้วก็ตั้งชื่ออะไรก็ได้ในที่นี้ตั้งว่า test
จากนั้นเราก็มาสร้างช่วงเวลา ซึ่งสามารถกำหนดได้แบบ เป็นวัน หรือทุกวันก็ได้ แล้วก็กำหนดช่วงเวลา
เสร็จแล้วเราก็มาดูคำสั่งที่เราเพิ่มกัน

Phoenix#sh time-range
time-range entry: test (inactive)
periodic daily 20:00 to 23:00

นี่คือผลที่ได้ สั่งเกตุว่ามี (inactive) หมายความว่ามันยังไม่ active นั่นเอง ป่อย.......


อ่านมาถึงตรงนี้ผมคิดว่าผู้อ่านคงจะมีคำถามแล้วว่า เราจะนำมาใช้ยังไง

ซึ่งคำสั่งข้างต้นถ้ามองแบบโปรแกรมเมอร์ก็เหมือนเราสร้างตัวแปรไว้หนึ่งตัวชื่อว่า test แล้วก็รอที่จะเอาตัวแปรนั้นมาใช้ อ๋อแล้วใช่ไหมล่ะ

เรามาดูวิธีการใช้มันเลยดีกว่า


Phoenix#conf t
Phoenix(config)#access-list 111 permit ip any any time-range test

คำสั่งนี้เป็นการทำ access-list เป็นการกำหนดให้ ip ใดก็ได้สามารถจะติดต่อไปยังปลายทางใดก็ได้ ในช่วงเวลาที่ชื่อว่า test หมายถึงว่าช่วงเวลา
20.00 - 23.00 จะมีการให้เราน์เตอร์ใช้คำสั่งนี้ซึ่งเราจะรู้ได้ยังไงมาคำสั่งนี้มีการใช้ เราจะดูได้โดยใช้คำสั่งดังนี้ครับ



Phoenix#sh access-lists 111
Extended IP access list 111
permit ip any any time-range test (inactive)

ซึ่งตอนนี้หมายความว่ามันยังไม่ทำงาน (inactive) แต่ถ้ามีการใช้งานมันจะเป็นดังนี้ครับ

Phoenix#sh access-lists 111
Extended IP access list 111
permit ip any any time-range test (active)


หวังว่าคงจะนำไปประยุกต์ใช้กันได้นะครับ