“ anycast” คืออะไรและมีประโยชน์อย่างไร?


85

ผมไม่เคยได้ยินของ anycast จนกระทั่งไม่กี่วินาทีที่ผ่านมาเมื่อผมอ่าน " อะไรบางเทคนิคเซิร์ฟเวอร์ / เครือข่ายเย็นหรือมีประโยชน์หรือไม่ "

บทความวิกิพีเดีย " Anycast " เป็นบทความที่ค่อนข้างเป็นทางการและไม่ได้ทำให้นึกถึงภาพว่าจะใช้อย่างไร

บางคนสามารถอธิบายได้ในประโยคที่ไม่เป็นทางการว่า "anycast" คืออะไรคุณกำหนดค่ามันอย่างไร (ในความหมายทั่วไป) และประโยชน์ของมันคืออะไร (มันทำให้ง่ายขึ้น)?

คำตอบ:


88

Anycast เป็นเทคนิคการเชื่อมต่อเครือข่ายที่มีคำนำหน้า IP เดียวกันจากโฆษณาหลายแห่ง จากนั้นเครือข่ายจะตัดสินใจว่าจะส่งคำขอของผู้ใช้ไปยังสถานที่ใดโดยพิจารณาจากต้นทุนโปรโตคอลการกำหนดเส้นทางและอาจเป็น 'สุขภาพ' ของเซิร์ฟเวอร์โฆษณา

มีประโยชน์หลายอย่างสำหรับการออกอากาศ ขั้นแรกในสถานะคงที่ผู้ใช้บริการ anycast (DNS เป็นตัวอย่างที่ยอดเยี่ยม) จะเชื่อมต่อกับเซิร์ฟเวอร์ DNS ที่ 'ใกล้เคียงที่สุด' (จากมุมมองโปรโตคอลการกำหนดเส้นทาง) เสมอ สิ่งนี้จะช่วยลดเวลาในการตอบสนองรวมถึงการจัดระดับการโหลดบาลานซ์ (สมมติว่าผู้บริโภคของคุณมีการกระจายทั่วเครือข่ายของคุณอย่างสม่ำเสมอ)

ข้อดีอีกอย่างคือความสะดวกในการจัดการการกำหนดค่า แทนที่จะต้องกำหนดค่าเซิร์ฟเวอร์ DNS ที่แตกต่างกันขึ้นอยู่กับตำแหน่งที่เซิร์ฟเวอร์ / เวิร์กสเตชันถูกปรับใช้ (เอเชียอเมริกายุโรป) คุณมีที่อยู่ IP เดียวที่ได้รับการกำหนดค่าในทุกตำแหน่ง

ขึ้นอยู่กับวิธีการใช้งานการออกอากาศใด ๆ ก็สามารถให้ระดับความพร้อมใช้งานสูง หากการโฆษณาเส้นทาง anycast นั้นมีเงื่อนไขในการตรวจสอบสุขภาพบางประเภท (เช่นแบบสอบถาม DNS สำหรับโดเมนที่รู้จักกันดีในตัวอย่างนี้) จากนั้นทันทีที่เซิร์ฟเวอร์ล้มเหลวเส้นทางสามารถลบออกได้ เมื่อเครือข่ายคืนค่าคำขอของผู้ใช้จะถูกส่งต่อไปยังอินสแตนซ์ที่ใกล้เคียงที่สุดของ DNS โดยไม่จำเป็นต้องมีการแทรกแซงหรือการกำหนดค่าใหม่ด้วยตนเอง

ข้อได้เปรียบสุดท้ายคือการปรับขนาดแนวนอน หากคุณพบว่ามีเซิร์ฟเวอร์หนึ่งตัวกำลังโหลดมากเกินไปให้ปรับใช้อีกเซิร์ฟเวอร์หนึ่งในตำแหน่งที่จะอนุญาตให้เซิร์ฟเวอร์ใช้สัดส่วนของคำขอเซิร์ฟเวอร์ที่โอเวอร์โหลด อีกครั้งเนื่องจากไม่จำเป็นต้องมีการกำหนดค่าไคลเอนต์จึงสามารถทำได้อย่างรวดเร็ว


anycast ใช้แบนด์วิดท์มากกว่าเมื่อเทียบกับ unicast หรือไม่ ลองนึกภาพว่าเรามีเซิร์ฟเวอร์หนึ่งพันเครื่องที่ใช้ที่อยู่ IP เดียวกันทั้งหมดร่วมกันเมื่อเราส่งแพ็คเก็ตไปยังที่อยู่นั้นจะไม่ใช้แบนด์วิดท์มากกว่าเมื่อเทียบกับการใช้งานแบบ unicasting หรือไม่
Pacerier

5
ไม่ - ปริมาณการใช้งานที่ส่งไปยังที่อยู่ใด ๆ ที่ออกอากาศจะมาถึงที่เดียวที่อยู่โฆษณาที่อยู่ คุณอาจกำลังคิดถึงmulticastซึ่งแพ็กเก็ตที่ส่งไปยังที่อยู่กลุ่ม multicast นั้นจะถูกส่งไปยังโฮสต์ทั้งหมดที่สนใจในกลุ่มนั้น
Murali Suriar

ปัญหาของ " แทนที่จะต้องกำหนดค่าเซิร์ฟเวอร์ DNS ที่แตกต่างกันขึ้นอยู่กับตำแหน่งของเซิร์ฟเวอร์ / เวิร์กสเตชันที่ใช้งาน " แก้ไขโดยชื่อโดเมนหรือไม่ ดังนั้นจุดใดของการออกอากาศเมื่อทำซ้ำชื่อโดเมนที่กำลังทำอยู่
Pacerier

1
@Pacerier - คุณไม่สามารถใช้ชื่อโดเมนเพื่อค้นหาเซิร์ฟเวอร์ DNS ของคุณได้นั่นคือการพึ่งพาแบบวนรอบ ตัวอย่าง: กำหนดค่า dns.foo.com เป็นเซิร์ฟเวอร์ DNS ของคุณ ที่อยู่ IP ใดที่ฉันส่งคำขอไปยัง dns.foo.com ถึง ฉันรู้ว่าฉันจะค้นหามันใน DNS ฯลฯ
Murali Suriar

32

หนึ่งในสิ่งที่ทำให้ฉันสับสนในการทำความเข้าใจ "anycast" ก็คือว่าในขณะที่มันเป็นคำระดับสูงในการใช้งานจริงมันมักจะเดือดลงไปสองตัวอย่าง:

  1. เราเตอร์ที่ใช้BGPเพื่อโฆษณาบล็อก IP เดียวกันผ่านทางASหลายเส้นทางซึ่งเป็นแนวทางคร่าวๆในการนำผู้ใช้ไปยังไซต์ "ใกล้" ในขณะเดียวกันก็ให้ความล้มเหลวที่เกือบจะโปร่งใสแก่เว็บไซต์อื่น ๆ โดยเพียงแค่ถอนเส้นทางออกจากไซต์ที่มีปัญหา สิ่งนี้มีประโยชน์สำหรับเกือบโปรโตคอลใด ๆ แต่เห็นได้ชัดว่ามันทำให้เกิดความกังวลเกี่ยวกับการประสานข้อมูลแบ็กเอนด์จำนวนมาก

  2. โฆษณา IP บริการเดียวกันจากหลายจุดภายในเครือข่ายของคุณ (ผ่านการกำหนดเส้นทางแบบคงที่ , OSPF , EIGRPหรืออะไรก็ตาม) หากเส้นทางมีน้ำหนักแตกต่างกันมันจะทำหน้าที่เป็นกลไกล้มเหลว หากเส้นทางมีน้ำหนักเท่ากันสามารถใช้ประโยชน์จากความสามารถในการทำโหลดบาลานซ์ต่อแพ็คเก็ตหรือต่อการไหลของเราเตอร์ชื่อแบรนด์ส่วนใหญ่ คุณต้องระวังว่าโพรโทคอลเลเยอร์ของแอปพลิเคชันนั้นสะดวกสบายนี่คือสาเหตุที่คุณมักจะได้ยินว่ามันใช้กับDNSโดยที่คำขอจะมีเพียงหนึ่งแพ็คเก็ตและทุกสิ่งนั้นไร้สัญชาติ โดยส่วนตัวแล้วฉันคิดว่านี่เป็นการแฮ็กข้อมูลเกี่ยวกับเลเยอร์แอปพลิเคชันที่เล็ดลอดเข้ามาในเลเยอร์เครือข่ายเมื่อการรวมกันของ DNS และตัวโหลดบาลานซ์ที่เหมาะสมนั้นเกือบจะเป็นทางออกที่ดีกว่าเสมอ


+1 สำหรับการกล่าวถึงหนึ่งแพ็คเก็ตและการไร้สัญชาติ
nponeccop

3
ปัญหาเกี่ยวกับ DNS คือสามารถใช้ google หรือตัวแก้ไขระยะไกลอื่น ๆ และเซิร์ฟเวอร์ที่ใกล้ที่สุดเพื่อแก้ไขปัญหาอาจแตกต่างจากผู้ใช้ ของหลักสูตรนี้ใช้ได้เฉพาะการออกอากาศใด ๆ ที่ไม่ใช่การใช้ DNS (เช่นการถ่ายทอดสด TCP หรือการใช้อื่น ๆ )
akostadinov

@cagenut, HTTP จะแบ่งในกรณีของการโหลดบาลานซ์ต่อแพ็คเก็ต (เนื่องจากน้ำหนักที่เท่ากันหรืออย่างอื่น) หรือไม่
Pacerier

16

ส่วนใหญ่ใช้สำหรับบริการที่ใช้ UDP เช่น DNS โดยพื้นฐานแล้วคุณจะประกาศเส้นทางเดียวกันจากศูนย์ข้อมูลหลายแห่งทั่วโลก วิธีนี้ลูกค้าของคุณจะถูกส่งไปยังดาต้าเซ็นเตอร์ "ดีที่สุด" และ "ใกล้เคียงที่สุด" ตามเส้นทางของ BGP ฉันใส่คำพูดที่ "ดีที่สุด" และ "ใกล้เคียงที่สุด" เพราะผู้ให้บริการเครือข่ายสามารถเล่นเกมและรับส่งข้อมูลเส้นทางจากเครือข่ายบางเครือข่ายที่แตกต่างกัน โดยทั่วไปสิ่งที่ได้ผลดีที่สุดสำหรับการออกอากาศใด ๆ แต่ก็ไม่รับประกัน

ตัวอย่างนี้จะแสดงรายการเซิร์ฟเวอร์ DNS ของคุณเป็น 1.2.3.4 และ 1.2.3.5 เราเตอร์ของคุณจะประกาศเส้นทางสำหรับ 1.2.3 / 24 จากหลายศูนย์ข้อมูล หากคุณอยู่ในญี่ปุ่นและมีศูนย์ข้อมูลอยู่ที่นั่นโอกาสที่คุณจะได้รับ หากคุณอยู่ในสหรัฐอเมริกาคุณจะถูกส่งไปยังศูนย์ข้อมูลสหรัฐฯของคุณ อีกครั้งมันขึ้นอยู่กับการกำหนดเส้นทาง BGP และไม่ใช่การกำหนดเส้นทางตามภูมิศาสตร์จริง แต่โดยปกติแล้วสิ่งต่างๆจะพังทลายลง


1
ความขัดแย้งนั้นหลีกเลี่ยงได้อย่างไร?
Pacerier

ฉันไม่แน่ใจว่าสิ่งที่คุณหมายถึงความขัดแย้ง BGP ไม่อนุญาตให้มีข้อขัดแย้ง มันเลือกเส้นทาง ปัญหาหนึ่ง (มักละเว้น) กับ anycast นั้นถูกกฎหมาย ในทางเทคนิคการออกอากาศใด ๆ นั้นถูกคุ้มครองโดยสิทธิบัตรที่แตกต่างกัน ไม่มีใครบังคับใช้สิ่งนี้ แต่ประเภทการรับส่งข้อมูลที่แตกต่างกัน (CDN, DNS, TCP และ UDP) ได้รับการคุ้มครองโดยสิทธิบัตรที่แตกต่างกัน ย่อหน้านี้ควรได้รับการคุ้มครองด้วย IANAL
diq

ดังนั้นคุณหมายความว่าบริการ ip2location เหล่านั้นไม่ถูกต้องหรือไม่ เนื่องจากไม่มีตำแหน่งอย่างเป็นทางการสำหรับ IP และอาจเป็นที่ใดก็ได้ขึ้นอยู่กับคอมพิวเตอร์ BGP ที่คุณพูดด้วย?
Pacerier

9

ตามการตอบกลับดั้งเดิมของฉันฉันเพิ่งโพสต์บทความอีกสองบทความในบล็อกของฉันที่ชื่อ: Anycast DNS - ส่วนที่ 3, การใช้ RIP และ Anycast DNS - ส่วนที่ 3, การใช้ RIP (ต่อ) รายละเอียดเพิ่มเติมจะอยู่หลัง แต่ที่ www.netlinxinc.com/netlinx-blog.html คุณจะพบสูตรที่แท้จริงเกี่ยวกับวิธีการกำหนดค่าเราเตอร์ของซิสโก้และซอฟต์แวร์การกำหนดเส้นทางตามโอเพ่นซอร์ส Quagga สำหรับ Anycast DNS โดยใช้ RIP

ฉันกำลังทำงานเกี่ยวกับการเขียนบทความที่สี่ในซีรีส์ วิธีนี้จะให้ผู้รับเกี่ยวกับวิธีการปรับใช้ Anycast DNS โดยใช้ OSPF สุดท้ายในชุดนี้ฉันจะแสดงสูตรอาหารสำหรับการปรับใช้ Anycast DNS โดยใช้ BGP

Anycast DNS - ส่วนที่ 1 ภาพรวม

Anycast DNS - ส่วนที่ 2 โดยใช้เส้นทางแบบคงที่

Anycast DNS - ส่วนที่ 3 ใช้ RIP

Anycast DNS - ส่วนที่ 3 ใช้ RIP (ต่อ)


ดังนั้นมันเป็นความจริงที่ว่าเนื่องจากการออกอากาศใด ๆ เป็นไปได้ว่ามีใครบางคนบนอินเทอร์เน็ตทั่วโลกอาจมี IP สาธารณะเดียวกันกับที่ ISP ของคุณให้คุณ
Pacerier

เป็นความจริงหรือเปล่าที่มีเฉพาะ ISP เท่านั้นที่สามารถใช้งานเซิร์ฟเวอร์คาสต์ได้
Pacerier

ในความเป็นจริงคุณจะต้องมี ISP หลายตัวเพื่อทำการออกอากาศ
Pacerier

4

ขณะนี้ได้รับ DNS ส่วนใหญ่แล้ว ...

มันทำให้บริการของคุณมีความยืดหยุ่นมากขึ้นและมีการเข้าถึงเครือข่าย / เวลาในการตอบสนอง / ความเร็วที่ดีขึ้นด้วยการอนุญาตให้คุณตั้งค่าบริการเดียวกันในหลาย ๆ แห่งทั่วโลกโดยใช้ที่อยู่เดียวกัน เมื่อมีคนสอบถามที่อยู่นั้นพวกเขาจะได้รับเส้นทางที่ใกล้ที่สุด / ดีที่สุด

จากมุมมองเซิร์ฟเวอร์:

หากยูนิคาสต์กำลังจะไปคนเดียวและคุณจะไปหลายคนแบบมัลติคาสต์และคุณกำลังออกอากาศทุกคนดังนั้นการออกอากาศใด ๆ ก็เป็นโรคจิตเภทและมีบุคลิกหลายบุคลิกที่เหมาะสมกับแต่ละบุคคลมากที่สุด อืมมม ไม่ใช่การเปรียบเทียบที่ดีที่สุด


3

การใช้งาน anycast ที่น่าสนใจคือ DNS คุณสามารถวางเซิร์ฟเวอร์ DNS ที่แตกต่างกัน 5 เครื่องในสถานที่ตั้งทางกายภาพและเครือข่ายต่าง ๆ แต่ใช้ที่อยู่เดียว (หรือบางครั้งทั้งที่อยู่หลักและที่อยู่รอง) ขึ้นอยู่กับแหล่งที่มาพวกมันจะถูกส่งไปยังโหนดที่อยู่ใกล้ที่สุด วิธีนี้จะสร้างความสมดุลของทราฟฟิกรวมถึงให้ความซ้ำซ้อนหากเซิร์ฟเวอร์ DNS ตาย


แต่ระบบ DNS ไม่ได้ให้บริการซ้ำซ้อนหรือไม่
Pacerier

2

ตามที่เพื่อนร่วมงานคนหนึ่งของฉันบอกว่ามันมีประโยชน์ในฐานะที่เป็นเทคนิคการลดการโจมตี DoS เนื่องจากผู้คนสามารถโจมตีที่อยู่ IP anycast "ใกล้ที่สุด" ดังนั้นหากมีซอมบี้จำนวนมากเข้ามาในสหรัฐอเมริกาไซต์ยูโรของคุณจะเป็นอย่างไร ส่วนใหญ่ไม่ได้รับผลกระทบเนื่องจากไม่สามารถส่งแพ็คเก็ตได้

นอกจากนี้ยังอาจเป็นไปได้ที่จะใช้เป็นวิธีการ (ค่อนข้างไร้เดียงสา) กรองแพ็คเก็ตปลอมหากพวกเขาเห็นได้ชัดว่ามาจากที่ไหนสักแห่งที่ไม่น่าจะโฆษณาใน BGP เป็นเส้นทางที่ถูกต้อง (เช่นแพ็คเก็ตเข้ามาในยุโรป บล็อก).


1
แม้ในกรณีง่าย ๆ ที่จะหยุดคนที่เป็นเส้นทาง AS ไปที่เซิร์ฟเวอร์นั้น --- เช่นคุณอาจหยุดคนที่มาถึงคุณจาก Comcast แต่ไม่ใช่ AT&T หากคุณมีการตั้งค่า "ถูกต้อง" สำหรับ failover (ติดตามบริการ L7 หยุดการประกาศเมื่อมันล้มเหลว) จากนั้นจริง ๆ แล้วมันเป็นเรื่องยากมากที่จะจัดการกับการโจมตี DoS เพราะมันจะทำให้เซิร์ฟเวอร์หนึ่งเซิร์ฟเวอร์จากนั้นย้ายไปยังเซิร์ฟเวอร์ถัดไป ประกาศถูกถอด ...
James Cape

@ JamesCape น่าสนใจ แต่เมื่อพวกเขาย้ายไปยังที่ถัดไป dos ล้มเหลวเนื่องจากผู้คนไม่สามารถเชื่อมต่อได้ใช่ไหม
Pacerier

@Pacerier ในกรณีที่ง่ายที่สุดที่คุณเพิ่งโฆษณาไอพีเดียวกันทุกหนทุกแห่งโดยไม่ต้องใช้สติปัญญาใช่ อย่างไรก็ตามหากคุณพยายามทำให้โฆษณาฉลาดและถอนโฆษณาในสหรัฐอเมริกาเพราะบริการไม่ตอบสนองโฆษณาที่เหลืออยู่จะเป็นโฆษณาในยุโรปเท่านั้น ดังนั้นซอมบี้สหรัฐทั้งหมดจะเข้าโจมตีเซิร์ฟเวอร์ถัดไปที่มีอยู่และฆ่ามันด้วย
James Cape

2

นอกจากนี้ยังเป็นการดีที่จะต้องทราบว่า Anycast ไม่ดีหรือน่าเชื่อถือสำหรับการเชื่อมต่อ TCP บางอย่างที่ไม่สามารถอยู่รอดได้หรือรีเซ็ตการสนทนาที่ยาวนาน

Anycast IPs ที่ใช้ BGP บอกอินเทอร์เน็ตว่ามี2, 3 หรือมากกว่าพา ธ ไปยัง HOST ที่ระบุอย่างไรก็ตามในความเป็นจริงสิ่งเหล่านี้ไม่ใช่โฮสต์เดียวกันพวกเขาเป็นโฮสต์จำลองที่ถูกโฆษณาในหลายศูนย์ข้อมูลเพื่อให้การเชื่อมต่อมีความล่าช้าน้อยลง

ตัวอย่างเช่นฉันมี 3 เซิร์ฟเวอร์ที่ทำการเปลี่ยนเส้นทาง 301 ที่ไม่ใช่ www สำหรับ 198.251.86.133 หากคุณ ping โฮสต์นี้คุณอาจได้รับการตอบกลับซ้ำซ้อนในบางครั้งหรือลดลงตามที่คุณอยู่เนื่องจากเซิร์ฟเวอร์ของฉันคือ US-East, US - ตะวันตกและ EUR สำหรับการเชื่อมต่อแบบกำหนดเวลาสั้น ๆ (เช่น 301 ซึ่งเป็นแคชของเบราว์เซอร์) สิ่งนี้ให้การตอบสนองอย่างรวดเร็วจากเซิร์ฟเวอร์ท้องถิ่นในดาต้าเซ็นเตอร์ที่ใกล้ที่สุด

จากมุมมองความซ้ำซ้อนไม่มีการสร้างไว้ใน anycast คุณยังคงต้องการความซ้ำซ้อนอิสระในแต่ละเว็บไซต์ตามที่ IP จะ (ในสถานการณ์ทั่วไป) ชี้ไปที่ศูนย์ข้อมูลเหล่านั้นเสมอ


เรื่อง "ping"; ไม่ได้ ping การเชื่อมต่อ UDP?
Pacerier

เรื่อง "ตามที่ IP จะ (ในสถานการณ์ทั่วไป) ชี้ไปที่ดาต้าเซ็นเตอร์เหล่านั้นเสมอ"; คุณแน่ใจไหม? หากเซิร์ฟเวอร์หมดสติพวกเขาจะเริ่มชี้ไปยังเซิร์ฟเวอร์ถัดไปที่อยู่ใกล้ที่สุดใช่ไหม
Pacerier
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.