วันเสาร์ที่ 30 กรกฎาคม พ.ศ. 2554

Access Control Lists (ACLs)

เป็นการป้องกันพื้นฐานบน Router ในอินเตอร์เน็ต เป็นชุดเงื่อนไขที่กำหนด Packet ที่เราสนใจเพื่อนำไปใช้ในรูปแบบต่างๆ

Access-Lists แบ่งการกำหนดเงื่อนไขได้ 3 แบบ

1. Standard IP Lists มี Number Range ตั้งแต่ 1-99, 1300-1999 สามารถกำหนดเงื่อนไขได้แต่ Source IP
2. Extended IP Lists มี Number Range ตั้งแต่ 100-199, 2000-2699 สามารถกำหนดเงื่อนไขได้ตั้งแต่ Source IP, Destination IP, TCP/IP Protocol และ Destination Ports.
3. Name เป็นการกำหนดเงื่อนไขโดยการพิมพ์ ชื่อ ลงไปแทน Number

การตั้งเงื่อนไขใน Access-Lists

Router จะอ่านเงื่อนไขจากบนลงล่างโดย Router จะเอาข้อมูลของ Packet มาเทียบกับเงื่อนไขบรรทัดบนสุดก่อน ถ้าเข้าเงื่อนไขก็เป็นอันจบโดยไม่ต้องเทียบบรรทัดต่อมา จึงสำคัญเป็นอย่างยิ่งที่ต้องกำหนดเงื่อนไขที่จำเพาะ ก่อนเงื่อนไขที่กว้างกว่า

Access-Lists จะอนุญาต เฉพาะ Packet ที่เข้าเงื่อนไขเท่านั้นโดยถือว่า Packet ที่ไม่เข้าเงื่อนไขจะปฏิเสษ Packet นั้นจึงแบ่งการตั้งค่า Access Control Lists ได้เป็น 2 แบบคือ อนุญาตเฉพาะบางกลุ่ม หรือ ปฏิเสษเฉพาะบางกลุ่ม

ตัวอย่างการตั้งเงื่อนไข Access-List

ฝั่ง Interface fa 0/0
Host A IP 192.168.33.1
Host B IP 192.168.33.2
Host C IP 192.168.33.3
Host D IP 192.168.33.4

ฝั่ง Interface fa 0/1
ทางฝั่ง Server Assign IP ตั้งแต่ 172.22.242.17-172.22.242.30

Finance Web Server IP 172.22.242.23

จากโจทย์ต้องกำหนดให้ Host 192.168.33.3 สามารถใช้งาน website จาก Host 172.22.242.23 ได้
แต่ไม่อนุญาต Host อื่นๆใช้งาน website จาก Host 172.22.242.23


วิธีทำ

Crop1 (config)# access-list 110 permit tcp host 192.168.33.3 host 172.22.242.23 eq 80   
[อนุญาติให้ Host 192.168.33.3 ใช้งาน Port www Host 172.22.242.23]

Crop1 (config)# access-list 110 deny tcp any host 172.168.242.23 eq 80
[ปฏิเสษทุก Host  ที่เรียกใช้งาน Port www Host 172.168.242.23]
Crop1 (config)# access-list 110 permit ip any any
[อนุญาติทุก Packet ที่เหลือที่ไม่เข้าเงื่อนไขใช้งานได้]
ไปที่ interface fa 0/1
Crop1 (config)# int fa0/1
Crop1 (config-if)# ip access-group 110 out [ใช้งาน access-group 110 ที่ขา outbound]
Crop1 (config-if)# end

วันเสาร์ที่ 23 กรกฎาคม พ.ศ. 2554

EIGRP (Enhance Interior Gateway Routing Protocol)

EIGRP เป็น Protocol เฉพาะของ Cisco เท่านั้นไม่สามารถใช้ร่วมกับ Protocol อื่นได้ การเลือกเส้นทางที่ดีที่สุดนั้น EIGRP จะพิจารณาจาก Bandwidth,Delay,Reliability,Load

การทำงานของ EIGRP
1. Protocol-Dependent Modules
2. Reliable Transport Protocol (RTP)
3. Neighbor Discovery/Recovery
4. Diffusing Update Algorithms (DUAL)


Hybrid Routing Protocol ของ EIGRP

          Hybrid (ลูกผสม) เป็นการผสมผสานระหว่าง  Distance Vector และ Link State นั้น เนื่องมาจาก พฤติกรรมในการรับส่งข้อมูลกันในเราติ้ง EIGRP นั้น คล้ายคลึงกันกับ เราติ้งโปรโตคอลทั้งสองแบบดังต่อไปนี้
-          Hello Packet ใน Link State ใช้ในการเช็คสถานะของเราเตอร์เพื่อนบ้านที่มันเชื่อมต่ออยู่ และมีลักษณะในการคำนวณหาเส้นทางที่ไม่มีลูปโดยไม่พึ่งฟีเจอร์ Split Horizon หรือ Poison Reverse (ใช้ DUAL ในการคำนวณแทนทั้งหมด) และมีการอัพเดตโทโปโลยีอย่างรวดเร็ว (Fast Trigger Update)
-          Routing by Rumor ใน Distance Vector ใช้ในการอัพเดตเราติ้งเทเบิล โดยการนำเอา Cost จากอินเทอร์เฟซตัวเอง บวกด้วย Cost ที่จะไปถึงเส้นทางปลายทางโดยรวมมาจากเราเตอร์เพื่อนบ้าน ไม่ได้เป็นการมองภาพรวมเหมือน Link State
 
ตัวอย่างการ Configuration บนโปรแกรม Cisco Packet Tracer

 ทำการ Configuration Router แต่ละตัว คล้ายๆกับบทความ RIP แต่ตอนประกาศ Route นั้นไม่เหมือนกัน

Router(config)# router eigrp (as number ตรงนี้เลขให้กับ eigrp นี้ ตัวอย่าง 100)
Router(config-router)#network ประกาศ network ที่มีภายในเช่น 192.168.1.0
Router(config-router)#network ........
Router(config-router)#no auto summary
Router(config-router)#end
เท่านี้ก็จบการประกาศ route แบบ eigrp แล้วนะครับ 

ส่วนนี้เป็นคำสั่งอื่นๆครับ




1. คำสั่งในการกระจายโหลดไปยังเส้นทางที่มี Cost ไม่เท่ากัน
Router(config)#router eigrp 100
Router(config-router)#network 192.168.100.0
Router(config)#variance <จำนวนเส้นทางที่ได้จากการคำนวณ DELAY+SUM Bandwidth (ไม่ได้กล่าวถึงในบทความนี้)>

2. คำสั่งในการหยุดการแพร่กระจายของ EIGRP Process ไม่ให้เข้าไปในอินเทอร์เฟซที่เจาะจง
Router(config)#router eigrp 100
Router(config-router)#passive-interface <อินเทอร์เฟซที่ต้องการเซต>

3. คำสั่งในการเลือกจำนวนเส้นทางสูงสุดในการกระจายโหลดออกไป
Router(config)#router eigrp 100
Router(config-router)#network 192.168.100.0
Router(config)#variance <จำนวนเส้นทางที่ได้จากการคำนวณ DELAY+SUM Bandwdith (ไม่ได้กล่าวถึงในบทความนี้)>
Router(config)#maximum-paths <จำนวนเส้นทาง>

       4. คำสั่งในการทำ Manual Summarization
Router(config)#interface FastEthernet0/0
Router(config-if)#ip address <ip address> <subnet masks>
Router(config-if)#ip summary-address eigrp <หมายเลข AS> <sum IP> <sum subnet>

ต่อไปเป็นคำสั่งที่ใช้ในการตรวจสอบการทำงานของ EIGRP 
show ip route  - ใช้ในการดูตารางเราติ้งเทเบิล
show ip route *  - เคลียร์เราติ้งเทเบิล
show protocolsใช้ในการดู Routed Protocol (เช่น IP, IPX) และดูสถานะของอินเทอร์เฟซที่รัน Routed Protocol นั้นๆ
show ip protocolsใช้ในการดู สถานะของเราติ้งโปรโตคอล เวลาในการทำอัพเดตต่างๆ ของ EIGRP และ เราติ้งโปรโตคอลอื่นๆที่ได้รันไว้ รวมถึงการดูค่าของ Administrative Distance (AD)
show ip eigrp topology – ใช้ในการดูตารางโทโปโลยีของเราเตอร์ EIGRP
show ip eigrp neighbor detail – ใช้ในการดูตารางเราเตอร์เพื่อนบ้านที่รัน EIGRP
debug ip eigrp packetใช้ในการดูกระบวนการในการส่ง Packet กันในระหว่างอัพเดตระหว่างกลุ่มเราเตอร์ที่รัน EIGRP ด้วยกัน
debug ip eigrp neighborsใช้ในการดูกระบวนการค้นหาเราเตอร์เพื่อนบ้านระหว่างกลุ่มเราเตอร์ที่รัน EIGRP ด้วยกัน
undebug all เป็นการยกเลิกการ Debug Process

 

วันพฤหัสบดีที่ 21 กรกฎาคม พ.ศ. 2554

Routing Information Protocol (RIP)

RIP เป็น Routing Protocol แบบ Distance Vector โดยจะส่ง Routing Table ทั่งหมดของตัวเองให้กับเพื่อนบ้าน ทุกๆ 30 วินาที เพื่อทำการ update routing table โดยใช้งาน UPD ที่ Port 520

RIP มี 2 Version คือ

RIP Version 1 มีลักษณะดังนี้


Classful Distance Vector (DV) routing protocol
Metric = Hop count เชื่อมต่อสูงสุด 15 Hop ถ้าเกินกว่า 15 จะเป็น unreachable
Update broadcast ทุกๆ 30 วินาที
ใช้ Hold-down timer 
ใช้ Split Horizon หรือ Split Horizon with Poison Reverse
Auto Summery


RIP Version 2 มีลักษณะดังนี้


Classless Distance Vector (DV) routing protocol
Metric = Hop count เชื่อมต่อสูงสุด 15 Hop ถ้าเกินกว่า 15 จะเป็น unreachable
Update broadcast ทุกๆ 30 วินาที
ใช้ Hold-down timer 
ใช้ Split Horizon หรือ Split Horizon with Poison Reverse
Auto Summery
Support VLSM
Support CIDR
ใช้ Authentication


โดยปัจจุบันไม่มีการใช้งาน RIPv1 แล้ว


ตัวอย่าง ขั้นตอนการ config RIPv2 บน Cisco Packet Tracer


ในที่นี้จะจำลองการเชื่อมต่อ Router 3 ตัว โดยใช้ Port Serial ในการเชื่อมต่อแต่ละ Router 


ในที่นี้กำหนดให้ Roter 0 เชื่อมต่อกับ Router 1 ที่ Port Serial 0/1/0 ทั่ง 2 ฝั่ง
Router 0 เชื่อมต่อกับ Router 2 ที่ Port Serial 0/1/1 ที่ Router 0 และ Serial 0/1/0 ที่ Router 2
Router 1 เชื่อมต่อกับ Router 2 ที่ Port Serial 0/1/1 ทั่ง 2 ฝั่ง


เริ่มทำการ config ที่ router 0
พิมพ์คำสั่ง router0> enable
พิมพ์คำสั่ง router0# configuration terminal
พิมพ์คำสั่ง router0(config)# interface serial0/1/0
พิมพ์คำสั่ง router0(config-if)# ip address 192.168.1.1 255.255.255.252
พิมพ์คำสั่ง router0(config-if)# clock rate 56000 (จะดูได้อย่างไรว่าขาไหนที่ต้องทำการ config clock rate โดยให้เอา mouse ไปวางไว้บนเส้น สีแดงหรือ สาย Serial DCE มันจะแสดงPort ที่เชื่อมต่อกันโดยด้านที่มีรูป นาฬิกาให้พิมพ์คำสั่ง clock rate ส่วนด้านที่ไม่มีรูปนาฬิกาไม่ต้องทำการใส่ค่า clock rate ส่วนค่า 56000 นั้นการกำหนดซึ่ง Provider จะเป็นผู้กำหนดให้)

พิมพ์คำสั่ง router0(config-if)# no shutdown
พิมพ์คำสั่ง router0(config-if)# exit

พิมพ์คำสั่ง router0(config)# interface serial0/1/1
พิมพ์คำสั่ง router0(config-if)# ip address 192.168.3.1 255.255.255.252
พิมพ์คำสั่ง router0(config-if)# clock rate 56000
พิมพ์คำสั่ง router0(config-if)# no shutdown
พิมพ์คำสั่ง router0(config-if)# exit

พิมพ์คำสั่ง router0(config)# interface fastEthernet 0/0
พิมพ์คำสั่ง router0(config-if)# ip address 192.168.10.254 255.255.255.0
พิมพ์คำสั่ง router0(config-if)# no shutdown
พิมพ์คำสั่ง router0(config-if)# exit

ทำการ config router 1
พิมพ์คำสั่ง router1> enable
พิมพ์คำสั่ง router1# configuration terminal
พิมพ์คำสั่ง router1(config)# interface serial0/1/0
พิมพ์คำสั่ง router1(config-if)# ip address 192.168.1.2 255.255.255.252
พิมพ์คำสั่ง router1(config-if)# no shutdown
พิมพ์คำสั่ง router1(config-if)# exit

พิมพ์คำสั่ง router1(config)# interface serial0/1/1
พิมพ์คำสั่ง router1(config-if)# ip address 192.168.2.1 255.255.255.252
พิมพ์คำสั่ง router0(config-if)# clock rate 56000

พิมพ์คำสั่ง router1(config-if)# no shutdown
พิมพ์คำสั่ง router1(config-if)# exit


พิมพ์คำสั่ง router1(config)# interface fastEthernet 0/0
พิมพ์คำสั่ง router1(config-if)# ip address 192.168.11.254 255.255.255.0
พิมพ์คำสั่ง router1(config-if)# no shutdown
พิมพ์คำสั่ง router1(config-if)# exit

ทำการ config router 2
พิมพ์คำสั่ง router1> enable
พิมพ์คำสั่ง router1# configuration terminal
พิมพ์คำสั่ง router1(config)# interface serial0/1/0
พิมพ์คำสั่ง router1(config-if)# ip address 192.168.3.2 255.255.255.252
พิมพ์คำสั่ง router1(config-if)# no shutdown
พิมพ์คำสั่ง router1(config-if)# exit

พิมพ์คำสั่ง router1(config)# interface serial0/1/1
พิมพ์คำสั่ง router1(config-if)# ip address 192.168.2.2 255.255.255.252
พิมพ์คำสั่ง router1(config-if)# no shutdown
พิมพ์คำสั่ง router1(config-if)# exit


พิมพ์คำสั่ง router1(config)# interface fastEthernet 0/0
พิมพ์คำสั่ง router1(config-if)# ip address 192.168.12.254 255.255.255.0
พิมพ์คำสั่ง router1(config-if)# no shutdown
พิมพ์คำสั่ง router1(config-if)# exit


เมื่อทำการ config เรียบร้อยแล้ว Lineprotocol ทั่งหมดก็จะ UP ดังรูป



ต่อไปจะเป็นประกาศ routing table ของแต่ละ router
เริ่มจาก Router0
router0> enable

พิมพ์คำสั่ง router0> enable
พิมพ์คำสั่ง router0# show ip interface brief <----จะแสดงสถานะของ interface





พิมพ์คำสั่ง router0# configuration terminal
พิมพ์คำสั่ง router0(config)# router rip <----การประกาศ routing table ของตัวเองไปให้เพื่อนบ้าน
พิมพ์คำสั่ง router(config-router)# version 2 <----กำหนด version ที่ใช้งาน
พิมพ์คำสั่ง router(config-router)# network 192.168.1.0 <----ประกาศ ip ที่ตัวเองมีอยู่ไปให้เพื่อนบ้าน
พิมพ์คำสั่ง router(config-router)# network 192.168.3.0
พิมพ์คำสั่ง router(config-router)# network 192.168.10.0
พิมพ์คำสั่ง router(config-router)# no auto summary <----ปิด auto summary
พิมพ์คำสั่ง router(config-router)# exit

ทำการประกาศ routing table แบบนี้กับ router1 และ router 2
เมื่อทำการประกาศ routing table เสร็จทั่ง 3 router แล้วเรามาลองทำการตรวจสอบ ว่า routing table ที่เราประกาศออกไปนั้นเพื่อนบ้านได้รับ routing table รึเปล่าด้วยคำสั่ง show ip route


พิมพ์คำสั่ง router0# show ip route


โดยผลแสดงมีดังต่อไป 
C คือ routing table ของตัวมันเอง และอยู่บน interface ไหนของ router
R คือ routing table ของเพื่อนบ้านที่ทำการเชื่อมต่ออยู่ โดยจะแสดงค่า Administrative Distance คือ 120 เป็นค่า AD ของ RIP และ /2 ที่อยุ่หลัง 120 คือ ค่า cost , via จะบอกถึง ip address ของ hop count และ interface ของ ip address นั้น

สามารถทำการทดสอบด้วยคำสั่ง ping โดย ping ไปที่ network ของเพื่อนบ้านถ้ามีการตอบสนองกลับแสดงว่าได้ทำการประกาศ routing table สำเร็จ

จบแล้วครับลองไปหัดทำกันเล่นดู

DHCP(Dynamic Host Configuration Protocol)

DHCP ได้รับการยอมรับให้เป็นมาตราฐานใน เดือนตุลาคม ค.ศ. 1993 โดยมาแทนที่มาตราฐานเก่า BOOTP ซึ่งปัจจุบัน DHCP ได้มีการพัฒนาให้ใช้กับ IPv6 แล้ว เป็น DHCPv6 และได้รับการอนุมัติเมื่อ เดือนกรกฏาคม ค.ศ. 2003


DHCP เป็น Protocol ที่ใช้ในเครือข่ายคอมพิวเตอร์มีการทำงานแบบแม่ข่าย-ลูกข่าย โดยที่ลูกจะทำการร้องขอข้อมูลที่จำเป็นในการเข้าร่วมเครือข่ายไปยัง แม่ข่าย ซึ่งข้อมูลเหล่านี้รวมไปถึงหมายเลข IP Address ที่ใช้ในเครือข่าย ซึ่งแม่ข่ายจะทำการกำหนดข้อมูลให้กับลูกข่าย


DHCP Action


แม่ข่าย (Server)


DHCP Offer ใช้สำหรับ DHCP Server ทำการส่งข้อมูลไปให้ Client โดย Server จะใช้ Protocol UDP Port 67 ในการส่งข้อมูลไปยังลูกข่าย (Client)


ลูกข่าย (Client)


DHCP Discovery ใช้สำหรับ DHCP Client ในการร้องขอข้อมูลจาก Server โดย Client จะใช้ Protocol UDP Port 68 ในการร้องขอข้อมูลจากแม่ข่าย (Server)

DHCP Information


IP address และ Subnet Mask
Address lease time
Default gateway address
DNS Server Address
Option support : Wins, Domain Name, NetBios


คำสั่งที่ใช้ในการใช้ DHCP ใน Router Cisco


Router(config)# Service dhcp  เปิดใช้งาน DHCP บน Router
Router(config)# ip dhcp excluded-address low-address [ high-address] ระบุ IP address ที่ไม่ควรกำหนดให้กับ Client
Router(config)# ip dhcp pool name สร้างที่ตั้งของ DHCP โดยการระบุชื่อของ Protocol DHCP
Router(dhcp-config)# network network-number [subnet mask] กำหนด Network ID และ Subnet Mask
Router(dhcp-config)# dns-server address [address2.....address5] ระบุที่อยู่ของ DNS Server
Router(dhcp-config)# default-router address ระบุ Gateway




ตัวอย่าง ขั้นตอนการ Configuration DHCP ใน Router Cisco โดยใช้ Program Cisco Packet Tracer ในการ Simulation


interface fastEthernet 0/0 IP address คือ 192.168.1.254
interface fastEthernet 0/1 IP address คือ 192.168.2.254
DNS Server IP address คือ 192.168.2.1 





เข้ามาที่ Router 
พิมพ์คำสั่ง router> enable <----เพื่อเข้าสู่โหมด Privilleged
พิมพ์คำสั่ง router# config terminal <----เพื่อเข้าสู่โหมด Global
พิมพ์คำสั่ง router (config) # interface fastEthernet 0/1   <----เข้าสู่ interface fastEthernet 0/1
พิมพ์คำสั่ง router (config-if) # ip address 192.168.2.254 255.255.255.0 <----ทำการกำหนด IP Address และ Subnet Mask ให้กับ Interface fastEthernet 0/1  
พิมพ์คำสั่ง router (config-if) # no shutdown <----เพื่อทำการ Enable Interface
พิมพ์คำสั่ง router (config-if) # exit <----ออกจาก interface fastethernet 0/1
ไปที่ DNS Server เพื่อกำหนด IP Address 
กลับมาที่ Router อีกครั้ง
พิมพ์คำสั่ง router (config) # interface fastEthernet 0/0 <----เข้าสู่ interface fastEhternet 0/0
พิมพ์คำสั่ง router (config-if) # ip dhcp pool A <----สร้าง DCHP โดย A คือ Name แล้วแต่จะตั้งนะครับ
พิมพ์คำสั่ง Router(dhcp-config)# network 192.168.1.0 255.255.255.0 <---- กำหนด Class ให้กับ DHCP ไว้แจกจ่ายให้กับ Client
พิมพ์คำสั่ง Router(dhcp-config)# dns-server 192.168.2.1 <----กำหนด DNS Server ให้กับ DHCP นี้
พิมพ์คำสั่ง Router(dhcp-config)# default-router 192.168.1.254 <----กำหนด Gateway ให้กับ DHCP นี้
พิมพ์คำสั่ง Router(dhcp-config)# exit <----ออกจากโหมด DHCP
พิมพ์คำสั่ง router (config) # interface fastEthernet 0/0 <----เข้าสู่ interface fastethernet 0/0 อีกครั้งเพื่อกำหนด ip ให้กับ interface fastethernet 0/0
พิมพ์คำสั่ง router (config-if) # ip address 192.168.1.254 255.255.255.0 <----ทำการกำหนด IP Address และ Subnet Mask ให้กับ Interface fastEthernet 0/0 
พิมพ์คำสั่ง router (config-if) # no shutdown <----เพื่อทำการ Enable Interface
พิมพ์คำสั่ง router (config-if) # exit <----ออกจาก interface fastethernet 0/0
ไปที่ PC แล้วเลือก DHCP Client จะทำการร้องขอไปที่ Server 
 

Server ได้ทำการแจกจ่าย IP สำเร็จ

จบแล้วครับ ลองไปทำการ Config หัดเล่นกันได้ครับ