Thứ tư, tháng mười 19, 2005

Computer name (tt)

Trong hệ thống mạng Windows từ 2000 trở lên nếu có thiết lập cả hai dịch vụ, DNS được ưu tiên hơn NetBIOS, sự ưu tiên này được điều khiển bởi dịch vụ DNS đang chạy trên máy client. Có nghĩa là DNS Client service đầu tiên sẽ cố gắng phân giải tên bằng DNS; nếu thất bại mới cầu viện đến NetBIOS. Khi bạn cài đặt Windows, bạn phải gán cho máy tính một cái tên (nếu bạn không sửa đổi thì nó cho đại một cái tên lằng nhằng). Cái tên này, bạn có thể sửa đổi trong System Properties [-1-], là nền tảng cho DNS host name và NetBIOS name của máy tính đó. Ta sẽ đi cụ thể vào NetBIOS và DNS trong những phần sau, nhưng ở đây ta cần lưu ý ngay từ đầu hai điểm. Thứ nhất, NetBIOS không phải là một dịch vụ tên như DNS mà thực chất nó là một giao diện lập trình ứng dụng (Application Programming Interface – API). Naming (đặt tên ) và Name Resolution (phân giải tên) chỉ là hai trong số nhiều dịch vụ mà NetBIOS cung cấp. Thứ hai, NetBIOS name service và DNS là hai dịch vụ không có liên quan gì đến nhau, và cần các cơ chế khác nhau để phân giải tên của chúng thành địa chỉ IP.

Computer name (tt)

2.Tổng quan về Name Services trên Windows
Ở phần 1 ta đã tìm hiểu nền tảng để các máy tính giao tiếp bằng địa chỉ trên mạng. Bắt đầu từ đây ta sẽ biết được máy tính được đặt tên như thế nào, và dùng các tên đó ra sao. Phần này sẽ cung cấp một cái nhìn chung về các dịch vụ quản lí tên máy tính trên hệ điều hành Windows. Trên Windows có hai Name Services được sử dụng đó là name service của NetBIOS và DNS. NetBIOS là viết tắt của Network Basic I/O System – Hệ thống nhập xuất cơ bản trên mạng; DNS là viết tắt của Domain Name System hay Domain Name Service – Dịch vụ hay Hệ thống tên miền. Cả hai, cũng như các name service khác, đều có nhiệm vụ ánh xạ qua lại giữa tên gợi nhớ và địa chỉ IP của host. NetBIOS name service có trên mọi phiên bản Windows nhưng lời khuyên của “nha sĩ” là chỉ dùng cho các máy chạy Windows phiên bản từ NT, 98 trở về trước (do các phiên bản này không hỗ trợ DNS) và dùng DNS cho các phiên bản Windows từ 2000 trở về sau này. Nếu trong mạng chỉ có các máy Windows 2000, XP, Server 2003 thì nên tắt NetBIOS vì đây là một dịch vụ kém bảo mật, có thể bị khai thác để xâm nhập hệ thống. Ưu điểm duy nhất của NetBIOS so với DNS là nó không cần phải cấu hình phức tạp để phân giải tên các máy tính trên cùng network segment (IP có cùng NetID). DNS cung cấp các đặc tính vượt trội so với NetBIOS về bảo mật, sự uyển chuyển và tương thích với Internet.

Sản phẩm ForT

ForT đã có website rồi, giờ mình lại nhận nhiệm vụ make up và update nội dung nữa. Nhưng tuần sau thi rồi, lại chưa soạn xong báo cáo OS. Để đó, khi nào rảnh làm tiếp.
www.fort.homelinux.net

Computer name (tt)

TIPS: -Để xem bảng arp cache, bạn gõ lệnh sau: arp –a cho cả Windows và Linux. Ngoài ra còn có các tùy chọn khác như –d để delete một entry… Xem thêm các tùy chọn bằng cách gõ “arp -?” Trong Windows và “man arp” trong Linux. -Để minh họa cho hoạt động của ARP, bạn dùng các công cụ để bắt các gói tin đi qua card mạng của mình sẽ thấy rõ gói ARP request được gửi broadcast (gửi đến MAC đích ff:ff:ff:ff:ff:ff) như thế nào, gói reply được gửi unicast (gửi đến 1 MAC xác định) như thế nào. Các công cụ bắt và phân tích gói tin thường dùng như Network Monitor, Ethereal (các bạn học Mạng máy tính học kì này đã biết cách dùng công cụ này rồi, chỉ cần bật nó lên là thấy ARP nhiều lắm) trên Windows hay tcpdump trên Linux (các bạn học mạng máy tính học kì 1 năm trước đã học công cụ này rồi). -Xem thêm về cách đổi địa chỉ MAC ở đây.
1.2Tóm tắt
-Ta phải tìm hiểu ARP khi nghiên cứu về phân giải tên máy tính vì dù đặt tên kiểu gì thì cuối cùng cũng phải phân giải về được địa chỉ MAC mới lưu thông được trên mạng. -ARP là protcol cơ bản trong hầu hết mọi mạng TCP/IP, nhưng thông thường nó làm việc “âm thầm” ở hạ tầng mà chẳng ai thèm chú ý. -Proxy ARP và Gratuitous ARP là các dạng ARP đặc biệt. -Broadcast và ARP cache là cơ sở hoạt động của ARP và ta dùng lệnh arp để kiểm tra và quản lí arp cache.

Computer name (tt)

Qua ví dụ trên các bạn đã hình dung được ARP làm việc như thế nào rồi phải không. Tóm lại, chỉ cần nhớ: trong bộ giao thức TCP/IP, giao thức ARP (Address Resolution Protocol) được dùng để phân giải địa chỉ IP thành MAC cho các gói tin gửi ra ngoài. Nó phân giải bằng cách gửi các gói tin broadcast đến tất cả các host để hỏi địa chỉ MAC ứng với IP muốn gửi đến. Như vậy cứ mỗi lần một host muốn liên lạc đến một IP nào là tất cả các máy trên mạng phải nhận một gói tin broadcast để request MAC, mặc dù hầu như tất cả đều vứt đi, chỉ có một host đúng với IP của nó mới reply lại. Nếu việc này xảy ra thường xuyên thì quả là một sự phí phạm băng thông trên mạng, do đó sinh ra cái gọi là ARP cache.
1.1ARP Cache
Giống như mọi cái cache khác trong máy tính, ARP cache được dùng để trữ lại những thông tin ARP đã tìm được để lần sau dùng lại. Nó lưu những địa chỉ IP và địa chỉ MAC tương ứng (tạm gọi là entry ) đã broadcast tìm được để hạn chế lần sau broadcast lại. Để giữ cho thông tin không bị lạc hậu (chẳng hạn có host đổi IP), các entry lưu trong ARP cache được tồn tại trong một chu kì ngắn, thường là từ 2 đến 20 phút. Quá trình hoạt động của ARP chỉ thay đổi một chút là trước khi gửi broadcast để biết MAC của một máy, host sẽ kiểm tra ARP cache, nếu chưa có trong đó mới gửi broadcast. Trong Windows và Linux đều có một công cụ là arp để xem và quản lí nội dung của arp cache. Ví dụ bạn có thể dùng lệnh arp để thêm thủ công các địa chỉ MAC của các máy bạn thường tiếp xúc, nhờ đó tiết kiệm được thời gian và băng thông trong quá trình kết nối. Các địa chỉ mà bạn nhập thủ công vào là những dữ liệu tĩnh (static entry), nghĩa là nó không bị xóa sau mỗi chu kì như đối với các dynamic entry tìm được từ broadcast. Nhưng vì được lưu trong bộ nhớ nên khi restart máy thì nó cũng bị xóa luôn. Do ARP dựa trên broadcast nên nó chỉ hoạt động trên cùng một mạng (cùng một NetID) vì muốn sang mạng khác phải đi ngang các router, mà đi ngang router sẽ bị loại hết các gói broadcast. Lúc này lại sinh ra vấn đề Proxy ARP, khi đó router nối hai mạng A và B sẽ chịu trách nhiệm trả lời ARP cho các ARP request nếu host trong A hỏi host trong B và ngược lại. Có một câu hỏi là có khi nào một máy tự gửi ARP để hỏi IP của nó không? Có, đó là lúc bật máy lên. Khi đó host sẽ gửi ARP request để biết IP của chính mình (giống kiểu hỏi “Anh có biết tôi tên gì không?”). Lúc đó lại sinh ra cái gọi là Gratuitous ARP. Ngoài ra cái này còn một số đặc tính nữa, nhưng vì tiêu đề của mục này là “Cơ bản về ARP” nên ta sẽ không đào sâu hơn nữa.

Thứ bảy, tháng mười 15, 2005

Computer Name (tt)

1. Cơ bản về ARP
1.0 ARP-Address Resolution Protocol
Đầu tiên ta sẽ tìm hiểu cách ánh xạ giữa địa chỉ IP và địa chỉ MAC tương ứng. Mỗi network adapter (thường gọi là interface hay card mạng) có một địa chỉ MAC duy nhất và vĩnh viễn, còn gọi là địa chỉ vật lí, tương ứng với một hoặc nhiều địa chỉ IP gán cho interface đó. Đây là địa chỉ giao tiếp trong tầng Datalink của mô hình OSI. Để hiểu tại sao cần ARP và nó làm việc như thế nào, ta xét một ví dụ, khi bạn gõ dòng lệnh sau trong môi trường Linux (trong Windows cũng tương tự): % ftp bsdi Nghĩa là bạn muốn dùng chương trình “ftp” để kết nối đến một host có tên “bsdi” để thực hiện việc truyền nhận file (sử dụng giao thức FTP), các bước sau sẽ diễn ra trong “hậu trường”:
1.Chương trình ứng dụng, trong trường hợp này là FTP client, gọi hàm gethostbyname để chuyển (convert) từ hostname “bsdi” sang địa chỉ IP 32 bit. Hàm này được gọi là một resolver (bộ phân giải) trong Domain Name System (DNS), ta sẽ nói sau về cái này.
2.Khi có được IP của host “bsdi” rồi, FTP client yêu cầu thiết lập một cầu nối TCP với địa chỉ IP đó bằng cách gửi một gói IP datagram đến địa chỉ IP vừa xác định.
3.Nếu địa chỉ IP cần gửi đến có cùng NetID với IP của máy local (nghĩa là thằng mình cần gửi nằm trong một mạng với mình) thì gói tin IP đó có thể được gửi trực tiếp đến nó. Còn nếu thấy NetID của IP đích lạ hoắc thì chức năng định tuyến của IP sẽ xác định địa chỉ IP của thằng router trong mạng của mình (chính là cái Default Gateway khi bạn cấu hình IP address) và gửi gói tin IP đến đó. Đến lượt router sẽ dựa vào bảng định tuyến của mình để quyết định chuyển tiếp gói tin đi đâu. Đó là công việc của tầng IP.
4.Trong cả hai trường hợp trên, để gửi cho bất kỳ host nào (trực tiếp đến máy kia hay là gửi đến router), ta gọi chung là destination host, thì đến tầng Datalink sẽ phải xác định địa chỉ MAC của destination host. Cụ thể là host gửi gói tin phải convert từ địa chỉ IP 32 bit sang địa chỉ MAC 48 bit, từ địa chỉ logical sang địa chỉ physical. Đây là chức năng của ARP – Address Resolution Protocol.
5.Giao thức ARP sẽ gửi một Ethernet frame gọi là một ARP request đến tất cả các host trong mạng. Kiểu gởi này gọi là broadcast. Frame này mang theo địa chỉ IP của destination host và đến gõ cửa từng card mạng: “Nếu anh có địa chỉ IP là cái này thì làm ơn trả lời cho tôi địa chỉ MAC của anh!”
6.Mọi interface trong mạng đều nhận được gói tin đó, nếu một interface không phải là destination host thì không có gì xảy ra, chỉ đơn giản là nó quăng gói tin request đó đi. Còn nếu tầng Datalink của destination host nhận được frame ARP request, và nhận ra là sender đang yêu cầu đ/c MAC của mình, nó lập tức đáp lại bằng một ARP reply. Gói reply này chứa địa chỉ IP và địa chỉ MAC tương ứng của nó.
7.Gói ARP reply được máy của bạn (đang yêu cầu dịch vụ) nhận được, và lấy MAC của destination host ra, nhét vào frame (giống như ghi địa chỉ) và lúc này có thể gửi cái IP datagram đi.
8.Cuối cùng, IP datagram được gửi đến destination host.