рд╣рдо рдорд┐рдХрд░реЛрдЯрд┐рдХреЛ рдкрд░ рдпреИрдВрдбреЗрдХреНрд╕ рдбреАрдПрдирдПрд╕ рдХреЗ рд▓рд┐рдП рдбреАрдбреАрдПрдирдПрд╕ рдХреНрд▓рд╛рдЗрдВрдЯ рдмрдирд╛рддреЗ рд╣реИрдВ

рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдореИрдВ рдПрдХ рдорд┐рддреНрд░ рдХреЗ рд╕рд╛рде рдПрдХ рдмрд╛рддрдЪреАрдд рдореЗрдВ рдЧрдпрд╛ рдерд╛, рдЬреЛ рдбреАрдПрдирдбреАрдПрдирдПрд╕ рдФрд░ рдЗрд╕реА рддрд░рд╣ рдХреА рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдерд╛, рдФрд░ рдореБрдЭреЗ рдпрд╛рдж рдЖрдпрд╛ рдХрд┐ рдореИрдВ рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рдПрдкреАрдЖрдИ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдПрдХ рдПрдирд╛рд▓реЙрдЧ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ рдЬреЛ рдпреИрдВрдбреЗрдХреНрд╕ рдбреАрдПрдирдПрд╕ рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рдХреЗ рдкреНрд░рдмрдВрдзрди рдХреЗ рд▓рд┐рдП рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдХрдИ рд╡рд░реНрд╖реЛрдВ рдХреЗ рд▓рд┐рдП рдЕрдм рдореЗрд░реЗ рдкрд╛рд╕ рд▓реЛрд╣реЗ рдХрд╛ рдПрдХ рдЕрджреНрднреБрдд рдордХрд╛рд░реЛрдЯрд┐рдХ RB750GL рдХрд╛ рдЯреБрдХрдбрд╝рд╛ рд╣реИ рдФрд░ рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕реЗ рд░рд┐рдХреЙрд░реНрдб рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ред
рд▓реЗрдХрд┐рди рд╣рд╛рд▓ рддрдХ, рдпрд╣ рд╕рдВрднрд╡ рдирд╣реАрдВ рдерд╛, рдХреНрдпреЛрдВрдХрд┐ рдорд┐рдХреНрд░реЛрдЯрд┐рдХ рдХреЗрд╡рд▓ рдПрдЪрдЯреАрдЯреАрдкреА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдлрд╛рдЗрд▓реЗрдВ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдпреИрдВрдбреЗрдХреНрд╕ рдПрдкреАрдЖрдИ рдХреЗрд╡рд▓ рдПрдЪрдЯреАрдкреАрдПрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдФрд░ рдлрд┐рд░ рд╡рд┐рдХреА рдорд┐рдХрд░реЛрдЯрд┐рдХ рдореЗрдВ рдЬрд╛рдиреЗ рд╕реЗ рдкреНрд░рддрд┐рд╖реНрдард┐рдд рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рджреЗрдЦреА рдЧрдИ:
рдлрд╝реЗрдЪ рдЕрдм HTTPS рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдХреЛрдИ рд╕рд░реНрдЯрд┐рдлрд┐рдХреЗрдЯ рдЪреЗрдХ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЪреЗрдХ-рд╕рд░реНрдЯрд┐рдлрд┐рдХреЗрдЯ рдХреЛ рд╣рд╛рдВ рдореЗрдВ рд╕реЗрдЯ рдХрд░рдиреЗ рд╕реЗ рд▓реЛрдХрд▓ рд╕рд░реНрдЯрд┐рдлрд┐рдХреЗрдЯ рд╕реНрдЯреЛрд░ рд╕реЗ рдЯреНрд░рд╕реНрдЯ рдЪреЗрди рд╡реЗрд░рд┐рдлрд┐рдХреЗрд╢рди рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред CRL рдХреА рдЬрд╛рдБрдЪ рдХрднреА рдирд╣реАрдВ рдХреА рдЬрд╛рддреА рд╣реИред


рдЬрдм рдорд┐рдХрд░реЛрдЯрд┐рдХ рд░рд╛рдЙрдЯрд░рдУрдПрд╕ рдХрд╛ рд╕рдВрд╕реНрдХрд░рдг 6.0rc14 рдерд╛, рддрдм рднреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд┐рдЦрдирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛ рдФрд░ рд░рд┐рд▓реАрдЬрд╝ рд╕рдВрд╕реНрдХрд░рдг 6.0 рдкрд░ рдЬрд╛рд░реА рд░рдЦрд╛
рдЦреИрд░, рдЕрдм рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╣реА:

рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдкрд╣рд▓рд╛ рднрд╛рдЧ рд╕реЗрдЯрдЕрдк рд╣реИред рд╣рдо рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд╢рд░реАрд░ рдореЗрдВ рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рд╕реНрдерд╛рдиреАрдп рдЪрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдЗрдВрдЧрд┐рдд рдХрд░рддреЗ рд╣реИрдВред рдпрд╣ рдбреЛрдореЗрди рдирд╛рдо, рдЯреЛрдХрди рдФрд░ рд░рд┐рдХреЙрд░реНрдб рдЖрдИрдбреА рд╣реИред рд╣рдо рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рдЧреБрдгреЛрдВ рд╕реЗ рд╡рд░реНрддрдорд╛рди рдЖрдИрдкреА рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВрдЧреЗ, рдЗрд╕рдХрд╛ рдирд╛рдо рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВрдЧреЗред
рдЯреЛрдХрди рдХреЗрд╡рд▓ рд╣реИрдВрдбрд▓ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЖрдИрдбреА рдХреА рд░рд╕реАрдж рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд╣реЛ рд╕рдХрддреА рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рдереАред рдЖрдк DNS рдПрдкреАрдЖрдИ рдкреНрд░рд▓реЗрдЦрди рдореЗрдВ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВ:

:local YaDNSdomain "domain.ru" :local YaDNStoken "132456789012345678901234567890" :local YaDNSrecordid "1234567" :local YaDNSTTL "300" :local YaDNSInterfaceName "PPPoE_NBN" :global YaDNSForceUpdateOnce :global YaDNSPreviousIP 

2 рд╡реИрд╢реНрд╡рд┐рдХ рдЪрд░ рд╣реИрдВ, рдЙрдирдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдФрд░ рдмрд╛рдж рдореЗрдВред

рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рджреВрд╕рд░рд╛ рднрд╛рдЧ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╕реЗ рд╡рд░реНрддрдорд╛рди рдЖрдИрдкреА рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣рд╛ рд╣реИред рдЪрд░ $ YaDNSCurrentIP рдореЗрдВ рд╣рдореЗрдВ IP рдкрддрд╛ рдорд┐рд▓реЗрдЧрд╛, рдЕрдЧрд░ рдХрд╣реАрдВ рдкрд░ рдХреЛрдИ рддреНрд░реБрдЯрд┐ рд╣реИ, рддреЛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓реЙрдЧ рдФрд░ рдПрдВрдб рдХреЗ рд▓рд┐рдП рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг рд▓рд┐рдЦреЗрдЧрд╛ред
 # get the current IP address from the interface :if ([:len [/interface find name=$YaDNSInterfaceName]] = 0 ) do={ :log info "UpdateYaDNS: No interface named $YaDNSInterfaceName , please check configuration." :error "UpdateYaDNS: No interface named $YaDNSInterfaceName , please check configuration." } :local YaDNSYaDNSCurrentIPMask [ /ip address get [/ip address find interface=$YaDNSInterfaceName] address ] :local YaDNSCurrentIP [:pick $YaDNSYaDNSCurrentIPMask 0 [:find $YaDNSYaDNSCurrentIPMask "/"]] :if ([ :typeof $YaDNSCurrentIP ] = "nothing" ) do= { :log info "UpdateDynDNS: No ip address present on $YaDNSInterfaceName, please check." :error "UpdateDynDNS: No ip address present on $YaDNSInterfaceName, please check." } 


рдореИрдВ рд╡рд┐рднрд┐рдиреНрди "рдкрд┐рдЫрд▓реЗ" рдЖрдИрдкреА рдХреЗ рд╕рд╛рде рдереЛрдбрд╝рд╛ рд╕рдордЭрд╛рддрд╛ рд╣реВрдВред рдореЗрд░реЗ рдкрд╛рд╕ рдЙрдирдореЗрдВ рд╕реЗ 2 рд╣реИрдВ:

 :if ([:typeof $YaDNSPreviousIP] = "nothing" ) do={ :global YaDNSPreviousIP 0.0.0.0 } :local YaDNSsrcpath1 ( "nsapi/get_domain_records.xml\?token=" . $YaDNStoken . "&domain=" . $YaDNSdomain ) :local YaDNSAPI [:resolve "pddimp.yandex.ru"] /tool fetch mode=https address="$YaDNSAPI" host="pddimp.yandex.ru" src-path=$YaDNSsrcpath1 dst-path="/YaDNSGetDomainRecord.txt" :local Result1 [/file get YaDNSGetDomainRecord.txt contents] :local Result2 [:pick $Result1 ([:find $Result1 "id=\"$YaDNSrecordid"]) ([:find $Result1 "id=\"$YaDNSrecordid"]+42) ] :set YaDNSDomainRecord [:pick $Result2 ([:find $Result2 ">"] + 1) ( [:find $Result2 "<"] ) ] 


рдФрд░ рдЕрдм рдЗрд╕ рдкрдЯрдХрдерд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдФрд░ рдпрд╣ рдХреНрдпреЛрдВ рд╣реБрдЖ:
 :local YaDNSAPI [:resolve "pddimp.yandex.ru"] /tool fetch mode=https address="$YaDNSAPI" host="pddimp.yandex.ru" src-path=$YaDNSsrcpath1 dst-path="/YaDNSGetDomainRecord.txt" 

рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдореИрдВрдиреЗ / рдЯреВрд▓ рд▓рд┐рдВрдЪ рдХреЙрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХрд┐рдпрд╛:
 /tool fetch mode=https address="pddimp.yandex.ru" src-path=$YaDNSsrcpath dst-path="/YaDNS.txt" 

рд▓реЗрдХрд┐рди рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реЗ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рдЗрд╕ рд╡рд┐рдХрд▓реНрдк рдХреЗ рд╕рд╛рде, рдХрдорд╛рдВрдб рдиреЗ рд▓рдЧрднрдЧ рдПрдХ рдЪреМрдерд╛рдИ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдХрд╛рдо рдХрд┐рдпрд╛ рдФрд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдиреЗ рдмрд╕ рдЗрд╕ рдмрд┐рдВрджреБ рдкрд░ рдмрд╛рдзрд┐рдд рдХрд┐рдпрд╛ред рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдореИрдВ рдХреНрдпреЛрдВ рдирд╣реАрдВ рдХрд░ рд╕рдХрд╛ред рдореИрдВрдиреЗ рдХрдВрд╕реЛрд▓ рд╕реЗ рдХрдИ рдмрд╛рд░ рдЗрд╕ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдЪрд▓рд╛рдпрд╛ рдЬрдм рддрдХ рдореБрдЭреЗ рдПрд╣рд╕рд╛рд╕ рдирд╣реАрдВ рд╣реБрдЖ рдХрд┐ рдпреИрдВрдбреЗрдХреНрд╕ рдХрднреА-рдХрднреА 404 рддреНрд░реБрдЯрд┐ рджреЗрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд╕рдордЭ рдХреНрдпреЛрдВ рдирд╣реАрдВ рдЖрдпрд╛ред рдореИрдВрдиреЗ рдорд┐рдХрд░реЛрдЯрд┐рдХ рддрдХрдиреАрдХреА рд╕рдорд░реНрдерди рдХреЗ рд╕рд╛рде рдмрд╛рдд рдХреА рдФрд░ рдЙрдиреНрд╣реЛрдВрдиреЗ рдореБрдЭреЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╡рд┐рдЪрд╛рд░ рддрдХ рдкрд╣реБрдВрдЪрд╛рдпрд╛ - рдкрд╣рд▓реЗ рдЖрдИрдкреА рдПрдкреАрдЖрдИ рдХреЛ рд╣рд▓ рдХрд░реЗрдВ, рдФрд░ рдлрд┐рд░ рдЖрдИрдкреА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЗрд╕реЗ рдПрдХреНрд╕реЗрд╕ рдХрд░реЗрдВред рдЗрд╕ рд╡рд┐рдХрд▓реНрдк рдиреЗ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд┐рдпрд╛ред

рдФрд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЕрдВрддрд┐рдо рднрд╛рдЧ, рдЕрдкрдбреЗрдЯ рдЦреБрджред рд╡реНрдпрд░реНрде рдореЗрдВ рдЦреАрдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рдпрд╛рдВрдбреЗрдХреНрд╕ рдХреЛ рдХреЗрд╡рд▓ рддрднреА рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдЬрдм рд╡рд░реНрддрдорд╛рди рдЖрдИрдкреА рдкрд┐рдЫрд▓реЗ рд╡рд╛рд▓реЗ рдореЗрдВ рд╕реЗ рдПрдХ рд╕реЗ рдореЗрд▓ рдирд╣реАрдВ рдЦрд╛рддрд╛ рд╣реИред рдЪрд░ $ YaDNSForceUpdateOnce рдорд╛рдорд▓реЗ рдореЗрдВ рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдпрджрд┐ рдЖрдкрдХреЛ рдХрд┐рд╕реА рднреА рдорд╛рдорд▓реЗ рдореЗрдВ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рддреЛ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдлрд┐рдЯ рджреЗрдЦрддреЗ рд╣реИрдВ, рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рдЕрд▓рдЧ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╣реИ рдЬреЛ рдЗрд╕реЗ рд╕рд╣реА рдкрд░ рд╕реЗрдЯ рдХрд░рддреА рд╣реИред
 :if (($YaDNSForceUpdateOnce or ($YaDNSCurrentIP != $YaDNSPreviousIP) or ($YaDNSCurrentIP != $YaDNSDomainRecord)) = true) do={ :log info "UpdateYaDNS: Try Update" :log info "UpdateYaDNS: YaDNSForceUpdateOnce = $YaDNSForceUpdateOnce" :log info "UpdateYaDNS: YaDNSPreviousIP = $YaDNSPreviousIP" :log info "UpdateYaDNS: YaDNSCurrentIP = $YaDNSCurrentIP" :log info "UpdateYaDNS: YaDNSDomainRecord = $YaDNSDomainRecord" :local YaDNSsrcpath2 ( "nsapi/edit_a_record.xml\?token=" . $YaDNStoken . "&domain=" . $YaDNSdomain . "&record_id=" . $YaDNSrecordid . "&ttl=" . $YaDNSTTL . "&content=" . $YaDNSCurrentIP ) :local YaDNSAPI [:resolve "pddimp.yandex.ru"] /tool fetch mode=https address="$YaDNSAPI" host="pddimp.yandex.ru" src-path=$YaDNSsrcpath2 dst-path="/YaDNS.txt" :local result [/file get YaDNS.txt contents] :global YaDNSResult [:pick $result ([:find $result "<error>"]+7) [:find $result "</error>"]] :if ( $YaDNSResult = "ok" ) do={ :set YaDNSForceUpdateOnce false :set YaDNSPreviousIP $YaDNSCurrentIP :log info "UpdateYaDNS: Update Success" } :log info "UpdateYaDNS: Result: $YaDNSResult" } 


рд╡рд┐рдкрдХреНрд╖ рд╣реИ рдХрд┐ рдореИрдВ рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдирд╣реАрдВ рдорд┐рд▓ рд╕рдХрддрд╛ рд╣реИ:


рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЗрд╕реЗ рд╢реЗрдбреНрдпреВрд▓рд░ рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ, рдореИрдВрдиреЗ рдЕрдВрддрд░рд╛рд▓ рдХреЛ 5 рдорд┐рдирдЯ рддрдХ рд╕реЗрдЯ рдХрд┐рдпрд╛ред
/ рд╕рд┐рд╕реНрдЯрдо рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд░рди рдХрд░реЗрдВ UpdateYaDNS

рдЖрдк PasteBin рдкрд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдкреВрд░рд╛ рдкрд╛рда рдбрд╛рдЙрдирд▓реЛрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ

рдпреБрдкреАрдбреА
pastebin
рд╕реНрдерд╛рдиреАрдп рдЪрд░ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛
 :local YaDNSsubdomain "xxx.domain.ru" 

рдЬреИрд╕рд╛ рдХрд┐ рдирд╛рдо рд╕реЗ рд╣реА рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рдЙрдкрдбреЛрдореЗрди рд╣реИред рдпрджрд┐ рдЖрдкрдХреЛ рд╕реНрд╡рдпрдВ рдбреЛрдореЗрди рдХреЗ рд░рд┐рдХреЙрд░реНрдб рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдЗрд╕ рдЪрд░ рдХреЛ $ YaDNSdomain рдХреЗ рдмрд░рд╛рдмрд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ

Source: https://habr.com/ru/post/In180497/


All Articles