Mục lục
Danh mục các chữ viết tắt
Danh mục các từ khoá
Danh mục các bảng và hình vẽ
Lời nói đầu
Chương 1 : Các vấn đề của địa chỉ IPv4
1. Địa chỉ IPv4
2. Các vấn đề của IPv4
3. Các ưu điểm mà IPv6 cung cấp
Chương 2 : Tổng quan về địa chỉ IPv6
1. Cấu trúc và các loại địa chỉ IPv6
1.1. Cấu trúc
1.2. Cấp phát địa chỉ IPv6
1.3. Các loại địa chỉ IPv6
1.1.1. Địa chỉ unicast
1.1.2. Địa chỉ Anycast21
1.1.3. Địa chỉ Multicast
1.1.4. Các dạng địa chỉ IPv6 khác
2. Cấu trúc trường header của gói tin IPv6
2.1. Cấu trúc Header của gói tin IPv6
2.2. Extension header
3. ICMPv6
3.1. Cấu trúc
3.2. Một số loại bản tin ICMP
3.3. Quá trình phân mảnh và xác định MTU
4. Neighbour discoverry
4.1. Các bản tin ICMP sử dụng trong neighbour discovery
4.2. Bản tin Router Solicitation
4.3. Một số chức năng mà ND cung cấp
5. Autoconfiguration
5.1. Stateful và Stateless autoconfiguration
5.2. Router và network renumbering
6. Định tuyến trong IPv6
6.1. Distance vector
6.2. Link state
6.3. RIP và RIPng
6.4. OSPF và OSPFn
7. Security trong IPv6
7.1. Các mode hoạt động
7.2. Hoạt động
43 trang |
Chia sẻ: lethao | Lượt xem: 5348 | Lượt tải: 1
Bạn đang xem trước 20 trang tài liệu Đề tài Các vấn đề của địa chỉ IPv4 và tổng quan về địa chỉ IPv6, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
ching. CPU sẽ phải kiểm tra mọi gói tin để xác định nó có phải translate gói tin đó hay ko? Và sau đó thay đổi IP header thậm chí cả TCP header.
1 nhược điểm lớn nữa là khi ta sử dụng NAT, ta ko có khả năng kiểm tra nguồn gốc của địa chỉ IP trong các kết nối end-to-end. Rất khó để tìm ra dấu vết của gói tin đã trải qua nhiều lần thay đổi địa chỉ qua nhiều lần NAT.
NAT khiến cho 1 số ứng dụng sử dụng địa chỉ IP ko làm việc do nó giấu địa chỉ IP. Các ứng dụng sử dụng địa chỉ vật lý mà ko sử dụng tên miền sẽ ko thế tới được địa chỉ đích mà địa chỉ này đã bị translate qua NAT.
NAT hỗ trợ TCP/UDP tuy nhiên nó ko cho phép các địa chỉ đích hay nguồn của các ứng dụng truyền dữ liệu như HTTP, TFTP, Telnet. Các ứng dụng mà NAT hỗ trợ : ICMP, FTP, NetBIOS over TCP/IP, DNS, Real Audio …
Định tuyến
Các Router quyết định đường đi của gói tin. Các giao thức định tuyến sẽ sử dụng các phương pháp động để duy trì các thông tin này. Tuy nhiên các gói tin có địa chỉ đích ở trên đường internet backbone phải được định tuyến qua các Router nondefault sử dụng giao thức định tuyến BGP. Các Router này phải duy trì 1 list tất cả các tuyến trên Internet, Routing Information Base(RIB). Mỗi thành phần trong RIB là 1 tuyến. Theo sự phát triển của Internet, kích thước của RIB ngày càng lớn và trở nên qua phức tạp để tính toán.
Thiết lập cấu hình cho các thiết bị phức tạp
Tất cả các thiết bị IPv4 đều phải được cấu hình bằng tay hoăặccấu hình theo kiểu statefull (DHCP). Với sự phát triển của Internet hiện nay, ngày càng có nhiều thiết bị sử dụng địa chỉ IP, chúng ta cần phải có 1 cơ chế cấu hình tự động và đơn giản hơn.
Vấn đề end-to-end
2 điểm đầu cuối có thể hoạt động với nhau mà ko cần bít về đường truyền trung gian. Điều này cho phép tầng ứng dụng hoạt động 1 cách đơn giản hơn. Tuy nhiên do việc sử dụng các ko gian địa chỉ private và NAT khiến cho IPsec ko thể áp dụng. IPsec là một thức đảm bảo security ở tầng network. Ngoài ra, ko phải ứng dụng nào cũng chạy trên NAT. NAT hỗ trợ TCP/UDP tuy nhiên nó ko cho phép các địa chỉ đích hay nguồn của các ứng dụng truyền dữ liệu như HTTP, TFTP, Telnet. Các ứng dụng mà NAT hỗ trợ : ICMP, FTP, NetBIOS over TCP/IP, DNS, Real Audio
Các ưu điểm mà IPv6 cung cấp
Như đã nói ở trên, IPv4 có khá nhiều nhược điểm, trong đó quan trọng nhất là việc không gian địa chỉ IPv4 đang cạn kiệt. Điều này dẫn đến tất yếu phải ra đời một thế hệ địa chỉ mới giải quyết được những nhược điểm của IPv4, đó là IPv6. Thế hệ địa chỉ IPv6 ko những giải quyết được những vấn đề của IPv4 mà còn cung cấp thêm 1 số ưu điểm :
Không gian địa chỉ lớn
Khả năng mở rộng về định tuyến
Hỗ trợ end to end dễ dàng hơn
Ko có phải phân mảnh, ko cần trường header checksum.
Security : do IPv6 hỗ trợ IPsec, nó làm cho các node IPv6 trở nên an toàn hơn(thực ra IPsec có thể hoạt đọng được với cả IPv4 và v6.
Autoconfiguration : IPv4 cung cấp 2 cơ chế để config 1 node. Cấu hình tĩnh thì ko cho phép thay đổi theo thời gian, trong khi cấu hình động cho phép một node request thông tin cấu hình và thông tin đó có thể thay đổi theo từng phiên. Cấu hình động trong IPv4 liên quan đến stateful autoconfiguration bởi vì thỉnh thoảng các thông tin cấu hình cần được lưu lại(địa chỉ MAC). IPv6 thêm vào 1 đặc điểm nũa đó là stateless autoconfiguration cho phép kết nối vào mạng mà ko cần contact với server.
Mobility : cho phép hỗ trợ các node mobile IP
Hoạt động : trường IPv4 header làm thay đổi kích thước của gói tin IP và thường bị bỏ đi ko tính đến. Do các Router thường chuyển hướng hợac từ chối các gói khi nó busy. Đây chính là lý do ta ko triển khai IPsec trên nền IPv4. Các Router IPv6 hoạt động khác giựa trên cách xử lý khác đối với địa chỉ IP và các tuyến
Cost : giảm gia thành về công tác quản lý, tăng đô an ninh, hoạt động tốt hơn, cần ít tiền hơn để đăng ký địa chỉ IP. Các chi phí này sẽ cân bằng chi phí cho việc chuyển từ IPv4 sang IPv6.
Chương 2 : Tổng quan về địa chỉ IPv6
Cấu trúc và các loại địa chỉ IPv6
Cấu trúc
Địa chỉ IPv6 có chiều dài 128 bits, nên vấn đề nhớ địa chỉ là hết sức khó khăn.
Hình 2.1 : So sánh ko gian địa chỉ IPv4 và IPv6
Người ta quy ước viết 128 bits thành 8 nhóm, mỗi nhóm 2 bytes mỗi byte biểu diễn bằng 2 số hệ 16, mỗi nhóm ngăn cách nhau bởi dấu “:”
Hình 2.2 : 1 số VD viết địa chỉ IPv6
Quy tắc rút gọn :
Trong 1 địa chỉ, 1 nhóm liên tiếp các số 0 có thể thay thế bằng “::”. Quy tắc rút gọn này chỉ được phép sử dụng 1 lần với 1 địa chỉ
Ngoài ra, còn có thể viết các địa chỉ theo các tiền tố (prefix), là các bit cao của địa chỉ IPv6, điều này có lợi cho việc định tuyến
VD : FEDC:BA98:7600::/40
Cấp phát địa chỉ IPv6
Cấp phát
Các bit đầu
Tỷ lệ với toàn bộ không gian
Unassigned
0000 0000
1/256
Unassigned
0000 0001
1/256
Các địa chỉ NSAP
0000 001
1/128
Unassigned
0000 01
1/64
Unassigned
0000 1
1/32
Unassigned
0001
1/16
Các địa chỉ Global Unicast
001
1/8
Unassigned
010
1/8
Unassigned
011
1/8
Unassigned
100
1/8
Unassigned
101
1/8
Unassigned
110
1/8
Unassigned
1110
1/16
Unassigned
1111 0
1/32
Unassigned
1111 10
1/64
Unassigned
1111 110
1/128
Unassigned
1111 1110 0
1/512
Địa chỉ Link-Local Unicast
1111 1110 10
1/1024
Địa chỉ Site-Local Unicast
1111 1110 11
1/1024
Địa chỉ Multicast
1111 1111
1/256
Bảng 2.1 : Cấp phát địa chỉ IPv6
Ta có thể thấy, mới chỉ có 15% không gian địa chỉ được sử dụng trong giai đoạn này, còn lại 85% được để dự trữ cho tương lai.
Có 2 cơ chế cấp phát là :
Cấp phát theo nhà cung cấp
Địa chỉ IP sẽ có các trường ID của các nhà cung cấp
TLA ID : định danh nhà cung cấp cao nhất trong hệ thống các nhà cung cấp dịch vụ
NLA ID : định danh nhà cung cấp tiếp theo
SLA ID : định danh các site của khách hàng cuối
Các TLA là các nhà cung cấp cao nhất. Các NLA là các ISP cần phải xin cấp giá trị NLA ID của mình thông qua các TLA. Có 1 số phưoơg pháp xin cấp giá trị NLA ID như sau :
Xin cấp qua 6bone community : đây là mạng thử nghiệm IPv6 trên toàn cầu. Khi thoả mãn 1 số đk ISP sẽ được cấp phát IP
Xin cấp qua RIP
Giả lập địa chỉ IPv4 vào IPv6 : phương pháp này thuận lợi cho việc thử nghiệm IPv6 trên nền IPv4. 32 bits cuối sẽ là địa chỉ IPv4, còn TLA ID có dạng 2002::/16
Với 1 end-user-site sau khi xin địa chỉ sẽ được cấp phát địa chỉ và các TLA ID, NLA ID rồi gán giá trị SLA ID để định danh các site trong tổ chức.
Tuy nhiên, với phương pháp này sẽ ko tối ưu với các tổ chức lớn trải trên một khu vực địa lý rộng với nhiều chi nhánh mà một số trong các chi nhánh lại sử dụng dịch vụ của các nhà cung cấp khác nhau.
Cấp phát giựa trên vị trí địa lý :
Các địa chỉ được cấp phát giựa trên khu vực địa lý và các nhà cung cấp chỉ cần duy trì các tuyến bên ngoài để liên kết với các tuyến của họ. Tuy nhiên, các nhà cung cấp ko thích phương pháp này bởi nó làm phức tạp hoá thêm quá trình quản lý địa chỉ. Do sự phát triển của công nghệ các khó khăn trong việc cấp phát địa chỉ theo nhà cung cấp đã được giải quyết. Việc cấp phát địa chỉ theo vị trí địa lý chỉ còn đựoc phát triển nhằm cho những mục đích automatic và dynamic configuration bao gồm cả việc tự động đánh lại địa chỉ toàn mạng khi ISP thay đổi.
Các loại địa chỉ IPv6
Địa chỉ unicast :
Được sử dụng để phân biệt các host đơn lẻ trên một mạng. Bao gồm 3 loại địa chỉ :
Global : được dùng để định dạng các giao diện, cho phép thực hiện kết nối các host trong mạng IPv6 toàn cầu. Nó giống như địa chỉ IPv4 định danh 1 host trong mạng Internet hiện nay.
Link local : nhận dạng đường kết nối nội bộ, ko được đưa vào định tuyến.
Site local : nhận dạng trong phạm vi nội bộ, có thể có nhiều nhóm.
Global unicast
Hình 2.3 : Cấu trúc địa chỉ Global unicast
FP=001 : định dạng prefix với địa chỉ global unicast
TLA ID : định danh nhà cung cấp cao nhất trong hệ thống các nhà cung cấp dịch vụ
RES : chưa sử dụng
NLA ID : định danh nhà cung cấp tiếp theo
SLA ID : định danh các site của khách hàng cuối
Interface ID : được định danh theo chuẩn EUI-64. Tuỳ thuộc vào chuẩn các giao tiếp khác nhau mà có địa chỉ interface khác nhau
Như vậy địa chỉ global unicast được thiết kế phân cấp :
48 bits public topology
16 bits site topology
64 bits giao diện
Hình 2.4 : cấu trúc phân cấp của điịachỉ unicast
Local unicast
Địa chỉ local unicast lại được chia làm 2 loại :
Link local : được sử dụng để đặt địa chỉ cho các kết nối đơn
Site local : được dùng để đặt địa chỉ cho các interface trong 1 site
Site local
Cấu trúc địa chỉ site local unicast
Hình 2.5 : Cấu trúc địa chỉ site local
Quy tắc định tuyến
Router ko thể chuyên các gói tin có địa chỉ nguồn hay đích là địa chỉ site local unicast ra ngoài mạng đó
Các địa chỉ site local ko thể chọn đường trên toàn bộ internet. Chúng chỉ có thể dùng chuyển đổi giữa 2 chặng trên cùng 1 site
Link local
Hình 2.6 : Gán địa chỉ link local
Cấu trúc địa chỉ link local
Hình 2.7 : Cấu trúc địa chỉ link local
Địa chỉ link local ko tham gia định tuyến
Hình 2.8 : gán đia chỉ trong 1 link
Địa chỉ Anycast
Được gán cho 1 nhóm các giao diện và các gói tin được gửi đến địa chỉ anycast sẽ được chuyển đến giao diện gần nhất có địa chỉ này.
Về mặt cấu trúc, địa chỉ anycast ko phân biêt với dịa chỉ unicast, khi địa chỉ unicast được gán cho nhiều giao diện nó sẽ trở thành anycast
Mục đích của địa chỉ anycast là để hỗ trợ những tổ chức có cấu trúc mạng phân cấp. Khi đó địa chỉ anycast được gán cho các Router mà các Router này được chia thành các vùng. Khi 1 packet đến Router cao nhất nó sẽ được chuyển đến đồng thới các Router trong đoạn
Hạn chế của địa chỉ anycast
Ko được sử dụng là địa chỉ nguồn của 1 gói tin IPv6
Ko được gán cho 1 host IPv6, chỉ gán cho Router
Địa chỉ anycast đặc biệt dùng để gán cho 1 subnet
Hình 2.9 : cấu trúc địa chỉ anycast dùng để gán cho 1 subnet
địa chỉ này được sử dụng cho những giao diện cần giao tiếp đồng thời với 1 tập các Router trên mạng
Địa chỉ Multicast
Được dùng để gán cho 1 tập các giao diện. Một gói tin có địa chỉ đích là multicast sẽ được gửi đến tất cả các giao diện có địa chỉ multicast này
Cấu trúc địa chỉ multicast
Hình 2.10 : cấu trúc địa chỉ multicast
Ý nghĩa các trường :
8 bit đầu tiên của địa chỉ 11111111 : định nghĩa cho địa chỉ multicast.
bit tiếp theo của địa chỉ multicast là các bit cờ (flag) 3 bít đầu ko dùng đến. Bit cờ thứ tư được biết đến như một bit nốt đệm. Nhiệm vụ của nó là để biểu thị xem địa chỉ đó là một địa chỉ tạm thời hay thường xuyên. Nếu địa chỉ đó là địa chỉ thường xuyên thì bit này sẽ được gán bằng 0 còn ngược lại nó sẽ được gán bằng 1.
4 bits tiếp theo là ID scope : dung để giới hạn phạm vi nhóm địa chỉ multicast
Bảng 2.2 : Trường ID scope
112 bit còn lại được sử dụng cho nhóm ID. Kích thước của nhóm ID cho phép các địa chỉ multicast dùng hết 1/256 phần không gian địa chỉ của IPv6.
Các dạng địa chỉ IPv6 khác
Ngoài 3 dạng địa chỉ trên, IPv6 còn quy định 1 số loại địa chỉ đặc biệt khác :
Địa chỉ ko xác định ::/128 : địa chỉ này ko được gán cho interface nào. Host khi mới khởi tạo có thể sử dụng địa chỉ này như địa chỉ nguồn của nó trước khi nó có địa chỉ.
Địa chỉ loopback 0:0:0:0:0:0:0:1 : một node có thể sử dụng địa chỉ này để gửi gói tin IP cho chính nó. Nó ko được sử dụng như địa chỉ nguồn
Địa chỉ IPv4 trong IPv6
Hình 2.11 : Cấu trúc địa chỉ IPv4 trong IPv6
32 bit thấp sẽ là địa chỉ IPv4, 96 bits cao gán bằng 0
Cấu trúc gói tin IPv6
Cấu trúc gói tin IPv6 có dạng như sau :
Hình 2.12 : Cấu trúc gói tin IPv6
Header của gói tin IPv6 bao gồm 8 trường (40bytes) so với IPv4 có 12 trường và dài 20 bytes (nếu ko có trường option) hoặc 60 bytes (nếu có trường option). Do cấu trúc của trường header của IPv6 đơn giản hơn nên việc xử lý thông tin sẽ nhanh hơn.
Header đơn giản hơn là do sự thay đổi của 1 số phương thức hoạt động
Header có cùng kích thước nên bỏ trường header length
Quá trình fragmentation chỉ do source node thực hiện nên các Router ko tham gia vào quá trình fragmentation → trường fragmentation ko cần thiết
Tuy nhiên quá trình này ko ảnh hưởng đến sự tin cậy của quá trình truyền gói tin
Extension header : IPv6 extenssion header là một cơ chế mà bằng cách đó nhưng thông tin của lớp internet được mã hoá trong những header riêng biệt có thể được để trong header của IPv6 và các header của các lớp trên của cùng 1 gói tin
Cấu trúc Header của gói tin IPv6
Hình 2.13 : So sánh header của gói tin IPv4 và IPv6
Các trường trong header của gói tin IPv4
Các trường trong header của gói tin IPv6
Version : đều là 4 bits ở cả IPv6 và v4. Trường này phải có ở cả 2 version để IPv6 có thể cùng tồn tại với IPv4
Header length : ko có ở IPv6 do header của các gói tin IPv6 có cùng kích thước, IPv4 cần trường này do kích thước header của nó có thể thay đổi do có thêm trường option
Type of service/Differentiated Services : trường DS được sử dụng ở cả IPv4 và v6 bao gồm 6 bits để chỉ ra cách mà gói tin được xử lý ở Router để đảm bảo QoS
Datagram length : trở thành trường payload length ở IPv6. Ở IPv4 trường DL chỉ ra chiều dài của toàn bộ gói dữ liệu kể cả header, R có thể tính chiều dài payload bằng cách trừ chiều dài Datagram cho chiều dài Header. Ở IPv6 thì do chiều dài header đã xác định nên chỉ cần trường PL
Datagram Identification : dùng để xác địch datagram này là do gói nào fragment ra. Do IPv6 ko cho phép các node trung gian fragment gói tin nên trường này ko cần
Flags : được sử dụng để cho phép fragment
Fragment Offset : được sử dụng để cho phép fragment
TTL :
Protocol : chỉ đến giao thức ở lớp cao hơn sử dụng dữ liệu được đóng gói vào gói tin IPv4. Là trường Next header trong IPv6 chỉ ra
Header checksum :
Source add, Destiantion add :
IP option : ko có ở IPv6
Version :
Differentiated Services : 6 bit, 2 bit dùng cho tương lai, còn 4 bit chỉ priority
ECN(Explicit Congestion Notification) : 2 bits
Flow Label : 20 bits dùng để xác định gói tin thuộc cùng 1 luồng. Do một node có thể là nguồn của nhiều nguồn, giá trị FL và địâ chỉ nguồn xác địch duy nhất 1 luồng
Payload length : 16 bits chứa 1 số nguyên chỉ ra chiều dài trường payload bằng bytes bao gồm cả trương IPv6 extension header
Next header : chỉ ra giao thức nào đwocj dùng để xử lý gói tin.
Hop limit : 8 bits. Mỗi lần 1 node forward gói tin nó sẽ giảm giá trị của trường này đi 1. Nếu trường này = 0, gói tin sẽ bị huỷ.
Sadd, Dadd
Bảng 2.3 : So sánh header của IPv4 và Ipv6
Extension header
Mỗi loại của exension header được định nghĩa bởi 8 bits ở trường Next header của header trước
Hình 2.14 : cấu trúc gói tin IPv6 và trường extension header
Các giá trị của trường next header
Next header type
Value
Hop-by-hop Options
IPv6
Routing
Fragment
Authentication
Destination Options
Encapsulating Security Payload
No next header
00
41
43
44
51
60
50
59
để tạo đường hầm IPv6
Ko có header tiếp theo header này
Bảng 2.4 : Các giá trị của trường Next header
Các loại extession header :
Hop-by-hop : một số gói tin IPv6 được yêu cầu chỉ do node nguòn và node đích xử lý, còn lại hầu hết thì đều cần ít nhất 1 Router trung gian xử lý. Header hop-by-hop được sử dụng khi 1 trong số các option cần phải được xử lý bởi mỗi node trên đường từ nguồn đến đích
Routing : cho phép node gửi 1 gói tin đến 1 hoặc nhiều Router để các Router đó xử lý và định tuyến đến đích
Fragment : mặc dù IPv6 ko cho phép các Router trung gian fragment gói tin, công việc này là của các node nguồn và đích. Tuy nhiên khi node nguồn thấy rằng nó cần phải gửi gói qua đwongf truyền có MTU nhỏ hơn kích thước gói thì các node trung gian được phép fragment gói tin và gói tin có thêm trường fragment
Authentication : khi sử dụng phương pháp xác thực có độ an toàn cao header này được sử dụng
Destination : giới hạn chỉ những node đích nào mới xử lý những option mà gói tin mang theo.
Encapsulating Security Payload : khi ta sử dung jphương pháp mã hoá có độ an toàn cao
Các extension header được sắp xếp theo 1 thứ tự nhất định sau header chính để đảm bảo tất cả các thông tin optional được xử lý bởi node đích cũng như các node trung gian trong khi cùng thời gian đó cho phép các node xử lý gói tin theo thông tin optional.
VD : hop-by-hop được đặt ngay sau header chính vì nó phải được xử lý bới tất cả các node trung gian
Destination được đặt dưới cùng vì các node trung gian ko nhất thiết phải xử lý option này
Thứ tự các extension header được khuyến cáo đưa ra trong RFC 2460
IPv6 header
Hop-by-hop
Destination option
Routing header
Fragment header
Authentication header
Encapsulation Security Payload header
Destiantion option header
Upper layer header
Hop-by-hop option và Destination Option Header có thể chứa 1 hoặc nhiều option. Ko giống các IPv6 extenssion header khác chi thực hiện 1 chức năng, 2 header kia là các header tái tạo và chỉ được phân biệt bằng cách nó hoạt động
Hop-by-hop : chứa các option được xử lý tại mỗi node
Destination : chứa các option chỉ được xử lý tại node đích
ICMPv6
Là giao thức sử dụng bản tin ICMPv6 để thông báo lỗi hoặc thu hút các đáp ứng từ 1 node để lấy thông tin cần thiết. Các ứng dụng như : ping, trace route, Path MTU Discovery, Neighbour discovery giựa trên ICMPv6. Bản tin ICMP được đóng gói trong gói tin IP và được xác địch bởi trường next header = 58
Cấu trúc
Hình 2.15 : Cấu trúc bản tin ICMP
Ý nghĩa các trường
Type : 8 bit , chỉ ra loại bản tin ICMPv6, (0-127) : là bản tin error mess, (128-255) là bản tin thông báo
Code : 8 bits phụ thuộc vào trường type
Checksum : 16 bits
Mess body : chứa dữ liệu
Một số loại bản tin ICMP
Bản tin ICMP đwocj tạo ra khi có 1 số lỗi : router ko thể gửi được gói tin, node ko thể khôi phục đwcj gói tin bị lỗi, ….Chú ý rằng khi 1 link đang tắc nghẽn node đó ko bao giờ gửi bản tin ICMP thông báo tắc nghẽn bởi điều này chỉ làm mọi thứ thêm tệ hơn. Một số phương thức khác ở tầng cao hơn sẽ được dùng để giải quyết vấn đề này.
Destination unreachable : được gửi cho node nguồn khi R nhận được gói tin mà nó ko thể gửi đi đâu được.
Cấu trúc bản tin
Hình 2.16 : cấu trúc bản tin ICMP des unrechable
Các giá trị có thể có của trường code
0 : ko có tuyến đích : R ko có tuyến đích tương ứng với địa chỉ đích của gói tin. Bản tin này chỉ được gửi với những R ko có default route
1 : communication with administratively prohibited : bản tin này đwocj gửi bởi firewall khi 1 loại traffic bị cấm đwocj gửi tới 1 host bên trong firewall
2 : chưa được gán
3 : addr unreachable :
4 : port unreachable : được tạo bởi node đích khi các tầng trên ko bít sử lý gói tin này thế nào
Packet too big : được gửi cho node nguồn khi Router nhận được gói tin lớn hơn giá trị MTU của link
Cấu trúc bản tin
Hình 2.17 : Cấu trúc bản tin ICMP packet too big
Time exceeded :
Có 2 loại
Khi gói tin chạy trong mạng trong khoảng thời gian quá lâu mà ko đến đích
Gói tin vượt quá có thời gian phân mảnh và ghép mảnh quá lâu
Cấu trúc bản tin
Hình 2.18 : Cấu trúc bản tin ICMP time exceeded
Các gói tin ở quá lâu trong mạng sẽ bị loại bỏ khi giá trị vượt quá giá trị hop limit. R sẽ xoá các gói tin có giá trị trường hop limit = 0 hoặc 1 và gửi bản tin ICMP về cho node nguồn
1 : hop limit vwotj quá giới hạn
0 : quá time out mà ko gửi được
Bản tin này được dùng cho chức năng trace route
Đầu tiên 1 bản tin được gửi đến đích vơi hop limit =1, R đầu tiên nhận được sẽ gửi lại bản tin time exceeded và node nguồn sẽ bít R đầu tiên trên đường truyền.
Nguồn lại gửi bản tin thứ 2 với hop limit = 2 và R thứu 2 sẽ gửi lại bản tin time exceeded
Cứ thế cho đến khi gói tin đến được đích và node nguồn sẽ có thông tin về tất cả các R trung gian
Parameter problem : được gửi cho node nguồn khi có vấn đề với 1 vài phần của gới tin IPv6 hoặc trường extension header khiến cho Router ko thể xử lý và phải xoá gói tin.
Cấu trúc bản tin
Hình 2.19 : Cấu trúc bản tin ICMP parameter problem
ICMPv6 Echo Funtion : echo request và echo reply
Echo request : được gửi tới tất cả các địa chỉ valid IPv6 có thể thêm giá trị Echo req ident, seq num và một số dữ liệu. Giá trị ident và seq để phân biệt các giá trị reply khác nhau. Data là giá trị optional
Khi 1 node nhận bản tin req nó phải gửi lại bản tin Echo reply với các giá trị ident, seq, và data gióng như ở bản tin Echo request
Cấu trúc
Hình 2.20: Echo Request Hình 2.21 : Echo reply
2 bản tin này là thành phần của lệnh Ping
Quá trình phân mảnh và xác định MTU
Quá trình phân mảnh
Quá trình phân mảnh trong IPv6 chỉ được cho phép giữa node nguồn và đích, điều này làm đơn giản trường header và giảm các thông tin overhead cho định tuyến. Các node IPv6 có thể được phép phân mảnh nếu cần thiết sử dụng trường fragmentation tuy nhiên các Router trung gian hoặc các node khác ko được phép phân mảnh gói tin lớn hơn MTU
IPv4 cho phép phân mảnh nếu gói tin chưa phân mảnh mất quá nhiều thời gian để đến đích. Các Router trung gian thực hiện việc phân mảnh có thế thay đổi header của gói tin để đến node đích có thể tái hợp các mảnh lại thành gói tin hoàn chỉnh.
Sử dụng phân mảnh cho phép các node hoạt động trong các môi trường mạng khác nhau hoạt động với nhau tốt hơn. Node nguồn ko cần bít về node đích cũng như thông tin về đường truyền đến đích. Điều này làm giảm thông tin mà node nguồn cần phải lưu trữ về mạng và cho phép khả năng mở rộng cao. Tuy nhiên, phân mảnh làm thêm các header, overhead, và làm Router tốn CPU để xử lý.
Có 2 cách để hạn chế phân mảnh đó là :
Cách 1(đã được sử dụng ở IPv4) : path MTU discovery : Router sẽ gửi 1 gói tin có kích thước bằng MTU của link đầu tiên đến đích nếu gói tin đến link nào đó mà ở đó nó bị phân mảnh, Router phân mảnh sẽ gửi lại bản tin ICMP chỉ ra MTU của link là bao nhiêu. Quá trình cứ tiếp diễn cho đến khi R xác định được link path MTU
Cách 2 : là hạn chế đến mức tối thiểu kích thước gói tin để tất cả các link đều có thể chấp nhận được
IPv6 path MTU discovery
IPv6 sử dụng cả 2 cách hạn chế phân mảnh trên
MTU cho IPv6 được định nghĩa ở RFC 2460 là 1280 bytes
Tuy nhiên IPv6 khuyến cáo nên sử dụng cơ chế MTU discovery sử dụng bit don’t fragment trong trường flag fragment để các R trung gian gửi lại bản tin ICMP error báo gói tin quá lớn
Hình 2.22 : Path MTU discovery
Neighbour discovery
Các node IPv6 trong cùng 1 link sử dụng ND để khám phá sự tồn tại của nhau, địa chỉ tầng 3 của nhau, để tìm Router và duy trì thông tin về đường đi để xây dựng neighbour. Như vậy các giao thức liên quan như ARP ko còn cần thiết nữa
Các bản tin ICMP sử dụng trong neighbour discovery
ND sử dụng 1 số loại bản tin ICMP sau để thực hiện các chức năng của mình :
Router solicitation : khi 1 inter bắt đầu hoạt động, host sẽ gửi Router solicitation để yêu cầu Router gửi lại Router Adv
Router Adv : R sẽ thông báo sự tồn tại của nó và các thông số theo chu kỳ hoặc khi nhận được bản tin R Solic
Neighbour Solicitation : được gửi bởi node để xác định địa chỉ link layer của neighbour hoặc để kt xem neighbour có reachable hay ko?
Neighbour adv : trả lời lại bản tin neighbour solic
Redirect : được sử dụng bởi Router để chỉ cho host first hop tốt hơn để đến đích.
Bản tin Router Solicitation :
Cho phép 1 node yêu cầu R gửi R adv ngay lập tức. Bằng cách này 1 node có thể ghi nhớ địa chỉ IP và địa chỉ tầng 2 của Router. Router solicitation được gửi multicast tới tất cả các Router trong bất cứ phạm vi nào của giới hạn địa chỉ đích IPv6. Tất cả các Router trong phạm vi này phải trả lời lại với bản tin Router adv. Bình thường Router sẽ gửi bản tin quảng bá này trong 1 chu kỳ nhất định và nó gửi tới tất cả các node có địa chỉ multicast. Tuy nhiên khi đáp ứng yêu cầu của host nó chỉ gửi lại cho host đã gửi bản tin Router Solicitation.
Cấu trúc bản tin Router Solicitation :
Hình 2.23 : Cấu trúc bản tin Router Solicitation
Một số chức năng mà ND cung cấp
IPv4 sử dụng ARP để ánh xạ địa chỉ IP với địa chỉ ở tầng 2, nhưng có 1 số hạn chế. ND trong IPv6 cũng có chức năng này tuy nhiên nó còn cung cấp 1 số chức năng phức tạp khác
Router discovery : cung cấp cơ chế để xác địch local router
Prefix discovery :
Parameter discovery : cơ chế để xác định các thông số của local link network, MTU, hop limit, …
Addr autoconfiguration :
Addr resolution : xác định địa chỉ lớp 2 của 1 host neighbour mà chỉ bít địa chỉ IP của nó.
Nexthop detemination : khi muốn gửi 1 gói tin đi, host phải xác địch địa chi để gửi. Quyết định này giựa trên địa chỉ đích của gói tin và host cần phải quyết địch gửi gói tin đến thẳng đích nếu trong cùng 1 local link hay gửi đến router nếu ko trong cùng 1 local link.
Neighbour unreachable detection : hót cần cơ chế cho phép xác định neighbour của nó có reachable ko? Nếu là router thì default route động được sử dụng
Duplicate addr detection : xác định địa chỉ này đã được sử dụng chưa?Redirect :
Link-layer addr change : 1 node khi phát hiện địa chỉ lớp 2 của nó thay đổi có thể gửi multicast để update thông tin thay đổi này.
Inbound load balancing : 1 node có nhiều địa chỉ lớp 2 trên cùng 1 inter có thể chia tải trên các inter đ
Các file đính kèm theo tài liệu này:
- Thực tập - Tổng quan về IPv6.doc