Neo
20-08-2003, 10:22 AM
Cách tính route filter
Đôi khi bạn phải tính toán các route filter phức tạp, nếu không quen tính bạn sẽ mất rất nhiều thời gian.
Ví dụ cần filter một số route sau với yêu cầu sử dụng “one-line filter”: 102.17.63.0, 126.22.61.0, 111.22.57.0, 125.33.101.0.
Đầu tiên đổi ra dạng nhị phân:
102.17.63.0 = 01100110. 00010001. 00111111.00000000
126.22.61.0 = 01111110. 00010110. 00111101.00000000
111.22.57.0 = 01101111. 00010110. 00111001.00000000
125.33.101.0 = 01111101. 00100001. 01100101.00000000
Để tìm subnet ta so sánh theo cột, nếu tất cả là 1 thì subnet là 1, trường hợp còn lại thì subnet là 0.
=> Subnet Address: 01100100.00000000.00100001.00000000 =100.0.33.0
Để tìm wildcard mask ta so sánh theo cột, nếu tất cả là 0 hay tất cả là 1 thì mask là 0, trường hợp vừa 0 vừa 1 thì mask là 1. (octet cuối cùng ta không match nên mask sẽ là tất cả các bit 1).
Wildcasd Mask: 00011011.00110111.01011110.11111111 => 27.55.94.255
=> Filter dạng: 100.0.33.0 27.55.94.255
Sau đó ta cần kiểm tra lại trên lab bằng cách tạo interface loopback, sử dụng access-list, distribute-list,…
Access-list 1 [permit | deny] 100.0.33.0 27.55.94.255
Ngoài ra có thể tính toán để biết mạng nào sẽ bị filter bằng cách thực hiện phép OR (all 0’s => 0, else => 1).
Chú ý nếu wildcard mask là bit 1 => không cần kiểm tra(not match), bit 0 => cần kiểm tra(match).
100.0.33.0 = 01100100. 00000000. 00100001.00000000
27.55.94.255 = 00011011. 00110111. 01011110.11111111
Kết quả: 011xx1xx.00xx0xxx.0x1xxxx1.00000000
Nghĩa là ngoài các mạng 102.17.63.0, 126.22.61.0, 111.22.57.0, 125.33.101.0 thì các mạng khác có dạng trên cũng sẽ bị filter!
Cheers,
Đôi khi bạn phải tính toán các route filter phức tạp, nếu không quen tính bạn sẽ mất rất nhiều thời gian.
Ví dụ cần filter một số route sau với yêu cầu sử dụng “one-line filter”: 102.17.63.0, 126.22.61.0, 111.22.57.0, 125.33.101.0.
Đầu tiên đổi ra dạng nhị phân:
102.17.63.0 = 01100110. 00010001. 00111111.00000000
126.22.61.0 = 01111110. 00010110. 00111101.00000000
111.22.57.0 = 01101111. 00010110. 00111001.00000000
125.33.101.0 = 01111101. 00100001. 01100101.00000000
Để tìm subnet ta so sánh theo cột, nếu tất cả là 1 thì subnet là 1, trường hợp còn lại thì subnet là 0.
=> Subnet Address: 01100100.00000000.00100001.00000000 =100.0.33.0
Để tìm wildcard mask ta so sánh theo cột, nếu tất cả là 0 hay tất cả là 1 thì mask là 0, trường hợp vừa 0 vừa 1 thì mask là 1. (octet cuối cùng ta không match nên mask sẽ là tất cả các bit 1).
Wildcasd Mask: 00011011.00110111.01011110.11111111 => 27.55.94.255
=> Filter dạng: 100.0.33.0 27.55.94.255
Sau đó ta cần kiểm tra lại trên lab bằng cách tạo interface loopback, sử dụng access-list, distribute-list,…
Access-list 1 [permit | deny] 100.0.33.0 27.55.94.255
Ngoài ra có thể tính toán để biết mạng nào sẽ bị filter bằng cách thực hiện phép OR (all 0’s => 0, else => 1).
Chú ý nếu wildcard mask là bit 1 => không cần kiểm tra(not match), bit 0 => cần kiểm tra(match).
100.0.33.0 = 01100100. 00000000. 00100001.00000000
27.55.94.255 = 00011011. 00110111. 01011110.11111111
Kết quả: 011xx1xx.00xx0xxx.0x1xxxx1.00000000
Nghĩa là ngoài các mạng 102.17.63.0, 126.22.61.0, 111.22.57.0, 125.33.101.0 thì các mạng khác có dạng trên cũng sẽ bị filter!
Cheers,