วันจันทร์ที่ 21 มิถุนายน พ.ศ. 2553

Forward Port

Forward Port กับนานาสาระ ตอนจบ

เรื่องราวของ IP Address แล้วก็ Port ที่พูดกันไปในครั้งที่แล้ว คงทำให้น้องๆ หลายคนเห็นภาพรวมอย่างคร่าวๆ ของระบบอินเตอร์เน็ตกันไปแล้วนะครับว่ามีวิธีการในการติดต่อสื่อสารกันอย่าง ไร เดี๋ยววันนี้เราก็จะมาพูดถึงกันต่อกับเรื่องของการ Forward Port เสียทีว่าสรุปแล้วมันคืออะไรกันแน่ เอาละครับเพื่อไม่ให้เป็นการเสียเวลากับโควต้าหน้ากระดาษไปมากกว่านี้ผมว่า เข้าสู่เนื้อหาของวันนี้กันเลยดีกว่าครับ เกือบลืมไปที่ผมถามทิ้งท้ายไว้ในครั้งก่อนว่าหมายเลขพอร์ต 1863 นั้นเป็นพอร์ตของโปรแกรมอะไรมันคือพอร์ตของ MSN Messenger นั่นเองครับ ถ้าไม่เชื่อก็ลองใช้ไฟล์วอลบล็อคพอร์ตนี้ดูสิจะเห็นว่ามันจะใช้งานไม่ได้เลย
มารู้จักเซอร์วิสของวินโดวส์กันหน่อย

ยังจำครั้งก่อนได้ไหมครับที่ผมพาใช้ Netstat ดูว่าเครื่องของเรานั้นมีการเชื่อมต่อพอร์ตอะไรแล้วก็ใช้งานพอร์ตอะไรอยู่ หลังเครื่องหมายโคลอน (:) บางครั้งจะเห็นเป็นหมายเลขพอร์ตบางครั้งก็จะเห็นเป็นชื่อเซอร์วิสมาตรฐานที่ ระบบวินโดวส์ใช้งานอยู่อย่าง http หรือ ftp นั้นอาจจะเห็นบ่อยๆ แต่บางเซอร์วิสที่ชื่อแปลกๆ อยากรู้หรือเปล่าครับว่ามันใช้งานพอร์ตอะไรกันอยู่ ^^ อยากรู้กันแล้วสิครับถ้าอย่างนั้นก็ตามผมมาเพื่อไปเผยความลับกันว่าเซอร์วิส เหล่านั้นใช้งานพอร์ตอะไรกัน


ไฟล์ความลับที่ว่าซ่อนอยู่ที่นี่เอง ไฟล์ในนี้ถ้าลงในรายละเอียดลึกๆ ก็ทำอะไรได้เยอะนะครับ

ชื่อเซอร์วิสเหล่านี้นั้นถูกจัดเก็บอยู่ในไฟล์ๆ หนึ่งในโฟลเดอร์ของวินโดวส์เรานี่เองละครับ โดยถ้าเราติดตั้งวินโดวส์ในโฟลเดอร์มาตรฐานนั้นไฟล์นี้จะอยู่ใน C:WINDOWSsystem32driversetc ครับ ต้องบอกไว้ก่อนนะครับไฟล์ในส่วนต่างๆ ของโฟลเดอร์วินโดวส์นั้นส่วนมากแล้วไม่ค่อยจะไปทำการแก้ไขอะไรมันมากเพราะ ว่าไฟล์บางไฟล์จะมีความสำคัญในการทำงานของระบบเป็นอย่างมากถ้าไปแก้ไขเข้า บางทีอาจจะเข้าวินโดวส์ไม่ได้เลยก็เป็นได้นะครับ (เคยเจอกับตัวครับ T-T) ไฟล์ที่เราจะมาชำแระกันก็คือไฟล์ Service นี่ละครับ


ลองดูสิครับว่าในเครื่องเรามีพอร์ตมาตรฐานอะไรบ้าง

ลองเปิดมาดูก็จะเห็นรายชื่อเซอร์วิสมาตรฐานต่างๆ ที่วินโดวส์รู้จักพร้อมกับหมายเลขพอร์ตที่มันใช้งานกันอยู่ ถ้าอยากลองเขียนเองก็สามารถทำได้นะครับ อย่างเกม Warcraft 3 นั้นเวลาที่จะเล่นออก Battle.NET นั้นจะมีการเชื่อมต่อพอร์ตที่ 6112 ถ้าอยากให้วินโดวส์เห็นว่าเจ้าพอร์ตนี้คือเกม Warcraft 3 ก็ลองเพิ่มบรรทัดสุดท้ายเข้าไปเลยครับเป็น war3 6112/tcp กับอีกบรรทัด war3 6112/udp เพียงเท่านี้เวลาใช้ netstat เรียกดูเวลาเล่น Warcraft 3 เราก็จะเห็นเป็นหมายเลข IP ของเราตามหลังโคลอนด้วย war3 แล้วล่ะครับ

ว่า ด้วยเรื่อง Forward Port

และแล้วก็มาถึงเนื้อหาของเรื่องกันจริงๆ เสียทีหลังจากที่ร่ายถึงพื้นฐานเบื้องต้นกันไปเสียยืดยาวเพื่อจะได้เห็นภาพ โดยรวมของระบบเครือข่ายแล้วก็อินเตอร์เน็ต คราวนี้ก็มาย้อนพูดถึงเรื่องหลักของเรากันต่อซึ่งถ้าจะพูดถึงเรื่องการ Forward Port นั้นก็จะต้องมองเป็นเฉพาะกลุ่มผู้ที่ใช้งานอินเตอร์เน็ตความเร็วสูงผ่านเรา เตอร์เป็นหลัก เพราะเวลาที่เราต่ออินเตอร์เน็ตแบบนี้นั้นเราเตอร์ของเราจะเป็นตัวที่ได้ หมายเลข IP จากการเชื่อมต่อโดยที่เครื่องอื่นๆ ที่เชื่อมต่อกับเราเตอร์นั้นจะใช้ Internal IP ของเครื่องในการติดต่อกับ Internal IP ของเราเตอร์ซึ่งเป็น Gateway ของระบบเพื่อใช้ในการออกอินเตอร์เน็ต

ส่วนเวลาที่มีการส่งข้อมูลกลับมาให้เครื่องที่ออกอินเตอร์เน็ตนั้นระบบภาย นอกจะไม่สามารถรู้ได้เลยว่าเครื่องคอมพิวเตอร์เครื่องไหนในระบบของเรานั้น เป็นคนร้องขอ ซึ่งหน้าที่ส่วนนี้นั้นจะตกอยู่กับเราเตอร์ที่จะทำการส่งผ่านข้อมูลนั้นไป ยังเครื่องที่ใช้งานข้อมูลนั้นๆ ได้อย่างถูกต้อง แต่ก็ยังมีข้อมูลบางประเภทที่ถึงแม้เราเตอร์จะจัดการส่งผ่านข้อมูลมาให้แล้ว ก็ยังไม่สามารถใช้งานได้ เนื่องจากส่วนมากแล้วเราเตอร์จะเป็นคนแจกหมายเลข IP ให้เราอัตโนมัติด้วย NAT ซึ่งถ้าเวลาที่จะส่งผ่านข้อมูลบางอย่างที่อยู่นอกเหนือความสามารถของ NAT อย่างการเล่นเกมบางประเภท ดังนั้นจึงต้องมีการเซ็ตค่าบางอย่างเพื่อให้เราเตอร์นั้นสามารถทำงานในส่วน นี้ได้อย่างถูกต้องซึ่งวิธีการเช่นนี้เราจะเรียกกันว่าการ Forward Port นั่นเอง


ถ้าไม่ทำการ Forward Port การส่งข้อมูลก็จะเกิดปัญหาได้ถ้ามีการใช้พอร์ตเดียวกัน

โดยในการทำ Forward Port นั้นจะมีขั้นตอนหลักๆ ในการทำอยู่สองถึงสามขั้นตอนโดยผมเองนั้นจะพูดถึงแนวทางโดยรวมเท่านั้นคงไม่ เน้นไปที่เราเตอร์เลยเพราะว่าถ้าเขียนถึงวิธีการทั้งหมดคงต้องไปซื้อเรา เตอร์มาใช้หลายตัวเลยทีเดียวแถมทำคู่มือใช้งานได้เป็นเล่มๆ อีกด้วย เอาล่ะครับมาดูกันที่ขั้นแรกกันก่อนสำหรับสิ่งที่ต้องทำเพื่อเตรียมเครื่อง ก่อน Forward Port ก็คือต้องกำหนดหมายเลข IP ให้กับเครื่องที่ต้องการไปเลยโดยต้องกำหนดให้อยู่ในกลุ่ม IP เดียวกันกับที่เราเตอร์แจกด้วยนะครับ อย่างถ้าหมายเลข IP ที่เราเตอร์แจกที่เคยได้รับจะเป็น 192.168.1.2 ก็ให้เซ็ตเป็นหมายเลขนี้หรือเปลี่ยนที่เลขตัวสุดท้ายก็ได้ แล้วก็กำหนดหมายเลขของ Gateway เป็นหมายเลข IP ของเราเตอร์แล้วก็หมายเลขของ DNS ก็ใช้หมายเลขนี้ด้วยเช่นกันครับ หมายเลขของเราเตอร์คือเลขไหนนะหรือครับก็คือหมายเลขที่เวลาคุณเข้าไปเซ็ตค่า ผ่านทางเบราเซอร์นั่นละครับอย่างของเครื่องผมก็จะเป็น 192.168.1.1 เป็นต้น


ตั้ง IP ถาวรให้กับเครื่องเพื่อเตรียมทำการ Forward Port

ส่วนขั้นตอนต่อมาก็คือการไปกำหนดในเราเตอร์ของเราซึ่งแต่ละเราเตอร์นั้นการ เข้าไปเซ็ตค่า Forward Port นั้นอาจจะมีชื่อเรียกต่างกัน บางเราเตอร์ก็จะเขียนบอกว่าเป็น Forward Port โดยตรงแต่บางเราเตอร์ก็จะเป็น SAU/NAT หรือบางตัวเป็น NAT Rule เป็นต้นซึ่งตรงนี้ถ้าใครอยากรู้ก็ต้องลองหาๆ ดูเอาในเราเตอร์ของตัวเองนะครับ ส่วนของผมนั้นจะเป็น NAT Rule นะ ซึ่งหลักเบื้องต้นในการจะกำหนดกฎที่ใช้ในการ Forward Port ก็คือต้องกำหนดหมายเลข IP ของเครื่องที่ต้องการให้ Forward ไปนั้นให้ชัดเจนก็คือระบุหมายเลข IP ที่เราเซ็ตไว้ไปเลย ส่วนถ้าจะทำให้เครื่องอื่นก็ทำเป็นกฎอีกกฎไปเลยเพื่อที่จะได้ไม่มีปัญหาใน การ Forward เสร็จแล้วก็ต้องกำหนด Port ในกฎที่เราตั้งไว้ด้วยว่าถ้ามีข้อมูลเข้ามาที่พอร์ตหมายเลขนี้นั้นให้ทำการ ส่งไปที่ IP นี้เท่านั้นเพียงเท่านี้ก็เสร็จสิ้นสำหรับการ Forward Port เบื้องต้นแล้วครับ


ของเราเตอร์ผมใช้ NAT Rule ในการ Forward Port ครับ

แต่เวลาเมื่อเราทำการ Forward Port ไปแล้วแบบนี้นั้นจะมีปัญหาหนึ่งเกิดขึ้นครับ ผมว่าเพื่อนๆ ที่เล่น Warcraft 3 หรือเกมที่ต้องมีการเชื่อมต่อกันบนอินเตอร์เน็ตก็คงจะประสบปัญหานี้กันก็คือ เมื่อเราทำการ Forward Port หมายเลขนั้นๆ ไปแล้วเมื่อมีเครื่องอื่นๆ ที่อยู่ในระบบของเราเหมือนกันจะไม่สามารถเข้าไปร่วมเล่นด้วยกันได้เพราะว่า หมายเลขพอร์ตนั้นถูกใช้ไปแล้ว นั่นก็คือในช่วงเวลาหนึ่งๆ เราเตอร์จะสามารถทำการ Forward Port ให้ได้เพียงเครื่องเดียวเท่านั้น ถึงแม้ว่าเราจะสร้างกฎขึ้นมาใหม่เพื่อจะให้เครื่องอีกเครื่องเล่นได้เหมือน กันก็จะไม่สามารถทำได้ เพราะโดยมากแล้วเราเตอร์จะอิงลำดับของกฎที่ตั้งไว้เป็นหลักถ้ากฎไหนมีค่า ความสำคัญสูงกว่าก็จะให้สิทธิกฎนั้นก่อน

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


ถ้ามีการทำ Forward Port และ Port Trigger ก็จะสามารถส่งข้อมูลได้ถูกต้อง

เก็บตกประโยชน์ของการ Forward Port

เกือบจะลืมไปแล้วนะครับว่าผมเองยังไม่ได้บอกประโยชน์ของการ Forward Port กันเลย ประโยชน์ข้อแรกที่เห็นชัดๆ นั้นก็คงจะไม่พ้นทำให้สามารถเล่นเกมที่ต้องเล่นบนอินเตอร์เน็ตแล้วมีการ เชื่อมต่อกับคนเยอะๆ ได้ แล้วก็จะมีประโยชน์กับพวกโปรแกรม P2P อย่างเช่นพวก BitComet ในการช่วยทำให้สามารถติดต่อกับ Peer ได้เยอะขึ้นนั่นก็คือจะช่วยให้ดาวน์โหลดแล้วก็อัพโหลดได้ดีขึ้น แล้วถ้าจะพูดถึงประโยชน์อีกอย่างซึ่งอาจจะมองไม่เห็นความสำคัญมากนั่นก็คือ ถ้าเราปรับการใช้ Port Trigger กับ Forward Port ให้ดีๆ แล้วนะครับมันจะช่วยเราในเรื่องของความปลอดภัยของข้อมูลในระบบได้ดีขึ้นใน ระดับหนึ่งเลยทีเดียว

เอาล่ะครับก็คงจะครบถ้วนแล้วสำหรับเรื่องราวของการ Forward Port ในระดับทฤษฎีซึ่งก็อย่างที่บอกครับถ้าจะให้สอนทำ Forward Port ทุกๆ เราเตอร์ก็คงจะกินพื้นที่อย่างมากเลยทีเดียวแถมผมก็คงต้องไปซื้อหรือยืมมา ลองหลายรุ่นเลยทีเดียว ก็เช่นเคยครับน้องๆ เพื่อนๆ ถ้าตั้งใจก็ต้องทำได้ลองอ่านวิธีการต่างๆ จาก www.portforward.com ดูเอาครับซึ่งวิธีการของเค้าก็ทำได้ไม่ยากเสียด้วย อาจจะไม่มีของเราเตอร์ทุกรุ่นทุกยี่ห้อแต่ผมว่ามันก็คงทำให้เห็นแนวทางในการ เซ็ตสำหรับเราเตอร์ของเราก็เป็นได้ครับ เอาล่ะครับผมว่าตอนนี้เราก็เดินทางมาถึงจุดสุดท้ายของคอลัมน์แล้วก่อนจากกัน ผมอยากจะบอกว่า "ความรู้คือการค้นคว้าแล้วก็ลองทำ" ถ้าได้แต่ค้นคว้าแต่ไม่ได้ลองทำมันก็จะไม่รู้ผลที่จะเกิดขึ้น แต่เรื่องของยาเสพย์ติดนั้นอย่าได้คิดไปลองก็แล้วกัน หันมาเล่นกีฬาหรือเล่นเกมแทนดีกว่า (ไม่ใช่ว่าติดเกมจนไม่เป็นอันทำอะไรนะครับ) ว่าแล้วโควต้าหน้ากระดาษของผมก็ได้หมดลงพอดิบพอดีคงต้องขอลากันไว้ที่ตรงนี้ เลยไว้พบกันใหม่ในฉบับหน้าสวัสดีครับ

By Nanasara

ไม่มีความคิดเห็น:

แสดงความคิดเห็น