Cloudflare เขียนบล็อกเล่าถึงประสบการณ์อัพเกรด load balancer แบบใหม่ จากเดิมอาศัย TCP proxy และ NAT ซ้อนกันไปมาหลายชั้น โดยระบุว่าช่วงหลังสถาปัตยกรรมแบบนี้ไม่เหมาะกับบริการที่เปลี่ยนไป ทำให้ต้องออกแบบใหม่ แล้วหันไปทำ tunnel จาก load balancer ไปยังเซิร์ฟเวอร์แทน
เงื่อนไขการเปลี่ยนสถาปัตยกรรมของ Cloudflare ระบุว่า ต้องการให้เซิร์ฟเวอร์เห็นไอพีต้นทางที่ถูกต้อง โดยไม่ต้องใช้ท่าเฉพาะสำหรับโปรโตคอล เช่น X-Forwarded-For ใน HTTP หรือ PROXY TCP, ทราฟิกต้องวิ่งบนอุปกรณ์เน็ตเวิร์คเดิมที่ติดตั้งไปแล้วได้, เครื่องมือต้องพร้อมใช้งานมีการทดสอบมาเป็นอย่างดีแล้ว, ไม่เพิ่มการสื่อสารระหว่าง load balancer และเซิร์ฟเวอร์เพิ่มเติมซึ่งจะทำให้ระบบซับซ้อนเกินไป, และกระบวนการย้ายไปยังระบบใหม่ทำได้ง่าย
การออกแบบใหม่นี้อาศัย IP Virtual Server (IPVS) สร้าง tunnel จาก load balancer ไปยังเซิร์ฟเวอร์ โดยใช้โปรโตคอล Foo-Over-UDP (fou) หุ้มทราฟิกด้วย IP/UDP อีกชั้นทำให้ load balancer เลือกเซิร์ฟเวอร์ได้ตามที่ต้องการ ขณะที่กระบวนการเลือกเซิร์ฟเวอร์ใช้ Maglev ที่เสนอโดยกูเกิล (กูเกิลเองใช้เป็นการภายในมาตั้งแต่ปี 2008) และอยู่ในเคอร์เนลลินุกซ์ตั้งแต่เวอร์ชั่น 4.18 ขณะที่ต้องมีการปรับขนาด MTU เน็ตเวิร์คภายในเพื่อให้เติม header ของ IP/UDP ที่เพิ่มมาโดยไม่เกิด fragment
ทาง Cloudflare ระบุข้อจำกัดการทำงานทุกวันนี้ เช่น iptables ไม่มี API โดยตรงทำให้ agent ของเซิร์ฟเวอร์ยังต้องคอนฟิกเครื่องด้วยการรันคำสั่ง iptables อยู่ ทำให้อนาคตน่าจะย้ายไปใช้ nftables แทน และอาจจะเปลี่ยนไปใช้ Lightweight Tunnels แทน Foo-Over-UDP ในอนาคต
ที่มา - Cloudflare
Comments
ไม่เกี่ยวกับข่าว แต่เห็นมีคำว่า NAT แล้วเคือง
เริ่มยุคล้างบาง NAT ได้หรือยัง
ตั้งแต่ PS4 ยัน Large Scale NAT ถึงจะเอาปลอดภัยมาอ้าง แต่มันก็สร้างความซับซ้อนให้มากอยู่ระบบนิมากพอตัวเลยนิ ตั้งค่ากันอ้วกแตกเลย ผิดทีนี่ต้องงมไล่ระบบใหม่ถ้าตั้งซ้อนเยอะๆ เห็น NAT ซ้อน NAT ก็เวียนหัวแล้ว
Public IPv4 มันมีจำกัดครับ เค้าเลยใช้ NAT กัน ถ้าไม่อยาก NAT ก็ต้องไปใช้ IPv6 ที่เค้าผลักดันกันมานานแล้ว
ซึ่งหลายบริการก็ไม่ยอมรับ IPv6 เสียที วันก่อนผมจะเซ็ต cloud ตัวนึงให้ยิงเข้าเครื่องที่ออฟฟิศ ใส่ IPv6 ไปก็ทำงานไม่ได้ ไหนจะตัว Google Firebase อีก
ผมน่ะเชียร์ IPv6 เต็มที่เลยครับแต่บางอย่างก็ทำอะไรไม่ได้จริงๆ
นั่นหล่ะครับ IPv6 แต่ผมไม่อยากพูดตรงๆแล้ว โดยเฉพาะข่าย ISP เจ้าหนึ่งที่มีฐานลูกค้าอันดับ 1 ที่บอกว่าเป็นผู้นำตอนนี้ ได้รางวัลระดับ SEA เคยถามไปก็ได้คำตอบว่า ทางเราเป็นผู้ให้บริการเจ้าแรก(แต่ในระดับองค์กรน่ะนะ) ถ้า ISP ไม่เปลี่ยน ยอดคนใช้ก็จะน้อยแล้ว ผลคือโปรแกรมต่างๆจึงยังไม่ค่อยอยากจะลงทุน support ตาม เพราะจำนวนคนใช้ยังน้อย ก็จะกั๊กรอกันแบบนี้เรื่อยๆ เคยมีตอนช่วงค่ายนี้มีโปรออกมาแล้วมีเซลเป็นกลุ่มมาโฆษณาหน้าบ้านเลย ผมบอกไม่เอาไม่ย้ายเพราะคุณไม่มี IPv6 ก็จบข่าวเลยครับ
ก็มีปัญหาบ้างที่เห็น ISP เจ้าที่ทำแล้ว ต้องมาปิดให้ลูกค้าที่ขอปิด แต่นั่นก็รายคน แล้วแต่กรณีไป
เห็นแล้วเหนื่อยกับผักชีโรยหน้า
2011/06/06 World IPv6 test day
2012/06/06 World IPv6 launch day
2012/06/08 X ทุ่ม 100 ล้านบาท ขานรับ IPv6 เต็มตัว
2012/07/02 X ระบุค่าล็อกจะพุ่งหากไม่ใช้ IPv6
2020/06/14 X ยังทดสอบการจ่าย IPv6 ให้กับลูกค้าในวงจำกัดแบบสุ่มโดยไม่สามารถขอเข้าร่วมเองได้
จริงดิ? ผมก็นึกว่า เค้าทดสอบตามอารมณ์เขาซะอีก เห็นหวานเย็นเหลือเกิน 555 บอกว่า จะเปิด ๆ ก็ยังเงียบ ล่าสุดเขาก็พวกในงาน APNIC 2019 ที่เชียงใหม่ด้วยนะครับ ดูกันได้ https://www.youtube.com/watch?v=JDpCIcFiMyA บอกว่า ทุก ๆ วันนี้เผาเงินไปกับค่า MA ของ CGNAT กับ Log Server เยอะ...
เค้าอาจจะเห็นว่า option ตัว public IPv4 มันทำเงินเพิ่มได้เยอะ เลยไม่อยากเปลี่ยน
ทำได้อย่างมากคงแค่เปลี่ยนเจ้าไปใช้เจ้าอื่นแทน คนย้ายออกเยอะๆ เค้าก็คงปรับเปลี่ยนเอง
อันนี้จริง ถ้าเปิด IPv6 ทั้งมือถือและเน็ตบ้าน (แถมข้ามค่ายได้) แทบไม่มีเหตุผลต้องซื้อ IPv4 จริง
อย่างพวก SME จะทำ VPN ข้าม site ต่อให้เน็ตเวิร์คข้างในเป็น IPv4 ก็ใช้งานได้ หรือตามบ้านต่อตรงเข้ากล้องวงจรปิดได้เลย
lewcpe.com, @wasonliw
ผมขอเสริมนะครับ และรบกวนขอคำตอบและความคิดเห็นนะครับ
เค้าเห็นว่า option ตัว public IPv4 มันทำเงินเพิ่มได้เยอะ จริงครับ ล่าสุดเค้าไล่ซื้อ IPv4 บล็อกนึง ซึ่งบล็อกนั้นเอาไปใช้ในการประมูลงานกับหน่วยงานราชการครับ
ส่วนลูกค้าตามบ้าน เค้าน่ะ อยากเปลี่ยนใจจะขาด เพราะทุก ๆ วันนี้ เค้าต้องเผาเงินเป็นจำนวนมากในการทำ CGNAT และค่อยบันทึก log หลายเซิร์ฟเวอร์มาก เคยลองเปลี่ยนแล้ว แต่พอเปลี่ยนแล้ว เกิดปัญหาหลัก ก็ตามต่อไปนี้
2.หน่วยงานราชการ ยังเขียน TOR ว่า ISP ต้องแจก IPv4 ส่วน IPv6 ไม่ถูกพูดถึงเลยใน TOR
แค่ 2 อย่างนี้ สัดส่วนลูกค้าของเค้าน่าจะเกินครึ่งไปแล้ว... คำถามคือ ไม่เปลี่ยนลูกค้าย้ายออกในสัดส่วนน้อยกว่า ถ้าหาก ISP เปลี่ยนไปใช้ IPv6 แล้วจะเปลี่ยนทำไม?? ค่ายสีส้มกับค่ายสีฟ้ายังไม่แจกเลยสักไอพี เค้าจะย้ายทำไมครับ? ทุกวัน ๆ นี้ ก็ใช้ดีอยู่แล้ว จะเปลี่ยนทำไม? ซึ่งตรรกะนี้มันทำให้มันได้ช่วยให้ขับเคลื่อนไปข้างหน้าครับ สุดท้ายแล้ว ก็ทำอย่างที่คุณ Ford ว่าครับ ถ้าเปลี่ยนเขาไม่ได้ เปลี่ยนตัวเราเองยังจะง่ายกว่าครับ
ผมเนี่ยปีที่แล้ว ทะเลาะกับค่ายสีฟ้าใหญ่เรื่อง IPv6 เลย ถ้าไม่ได้ก็ย้ายค่าย ถ้าได้ก็จะบวกตังให้พร้อมขอ Fixed IPv6 ด้วย คำตอบเดียวที่ได้มา ไม่ได้...IPv4 ในปัจจุบันก็มีให้ใช้อย่างเหลือเฟือ ลูกค้าไม่มีความจำเป็นต้องขอ IPv6 ณ ตอนนี้ ผมก็ได้แต่ร้อง 555555555555+ แล้วย้ายมาค่ายที่พูดถึงนี่แหละ ซึ่งก่อนย้ายเค้าสัญญาว่าจะแจก IPv6 ให้ ซึ่งก็ทำได้จริง ๆ ถึงแม้จะช้าหน่อย
ประเด็นที่อยากทิ้งท้ายไว้ ผมคิดว่า(อยากให้เป็น) เว็บข่าวสารไอที และ/หรือคนในวงการไอที influencer ควรจะทำบทความ หรือวีดีโอ ทั้งง่ายที่จะเข้าใจ และง่ายที่จะเข้าถึง ให้ความรู้กับคนไทยส่วนใหญ่ ได้ทราบนะครับ เพราะทุก ๆ วันนี้ บทความพวกนี้มันยากยากที่จะเข้าถึง ต้องมานั่งหาในกูเกิล ไม่พอยากที่จะเข้าใจ เพราะมันเป็นเชิงลึกมาก ๆ ดังนั้น ลองทำ Social Responsibility กันหน่อยไหมครับ? ให้เขาสำนึกถึงข้อดีของ IPv6 ว่า มันมีผลต่อชีวิตเขายังไง?
ขอบคุณครับ
มีช่วงนึง IPv6 เป็นเรื่องที่คนสนใจ และเตรียมการย้ายนะ แต่พอมันมีการ workaround แก้ไขปัญหาปะผุไปได้ (ทำพวก NAT) ก็เงียบๆ ไป
เอาจริงๆ คือมันน่าจมีปัญหาตั้งแต่เรื่องของความรู้ในการรองรับการให้บริการด้วยนั้นแหละ เพราะหลายๆ อย่างต้องทำความเข้าใจใหม่ บุคคลากรน่าจะไม่พอด้วยแหละมั้ง แล้วอารมณ์แบบ ก็ของมันยังใช้ได้อยู่ ก็เลยไม่เปลี่ยน (เป็นเรื่องที่พบเจอได้บ่อยๆ)
ส่วนต่อมาอุปกรณ์ที่รองรับ ตอนนี้ที่รองรับ IPv6 มันมีเยอะขึ้น และเป็นมาตราฐานแล้ว แต่ของเก่าที่รองรับแต่ IPv4 มันก็ยังมีอยู่มาก และมักเป็นของแถมอยู่ การจะไปเปลี่ยนก็คือต้นทุนของค่ายที่ต้องดูแล
ก็กลายเป็นปัญหาไก่กับไข่ไป
ค่ายสีส้มเขาแจก IPv6 มาได้สักระยะแล้วครับ
ล่าสุดเขาบอกไม่แจกให้ลูกค้าทั่วไปนะครับ แจกให้เฉพาะในเชิงธุรกิจเท่านั้นครับ
อันนี้ของค่ายแมวหรือค่ายสามครับ
ความล้มเหลว คือจุดเริ่มต้นสู่ความหายนะ มีผลกระทบมากกว่าแค่เสียเงิน เวลา อนาคต และทรัพยากรที่เสียไป - จงอย่าล้มเหลว
ที่ผมหมายถึง เป็นค่ายส้มที่กำลังร่วมหอลงโรงกับค่ายฟ้านะครับ
โอเคครับ รู้แล้วว่าค่ายไหน แต่จะแข่งกับเอกชนได้ไหมก็อีกเรื่อง
ความล้มเหลว คือจุดเริ่มต้นสู่ความหายนะ มีผลกระทบมากกว่าแค่เสียเงิน เวลา อนาคต และทรัพยากรที่เสียไป - จงอย่าล้มเหลว
555 ก็รู้ ๆ กันอยู่ครับ
ผมก็ลืมไปว่าค่ายสีส้มในไทยมีสองเจ้าคือ c กับ 3 และที่ผม comment ไปก่อนหน้าผมพูดถึงค่าย 3 นะครับ
ความเห็นผมนะ ทำไมไม่ใช้ dual stack ไปหล่ะครับ ใครมีปัญหาก็ปิดใครไม่มีก็ผ่านไปแล้วจำนวนคนใช้มันจะเริ่มมากขึ้นเอง ปกติระบบมันเลือก IPv6 ก่อนอยู่แล้ว คนที่ใช้งานผ่าน IPv6 แล้วไม่มีปัญหา มันก็ช่วยลดการเก็บ logs ของ IPv4 ด้วย แต่ตอนแรกคงลงทุนหนักหน้าดูเพราะทำแบบคู่ขนาน ไม่อย่างงั้นก็เตรียมขยาย CGNAT ไปเรื่อยๆได้เลยครับไม่จบแน่ๆ
เพื่อนผมที่ออกจากการทำงานที่ true มาแล้วเคยบอกว่าจริงๆเพราะระบบมันใหญ่จะแก้อะไรแล้จะกระทบหลายส่วน เลยไม่มีคนกล้าทำเพราะมันต้องรับผิดชอบมาก เลยปล่อยไว้คาราคาซังแบบนั้นจนว่าจะมีการล่มครั้งใหญ่แบบเจอทางตันนั่นแหล่ะ
เหมือนกรณีที่โลกเราเจอโควิด19 เลยทำให้คนหันมาซื้อของ online มากขึ้น เพราะหมดทางเลือกเพราะออกจากบ้านไม่ๆได้ แบบนั้นเลยและผมจะรอ T เป็นแบบนั้น ช่วงล่มครั้งใหญ่ต้องโดนด่าโดนฟ้องร้องยับก่อนแน่ๆ ปล่อยดินพอกหางหมูมานาน
Dual Stack มันก็ยังปล่อย IPv4 อยู่นะครับ ถ้าจะให้แบบลดการเก็บ Logs กับ CGNAT ไปเลย ก็มีทางเดียวก็คือ ทำ Tunnel 6to4 ครับ ซึ่งถามว่า True พร้อมไหม? กับการทำ Tunnel ครับ ทางออกที่ดีที่สุดก็คงเป็นอย่างที่คุณว่าไว้ครับ ให้มันเจอทางตันครับ
แล้วอีกอย่างครับ ตั้งแต่ ทรูปล่อย IPv6 ให้ใช้และจบปัญหาตั้งค่าไป ปัญหาใหม่ สปีดตกก็เข้ามาต่อ สปีดบน IPv4 นี้ดีตามสัญญาครับ แต่สปีด IPv6 จะทดสอบได้ประมาณ 10-25% ของสัญญาที่ทำกันไว้ครับ... ไม่มีวันไหนไม่มีปัญหาครับ
อันนี้ผมไม่แน่ใจนะเพราะไม่เคยเห็นของจริง ได้แต่คิดว่าปกติมันจะใช้ IPv6 ก่อนเสมอ แล้วถ้าใช้ IPv6 เลย การเก็บ Logs ของ IPv4 ไม่ควรจะทำงานเพราะ ไม่ได้ใช้ IPv4 วิ่งไปปลายทาง ไม่รู้เข้าใจถูกมั้ย
ส่วนเรื่องสปีดเทส เพราะมันเป็นเว็บสปีดเทสมั้งผลเลยเป็นแบบนั้น เพราะตอนใช้จริง ดาวโหลดจริงๆ สปีดที่ทำได้ไม่ต่างจากใช้ IPv4 ครับ ผมใช้ download ไฟล์ update ของ apple บ่อย ซึ่งเขาจะจำกัดความเร็วที่ 100Mbps หรือ 200 Mbps เท่านั้น ซึ่ง IPv6 กับ IPv4 นี่พอๆกันเลย ซึ่งตอนผมใช้ net 200/200 มันก็ได้สปีดประมานนี้อยู่ดี ทั้ง 2 แบบ
ของผมอะนะ
เรื่อง Tunnel 6to4 อันนี้ผมลืมไปแล้วแฮะ ใช้แต่ DNS64 ของ Cloudflare แทนไปเลย ซึ่งผมลองปิด IPv4 แล้วจะใช้งานได้อยู่ app ก็ยังทำงานได้ IP ปลายทางจะเป็น 64:ff9b::xxxx:xxxx ซึ่ง เว็บหรือ App ที่ยังไม่มี IPv6 จะแสดงแบบนี้
ยกเว้นปลายทางไม่รองรับจริงๆ ซึ่งมีพวก IoT ที่เป็นของจีนที่ไว้ใช้สำหรับ smart home พวกนี้ไม่มี IPv4 จะใช้ไม่ได้เลย กับ PS4 ของ SONY นี่แหล่ะ NS ของ nintendo ด้วยมั้งซึ่งเคยไปหาข้อมูลแล้วปัญหามันอยู่ที่เครื่องมือนักพัฒนาที่ใช้พัฒนาเกมลงเครื่อง console พวกนี้ไม่รองรับตั้งแต่แรกเลย มียกเว้นแค่ xbox
ซึ่งพวกกลุ่มเครื่อง game console เป็นกลุ่มที่ถ่วงความเจริญในการเปลี่ยนไปใช้ IPv6 มากที่สุดในความคิดผมเลยครับ เพราะจำนวนคนใช้งานในโลกไม่น้อยเลย สังเกตได้ว่า ISP ที่แจก IPv6 จะมีปัญหากับผู้ใช้งานเครื่องเกมพวกนี้มากพอดู แล้วจะมาขอให้ปิด ซึ่งผมไม่มีปัญหาเรื่องพวกนี้นะยังเปิด IPv6 ปกติก็เล่น PS4 ได้
ในต่างประเทศมี ISP ที่แจก IPv6 only เท่านั้น เขายังมาบ่นในบอร์ดทางการของ PS เองเลย ซึ่งคำแนะนำเขาบอกให้ติดต่อ ISP ซึ่งเป็นการโยนงานมาก เพราะถ้า ISP ทำแบบนั้นแสดงว่าเขาไม่มี IPv4 มาให้บริการตั้งแต่แรกไง จะให้เข้าแก้ยังไงหล่ะ IP มันไม่พอนิ โดยเฉพาะในแถบยุโรปเลย
เห็นด้วยครับ ถ้าไม่ผลักดัน ipv6 ยังไง nat ก็จำเป็น
มือใหม่!! ใหม่จริงๆนะ
พูดตรงๆผมว่าเพราะความยาวของ IPv6 คนเลยไม่ใช้
มันยาวเพราะขนาด address ที่มันรองรับ แต่มันมีวิธีเขียนแบบลดรูปอยู่ครับ
รู้หรือไม่ครับถ้า Gateway ใช้ IPv6 ได้ คุณษไม่ต้องสนใจว่าจะเป็น 192.1.x.1 อะไรแล้ว เพราะปกติเลขไม่ค่อยเหมือนกัน 0 บ้าง 1 บ้าง ต้องไปส่องที่มันพิมพ์บนเร้าเตอร์เอีกที แต่ถ้า IPv6 ใช้ fe80::1 เข้าเร้าเตอร์ได้เลยครับ (ยกเว้น MacOS จะใช้ไม่ได้)
ส่วนเชงอ้างอิงในวง LAN ใช้ fe80 นำหน้าได้เลย ส่วนเลขฐาน 16 อีก 4 ชุดรวมๆอาจจะสั้นกว่า IPv4 ที่ต้องจำ ผมก็ตั้ง Domain ใน windows server ที่เป็น IPv6 มาแล้ว ลองทดสอบ join domain ข้ามจังหวัดก็ยังได้เลย ประโยชน์เหลือหลาย แต่ต้องระวังเรื่องการตั้งค่าความปลอดภัยดีๆ
เรื่องพวกนี้แหละครับ ที่อยากรู้
และคิดว่า น่าจะมีอีกหลายคน ก็อยากรู้