tinc-boot - рдмрд┐рдирд╛ рджрд░реНрдж рдХреЗ рдкреВрд░реНрдг-рдЬрд╛рд▓ рдиреЗрдЯрд╡рд░реНрдХ


рдЖрд╡рд░реНрддреА, рд╕рд╣рдХрд░реНрдореА, рд╕рдордп-рдкрд░реАрдХреНрд╖рдг, рдХрдо рд╕рдВрд╕рд╛рдзрди рдЦрдкрдд, рдкреВрд░реНрдг-рдЬрд╛рд▓ рд╡реАрдкреАрдПрди рдиреЗрдЯрд╡рд░реНрдХ рдХреЗ рд╕рд╛рде "рдкрдВрдЪ" рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдХреЗ рдмрд┐рдирд╛, рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрдиреЗрдХреНрд╢рди рдХреЗ рд╕рд╛рде рд╕реНрд╡рдЪрд╛рд▓рд┐рдд, рд╕реБрд░рдХреНрд╖рд┐рдд, рд╡рд┐рддрд░рд┐рдд, рд╕рдХрд░реНрдордХ рдХрдиреЗрдХреНрд╢рди (рдЕрд░реНрдерд╛рдд рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреЗ рдмреАрдЪ рдХреЛрдИ рд╕реАрдзреА рдкрд╣реБрдВрдЪ рдирд╣реАрдВ рд╣реЛрдиреЗ рдкрд░ рд╕рдВрджреЗрд╢ рдЕрдЧреНрд░реЗрд╖рд┐рдд рдХрд░рдирд╛)ред NAT - рдХреНрдпрд╛ рдпрд╣ рд╕рдВрднрд╡ рд╣реИ?


рд╕рд╣реА рдЙрддреНрддрд░ рд╣реИрдВ:


  • рд╣рд╛рдБ, рджрд░реНрдж рдХреЗ рд╕рд╛рде рдЕрдЧрд░ рдЖрдк рдЯрд┐рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред
  • рд╣рд╛рдБ, рдЖрд╕рд╛рди рд╣реИ рдЕрдЧрд░ рдЖрдк tinc-tinc-boot рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ

рдкрд░рд┐рдЪрдпрд╛рддреНрдордХ рдЫреЛрдбрд╝реЗрдВ рд▓рд┐рдВрдХ


рддреАрдЦрд╛ рд╡рд░реНрдгрди


рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, Habr├й рдкрд░ Tinc VPN рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдереЛрдбрд╝реА рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рдХрд╛рд╢рд┐рдд рдХреА рдЧрдИ рдереА, рд▓реЗрдХрд┐рди рдХреБрдЫ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рд▓реЗрдЦ рдЕрднреА рднреА рдорд┐рд▓ рд╕рдХрддреЗ рд╣реИрдВ:



рдЕрдВрдЧреНрд░реЗрдЬреА рднрд╛рд╖рд╛ рдХреЗ рд▓реЗрдЦ рд╕реЗ рдЕрд▓рдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:



рдореВрд▓ рд╕реНрд░реЛрдд рдореВрд▓ рдЯрд┐рдВрдХ рдореИрди рдкреНрд░рд▓реЗрдЦрди рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реИ


рддреЛ (рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд╕рд╛рдЗрдЯ рд╕реЗ рдПрдХ рдореБрдлреНрдд рдкреБрдирд░реНрдореБрджреНрд░рдг), Tinc VPN рдПрдХ рд╕реЗрд╡рд╛ ( tincd рдбреЗрдореЙрди) рд╣реИ рдЬреЛ рдиреЛрдбреНрд╕ рдХреЗ рдмреАрдЪ рдЯреНрд░реИрдлрд╝рд┐рдХ рдХреЛ рдЯрдирд▓рд┐рдВрдЧ рдФрд░ рдПрдиреНрдХреНрд░рд┐рдкреНрдЯ рдХрд░рдХреЗ рдПрдХ рдирд┐рдЬреА рдиреЗрдЯрд╡рд░реНрдХ рдХреЗ рдХрд╛рдордХрд╛рдЬ рдХреЛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИред рд╕реНрд░реЛрдд рдХреЛрдб рдЦреБрд▓рд╛ рдФрд░ GPL2 рд▓рд╛рдЗрд╕реЗрдВрд╕ рдХреЗ рддрд╣рдд рдЙрдкрд▓рдмреНрдз рд╣реИред рдХреНрд▓рд╛рд╕рд┐рдХ (рдУрдкрдирд╡реАрдкреАрдПрди) рд╕рдорд╛рдзрд╛рди рдХреА рддрд░рд╣, рдирд┐рд░реНрдорд┐рдд рд╡рд░реНрдЪреБрдЕрд▓ рдиреЗрдЯрд╡рд░реНрдХ рдЖрдИрдкреА (рдУрдПрд╕рдЖрдИ 3) рд╕реНрддрд░ рдкрд░ рдЙрдкрд▓рдмреНрдз рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐, рд╕рд╛рдорд╛рдиреНрдп рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред


рдореБрдЦреНрдп рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ:


  • рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди, рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдФрд░ рдпрд╛рддрд╛рдпрд╛рдд рдХрд╛ рд╕рдВрдкреАрдбрд╝рди;
  • рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдкреВрд░реНрдг-рдЬрд╛рд▓ рд╕рдорд╛рдзрд╛рди, рдЬрд┐рд╕рдореЗрдВ рдиреЗрдЯрд╡рд░реНрдХ рдиреЛрдбреНрд╕ рдХреЗ рд╕рд╛рде рд╕рднреА-рд╕рднреА рдореЛрдб рдореЗрдВ рдирд┐рд░реНрдорд╛рдг рдХрдиреЗрдХреНрд╢рди рд╢рд╛рдорд┐рд▓ рд╣реИрдВ рдпрд╛, рдпрджрд┐ рдпрд╣ рд▓рд╛рдЧреВ рдирд╣реАрдВ рд╣реИ, рдордзреНрдпрд╡рд░реНрддреА рдореЗрдЬрдмрд╛рдиреЛрдВ рдХреЗ рдмреАрдЪ рд╕рдВрджреЗрд╢реЛрдВ рдХреЛ рдЕрдЧреНрд░реЗрд╖рд┐рдд рдХрд░рдирд╛;
  • рдкрдВрдЪ рдиреИрдЯ;
  • рдИрдерд░рдиреЗрдЯ рд╕реНрддрд░ (рд╡рд░реНрдЪреБрдЕрд▓ рд╕реНрд╡рд┐рдЪ) рдкрд░ рдкреГрдердХ рдиреЗрдЯрд╡рд░реНрдХ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреА рдХреНрд╖рдорддрд╛;
  • рдХрдИ рдУрдПрд╕ рд╕рдорд░реНрдерди: рд▓рд┐рдирдХреНрд╕, рдлреНрд░реАрдмреАрдПрд╕рдбреА, рдУрдПрд╕ рдПрдХреНрд╕, рд╕реЛрд▓рд╛рд░рд┐рд╕, рд╡рд┐рдВрдбреЛрдЬ, рдЖрджрд┐ред

Tinc рд╡рд┐рдХрд╛рд╕ рдХреА рджреЛ рд╢рд╛рдЦрд╛рдПрдБ рд╣реИрдВ: 1.0.x (рд▓рдЧрднрдЧ рд╕рднреА рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ) рдФрд░ 1.1 (рд╢рд╛рд╢реНрд╡рдд рдмреАрдЯрд╛)ред рд▓реЗрдЦ рд╣рд░ рдЬрдЧрд╣ рд╕рдВрд╕реНрдХрд░рдг 1.0.x рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред


Tinc 1.1x рдХрдИ рдирдИ рдкреНрд░рдореБрдЦ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ: рд╕рд╣реА рдлреЙрд░рд╡рд░реНрдб рд╕рд┐рдХреНрдпреЛрд░рд┐рдЯреА, рд╕рд░рд▓реАрдХреГрдд рдХреНрд▓рд╛рдЗрдВрдЯ рдХрдиреЗрдХреНрдЯрд┐рд╡рд┐рдЯреА (рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ tinc-boot рдЬрдЧрд╣) рдФрд░ рдЖрдо рддреМрд░ рдкрд░ рдЕрдзрд┐рдХ рд╡рд┐рдЪрд╛рд░рд╢реАрд▓ рдбрд┐рдЬрд╛рдЗрдиред

рд╣рд╛рд▓рд╛рдВрдХрд┐, рдлрд┐рд▓рд╣рд╛рд▓, рдПрдХ рд╕реНрдерд┐рд░ рд╕рдВрд╕реНрдХрд░рдг - 1.0.x рдХреЛ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд╡реЗрдмрд╕рд╛рдЗрдЯ рдкрд░ рдЗрдВрдЧрд┐рдд рдФрд░ рд╣рд╛рдЗрд▓рд╛рдЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП 1.1 рд╢рд╛рдЦрд╛ рдХреЗ рд╕рднреА рд▓рд╛рднреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп, рдЖрдкрдХреЛ рдЧреИрд░-рдЕрдВрддрд┐рдо рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд╕рднреА рдлрд╛рдпрджреЗ рдФрд░ рдиреБрдХрд╕рд╛рди рдХрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдореЗрд░реЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ, рдкреНрд░рддреНрдпрдХреНрд╖ рдХрдиреЗрдХреНрд╢рди рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реЛрдиреЗ рдкрд░ рд╕рдВрджреЗрд╢реЛрдВ рдХреЛ рдЕрдЧреНрд░реЗрд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдордЬрдмреВрдд рд╕рдВрднрд╛рд╡рдирд╛рдУрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИред рдЙрд╕реА рд╕рдордп, рд░реВрдЯрд┐рдВрдЧ рдЯреЗрдмрд▓ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдмрдирд╛рдП рдЬрд╛рддреЗ рд╣реИрдВред рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдПрдХ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдкрддреЗ рдХреЗ рдмрд┐рдирд╛ рдиреЛрдбреНрд╕ рдЦреБрдж рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдпрд╛рддрд╛рдпрд╛рдд рдкрд╛рд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред



рддреАрди рд╕рд░реНрд╡рд░реЛрдВ (рдЪреАрди, рд░реВрд╕, рд╕рд┐рдВрдЧрд╛рдкреБрд░) рдФрд░ рддреАрди рдЧреНрд░рд╛рд╣рдХреЛрдВ (рд░реВрд╕, рдЪреАрди рдФрд░ рдлрд┐рд▓реАрдкреАрдВрд╕) рдХреЗ рд╕рд╛рде рд╕реНрдерд┐рддрд┐ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ:


  • рд╕рд░реНрд╡рд░реЛрдВ рдХрд╛ рдПрдХ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдкрддрд╛ рд╣реИ, NAT рдХреЗ рдкреАрдЫреЗ рдЧреНрд░рд╛рд╣рдХ;
  • ILV рд╕рдВрднрд╛рд╡рд┐рдд рдкреНрд░реЙрдХреНрд╕реА рдХреЗ рдЕрдЧрд▓реЗ рдкреНрд░рддрд┐рдмрдВрдз рдХреЗ рджреМрд░рд╛рди "рдЯреЗрд▓реАрдЧреНрд░рд╛рдо" рдХреЛ рдЫреЛрдбрд╝рдХрд░ рд╕рднреА рд╣реЛрд╕реНрдЯрд░реНрд╕ рдХреЛ рдЪреАрди рдиреЗ рд░реЛрдХ рджрд┐рдпрд╛;
  • рдЪреАрди рдХреА рдиреЗрдЯрд╡рд░реНрдХ рд╕реАрдорд╛ <-> RF рдЕрд╕реНрдерд┐рд░ рд╣реИ рдФрд░ рдЧрд┐рд░ рд╕рдХрддреА рд╣реИ (ILV рдФрд░ / рдпрд╛ рдЪреАрдиреА рд╕реЗрдВрд╕рд░ рдХреЗ рдХрд╛рд░рдг);
  • рд╕рд┐рдВрдЧрд╛рдкреБрд░ рд╕реЗ рдХрдиреЗрдХреНрд╢рди рд╕рд╢рд░реНрдд рд░реВрдк рд╕реЗ рд╕реНрдерд┐рд░ (рд╡реНрдпрдХреНрддрд┐рдЧрдд рдЕрдиреБрднрд╡) рд╣реИрдВ;
  • рдордиреАрд▓рд╛ (рдлрд┐рд▓реАрдкреАрдВрд╕) рдХрд┐рд╕реА рдХреЗ рд▓рд┐рдП рдЦрддрд░рд╛ рдирд╣реАрдВ рд╣реИ, рдФрд░ рдЗрд╕рд▓рд┐рдП рд╕рднреА рдХреЗ рд▓рд┐рдП рдЕрдиреБрдорддрд┐ рд╣реИ (рд╣рд░ рдХрд┐рд╕реА рдФрд░ рд╕рдм рдХреБрдЫ рд╕реЗ рджреВрд░реА рдХреЗ рдХрд╛рд░рдг)ред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╢рдВрдШрд╛рдИ рдФрд░ рдореЙрд╕реНрдХреЛ рдХреЗ рдмреАрдЪ рдЯреНрд░реИрдлрд╝рд┐рдХ рд╡рд┐рдирд┐рдордп, рдЯрд┐рдиреНрд╕реНрдХ рдХреЗ рдкрд░рд┐рджреГрд╢реНрдп рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ (рд▓рдЧрднрдЧ):


  1. рдореВрд▓ рд╕реНрдерд┐рддрд┐: рдорд╛рд╕реНрдХреЛ <-> рд░реВрд╕рд┐рдпрд╛-рдПрд╕рдЖрд░рд╡реА <-> рдЪреАрди-рдПрд╕рдЖрд░рд╡реА <-> рд╢рдВрдШрд╛рдИ
  2. ILV рдиреЗ рдЪреАрди рд╕реЗ рдХрдиреЗрдХреНрд╢рди рдмрдВрдж рдХрд░ рджрд┐рдпрд╛: рдорд╛рд╕реНрдХреЛ <-> рд░реВрд╕рд┐рдпрд╛-рдПрд╕рдЖрд░рд╡реА <-> рдордиреАрд▓рд╛ <-> рд╕рд┐рдВрдЧрд╛рдкреБрд░ <-> рд╢рдВрдШрд╛рдИ
  3. (2 рдХреЗ рдмрд╛рдж) рд╕рд┐рдВрдЧрд╛рдкреБрд░ рдореЗрдВ рд╕рд░реНрд╡рд░ рдХреА рд╡рд┐рдлрд▓рддрд╛ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЪреАрди рдореЗрдВ рдЯреНрд░реИрдлрд╝рд┐рдХ рдХреЛ рд╕рд░реНрд╡рд░ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрддред

рдЬрдм рднреА рд╕рдВрднрд╡ рд╣реЛ, рдЯреАрдЖрдИрдПрди рдирд╛реЕрдХ рдХреЗ рдкреАрдЫреЗ рджреЛ рдиреЛрдбреНрд╕ рдХреЗ рдмреАрдЪ рдЫрд┐рджреНрд░ рдХрд░рдХреЗ рдПрдХ рд╕реАрдзрд╛ рд╕рдВрдмрдВрдз рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддрд╛ рд╣реИред


рдЯрд┐рдВрдЪрдХ рд╡рд┐рдиреНрдпрд╛рд╕ рдХрд╛ рдПрдХ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдкрд░рд┐рдЪрдп


Tinc рдПрдХ рдЖрд╕рд╛рди-рд╕реЗ-рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рд╕реЗрд╡рд╛ рдХреЗ рд░реВрдк рдореЗрдВ рддреИрдирд╛рдд рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдХреБрдЫ рдЧрд▓рдд рд╣реЛ рдЧрдпрд╛ - рдПрдХ рдирдпрд╛ рдиреЛрдб рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдпрд╣ рдиреНрдпреВрдирддрдо рдЖрд╡рд╢реНрдпрдХ рд╣реИ:


  • рд╣реЛрд╕реНрдЯ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди (рдкреНрд░рдХрд╛рд░, рдирд╛рдо) ( tinc.conf ) рдХрд╛ рд╡рд░реНрдгрди рдХрд░реЗрдВ;
  • рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ (рд╕рдмрдиреЗрдЯ, рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдкрддреЗ) ( hosts/ ) hosts/ ;
  • рдПрдХ рдХреБрдВрдЬреА рдмрдирд╛рдПрдВ;
  • рдиреЛрдб рдПрдбреНрд░реЗрд╕ рдФрд░ рд╕рдВрдмрдВрдзрд┐рдд рдорд╛рдкрджрдВрдбреЛрдВ ( tinc-up ) рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рд╡рд╛рд▓реА рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдмрдирд╛рдПрдВ;
  • рдпрд╣ рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд▓рд╛рд╣ рджреА рдЬрд╛рддреА рд╣реИ рдЬреЛ tinc-down ( tinc-down ) рдХреЗ рдмрд╛рдж рдмрдирд╛рдП рдЧрдП рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рд╕рд╛рдл рдХрд░рддреА рд╣реИред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдореМрдЬреВрджрд╛ рдиреЗрдЯрд╡рд░реНрдХ рд╕реЗ рдХрдиреЗрдХреНрдЯ рд╣реЛрдиреЗ рдкрд░, рдЖрдкрдХреЛ рдореМрдЬреВрджрд╛ рд╣реЛрд╕реНрдЯ рдХреБрдВрдЬреА рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреА рдЪрд╛рд╣рд┐рдП рдФрд░ рдЕрдкрдирд╛ рд╕реНрд╡рдпрдВ рдХрд╛ рдкреНрд░рджрд╛рди рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред


Ie: рджреВрд╕рд░реЗ рдиреЛрдб рдХреЗ рд▓рд┐рдП



рддреАрд╕рд░реЗ рдХреЗ рд▓рд┐рдП



рджреЛ-рддрд░рдлрд╛ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝реЗрд╢рди (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, unison ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп, рдЕрддрд┐рд░рд┐рдХреНрдд рд╕рдВрдЪрд╛рд▓рди рдХреА рд╕рдВрдЦреНрдпрд╛ рдмрдврд╝рдХрд░ рдПрди рдЯреБрдХрдбрд╝реЗ рд╣реЛ рдЬрд╛рддреА рд╣реИ, рдЬрд╣рд╛рдВ рдПрди рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдиреЛрдбреНрд╕ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╣реИред


рд╣рдореЗрдВ Tinc рдХреЗ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рд╢реНрд░рджреНрдзрд╛рдВрдЬрд▓рд┐ рджреЗрдиреА рдЪрд╛рд╣рд┐рдП - рдиреЗрдЯрд╡рд░реНрдХ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдмрд╕ рдХреБрдВрдЬрд┐рдпреЛрдВ рдХрд╛ рдЖрджрд╛рди-рдкреНрд░рджрд╛рди рдХрд░реЗрдВ
рдиреЛрдбреНрд╕ (рдмреВрдЯрдиреЛрдб) рдореЗрдВ рд╕реЗ рдХреЗрд╡рд▓ рдПрдХ рдХреЗ рд╕рд╛рдеред рд╕реЗрд╡рд╛ рд╢реБрд░реВ рдХрд░рдиреЗ рдФрд░ рдкреНрд░рддрд┐рднрд╛рдЧреА рд╕реЗ рдЬреБрдбрд╝рдиреЗ рдХреЗ рдмрд╛рдж, рдЯрд┐рдирдХреЛ рдХреЛ рдЯреЛрдкреЛрд▓реЙрдЬреА рдорд┐рд▓реЗрдЧреА
рдиреЗрдЯрд╡рд░реНрдХ рдФрд░ рд╕рднреА рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдЧрд╛ред

рд╣рд╛рд▓рд╛рдБрдХрд┐ , рдпрджрд┐ рдмреВрдЯ рд╣реЛрд╕реНрдЯ рдЕрдиреБрдкрд▓рдмреНрдз рд╣реИ, рдФрд░ tinc рдлрд┐рд░ рд╕реЗ рдЪрд╛рд▓реВ рд╣реЛ рдЧрдпрд╛ рд╣реИ, рддреЛ рдХреЛрдИ рд░рд╛рд╕реНрддрд╛ рдирд╣реАрдВ рд╣реИ
рд╡рд░реНрдЪреБрдЕрд▓ рдиреЗрдЯрд╡рд░реНрдХ рд╕реЗ рдХрдиреЗрдХреНрдЯ рд╣реЛрдЧрд╛ред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЗрд╕ рдХреА рдЕрдХрд╛рджрдорд┐рдХ рдкреНрд░рд▓реЗрдЦрди (рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд╡рд░реНрдгрд┐рдд рд╣реИ, рд▓реЗрдХрд┐рди рдХреБрдЫ рдЙрджрд╛рд╣рд░рдг) рдХреЗ рд╕рд╛рде рдорд┐рд▓рдХрд░, рд╕реИрдВрдХрдбрд╝реЛрдВ рдХреА рднрд╛рд░реА рд╕рдВрднрд╛рд╡рдирд╛рдПрдВ, рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡реНрдпрд╛рдкрдХ рдХреНрд╖реЗрддреНрд░ рдкреНрд░рджрд╛рди рдХрд░рддреА рд╣реИрдВред


рдЯрд╛рдЗрдВрдХ-рдмреВрдЯ рдмрдирд╛рдиреЗ рдХреЗ рдХрд╛рд░рдг


рдпрджрд┐ рд╣рдо рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╕рд╛рдорд╛рдиреНрдп рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рддреИрдпрд╛рд░ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ:


  1. рдиреНрдпреВрдирддрдо рдкреНрд░рдпрд╛рд╕ рдХреЗ рд╕рд╛рде рдПрдХ рдирдИ рд╕рд╛рдЗрдЯ рдмрдирд╛рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ;
    • рд╕рдВрднрд╛рд╡рд┐рдд рд░реВрдк рд╕реЗ, рдПрдХ рдирдпрд╛ рдиреЛрдб рдмрдирд╛рдиреЗ рдФрд░ рдиреЗрдЯрд╡рд░реНрдХ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдФрд╕рдд рд╡рд┐рд╢реЗрд╖рдЬреНрдЮ (рдПрдХ рдЬреИрд╕реЗ) рдХреЛ рдПрдХ рдЫреЛрдЯреА рд▓рд╛рдЗрди рджреЗрдирд╛ рд╕рдВрднрд╡ рдмрдирд╛рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ;
  2. рд╕рднреА рд╕рдХреНрд░рд┐рдп рдиреЛрдбреНрд╕ рдХреЗ рдмреАрдЪ рдЪрд╛рдмрд┐рдпреЛрдВ рдХрд╛ рд╕реНрд╡рдд: рд╡рд┐рддрд░рдг рдкреНрд░рджрд╛рди рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ;
  3. рдмреВрдЯрдиреЙрдб рдФрд░ рдирдП рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рдмреАрдЪ рдПрдХ рд╕рд░рд▓реАрдХреГрдд рдХреБрдВрдЬреА рд╡рд┐рдирд┐рдордп рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдкреНрд░рджрд╛рди рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред

рдмреВрдЯрдиреЛрдб - рдПрдХ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдкрддреЗ рдХреЗ рд╕рд╛рде рдПрдХ рдиреЛрдб (рдКрдкрд░ рджреЗрдЦреЗрдВ);

рджрд╛рд╡реЗ 2 рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЗ рдХрд╛рд░рдг, рдпрд╣ рддрд░реНрдХ рджрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдмреВрдЯрдиреЛрдб рдФрд░ рдирдП рдиреЛрдб рдХреЗ рдмреАрдЪ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЖрджрд╛рди-рдкреНрд░рджрд╛рди рдХреЗ рдмрд╛рдж?
рдиреЛрдб рдХреЛ рдиреЗрдЯрд╡рд░реНрдХ рд╕реЗ рдЬреЛрдбрд╝рдирд╛, рдирдИ рдХреБрдВрдЬреА рдХрд╛ рд╡рд┐рддрд░рдг рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд╣реЛрдЧрд╛ред


рдпрд╣ рдЗрди рдХрд╛рд░реНрдпреЛрдВ рд╣реИ рдХрд┐ tinc-boot рдкреНрд░рджрд░реНрд╢рди рдХрд░рддрд╛ рд╣реИред


tinc-рдмреВрдЯ рдПрдХ рд╕реНрд╡-рд╕рдореНтАНрдорд┐рд▓рд┐рдд рд╣реИ, tinc рдЕрд▓рд╛рд╡рд╛, рдУрдкрди рд╕реЛрд░реНрд╕ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЬреЛ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ:


  • рдПрдХ рдирдП рдиреЛрдб рдХреА рд╕рд░рд▓ рд░рдЪрдирд╛;
  • рдореМрдЬреВрджрд╛ рдиреЗрдЯрд╡рд░реНрдХ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрдиреЗрдХреНрд╢рди;
  • рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рдкреИрд░рд╛рдореАрдЯрд░ рд╕реЗрдЯ рдХрд░рдирд╛;
  • рд╢рд╣рдж рдиреЛрдбреНрд╕ рдХреЗ рд▓рд┐рдП рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╡рд┐рддрд░рдгред

рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░


Tinc tinc-boot рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЪрд╛рд░ рдШрдЯрдХ рд╣реЛрддреЗ рд╣реИрдВ: рдПрдХ рдмреВрдЯрдиреЛрдб рд╕рд░реНрд╡рд░, рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╡рд┐рддрд░рдг рдкреНрд░рдмрдВрдзрди рд╕рд░реНрд╡рд░ рдФрд░ RPC рдкреНрд░рдмрдВрдзрди рдЗрд╕рдХреЗ рд▓рд┐рдП рдЖрджреЗрд╢ рджреЗрддрд╛ рд╣реИ, рд╕рд╛рде рд╣реА рдПрдХ рдиреЛрдб рдкреАрдврд╝реА рдореЙрдбреНрдпреВрд▓ рднреАред


рдиреЛрдб рдЬрдирд░реЗрд╢рди рдореЙрдбреНрдпреВрд▓


рдиреЛрдб рдЬрдирд░реЗрд╢рди рдореЙрдбреНрдпреВрд▓ ( tinc-boot gen ) рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП tinc рдХреЗ рд▓рд┐рдП рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рдлрд╛рдЗрд▓реЗрдВ рдмрдирд╛рддрд╛ рд╣реИред


рд╕рд░рд▓реАрдХреГрдд, рдЗрд╕рдХреЗ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреЛ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:


  1. рд╣реЛрд╕реНрдЯ рдирд╛рдо, рдиреЗрдЯрд╡рд░реНрдХ, IP рдкреИрд░рд╛рдореАрдЯрд░, рдкреЛрд░реНрдЯ, рд╕рдмрдиреЗрдЯ рдорд╛рд╕реНрдХ рдЖрджрд┐ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реЗрдВред
  2. рдЙрдиреНрд╣реЗрдВ рд╕рд╛рдорд╛рдиреНрдпреАрдХреГрдд рдХрд░реЗрдВ (рдХреБрдЫ рдореВрд▓реНрдпреЛрдВ рдкрд░ рдПрдХ рд╕реАрдорд╛ рд╣реЛрддреА рд╣реИ) рдФрд░ рд▓рд╛рдкрддрд╛ рд▓реЛрдЧреЛрдВ рдХреЛ рдмрдирд╛рддреЗ рд╣реИрдВ
  3. рдорд╛рдкрджрдВрдбреЛрдВ рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВ
  4. рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ, рддреЛ рд╕рд┐рд╕реНрдЯрдо рдкрд░ рдЯрд┐рд╢реВ-рдмреВрдЯ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ (рд╡рд┐рдирд┐рдореЗрдп)
  5. tinc-up , tinc-down , subnet-up , subnet-down рдмрдирд╛рдПрдБ
  6. tinc.conf рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди tinc.conf рдмрдирд╛рдПрдБ
  7. hosts/ рдмрдирд╛рдПрдБ hosts/
  8. рдореБрдЦреНрдп рдкреАрдврд╝реА рдХрд╛ рдкреНрд░рджрд░реНрд╢рди рдХрд░реЗрдВ
  9. рдмреВрдЯрдиреЛрдб рдХреЗ рд╕рд╛рде рдкреНрд░рдореБрдЦ рд╡рд┐рдирд┐рдордп рдХрд░реЗрдВ
    1. рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдХреБрдВрдЬреА рдХреЗ рд╕рд╛рде рдЕрдкрдиреА рд╕реНрд╡рдпрдВ рдХреА рд╣реЛрд╕реНрдЯ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдПрдиреНрдХреНрд░рд┐рдкреНрдЯ рдФрд░ рд╕рд╛рдЗрди рдЗрди рдХрд░реЗрдВ, xchacha20poly1305, рдЬрд╣рд╛рдВ рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди рдХреБрдВрдЬреА рдЯреЛрдХрди рд╕реЗ sha256 рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдкрд░рд┐рдгрд╛рдо рд╣реИ, рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдЖрд░рдВрднреАрдХрд░рдг рд╡реЗрдХреНрдЯрд░ (nounce) рдФрд░ рд╣реЛрд╕реНрдЯ рдирд╛рдо рдкрд░ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХрд░реЗрдВред
    2. HTTP рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдмреВрдЯрдиреЛрдб рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛ рднреЗрдЬреЗрдВ
    3. рдореВрд▓ рдЙрддреНрддрд░ рдФрд░ рдЙрд╕реА рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдмреВрдЯ рдиреЛрдб рдХреЗ рдирд╛рдо рд╡рд╛рд▓реЗ X-Node рд╣реЗрдбрд░ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдЙрддреНрддрд░ рдФрд░ рдбрд┐рдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реЗрдВ
    4. рд╕рдлрд▓ рд╣реЛрдиреЗ рдкрд░, hosts/ рдореЗрдВ рдкреНрд░рд╛рдкреНрдд рдХреА рдЧрдИ рдХреБрдВрдЬреА рдХреЛ рд╕реЗрд╡ рдХрд░реЗрдВ hosts/ рдФрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВ (рдЬреИрд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд┐рдлрд╛рд░рд┐рд╢) рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВ
    5. рдЕрдиреНрдпрдерд╛, рдмреВрдЯ рдиреЛрдб рдХреА рд╕реВрдЪреА рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкрддреЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ рдФрд░ рдЪрд░рдг 2 рд╕реЗ рджреЛрд╣рд░рд╛рдПрдВ
  10. рд╕реЗрд╡рд╛ рд╢реБрд░реВ рдХрд░рдиреЗ рдкрд░ рд╕рд┐рдлрд╛рд░рд┐рд╢реЗрдВ рджрд┐рдЦрд╛рдПрдВ

SHA-256 рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд░реВрдкрд╛рдВрддрд░рдг рдХреЗрд╡рд▓ 32 рдмрд╛рдЗрдЯ рдХреА рдХреБрдВрдЬреА рдХреЛ рд╕рд╛рдорд╛рдиреНрдп рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ

рдкрд╣рд▓реЗ рдиреЛрдб рдХреЗ рд▓рд┐рдП (рдЕрд░реНрдерд╛рдд, рдЬрдм рдмреВрдЯ рдкрддреЗ рдХреЗ рд░реВрдк рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рднреА рдирд╣реАрдВ рд╣реИ), рдЪрд░рдг 9 рдХреЛ рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдзреНрд╡рдЬ - --standalone ред


рдЙрджрд╛рд╣рд░рдг 1 - рдкрд╣рд▓реА рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╕рд╛рдЗрдЯ рдмрдирд╛рдирд╛


рдЬрдирддрд╛ рдХрд╛ рдкрддрд╛ 1.2.3.4


sudo tinc-boot gen --standalone -a 1.2.3.4


  • -a рдзреНрд╡рдЬ рдЖрдкрдХреЛ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд░реВрдк рд╕реЗ рдЙрдкрд▓рдмреНрдз рдкрддреЛрдВ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ

рдЙрджрд╛рд╣рд░рдг 1 - рдиреЗрдЯрд╡рд░реНрдХ рдореЗрдВ рдПрдХ рдЧреИрд░-рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдиреЛрдб рдЬреЛрдбрд╝рдирд╛


рдмреВрдЯ рдиреЛрдб рдКрдкрд░ рдХреЗ рдЙрджрд╛рд╣рд░рдг рд╕реЗ рд▓рд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдореЗрдЬрдмрд╛рди рдХреЗ рдкрд╛рд╕ рдЯрд┐рдВрдЪ-рдмреВрдЯ рдмреВрдЯрдиреЛрдб рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП (рдмрд╛рдж рдореЗрдВ рд╡рд░реНрдгрд┐рдд)ред


sudo tinc-boot gen --token "MY TOKEN" http://1.2.3.4:8655


  • - --token рдзреНрд╡рдЬ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдЯреЛрдХрди рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИ

рдмреВрдЯрд╕реНрдЯреНрд░реИрдк рдореЙрдбреНрдпреВрд▓


tinc-boot bootnode рдирдП рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рд╕рд╛рде рдкреНрд░рд╛рдердорд┐рдХ рдХреБрдВрдЬреА рд╡рд┐рдирд┐рдордп рдХреЗ рд▓рд┐рдП рдПрдкреАрдЖрдИ рдХреЗ рд╕рд╛рде рдПрдХ HTTP рд╕рд░реНрд╡рд░ рдЙрдард╛рддрд╛ рд╣реИред


рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдкреЛрд░реНрдЯ 8655 ред


рд╕рд░рд▓реАрдХреГрдд, рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреЛ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:


  1. рдПрдХ рдЧреНрд░рд╛рд╣рдХ рд╕реЗ рдПрдХ рдЕрдиреБрд░реЛрдз рд╕реНрд╡реАрдХрд╛рд░ рдХрд░реЗрдВ
  2. рдЕрдиреБрд░реЛрдз рдХреЗ рджреМрд░рд╛рди рдкрд╛рд░рд┐рдд рдЖрд░рдВрднреАрдХрд░рдг рд╡реЗрдХреНрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП xchacha20poly1305 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрдиреБрд░реЛрдз рдХреЛ рдЕрд╕реНрд╡реАрдХреГрдд рдФрд░ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░реЗрдВ, рдФрд░ рдЬрд╣рд╛рдВ рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди рдХреБрдВрдЬреА рдЯреЛрдХрди рд╕реЗ sha256 рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдкрд░рд┐рдгрд╛рдо рд╣реИред
  3. рдирд╛рдо рдЪреЗрдХ рдХрд░реЗрдВ
  4. рдпрджрд┐ рдЕрднреА рддрдХ рд╕рдорд╛рди рдирд╛рдо рд╡рд╛рд▓реА рдХреЛрдИ рдлрд╝рд╛рдЗрд▓ рдирд╣реАрдВ рд╣реИ, рддреЛ рдлрд╝рд╛рдЗрд▓ рд╕рд╣реЗрдЬреЗрдВ
  5. рдКрдкрд░ рдмрддрд╛рдП рдЧрдП рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрдкрдиреА рдЦреБрдж рдХреА рд╣реЛрд╕реНрдЯ рдлрд╝рд╛рдЗрд▓ рдФрд░ рдирд╛рдо рдХреЛ рдПрдиреНрдХреНрд░рд┐рдкреНрдЯ рдХрд░реЗрдВ рдФрд░ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХрд░реЗрдВ
  6. рдЖрдЗрдЯрдо 1 рдкрд░ рд▓реМрдЯреЗрдВ

рд╕рд╛рде рдореЗрдВ, рдкреНрд░рд╛рдердорд┐рдХ рдХреБрдВрдЬреА рд╡рд┐рдирд┐рдордп рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ:



рдЙрджрд╛рд╣рд░рдг 1 - рдбрд╛рдЙрдирд▓реЛрдб рдиреЛрдб рд╢реБрд░реВ рдХрд░рдирд╛


рдпрд╣ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдиреЛрдб рдХрд╛ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдЖрд░рдВрднреАрдХрд░рдг рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ ( tinc-boot gen )


tinc-boot bootnode --token "MY TOKEN"


  • - --token рдзреНрд╡рдЬ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдЯреЛрдХрди рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИред рдореЗрдЬрдмрд╛рди рд╕реЗ рдЬреБрдбрд╝рдиреЗ рд╡рд╛рд▓реЗ рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреЗ рд▓рд┐рдП рднреА рдРрд╕рд╛ рд╣реА рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдЙрджрд╛рд╣рд░рдг 2 - рдбрд╛рдЙрдирд▓реЛрдб рдиреЛрдб рдХреЛ рд╕реЗрд╡рд╛ рдХреЗ рд░реВрдк рдореЗрдВ рд╢реБрд░реВ рдХрд░рдирд╛


tinc-boot bootnode --service --token "MY TOKEN"


  • --service рдзреНрд╡рдЬ рдПрдХ рдкреНрд░рдгрд╛рд▓реА рд╕реЗрд╡рд╛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП --service рд╣реИ (рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП tinc-boot-dnet.service )
  • - --token рдзреНрд╡рдЬ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдЯреЛрдХрди рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИред рдореЗрдЬрдмрд╛рди рд╕реЗ рдЬреБрдбрд╝рдиреЗ рд╡рд╛рд▓реЗ рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреЗ рд▓рд┐рдП рднреА рдРрд╕рд╛ рд╣реА рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдореБрдЦреНрдп рд╡рд┐рддрд░рдг рдореЙрдбреНрдпреВрд▓


рд╡реАрдкреАрдПрди рдХреЗ рдЕрдВрджрд░ рдЕрдиреНрдп рдиреЛрдбреНрд╕ рдХреЗ рд╕рд╛рде рдХреБрдВрдЬреА рдХрд╛ рдЖрджрд╛рди-рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдВрдЬреА рд╡рд┐рддрд░рдг рдореЙрдбреНрдпреВрд▓ ( tinc-boot monitor ) рдПрдХ рдПрдкреАрдЖрдИ рдХреЗ рд╕рд╛рде рдПрдХ HTTP рд╕рд░реНрд╡рд░ рдЙрдард╛рддрд╛ рд╣реИред рдпрд╣ рдиреЗрдЯрд╡рд░реНрдХ рджреНрд╡рд╛рд░рд╛ рдЬрд╛рд░реА рдХрд┐рдП рдЧрдП рдкрддреЗ рдкрд░ рддрдп рд╣реЛрддрд╛ рд╣реИ (рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдкреЛрд░реНрдЯ 1655 , рдХрдИ рдиреЗрдЯрд╡рд░реНрдХ рдХреЗ рд╕рд╛рде рдХреЛрдИ рд╡рд┐рд╡рд╛рдж рдирд╣реАрдВ рд╣реЛрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рдиреЗрдЯрд╡рд░реНрдХ рдХрд╛ рдЕрдкрдирд╛ рдкрддрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП)ред


рдореЙрдбреНрдпреВрд▓ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ: рдЖрдкрдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рдореЛрдб рдореЗрдВ рдЗрд╕рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред


рдпрд╣ рдореЙрдбреНрдпреВрд▓ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рддрдм рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ рдЬрдм рдиреЗрдЯрд╡рд░реНрдХ рдКрдкрд░ рд╣реИ ( tinc-up рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ) рдФрд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдмрдВрдж рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм рдпрд╣ рдмрдВрдж рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ ( tinc-down рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ)ред


рд╕рдВрдЪрд╛рд▓рди рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ:


  • рдЕрдкрдирд╛ рдиреЛрдб рдлрд╝рд╛рдЗрд▓ рджреЗрдВ GET / рджреЗрдВ
  • POST /rpc/watch?node=<>&subnet=<> - рдПрдХ рдлрд╝рд╛рдЗрд▓ рдХреЛ рджреВрд╕рд░реЗ рдиреЛрдб рд╕реЗ рдЪреБрдиреЗрдВ, рдорд╛рди рд▓реЗрдВ рдХрд┐ рдЗрд╕ рдкрд░ рдПрдХ рд╕рдорд╛рди рд╕реЗрд╡рд╛ рдЪрд▓ рд░рд╣реА рд╣реИред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдкреНрд░рдпрд╛рд╕ 10 рд╕реЗрдХрдВрдб, рд╕рдлрд▓рддрд╛ рдпрд╛ рд░рджреНрдж рд╣реЛрдиреЗ рддрдХ рд╣рд░ 30 рд╕реЗрдХрдВрдб рдкрд░ рд╕рдордпрдмрджреНрдз рд╣реЛрддреЗ рд╣реИрдВред
  • POST /rpc/forget?node=<> - рджреВрд╕рд░реЗ рдиреЛрдб рд╕реЗ рдлрд╝рд╛рдЗрд▓ рд▓реЗрдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рдпрд╛рд╕ (рдпрджрд┐ рдХреЛрдИ рд╣реЛ) рдЫреЛрдбрд╝ рджреЗрдВ
  • POST /rpc/kill - рд╕реЗрд╡рд╛ рд╕рдорд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ

рдЗрд╕рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд, рд╣рд░ рдорд┐рдирдЯ (рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ) рдФрд░ рдЬрдм рдПрдХ рдирдИ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдкреНрд░рд╛рдкреНрдд рд╣реЛрддреА рд╣реИ, рддреЛ рд╕рд╣реЗрдЬреЗ рдЧрдП рдиреЛрдбреНрд╕ рдХрд╛ рдЕрдиреБрдХреНрд░рдордг рдирдП рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдиреЛрдбреНрд╕ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЬрдм Address рдзреНрд╡рдЬ рдХреЗ рд╕рд╛рде рдиреЛрдбреНрд╕ рдХрд╛ Address рд▓рдЧрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдкреБрдирдГ рдЖрд░рдВрдн рдХрд░рддреЗ рд╕рдордп рдХрдиреЗрдХреНрд╢рди рдХреА рд╕рд┐рдлрд╛рд░рд┐рд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП tinc.conf рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдПрдХ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдЬреЛрдбрд╝реА рдЬрд╛рддреА рд╣реИред


рдореБрдЦреНрдп рд╡рд┐рддрд░рдг рдореЙрдбреНрдпреВрд▓ (рдкреНрд░рдмрдВрдзрди)


рдЬрдм рдПрдХ рдирдпрд╛ рдиреЛрдб ( subnet-up рд╕реНрдХреНрд░рд┐рдкреНрдЯ) рдХрд╛ рдкрддрд╛ рдЪрд▓рд╛ рдФрд░ ( subnet-down рд╕реНрдХреНрд░рд┐рдкреНрдЯ) рдХреНрд░рдорд╢рдГ рдмрдВрдж ( subnet-down subnet-up рд╕реНрдХреНрд░рд┐рдкреНрдЯ) рдФрд░ рдЕрдиреНрдп рдиреЛрдбреНрд╕ рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдХреЗ рдЕрдиреБрд░реЛрдз ( tinc-boot forget ) рдХреЛ рд░рджреНрдж рдХрд░рдиреЗ рдХрд╛ рдЕрдиреБрд░реЛрдз рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред


рд╕реЗрд╡рд╛ рдХреЛ рд░реЛрдХрдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ, tinc-down рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ tinc-down рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ tinc-boot kill рдХрдорд╛рдВрдб рдкреНрд░рдореБрдЦ рд╡рд┐рддрд░рдг рдореЙрдбреНрдпреВрд▓ рдХреЛ рд░реЛрдХрддрд╛ рд╣реИред


рдХреБрд▓ рдХреЗ рдмрдЬрд╛рдп


рдЗрд╕ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХреЛ Tinc рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреА рдкреНрд░рддрд┐рднрд╛ рдФрд░ рдирдП рдиреЛрдбреНрд╕ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рд░реИрдЦрд┐рдХ рд░реВрдк рд╕реЗ рдмрдврд╝рддреА рдЬрдЯрд┐рд▓рддрд╛ рдХреЗ рдмреАрдЪ рд╕рдВрдЬреНрдЮрд╛рдирд╛рддреНрдордХ рдЕрд╕рдВрдЧрддрд┐ рдХреЗ рдкреНрд░рднрд╛рд╡ рдХреЗ рддрд╣рдд рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ред


рд╡рд┐рдХрд╛рд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдореБрдЦреНрдп рд╡рд┐рдЪрд╛рд░ рдереЗ:


  • рдЕрдЧрд░ рдХреБрдЫ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рддреЛ рдЙрд╕реЗ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП;
  • рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди рдХрдо рд╕реЗ рдХрдо 80% рдЙрдкрдпреЛрдЧ (Pareto рд╕рд┐рджреНрдзрд╛рдВрдд) рдХреЛ рдХрд╡рд░ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП;
  • рдХрд┐рд╕реА рднреА рдореВрд▓реНрдп рдХреЛ рдЭрдВрдбреЗ рдФрд░ рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рджреЛрдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреБрдирд░реНрдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ;
  • рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХреЛ рдорджрдж рдХрд░рдиреА рдЪрд╛рд╣рд┐рдП, рдФрд░ рдирд┐рд░реНрдорд╛рддрд╛ рдкрд░ рд╕реНрд╡рд░реНрдЧ рдХреА рд╕рднреА рд╕рдЬрд╛рдУрдВ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреА рдЗрдЪреНрдЫрд╛ рдХрд╛ рдХрд╛рд░рдг рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП;
  • рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдЖрд░рдВрднреАрдХрд░рдг рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдЯреЛрдХрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдПрдХ рд╕реНрдкрд╖реНрдЯ рдЬреЛрдЦрд┐рдо рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╕рдВрднрд╡ рд╣рдж рддрдХ, рдпрд╣ рдХреБрд▓ рдХреНрд░рд┐рдкреНрдЯреЛрдЧреНрд░рд╛рдлреА рдФрд░ рдкреНрд░рдорд╛рдгреАрдХрд░рдг (рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╣реЗрдбрд░ рдореЗрдВ рдиреЛрдб рдирд╛рдо рдХреЛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ) рдХреЗ рдХрд╛рд░рдг рдХрдо рд╕реЗ рдХрдо рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред

рдереЛрдбрд╝рд╛ рдХрд╛рд▓рдХреНрд░рдо:


  • рдкрд╣рд▓реА рдмрд╛рд░ рдореИрдВрдиреЗ 4 рд╕рд╛рд▓ рд╕реЗ рдЕрдзрд┐рдХ рд╕рдордп рдкрд╣рд▓реЗ рдЯрд┐рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдерд╛ред рд╕рд╛рдордЧреНрд░реА рдХреА рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд░рд╛рд╢рд┐ рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд┐рдпрд╛ред рдПрдХ рдЖрджрд░реНрд╢ (рдореЗрд░реА рд░рд╛рдп рдореЗрдВ) рдиреЗрдЯрд╡рд░реНрдХ рд╕реЗрдЯ рдХрд░реЗрдВ
  • рдЖрдзреЗ рд╕рд╛рд▓ рдХреЗ рдмрд╛рдж, рдЯрд┐рдВрдЪ рдХреЛ рдПрдХ рдФрд░ рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ / рд▓рдЪреАрд▓реЗ рдЙрдкрдХрд░рдг рдХреЗ рд░реВрдк рдореЗрдВ, рдЬрд╝реАрд░реЛрдЯрд┐рдпрд░ рдХреЗ рдкрдХреНрд╖ рдореЗрдВ рдмрджрд▓ рджрд┐рдпрд╛ рдЧрдпрд╛
  • 2 рд╕рд╛рд▓ рдкрд╣рд▓реЗ, рдореИрдВрдиреЗ рдЯрд╛рдЗрдиреНрд╕ рдХреЛ рддреИрдирд╛рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП ansible playbook рдмрдирд╛рдИ рдереА
  • рдПрдХ рдорд╣реАрдиреЗ рдмрд╛рдж, рдореЗрд░реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╡реГрджреНрдзрд┐рд╢реАрд▓ рддреИрдирд╛рддреА рдкрд░ рдЯреВрдЯ рдЧрдИ (рдпрд╛рдиреА рдЬрдм рд╕рднреА рдиреЗрдЯрд╡рд░реНрдХ рдиреЛрдбреНрд╕ рддрдХ рдкрд╣реБрдВрдЪрдирд╛ рдЕрд╕рдВрднрд╡ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдЪрд╛рдмрд┐рдпрд╛рдБ рд╡рд┐рддрд░рд┐рдд рдХрд░рдирд╛)
  • рджреЛ рд╣рдлрд╝реНрддреЗ рдкрд╣рд▓реЗ, рдореИрдВрдиреЗ рдПрдХ рдмреИрд╢-рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд┐рдЦреА рдереА рдЬреЛ рдХрд┐ tinc-boot рд▓рд┐рдП рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдереА
  • 3 рджрд┐рди рдкрд╣рд▓реЗ рджреВрд╕рд░реА рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдХреЗ рдмрд╛рдж, рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХрд╛ рдкрд╣рд▓рд╛ (0.0.1 рд╕рдЯреАрдХ рд╣реЛрдирд╛) рд╕рдВрд╕реНрдХрд░рдг рдкреИрджрд╛ рд╣реБрдЖ рдерд╛
  • 1 рджрд┐рди рдкрд╣рд▓реЗ, рдореИрдВрдиреЗ рдПрдХ рдкрдВрдХреНрддрд┐ рдореЗрдВ рдПрдХ рдирдП рдиреЛрдб рдХреА рд╕реНрдерд╛рдкрдирд╛ рдХреЛ рдХрдо рдХрд░ рджрд┐рдпрд╛: curl -L https://github.com/reddec/tinc-boot/releases/latest/download/tinc-boot_linux_amd64.tar.gz | sudo tar -xz -C /usr/local/bin/ tinc-boot curl -L https://github.com/reddec/tinc-boot/releases/latest/download/tinc-boot_linux_amd64.tar.gz | sudo tar -xz -C /usr/local/bin/ tinc-boot
  • рдЬрд▓реНрдж рд╣реА, рдиреЗрдЯрд╡рд░реНрдХ рдХреЗ рд▓рд┐рдП рдФрд░ рднреА рд╕рд░рд▓ рдХрдиреЗрдХреНрд╢рди рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдХреЛ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдПрдЧрд╛ (рд╕реБрд░рдХреНрд╖рд╛ рдХрд╛ рддреНрдпрд╛рдЧ рдХрд┐рдП рдмрд┐рдирд╛)

рд╡рд┐рдХрд╛рд╕ рдХреЗ рджреМрд░рд╛рди, рдореИрдВрдиреЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рд░реНрд╡рд░ рдФрд░ рдХреНрд▓рд╛рдЗрдВрдЯ рдкрд░ рд╕рдХреНрд░рд┐рдп рд░реВрдк рд╕реЗ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ (рдКрдкрд░ рдХреЗ рдЯрд┐рди рдХреЗ рд╡рд┐рд╡рд░рдг рд╕реЗ рдЪрд┐рддреНрд░ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЬреАрд╡рди рд╕реЗ рд▓рд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ)ред рдЕрдм рд╕рд┐рд╕реНрдЯрдо рддреНрд░реБрдЯрд┐рдкреВрд░реНрдг рд░реВрдк рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдФрд░ рд╕рднреА рддреГрддреАрдп-рдкрдХреНрд╖ рд╡реАрдкреАрдПрди рд╕реЗрд╡рд╛рдПрдВ рдЕрдм рдЕрдХреНрд╖рдо рд╣реЛ рдЧрдИ рд╣реИрдВред


рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛрдб GO рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ MPL 2.0 рд▓рд╛рдЗрд╕реЗрдВрд╕ рдХреЗ рддрд╣рдд рдЦреБрд▓рд╛ рд╣реИ ред рдПрдХ рд▓рд╛рдЗрд╕реЗрдВрд╕ (рдореБрдлреНрдд рдЕрдиреБрд╡рд╛рдж) рд╡рд╛рдгрд┐рдЬреНрдпрд┐рдХ (рдпрджрд┐ рдХрд┐рд╕реА рдХреЛ рдЕрдЪрд╛рдирдХ рдЬрд░реВрд░рдд рд╣реИ) рд╕реНрд░реЛрдд рдЙрддреНрдкрд╛рдж рдХреЛ рдЦреЛрд▓рдиреЗ рдХреЗ рдмрд┐рдирд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдХреЗрд╡рд▓ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред


рдкреВрд▓ рдЕрдиреБрд░реЛрдзреЛрдВ рдХрд╛ рд╕реНрд╡рд╛рдЧрдд рд╣реИред


рдЙрдкрдпреЛрдЧреА рд▓рд┐рдВрдХ


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


All Articles