24/05/2018, 16:50

Khái niệm về Router

Nhiệm vụ: Router là thiết bị mạng hoạt động ở tầng thứ 3 của mô hình OSI-tầng network. Router được chế tạo với hai mục đích chính: Phân cách các mạng máy tính thành các segment riêng biệt để giảm hiện tượng đụng ...

Nhiệm vụ:

Router là thiết bị mạng hoạt động ở tầng thứ 3 của mô hình OSI-tầng network. Router được chế tạo với hai mục đích chính:

  • Phân cách các mạng máy tính thành các segment riêng biệt để giảm hiện tượng đụng độ, giảm broadcast hay thực hiện chức năng bảo mật.
  • Kết nối các mạng máy tính hay kết nối các user với mạng máy tính ở các khoảng cách xa với nhau thông qua các đường truyền thông: điện thoại, ISDN, T1, X.25…

Cùng với sự phát triển của switch, chức năng đầu tiên của router ngày nay đã được switch đảm nhận một cách hiệu quả. Router chỉ còn phải đảm nhận việc thực hiện các kết nối truy cập từ xa (remote access) hay các kết nối WAN cho hệ thống mạng LAN.

Do hoạt động ở tầng thứ 3 của mô hình OSI, router sẽ hiểu được các protocol quyết định phương thức truyền dữ liệu. Các địa chỉ mà router hiểu là các địa chỉ “giả” được quy định bởi các protocol. Ví dụ như địa chỉ IP đối với protocol TCP/IP, địa chỉ IPX đối với protocol IPX… Do đó tùy theo cấu hình, router quyết định phương thức và đích đến của việc chuyển các packet từ nơi này sang nơi khác. Một cách tổng quát router sẽ chuyển packet theo các bước sau:

  • Đọc packet.
  • Gỡ bỏ dạng format quy định bởi protocol của nơi gửi.
  • Thay thế phần gỡ bỏ đó bằng dạng format của protocol của đích đến.
  • Cập nhật thông tin về việc chuyển dữ liệu: địa chỉ, trạng thái của nơi gửi, nơi nhận.
  • Gứi packet đến nơi nhận qua đường truyền tối ưu nhất.

Phânloại

Router có nhiều cách phân loại khác nhau Tuy nhiên người ta thường có hai cách phân loại chủ yếu sau:

  • Dựa theo công dụng của Router: theo cách phân loại này người ta chia router thành remote access router, ISDN router, Serial router, router/hub…
  • Dựa theo cấu trúc của router: fixed configuration router, modular router.

Tuy nhiên không có sự phân loại rõ ràng router: mỗi một hãng sản xuất có thể có các tên gọi khác nhau, cách phân loại khác nhau. Ví dụ như cách phân loại của hãng Cisco được trình bày theo bảng sau:

Các loại Router của Cisco
Remote Access Low-end router
Fix configuration router
Multi protocol router Multiport serial router Router/hub
Cisco 2509Cisco 2510 Cisco 7xxCisco 8xx Cisco 2501Cisco2502 Cisco 2520Cisco 2521 Cisco 2505Cisco 2506 Cisco 2524Cisco 2525
Cisco 2511Cisco 2512AS5xxxCisco500-CS Cisco 100x Cisco2503Cisco 2504Cisco 2513Cisco 2514Cisco 2515 Cisco 2522Cisco 2523 Cisco 2507Cisco2508Cisco 2516Cisco 2518 Cisco 160x Cisco 17xx Cisco 26xx Cisco 36xx Cisco 4xxxCisco 7xxx

Nguyên tắc hoạt độngcủa Router –ARP Protocol

Như ta đã biết tại tầng network của mô hình OSI, chúng ta thường sử dụng các loại địa chỉ mang tính chất quy ước như IP, IPX… Các địa chỉ này là các địa chỉ có hướng, nghĩa là chúng được phân thành hai phần riêng biệt là phần địa chỉ network và phần địa chỉ host. Cách đánh số địa chỉ như vậy nhằm giúp cho việc tìm ra các đường kết nối từ hệ thống mạng này sang hệ thống mạng khác được dễ dàng hơn. Các địa chỉ này có thể được thay đổi theo tùy ý người sử dụng. Trên thực tế, các card mạng chỉ có thể kết nối với nhau theo địa chỉ MAC, địa chỉ cố định và duy nhất của phần cứng. Do vậy ta phải có một phương pháp để chuyển đổi các dạng địa chỉ này qua lại với nhau. Từ đó ta có giao thức phân giải địa chỉ: Address Resolution Protocol (ARP).

ARP là một protocol dựa trên nguyên tắc: Khi một thiết bị mạng muốn biết địa chỉ MAC của một thiết bị mạng nào đó mà nó đã biết địa chỉ ở tầng network (IP, IPX…) nó sẽ gửi một ARP request bao gồm địa chỉ MAC address của nó và địa chỉ IP của thiết bị mà nó cần biết MAC address trên toàn bộ một miền broadcast. Mỗi một thiết bị nhận được request này sẽ so sánh địa chỉ IP trong request với địa chỉ tầng network của mình. Nếu trùng địa chỉ thì thiết bị đó phải gửi ngược lại cho thiết bị gửi ARP request một packet (trong đó có chứa địa chỉ MAC của mình).

Trong một hệ thống mạng đơn giản như hình 1, ví dụ như máy A muốn gủi packet đến máy B và nó chỉ biết được địa chỉ IP của máy B. Khi đó máy A sẽ phải gửi một ARP broadcast cho toàn mạng để hỏi xem “địa chỉ MAC của máy có địa chỉ IP này là gì” Khi máy B nhận được broadcast này, có sẽ so sánh địa chỉ IP trong packet này với địa chỉ IP của nó. Nhận thấy địa chỉ đó là địa chỉ của mình, máy B sẽ gửi lại một packet cho máy B trong đó có chứa địa chỉ MAC của B. Sau đó máy A mới bắt đầu truyền packet cho B.

Trong một môi trường phức tạp hơn: hai hệ thống mạng gắn với nhau thông qua một router C. Máy A thuộc mạng A muốn gửi packet đến máy B thuộc mạngB. Do các broadcast không thể truyền qua router nên khi đó máy A sẽ xem router C như một cầu nối để truyền dữ liệu. Trước đó, máy A sẽ biết được địa chỉ IP của router C (port X) và biết được rằng để truyền packet tới B phải đi qua C. Tất cả các thông tin như vậy sẽ được chứa trong một bảng gọi là bảng routing (routing table). Bảng routing table theo cơ chế này được lưu giữ trong mỗi máy. Routing table chứa thông tin về các gateway để truy cập vào một hệ thống mạng nào đó. Ví dụ trong trường hợp trên trong bảng sẽ chỉ ra rằng để đi tới LAN B phải qua port X của router C. Routing table sẽ có chứa địa chỉ IP của port X. Quá trình truyền dữ liệu theo từng bước sau:

  • Máy A gửi một ARP request (broadcast) để tìm địa chỉ MAC của port X.
  • Router C trả lời, cung cấp cho máy A địa chỉ MAC của port X.
  • Máy A truyền packet đến port X của router.
  • Router nhận được packet từ máy A, chuyển packet ra port Y của router. Trong packet có chứa địa chỉ IP của máy B.
  • Router sẽ gửi ARP request để tìm địa chỉ MAC của máy B.
  • Máy B sẽ trả lời cho router biết địa chỉ MAC của mình.
  • Sau khi nhận được địa chỉ MAC của máy B, router C gửi packet của A đến B.

Trên thực tế ngoài dạng routing table này người ta còn dùng phương pháp proxy ARP, trong đó có một thiết bị đảm nhận nhiệm vụ phân giải địa chỉ cho tất cả các thiết bị khác. Quá trình này được trình bày trong hình 3.

Phân giải địa chỉ dùng proxy ARP.

Theo đó các máy trạm không cần giữ bảng routing table nữa router C sẽ có nhiệm vụ thực hiện, trả lời tất cả các ARP request của tất cả các máy trong các mạng kết nối với nó. Router sẽ có một bảng routing table riêng biệt chứa tất cả các thông tin cần thiết để chuyển dữ liệu.

Bảng routing table
Destination Network Subnet mask Gateway Flags Interface
10.1.2.0 255.255.255.0 10.1.2.1 U eth0
10.1.1.0 255.255.255.0 10.1.1.1 U To0
10.8.4.0 255.255.255.0 10.8.4.1 U S0
Ví dụ về routing table.

Trong bảng 2 dòng đầu tiên có nghĩa là tất cả các packet gửi cho một máy bất kỳ thuộc mạng 10.1.2.0 subnet mask 255.255.255.0 sẽ thông qua port ethenet 0 (eth0) có địa chỉ IP là 10.1.2.1. Flag = U có nghĩa là port trong trạng thái hoạt động (“up”).

Một số khái niệmcơ bản.

  • Path determination:

    Như đã được đề cập ở phần trên, router có nhiệm vụ chuyển dữ liệu theo một đường liên kết tối ưu. Đối với một hệ thống gồm nhiều router kết nối với nhau, trong đó các router có nhiều hơn hai đường liên kết với nhau, vấn đề xác định đường truyền dữ liệu (path determination) tối ưu đóng vai trò rất quan trọng. Router phải có khả năng lựa chọn đường liên kết tối ưu nhất trong tất cả các đường có thể, mà dữ liệu có thể truyền đến đích nhanh nhất. Việc xác định đường dựa trên các thuật toán routing, các routing protocol, từ đó rút ra được một số đo gọi là metric để so sánh giữa các đường với nhau.

    Sau khi thực hiện việc kiểm tra trạng thái của các đường liên kết bằng các thuật toán dựa trên routing protocol, router sẽ rút ra được các metric tương ứng cho mỗi đường, cập nhật vào routing table. Router sẽ chọn đường nào có metric nhỏ nhất để truyền dữ liệu.

    Các thuật toán, routing protocol, metric… sẽ được trình bày chi tiết trong phần sau.

  • Switching

    Quá trình chuyển dữ liệu (switching) là quá trình cơ bản của router, được dựa trên ARP protocol. Khi một máy muốn gửi packet qua router cho một máy thuộc mạng khác, nó gửi packet đó đến router theo địa chỉ MAC của router, kèm theo địa chỉ protocol (network address) của máy nhận. Router sẽ xem xét network address của máy nhận để biết xem nó thuộc mạng nào. Nếu router không biết được phải chuyển packet đi đâu, nó sẽ loại bỏ (drop) packet. Nếu router nhận thấy có thể chuyển packet đến đích, nó sẽ bổ sung MAC address của máy nhận vào packet và gởi packet đi.

    Việc chuyển dữ liệu có thể phải đi qua nhiều router, khi đó mỗi router phải biết được thông tin về tất cả các mạng mà nó có thể truyền dữ liệu tới. Vì vậy, các thông tin của mỗi router về các mạng nối trực tiếp với nó sẽ phải được gửi đến cho tất cả các router trong cùng một hệ thống. Trong quá trình truyền địa chỉ MAC của packet luôn thay đổi nhưng địa chỉ network không thay đổi. Hình 5 trình bày quá trình chuyển packet qua một hệ thống bao gồm nhiều router.

    Quá trình truyền dữ liệu qua router.
  • Thuật toán routing
    • Mục đích và yêu cầu:
      • Tính tối ưu: Là khả năng chọn đường truyền tốt nhất của thuật toán. Mỗi một thuật toán có thể có cách phân tích đường truyền riêng, khác biệt với các thuật tóan khác, tuy nhiên mục đích chính vẫn là để xác định đường truyền nào là đường truyền tốt nhất.
      • Tính đơn giản: Một thuật toán đòi hỏi phải đơn giản, dễ thực hiện, ít chiếm dụng băng thông đường truyền.
      • Ổn định, nhanh chóng, chính xác: Thuật toán phải ổn định và chính xác để bảo đảm hoạt động tốt khi xảy ra các trường hợp hư hỏng phần cứng, quá tải đường truyền… Mặt khác thuật toán phải bảo đảm sự nhanh chóng để tránh tình trạng lặp trên đường truyền như hình 6 do không cập nhật kịp trạng thái đường truyền.
      • Sự linh hoạt: Tính năng này bảo đảm sự thay đổi kịp thời và linh hoạt trong bất cứ mọi trường hợp xảy ra trong hệ thống.

        Hiện tượng lặp trên đường truyền

    • Phân loại

      Thuật toán routing có thể thuộc một hay nhiều loại sau đây:

      • Static hay dynamic

        Static routing là cơ chế trong đó người quản trị quyết định, gán sẵn protocol cũng như địa chỉ đích cho router: đến mạng nào thì phải truyền qua port nào, địa chỉ là gì… Các thông tin này chứa trong routing table và chỉ được cập nhật hay thay đổi bởi người quản trị.

        Static routing thích hợp cho các hệ thống đơn giản, có kết nối đơn giữa hai router, trong đó đường truyền dữ liệu đã được xác định trước.

        Dynamic routing dùng các routing protocol để tự động cập nhật các thông tin về các router xung quanh. Tùy theo dạng thuật toán mà cơ chế cập nhật thông tin của các router sẽ khác nhau.

        Dynamic routing thường dùng trong các hệ thống phức tạp hơn, trong đó các router được liên kết với nhau thành một mạng lưới, ví dụ như các hệ thống router cung cấp dịch vụ internet, hệ thống của các công ty đa quốc gia.

      • Single-Path hay Multipath

        Thuật toán multipath cho phép việc đa hợp dữ liệu trên nhiều liên kết khác nhau còn thuật toán single path thì không. Multi path cung cấp một lưu luợng dữ liệu và độ tin cậy cao hơn single path.

      • Flat hay Hierarchical.

        Thuật toán flat routing dùng trong các hệ thống có cấu trúc ngang hàng với nhau, được trải rộng với chức năng và nhiệm vụ như nhau. Trong khi đó thuật toán hierachical là thuật toán phân cấp, có cấu trúc cây như mô hình phân cấp của một domain hay của một công ty. Tùy theo dạng hệ thống mà ta có thể lựa chọn thuật toán thích hợp.

      • Link State or Distance Vector.

        Thuật toán link state (còn được gọi là thuật toán shortest path first) cập nhật tất cả các thông tin vể cơ chế routing cho tất cả các node trên hệ thống mạng. Mỗi router sẽ gửi một phần của routing table, trong đó mô tả trạng thái của các liên kết riêng của mình lên trên mạng. Chỉ có các thay đổi mới được gửi đi.

        Thuật toán Distance Vector.

        Thuật toán distance vector (còn gọi là thuật toán Bellman-Ford) bắt buộc mỗi router phải gửi toàn bộ hay một phần routing table của mình cho router kết nối trực tiếp với nó theo một chu kỳ nhất định (Hình 7)

        Về mặt bản chất, thuật toán link state gửi các bảng cập nhật có kích thước nhỏ đến khắp nơi trong mạng, trong khi thuật toán distance vector gửi các bảng cập nhật có kích thước lớn hơn chỉ cho router kết nối với nó.

        Thuật toán distance vector có ưu điểm là dễ thực hiện, dễ kiểm tra, tuy nhiên nó có một số hạn chế là thời gian cập nhật lâu, chiếm dụng băng thông lớn trên mạng. Ngoài ra nó cũng làm lãng phí băng thông do tính chất cập nhật theo chu kỳ của mình.

        Thuật toán distance vector thường dùng trong các routing protocol: RIP(IP/IPX), IGRP (IP), RTMP(AppleTalk)… và thường áp dụng cho hệ thống nhỏ.

        Thuật toán link state có ưu điểm là có tốc độ cao, không chiếm dụng băng thông

        nhiều như thuật toán distance vector. Tuy nhiên thuật toán này đòi hỏi cao hơn về bộ nhớ, CPU cũng như việc thực hiện khá phức tạp.

        Thuật toán link state được sử dụng trong routing protocol: OSPF, NLSP… và thích hợp cho các hệ thống cỡ trung và lớn.

        Ngoài ra còn có sự kết hợp hai thuật toán này trong một số routing protocol như: IS-IS, EIGRP.

    • Các số đo cơ bản trong thuật toán routing:

      Metric là số đo của thuật toán routing để từ đó quyết định đường đi tối ưu nhất cho dữ liệu. Một thuật toán routing có thể sử dụng nhiều metric khác nhau. Các metric được kết hợp với nhau để thành một metric tổng quát, đặc trưng cho liên kết. Mỗi thuật toán có thể sử dụng kiểu sử dụng metric khác nhau. Các metric thường được dùng là:

      • Path Length:

        Là metric cơ bản, thường dùng nhất. Path length trong router còn được xác định bằng số hop giữa nguồn và đích. Một hop được hiểu là một liên kết giữa hai router.

      • Reliability:

        Là khái niệm chỉ độ tin cậy của một liên kết. Ví dụ như độ tin cậy được thể hiện thông qua bit error rate… Khái niệm này nhằm chỉ khả năng hoạt động ổ định của liên kết.

      • Delay:

        Khái niệm delay dùng để chỉ khoảng thới gian cần để chuyển packet từ nguồn đến đích trong hệ thống. Delay phụ thuộc vào nhiều yếu tố: khoảng cách vật lý, băng thông của liên kết, đụng độ, tranh chấp đường truyền. Chính vì thế yếu tố này là một metric đóng vai trò rất quan trọng trong thuật toán routing.

      • Bandawidth:

        Là một metric quan trọng để đánh giá đường truyền. Bandawidth chỉ lưu lượng dữ liệu tối đa có thể truyền trên liên kết.

      • Load:

        Load nhằm chỉ phần trăm network resource đang trong trạng thái bận {busy). Load có thể là lưu lượng dữ liệu trên liên kết, là độ chiếm dụng bộ nhớ, CPU…

  • Routed protocol và Routing Protocol

    • Phân biệt giữa hai khái niệm:

      Routed protocol quy định dạng format và cách sử dụng của các trường trong packet nhằm chuyển các packet từ nơi này sang nơi khác (đến tận người sử dụng) Ví dụ: IP, IPX…

      Routing protocol: cho phép các router kết nối với nhau và cập nhật các thông tin của nhau nhờ các bảng routing. Routing protocol có thể sử dụng các routed protocol để truyền thông tin giữa các router. Ví dụ: RIP (Router Information Protocol), IGRP (Interior Gateway Routing Protocol)…

      Routing protocol quyết định:

      • Router nào cần biết thông tin về các router khác.
      • Việc cập nhật thông tin như thế nào.
    • Các routing protocol tiêu biểu: Các routing protocol
      Tên Tên đầy đủ Routed Protocol hỗ trợ
      RIP Routing Information Protocol TCP/IP, IPX
      IGRP Interior Gateway RoutingProtocol TCP/IP
      OSPF Open Shortest Path First TCP/IP
      EGP Exterior Gateway Protocol TCP/IP
      BGP Border Gateway Protocol TCP/IP
      IS-IS Intermediate System toIntermediate System TCP/IP
      EIGRP Enhanced Interior GatewayRouting Protocol TCP/IP
      NLSP NetWare Link Services Protocol IPX/SPX
      RTMP Routing Table MaintenanceProtocol AppleTalk

      Dưới đây chúng tôi xin trình bày một số routing protocol tiêu biểu.

      • RIP:

        RIP là chữ viết tắt của Routing Information Protocol, là 1 trong những routing protocol đầu tiên được sử dụng. RIP dựa trên thuật toán distance vector, được sử dụng rất rộng rãi tuy nhiên chỉ thích hợp cho các hệ thống nhỏ và ít phức tạp. RIP tự động cập nhật thông tin về các router bằng cách gửi các broadcast lên mạng mỗi 30 giây. RIP xác định đường bằng hop count (path length). Số lượng hop tối đa là 15.

      • IGRP:

        Là loại routing protocol hiện nay đang thường dùng nhất, được phát triển bởi Cisco, có các đặc điểm sau:

        • Dùng cơ chế advanced distance vector. Chỉ cập nhật thông tin khi có sự thay đổi cấu trúc.
        • Việc xác định đường được thực hiện linh hoạt thông qua nhiều yếu tố: số hop, băng thông, độ trì hoãn, độ tin cậy…
        • Có khả năng vượt giới hạn 15 hop.
        • Có khả năng hỗ trợ cho nhiều đường liên kết với khả năng cân bằng tải cao.
        • Linh hoạt, thích hợp cho các hệ thống lớn, do dựa trên cơ chế link state kết hợp với distance vector.
      • OSPF:

        Là loại routing protocol tiên tiến, dựa trên cơ chế link-state có khả năng cập nhật sự thay đổi một cách nhanh nhất. Sử dụng IP multicast làm phương pháp truyền nhận thông tin. Thích hợp với các hệ thống lớn, gồm nhiều router liên kết với nhau.

0