Wednesday, March 4, 2009

OpenVPN Connection reset by peer

วันหนึ่งมีลูกค้าองค์กรแจ้งเข้ามาว่าเครื่อง client ที่เป็น windows XP เข้าเมล์ที่สำนักงานใหญ่ผ่าน OpenVPN ไม่ได้
ไอคอน vpn ที่ taskbar โชว์เป็นสีเหลือง ก็ชักใจไม่ดีเหมือนกันแฮะ เพราะ endian firewall เพิ่งติดตั้งได้ไม่ถึงเดือนเอง
บางครั้งการที่จะหาคำตอบให้ลูกค้าแบบรวบรัด และใช้ได้เลยก็เป็นเรื่องยากเหมือนกัน เพราะถ้าให้คำตอบที่ผิด โดยที่ยังไม่รู้สาเหตุที่แท้จริง และยังไม่เห็น error ต่าง ๆ แทนที่จะแก้กันได้ตรงจุด กลับแก้ให้เสียหนักเข้าไปอีก ..ก็แจ้งกลับไปว่า เข้า office แล้วจะดูปัญหานี้ให้อย่างเร่งด่วนครับ

ทดสอบใช้ OpenVPN จาก office ของบริษัทไปที่ server ของลูกค้ามันโชว์อย่างนี้

Mon Jan 08 13:53:29 2007 UDPv4 link local (bound): [undef]:1194
Mon Jan 08 13:53:29 2007 UDPv4 link remote: xxx.xxx.xxx.xxx:1194
"" UDPv4: Connection reset by peer (WSAECONNRESET) (code=10054)
"" UDPv4: Connection reset by peer (WSAECONNRESET) (code=10054)
"" UDPv4: Connection reset by peer (WSAECONNRESET) (code=10054)
"" UDPv4: Connection reset by peer (WSAECONNRESET) (code=10054)
"" UDPv4: Connection reset by peer (WSAECONNRESET) (code=10054)
Mon Jan 08 13:53:52 2007 SIGTERM[hard,] received, process exiting


เริ่มวิเคราะห์ปัญหา
1. configuration ต่าง ๆ ไม่ถูกต้อง เป็นไปไม่ได้แน่ เพราะใช้ได้อยู่ แล้วอยู่กลับใช้ไม่ได้ การ config จึงตกไป
2. endian firewall ที่ไซต์ลูกค้าดับหรือมีปัญหาหรือไม่ คำตอบคือฝั่งนั้นยังใช้ internet ได้เหมือนเดิมทรั้ง
ส่งและรับเมล์ ทั้งเครื่องลูกก็มีหมายเลขไอพีกันถ้วนหน้า (ยังไงก็น่าคิดอยู่ดีว่าจะเป็นที่ server ไหม)
3. โปรเซสบางตัวที่ server โดยเฉพาะ process OpenVPN จะตายหรือไม่ ตัว server ประเด็นที่โปรเซสใดโปรเซสหนึ่ง
จะตายตัวเดียวก็เป็นไปได้ แต่ไอ้ปัญหา reset by peer คือน่าจะยังติดต่อ server ไม่ได้ด้วยซ้ำไป
4. ที่ไซต์ของลูกค้าใช้ internet เป็น adsl 1.5 ของ True และเป็น dynamic ไม่ได้ fixed ซึ่ง adsl อาจจะหลุดแล้วตัว router ได้หมายเลขไอพีใหม่ โดยที่ตัว endian ยังไม่ได้ update แน่ๆ เลย เออน่าคิด งั้นทดสอบกันเลยดีกว่า

ทดสอบ
4.1 ping it3xxx.gotdns.com
ได้หมายเลขไอพีกลับมาก และมี replay from ด้วย ( คิดว่าไง ปกติเราจะ set ตัว endian ไม่ได้รับคำสั่ง ping จากภายนอกซึ่งจะต้องไม่มี teplay from แต่ควรจะมีหมายเลข ip เข้าเค้าหล่ะ)
4.2 โทรไปบอก admin ของลูกค้าให้เข้า endian firewall โดยด่วนและเช็คตามนี้
* หมายเลข IP คืออะไร ?
คำตอบคือ ไม่ใช่หมายเลข IP เดียวกับที่เราได้จากคำสั่ง ping
OK ปัญหานี้ได้คำตอบแล้ว router ADSL ได้หมายเลข IP ใหม่ตัว Endian ยังไม่ได้ Update DynDNS จึงทำให้หมายเลข IP ไม่ตรงกัน มีทางแก้แล้วซินะ.... ด้วยการบังคับให้ DynDNS ที่ Endian firewalll update IP ไปที่
Service -> Dynsns -> Force Updated
เท่านี้ปัญหานี้ก็หมดไป ...



Link เพิ่มเติม :
OpenVPN - creating a routed VPN
OpenVPN "Routing" –versus– "Bridging"

0 comments:

Twitter Delicious Facebook Digg Stumbleupon Favorites More