Bài giảng Lập trình mạng: Chương 14 - ThS. Trần Bá Nhiệm

34 11 0
Bài giảng Lập trình mạng: Chương 14 - ThS. Trần Bá Nhiệm

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Chương 14 trang bị cho người học các hiểu biểu về lập trình cho thế hệ Internet mới. Nội dung chương được trình bày làm 2 phần: Tổng quan về IPv6, truyền thông với IPv6 từ môi trường .NET. Mời các bạn cùng tham khảo.

6/29/2011 CHƯƠNG 14 LẬP TRÌNH CHO THẾ HỆ INTERNET MỚI ThS Trần Bá Nhiệm Website: sites.google.com/site/tranbanhiem Email: tranbanhiem@gmail.com Nội dung • Giới thiệu • IPv6: lịch sử phát triển, thay đổi, quy ước • Cài đặt IPv6 • Ứng dụng IPv6 • Routing IPv6 • Lập trình IPv6 NET 29/06/2011 Chương 14: Lập trình Internet hệ 6/29/2011 Giới thiệu • IPv6 đại tu toàn hệ thống Internet kể từ đời, sớm thay hồn tồn IPv4 • Rất nhiều chương trình bị lỗi thời, khơng tương thích với IPv6 • Chắc chắn có thách thức hội lớn cho người lập trình nắm bắt kịp xu cơng nghệ 29/06/2011 Chương 14: Lập trình Internet hệ Giới thiệu • IPv6 làm cho Internet phát triển rộng lớn hơn, nhanh • Nội dung chương trình bày làm phần: – Tổng quan IPv6 – Truyền thông với IPv6 từ môi trường NET 29/06/2011 Chương 14: Lập trình Internet hệ 6/29/2011 IPv6 gì? • IPv4 dài 32 bit, có khoảng tỉ địa (chính xác 232) thiếu, lãng phí,… • IPv6 dài 128 bit, cung cấp số lượng lớn địa để cấp phát • IPv4 khơng hỗ trợ lưu trữ thơng tin routing, nên router khơng dự đốn đường nhanh qua nhiều hop, IPv4 lưu hop tiêu hao khả xử lý trễ gói 29/06/2011 Chương 14: Lập trình Internet hệ IPv6 gì? • IPv6 lưu trữ thơng tin routing phần header, chuyển tiếp gói tin tốn thời gian tối thiểu • Các hệ thống trọng đến bảo mật chứng thực dạng HTTP xây dựng phía IP lỗ hổng cho kiểu công IP spoofing, nhiên với IPv6 chứa header giúp bảo vệ tránh khỏi dạng 29/06/2011 Chương 14: Lập trình Internet hệ 6/29/2011 IPv6 gì? • IPv6 khác biệt quan trọng với IPv4 cung cấp chế quality-of-service (QoS) giúp cho liệu có độ ưu tiên cao chuyển qua router trước so với liệu có độ ưu tiên thấp • IPv6 tương thích ngược với IPv4 • Có thể phải đầu tư phần cứng router, switch, hub tương thích IPv6 29/06/2011 Chương 14: Lập trình Internet hệ IPv6 gì? • Nhiều ứng dụng không làm việc IPv6 phát sinh thị trường phần mềm • IPv6 gồm tổ hợp phần danh định: Format Prefix (FP) 3-bit, luôn 001 cho địa unicast Top-level Aggregator (TLA) 13-bit, số gán cho nhà cung cấp dịch vụ backbone 8-bit dự trữ, gán giá trị 29/06/2011 Chương 14: Lập trình Internet hệ 6/29/2011 IPv6 gì? Next-level Aggregator (NLA) 24-bit cho biết ISP Site-level Aggregator (SLA) 16-bit cho biết subnet Interface ID, 64-bit, nhận dạng giao tiếp mạng host • Tổng quát, địa IPv6 có dạng: [FP][TLA]:[Reserved][NLA]:[SLA]:[Interface ID] • Mơ tả chi tiết trình bày RFC 2374 29/06/2011 Chương 14: Lập trình Internet hệ Quy ước • IPv6 biểu diễn dạng thập lục phân thập phân IPv4 • Cách viết tắt cho số dùng dấu “:” Ví dụ: địa 2001:0db8:1000:0000:0000:0000:0000:00 27 viết tắt 2001:db8:1000::27 29/06/2011 Chương 14: Lập trình Internet hệ 10 6/29/2011 Quy ước • Khi IPv6 đóng gói địa IPv4, IPv4 trình bày theo dạng chuẩn riêng Ví dụ: ::192.44.75.70 ::ffff:192.44.75.70 • Để tách phần tiền tố IPv6 với phần nhận dạng IPv6, đưa dấu “/” vào cuối địa Ví dụ: 2001:db8:2000:240:290:27ff:fe24:c19f/64 tiền tố 2001:db8:2000:240 29/06/2011 Chương 14: Lập trình Internet hệ 11 Cài đặt IPv6 • Nếu dùng Windows XP, sử dụng dịng lệnh: IPv6 install • Nếu dùng Windows 2000, tải add-on tại: www.microsoft.com/windowsserver2003/te chnologies/ipv6/default.mspx click Start→Settings→Network and Dial-up Connections Click phải card mạng, chọn Properties Install chọn Microsoft IPv5 Protocol 29/06/2011 Chương 14: Lập trình Internet hệ 12 6/29/2011 Các cơng cụ IPv6 • IPv6 cơng cụ dịng lệnh tương tự với ipconfig • Cài đặt: IPv6 install • Liệt kê giao tiếp hệ thống: IPv6 if • Xem chi tiết giao tiếp: IPv6 if 29/06/2011 Chương 14: Lập trình Internet hệ 13 Các cơng cụ IPv6 • Các tham số cấu hình tồn cầu IPv6 stack xem nhờ lệnh: IPv6 gp • Kết quả: DefaultCurHopLimit = 128 UseAnonymousAddresses = yes MaxAnonDADAttempts = MaxAnonLifetime = 7d/24h AnonRegenerateTime = 5s MaxAnonRandomTime = 10m 29/06/2011 AnonRandomTime = 2m21s NeighborCacheLimit = RouteCacheLimit = 32 BindingCacheLimit = 32 ReassemblyLimit = 262144 MobilitySecurity = on Chương 14: Lập trình Internet hệ 14 6/29/2011 Các cơng cụ IPv6 • Xem bảng prefix policy nhờ lệnh: IPv6 ppt • Kết quả: ::ffff:0:0/96 -> precedence 10 srclabel dstlabel ::/96 -> precedence 20 srclabel dstlabel 2002::/16 -> precedence 30 srclabel dstlabel ::/0 -> precedence 40 srclabel dstlabel ::1/128 -> precedence 50 srclabel dstlabel 29/06/2011 Chương 14: Lập trình Internet hệ 15 Các cơng cụ IPv6 • NETSH: Dùng để đọc thông tin từ IPv6 stack, số thông tin giống kết lệnh vừa dùng • Xem địa IPv6: Netsh interface ipv6 show address 29/06/2011 Chương 14: Lập trình Internet hệ 16 6/29/2011 Các cơng cụ IPv6 • Ping6: Đơn giản thực lệnh giống ping Các tham số dịng lệnh cho Ping6 Tham số Mục đích -t Ping host ấn Ctrl + C -a Phân giải địa IP thành tên host -n Gửi số lượng xác định lệnh ping Chương 14: Lập trình Internet hệ 29/06/2011 17 Các cơng cụ IPv6 Các tham số dịng lệnh cho Ping6 Tham số Mục đích -l Gửi kích thước buffer, mặc định 32 -r Dùng phần routing header để kiểm tra đường ngược có tốt đường thuận không -s Xác định địa xuất phát gói tin yêu cầu ping -w Hủy phản hồi trễ thời gian quy định 29/06/2011 Chương 14: Lập trình Internet hệ 18 6/29/2011 Các cơng cụ IPv6 • Tracert6: giống tracert IPv4 Một số tham số có thay đổi j, s, r Các tham số dòng lệnh cho Tracert6 Tham số Mục đích -d Cấm phân giải từ IP sang tên miền -h Xác định số lượng hop tối đa từ nguồn đến đích -w Hủy phản hồi trễ thời gian quy định -s Xác định địa xuất phát gói tin yêu cầu ping -r Dùng phần routing header để kiểm tra đường ngược có tốt đường thuận khơng 29/06/2011 Chương 14: Lập trình Internet hệ 19 Các cơng cụ IPv6 • IPSec6: Cơng cụ bảo mật mức IP • Để xem sách bảo mật hệ thống dùng lệnh: IPSec6 sp • Để xem sở liệu bảo mật hệ thống dùng lệnh: IPSec6 sa 29/06/2011 Chương 14: Lập trình Internet hệ 20 10 6/29/2011 Giao thức 6to4 • Phần 64bit cao địa 6to4 dùng để cung cấp thông tin routing router tương thích 6to4 • Bất kỳ lưu thơng mạng khơng phải intranet chuyển tiếp đến router nằm biên intranet Sau liệu đóng gói với IPv4 Router 6to4 trích phần địa IPv4 dùng để đường cho gói tin 29/06/2011 Chương 14: Lập trình Internet hệ 39 Giao thức ISATAP • Các server ISATAP phải có mục tiêu giống 6to4 việc chuyển liệu IPv6 kiến trúc IPv4 hành • Một địa ISATAP có dạng tổng qt: ::0:5EFE:[IPv4 Address] • Địa ISATAP kết hợp với IPv6 prefix, có chứa 6to4 prefix cần thiết 29/06/2011 Chương 14: Lập trình Internet hệ 40 20 6/29/2011 Giao thức ISATAP • ISATAP dùng địa IPv4 để chuyển tải interface ID • Để cấu hình máy tính dùng ISATAP router, cần phải có kết nối LAN, kết nối vào mạng IPv6 lại kết nối vào mạng IPv4 Sau cho phép forwarding giao tiếp kết nối vào Internet cho phép forwarding + 29/06/2011 Chương 14: Lập trình Internet hệ 41 Giao thức ISATAP • quảng bá tất giao tiếp giả tự động chế tunneling, dùng lệnh sau: netsh interface ipv6 set interface forwarding=enabled advertise=enabled • Thêm router vào: Netsh interface ipv6 add route 2002:::::/64 publish=yes 29/06/2011 Chương 14: Lập trình Internet hệ 42 21 6/29/2011 Giao thức ISATAP • Thêm default route cho giao tiếp LAN vật lý: Netsh interface ipv6 add route ::/0 nexthop= publish=yes • Các host ISATAP dùng DNS để tìm ISATAP router cách phân giải tên ISATAP (Windows Server 2003) _ISATAP (Windows XP) 29/06/2011 Chương 14: Lập trình Internet hệ 43 Giao thức 6over4 • Định nghĩa RFC 2529 • Tương đối giống 6to4 • 6over4 dùng cho môi trường multicast, khác với 6to4 ISATAP • 6over4 mặc định bị vơ hiệu Windows XP, để kích hoạt dùng lệnh: netsh interface ipv6 add 6over4tunnel "6over4" 29/06/2011 Chương 14: Lập trình Internet hệ 44 22 6/29/2011 Lập trình IPv6 NET • IPv6 hỗ trợ từ NET 1.1 • Code hỗ trợ IPv6 cần thêm tham số cho phần socket constructor AddressFamily.InterNetworkV6 • Địa loop back dùng IPAddress.IPv6Any • Theo mặc định IPv6 khơng kích hoạt NET 1.1, nên lập trình cần điều chỉnh cấu hình 29/06/2011 Chương 14: Lập trình Internet hệ 45 Lập trình IPv6 NET • Mở file C:\WINDOWS\Microsoft.NET\Framework\ v1.1.4322\machine.config thay XML > thành • Minh họa cách truyền số văn thông qua IPv6 qua ứng dụng sau Ứng dụng gồm server client 29/06/2011 Chương 14: Lập trình Internet hệ 46 23 6/29/2011 Lập trình IPv6 NET • Xây dựng ứng dụng phía server • Tạo project mới, kiểu project Console Application • Thực việc khởi tạo kết nối lắng nghe port xác định, giả sử trường hợp 1979 • Khai báo hàm IPv6Server sau: 29/06/2011 Chương 14: Lập trình Internet hệ 47 Lập trình IPv6 NET static void IPv6Server() { const int PORT = 1979; if (!Socket.OSSupportsIPv6){ Console.Error.WriteLine("Your system does not support IPv6\r\n" + "Check you have IPv6 enabled and have changed machine.config"); return; } 29/06/2011 Chương 14: Lập trình Internet hệ 48 24 6/29/2011 Lập trình IPv6 NET Socket listener = new Socket(AddressFamily.InterNetworkV6, SocketType.Stream, ProtocolType.Tcp); listener.Bind(new IPEndPoint(IPAddress.IPv6Any, PORT)); listener.Listen(0); Console.WriteLine("Waiting for incoming connections on " + PORT); Socket socket = listener.Accept(); listener.Close(); byte[] b = new byte[11]; 29/06/2011 Chương 14: Lập trình Internet hệ 49 Lập trình IPv6 NET int len; while ((len = socket.Receive(b)) != 0){ System.Console.WriteLine("RX: " + System.Text.ASCIIEncoding.ASCII.GetString( b, 0, len)); b = new byte[11]; } socket.Close(); } 29/06/2011 Chương 14: Lập trình Internet hệ 50 25 6/29/2011 Lập trình IPv6 NET • Gọi hàm thực thi hàm Main: static void Main(string[] args) { IPv6Server(); } 29/06/2011 Chương 14: Lập trình Internet hệ 51 Lập trình IPv6 NET • Xây dựng ứng dụng phía client • Tạo project mới, kiểu project Console Application • Thực việc khởi tạo kết nối lắng nghe port xác định, giả sử trường hợp 1979 IPv6 máy hành fe80::6022:684a:e812:77c2 • Khai báo hàm IPv6Client sau: 29/06/2011 Chương 14: Lập trình Internet hệ 52 26 6/29/2011 Lập trình IPv6 NET static void IPv6Client() { const int PORT=1979; const string IPv6_ADDR = "fe80::6022:684a:e812:77c2"; if(!Socket.OSSupportsIPv6) { Console.Error.WriteLine("Your system does not support IPv6\r\n" + "Check you have IPv6 enabled and have changed machine.config"); return; } 29/06/2011 Chương 14: Lập trình Internet hệ 53 Lập trình IPv6 NET IPAddress ipa=IPAddress.Parse(IPv6_ADDR); IPEndPoint ipeh=new IPEndPoint(ipa,PORT); Socket connection= new Socket(AddressFamily.InterNetworkV6, SocketType.Stream,ProtocolType.Tcp); connection.Connect(ipeh); byte[] b=System.Text.ASCIIEncoding.ASCII.GetBytes( "hello world"); 29/06/2011 Chương 14: Lập trình Internet hệ 54 27 6/29/2011 Lập trình IPv6 NET for(int x=0;x

Ngày đăng: 09/05/2021, 18:31

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan