Hướng dẫn làm load balancing cho dns server

Theo mình hiểu, trang web bạn gửi mô tả phương thức thực hiện Load Balancing thông qua hệ thống DNS. DNS có chức năng Round-Robin, cho phép có thể có nhiều record cùng tên (nhưng IP khác nhau) và các record này được dùng tuần tự khi trả lời các yêu cầu phân giải từ client.

Show

    Thông thường, cấu hình trên chỉ chấp nhập các record A - tức là có nhiều record A cùng tên. Tuy nhiên, website của bạn dùng BIND (DNS Server trong *nix) version 4 để sử dụng nhiều record CNAME cùng tên. Với BIND 8, bạn cần option:

    Code:

    options { multiple-cnames yes; };

    Cấu hình website trên đề xuất chỉ dùng được với BIND thôi, trên Windows hình như không hỗ trợ.

    Không câu hỏi nào là dở hơi!

    Comment

    • Member Newbie
    • Join Date: Apr 2006
    • Posts: 38
      Hi, DNS server trên windows server 2000, 2003 có hỗ trợ Round Robin mặc nhiên đấy các bạn: -> DNS server Properties -> Advanced-> Enable Round Robin. Ngoài ra còn tương thích với BIND của *.nix. Thân mến. -------- :p "Tìm, tìm nữa tìm mãi" Sách là ngọn đèn bất duyệt của sự thông thái tích luỹ lại http://cisnet.edu.vn/ ---------

      Comment

    • Senior Member Elite
    • Join Date: Jul 2005
    • Posts: 502

      Originally posted by cuncon Hi, DNS server trên windows server 2000, 2003 có hỗ trợ Round Robin mặc nhiên đấy các bạn: -> DNS server Properties -> Advanced-> Enable Round Robin. Ngoài ra còn tương thích với BIND của *.nix. Thân mến. Cám ơn bạn đã chỉ dẫn. Khi mở ra thì mình thấy mặc định nó đã được chọn. Nhưng mình vẫn không tạo được thêm 1 Alias nữa trùng tên với Alias cũ. Nếu thấy trùng tên, nó cứ kêu replace. Nhớ Network ........ !

      Comment

    • Hướng dẫn làm load balancing cho dns server
      Senior Member Senior Member
    • Join Date: Aug 2003
    • Posts: 137

      Originally posted by nguyennp Cám ơn bạn đã chỉ dẫn. Khi mở ra thì mình thấy mặc định nó đã được chọn. Nhưng mình vẫn không tạo được thêm 1 Alias nữa trùng tên với Alias cũ. Nếu thấy trùng tên, nó cứ kêu replace. Windows 2000/2003 DNS Service không hỗ trợ cấu hình có nhiều record CNAME cùng tên. Bạn chỉ có thể dùng nhiều record A cùng tên mà thôi. Trang Web bạn gửi sử dụng BIND để cấu hình nhiều record CNAME cùng tên, tính năng này Windows DNS không hỗ trợ. Không câu hỏi nào là dở hơi!

      Comment

    • Senior Member Elite
    • Join Date: Jul 2005
    • Posts: 502

      Originally posted by nhaque321 Windows 2000/2003 DNS Service không hỗ trợ cấu hình có nhiều record CNAME cùng tên. Bạn chỉ có thể dùng nhiều record A cùng tên mà thôi. Trang Web bạn gửi sử dụng BIND để cấu hình nhiều record CNAME cùng tên, tính năng này Windows DNS không hỗ trợ. OK, được rồi. Cám ơn các bạn. Nhớ Network ........ !

      Comment

    • Hướng dẫn làm load balancing cho dns server
      Senior Member Senior Member
    • Join Date: Aug 2006
    • Posts: 111

      Originally posted by nhaque321 Windows 2000/2003 DNS Service không hỗ trợ cấu hình có nhiều record CNAME cùng tên. Bạn chỉ có thể dùng nhiều record A cùng tên mà thôi. Trang Web bạn gửi sử dụng BIND để cấu hình nhiều record CNAME cùng tên, tính năng này Windows DNS không hỗ trợ. Chào Nhaque321 ,bạn vui lòng rõ hơn giùm mình ? mình vẫn chưa phân biệt sự khác nhau giữa CNAME và record A ? quy tắc hoạt động của chúng ? cám ơn nha

      Comment

    • Hướng dẫn làm load balancing cho dns server
      Senior Member Senior Member
    • Join Date: Aug 2003
    • Posts: 137

      CNAME - Canonical Name A - Address Một bản ghi (record) A chứa một tên và một địa chỉ IP tương ứng với tên đó. Một record CNAME chứa tên của một record A, và chứa một tên bí danh tương ứng. Ví dụ: Record A: Code: mail.company.com. IN A 10.0.0.10 Tạo record CNAME có tên webmail.company.com và là bí danh của record A mail.company.com. Record CNAME sẽ như sau: Code: webmail.company.com. IN CNAME mail.company.com. Về phía client, sử dụng cả hai tên mail.company.com và webmail.company.com đều dẫn đến một địa chỉ IP. Khi thay đổi địa chỉ IP ở record A, địa chỉ mà record CNAME trả về cũng bị thay đổi tương ứng. (Sửa lại phần khai báo các record cho đúng, :) ) Không câu hỏi nào là dở hơi!

      Comment

    • Hướng dẫn làm load balancing cho dns server
      Senior Member Senior Member
    • Join Date: Aug 2006
    • Posts: 111

      Cám ơn Nhaque321 ,mình đã hiểu được vấn đề rồi. Cho mình hỏi thêm, 2 cái record Cname & A là mình cấu hình ở webserver hay là ở website mình đăng ký mua domain name ? (vì mình thấy ở website cũng có lựa chọn Cname & A gì đó,ko biết Cname & A ở website và webserver khác nhay thế nào?) Bạn có thể cho mình xin tài liệu chi tiết về toàn bô cách cấu hình webserver bằng Window hay ko? Chân thành cám ơn

      Comment

    • Hướng dẫn làm load balancing cho dns server
      Senior Member Senior Member
    • Join Date: Aug 2003
    • Posts: 137

      Originally posted by manhtuan Cám ơn Nhaque321 ,mình đã hiểu được vấn đề rồi. Cho mình hỏi thêm, 2 cái record Cname & A là mình cấu hình ở webserver hay là ở website mình đăng ký mua domain name ? (vì mình thấy ở website cũng có lựa chọn Cname & A gì đó,ko biết Cname & A ở website và webserver khác nhay thế nào?) Cả hai record A và CNAME đều phải cấu hình trong DNS service. Ở đây bạn đề cập đến cấu hình ở webserver/website. Ở website (như www.no-ip.org), thực chất là một trang web cho phép bạn cấu hình các thông số của dịch vụ DNS thông qua Internet Browser. Trên webserver, bạn sử dụng các tên đã đăng ký trong DNS để cấu hình IIS server. Ví dụ: IIS cho phép chạy nhiều website trên cùng cổng (80) và cùng địa chỉ IP. Để phân biệt các website này, IIS dùng host-header, đại khái là tên DNS tương ứng của từng website. Giả dụ bạn có 2 website tên là home.company.com và forum.company.com cùng chạy trên port 80, IP 10.0.10.100. Trên IIS server, bạn phải cấu hình để IIS sử dụng 2 tên trên cho 2 website. trên DNS server, bạn có thể cấu hình như sau: Code: home.company.com. IN A 10.0.10.100 forum.company.com. IN CNAME home.company.com. Originally posted by manhtuan Bạn có thể cho mình xin tài liệu chi tiết về toàn bô cách cấu hình webserver bằng Window hay ko? Sorry, để lúc nào mình upload lên quyển IIS 6 Administrator. Mạng chậm quá, mình không upload lên được. Không câu hỏi nào là dở hơi!

      Comment

    • Senior Member Elite
    • Join Date: Jul 2005
    • Posts: 502

      Originally posted by nhaque321 Cả hai record A và CNAME đều phải cấu hình trong DNS service. Ở đây bạn đề cập đến cấu hình ở webserver/website. Ở website (như www.no-ip.org), thực chất là một trang web cho phép bạn cấu hình các thông số của dịch vụ DNS thông qua Internet Browser. Trên webserver, bạn sử dụng các tên đã đăng ký trong DNS để cấu hình IIS server. Ví dụ: IIS cho phép chạy nhiều website trên cùng cổng (80) và cùng địa chỉ IP. Để phân biệt các website này, IIS dùng host-header, đại khái là tên DNS tương ứng của từng website. Giả dụ bạn có 2 website tên là home.company.com và forum.company.com cùng chạy trên port 80, IP 10.0.10.100. Trên IIS server, bạn phải cấu hình để IIS sử dụng 2 tên trên cho 2 website. trên DNS server, bạn có thể cấu hình như sau: Code: home.company.com. IN A 10.0.10.100 forum.company.com. IN CNAME home.company.com. Sorry, để lúc nào mình upload lên quyển IIS 6 Administrator. Mạng chậm quá, mình không upload lên được. Bạn nhaque321 có vẻ am tường IIS quá. Mình có thắc mắc: Như vậy, nhiều website chạy cùng 1 cổng 80, khác nhau cái host-header, khi NAT thì nó chỉ NAT theo IP, làm sao mình biết được nó sẽ chạy Website nào ???? Nhớ Network ........ !

      Comment

    • Hướng dẫn làm load balancing cho dns server
      Senior Member Senior Member
    • Join Date: Aug 2003
    • Posts: 137

      Originally posted by nguyennp Bạn nhaque321 có vẻ am tường IIS quá. Không, mình hầu như không biết gì về IIS cả, :). Những gì mình viết ở trên chỉ là những cái mình đã từng làm qua (và phải làm vì công việc thôi). Originally posted by nguyennp Mình có thắc mắc: Như vậy, nhiều website chạy cùng 1 cổng 80, khác nhau cái host-header, khi NAT thì nó chỉ NAT theo IP, làm sao mình biết được nó sẽ chạy Website nào ???? Vấn đề ở đây hoàn toàn không phải do NAT, mà do cách bạn cấu hình IIS. Thông thường, khi client gửi một HTTP Request, client sẽ gửi cả host-header của website mà nó muốn lấy thông tin. IIS sẽ dựa vào cái header này (mình đoán vậy, :D ) mà chuyển các HTTP request đến các website tương ứng mà nó được cấu hình. Khi mạng có NAT, và nếu bạn dùng kiểu port forwarding (chứ còn kiểu NAT cả IP thì quá dễ), các gói tin vẫn được forward nguyên xi các thông tin mà gói tin mang (trừ mỗi destination IP). Do vậy mà IIS vẫn bóc tách được các thông tin mà nó cần một cách dễ dàng. Không câu hỏi nào là dở hơi!

      Comment

    • Hướng dẫn làm load balancing cho dns server
      Senior Member Senior Member
    • Join Date: Aug 2006
    • Posts: 111

      Trường hợp 1 website có nhiều server , vậy khi client request có phải server nào nhận được request trước sẽ reply trước hay là server nào gần client nhất sẽ reply hay là... Đại khái mình mong các bạn giải thích giùm mình quy tắc hoạt động của trường hợp này. Rất cám ơn

      Comment

    • Hướng dẫn làm load balancing cho dns server
      Senior Member Senior Member
    • Join Date: Aug 2003
    • Posts: 137
      Originally posted by manhtuan Trường hợp 1 website có nhiều server , vậy khi client request có phải server nào nhận được request trước sẽ reply trước hay là server nào gần client nhất sẽ reply hay là... Đại khái mình mong các bạn giải thích giùm mình quy tắc hoạt động của trường hợp này. Rất cám ơn Khi một website được cung cấp bởi nhiều server, thì bạn cần có cơ chế Load Balancing giữa các server đó. Có rất nhiều cách thực hiện load balancing , và sử dụng tính năng Round Robin của DNS là một cách. Trong Round Robin DNS, một website (tương ứng với 1 tên) sẽ có rất nhiều địa chỉ IP. Bạn có thể cấu hình bằng cách tạo nhiều record A cùng tên nhưng có IP là IP của các web server, hoặc làm theo cách mà website bạn gửi hướng dẫn (dùng BIND). Khi client lần đầu tiên truy cập website, nó sẽ yêu cầu phân giải từ DNS server. Do có Round Robin, các record A (hay CNAME) sẽ lần lượt được trả về cho client. Giải sử có 3 record cùng tên và có 3 client lần lượt truy cập website, khi đó mỗi client sẽ nhận được kết quả khác nhau và kết nối đến web server khác nhau. Code: www.company.com. IN A 10.0.10.20 www.company.com. IN A 10.0.10.30 www.company.com. IN A 10.0.10.40 client1 (tại t1) -> DNS request www.company.com -> 10.0.10.20 client2 (tại t2) -> DNS request www.company.com -> 10.0.10.30 client3 (tại t3) -> DNS request www.company.com -> 10.0.10.40 client4 (tại t4) -> DNS request www.company.com -> 10.0.10.20

      Dùng Round Robin DNS có ưu điểm là đơn giản, dễ thực hiện. Tuy nhiên, cách này có các nhược điểm: - Dựa vào DNS để cân bằng tải, nên không thực sự là load balance, do quá trình phân giải DNS kèm theo các DNS server trung gian, DNS cache,... làm giảm hiệu quả. Thông thường, người ta khuyên nên đặt TTL cho các record với giá trị thấp để làm giảm thời gian cache. - Không có khả năng phát hiện ra một server nào đó bị lỗi. Không câu hỏi nào là dở hơi!

      Comment

    • Senior Member Elite
    • Join Date: Jul 2005
    • Posts: 502
      Originally posted by nhaque321 Khi mạng có NAT, và nếu bạn dùng kiểu port forwarding (chứ còn kiểu NAT cả IP thì quá dễ), các gói tin vẫn được forward nguyên xi các thông tin mà gói tin mang (trừ mỗi destination IP). Do vậy mà IIS vẫn bóc tách được các thông tin mà nó cần một cách dễ dàng. Mình không hiểu port forwarding có khác gì với NAT ? Mong bạn giải thích giúp. Lúc trước có học qua IIS ( thời còn chưa biết cài HĐH nữa) nên giờ quên hết. Bạn nhắc lại giờ mới nhớ. Cám ơn bạn nhiều lắm.