04 สิงหาคม 2558

Resolve : Could not connect to internet because DNS do not responding

เนื่องจากวันนี้ได้เอา Laptop ของตัวเอง ไปต่อ Home Network ของทางบ้าน แต่ไม่สามารถ เชื่อมต่อ Internet ได้ แต่สามารถ Access เข้า Router ตัวที่เป็น DHCP Server ได้ ลอง Access Modem ที่เป็นตัวเชื่อมต่อ Internet ก็สามารถทำได้ หรือจะเอา Router ตัวที่เป็น DHCP Server  ping ไปหา google ก็ทำได้ ลอง ใช้ Ipad ต่อ internet ก็ทำได้ ก็เลยสรุปว่า Laptop เราเองนี่แหละที่เป็นปัญหา ก็เลย ลองหาสาเหตุดู ก็ได้รับคำตอบว่า DNS Server isn't responding ก็เลยลอง Reset tcp/ip ดู โดยใช้ Utility ของ Microsoft เองนี้แหละ
วิธีทำก็เปิด Command line ขึ้นมา โดยเข้าไปที่ run หรือจะใช้ shortcut windows + r ก็ได้ไม่ว่ากัน หลังจากนั้นก็พิมพ์ cmd แล้วก็กด OK หรือปุ่ม enter ถึง step นี้  command line ก็จะพร้อมให้ใช้งานแล้ว ต่อจากนั้น พิมพ์
 netsh int ip reset
ก็เป็นอันเสร็จพิธี รีเซ็ต tcp/ip หลังจาก reset tcp/ip แล้วก็จำเป็นที่จะต้อง restart เครื่อง 1 รอบ เพื่อให้ windows ทำการ ค้นหา network ใหม่ แต่หลังจาก restart เครื่องกลับมาก็สามารถ ใช้งาน internet ได้

reference site [english] : https://support.microsoft.com/en-us/kb/299357
reference site [thai] : https://support.microsoft.com/th-th/kb/299357


23 กรกฎาคม 2558

Mikrotik Script update ddns for No-IP

กับบทความที่แล้วที่ทำให้กับ DYNDNS host กันมาแล้วในบทความนี้ก็ขอเอาใจคนใช้ No-IPหน่่อย เนื่องจาก script ที่ได้จาก wiki ของ mikrotik นั้น พอใช้กับ ADSL ของ true แล้วดันไม่อัพเดทเป็น ip ของ router แต่ไป update public ip เลยกลายเป็นว่า ไม่สามารถ ใช้งานได้

environment ที่ใช้ในการ config 
mikrotik routerboard model : RB951G-2HnD
software version : 6.30
ddns : no-ip host

ISP : true internet ADSL

script ที่ใช้ ก็ตามนี้นะครับ

# Define User account&Host ddns Variables
:global ddnsuser "username"
:global ddnspass "password"
:global ddnshost "***.no-ip.**"
# Define Global Variables
:global ddnsip
:global ddnslastip
:if ([ :typeof $ddnslastip ] = nil ) do={ :global ddnslastip "0" }
:global ddnssystem ("mt-" . [/system package get system version] )
# Grab the current IP address on pppoe-out1 interface.
:global ddnsip [ /ip address get [/ip address find interface="pppoe-out1" ] address ]
:global ddnsip [:pick $ddnsip 0 [:find $ddnsip "/"]]
# Did we get an IP address to compare?
:if ([ :typeof $ddnsip ] = nil ) do={
   :log info ("DynDNS: No ip address present on pppoe-out1 interface , please check.")
} else={
# NORMAL ROUTINE FOR RUN WHEN CHANGE IP
  :if ($ddnsip != $ddnslastip) do={
    :log info ("No-IP: Sending UPDATE! IP:".$ddnsip)
    :local str "http://$ddnsuser:$ddnspass@dynupdate.no-ip.com/nic/update\?hostname=$ddnshost&myip=$ddnsip"
    /tool fetch url=$str
    :delay 1
    :local str [/file find name="No-IP.$ddnshost"];
    /file remove $str
    :global ddnslastip $ddnsip
    }
  }
เวลาใช้ก็ปรับแก้ส่วน ddnsuser, ddnspass แล้วก็ ddnshost ได้เลยครับ
ส่วน ใครที่ปรับแก้ interface pppoe-out1 ไป ก็ต้องไปแก้ชื่อให้ตรงด้วยนะครับ ไม่อย่างนั้นมันจะหยิบ ip ไป update no-ip ผิดนะครับ
หลังจากที่เราสร้าง script เสร็จเรียบร้อยเราก็ไปสร้าง scheduler มาเพื่อเรียก script ที่เราสร้างก็เป็นอันจบ ขั้นตอน เท่านี้ ก็จะสามารถ update ddns ไปให้ no-ipได้เรียบร้อยครับ

11 กรกฎาคม 2558

Script Mikrotik update DDNS

ไม่ได้เข้ามา update blog ซะนาน ก็ขอเขียน script เอาใจคนที่หันมาเล่นกับ routerboard ซะหน่อย เนื่องจากทาง เจ้าของ blog เองก็ได้ ให้ความสนใจกับตัวนี้แล้วก็มีปัญหา จากการ update ddns ของ dyndns ผ่าน เจ้า mikrotik เหมือนกัน เนื่องจาก script ที่ได้จาก wiki ของ mikrotik นั้น พอใช้กับ ADSL ของ true แล้วดันไม่อัพเดทเป็น ip ของ router แต่ไป update public ip เลยกลายเป็นว่า ไม่สามารถ ใช้งานได้

environment ที่ใช้ในการ config 
mikrotik routerboard model : RB951G-2HnD
software version : 6.30
ddns : dyndns host

ISP : true internet ADSL

script ที่ใช้ ก็ตามนี้นะครับ

# Define User account&Host ddns Variables
:global ddnsuser "username"
:global ddnspass "password"
:global ddnshost "***.dyndns.**"
# Define Global Variables
:global ddnsip
:global ddnslastip
:if ([ :typeof $ddnslastip ] = nil ) do={ :global ddnslastip "0" }
:global ddnssystem ("mt-" . [/system package get system version] )
# Grab the current IP address on pppoe-out1 interface.
:global ddnsip [ /ip address get [/ip address find interface="pppoe-out1" ] address ]
:global ddnsip [:pick $ddnsip 0 [:find $ddnsip "/"]]
# Did we get an IP address to compare?
:if ([ :typeof $ddnsip ] = nil ) do={
   :log info ("DynDNS: No ip address present on pppoe-out1 interface , please check.")
} else={
# NORMAL ROUTINE FOR RUN WHEN CHANGE IP
  :if ($ddnsip != $ddnslastip) do={
    :log info ("DynDNS: Sending UPDATE! IP:".$ddnsip)
    :local str "/nic/update\?hostname=$ddnshost&myip=$ddnsip&wildcard=NOCHG&mx=NOCHG&backmx=NOCHG"
    /tool fetch address=members.dyndns.org src-path=$str mode=http user=$ddnsuser \
        password=$ddnspass dst-path=("/DynDNS.".$ddnshost)
    :local str "http://$ddnsuser:$ddnspass@members.dyndns.org/nic/update\?hostname=$ddnshost&myip=$ddnsip&wildcard=NOCHG&mx=NOCHG&backmx=NOCHG"
    /tool fetch url=$str
    :delay 1
    :local str [/file find name="DynDNS.$ddnshost"];
    /file remove $str
    :global ddnslastip $ddnsip
    }
  }
เวลาใช้ก็ปรับแก้ส่วน username, password แล้วก็ dyndns host ได้เลยครับ
ส่วน ใครที่ปรับแก้ interface pppoe-out1 ไป ก็ต้องไปแก้ชื่อให้ตรงด้วยนะครับ ไม่อย่างนั้นมันจะหยิบ ip ไป update dyndns ผิดนะครับ
หลังจากที่เราสร้าง script เสร็จเรียบร้อยเราก็ไปสร้าง scheduler มาเพื่อเรียก script ที่เราสร้างก็เป็นอันจบ ขั้นตอน เท่านี้ ก็จะสามารถ update ddns ไปให้ dyndns ได้เรียบร้อยครับ