Giao thức truyền file (FTP)

Một phần của tài liệu Nghiên cứu triển khai mô hình mạng ứng dụng IP version 6 (Trang 65)

FTP đã được thiết kế để làm việc trên IPv4 hỗ trợ 32 bit địa chỉ. Với RFC 2428, các mở rộng FTP cho IPv6 và NAT được tạo ra để cho phép FTP làm việc trên IPv4 và IPv6. Trong thời gian mà cả hai giao thức cùng tồn tại, điều quan trọng là các FTP server có một cơ chế để dàn xếp giao thức mạng mà sẽ được sử dụng trong một phiên.

RFC chỉ ra hai lệnh FTP mới để thay thế các lệnh PORT và PASV từ phiên bản FTP trước đây. Lệnh PORT được sử dụng trong mode tích cực để chỉ ra một cổng khác các cổng mặc định sử dụng cho kết nối dữ liệu. Nó chứa thông tin địa chỉ và vì vậy không thể được sử dụng với IPv6 mà không được thay đổi. Lệnh PASV được sử dụng để đặt server vào mode thụ thộng. Lệnh này bao gồm địa chỉ cổng và địa chỉ host của FTP server và vì vậy không làm việc trên IPv6 mà không sửa đổi.

Lệnh PORT được thay thế bởi lệnh EPRT, cho phép chỉ ra một địa chỉ được mở rộng để kết nối dữ liệu. Địa chỉ địa mở rộng này chỉ ra giao thức mạng (IPv4 hoặc IPv6), cũng như địa chỉ IP và cổng được sử dụng. Lệnh EPSV thay thế lệnh PASV. Lệnh EPSV có một tùy chọn mà cho phép nó chỉ ra giao thức mạng, nếu cần thiết. Trả lời của server chỉ bao gồm chỉ số cổng mà trên đó nó nghe, nhưng khuôn dạng của bản tin trả lời thì tương tự như đối với lệnh EPRT và có một placeholder cho giao thức mạng và thông tin địa chỉ mà có thể được sử dụng trong tương lai. Các lệnh mới này không chỉ phù hợp với IPv6 mà còn cung cấp khả năng mềm dẻo lớn trong việc sử dụng FTP thông qua firewall và NAT.

3.4 Giao thức phát hiện MTU của đường truyền trong IPv6 (PMTUD)[1],[7]

Như được miêu tả trong RFC 1191, cơ chế PMTUD được định nghĩa cho IPv4 vào năm 1990; nó không phải là mới với giao thức IPv6. Tuy nhiên, trong IPv4 PMTUD là tùy chọn và không được sử dụng phổ biến bởi các node.

Mục đích chính của PMTUD là tìm ra giá trị MTU của đường truyền khi một gói tin được gửi tới đích để tránh phải phân mảnh. Sau đó node nguồn có thể sử dụng kích thước MTU lớn nhất được tìm thấy để liên lạc với đích. Sự phân mảnh có thể xảy ra trong các router trung gian khi gói tin lớn hơn MTU của lớp liên kết dữ liệu. Sự phân mảnh thì có ích trong việc tiết kiệm các chu kỳ xử lý của CPU trong các router. Tuy nhiên, trong một vài trường hợp, sự phân mảnh có thể xảy ra trong một vài router trung gian trên đường truyền. Điều này làm giảm hiệu quả xử lý của các router.

Sự phân mảnh trong IPv6 không được thực hiện bởi các router. Node nguồn có thể phân mảnh gói tin của nó chỉ khi MTU của đường truyền nhỏ hơn MTU của các gói tin được truyền. Như miêu tả trong RFC 2460, các node IPv6 thực hiện PMTUD để tránh sự phân mảnh.

PMTUD sử dụng bản tin báo lỗi ICMPv6 loại 2, Packet Too Big. Hình 3.3 trình bày một ví dụ của PMTUD cho IPv6 được sử dụng bởi node nguồn. Đầu tiên, node nguồn gửi gói tin IPv6 thứ nhất tới node đích sử dụng giá trị MTU bằng 1500 byte (1). Sau đó router trung gian A trả lời node nguồn sử dụng một bản tin ICMPv6 loại 2, Packet Too Big, và chỉ ra giá trị MTU nhỏ hơn bằng 1400 byte trong gói tin ICMPv6 (2). Node nguồn sau đó gửi bản tin nhưng thay vào đó là sử dụng 1400 byte bằng giá trị MTU; gói tin đi qua router A (3). Tuy nhiên, dọc theo đường truyền, router trung gian B trả lời cho node nguồn sử dụng bản tin ICMP loại 2 và chỉ ra giá trị MTU là 1300 byte (4). Cuối cùng, node nguồn gửi lại gói tin sử dụng kích thước 1300 byte bằng với giá trị MTU đó. Gói tin vượt qua tất cả các router trung gian và được gửi tới đích (5). Phiên kết nối này bây giờ được thiết lập giữa node nguồn và node đích, tất cả gói tin được truyền giữa chúng sử dụng kích thước 1300 byte bằng với MTU (6).

Các giá trị MTU được tìm ra bởi PMTUD cho IPv6 được cất giữ bởi các node nguồn. Với phần mềm IOS của Cisco, chúng ta có thể xem các giá trị PMTUD này sử

dụng lệnh show ipv6 mtu. Cấu trúc lệnh này như sau:

Router#show ipv6 mtu

3.5. Giao thức phát hiện hàng xóm (NDP)[1],[7]

Giao thức NDP được định nghĩa trong RFC 2461, là một giao thức quan trọng của IPv6.

Sự thay thế ARP – Bởi vì ARP đã bị hủy bỏ trong IPv6, IPv6 đưa ra một cách mới để xác định các địa chỉ lớp liên kết dữ liệu của các node trên link-local. Cơ chế mới này sử dụng sự kết hợp của các bản tin ICMPv6 và các địa chỉ multicast.

Sự cấu hình tự động của host – Cơ chế này cho phép các node trên link-local tự động cấu hình địa chỉ IPv6 của chính bản thân nó bằng việc sử dụng cả bản tin ICMPv6 và các địa chỉ multicast.

Router redirection – Router gửi các bản tin ICMPv6 tới một node IPv6 để báo cho node biết sự có mặt của một địa chỉ router tốt nhất trên cùng link-local để đạt được tới mạng đích.

Hình 3.4 – Các cơ chế trong NDP

Các bản tin ICMP mới được định nghĩa cho các phạm vi cụ thể của NDP. Như trình bày trong bảng 3-2, các bản tin ICMPv6 được gán nhãn trong nội dung của NDP. Các bản tin ICMPv6 mới này là Router Solicitation, Router Advertisement, Neighbor Solicitation, Neighbor Advertisement, và Redirect Message.

Bảng 3-2. Các bản tin ICMPv6 được định nghĩa cho NDP

Kiểu ICMPv6 Tên bản tin

Type 133 Router solicitation (RS) Type 134 Router advertisement (RA) Type 135 Neighbor solicitation (NS) Type 136 Neighbor advertisement (NA)

Kiểu ICMPv6 Tên bản tin

Type 137 Redirect message

Bảng 3-3 trình bày các bản tin ICMPv6 được sử dụng bởi các cơ chế NDP. Sự thay thế ARP sử dụng bản tin ICMPv6 kiểu 135 và ICMPv6 kiểu 136. Sự quảng bá tiền tố và sự thay đổi tiền tố sử dụng bản tin ICMPv6 kiểu 133 và ICMP kiểu 134. DAD sử dụng bản tin ICMPv6 kiểu 135, Router redirection sử dụng bản tin ICMPv6 kiểu 137.

Bảng 3-3. Các bản tin ICMPv6 sử dụng bởi các cơ chế NDP

Cơ chế ICMPv6 kiểu 133 ICMPv6 kiểu 134 ICMPv6 kiểu 135 ICMPv6 kiểu 136 ICMPv6 kiểu 137 Thay thế ARP X X

Quảng cáo tiền tố X X

Thay đổi tiền tố X X

DAD X

Thay đổi hướng Router X

Trên các thiết bị Cisco, các tham số của NDP và các cơ chế bên trong được

điều khiển sử dụng lệnh ipv6 nd. Các phần sau miêu tả chi tiết các cơ chế này.

3.5.1 Sự thay thế ARP bằng các bản tin Neighbor Solicitation và

Neighbor Advertisement

Trong IPv4, ARP được sử dụng bởi các node trên link-local để xác định địa chỉ lớp liên kết dữ liệu của các node khác. Mỗi node sử dụng một bảng ARP để chứa các địa chỉ MAC của các node được học từ ARP. Trong IPv6, việc xác định các địa chỉ lớp liên kết dữ liệu của các node sử dụng cả hai loại bản tin là neighbor solicitation (ICMPv6 kiểu 135) và bản tin neighbor advertisement (ICMPv6 kiểu 136), và các địa chỉ multicast solicited-node (FF02::1:FFxx:xxxx).

Sự hoạt động của Neighbor solicitation và neighbor advertisement

Phần này miêu tả chi tiết về hoạt động của các bản tin neighbor solicitation và neighbor advertisement, và các địa chỉ multicast solicited-node được sử dụng trong IPv6 để thay thế ARP. Sau đó là các lệnh trên phần mềm IOS của Cisco liên quan đến các bản tin này.

Bƣớc 1: Node A có địa chỉ FEC0::1:0:0:1:A muốn gửi các gói tin tới đích B có địa chỉ IPv6 FEC0::1:0:0:1:B trên cùng một link-local. Tuy nhiên node A không biết địa chỉ lớp liên kết dữ liệu của B. Node A gửi một bản tin ICMP kiểu 135 (neighbor solicitation) trên link-local sử dụng địa chỉ site-local của nó FF02::1:FF01:A như là địa chỉ IPv6 nguồn, địa chỉ multicast solicited-node FF02::1:FF01:B tương ứng

với địa chỉ đích FEC0::1:0:0:1:B như là địa chỉ IPv6 đích, và địa chỉ lớp liên kết dữ liệu của node nguồn A là 00:50:3e:e4:4c:00, như là dữ liệu của bản tin ICMPv6.

Địa chỉ lớp liên kết dữ liệu của node nguồn trong khung này là địa 00:50:3e:e4:4c:00 của node A. Địa chỉ lớp liên kết dữ liệu node đích là 33:33:FF:01:00:0B của khung này sử dụng sự ánh xạ multicast của địa chỉ IPv6 đích FF02::1:FF01:B.

Bƣớc 2: Node B lắng nghe các địa chỉ multicast trên link-local, chặn bản tin neighbor solicitation bởi vì địa chỉ IPv6 đích FF02::01:FF01:B đại diện cho địa chỉ multicast solicited-node thì tương ứng với địa chỉ IPv6 FEC0::1:0:0:1:B của nó.

Bƣớc 3: Node B trả lời bằng việc gửi một bản tin neighbor advertisement sử dụng địa chỉ site-local FEC0::1:0:0:1:B của nó làm địa chỉ IPv6 nguồn và địa chỉ site- local FEC0::1:0:0:1:A làm địa chỉ IPv6 đích. Nó cũng chứa địa chỉ lớp liên kết dữ liệu 00:50:3e:e4:4b:01 trong bản tin ICMPv6.

Hình 3.5 – Các bản tin được sử dụng để tìm địa chỉ MAC trên link-local

Sau khi nhận được các bản tin neighbor solicitation và neighbor advertisement, node A và B biết được địa chỉ lớp liên kết dữ liệu của nhau. Các địa chỉ này sẽ được lưu trong bảng neighbor discovery.

Bản tin neighbor solicitation cũng được sử dụng bởi các node để kiểm tra khả năng có thể tới của các node trong bảng. Tuy nhiên, các địa chỉ unicast của các node láng giềng được sử dụng như là địa chỉ IPv6 đích trong các bản tin ICPMv6 thay vì các địa chỉ multicast như ở trên.

Khi một node thay đổi địa chỉ lớp liên kết dữ liệu nó sẽ báo cho tất cả các node láng giềng trên link-local biết bằng việc gửi một bản tin neighbor advertisement sử dụng địa chỉ multicast FF02::1 của tất cả các node. Bảng neighbor discovery của các node trên link sẽ cập nhật địa chỉ mới này.

Bảng 3-4 tóm tắt các kiểu địa chỉ multicast và các bản tin ICMPv6 có liên quan trong cơ chế thay thế cho ARP.

Bảng 3-4. Các địa chỉ multicast và các bản tin ICMPv6 được sử dụng cơ chế thay thế ARP

Cơ chế Địa chỉ Multicast Bản tin ICMPv6

Thay thế ARP Địa chỉ multicast Solicited-node (FF02::1:FFxx:xxxx)

ICMPv6 kiểu 135 (neighbor solicitation)

ICMPv6 kiểu 136 (neighbor advertisement

Lệnh hiển thị bảng Neighbor discovery

Chúng ta có thể hiển thị các láng giềng trong bảng neighbor discovery bằng việc sử dụng lệnh dưới đây:

Router#show ipv6 neighbors [ipv6-address-or-name | interface_type interface_number]

Như trình bày trong ví dụ 3-2, lệnh show ipv6 neighbors hiển thị địa chỉ IPv6

của các láng giềng, lifetime (theo phút), địa chỉ lớp liên kết dữ liệu, trạng thái, và giao diện mạng của router mà kết nối đến láng giềng đó. Trạng thái REACH có nghĩa là láng giềng đó có thể đến được. Trạng thái STALE có nghĩa là các láng giềng này không thể đến được trong 30 phút nữa (giá trị này là mặc định).

Ví dụ 3-2. Lệnh show ipv6 neighbors

Bổ sung thêm một neighbor cho bảng neighbor discovery

Lệnh ipv6 neighbor cho phép chúng ta bổ sung thêm một lối vào tĩnh cho bảng neighbor discovery. Địa chỉ IPv6 unicast, giao diện mạng của router, nơi có mặt của láng giềng, và địa chỉ lớp liên kết dữ liệu là các tham số bắt buộc của lệnh này.

Ví dụ 3-3 trình bày sự bổ sung thêm một lối vào cho bảng neighbor discovery. Địa chỉ IPv6 FEC0::1:0:0:1:B, liên quan tới địa chỉ lớp liên kết dữ liệu 0080.12ff.6633, được bổ sung vào bảng neighbor discovery của router A.

Xóa bỏ một neighbor trong bảng neighbor discovery

Chúng ta có thể xóa bỏ tất cả lối vào bảng neighbor discovery bằng cách sử

dụng lệnh clear ipv6 neighbors:

Router#clear ipv6 neighbors

3.5.2. Sự cấu hình địa chỉ IPv6 tự động

Sự cấu hình động là một tính năng mới của IPv6. Nó cho phép các node trên link-local tự cấu hình địa chỉ IPv6 unicast của mình dựa trên thông tin quảng bá nhận được trên link do một router gửi đến.

Như trình bày trên hình 3.6, sự cấu hình động này gồm các cơ chế sau:

Quảng bá tiền tố (prefix) – Quảng bá các tiền tố và các tham số trên một link-local. Thông tin này được sử dụng bởi các node IPv6 để cấu hình địa chỉ IPv6 cho mình.

DAD – Đảm bảo rằng mỗi địa chỉ IPv6 được cấu hình trên giao diện sử dụng

cơ chế này là duy nhất trên link.

Sự thay đổi tiền tố - Quảng bá các tiền tố bị thay đổi hoặc các tiền tố mới và các tham số trên link để thay đổi một tiền tố đã được quảng bá.

3.5.2.1. Quảng bá tiền tố

Quảng bá tiền tố là cơ chế đầu tiên của quá trình tự động cấu hình địa chỉ. Cơ chế quảng bá tiền tố sử dụng các bản tin router advertisement (ICMPv6 kiểu 134) và địa chỉ multicast của tất cả các node FF02::1. Các bản tin này được gửi theo chu kỳ trên link-local tới địa chỉ multicast của tất cả các node.

Quảng bá một tiền tố IPv6 trên một router

Như đã miêu tả ở trên, việc quảng bá một tiền tố IPv6 trên một router được cho phép ngay khi một địa chỉ site-local hoặc một địa chỉ unicast toàn cầu có thể tổng

hợp với một độ dài tiền tố được cấu hình trên một giao diện mạng. Lệnh ipv6 address

được sử dụng cho mục đích này. Nếu chúng ta gán một vài địa chỉ IPv6 sử dụng các tiền tố khác nhau cho cùng một giao diện mạng, các tiền tố khác nhau được gửi tới các host trên link đó.

Các bản tin quảng bá router chứa các tham số được sử dụng bởi các node trong và sau tiến trình cấu hình động là :

IPv6 prefix – Một hoặc vài tiền tố IPv6 có thể được quảng bá trên link-local. Theo mặc định, độ dài tiền tố được quảng bá là 64 bit. Các node nhận được tiền tố IPv6, và sau đó chúng gắn thêm các địa chỉ lớp liên kết dữ liệu theo khuôn dạng EUI- 64 cho các tiền tố nhận được. Sự kết hợp này cho ta một địa chỉ 128 bit cho các node.

Lifetime – Một giá trị lifetime cho mỗi tiền tố quảng bá cũng được gửi cho các node. Giá trị này có thể là từ không đến vô cùng. Các node kiểm tra giá trị này để ngừng sử dụng tiền tố sau khi nó đã hết hạn. Có hai loại giá trị lifetime:

+ Valid lifetime – Khi giá trị này hết hạn địa chỉ của node sẽ không còn ý nghĩa

+ Preferred lifetime – Giá trị này phải bé hơn hoặc bằng giá trị của valid lifetime. Khi giá trị này hết hạn, tất cả địa chỉ nhận được bởi cơ chế cấu hình động và việc sử dụng tiền tố này sẽ bị phản đối. Vì vậy, các node không thể sử dụng các địa chỉ này để thiết lập các kết nối mới. Nhưng các node sẽ vẫn chấp nhận các kết nối trong khi thời gian valid chưa hết. Tham số này được sử dụng cho việc thay đổi tiền tố.

Default router information – Cung cấp thông tin về sự tồn tại và lifetime của địa chỉ IPv6 của router mặc định. Trong IPv6, một địa chỉ router mặc định được sử dụng bởi node là địa chỉ link-local của router (FF80::/10). Vì vậy, ngay cả khi tiền tố bị thay đổi, thì vẫn có thể đạt đến router đó.

Flags/options – Các cờ và các tùy chọn cụ thể cho các node. Chúng ta có thể sử dụng một cờ để chỉ cho các node sử dụng cơ chế cấu hình stateful hơn là sử dụng cơ chế cấu hình tự động stateless. Các cờ và các tùy chọn có sẵn trên phần mềm IOS của Cisco.

Hoạt động quảng bá tiền tố

Như trình bày trong hình 3.6, router A gửi định kỳ các bản tin quảng bá router (ICMPv6 kiểu 134) sử dụng địa chỉ link-local FF80::250:3EFF:FEE4:4C00 làm địa chỉ IPv6 nguồn. Tiền tố được quảng bá bởi các bản tin quảng bá router là FEC0:0:0:1::/64 với giá trị valid lifetime và preferred lifetime là vô cùng. Sau đó node A và B lắng nghe địa chỉ multicast FF02::1 trên link-local, nhận các bản tin quảng bá

Một phần của tài liệu Nghiên cứu triển khai mô hình mạng ứng dụng IP version 6 (Trang 65)