ทางออกในการแก้ปัญหา CAT Domestic Gateway ล่ม (Temporary Solution)

[B]จากปัญหา Core Network Equipment ของ CAT-IDC ที่เกิดขึ้นนั้น หากปัญหายังคงเป็นต่อเนื่องแบบนี้คงไม่ดีแน่[/B]
ผมได้ทำการทดสอบแล้วพบว่า CAT-IDC มีปัญหาแค่ Domestic Gateway แต่ยังคงสามารถ Access จากต่างประเทศได้ตามปกติ จึงนำเสนอ Solutions ชั่วคราวให้นำไปใช้งานดังนี้ครับ

[B]Solution #1 - ใช้บริการ Proxy ผ่าน Cloudflare[/B]

  • สมัคร Cloudflare ที่ http://www.cloudflare.com
  • ทำการชี้ DNS ของโดเมนเนมไปยัง DNS ที่ Cloudflare กำหนดให้
  • เมื่อตัวเว็บไซต์ชี้ไปที่ Server ของ Cloudflare เรียบร้อยแล้ว Traffic ก็จะสามารถวิ่งกลับมาที่เซิฟเวอร์ได้ครับ

ผู้ให้บริการโฮสติ้ง และ ลูกค้า สามารถใช้งาน Cloudflare เพื่อแก้ไขปัญหานี้ชั่วคราวได้ครับ

ข้อเสียของ Solution นี้คือ โดเมนของลูกค้าจะต้องสมัคร Cloudflare ทีละโดเมนครับ

[B]Solution #2 - เช่า VPS ต่างประเทศ แล้ว Redirect Traffic ทั้งหมดครับ[/B][U][B]
วิธีการนะครับ ทำตามขั้นตอนดังต่อไปนี้ได้เลยครับ

[/B][/U]xx.xx.xx.xx คือ IP ของเซิฟเวอร์ที่ CAT ครับ
yy.yy.yy.yy คือ IP ของ VPS ที่ต่างประเทศครับ[INDENT]
[B]1.) หา VPS ที่อยู่ต่างประเทศ ติดตั้ง OS ตระกูล Linux ให้เรียบร้อยแล้วรันคำสั่งตามนี้ครับ[/B]
echo “1” > /proc/sys/net/ipv4/ip_forward

iptables -t nat -A PREROUTING -p tcp -m multiport --dports 21,25,80,443,143,110,53,2222 -j DNAT --to-destination xx.xx.xx.xx
iptables -t nat -A PREROUTING -p udp --dport 53 -j DNAT --to-destination xx.xx.xx.xx
[COLOR=#333333]iptables -t nat -A POSTROUTING -j MASQUERADE[/COLOR]

[B]2.) จากนั้นในเครื่องเซิฟเวอร์ที่อยู่ในไทย ให้รันคำสั่งตามนี้ครับ[/B]

ลดค่า TTL

cd /usr/local/directadmin/data/templates
perl -pi -e ‘s/14400/100/’ named.db
echo “action=rewrite&value=named” >> /usr/local/directadmin/data/task.queue

เปลี่ยนค่า IP Address ใน DNS Record

cd /var/named
perl -pi -e ‘s/xx.xx.xx.xx/yy.yy.yy.yy/’ *.db
service named restart
[/INDENT]

ขอบคุณครับ เกิดแบบนี้เดือนละครั้งจะย้ายไปต่างประเทศหมดละ

จริงด้วยแฮะ ผมลองเข้าเว็บที่ใส่ cloudflare ไว้ ปรากฎว่าเข้าได้เฉย

แต่ว่าก็จะต้องเสียเวลารออัพเดต dns ด้วยนี่ครับ

ส่วนใหญ่ถ้าเครื่องที่ใช้ Google Public DNS จะค่อนข้างเร็วครับ แต่ถ้าใช้ DNS ของ ISP อาจจะรอนานกว่าครับ ขึ้นอยู่กับ TTL ครับ

ดูจาก log แล้วไม่มี traffic มาจากต่างประเทศเลย เพราะฉะนั้นไม่ว่าจะใช้ dns ที่ไหนก็เปล่าประโยชน์ ทางที่ดีที่สุดคือย้ายออกจาก CAT ให้หมด เพราะนี่ไม่ใช่ครั้งแรก ช่วงต้นปีก็มีปัญหามา 2 รอบแล้ว แล้วมีปัญหาหลายวันด้วยด้วย ถามไปก็เงียบ เวลามีปัญหาคราวนี้ติดต่อไม่ได้เลย ต้องเข้าไปที่ตึกจึงจะรู้ ขนาดเวลาปกติเมลถามยังไม่ค่อยตอบ ใครเอาชีวิตไปฝากไว้กับ CAT ตายลูกเดียว ทำงานแบบราชการเช้าชามเย็นชามจริงๆ แถมยังทำงานแบบไทยๆด้วย ไม่รู้จักเผื่ออุปกรณ์สำรองไว้เลย

ล่าสุด เนื่องจากคาดการณ์ว่า CAT ต้องใช้เวลานานในการแก้ไขปัญหา จึงได้เปลี่ยนวิธีการมาเช่า VPS ของต่างประเทศในรูปแบบ Value-added เป็นรายชั่วโมง แล้วใช้ Iptables Redirect Traffic มายัง IP ของเซิฟเวอร์ที่ CAT ครับ
จากนั้นจึงลด TTL เหลือ 100 แล้วทำการแก้ไข DNS บนเซิฟเวอร์ให้เป็น IP ของเครื่อง VPS ที่เช่าไว้ ก็เป็นอีกทางเลือกนึงครับ เพราะลูกค้าไม่ต้องมาสมัครสมาชิก Cloudflare และเปลี่ยน DNS ทีละโดเมน แต่จะมีผลกับทุกโดเมนบนเครื่อง

ปัญหาของผมคือ DNS ผมใช้กับ P&T Hosting นี่สิ ณ ตอนนี้ยังไม่สามารถใช้งานได้เลย :33c4b951:

ถ้าเป็นไปได้ พอจะสามารถให้ code หรือ ทำเป็น how to เพื่อประโยชน์แก่ท่านอื่นได้มั้ยครับ

ขอบคุณครับ

[U][B]วิธีการนะครับ ทำตามขั้นตอนดังต่อไปนี้ได้เลยครับ[/B][/U]

xx.xx.xx.xx คือ IP Address ของเซิฟเวอร์ที่อยู่ใน CAT ครับ
yy.yy.yy.yy คือ IP Address ของ VPS ที่อยู่ต่างประเทศครับ

1.) หา VPS ที่อยู่ต่างประเทศ ติดตั้ง OS ตระกูล Linux ให้เรียบร้อยแล้วรันคำสั่งตามนี้ครับ
echo “1” > /proc/sys/net/ipv4/ip_forward

iptables -t nat -A PREROUTING -p tcp -m multiport --dports 21,25,80,443,143,110,53,2222 -j DNAT --to-destination xx.xx.xx.xx
iptables -t nat -A PREROUTING -p udp --dport 53 -j DNAT --to-destination xx.xx.xx.xx
[COLOR=#333333]iptables -t nat -A POSTROUTING -j MASQUERADE[/COLOR]

2.) จากนั้นในเครื่องเซิฟเวอร์ที่อยู่ในไทย ให้รันคำสั่งตามนี้ครับ

ลดค่า TTL

cd /usr/local/directadmin/data/templates
perl -pi -e ‘s/14400/100/’ named.db
echo “action=rewrite&value=named” >> /usr/local/directadmin/data/task.queue

เปลี่ยนค่า IP Address ใน DNS Record

cd /var/named
perl -pi -e ‘s/xx.xx.xx.xx/yy.yy.yy.yy/’ *.db
service named restart

เป็นอันเสร็จเรียบร้อยครับ

รวบ rule iptables ให้ครับ

iptables -t nat -A PREROUTING -p tcp -m multiport --dports 21,25,80,443,143,110,53 -j DNAT --to-destination xx.xx.xx.xx
iptables -t nat -A PREROUTING -p udp --dport 53 -j DNAT --to-destination xx.xx.xx.xx
[COLOR=#333333]iptables -t nat -A POSTROUTING -j MASQUERADE[/COLOR]

ขอบคุณมากครับ นำไปอัพเดทเรียบร้อยแล้วครับ ผมแก้ไขเพิ่ม Port 2222 เข้าไปด้วยนะครับ เผื่อ Access DirectAdmin

iptables -t nat -A PREROUTING -p tcp -m multiport --dports 21,25,80,443,143,110,53,2222 -j DNAT --to-destination xx.xx.xx.xx
iptables -t nat -A PREROUTING -p udp --dport 53 -j DNAT --to-destination xx.xx.xx.xx
iptables -t nat -A POSTROUTING -j MASQUERADE

ต้องเช่า vps นอก ต่อ 1 ip เลยหรือเปล่าครับ

เช่าตัวเดียว แต่หาแบบหลายๆ ip ก็ได้ครับ แล้วแก้ rule iptables เอา

ip ผม 61.19.247.xx
ยังเข้า ssh ไม่ได้เลย ก็ไม่สามารถทำแบบนี้ได้ใช่ไหมครับ

ต้องไปแก้หน้าเครื่องครับ

ผมลอง ping ip ตัวเองจากนอกไม่ได้ แต่ ping gateway ได้ แบบนี้ วิธีการเ่า vps ก็ใช้ไม่ได้หรือเปล่าครับ

[quote="“sansak,post:15,topic:34922”]

ต้องไปแก้หน้าเครื่องครับ[/QUOTE]

ไม่ต้องครับ ให้ลองหา VPN เชื่อมต่อดูก่อนครับ
ลองสมัคร trial ของ flyvpn.com ก็ได้ครับ

แปลกนะครับ ถ้า Ping Gateway ได้ ก็น่าจะ Ping IP ของเซิฟเวอร์ได้ เป็นไปได้ว่าเครื่องอาจจะบูทไม่สำเร็จ หรือยังไม่ Powered On ครับ

เครื่องอัพหมดแล้วครับ เทสด้วยตัวเองทุก ip เลยครับ
เมื่อวานอยู่หน้าเครื่อง เดียวก็ ping gateway ได้บ้างไม่ได้บ้าง งงเหมือนกันครับ

ลองทำการ Traceroute ดูหรือยังครับ