IT Andaman Club
   

ทำ VPN Site To Site แบบ PPTP ผ่าน Dynamic DNS

จากรูปจะเป็นตัวอย่างการทำ VPN Site To Site แบบ PPTP เชื่อมต่อผ่าน Dynamic DNS ค่า IP ต้องคนละวงกันนะครับ ทำตามขั้นตอน พอคล่องแล้วค่อยแก้ไขครับ แต่ทางผมขอแจ้งไว้ก่อนนะครับ เนื่องจากการทำ VPN ปัญหาการเชื่อมต่อไม่ได้ จะมีหลายสาเหตุ ทางผมขออนุญาติไม่รับ Support โดยตรงนะครับ ถ้าติดปัญหาให้ Post ที่ หัวข้อนี้ได้เลยครับ หรือถ้า Config แบบง่ายๆ (ง่ายสุดๆ) ให้เลือกใช้เป็นอุปกรณ์ VPN Firewall Router โดยตรงจะดีกว่าครับ

ITAndamanClub

โดยฝั่ง Office จะเป็น IP: 192.168.1.1 (วง 192.168.1.0) ทำ Dynamic DNS เป็น sysnethost.dyndns.org (ตัวอย่างสมมุตินะครับ)
และฝั่ง Site จะเป็น 102.168.2.1 (วง 192.168.2.0) ทำ Dynamic DNS เป็น sysnetsite.dyndns.org (ตัวอย่างสมมุตินะครับ)

โดยปกติทำการติดตั้ง Dynamic DNS เรียบร้อยแล้ว เราจะสามารถ Remote ไป Config อีกฝั่งหนึ่งได้เลยครับ ในตัวอย่างผมอยู่ฝั่ง Office แล้ว Remote ไป Config ที่ฝั่ง Site ด้วยครับ หรือให้ทีมงานอยู่อีกฝั่งนึง แล้วแจ้งหมายเลข Address ของ pppoe-out ก็สามารถเข้าผ่าน winbox ได้เช่นกันครับ

Config อุปกรณ์ RouterBoard ให้ออก Internet ให้เรียบร้อยครับ
การ Config อุปกรณ์ Mikrotik RouterBoard เบื้องต้น
การ Config Dynamic DNS ด้วย Service dyndns.org

[Config ฝั่ง Office]

1. เข้า Menu PPP –> Profiles –> Click [ + ] ตั้งชื่อ Profile: profile1
Local Address: 192.168.10.1
Remote Address: 192.168.10.2

Click [Apply]

เข้า Tab Protocols เลือก Use Encryption เป็น yes

Click [OK]

2. เข้า Tab Secrets –> Click [ + ] กำหนด Name: ppp1
Password: ppp1
Profile: profile1

Click [OK]

Tip

ปกติเวลา Connect PPtP เข้ามา ทาง Mikrotik จะสร้าง Route ไว้ให้อัตโนมัติ แนะนำให้ Fix Route ที่นี้จะดีกว่าครับ

3. เข้า Tab Interface –> Click [PPTP Server] Click เลือก Enable
Default Profile: default

Click [OK]

4. Tab Interface –> Click [ + ] เลือก PPTP Server
กำหนดตามรูปได้เลยครับ

จากนั้น Click [OK]

[Config ฝั่ง Site]

1. เข้า Menu PPP –> Tab Interface –> Click เลือก PPTP Client
ที่ Tab Dial Out
Connect To: ใส่ Dynamic DNS ของทางฝั่ง Office
User: ppp1
Password: ppp1
เมื่อ Click [OK] RouterBoard จะทำการ Resolve IP ให้อัตโนมัติที่ช่อง Connect To

[การสร้าง Route เพื่อให้สามารถเชื่อมไปยัง Lan ของ Router ได้]

[ฝั่ง Office]

เข้า Menu –> IP –> Route –> Click [ + ] Dst Address: 192.168.2.0/24 (วง Network ฝั่ง Site)
Gateway: pptp-in1

เมื่อ Click [Apply] ถ้าเชื่อมต่อได้จะขึ้น reachable

[ฝั่ง Site]

เข้า Menu –> IP –> Route –> Click [ + ] Dst Address: 192.168.1.0/24 (วง Network ฝั่ง Office)
Gateway: pptp-out1

เมื่อ Click [Apply] ถ้าเชื่อมต่อได้จะขึ้น reachable

ทดสอบ

ถ้า Connect เรียบร้อยจะมี Status R นำหน้าครับ ทั้งฝั่ง Site และ Office

ลองเข้า New Terminal แล้ว Ping ไปยัง Router อีกฝั่งครับ

ปัญหา

เนื่องจาก IP ที่ช่อง Connect To ตอนที่สร้าง ppptp-client ที่ฝั่ง site มันจะทำการ Resolve IP จาก dynamic dns ณ.เวลาที่ click [Apply] ปัญหาคือ มันจะจำค่านี้ไปตลอด ถ้า RouterBoard ฝั่ง Office ได้รับ IP Address ค่าใหม่จาก ISP และ Update ไปยัง Server Dynamic DNS แล้ว ค่า Connect To ที่ฝั่ง site มันดันไม่เปลี่ยนค่าตามไปด้วยครับ

ตอนทดสอบเพื่อทำคู่มือก็ใช้งานได้ปกติ แต่พอใช้งานจริงจากที่บ้านและที่ร้าน เลยเจอปัญหาครับ งมอยู่นานเลย

ทางแก้

ผมเลยสร้าง Script ให้ไปอ่านค่า IP จาก Dynamic DNS แล้วเข้ามา Update ใน Connect To ของ PPTP-Client ให้อัตโนมัติ

Script แบบ 1

โค๊ด: [Select]
#Update field Connect To in PPTP-Client
#Create by Thanavich Sriarun
#http://www.sysnetcenter.com

:global currentIP [:resolve sysnetxxxx.dyndns.org]
:global previousIP [/interface pptp-client get 0 connect-to]
:delay 1

:log info "Curent IP: $currentIP and $previousIP"

:if ($currentIP != $previousIP) do={
:set previousIP $currentIP
/interface pptp-client set 0 connect-to=$currentIP
:log info ("Update Current IP $currentIP")
} else={
   :log info ("No Update Current IP")
}

แก้ไขตรง sysnetxxxx.dyndns.org ให้เป็นค่า Dynamic DNS ของทางฝั่ง Office ครับ จากนั้นก็เข้าไปใส่ใน Sytem –> Script

สร้าง Script ชื่อ getResolveDNS แล้วก็ Copy Code ที่แก้แล้วลงไป

จากนั้นก็สร้าง Schedule ให้ทำการ Run Script ทุกๆ 1 นาที

โค๊ด: [Select]
/system scheduler add name=resolveIP interval=00:01 on-event="/system script run getResolveDNS\r\n"

หรือจะใช้ Script แบบง่ายๆก็ได้ครับ แต่ผมไม่แน่ใจว่าการ set ค่า ip ให้กับ pptp-client ตลอดจะมีปัญหาอะไรหรือเปล่าครับ

โค๊ด: [Select]
:global currentIP [:resolve sysnetxxxx.dyndns.org]
:delay 1
/interface pptp-client set 0 connect-to=$currentIP

เรียบร้อยครับ ทำแบบเร่งด่วน  ;D ;D

ส่วนการทำแบบ Dial-Up มาจากอุปกรณ์ Smart Phone, Windows เดี๋ยวค้างไว้ก่อนครับ หรือถ้าจะลอง แต่ทำแค่ฝั่ง Office จากนั้นก็สร้าง Dial เชื่อมเข้ามาได้เลย

เครดิต sysnetcenter.com

Facebook ITAndaman