Quá trình tìm kiếm đường đi trong bảng định tuyến

Một phần của tài liệu Tìm hiểu các kỹ thuật định tuyến trên mạng internet và ứng dụng (Trang 28)

Khi router nhận một gói IP, nó kiểm tra địa chỉ IP đích và tra cứu địa chỉ trong bảng định tuyến ra sao? Router sẽ xác định đường đi trong bảng định tuyến là so khớp tốt nhất khi nào, subnet mask có trong bảng có ảnh hưởng gì? Router sẽ quyết định khi nào dùng hay không dùng supernet hay default route nếu không có sự so khớp tốt nhất. Quá trình đó được thực hiện thông qua 4 bước sau

Bước 1: Router bắt đầu tìm kiếm một tuyến đường, cơ bản hay parent so khớp với địa chỉ IP đích của packet

Bước 2: Nếu mạng so khớp là một tuyến đường cơ bản (không bao gồm đường subnet), và không có nhiều đường đi cụ thể thì đây là đường được dùng để forward packet

Bước 3: Nếu mạng so khớp là một đường parent, khi đó subnet route được tính đến để tìm đường đi so khớp tốt nhất.

Bước 4: Nếu không có sự so khớp với một đường cơ bản hay subnet trong một đường parent, thì phụ thuộc vào router sử dụng định tuyến classful hay classless

Match? Để có một sự so khớp giữa địa chỉ IP đích của packet và đường đi trong bảng đinh tuyến. Tiến trình bảng định tuyến so sánh những bit bên trái nhất trong địa chỉ IP đích với những bit bên trái nhất của đường đi trong bảng định tuyến.

Subnet mask của đường đi trong bảng định tuyến chỉ ra có số bits tối thiểu bên trái nhất cần phải so khớp (IP packet chỉ chứa IP address,và không có mask).

Nếu có nhiều đường đi trong bảng định tuyến thỏa điều kiện trước, khi đó đường đi có số bits bên trái nhất so khớp với địa chỉ IP đích nhiều nhất sẽ được chọn. Được biết như là so khớp bit dài nhất.

Cho sơ đồ mạng

Ví dụ 1 Packet với địa chỉ IP đích 192.168.1.10. Trong ví dụ này, RouterA đã nhận một IP packet với địa chỉ IP đích 192.168.1.10

Hình 2

RouterA#show ip route

Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP <text omitted>

172.16.2.0/24

172.16.3.0/24 172.16.4.0/24 172.16.1.0/24

192.168.1.0/24

Router A Router B Router C .1 fa0 .1 fa0 .1 fa0

.1 s0 .2 s0 .1 s1 .2 s0

- 29 - Gateway of last resort is not set 172.16.0.0/24 is subnetted, 3 subnets

C 172.16.1.0 is directly connected, FastEthernet0 C 172.16.2.0 is directly connected, Serial0

R 172.16.3.0 [120/1] via 172.16.2.2, 00:00:00, Serial0 R 192.168.1.0/24 [120/1] via 172.16.2.2, 00:00:00, Serial0

Trong ví dụ này có sự so khớp giữa địa chỉ IP đích 192.168.1.10 và đường đi

192.168.1.0/24

R 192.168.1.0/24 [120/1] via 172.16.2.2, 00:00:00, Serial0

Tại sao đường đi này so khớp và không phải đường đi khác như subnet 172.16.0.0

(child routes)?

Trước khi một đường đi con được kiểm tra so khớp, thì phải có một so khớp giữa địa chỉ IP đích của packet và địa chỉ classful của đường đi cha.

Đường đi parent là 172.16.0.0/24 is subnetted, 3 subnets

Mặc dù subnet mask /24 đã được trình bày, đó là subnet mask của đường đi con, không phải classful mask của cha nó. Classful mask không được trình bày (ngoại trừ sử dụng VLSM), nhưng bởi vì 172.16.0.0 là một đường đi Class B, chúng ta biết classful hay default mask là /16.

Câu hỏi là, ít nhất 16 bit bên trái nhất (16 là subnet mask của đường đi cha) so khớp giữa địa chỉ IP đích của 192.168.1.10, và đường đi cha của 172.16.0.0, chúng ta

nhìn thấy trong hình dưới là không. (adsbygoogle = window.adsbygoogle || []).push({});

IP Packet 192.168.1.10 11000000 10101000 00000001 00001010 16 bits must match, but only one bit matches.

Parent Route 172.16.0.0 10101100 00010000 00000000 00000000 Như trên chúng ta thấy chỉ có 1 bit bên trái nhất là so khớp. Bởi vì không có so khớp với đường đi cha nên đường đi con không được kiểm tra.

Có một so khớp giữa địa chỉ IP đích của packet 192.168.1.10 và đường đi tiếp theo trong bảng định tuyến , 192.168.1.0/24, một đường đi tốt nhất.

R 192.168.1.0/24 [120/1] via 172.16.2.2, 00:00:00, Serial0

Đường đi 192.168.1.0 là một đường đi tốt nhất, nó chứa subnet mask /24. Đối với đường đi này để có một so khớp với địa chỉ IP đích trên, cần phải có tối thiểu là 24 bit bên trái nhất so khớp (mask của đường đi).

Hình 4

IP Packet 192.168.1.10 11000000 10101000 00000001 00001010 These 28 bits match!

Ultimate

- 30 -

Trong hình trên, không những có ít nhất 24 bits so khớp, subnet mask trong đường đi cuối cùng, mà có đến 28 bits so khớp như hình dưới. Đó là điều rất quan trọng? Khi có nhiều đường đi so khớp trong bảng định tuyến đối với cùng địa chỉ IP đích. Như vậy đường đi tốt nhất là gì? Đường đi với có số bit so khớp nhiều nhất hay dài nhất sẽ được chọn.

Khi chúng ta nhìn thấy bước 1, có một sự so khớp với một đường cơ bản hay đường cha. Trong bước 2, sự so khớp với một đường đi cơ bản và không có nhiều đường đi khác so khớp (so khớp bits dài hơn), kết quả cuối cùng là tiến trình bảng định tuyến sẽ sử dụng đường 192.168.1.0/24 với một interface đi ra là của Serial 0 để forward packet với địa chỉ IP 192.168.1.10.

3.2.2 Tiến trình tìm kiếm đường đi và đường đi con

Như trong đoạn trước, để có một sự so khớp hợp lệ cần phải có một số bits tối thiểu bên trái nhất so khớp giữa địa chỉ IP đích và đường đi cha. Số bits so khớp ít nhất cần phải bằng classful mask của đường đi cha. Classful mask chỉ được hiển thị khi có những đường đi con VLSM.

Như chúng ta thấy trong hình 5, subnet mask /24 được trình bày trong một đường đi mạng cha của 172.16.0.0 đối với 3 subnet 172.16.1.0,172.16.2.0, 172.16.3.0.

Trước khi có nhiều đường đi con được kiểm tra so khớp, cần phải có sự so khớp giữa địa chỉ classful của đường đi cha và địa chỉ IP đích của packet. Đối với những đường đi cha/con đã chỉ ra, trước khi những đường đi con 172.16.1.0, 172.16.2.0, 172.16.3.0

được kiểm tra, cần có sự so khớp 16 bits bên trái nhất (clasful subnet mask của Class B

172.16.0.0) và địa chỉ IP đích của packet. Nếu có sự so khớp thì chuyển sang bước 3.

Hình 5

RouterA#show ip route

Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP <text omitted> Gateway of last resort is not set

172.16.0.0/24 is subnetted, 3 subnets

C 172.16.1.0 is directly connected, FastEthernet0 C 172.16.2.0 is directly connected, Serial0

R 172.16.3.0 [120/1] via 172.16.2.2, 00:00:00, Serial0 R 192.168.1.0/24 [120/1] via 172.16.2.2, 00:00:00, Serial0

Ví dụ 2: Packet với địa chỉ IP địch là 172.16.3.10

Trong ví dụ Router A đã nhận một IP packet với địa chỉ IP đích 172.16.3.10. Địa chỉ IP đích của 172.16.3.10 đã tìm được so khớp trong bảng định tuyến là gì? Để có một sự so khớp, cần phải có số bits tối thiểu bên trái nhất được chỉ ra bởi subnet mask của đường đi trong bảng định tuyến cần so khớp giữa địa chỉ IP đích của packet và địa chỉ IP trong bảng định tuyến.

Đầu tiên, địa chỉ IP đích của packet, 172.16.3.10 so khớp đường đi cha, 172.16.0.0? 172.16.0.0/24 đã được chia thành 3 subnets. Classful mask của đường đi cha là /16 (không được trình bày), Trong hình 6 có ít nhất 16 bits so khớp (16, classful mask của 172.16.0.0)

- 31 -

Hình 6

IP Packet 172.16.3.10 10101100 00010000 00000011 00001010 These 16 bits match!

Parent Route 172.16.0.0 10101100 00010000 00000000 00000000 172.16.0.0/24 is subnetted, 3 subnets (adsbygoogle = window.adsbygoogle || []).push({});

Bởi vì có một so khớp với đường đi cha, đường đi con có thể được kiểm tra so khớp. Tuy nhiên chúng ta sẽ sử dụng subnet mask của /24, được trình bày với đường đi cha, số bits tối thiểu bên trái nhất cần so khớp (là mask của đường đi con)

Bây giờ tiến trình bảng định tuyến sẽ xem xét, nếu nó có thể tìm một so khớp giữa địa chỉ IP đích của 172.16.3.10 và một đường đi con, 172.16.1.0, 172.16.2.0, 172.16.3.0.

cần phải có tối thiểu 24 bits so khớp. Hình 7 trình bày đường đi có 24 bits bên trái nhất so khớp là đường đi con 172.16.3.0.

Hình 7

IP Packet 172.16.3.10 10101100 00010000 00000011 00001010 These 24 bits match!

Child Route 172.16.3.0 10101100 00010000 00000011 00000000 Child Route 172.16.1.0 10101100 00010000 00000001 00000000 Child Route 172.16.2.0 10101100 00010000 00000010 00000000

Ở đây có nhiều hơn 24 bits so khớp, thực ra là 28 bits so khớp giữa địa chỉ IP của packet và đường đi con 172.16.3.0. Tiến trình bảng đinh tuyến sẽ sử dụng đường đi

172.16.3.0 để forward packet với địa chỉ IP đích của 172.16.3.10 ra ngoài interface của Serial 0 (hình 7)

3.2.3 Định tuyến Classful và câu lệnh no ip classless

Trên Router B thêm một static default route chỉ đến Router C. Trong Router C chúng ta thêm một route đối với mạng 172.16.0.0/16 chỉ đến Router B. Kết quả của 2 static route cho phép tất cả router có khả năng đến được tất cả các mạng trong sơ đồ.

Hình 8

RouterB(config)#ip route 0.0.0.0 0.0.0.0 serial1

172.16.2.0/24

172.16.3.0/24 172.16.4.0/24 172.16.1.0/24

192.168.1.0/24

Router A Router B Router C .1 fa0 .1 fa0 .1 fa0

.1 s0 .2 s0 .1 s1 .2 s0 0.0.0.0/0 default route

- 32 - RouterB(config)#end

RouterB#show ip route

Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP <text omitted> Gateway of last resort is 0.0.0.0 to network 0.0.0.0

172.16.0.0/24 is subnetted, 3 subnets

R 172.16.1.0 [120/1] via 172.16.2.1, 00:00:13, Serial0 C 172.16.2.0 is directly connected, Serial0

C 172.16.3.0 is directly connected, FastEthernet0 C 192.168.1.0/24 is directly connected, Serial1 S* 0.0.0.0/0 is directly connected, Serial1 RouterB#

Hình 9

RouterC(config)#ip route 172.16.0.0 255.255.0.0 serial0 RouterC(config)#end

RouterC#show ip route

Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP <text omitted>

Gateway of last resort is not set

172.16.0.0/16 is variably subnetted, 2 subnets, 2 masks C 172.16.4.0/24 is directly connected, FastEthernet0 S 172.16.0.0/16 is directly connected, Serial0

C 192.168.1.0/24 is directly connected, Serial0 RouterC# (adsbygoogle = window.adsbygoogle || []).push({});

Sự khác nhau giữa định tuyến classful và classless là gi? Điều đó rất quan trọng để hiểu được lúc nào làm việc với giao thức định tuyến classful hay giao thức định tuyến classless. Chúng ta không quan tâm về cái cách mà đường đi được nhập vào bảng định tuyến như thế nào, thay vào đó chúng ta chỉ quan tâm về việc tìm kiếm đường đi tốt nhất trong bảng định tuyến, sau khi những đường đi đã được nhập vào bảng định tuyến.

Nhìn cấu hình và bảng định tuyến trong hình 10 đối với Router B chúng ta thừa nhận Router B sẽ sử dụng default route để forward nhiều packet mà ở đó không có nhiều đường đi so khớp trong bảng định tuyến.

Ví dụ 3 Không tồn tại đường đi con và no ip classless

Trong ví dụ này Router B nhận một packet với địa chỉ IP đích 172.16.4.10. tiến trình định tuyến tìm kiếm trong bảng định tuyến và tìm một so khớp 16 bit (classful subnet mask của đường đi cha) với đường đi cha 172.16.0.0. Có so khớp với đường đi cha nên đường đi con được kiểm tra so khớp.

child R 172.16.1.0 [120/1] via 172.16.2.1, 00:00:13, Serial0 child C 172.16.2.0 is directly connected, Serial0

child C 172.16.3.0 is directly connected, FastEthernet0

Tuy nhiên trong hình 10 đường đi con không có 24 bits bên trái nhất (/24 mask được trình bày trong route cha) so khớp địa chỉ IP đích, chỉ có 21 bit so khớp

- 33 - Hình 10 IP Packet 172.16.4.10 10101100 00010000 00000100 00001010 No match! Child Route 172.16.3.0 10101100 00010000 00000011 00000000 Child Route 172.16.1.0 10101100 00010000 00000001 00000000 Child Route 172.16.2.0 10101100 00010000 00000010 00000000

Bởi vì router đang chạy default no ip classless, định tuyến classful có hiệu lực, nghĩa là router sẽ không tìm tới đường đi con với một so khớp thấp hơn. Tiến trình bảng định tuyến sẽ không dùng default route 0.0.0.0/0 hay nhiều route khác.

Ý tưởng chính của định tuyến classful xuất hiện khi tất cả các mạng là classful. Đó là khi công ty, trường học áp dụng InterNIC đối với không gian địa chỉ và đã nhận một địa chỉ mạng lớn của Class A, Class B, Class C. Một công ty có một địa chỉ mạng classful IP lớn, bao gồm nhiều subnets. Những router trong mạng sẽ biết về tất cả subnet đối với mạng lớn này. Nếu subnet không có trong bảng định tuyến, khi đó nó không tồn tại.

Đừng tóm tắt với định tuyến classful, câu lệnh no ip classless. Nếu có một so khớp với đường đi cha, và sau đó kiểm tra đường đi con không có sai khớp, khi đó tiến trình định tuyến drop packet. Đường default và supernet không được kiểm ta hay được dùng

Hình 11

RouterB#show ip route

Codes: C - connected, S - static, I - IGRP, R - RIP, <text omitted> Gateway of last resort is 0.0.0.0 to network 0.0.0.0

1. Match 172.16.0.0/24 is subnetted, 3 subnets

2. No Match R 172.16.1.0 [120/1] via 172.16.2.1, 00:00:13, Serial0 3. No Match C 172.16.2.0 is directly connected, Serial0

4. No Match C 172.16.3.0 is directly connected, FastEthernet0 C 192.168.1.0/24 is directly connected, Serial1 S* 0.0.0.0/0 is directly connected, Serial1 5. Drop Packet RouterB#

3.2.4 Định tuyến Classless câu lệnh ip classless

Ví dụ Không tồn tại đường đi con và ip classless

Router B nhận một packet với địa chỉ IP đích 172.16.4.10. Giống như ví dụ trước, tiến trình định tuyến tìm kiếm trong bảng định tuyến và tìm một so khớp với một đường đi cha 172.16.0.0/24 đã chia thành 3 subnets

parent 172.16.0.0/24 is subnetted, 3 subnets

Có một so khớp với parent route, nên child routes được tiếp tục tìm kiếm child R 172.16.1.0 [120/1] via 172.16.2.1, 00:00:13, Serial0 child C 172.16.2.0 is directly connected, Serial0

- 34 -

child C 172.16.3.0 is directly connected, FastEthernet

Hình 13, không có một đường đi con nào có 24 bits bên trái nhất (/24 mask đã được hiển thị trong đường đi cha) so khớp địa chỉ IP đích 172.16.4.10

Hình 12 IP Packet 172.16.4.10 10101100 00010000 00000100 00001010 No match! Child Route 172.16.3.0 10101100 00010000 00000011 00000000 Child Route 172.16.1.0 10101100 00010000 00000001 00000000 Child Route 172.16.2.0 10101100 00010000 00000010 00000000

Bởi vì mặc định là ip classless, tiến trình định tuyến tiếp tục tìm kiếm trong bảng định tuyến, ngoài đường đi cha và đường đi con của nó. Tiến trình định tuyến sẽ tìm kiếm trong bảng định tuyến đối với một đường đi với một subnet mask ít hơn 16 bits của đường đi cha trước đó. Router sẽ tiếp tục tìm kiếm đường đi khác trong bàng định tuyến cần có số bits so khớp ít hơn, nhưng vẫn có một so khớp.

Đường đi 192.168.1.0/24 không có so khớp 24 bits bên trái nhất với địa chỉ IP đích. Đường mặc định như thế nào? Bao nhiêu bits cần so khớp?

S* 0.0.0.0/0 is directly connected, Serial1

Mask là /0 zero hay không cần bits so khớp. Một route mặc định, nếu đã sử dụng trong tìm kiếm sẽ so khớp bit thấp nhất. Nếu không có đường đi khác so khớp, route sẽ là mặc định (adsbygoogle = window.adsbygoogle || []).push({});

Hình 13

RouterB#show ip route

Codes: C - connected, S - static, I - IGRP, R - RIP, <text omitted> Gateway of last resort is 0.0.0.0 to network 0.0.0.0

1. Match 172.16.0.0/24 is subnetted, 3 subnets

2. No Match R 172.16.1.0 [120/1] via 172.16.2.1, 00:00:13, Serial0 3. No Match C 172.16.2.0 is directly connected, Serial0

4. No Match C 172.16.3.0 is directly connected, FastEthernet0 C 192.168.1.0/24 is directly connected, Serial1 5. Match! S* 0.0.0.0/0 is directly connected, Serial1

3.2.5 Định tuyến Classless và đường đi Supernet

172.16.2.0/24

172.16.3.0/24 172.16.4.0/24 172.16.1.0/24

192.168.1.0/24

Router A Router B Router C .1 fa0 .1 fa0 .1 fa0

.1 s0 .2 s0 .1 s1 .2 s0 172.0.0.0/8 Supernet route 172.16.10.0/24 lo0 172.16.20.0/24 lo1 172.16.30.0/24 lo2 172.16.40.0/24 lo3

- 35 -

Một supernet route đã được thêm vào bởi việc tạo một static route. Tuy nhiên, một supernet route có thể chỉ được quảng bá bởi một giao thức định tuyến classless. Bởi vì giao thức định tuyến classful không gửi subnet mask như giao thức định tuyến classless, cho nên classful mask mặc định có thể đã được thừa nhận bằng cách nhận router

Những Supernet route trong bảng định tuyến đã được xem xét không khác gì những đường đi tốt nhất trong việc tìm kiếm route. Chúng chứa một network route và một subnet mask. Chúng chỉ khác là ở đó subnet mask có ít bits hơn classful mask của mạng lớn. Nếu cả hai được trình bày trong bảng định tuyến, network route lớn sẽ có một so khớp bits dài hơn và là route ưu tiên.

Router C được thêm vào 2 mạng 172.20.0.0/16 và 172.30.0.0/16, hình 18 biểu diễn cấu hình loopback interface

Hình 14 RouterC(config)#interface loopback1

Một phần của tài liệu Tìm hiểu các kỹ thuật định tuyến trên mạng internet và ứng dụng (Trang 28)