Điểm:0

Đạt được thông lượng DNS QPS cao

lá cờ ru

Tôi đang cố gắng tìm QPS (Truy vấn mỗi giây) tối đa của VM Resolver DNS.

Chúng tôi có cơ sở hạ tầng được lưu trữ trên Azure, có VM (dựa trên liên kết) đóng vai trò là trình phân giải truy vấn DNS gốc của Azure (168.63.129.16) cũng như DNS tại chỗ. Tôi không lưu vào bộ đệm bất kỳ truy vấn nào trên trình phân giải và mỗi bản ghi A có TTL là 300 giây.

Tôi đang sử dụng dnsperf & tôn trọng để kích hoạt tải (chỉ bản ghi A). Bây giờ, tôi đang chuẩn bị các trình phân giải DNS để chống lại các cuộc tấn công DDOS lên tới 100K QPS. Tôi đang gặp phải các sự cố như giới hạn tốc độ truy vấn giữa trình phân giải DNS và trình phân giải DNS gốc của Azure. Do đó, khi QPS tăng lên, trình giải quyết sẽ trả về KHÔNG PHỤC VỤ phản hồi lại cho khách hàng. Tuy nhiên, chúng tôi không thấy bất kỳ KHÔNG PHỤC VỤ phản hồi giữa trình phân giải & DNS dựa trên tiền đề.

QPS tối đa mà tôi có thể thấy khi nhắm mục tiêu Azure DNS là vào khoảng năm 2100. Tôi đã tìm kiếm rất nhiều trên mạng xem có bất kỳ giới hạn tốc độ nào như vậy được thực hiện bởi Azure hay không, nhưng không thể tìm thấy bất kỳ điều gì liên quan. Bằng cách nào đó, tôi linh cảm trình phân giải VM gặp phải nút cổ chai vì 2K QPS là rất thấp đối với quy mô cơ sở hạ tầng Azure.

Một vài điều (thay đổi hệ thống kernel), tôi đã thay đổi ở phần cuối của mình, điều này đã cải thiện một chút nhưng không nhiều.

Thay đổi cấu hình liên kết ::

  • đệ quy-client từ 1000 -> 30000

bộ đệm UDP lên giá trị cao hơn 26214400 để dừng lỗi bộ đệm ::

  • net.core.rmem_max
  • net.core.rmem_default

Phạm vi cổng địa phương từ 32768 61000 đến 1024 61000 để có tối đa cổng có sẵn cho DNS ::

  • net.ipv4.ip_local_port_range

thay đổi linh tinh::

  • txqueuen từ 1000 -> 20000

  • ulimits đổi thành 100000

  • net.netfilter.nf_conntrack_max thay đổi thành một giá trị cao hơn nhiều

Ngoài những điều trên, tôi đã tăng kích thước VM từ (1 lõi, RAM 2 GB) -> (4 lõi, RAM 8 GB).Sau khi tăng, lỗi gói biến mất (đã kiểm tra netstat -s) nhưng không cải thiện KHÔNG PHỤC VỤ lỗi.

tôi đã kích hoạt tcpdump để kiểm tra mô hình của KHÔNG PHỤC VỤ lỗi. Trong trường hợp không thành công, trình phân giải sẽ cố gắng gửi truy vấn tới Azure DNS 5 lần (mỗi lần sau 1 giây), nhưng nó không nhận được bất kỳ thông tin gì từ Azure DNS và do đó gửi truy vấn KHÔNG PHỤC VỤ phản hồi lại cho khách hàng. đã tải pcap tập tin vào cá mập, tôi thấy Azure DNS gửi phản hồi lại cho người giải quyết nhưng người giải quyết đã gửi KHÔNG PHỤC VỤ phản hồi cho khách hàng.

Tại sao kết nối bị đóng trước khi có phản hồi? Hiện hành net.netfilter.nf_conntrack_udp_timeout không bị ảnh hưởng 30 giây nhưng người giải quyết gửi KHÔNG PHỤC VỤ sau 5 giây cho khách hàng.

Dưới đây là tcpdump nhật ký trong thời gian ServFail::

đọc từ tệp dns4.pcap, loại liên kết EN10MB (Ethernet)
10.0.0.10.57710 > 10.0.0.11.domain: [udp sum ok] 1612+ A? SZxvvdyDYy.ns.westeurope.xx.yy.zz.net. (66)
10.0.0.11.44513 > 168.63.129.16.domain: [bad udp cksum 0xbecd -> 0x8cfd!] 52637+% [1au] A? SZxvvdyDYy.ns.westeurope.xx.yy.zz.net. là: . CHỌN UDPsize=4096 DO (77)
10.0.0.11.32378 > 168.63.129.16.domain: [bad udp cksum 0xbecd -> 0x3950!] 20672+% [1au] A? SZxvvdyDYy.ns.westeurope.xx.yy.zz.net. là: . CHỌN UDPsize=512 DO (77)
10.0.0.11.59973 > 168.63.129.16.domain: [bad udp cksum 0xbecd -> 0xe2e5!] 15199+% [1au] A? SZxvvdyDYy.ns.westeurope.xx.yy.zz.net. là: . CHỌN UDPsize=512 DO (77)
10.0.0.11.29976 > 168.63.129.16.domain: [bad udp cksum 0xbec2 -> 0x051b!] 47104+ A? SZxvvdyDYy.ns.westeurope.xx.yy.zz.net. (66)
10.0.0.11.43442 > 168.63.129.16.domain: [không hợp lệ udp cksum 0xbec2 -> 0xe791!] 41199+ A? SZxvvdyDYy.ns.westeurope.xx.yy.zz.net. (66)
10.0.0.11.domain > 10.0.0.10.57710: [xấu udp cksum 0x2a89 -> 0x5e30!] 1612 ServFail q: A? SZxvvdyDYy.ns.westeurope.xx.yy.zz.net. 0/0/0 (66)

Như bạn có thể thấy từ dòng dưới cùng ServFail được gửi sau 5 lần thử.

Nếu bạn đã đi xa đến đây, tôi phải cảm ơn bạn đã đọc câu hỏi dài này. Tôi biết đây là một câu hỏi quá nhiều, nhưng tôi đánh giá cao nếu bạn có một số gợi ý cho tôi vì tôi không thể hiểu được nút cổ chai là gì.

Ban đầu được đăng trên siêu người dùng đây

Patrick Mevzek avatar
lá cờ cn
"bad udp cksum" có thể là thứ bạn muốn điều tra. Có thể là dấu hiệu của thiết bị/kết nối mạng bị lỗi ở đâu đó hoặc lỗi trong kernel/trình điều khiển card mạng (ít có khả năng xảy ra hơn). Ngoài ra, máy chủ định danh đệ quy bạn đang sử dụng có thể giới hạn tốc độ của bạn. Không thực sự chắc chắn để hiểu nếu bạn đang thiết lập một máy chủ tên có thẩm quyền tại sao bạn lại phụ thuộc vào một máy chủ đệ quy và nếu bạn thiết lập một máy chủ đệ quy tại sao nó không có bộ đệm và cũng phụ thuộc vào một máy chủ khác.
harshavmb avatar
lá cờ ru
Xin chào @PatrickMevzek, cảm ơn bạn đã trả lời. Tôi nghi ngờ điều tương tự với giới hạn tốc độ từ máy chủ có thẩm quyền Azure `168.63.129.16`. Mặc dù đã thử nghiệm nhiều lần, QPS vẫn không vượt quá `2100`.Tôi không thiết lập `authoritative ns`, nó chỉ là `recursive ns`, dựa vào `azure` cho các bản ghi Azure, tại chỗ cho các bản ghi tại chỗ. Không có bộ nhớ đệm ở cấp ns đệ quy ...
harshavmb avatar
lá cờ ru
Về `bad udp cksum`, tôi có câu hỏi này trong hầu hết mọi truy vấn. Tôi cần điều tra lý do tại sao nó lại tràn lan như vậy.. Hầu hết, tôi không nghĩ đó là nguyên nhân gốc rễ của `ServFail` này..
Điểm:0
lá cờ ru

Vì vậy, tôi sẽ trả lời câu hỏi của tôi.

Thật vậy, tỷ lệ Azure giới hạn Truy vấn mỗi giây đến 1000 mỗi máy ảo.

Nó được ghi lại đây. không có vấn đề gì hệ thống tôi điều chỉnh, chúng tôi vẫn gặp sự cố từ Azure do giới hạn tốc độ này.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.