วันอังคารที่ 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
ให้เกินให้น้อยที่สุด หรือให้ได้พอดีที่สุด จะเป็นดีที่สุดครับ

1 ความคิดเห็น:

aksk กล่าวว่า...

จาก
/29 255.255.255.252 0.0.0.7
/30 255.255.255.255 0.0.0.3

มันน่าจะเป็น
/29 255.255.255.248 0.0.0.7
/30 255.255.255.252 0.0.0.3