- Đặc điểm của đờng hầm tự động là địa chỉ điểm cuối đờng hầm đợc xác định một cách tự động Đờng hầm đợc tạo ra một cách tự động và cũng tự
3.2.7.2 BIA (Bump Into the API)
Phơng pháp này áp dụng cho các dual- stack host (các host hỗ trợ cả IPv4 và IPv6), cho phép các host IPv6 khác với các ứng dụng IPv4 hiện có.
Giáo viên hớng dẫn : Th.S Hà Mạnh Đào 52
Mục đích của phơng pháp cũng giống nh cơ chế Bump-in-the-stack (BIS) nh- ng nó đa ra cơ chế dịch giữa các API IPv4 và IPv6. DO vậy, quá trình đơn giản không cần dịch header gói tin IP và không phụ thuộc vào các giao thức tầng dới và trình điều khiển của giao diện mạng.
Host Translatorr( BIA) IPv6 hative host (API)
IP v6 network
IPv4 Applications
IPv6 hative host
Hình 58: BIA
- Phơng pháp BIA không sủ dụng đợc trong các host chỉ hỗ trợ IPv4 nh ph- ơng pháp BIS. Nó chỉ đợc sử dụng trên các host IPv6/Ipv4 nhng có một số trình ứng dụng IPv4 không thẻ hoặc khó chuyển đổi sang hỗ trợ IPv6.
- Do BIA hoạt động tại mức API socket nên ta có thể sử dụng các giao thức an ninh tại tầng mạng (IPsec).
BIA hiện nay chỉ áp dụng đợc cho các trao đổi kiểu Unicast, cha áp dụng đợc cho kiểu Multicast. Các tính năng mới của socket IPv6 không thể sử dụng. - Phơng thức hoạt động:
+ Phơng pháp BIA chèn thêm một bộ dịch API vào giữa module socket API và module TCP/IP trên dual-stack host và dịch các hàm API socket IPv4 thành các hàm API socket IPv6 và ngợc lại.
Để áp dụng phơng pháp này, host hỗ trợ cả TCP(UDP)/IPv4 và TCP(UDP)/IPv6.
+ Khi một ứng dụng IPv4 giao tiếp với một host IPv6 khác, bộ dịch API phát hiện các hàm APG socket mà ứng dụng sử dụng và gọi tơng ứng các hàm API socket IPv6 để giao tiếp với host IPv6 và ngợc lại.
+ Quá trình chuyển đổi IPv6 sang một tập các địa chỉ IPv4 đợc thực hiện trong module ánh xạ tên (name resolver).
- Kiến trúc của dual-stack host sử dụng BIA. - Module BIA gồm 3 phần:
+ Module tra cứu tên (Name resolver): Đáp ứng các yêu càu tra cứu tên miền của các ứng dụng IPv4. Khi một ứng dụng giửi một truy vấn các bản ghi kiểu A tới name server, module này sẽ nhận truy vấn này, phân tích và tạo ra truy vấn tơng ứng với tên máy đó cho cả các bản ghi kiểu A và AAAA rồi giửi cho name server.
IPv4 Applications
Socket API (IPv4 , IPv6) API Translator
TCP(UDP)/IPv4 TCP(UDP)/IPv6
Hình 3- 13. Kiến trúc của dual- stack host sử dụng BIA
Nếu trả lời từ name server chỉ có bản ghi kiểu AAAA, module này sẽ yêu cầu module ánh xạ địa chỉ gán một địa chỉ IPv4 tơng ứng với địa chỉ IPv6 này rồi tạo ra một trả lời kiểu A chứa địa chỉ IPv4 trả về cho ứng dụng
+ Module ánh xạ địa chỉ (Address mapper).
Duy trì một bảng các cặp địa chỉ IPv4 và IPv6. Các địa chỉ IPv4 đợc gán từ một tập các địa chỉ này và cập nhật thêm một mục trong bảng. Quá trình cập nhật xảy ra trong hai trờng hợp:
Khi module ánh xạ tên chỉ nhận đợc trả lời về bản ghi kiểu AAAA và không có mục nào trong bảng chứa địa chỉ IPv6 tơng ứng.
Khi module ánh xạ hàm nhận đợc một lời gọi hàm API socket từ dữ liệu thu nhận mà không có mục nào trong bảng tơng ứng với địa chỉ IPv6 nguồn.
Giáo viên hớng dẫn : Th.S Hà Mạnh Đào 54 Function Mapper Name Resolver Address Mapper
+ Module ánh xạ hàm (Function mapper): Chuyển đổi các hàm API socket IPv4 thành các hàm API socket IPv6 và ngợc lại.
- Các vấn đề liên quan
+ Chuyển đổi API socket.
Các hàm API socket IPv4 đợc chuyển đổi tơng ứng sang các hàm API socket IPv6. Quá trình này chuyển đổi cả các địa chỉ IP nhúng trong các giao thức tầng ứng dụng (FTP, DNS,...). Sự tơng thích giữa các hàm API socket là không hoàn toàn do các hàm API socket IPv6 có nhiều tính năng hơn.
Các hàm API socket đợc chuyển đổi: bind() connect() sendmsg() sendto() accept() rrecvfrom() recvmsg() getpeername() gétockname() gétocketopt() sétocketopt() recv() send()
Bảng 3- 1. Các hàm API socket đợc chuyển đổi
Các cấu trúc và hàm API cơ bản
AF_ INET AF- INET6
sockaddr_in sockaddr_in6
gethostbyname() getaddrinfo() gethosbyaddr() getnameinfo()
inet_ntoa()/inet_addr() inet_pton()/inet_ntop()
INADDR_ANY in6addr_any
Bảng 3- 2. Các cấu trúc và hàm API cơ bản
- Các thông điệp ICMPv4 đợc chuyển thành ICMPv6 và ngợc lại giống trong phong pháp SIIT.
+ Tập các địa chỉ IPv4 và bảng ánh xạ địa chỉ.
Để tránh hiện tợng dùng hết tập địa chỉ IPv4 dẫn đến không thể tiếp tục đáp ứng các yêu cầu trao đổi với bên ngoài, BIA đa ra các cơ chế để loại bỏ các mục tồn tại lâu nhất trong bảng để sử dụng trong các yêu càu mới.
+ Các địa chỉ IPv4 nội bô.
Để tránh đụng độ về địa chỉ, BIA sử dụng các địa chỉ không đợc cấp phát (0.0.0.0 đến 0.0.0.255).
+ Vấn đề không phù hợp giữa kết quả DNS (AAAA) với phiên bản ứng dụng (v4).
- Nếu server ứng dụng cha hỗ trợ IPv6 nhng chạy trên một máy có hỗ trợ IPv6 và có tên dới kiểu bản ghi AAAA trong DNS, ứng dụng client có thể không kết nối đợc với server do có sự không phù hợp giữa bản ghi kết quả DNS (AAAA) với phiên bản ứng dụng server (IPv4).
- Một trong các giải pháp là thử tất cả các địa chỉ trong DNS và không kết thúc ngay sau lần thử đầu tiên. Điều này có thể ứng dụng bởi sự mở rộng module tra cứu tên và bộ dich API trong BIA. BIA thực hiện lặp công việc tìm kiếm các địa chỉ hoạt động sử dụng bởi các ứng dụng khác bên ngoài các địa chỉ trả về từ name server.