IP v6Tác giả: Lê Anh Đức Chương IV: Các giao thức định tuyến trên IPv6 Tương tự như các IPv4 node, các IPv6 node sử dụng một bảng định tuyến IPv6 cục bộ để quyết định cách để truyền pa
Trang 1IP v6
Tác giả: Lê Anh Đức
Chương IV: Các giao thức định tuyến trên IPv6
Tương tự như các IPv4 node, các IPv6 node sử dụng một bảng định tuyến IPv6 cục bộ để quyết định cách để truyền packet đi Các entry trong bảng định tuyến được tạo một cách mặc định khi IPv6 khởi tạo và các entry khác sẽ được thêm vào khi nhận được các gói tin Router Advertisement chứa các prefix và các route, hay qua việc cấu hình tĩnh bằng tay
I Bảng định tuyến IPv6:
Một bảng định tuyến sẽ có mặt trên tất cả các node chạy giao thức IPv6 Bảng định tuyến lưu những thông tin về các subnet của mạng và một next hop để có thể đến được subnet đó Trước khi bảng định tuyến được kiểm tra, thì
destination cache sẽ được kiểm tra trước xem có những entry nào trong đó match với địa chỉ đích có trong IPv6 header của packet hay không Nếu không
có thì bảng định tuyến sẽ được sử dụng để quyết định:
* Interface được sử dụng để truyền gói tin (next hop interface) Interface xác định interface vật lý hay luận lý được sử dụng để truyền gói tin đến đích của nó hay router tiếp theo
* Địa chỉ next hop: với những đích nằm trên cùng một liên kết cục bộ thì địa chỉ next hop chính là địa chỉ đích của packet Với những đích không nằm cùng subnet thì địa chỉ next hop chính là địa chỉ của một router
Sau khi interface và địa chỉ của next hop được xác định thì node sẽ cập nhật destination cache Các gói tin tiềp theo sẽ được truyền đến đích sử dụng cache entry này mà không phải kiểm tra bảng định tuyến
1 Các loại entry trong bảng định tuyến IPv6:
Các entry trong bảng định tuyến IPv6 được sử dụng để lưu những loại đường sau:
• Các đường được kết nối trực tiếp Những route này là những prefix cho những subnet được kết nối trực tiếp và thường là có kích thước prefix là 64 bit
• Những route của các mạng ở xa: những route này là những prefix của những mạng không được kết nối trực tiếp nhưng có thể đến được qua các router khác Những route này là những prefix cho một subnet (thường có prefix là /64) hay là prefix cho một tầm địa chỉ (thường có prefix nhỏ hơn 64)
• Các route của host: một host route là một route cho một địa chỉ IPv6 xác định Với các host route thì prefix là một địa chỉ IPv6 xác định với prefix là 128 bit
Trang 2• Default route: được sử dụng khi một mạng không được tìm thấy trong bảng định tuyến Có prefix là ::/0
2 Quá trình định đường: để quyết định sẽ sử dụng entry nào trong bảng định tuyến để truyền gói tin thì IPv6 sử dụng các quá trình sau:
a Với mỗi entry trong một bảng định tuyến, nó sẽ so sánh các bit trong network prefix với cùng các bit đó trong địa chỉ đích với số bit sẽ được xác định bởi prefix của route Nếu tất cả đều match thì route đó sẽ là một match cho đích
b Danh sách các route được match sẽ được xử lý lại Route có chiều dài prefix lớn nhất sẽ được chọn (theo quy tắc longest match) Longest match route sẽ là route tốt nhất cho đích Nếu nhiều entry cùng thoả mãn (cùng prefix) thì router
sẽ chọn route nào có metric nhỏ nhất (theo quy tắc lowest metric) Nếu cả hai thông số trên đều trùng thì router sẽ chọn 1 để sử dụng
Với một đích bất kỳ cho trước, thì quá trình trên là kết quả của việc tìm route theo thứ tự sau:
- Một host route match toàn bộ địa chỉ đích
- Một network route với prefix lớn nhất match địa chỉ đích
- Default router
Route được chọn sẽ có interface và địa chỉ của next hop Nếu quá trình định đường trên host thất bại thì IPv6 sẽ giả sử rằng đích có thể đến được một cách cục bộ Còn nếu việc định tuyến trên router thất bại thì IPv6 sẽ gửi một ICMP Destination Unreachable-No Route to Destination về cho máy gửi và bỏ gói tin
Ví dụ: Bảng định tuyến trên một máy PC chạy WinXP Để xem bảng định tuyến của máy cài WinXP, ta sử dụng lệnh netsh interface ipv6 show routes Sau đây
là output của lệnh trên của một máy cài 3 card mạng và được xem là default router cho 2 subnet và là một default route cho subnet thứ 3
Publish Type Met Prefix Idx Gateway/Interface Name
- - - - -
yes Autoconf 8 fec0:0:0:1::/64 3 Local Area Connection
yes Autoconf 8 fec0:0:0:2::/64 4 Local Area Connection 2
yes Autoconf 8 fec0:0:0:3::/64 5 Local Area Connection 3
yes Manual 256 ::/0 5 fe80::210:ffff:fed6:58c0
Mỗi entry trong bảng định tuyến của WinXP có các trường sau:
Trang 3• Route đó có được quảng bá (Publish) hay không (được quảng bá qua các Router Advertisement)
• Loại route (Type)
• Metric được sử dụng để chọn khi có nhiều route cùng prefix (Met)
• Prefix
• Index của interface xác định interface mà qua đó packet có thể được gửi đến (Idx) Index này có thể được xem bằng lệnh: netsh interface ipv6 show interface
• Địa chỉ của next hop hay interface của next hop
Với những route của những mạng ở xa, một địa chỉ IPv6 của next hop sẽ được liệt kê Với những route được kết nối trực tiếp thì tên của interface sẽ được liệt
kê ra
Với những route được cấu hình bởi các ứng dụng của người dùng sẽ có loại route là Manual Các route được cấu hình bởi giao thức IPv6 sẽ có kiểu route là Autoconf Bảng định tuyến IPv6 được xây dựng tự động và dựa trên cấu hình hiện tại của host Các route cho những prefix liên kết cục bộ (có bắt đầu là FE80::/64) sẽ không có mặt trong bảng định tuyến
Với ví dụ ở trên, giả sử có một traffic gửi đến mạng
FEC0::2:2AA:FF:FE90:4D3C thì longest match là route được kết nối trực tiếp: FEC0::2::/64 Và do đó, next hop interface sẽ là interface có index là 4 Khi traffic được gửi đến địa chỉ FEC0::9:2AA:FF:FE03:21A6 thì longest match sẽ là default route (::0/64) do đó, next hop interface cho traffic này sẽ là interface có index là 5
II Các giao thức định tuyến trong IPv6:
Việc tạo một mạng IPv6 chứa nhiều subnet sẽ được kết nối với nhau bởi các IPv6 router Để có thể đến được tất cả các host trong mạng thì các route phải tồn tại trên các host và trên các router Những route này có thể là route chung( như một deffault route) hay một route xác định đại diện cho một subnet
Các host thường sử dụng những route được kết nối trực tiếp để đến những node lân cận và một default route để đến tất cả những vị trí khác Các router thường
sử dụng những route xác định để đến những vị trí trong site của nó và những route tóm tắt để đến những site khác hay ra internet Mặc dù việc cấu hình trên các host về các route đều được làm tự động qua các gói tin quảng bá từ router, nhưng việc cấu hình trên các router thì phức tạp hơn Một router có thể có các route được cấu hình tĩnh hay động qua việc sử dụng các giao thức định tuyến Việc định tuyến tĩnh dựa trên việc các entry trong bảng định tuyến được cấu hình tĩnh và không thay đổi khi topo thay đổi Một router với bảng định tuyến được cấu hình tĩnh được gọi là một router tĩnh Nhà quản trị mạng phải biết rõ topo của mạng để có thể tự tay xây dựng và cập nhật nội dung bảng định tuyến Các router tĩnh có thể họat động tốt trên những mạng nhỏ, nhưng không co khả năng mở rộng cho những mạng lớn hay tự động thay đổi khi mạng thay đổi III Tổng quan về các giao thức định tuyến động:
Trang 4Định tuyến động là việc tự động cập nhật bảng định tuyến cho mỗi sự thay đổi trên mạng Router được cấu hình cho việc định tuyến động được gọi là dynamic router Các bảng định tuyến được duy trì tự động giữa các router Các giao thức định tuyến (Routing protocol) đảm nhận công việc định tuyến động
Các giao thức định tuyến động có khả năng phát hiện được lỗi trên mạng nên định tuyến động là chọn lựa tốt cho mạng vừa, lớn, có thể rất lớn
Routing protocol được dùng giữa các router và được thể hiện bằng các luồng thông tin cập nhật lan truyền trên mạng Luồng thông tin thêm vào này là một nhân tố quan trọng trong WAN
Routing protocol trong IPv4: Routing Information Protocol (RIP), Open Shortest Path First (OSPF), Border Gateway Protocol (BGP)
Nhân tố quan trọng của hiện thực routing protocol là khả năng cảm nhận và khôi phục lỗi trên mạng, khả năng phát hiện lỗi nhanh hay chậm, làm cách nào để phát hiện được lỗi, và bằng cách nào để thông tin định tuyến lan truyền trên mạng Khi tất cả các router trong mạng có được thông tin định tuyến chính xác
từ bảng định tuyến, mạng được gọi là hội tụ (converged) Lúc ấy, mạng đạt trạng thái ổn định (stable) và mọi việc định tuyến đều theo đường đi tối ưu
Khi một liên kết hoặc một router bị lỗi, mạng phải tự cấu hình lại để hình thành một topology mới Thông tin trong bảng định tuyến phải được cập nhật lại cho đến khi mạng hội tụ trở lại(converged) Có thể xảy ra hiện tượng “routing loops”, thông tin định tuyến di chuyển hoài mà mạng không đạt được trạng thái stable Thời gian để mạng tái hội tụ gọi là thời gian hội tụ (convergence time) Convergence time phụ thuộc vào routing protocol và lỗi xảy ra (lỗi do link down hay do router down)
IV Các kỹ thuật cho giao thức định tuyến:
Có các kỹ thuật sau: Distance vector, link state và path vector
• Distance vector:
Giao thức định tuyến Distance vector lan truyền thông tin định tuyến gồm network ID và hop count của nó Qua mỗi node router, hop count tăng lên 1 Router sẽ định kỳ trao đổi thông tin của bảng định tuyến cho nhau Mỗi router nhận một bảng định tuyến trực tiếp từ các router kế cận Quá trình này cứ lan truyền từng bước đến tất các các router trong mạng Distance vector routig protocol chủ yếu làm các nhiệm vụ sau:
Xác định nguồn của thông tin.
Tìm đường.
Chọn đường đi tốt nhất
Duy trì thông tin đường đi.
Ưu điểm của distance vector-based routing protocols là đơn giản và dễ cấu hình Khuyết điểm là lưu lượng thông tin trao đổi giữa các router quá nhiều, thời gian hội tụ (convergence time) lâu, không dùng được cho mạng lớn hoặc quá lớn
Trang 5Giải thuật này tổng quát hoá ra một con số, gọi là metric value, cho mỗi đườn đi trên mạng Metric càng nhỏ thì đường đi càng tốt Metric được tính dựa vào đặc tính của đường đi đơn lẻ cũng như của nhiều đường đi chung Metric dùng chung cho các router thường bao gồm:
Hop count: số routers mà mỗi packet đi ngang qua
Cost: thường phụ thuộc vào bandwidth, giá thành, hoặc một đơn vị đo lường nào khác, thường được định ra bởi administrator
Bandwidth: dung lượng đường truyền. Ví dụ 100Mbps Ethernet
Delay: thời gian cần để di chuyển một packet từ nguồn đến đích
Load: tải của đường router và truyền.
Reliability: tỳ lệ bit lỗi của mỗi đường truyền.
MTU: maximum transmission unit, chiều dài tối đa của frame tính theo octet
• Link state:
Routers trao đổi trạng thái đường truyền trong mạng và cập nhật bảng định tuyến Link-state- protocols xây dựng bảng định tuyến dựa trên cơ sở dữ liệu của topology Cơ sở dữ liệu này được xây dựng từ link-state packets – là packets truyền qua tất cả các router để mô tả trạng thái của mạng Giải thuật link-state-base routing (cũng được biết vơ1i tên gọi shortest path first) duy trì một cơ sở
dữ liệu phức tạp về thông tin topology Trong khi giải thuật distance vector routing không xác định thông tin cụ thể về distance networks.và distance
routers, giải thuật link-state routing có duy tri đầy đủ thông tin distance routers
và chúng kết nối với nhau như thế nào Thông tin định tuyến trao đổi giữa các link-state routers lđược đồng bộ và thừa nhận Link-state cập nhật bằng truyền unicast hoặc multicast, ít khi dùng broadcast
Link-state có thể được dùng cho mạng lớn, hoạt động của nó như sau:
Chỉ gửi thông tin cập nhật khi có sự thay đổi♣ của topology
Không cập nhật định kỳ thường xuyên như♣ distance-vector protocols
Mạng dùng link-state routing protocols có♣ thể chia nhỏ thành những vùng phân cấp, như vậy mỗi khi có sự thay đổi thì sẽ thay đổi trên nhưng vùng nhất định, không lan truyền ra toàn mạng
Cung cấp classless addressing, tận dụng subnetting.♣
Cung♣ cấp việc tổng quát hoá
Ưu điểm của link-state là convergence time ngắn, có khả năng dùng cho mạng lơn và rất lớn Khuyết điểm của link-state routing protocols là phức tạp và khó cấu hình
• Path Vector:
Router dùng path vector-base protocols để hoán đổi trật tự của hop numbers- ví
dụ như hệ thống tự đếm số (autonomous system numbers)- để xác định lộ trình Thông tin định tuyến thay đổi giữa các path vector-based router được tổng quát hoá và được xác nhận Ưu điểm của path-vector
–based routing protocol là chiếm ít đường truyền của mạng, thời gian
Trang 6convergence thấp, và có khả năng dùng cho mạng lớn chứa nhiều hệ tự trị (autonomous systems) Khuyết điểm của phương pháp này là phức tạp và khó cấu hình
V Các giao thức định tuyến trên IPv6:
- RIPng cho IPv6
- OSPF cho IPv6
- IS-IS cho IPv6
- BGP-4
- IDRPv2
RIPng cho IPv6:¬
RIP Next Generation là giao thức distance vector routing cho IPv6, được định nghĩa trong RFC 2080 RIPng cho IPv6 được xây dựng trên RIPv2 RIPng cho IPv6 có cấu trúc packet đơn giản và dùng UDP port 521 để quảng bá lộ trình, trả lời yêu cầu về lộ trình, và quảng bá các thay đổi bất đồng bộ
Hop count của giao thức này là 15 Những vị trí nào có khoảng cách hop count
là 16 hoặc hơn thì sẽ không đến được RIPng cho IPv6 là một giao thức đơn giản Giao thức này có cơ cấu quảng bá định kỳ được thiết kế cho màng vừa và nhỏ RIPng cho IPv6 không dùng được cho mạng lớn
Hoạt động RIPng:
Khi router được khởi động, nó thông báo những lộ trình thích hợp trong bảng định tuyến của nó cho tất cả các interface, và gửi thông điệp đề nghị (general request) đến tất cả các interface khác Và tất cả các neighboring router đều gửi trả lời nội dung của bảng định tuyến, và những thông tin hồi âm qua lại sẽ giúp xây dựng bảng định tuyến Có một khoảng thời gian để router “học” thông tin định tuyến Quá khoảng thời gian này, thông tin ấy xem như không được “học” Thời gian mặc định là 3 phút
Sau khi khởi động, RIPng IPv6 router sẽ gửi thông báo vể con đường thích hợp trong bảng định tuyến của nó cho tấtc cả các touter khác theo định kỳ (mặc định
là 30s) Split horizon hoặc split horizon với poison reverse sẽ là giải pháp chống looping Tập chính xác các router được gửi thông báo tới phụ thuộc vào RIPng IPv6 dùng Split horizon hay là Split horizon với Poison reverse Lỗi phát sinh trên mạng RIPng là do RIPng IPv6 “học” đường đi bị timeout Khi một sự thay đổi xảy ra trên mạng, RIPng IPv6 gửi một triggered update – là một routing update – ngay lập tức
Chi tiết về RIPng IPv6 được trình bày trong RFC 2080
OSPF IPv6:¬
OSPF IPv6 là một giao thức link state được định nghĩa trong RFC 2740 OSPF được thiết kế để chạy như một hệ tự trị OSPF IPv6 được xây dựng trên OSPFv2
Trang 7của IPv4 OSPF cost ở mỗi link được admin gán cho, và không phải là suy nhất Cost đó bao gồm: thời gian trễ, đường truyền, giá tiền, và tổng phải nhỏ hơn 65.535
OSPF IPv6 có sự thay đổi so với OSPFv2:
Cấu trúc của gói OSPF được sửa đổi để loại bỏ sự♣ độc lập trong việc phân địa chỉ IPv4
Có LSA được định ra để mang♣ địa chỉ IPv6 và prefixes
OSPF thường chạy trên mỗi link, chứ không♣ trên mỗi subnet
Phạm vi của network cho việc flooding LSAs được♣ tổng quát hoá
Giao thức OSPF không cung cấp việc uỷ quyền Thay♣ vào đó, OSPF dựa trên Authentication header (AH) và Encapsulating Security Payload (ESP) header and trailer
Hoạt động OSPF IPv6:
Mỗi router có một LSA để miêu tả trạng thái hiện tại của nó LSA của mỗi OSPF IPv6 router thì hiệu quả cho việc lan truyền khắp nơi trên mạng OSPF thông qua mối quan hệ với các neighboring routers được gọi là adjacencies Khi tất cả sự lan truyền của tất cả các LSA ở router hiện tại hoàn thành, mạng OSPF được gọi là hội tụ (converged)
Dựa trên tập hợp các OSPF LSA – được biết là link state database (LSDB) – OSPF tính toán đường đi có giá thấp nhất cho mỗi lộ trình, và những con đường
ấy trờ thành OSPF routes trong bảng định tuyến IPv6 Để giảm kích thước của LSDB, OSPF cho phép tính toán và tạo ra ở mỗi vùng Một vùng OSPF là một nhóm các segment của mạng liên tiếp nhau Trong tất cả các mạng OSPF, có ít nhất một vùng được gọi là vùng backbone Vùng OSPF cho phép tổng kết hoặc tập hợp các thông tin định tuyến trên các vùng OSPF biên Một router tại vùng biên của vùng OSPF được gọi là Area border Router (ABR)
Chi tiết về OSPF cho IPv6 được nhắc đến nhiều hơn trong RFC 2740
Integrated IS-IS IPv6:¬
Là một giao thức link state rất giống với OSPF, được định nghĩa bởi ISO 10589 IS-IS cung cấp IPv4 và Connectionless Network Protocol (CLNP) IS-IS được
mô tả trong “Routing IPv6 with IS-IS.”
BGP-4:¬
Border Gateway Protocol version 4 là một giao thức path vector routing được định nghĩa trong RFC 1771 RIPng IPv6 và OSPF IPv6 dùng như một hệ tự trị (autonomous system) BGP-4 thì khác, nó được thiết kế để thay đổi thông tin giữa các hệ tự trị Thông tin định tuyến BGP-4 được dùng để tạo ra một đường
đi ảo có thứ bậc như một cây (path tree) Cây này mô tả tất cả các kết nối giữa các hệ tự trị Thông tin cây đường đi (path tree) được dùng để tạo loop-free
Trang 8routes trong bảng đường đi của BGP-4 routers BGP-4 messages được gửi bằng port TCP 179 BGP-4 là giao thức inter-domain nguyên thuỷ dùng để duy trì bảng định tuyến trong mạng IPv4
IDRPv2:¬
Inter-Domain Routing Protocol (IDRP) là path vector routing protocol được định nghĩa trong ISO 10747 IDRP được thiết kế để dùng giữa các hệ tự trị IDRPv2 là giao thức định tuyến tốt hơn BGP-4 bởi vì thay vì dùng các các hệ trự trị thêm vào để làm bộ định danh, IDRPv2 được định danh bởi Ipv6 prefix luôn Hơn nữa, các routing domain có thể gom nhóm lại để tạo ra một nhóm cấu trúc có thứ bậc nhằm tổn quát hóa việc định tuyến
Chi tiết về IDRPv2 được nêu ra trong ISO 10747