Mạng căn bản 13 – VLSM, Class full routing protocol, ACL

I. VLSM – VARIABLE LENGTH SUBNET MASK

– Đây là một thuật ngữ chỉ về cách phân chia subnet. Địa chỉ IP được phân chia thành các lớp A, B, C với mục đích ban đầu để dễ sử dụng. Network nào cần nhiều IP sẽ dung lớp A, ít IP dùng lớp B, ít hơn nữa thì dùng lớp C.

– Tuy nhiên với sự phát triển nhanh chóng của hệ thống liên mạng, cộng với việc hình thành hệ thống internet. Việc dùng các địa chỉ IP với quy định ban đầu là không hợp lý và không hiệu quả.

– Hầu như không có 1 network nào lên đến 65534 IP hoặc hơn. Chính vì vậy người ta mới đưa giải pháp chia subnet để việc sử dụng các địa chỉ IP hiệu quả hơn.

– Để việc chia subnet phát huy được tác dụng thì giá trị subnet mask sẽ tùy theo số IP cần thiết trong hệ thống.

– Ví dụ:

  • Nếu 1 network cần 20 IPs thì giá trị Subnet Mask tương ứng là 27 bit là tối ưu, vì tổng số IP strong trường hợp này là 30. (2^5 dành cho host ID=32)
  • Nếu 1 network cần 70 IPs thì giá trị Subnet Mask tương ứng là 25 bit là tối ưu, vì tổng số IP strong trường hợp này là 126. (2^7 dành cho host ID=128)

– Như vậy trong 1 hệ thống có nhiều network, mỗi network lại có số thiết bị khác nhau tức là số IP khác nhau thì subnet mask của các network này phải khác nhau để bảo đảm việc sử dụng số IP hiệu quả. Khi chia subnet trong cùng 1 network default và subnet mask khác nhau người ta gọi là VLSM.

– Ví dụ

  • 192.168.1.0/24 là địa chỉ lớp C.
  • Nhu cầu là cần 2 network có 2 IP, 1 network có 25 IP, 1 network có 80 IP thì ta có thể chia như sau:
    • 192.168.1.4/30
    • 192.168.1.8/30
    • 192.168.1.32/27
    • 192.168.1.128/25
  • Trong trường hơp này, để routing giữa các router, không thể dùng giao thức RIP_V1 được vì RIP_V1 thuộc loại class full routing protocol.
  • Chỉ có thể dùng static route hoặc các giao thức class less routing protocol như RIP_V2, EIGRP, OSPF, …

II. CLASS FULL ROUTING PROTOCOL

1. CLASS FULL ROUTING PROTOCOL:

– Trong trường hợp đã áp dụng VLSM thì dung cơ chế routing static thì không sẽ không có vấn đề gì. 

– Nhưng khi dùng cơ chế dynamic sẽ phát sinh rất nhiều vấn đề. Giao thức RIP được phát triển tại thời điểm mà người ta không có nhu cầu VLSM, do đó bản thân RIP khi thực hiện việc update giữa các router, nó chỉ Update Network mà không Update Subnet Mask.

– Cơ chế Full Routing Protocol có nghĩa là ta không cần khai báo Subnet Mask cho các router khác, vì lớp A, B, C đã có Subnet Mask mặc định rồi, cứ lấy mà sử dụng.

2. CONTINUOUS SUBNET:

– Nếu R1 update cho R2 các network 192.168.1.32 và 192.168.1.48 thì R2 không thể hiểu được đây là các subnet, đơn giản là không có SM chỉ định thì tự hiểu là Subnet Mask default và các số này là host address chứ không còn là subnet nữa.

– Và R2 sẽ học được 1 network là 192.168.1.0 và mặc định nó gán Subnet Mask là 24bit.

– Tuy nhiên các subnet trong sơ đồ trên vẫn routing bình thường, vì 192.168.1.0/24 đã bao gồm tất cả IP của 192.168.1.32/28 và 192.168.1.48/28. Trường hợp này goi là continuous subnet.

3. DISCONTINUOUS SUBNET:


– R2 update cho R1 network 192.168.1.0, vì không có khả năng update Subnet Mask nên nó không thể update các Subnet 192.168.1.64/28 và 192.168.1.80/28. Trong khi đó R3 update cho R1 network 192.168.1.0 cũng vì lý do như R2.

– Vậy R1 học được thông tin 192.168.1.0 từ R2 và R3 cùng metric = 1.

– Rõ ràng với thông tin này R1 không thể routing được. Giống như đứng giữa ngã ba đường mà nhận được thông tin “đường nào cũng về nhà” .

– Khi R1 gửi đến các địa chỉ 192.168.1.65, 192.168.1.81, 192.168.1.129, 192.168.1.145 thì R1 có đến 2 chọn lựa như nhau, lúc này nó sẽ “nhắm mắt làm liều” gửi đại cho thằng nào cũng được. R1 thực hiện việc loadbalancing. Vì vậy kết quả routing của R1 là 50% là đúng. Trường hợp này gọi là discontinuous subnet.

– Class Full Routing Protocol không hoạt động chính xác trong trường hợp này.

III. ACCESS CONTROL LIST

1.  KHÁI NIỆM ACL:

– ACL – Access-Control List: được sử dụng cho lưu thông Layer 3 (routable traffic). Dùng để lọc traffic.

– ACL dùng để xác định các gói tin có được lưu chuyển vào/ra trên các giao diện router.

– Cách thức áp dụng:

  • Trong một ACL, các mục kê được đối chiếu tuần tự từ trên xuống, khi đã có một mục có điều kiện khớp (match) với nội dung gói tin thì các mục sau đó được bỏ qua. Nếu không có điều kiện nào khớp, giá trị ngầm định sẽ được áp dụng.
  • Thông thường, trong một ACL, giá trị ngầm định là DENY (có thiết bị như Juniper Netscreen cho phép thay đổi giá trị mặc định toàn cục). Khi muốn tránh áp dụng giá trị ngầm định này, ta phải khai báo luật rõ ràng cho các gói tin có thông số không khớp với các mục kê trên đó (vd: PERMIT ANY).
  • Ví dụ về các bước xử lý định tuyến gói tin với ACL:

2. CÁC LOẠI ACL:

– ACL của Cisco có 2 loại: Standard và Extended

  • Standard Access list: có thể lọc để cho phép cấm hoặc cấm các packet dựa trên địa chỉ source của packet đó. Việc cấu hình hình phải thực hiện 2 giai đoạn là: cấu hình tạo access list và áp dụng vào interface
  • Extended Access list: cho phép ta kiểm tra và chặn các packet dựa trên địa chỉ source, source port, địa chỉ đích và port của địa chỉ đích. Do đó ta có thể chỉ định cấm hoặc cho phép đối với từng ứng dụng.

– Mỗi giao diện chỉ có thể sử dụng một ACL duy nhất để lọc gói tin.

– Qui tắc xác định loại ACL

  • IP: số 1-99 và 1300-1999 (Standard), 100-199 và 2000-2699 (Extended), và chuỗi ký tự tên (từ IOS 11.2)
  • IPX: số 800-899 (Standard), 1000-1099 (SAP filter)
  • AppleTalk: số 600-699

3. WILDCARD:

3a. Khái niệm cơ bản:

– Wildcard là số 32 bit dùng để lựa chọn ip. Wildcard chỉ nhằm thông báo cho router biết phải xử lý thế nào với IP được liệt kê:

  • 255.255.255.255 có nghĩa là không cần quan tâm tất cả các bit của IP liên quan
  • 0.0.0.0 có nghĩ phải quan tâm so khớp tất cả các bit của IP liên quan.

– Access list là phương tiện để filter traffic, còn cấm hay không là ở từ khóa Deny hay Permit. Nhưng 255.255.255.255 hay 0.0.0.0 điều được router kiểm tra dưới dạng nhị phân, ứng với bit 1 là bỏ qua (Don’t care), ứng với bit 0 là phải giống (Care).

  • Ví dụ trong nework 10.10.10.0/24, chỉ cho phép các PC số chẵn truy câp internet, dùng access list như sau:
  • Access-list 1 permit 10.10.10.0 0.0.0.254
    • Wildcard mask triển khai o nhị phân như sau : 0.0.0.11111110.
    • 3 byte đầu bằng 0 nên ip được cho phép phải giống 3 octet đâu tức 10.10.10.
    • Octet thứ 4 được xét như sau: ví dụ 10.10.10.1 là 00000001 khác giá trị wildcard nên không hợp lê, 10.10.10.2 là 00000010 là hợp lệ …
    • Chỉ có giá trị như 10.10.10.2 , 10.10.10.4, 10.10.10.6 … 10.10.10.254 sẽ được router cho phép đi qua nếu ta add access list này lên interface nào đó của router.
    • Các giá trị khác sẽ bị filter lại vì mặc đinh câu lệnh cuối của access list là deny any any

3b. Một số ví dụ:

– Ví dụ:

  • 192.168.6.1 0.0.0.0 thì có nghĩa là deny hay permit chỉ 1 IP đó thôi
  • 192.168.6.1 0.0.0.255 thì có nghĩa là :
    • Đang cấu hình trên nguyên một cái range 192.168.1.0
    • Vì giá trị cuối của ip đó sẽ thay đổi từ 0-255

– Ví dụ: Cho phép tất cả traffic đi qua :

  • Access-list 1 permit 0.0.0.0 255.255.255.255
  • Access-list 1 permit any

3c. Cách tính wildcard:

– Có 4 mạng như sau:

  • 192.168.160.0/24
  • 192.168.175.0/24
  • 192.168.191.0/24
  • 192.168.195.0/24

– Bây gìơ muốn đặt ACL để

  • Chặn các host range 192.168.160.0 – 192.168.191.0
  • Cho các host range 192.168.195.0 full access.

– Ta có:

  • 192.168.160.0 = 192.168.101 00000.00000000
  • 192.168.175.0 = 192.168.101 01111.00000000
  • 192.168.191.0 = 192.168.101 11111.00000000
    • 3 network trên giống nhau ở 2 byte đầu và 3 bit của byte thứ 3. Để xác định wildcard mask tương ứng, ta sẽ gán bít 0 vào vị trí của phần giống nhau và bit 1 cho phần còn lại.
    • Khi đó, ta sẽ được wildcard mask tương ứng là:
      • 0.0.000 11111.11111111 = 0.0.31.255
      • Cấu hình ACL là: Access-list 1 deny 192.168.0.0 0.0.31.255

4. QUI TẮC CƠ BẢN KHI TẠO ACL”:

– Access list chỉ được đặt trên 1 cổng (interface), 1 chiều (outbound hoặc inbound), 1 giao thức ( telnet , pop3 , smtp , http…)

– Standard ACL nên đặt càng gần đích càng tốt vì nó lọc packet dựa trên địa chỉ nguồn của packet đó.

– Extended ACL nên đặt càng gần nguồn càng tốt.

– Các ACL statement được xử lý tuần tự từ trên xuống, khi có 1 gói tin thỏa điều kiện của 1 statement thì Router sẽ xử lý theo action của statement đó đưa ra mà không xét tiếp các statement còn lạ , nếu không có statement nào thỏa điều kiện thì packet đó sẽ bị drop.

– Khi tạo ACL mặc định sẽ có 1 dòng statement ẩn để deny tất cả các packet (deny ip any any). Dòng statement này sẽ không xuất hiện trong danh sách cấu hình

– Khi tạo 1 ACL thì nên đặt những cái nào cần deny or permit cụ thể lên trước, rồi sau đó mới đến những cái chung. Ví dụ chỉ deny host X trong subnet A đi ra Internet thì nên deny host X trước rồi mới permit subnet A sau.

– Điều kiện nào thỏa 1 statement trong ACL thì được kiểm tra trước. Router sẽ xử lý permit or deny khi nào có 1 statement thỏa mà thôi.

– Không nên chỉnh sửa ACL khi nó đang hoạt động.

– Dùng 1 chương trình soạn thảo văn bản như Notepad để tạo ACL trước, sau đó mới apply vào cấu hình của router.

– Câu lệnh no access-list access-list number sẽ xóa toàn bộ ACL tương ứng với access-list number. Không thể nào xóa từng dòng statement ACL với numbered ACL. Còn đối với name ACL thì xóa được từng dòng statement ACL nhưng chỉ add những dòng statement khác vào cuối ACL mà thôi

– IP ACL sẽ gởi 1 thông điệp ICMP host unreachable đến địa chỉ nguồn của gói tin (sender) khi gói tin đó bị từ chối và gói tin đó sẽ bị drop.

– Cần thận trọng khi xóa 1 ACL. Vì khi ta xóa 1 ACL đang được apply trên 1 interface đang hoạt động, tùy thuộc vào IOS của router, sẽ tồn tại 1 entry là deny ip any any đối với interface đó, làm cho các gói tin đều bị cấm.

– ACL lọc gói tin đi qua router nhưng không ảnh hưởng đến những gói tin xuất phát từ chính bản thân Router đó.

– Người quản trị mạng nên “đặt mình” bên trong router để xét xem nên đặt ACL theo chiều outbout or inbound của 1 interface

lớp mạng khác nhau.

About Terri

System Administrator @Netpower Datacenter

Posted on 15.03.2009, in Basic & Networking, Technical Articles and tagged , , , , . Bookmark the permalink. Leave a comment.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: