টিটিএল হয়ে ওজনযুক্ত রাউন্ড রবিন - সম্ভব?


9

আমি বর্তমানে লোড ব্যালেন্সিংয়ের জন্য ডিএনএস রাউন্ড রবিন ব্যবহার করি যা দুর্দান্ত কাজ করে। রেকর্ডগুলি দেখতে দেখতে (আমার কাছে 120 সেকেন্ডের একটি টিটিএল আছে)

;; ANSWER SECTION:
orion.2x.to.        116 IN  A   80.237.201.41
orion.2x.to.        116 IN  A   87.230.54.12
orion.2x.to.        116 IN  A   87.230.100.10
orion.2x.to.        116 IN  A   87.230.51.65

আমি শিখেছি যে প্রতিটি আইএসপি / ডিভাইস এই জাতীয় প্রতিক্রিয়া একইভাবে আচরণ করে না। উদাহরণস্বরূপ কিছু ডিএনএস সার্ভার ঠিকানাগুলি এলোমেলোভাবে ঘোরান বা সর্বদা তাদের মধ্য দিয়ে চক্কর দিন। কিছু কেবল প্রথম প্রবেশের প্রচার করে, অন্যরা আইপি ঠিকানাটি দেখে কোনটি ভাল (অঞ্চলগতভাবে নিকটে) তা নির্ধারণ করার চেষ্টা করে।

তবে যদি ব্যবহারকারীর বেসটি যথেষ্ট বড় হয় (একাধিক আইএসপিগুলিতে ছড়িয়ে পড়ে etc.) তবে এটি ভারসাম্যহীন। সর্বোচ্চ থেকে সর্বনিম্ন লোড হওয়া সার্ভারের তাত্পর্যগুলি খুব কমই 15% ছাড়িয়ে যায়।

তবে এখন আমার সমস্যা আছে যে আমি সিস্টেমে আরও সার্ভার প্রবর্তন করছি এবং সকলের সক্ষমতা একই নয়।

আমার কাছে বর্তমানে কেবল 1 জিবিপিএস সার্ভার রয়েছে তবে আমি 100 এমবিপিএস এবং 10 জিবিপিএস সার্ভারের সাথেও কাজ করতে চাই।

তাই আমি যা চাই তা হ'ল আমি 100 ওজনের 10 গিগাবাইটের সাথে একটি সার্ভার, 10 ওজনের একটি 1 জিবিপিএস সার্ভার এবং 1 এর ওজন সহ 100 এমবিপিএস সার্ভারের সাথে পরিচয় করিয়ে দিতে চাই।

আমি তাদের কাছে আরও ট্র্যাফিক আনার জন্য পূর্বে দুবার সার্ভার যুক্ত করেছি (যা দুর্দান্ত কাজ করেছে - ব্যান্ডউইথ প্রায় দ্বিগুণ)। তবে ডিএনএসে 100 বার 10 জিবিপিএস সার্ভার যুক্ত করা কিছুটা হাস্যকর।

তাই টিটিএল ব্যবহারের কথা ভেবেছি।

যদি আমি সার্ভার এ 240 সেকেন্ডের টিটিএল এবং সার্ভার বিটি দিই মাত্র 120 সেকেন্ড (যা প্রায় কম গোলের রবিনের জন্য ব্যবহার করা উচিত, নিম্ন টিটিএল নির্দিষ্ট করা থাকলে প্রচুর ডিএনএস সার্ভার সেট করা হয় 120 (তাই আমি শুনেছি))। আমি মনে করি একটি আদর্শ দৃশ্যে এরকম কিছু হওয়া উচিত:

First 120 seconds
50% of requests get server A -> keep it for 240 seconds.
50% of requests get server B -> keep it for 120 seconds

Second 120 seconds
50% of requests still  have server A cached -> keep it for another 120 seconds.
25% of requests get server A -> keep it for 240 seconds
25% of requests get server B -> keep it for 120 seconds

Third 120 seconds
25% will get server A (from the 50% of Server A that now expired) -> cache 240 sec
25% will get server B  (from the 50% of Server A  that now expired) -> cache 120 sec
25% will have server A cached for another 120 seconds
12.5% will get server B (from the 25% of server B that now expired) -> cache 120sec
12.5% will get server A (from the 25% of server B that now expired) -> cache 240 sec

Fourth 120 seconds
25% will have server A cached -> cache for another 120 secs
12.5% will get server A (from the 25% of b that now expired) -> cache 240 secs
12.5% will get server B (from the 25% of b that now expired) -> cache 120 secs
12.5% will get server A (from the 25% of a that now expired) -> cache 240 secs
12.5% will get server B (from the 25% of a that now expired) -> cache 120 secs
6.25% will get server A (from the 12.5% of b that now expired) -> cache 240 secs
6.25% will get server B (from the 12.5% of b that now expired) -> cache 120 secs
12.5% will have server A cached -> cache another 120 secs
... I think I lost something at this point, but I think you get the idea...

আপনি দেখতে পাচ্ছেন যে এটি পূর্বাভাস দেওয়া বেশ জটিল হয়ে পড়েছে এবং এটি অবশ্যই বাস্তবে এর মতো কাজ করবে না। তবে এটি অবশ্যই বিতরণে প্রভাব ফেলবে!

আমি জানি যে ভারী রাউন্ড রবিন বিদ্যমান এবং এটি কেবলমাত্র রুট সার্ভার দ্বারা নিয়ন্ত্রিত। সাড়া দেওয়ার সময় এটি কেবল ডিএনএস রেকর্ডগুলির মধ্যে চক্র করে এবং ভারের সাথে সামঞ্জস্যপূর্ণ একটি সেট সম্ভাবনার সাথে ডিএনএস রেকর্ডগুলি দেয়। আমার ডিএনএস সার্ভার এটিকে সমর্থন করে না, এবং আমার প্রয়োজনীয়তাগুলিও এটি যথাযথ নয়। যদি এটি পুরোপুরি ওজন না করে তবে এটি ঠিক আছে, তবে এটি সঠিক দিকে যেতে হবে।

আমি মনে করি টিটিএল ক্ষেত্রটি ব্যবহার করা আরও মার্জিত এবং সহজ সমাধান হতে পারে - এবং এটির জন্য একটি ডিএনএস সার্ভারের প্রয়োজন হয় না যা এই গতিশীলভাবে নিয়ন্ত্রণ করে, যা সংস্থানগুলি সংরক্ষণ করে - যা আমার মতে হার্ডওয়্যার লোড ব্যালান্সার্স বনাম ডিএনএস লোড ব্যালেন্সিংয়ের পুরো পয়েন্ট।

আমার এখন প্রশ্ন: ডিএনএস রেকর্ডের টিটিএল বৈশিষ্ট্যটি ব্যবহার করে থাম্ব থেকে ওজন গোলাকার রবিন বিতরণের কোনও সেরা অনুশীলন / পদ্ধতি / নিয়ম রয়েছে?

সম্পাদনা:

সিস্টেমটি একটি ফরোয়ার্ড প্রক্সি সার্ভার সিস্টেম। ব্যান্ডউইথের পরিমাণ (অনুরোধ নয়) ইথারনেটের একটি একক সার্ভার যা পরিচালনা করতে পারে তার চেয়ে বেশি। সুতরাং আমার একটি ভারসাম্যপূর্ণ সমাধান দরকার যা বেশ কয়েকটি সার্ভারে ব্যান্ডউইদথ বিতরণ করে। ডিএনএস ব্যবহারের বিকল্প আছে কি? অবশ্যই আমি ফাইবার চ্যানেল ইত্যাদির সাহায্যে লোড ব্যালেন্সার ব্যবহার করতে পারি, তবে ব্যয়গুলি হাস্যকর এবং এটি কেবল বাধা-প্রস্থের প্রস্থকে বাড়িয়ে দেয় এবং এটি দূর করে না। আমি কেবল ভাবতে পারি যে কোনও কাস্টকাস্ট (এটি কোনও কাস্টকাস্ট বা মাল্টিকাস্ট?) আইপি অ্যাড্রেসগুলি তবে আমার কাছে এই জাতীয় সিস্টেম সেট আপ করার উপায় নেই।


উত্তরদাতাদের বিস্তৃত বর্ণালী দ্বারা আরএফসি 2181 § 5.2 এর একটি অনুলিপি নিয়ে মাথায় আঘাতের জন্য প্রস্তুত থাকুন।
জেডিবিপি

আমি বুঝতে পারি যে আরআর লোড ব্যালেন্সিংয়ের জন্য ডিজাইন করা হয়নি। তবে এটি দুর্দান্ত কাজ করে ... সুতরাং ... আমি কোনও বিকল্প সম্পর্কেও সচেতন নই। অবশ্যই আছে তবে সেগুলি আমার পক্ষে স্থাপন করা সম্ভব নয় বা অনেক বেশি ব্যয়বহুল বা খুব জটিল
দ্য শুরিকান

@ জেডিবিপি হ্যাঁ, ভাল স্পট - একটি আরআরসেটে থাকা টিটিএল একই হওয়া উচিত।
Alnitak

উত্তর:


2

প্রথমত, আমি @ অ্যালনিটকের সাথে সম্পূর্ণ একমত যে ডিএনএস এই ধরণের জিনিসটির জন্য ডিজাইন করা হয়নি, এবং সেরা অনুশীলন হ'ল ডিএনএসকে দরিদ্র লোকের ভার ভারসাম্য হিসাবে ব্যবহার না করা।

আমার এখন প্রশ্ন ... ডিএনএস রেকর্ডের টিটিএল বৈশিষ্ট্য ব্যবহার করে থাম্ব থেকে ওজন গোলাকার রবিন বিতরণের কোনও সেরা অনুশীলন / মেথো / নিয়ম রয়েছে?

প্রশ্নের ভিত্তিতে উত্তর দেওয়ার জন্য, ডিএনএস ব্যবহার করে বেসিক ওজনযুক্ত রাউন্ড রবিন সঞ্চালনের জন্য ব্যবহৃত পদ্ধতিটি হল:

  • অনুমোদনমূলক ডিএনএস প্রতিক্রিয়াগুলিতে রেকর্ডগুলির আপেক্ষিক ঘটনাটি সামঞ্জস্য করুন । উদাহরণস্বরূপ Server A, যদি ট্রাফিকের 1/3 থাকে এবং Server B2/3 থাকতে হয়, তবে ডিএনএস প্রক্সিগুলিতে প্রামাণিক ডিএনএস প্রতিক্রিয়াগুলির 1/3 কেবলমাত্র A আইপি এবং 2/3 প্রতিক্রিয়া কেবলমাত্র আইপি ধারণ করতে পারে B। (যদি 2 বা ততোধিক সার্ভার একই 'ওজন' ভাগ করে নেয়, তবে সেগুলি একটি প্রতিক্রিয়াতে বান্ডিল করা যেতে পারে))
  • একটি কম ডিএনএস টিটিএল রাখুন যাতে ভারসাম্যহীন লোড তুলনামূলকভাবে দ্রুত শেষ হয়ে যায়। যেহেতু ডাউনস্ট্রিম ডিএনএস প্রক্সিগুলির পিছনে খুব অবিচ্ছিন্ন ক্লায়েন্ট রয়েছে, আপনি ঘন ঘন রেকর্ডগুলি পুনরায় সাফ করতে চান।

অ্যামাজনের রুট 53 ডিএনএস পরিষেবা এই পদ্ধতিটি ব্যবহার করে

ব্যান্ডউইথের পরিমাণ (অনুরোধ নয়) ইথারনেটের একটি একক সার্ভার যা পরিচালনা করতে পারে তার চেয়ে বেশি। সুতরাং আমার একটি ভারসাম্যপূর্ণ সমাধান দরকার যা বেশ কয়েকটি সার্ভারে ব্যান্ডউইদথ বিতরণ করে।

ঠিক। সুতরাং আমি যেমন এটি বুঝতে পারি, আপনার কাছে কিছু ধরণের 'সস্তার' ডাউনলোড / ভিডিও বিতরণ / বড়-ফাইল ডাউনলোড পরিষেবা রয়েছে, যেখানে মোট পরিষেবা বিটরেট 1 জিবিট ছাড়িয়েছে।

আপনার পরিষেবা এবং আপনার সার্ভারের বিন্যাসের সঠিক নির্দিষ্টকরণগুলি না জেনে সুনির্দিষ্ট হওয়া শক্ত। তবে এই ক্ষেত্রে একটি সাধারণ সমাধান হ'ল:

  • ডিএনএস রাউন্ড রবিন দুটি বা ততোধিক টিসিপি / আইপি বা এইচটিটিপি স্তর লোড ব্যালান্সারের উদাহরণগুলিতে।
  • প্রতিটি লোড ব্যালেন্সার দৃষ্টান্ত অত্যন্ত উপলব্ধ (2 টি অভিন্ন লোড ব্যালান্সার একটি আইপি ঠিকানা সর্বদা চালু রাখতে সহযোগিতা করে)।
  • প্রতিটি লোড ব্যালেন্সার উদাহরণ ব্যাকএন্ড সার্ভারগুলিতে ভারী রাউন্ড রবিন বা ওয়েট এলোমেলো সংযোগ হ্যান্ডলিং ব্যবহার করে using

এই ধরণের সেটআপটি ওপেন-সোর্স সফ্টওয়্যার, বা অনেক বিক্রেতাদের উদ্দেশ্য-নির্মিত সরঞ্জাম দিয়ে নির্মিত যেতে পারে। এখানে লোড ব্যালেন্সিং ট্যাগ একটি দুর্দান্ত সূচনা পয়েন্ট বা আপনি সিসাদমিনদের ভাড়া নিতে পারেন যারা আপনার পরামর্শের আগে এই কাজটি করেছেন ...


4

আমার এখন প্রশ্ন ... ডিএনএস রেকর্ডের টিটিএল বৈশিষ্ট্য ব্যবহার করে থাম্ব থেকে ওজন গোলাকার রবিন বিতরণের কোনও সেরা অনুশীলন / মেথো / নিয়ম রয়েছে?

হ্যাঁ, সেরা অনুশীলন না হয় না !!

অনুগ্রহ করে আমার পরে কথা বলো

  • ডিএনএস লোড ব্যালেন্সিংয়ের জন্য নয়
  • ডিএনএস স্থিতিস্থাপকতা সরবরাহ করে না
  • ডিএনএস ব্যর্থ ওভার সুবিধা সরবরাহ করে না

ডিএনএস একটি ম্যাপিং জন্য নাম থেকে এক বা একাধিক IP ঠিকানা । পরবর্তী যে কোনও ভারসাম্যতা আপনি পান ভাগ্যের মাধ্যমে, ডিজাইনের মাধ্যমে নয়।


1
more IP addresses... তা কীভাবে ভারসাম্যহীন নয়? তদ্ব্যতীত এই কারণেই আমি আমার প্রশ্নকে একটি উপযুক্ত ভূমিকা দিয়েছি। যদি আমি এটি না করে থাকি তবে আমি আপনার পোস্টকে একটি কমেন্ট হিসাবে প্রশংসিত করব তবে এর মতো আমাকে এটিকে ডাউনওয়েট করতে হবে। ম্যাবি এটি নকশা করা যায় না তবে এটি দুর্দান্ত কাজ করে এবং সমস্ত বিকল্পের সাথে তুলনা করে দুর্দান্ত সুবিধা সরবরাহ করে। এবং এটি হ'ল গুগল, ফেসবুক, অ্যামাজন ইত্যাদির মতো ওয়েবসাইটগুলিও এটি মনে করে এবং এটি ব্যবহার করে। তবে মন্তব্য মন্তব্য। আমি আমার প্রশ্নটি পরিস্থিতি সম্পর্কে আরও তথ্যের সাথে আপডেট করেছি এবং বিনীতভাবে আপনাকে একটি বিকল্প ব্যালেন্সিং সমাধান @ অ্যালনিটাকের পরামর্শ দিতে বলি
দ্য শুরিকান

2
আপনার নিয়ন্ত্রণের বাইরে অনেকগুলি ক্লায়েন্ট পক্ষের সমস্যাগুলি দেখা দেওয়ার কারণে এই ফ্যাশনে ভারসাম্য পূর্ণতার কোনও গ্যারান্টি সরবরাহ করে না। এটি দ্বিগুণ তাই যখন আপনি 'ওজন' করতে চান কারণ মৌলিকভাবে আপনি প্রথম স্থানে রাউন্ড রবিনের গ্যারান্টি দিতে পারেন না। ডিএনএস কেবলমাত্র একটি পরামর্শদাতা পরিষেবা, ক্লায়েন্টদের চিঠিটি অনুসরণ করার দরকার নেই। আমি মনে করি এটি সেই বিন্দু যা @ অ্যালনিটাক তৈরি করতে চেয়েছিলেন
ম্যাথু

আমি পুরোপুরি বুঝতে পারি। আমার প্রশ্ন থেকে উদ্ধৃতি: আমি শিখেছি যে প্রতিটি আইএসপি / ডিভাইস এই জাতীয় প্রতিক্রিয়া একইভাবে আচরণ করে না। উদাহরণস্বরূপ কিছু ডিএনএস সার্ভার ঠিকানাগুলি এলোমেলোভাবে ঘোরান বা সর্বদা তাদের মধ্য দিয়ে চক্কর দিন। কিছু কেবল প্রথম প্রবেশের প্রচার করে, অন্যরা আইপি ঠিকানাটি দেখে কোনটি সেরা (অঞ্চলগতভাবে নিকটে) তা নির্ধারণ করার চেষ্টা করে। তবে যদি ইউজারবেস যথেষ্ট পরিমাণে বড় হয় (একাধিক আইএসপি ইত্যাদিতে ছড়িয়ে পড়ে) তবে এটি বেশ ভালভাবে ভারসাম্য বজায় রাখে। সর্বোচ্চ থেকে সর্বনিম্ন লোড হওয়া সার্ভারের তাত্পর্যগুলি খুব কমই 15% ছাড়িয়ে যায়।
শুরিকান

@ জোহফফগার্টনার আইসি স্তর - যেমন বিজিপি রাউটিং এবং স্তর 4 লোড ব্যালান্সারগুলিতে স্থিতিস্থাপকতা, পুনরুক্তি এবং ভারসাম্য সরবরাহের একমাত্র বোকা উপায়। আমি এই উত্তরে এটি বলিনি কারণ আমি ইতিমধ্যে এটি অন্যান্য জবাব কয়েক ডজন বার বলেছি।
Alnitak

অতিরিক্ত সমাধান কি আপনার সমাধানের জন্য গুরুত্বপূর্ণ? আইই যদি কোনও সার্ভার নেমে যায় তবে এটি সঠিকভাবে পরিচালনা করা হবে? কারণ এটি যদি আপনার আরআর-ডিএনএস সহ কৃমির এক খুলতে পারে।
ম্যাথু ইফে

2

পাওয়ারডিএনএস- এ একবার দেখুন । এটি আপনাকে একটি কাস্টম পাইপ ব্যাকএন্ড তৈরি করতে দেয়। অ্যালগরিদম :: কনসিস্ট্যান্টহ্যাশ :: কেতামা মডিউলটি ব্যবহার করতে পার্লে লেখা লোড-ব্যালেন্সার ডিএনএস ব্যাকএন্ডের একটি উদাহরণ আমি সংশোধন করেছি । এটি আমাকে এ জাতীয় পছন্দসই ওজন সেট করতে দেয়:

my $ketamahe = Algorithm::ConsistentHash::Ketama->new();

# Configure servers and weights
$ketamahe->add_bucket("192.168.1.2", 50);
$ketamahe->add_bucket("192.168.1.25", 50);

এবং অন্য একটি:

# multi-colo hash
my $ketamamc = Algorithm::ConsistentHash::Ketama->new();

# Configure servers and weights
$ketamamc->add_bucket("192.168.1.2", 33);
$ketamamc->add_bucket("192.168.1.25", 33);
$ketamamc->add_bucket("192.168.2.2", 17);
$ketamamc->add_bucket("192.168.2.2", 17);

আমি আমার পছন্দসই শীর্ষ স্তরের ডোমেন থেকে একটি সাবডোম্যানকে জিএসএলবি, বা গ্লোবাল সার্ভার লোড ব্যালেন্সিং বলি একটি নাম যুক্ত করেছি। সেখান থেকে, আমি এই কাস্টম ডিএনএস সার্ভারটি শুরু করছি এবং আমার পছন্দসই ওজন অনুসারে একটি রেকর্ড প্রেরণ করব।

চ্যাম্পের মতো কাজ করে। আপনি সার্ভার যুক্ত করার সময় বা ওজন সামঞ্জস্য করার সাথে সাথে কেটামার হ্যাশটিতে বিদ্যমান কনফিগারেশনে ন্যূনতম ব্যাঘাতের দুর্দান্ত সম্পত্তি রয়েছে।

আমি জন-পিট মেনস দ্বারা বিকল্প ডিএনএস সার্ভারগুলি পড়ার পরামর্শ দিচ্ছি। উদাহরণস্বরূপ কোডের পাশাপাশি সেখানে তার অনেক ভাল ধারণা রয়েছে।

আমি টিটিএল মড্যুলেশন পরিত্যাগ করারও পরামর্শ দিই। আপনি ইতিমধ্যে বেশ দূরে চলে যাচ্ছেন এবং উপরে আরও একটি ক্লেজ যুক্ত করা সমস্যা সমাধান এবং ডকুমেন্টেশনকে অত্যন্ত কঠিন করে তুলবে।


1

আপনি ওজনযুক্ত বৃত্তাকার রবিন করতে পাওয়ারডিএনএস ব্যবহার করতে পারেন, যদিও এই জাতীয় ভারসাম্যহীন ফ্যাশনে লোড বিতরণ করা (100: 1?) খুব আকর্ষণীয় হতে পারে, কমপক্ষে আমার দ্রবণটিতে আমি ব্যবহৃত অ্যালগরিদমগুলির সাথে, যেখানে প্রতিটি আরআর এন্ট্রি এর সাথে যুক্ত থাকে , 1-100 এর মধ্যে এবং একটি র্যান্ডম মান রেকর্ডগুলি অন্তর্ভুক্ত বা বাদ দিতে ব্যবহৃত হয়।

আরটি ডিএনএসের ওজনযুক্ত করার জন্য পাওয়ারডএনএস-এ মাইএসকিউএল ব্যাকএন্ড ব্যবহার করার জন্য আমি এখানে একটি নিবন্ধ লিখেছি: http://www.mccartney.ie/wordpress/2008/08/wrr-dns-with-powerdns/

রিপিয়ানাআর এর কিছু রুবি ভিত্তিক উদাহরণ রয়েছে (পাওয়ারডএনএস পাইপ ব্যাকএন্ড ব্যবহার করে): http://code.google.com/p/ruby-pdns/wiki/RecipeWeightRoundRobin


1

এই ধরণের সেটআপটি মোকাবেলা করার জন্য আপনাকে একটি আসল লোড ব্যালেন্সিং সমাধানটি দেখতে হবে। লিনাক্স ভার্চুয়াল সার্ভার এবং HAProxy পড়ুন । সার্ভারগুলির অতিরিক্ত সুবিধাটি পুল থেকে স্বয়ংক্রিয়ভাবে সরিয়ে ফেলা হবে যদি সেগুলি ব্যর্থ হয় এবং এর প্রভাবগুলি আরও সহজে বোঝা যায়। ওজন হ'ল টুইঙ্ক করার একটি সেটিংস।


এর সাথে সমস্যাটি হ'ল আমার একটি ব্যান্ডউইথ সমস্যা আছে এবং একক সার্ভার হ্যান্ডেল করতে পারে এমন বহু অনুরোধের সমস্যা নয়। সুতরাং একটি সমাধান যেখানে আমাকে একটি নোডের মাধ্যমে সমস্ত ট্রাফিক পরিচালনা করতে হবে তা আমার পক্ষে সমাধান নয়। আমি ডিএনএস সমাধানের পাশে যে জিনিসটি ভাবতে পারি তা হ'ল একটি মাল্টিকাস্ট আইপি ঠিকানা। আমি আমার প্রশ্নটি সেই অনুযায়ী সম্পাদনা করেছি।
শুরিকান

দুঃখিত আমার অর্থ কোনও কাস্টকাস্ট, মাল্টিকাস্ট নয় (আমি মনে করি)
দ্য শুরিকান

1
ব্যান্ডউইথ যদি সমস্যা হয় তবে আপনার সুইচগুলিতে আপনার এই + এলএসিপি সন্ধান করা উচিত। তারপরে আপনি লোডবালেন্সিং ডিভাইসগুলিতে একাধিক 10 জি কার্ড বন্ড করতে পারেন।
মার্ক হ্যারিগান

আমি এটি উত্সাহিত কারণ এটি আকর্ষণীয় ... কিন্তু hten আমার বাধা হিসাবে আমার সুইচ আছে!
দ্য শুরিকান
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.