DNSTap рдЖрдгрд┐ BGP рд╕рд╣ ILV рдмреНрд▓реЙрдХрд┐рдВрдЧ рдмрд╛рдпрдкрд╛рд╕ рдХрд░рд╛

DNSTap рдЖрдгрд┐ BGP рд╕рд╣ ILV рдмреНрд▓реЙрдХрд┐рдВрдЧ рдмрд╛рдпрдкрд╛рд╕ рдХрд░рд╛

рд╡рд┐рд╖рдп рдЦреВрдкрдЪ рдорд╛рд░рдХ рдЖрд╣реЗ, рдорд▓рд╛ рдорд╛рд╣рд┐рдд рдЖрд╣реЗ. рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рдПрдХ рдорд╣рд╛рди рдЖрд╣реЗ рд▓реЗрдЦ, рдкрд░рдВрддреБ рддреЗрдереЗ рдлрдХреНрдд рдмреНрд▓реЙрдХрд▓рд┐рд╕реНрдЯрдЪрд╛ IP рднрд╛рдЧ рд╡рд┐рдЪрд╛рд░рд╛рдд рдШреЗрддрд▓рд╛ рдЬрд╛рддреЛ. рдЖрдореНрд╣реА рдбреЛрдореЗрди рджреЗрдЦреАрд▓ рдЬреЛрдбреВ.

рдиреНрдпрд╛рдпрд╛рд▓рдпреЗ рдЖрдгрд┐ рдЖрд░рдХреЗрдПрди рд╕рд░реНрд╡ рдХрд╛рд╣реА рдЙрдЬрд╡реАрдХрдбреЗ рдЖрдгрд┐ рдбрд╛рд╡реАрдХрдбреЗ рдЕрд╡рд░реЛрдзрд┐рдд рдХрд░рддрд╛рдд рдЖрдгрд┐ рдкреНрд░рджрд╛рддреЗ рд░реЗрд╡реНрд╣рд┐рдЭреЛрд░реЛрдиреЗ рдЬрд╛рд░реА рдХреЗрд▓реЗрд▓реНрдпрд╛ рджрдВрдбрд╛рдЪреНрдпрд╛ рдЦрд╛рд▓реА рди рдпреЗрдгреНрдпрд╛рдЪрд╛ рдкреНрд░рдпрддреНрди рдХрд░реАрдд рдЖрд╣реЗрдд, рдмреНрд▓реЙрдХрд┐рдВрдЧрдкрд╛рд╕реВрди рд╕рдВрдмрдВрдзрд┐рдд рдиреБрдХрд╕рд╛рди рдмрд░реЗрдЪ рдореЛрдареЗ рдЖрд╣реЗ. рдЖрдгрд┐ "рдХрд╛рдпрджреЗрд╢реАрд░рдкрдгреЗ" рдЕрд╡рд░реЛрдзрд┐рдд рдХреЗрд▓реЗрд▓реНрдпрд╛ рд╕рд╛рдЗрдЯреНрд╕рдордзреНрдпреЗ рдЕрдиреЗрдХ рдЙрдкрдпреБрдХреНрдд рдЖрд╣реЗрдд (рд╣реЕрд▓реЛ, рд░реБрдЯреНрд░реЕрдХрд░)

рдореА RKN рдЪреНрдпрд╛ рдЕрдзрд┐рдХрд╛рд░рдХреНрд╖реЗрддреНрд░рд╛рдмрд╛рд╣реЗрд░ рд░рд╛рд╣рддреЛ, рдкрд░рдВрддреБ рдорд╛рдЭреЗ рдЖрдИрд╡рдбреАрд▓, рдирд╛рддреЗрд╡рд╛рдИрдХ рдЖрдгрд┐ рдорд┐рддреНрд░ рдШрд░реАрдЪ рд░рд╛рд╣рд┐рд▓реЗ. рддреНрдпрд╛рдореБрд│реЗ рдЖрдпрдЯреАрдкрд╛рд╕реВрди рджреВрд░ рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рд▓реЛрдХрд╛рдВрд╕рд╛рдареА рддреНрдпрд╛рдВрдЪреНрдпрд╛ рд╕рд╣рднрд╛рдЧрд╛рд╢рд┐рд╡рд╛рдп, рдмрд╛рдпрдкрд╛рд╕ рдмреНрд▓реЙрдХрд┐рдВрдЧрдЪрд╛ рдПрдХ рд╕реЛрдкрд╛ рдорд╛рд░реНрдЧ рд╢реЛрдзрдгреНрдпрд╛рдЪрд╛ рдирд┐рд░реНрдгрдп рдШреЗрдгреНрдпрд╛рдд рдЖрд▓рд╛.

рдпрд╛ рдиреЛрдЯрдордзреНрдпреЗ, рдореА рдореВрд▓рднреВрдд рдиреЗрдЯрд╡рд░реНрдХ рдЧреЛрд╖реНрдЯреАрдВрдЪреЗ рдЪрд░рдгрд╛рдВрдордзреНрдпреЗ рд╡рд░реНрдгрди рдХрд░рдгрд╛рд░ рдирд╛рд╣реА, рдкрд░рдВрддреБ рдореА рд╣реА рдпреЛрдЬрдирд╛ рдХрд╢реА рд▓рд╛рдЧреВ рдХреЗрд▓реА рдЬрд╛рдК рд╢рдХрддреЗ рдпрд╛рдЪреНрдпрд╛ рд╕рд╛рдорд╛рдиреНрдп рддрддреНрддреНрд╡рд╛рдВрдЪреЗ рд╡рд░реНрдгрди рдХрд░реЗрди. рддреНрдпрд╛рдореБрд│реЗ рдиреЗрдЯрд╡рд░реНрдХ рд╕рд░реНрд╡рд╕рд╛рдзрд╛рд░рдгрдкрдгреЗ рдЖрдгрд┐ рд╡рд┐рд╢реЗрд╖рддрдГ рд▓рд┐рдирдХреНрд╕рдордзреНрдпреЗ рдХрд╕реЗ рдХрд╛рд░реНрдп рдХрд░рддреЗ рдпрд╛рдЪреЗ рдЬреНрдЮрд╛рди рдЕрд╕рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ.

рдХреБрд▓реВрдкрд╛рдВрдЪреЗ рдкреНрд░рдХрд╛рд░

рдкреНрд░рдердо, рдЬреЗ рдмреНрд▓реЙрдХ рдХреЗрд▓реЗ рдЬрд╛рдд рдЖрд╣реЗ рддреНрдпрд╛рдмрджреНрджрд▓рдЪреА рд╕реНрдореГрддреА рддрд╛рдЬреА рдХрд░реВрдпрд╛.

RKN рд╡рд░реВрди рдЕрдирд▓реЛрдб рдХреЗрд▓реЗрд▓реНрдпрд╛ XML рдордзреНрдпреЗ рдЕрдиреЗрдХ рдкреНрд░рдХрд╛рд░рдЪреЗ рд▓реЙрдХ рдЖрд╣реЗрдд:

  • IP
  • рдбреЛрдореЗрди
  • URL

рд╕рд╛рдзреЗрдкрдгрд╛рд╕рд╛рдареА, рдЖрдореНрд╣реА рддреЗ рджреЛрди рдкрд░реНрдпрдВрдд рдХрдореА рдХрд░реВ: IP рдЖрдгрд┐ рдбреЛрдореЗрди, рдЖрдгрд┐ рдЖрдореНрд╣реА рдбреЛрдореЗрдирд▓рд╛ URL рджреНрд╡рд╛рд░реЗ рдЕрд╡рд░реЛрдзрд┐рдд рдХрд░рдгреНрдпрд╛рдкрд╛рд╕реВрди рдмрд╛рд╣реЗрд░ рдХрд╛рдвреВ (рдЕрдзрд┐рдХ рддрдВрддреЛрддрдВрдд, рддреНрдпрд╛рдВрдиреА рдЖрдордЪреНрдпрд╛рд╕рд╛рдареА рд╣реЗ рдЖрдзреАрдЪ рдХреЗрд▓реЗ рдЖрд╣реЗ).

рдкрд╛рд╕реВрди рдЪрд╛рдВрдЧрд▓реЗ рд▓реЛрдХ Roskomsvoboda рдПрдХ рдЕрджреНрднреБрдд рд▓рдХреНрд╖рд╛рдд рдЖрд▓реЗ API, рдЬреНрдпрд╛рджреНрд╡рд╛рд░реЗ рдЖрдореНрд╣реА рдЖрдореНрд╣рд╛рд▓рд╛ рдЖрд╡рд╢реНрдпрдХ рддреЗ рдорд┐рд│рд╡реВ рд╢рдХрддреЛ:

рдЕрд╡рд░реЛрдзрд┐рдд рд╕рд╛рдЗрдЯрд╡рд░ рдкреНрд░рд╡реЗрд╢

рд╣реЗ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рдЖрдореНрд╣рд╛рд▓рд╛ рдХрд╛рд╣реА рд▓рд╣рд╛рди рдкрд░рджреЗрд╢реА VPS рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗрдд, рд╢рдХреНрдпрддреЛ рдЕрдорд░реНрдпрд╛рджрд┐рдд рд░рд╣рджрд╛рд░реАрд╕рд╣ - рдпрд╛рдкреИрдХреА рдмрд░реЗрдЪ рдЖрд╣реЗрдд 3-5 рдкреИрд╢рд╛рдВрд╕рд╛рдареА. рдЖрдкрд▓реНрдпрд╛рд▓рд╛ рддреЗ рдЬрд╡рд│рдЪреНрдпрд╛ рдкрд░рджреЗрд╢рд╛рдд рдШреЗрдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ рдЬреЗрдгреЗрдХрд░реВрди рдкрд┐рдВрдЧ рдлрд╛рд░ рдореЛрдареЗ рдирд╕рд╛рд╡реЗ, рдкрд░рдВрддреБ рдкреБрдиреНрд╣рд╛ рд╣реЗ рд▓рдХреНрд╖рд╛рдд рдШреНрдпрд╛ рдХреА рдЗрдВрдЯрд░рдиреЗрдЯ рдЖрдгрд┐ рднреВрдЧреЛрд▓ рдиреЗрд╣рдореАрдЪ рдЬреБрд│рдд рдирд╛рд╣реАрдд. рдЖрдгрд┐ 5 рдкреИрд╢рд╛рдВрд╕рд╛рдареА рдХреЛрдгрддрд╛рд╣реА SLA рдирд╕рд▓реНрдпрд╛рдореБрд│реЗ, рджреЛрд╖ рд╕рд╣рд┐рд╖реНрдгреБрддреЗрд╕рд╛рдареА рднрд┐рдиреНрди рдкреНрд░рджрд╛рддреНрдпрд╛рдВрдХрдбреВрди 2+ рддреБрдХрдбреЗ рдШреЗрдгреЗ рдЪрд╛рдВрдЧрд▓реЗ рдЖрд╣реЗ.

рдкреБрдвреЗ, рдЖрдореНрд╣рд╛рд▓рд╛ рдХреНрд▓рд╛рдпрдВрдЯ рд░рд╛рдЙрдЯрд░рдкрд╛рд╕реВрди VPS рдкрд░реНрдпрдВрдд рдПрдХ рдПрдирдХреНрд░рд┐рдкреНрдЯреЗрдб рдмреЛрдЧрджрд╛ рд╕реЗрдЯ рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ. рдореА Wireguard рдЪрд╛ рд╡рд╛рдкрд░ рд╕рд░реНрд╡рд╛рдд рдЬрд▓рдж рдЖрдгрд┐ рд╕рд░реНрд╡рд╛рдд рд╕реЛрдкрд╛ рд╕реЗрдЯрдЕрдк рдореНрд╣рдгреВрди рдХрд░рддреЛ. рдорд╛рдЭреНрдпрд╛рдХрдбреЗ рд▓рд┐рдирдХреНрд╕рд╡рд░ рдЖрдзрд╛рд░рд┐рдд рдХреНрд▓рд╛рдпрдВрдЯ рд░рд╛рдЙрдЯрд░ рджреЗрдЦреАрд▓ рдЖрд╣реЗрдд (APU2 рдХрд┐рдВрд╡рд╛ OpenWRT рдордзреНрдпреЗ рдХрд╛рд╣реАрддрд░реА). рдХрд╛рд╣реА Mikrotik/Cisco рдЪреНрдпрд╛ рдмрд╛рдмрддреАрдд, рддреБрдореНрд╣реА OpenVPN рдЖрдгрд┐ GRE-over-IPSEC рд╕рд╛рд░рдЦреЗ рддреНрдпрд╛рдВрдЪреНрдпрд╛рд╡рд░ рдЙрдкрд▓рдмреНрдз рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рд╡рд╛рдкрд░реВ рд╢рдХрддрд╛.

рд╕реНрд╡рд╛рд░рд╕реНрдп рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рд░рд╣рджрд╛рд░реАрдЪреА рдУрд│рдЦ рдЖрдгрд┐ рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рди

рдЖрдкрдг, рдЕрд░реНрдерд╛рддрдЪ, рдкрд░рджреЗрд╢реА рджреЗрд╢рд╛рдВрджреНрд╡рд╛рд░реЗ рд╕рд░реНрд╡ рдЗрдВрдЯрд░рдиреЗрдЯ рд░рд╣рджрд╛рд░реА рдмрдВрдж рдХрд░реВ рд╢рдХрддрд╛. рдкрд░рдВрддреБ, рдмрд╣реБрдзрд╛, рд╕реНрдерд╛рдирд┐рдХ рд╕рд╛рдордЧреНрд░реАрд╕рд╣ рдХрд╛рд░реНрдп рдХрд░рдгреНрдпрд╛рдЪреНрдпрд╛ рдЧрддреАрд▓рд╛ рдпрд╛рдЪрд╛ рдореЛрдард╛ рдлрдЯрдХрд╛ рдмрд╕реЗрд▓. рд╢рд┐рд╡рд╛рдп, VPS рд╡рд░ рдмрдБрдбрд╡рд┐рдбреНрде рдЖрд╡рд╢реНрдпрдХрддрд╛ рдЦреВрдк рдЬрд╛рд╕реНрдд рдЕрд╕реЗрд▓.

рдореНрд╣рдгреВрди, рдЖрдореНрд╣рд╛рд▓рд╛ рдХреЛрдгрддреНрдпрд╛рд╣реА рдкреНрд░рдХрд╛рд░реЗ рдЕрд╡рд░реЛрдзрд┐рдд рд╕рд╛рдЗрдЯрд╡рд░ рд░рд╣рджрд╛рд░реАрдЪреЗ рд╡рд╛рдЯрдк рдХрд░рд╛рд╡реЗ рд▓рд╛рдЧреЗрд▓ рдЖрдгрд┐ рдирд┐рд╡рдбрдХрдкрдгреЗ рддреЗ рдмреЛрдЧрджреНрдпрд╛рдХрдбреЗ рдирд┐рд░реНрджреЗрд╢рд┐рдд рдХрд░рд╛рд╡реЗ рд▓рд╛рдЧреЗрд▓. рдЬрд░реА рдХрд╛рд╣реА "рдЕрддрд┐рд░рд┐рдХреНрдд" рд░рд╣рджрд╛рд░реА рддреЗрдереЗ рдкреЛрд╣реЛрдЪрд▓реА, рддрд░реАрд╣реА рддреЗ рдмреЛрдЧрджреНрдпрд╛рддреВрди рд╕рд░реНрд╡рдХрд╛рд╣реА рдЪрд╛рд▓рд╡рд┐рдгреНрдпрд╛рдкреЗрдХреНрд╖рд╛ рдмрд░реЗрдЪ рдЪрд╛рдВрдЧрд▓реЗ рдЖрд╣реЗ.

рд░рд╣рджрд╛рд░реА рд╡реНрдпрд╡рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рдЖрдореНрд╣реА BGP рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рд╡рд╛рдкрд░реВ рдЖрдгрд┐ рдЖрдордЪреНрдпрд╛ VPS рдкрд╛рд╕реВрди рдХреНрд▓рд╛рдпрдВрдЯрд╕рд╛рдареА рдЖрд╡рд╢реНрдпрдХ рдиреЗрдЯрд╡рд░реНрдХрд╕рд╛рдареА рдорд╛рд░реНрдЧ рдШреЛрд╖рд┐рдд рдХрд░реВ. рдЪрд▓рд╛ BIRD рд▓рд╛ рд╕рд░реНрд╡рд╛рдд рдХрд╛рд░реНрдпрдХреНрд╖рдо рдЖрдгрд┐ рд╕реЛрдпреАрд╕реНрдХрд░ рдмреАрдЬреАрдкреА рдбрд┐рдорди рдореНрд╣рдгреВрди рдШреЗрдК.

IP

IP рджреНрд╡рд╛рд░реЗ рдЕрд╡рд░реЛрдзрд┐рдд рдХреЗрд▓реНрдпрд╛рдиреЗ, рд╕рд░реНрд╡ рдХрд╛рд╣реА рд╕реНрдкрд╖реНрдЯ рдЖрд╣реЗ: рдЖрдореНрд╣реА рдлрдХреНрдд VPS рд╕рд╣ рд╕рд░реНрд╡ рдЕрд╡рд░реЛрдзрд┐рдд IP рдШреЛрд╖рд┐рдд рдХрд░рддреЛ. рд╕рдорд╕реНрдпрд╛ рдЕрд╢реА рдЖрд╣реЗ рдХреА API рдкрд░рдд рдХрд░рдд рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рд╕реВрдЪреАрдордзреНрдпреЗ рд╕реБрдорд╛рд░реЗ 600 рд╣рдЬрд╛рд░ рд╕рдмрдиреЗрдЯ рдЖрд╣реЗрдд рдЖрдгрд┐ рддреНрдпрд╛рдкреИрдХреА рдмрд╣реБрд╕рдВрдЦреНрдп /32 рд╣реЛрд╕реНрдЯ рдЖрд╣реЗрдд. рдорд╛рд░реНрдЧрд╛рдВрдЪреА рд╣реА рд╕рдВрдЦреНрдпрд╛ рдХрдордХреБрд╡рдд рдХреНрд▓рд╛рдпрдВрдЯ рд░рд╛рдЙрдЯрд░рд▓рд╛ рдЧреЛрдВрдзрд│рд╛рдд рдЯрд╛рдХреВ рд╢рдХрддреЗ.

рдореНрд╣рдгреВрди, рд╕реВрдЪреАрд╡рд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд░рддрд╛рдирд╛, 24 рдХрд┐рдВрд╡рд╛ рдЕрдзрд┐рдХ рд╣реЛрд╕реНрдЯ рдЕрд╕рд▓реНрдпрд╛рд╕ рдиреЗрдЯрд╡рд░реНрдХ / 2 рдкрд░реНрдпрдВрдд рд╕рд╛рд░рд╛рдВрд╢рд┐рдд рдХрд░рдгреНрдпрд╛рдЪрд╛ рдирд┐рд░реНрдгрдп рдШреЗрдгреНрдпрд╛рдд рдЖрд▓рд╛. рдЕрд╢рд╛ рдкреНрд░рдХрд╛рд░реЗ, рдорд╛рд░реНрдЧрд╛рдВрдЪреА рд╕рдВрдЦреНрдпрд╛ ~ 100 рд╣рдЬрд╛рд░рд╛рдВрдкрд░реНрдпрдВрдд рдХрдореА рдЭрд╛рд▓реА. рддреНрдпрд╛рд╕рд╛рдареА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкреБрдвреЗ рдпреЗрдИрд▓.

рдбреЛрдореЗрди

рд╣реЗ рдЕрдзрд┐рдХ рдХреНрд▓рд┐рд╖реНрдЯ рдЖрд╣реЗ рдЖрдгрд┐ рдЕрдиреЗрдХ рдорд╛рд░реНрдЧ рдЖрд╣реЗрдд. рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рддреБрдореНрд╣реА рдкреНрд░рддреНрдпреЗрдХ рдХреНрд▓рд╛рдпрдВрдЯ рд░рд╛рдЙрдЯрд░рд╡рд░ рдПрдХ рдкрд╛рд░рджрд░реНрд╢рдХ рд╕реНрдХреНрд╡рд┐рдб рд╕реНрдерд╛рдкрд┐рдд рдХрд░реВ рд╢рдХрддрд╛ рдЖрдгрд┐ рддреЗрдереЗ HTTP рдЗрдВрдЯрд░рд╕реЗрдкреНрд╢рди рдХрд░реВ рд╢рдХрддрд╛ рдЖрдгрд┐ рдкрд╣рд┐рд▓реНрдпрд╛ рдкреНрд░рдХрд░рдгрд╛рдд рд╡рд┐рдирдВрддреА рдХреЗрд▓реЗрд▓реА URL рдЖрдгрд┐ рджреБрд╕рд▒реНрдпрд╛ рдкреНрд░рдХрд░рдгрд╛рдд SNI рдХрдбреВрди рдбреЛрдореЗрди рдорд┐рд│рд╡рд┐рдгреНрдпрд╛рд╕рд╛рдареА TLS рд╣рдБрдбрд╢реЗрдХрдордзреНрдпреЗ рдбреЛрдХрд╛рд╡реВ рд╢рдХрддрд╛.

рдкрд░рдВрддреБ рд╕рд░реНрд╡ рдкреНрд░рдХрд╛рд░рдЪреНрдпрд╛ рдирд╡реАрди TLS1.3 + eSNI рдореБрд│реЗ, HTTPS рд╡рд┐рд╢реНрд▓реЗрд╖рдг рджрд┐рд╡рд╕реЗрдВрджрд┐рд╡рд╕ рдХрдореА рдЕрдзрд┐рдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╣реЛрдд рдЖрд╣реЗ. рд╣реЛрдп, рдЖрдгрд┐ рдХреНрд▓рд╛рдпрдВрдЯ рдмрд╛рдЬреВрдЪреА рдкрд╛рдпрд╛рднреВрдд рд╕реБрд╡рд┐рдзрд╛ рдЕрдзрд┐рдХ рдХреНрд▓рд┐рд╖реНрдЯ рд╣реЛрдд рдЖрд╣реЗ - рддреБрдореНрд╣рд╛рд▓рд╛ рдХрд┐рдорд╛рди OpenWRT рд╡рд╛рдкрд░рд╛рд╡реЗ рд▓рд╛рдЧреЗрд▓.

рдореНрд╣рдгреВрди, рдореА DNS рдкреНрд░рд╢реНрдирд╛рдВрдирд╛ рдкреНрд░рддрд┐рд╕рд╛рджрд╛рдд рдЕрдбрдерд│рд╛ рдЖрдгрдгреНрдпрд╛рдЪрд╛ рдорд╛рд░реНрдЧ рд╕реНрд╡реАрдХрд╛рд░рдгреНрдпрд╛рдЪрд╛ рдирд┐рд░реНрдгрдп рдШреЗрддрд▓рд╛. рдпреЗрдереЗрд╣реА, рдХреЛрдгрддрд╛рд╣реА DNS-over-TLS/HTTPS рддреБрдордЪреНрдпрд╛ рдбреЛрдХреНрдпрд╛рд╡рд░ рдлрд┐рд░реВ рд▓рд╛рдЧрддреЛ, рдкрд░рдВрддреБ рдЖрдореНрд╣реА (рд╕рдзреНрдпрд╛) рдХреНрд▓рд╛рдпрдВрдЯрд╡рд░ рд╣рд╛ рднрд╛рдЧ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░реВ рд╢рдХрддреЛ - рдПрдХрддрд░ рддреЛ рдЕрдХреНрд╖рдо рдХрд░реВ рд╢рдХрддреЛ рдХрд┐рдВрд╡рд╛ DoT/DOH рд╕рд╛рдареА рддреБрдордЪрд╛ рд╕реНрд╡рддрдГрдЪрд╛ рд╕рд░реНрд╡реНрд╣рд░ рд╡рд╛рдкрд░реВ рд╢рдХрддреЛ.

DNS рдХрд╕реЗ рд░реЛрдЦрд╛рдпрдЪреЗ?

рдпреЗрдереЗ рджреЗрдЦреАрд▓, рдЕрдиреЗрдХ рджреГрд╖реНрдЯрд┐рдХреЛрди рдЕрд╕реВ рд╢рдХрддрд╛рдд.

  • PCAP рдХрд┐рдВрд╡рд╛ NFLOG рджреНрд╡рд╛рд░реЗ DNS рд░рд╣рджрд╛рд░реАрдЪреЗ рд╡реНрдпрддреНрдпрдп
    рдЗрдВрдЯрд░рд╕реЗрдкреНрд╢рдирдЪреНрдпрд╛ рдпрд╛ рджреЛрдиреНрд╣реА рдкрджреНрдзрддреА рдпреБрдЯрд┐рд▓рд┐рдЯреАрдордзреНрдпреЗ рд▓рд╛рдЧреВ рдХреЗрд▓реНрдпрд╛ рдЬрд╛рддрд╛рдд sidmat. рдкрд░рдВрддреБ рд╣реЗ рдмрд░реНрдпрд╛рдЪ рдХрд╛рд│рд╛рдкрд╛рд╕реВрди рд╕рдорд░реНрдерд┐рдд рдирд╛рд╣реА рдЖрдгрд┐ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдЦреВрдк рдкреНрд░рд╛рдЪреАрди рдЖрд╣реЗ, рдореНрд╣рдгреВрди рдЖрдкрд▓реНрдпрд╛рд▓рд╛ рдЕрджреНрдпрд╛рдк рддреНрдпрд╛рд╕рд╛рдареА рд╣рд╛рд░реНрдиреЗрд╕ рд▓рд┐рд╣рд┐рдгреНрдпрд╛рдЪреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдЖрд╣реЗ.
  • DNS рд╕рд░реНрд╡реНрд╣рд░ рд▓реЙрдЧрдЪреЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдг
    рджреБрд░реНрджреИрд╡рд╛рдиреЗ, рдорд▓рд╛ рдорд╛рд╣реАрдд рдЕрд╕рд▓реЗрд▓реЗ рдкреБрдирд░рд╛рд╡рд░реНрддрдХ рдкреНрд░рддрд┐рд╕рд╛рдж рд▓реЙрдЧ рдХрд░реВ рд╢рдХрдд рдирд╛рд╣реАрдд, рдкрд░рдВрддреБ рдлрдХреНрдд рд╡рд┐рдирдВрддреНрдпрд╛. рддрддреНрд╡рддрдГ, рд╣реЗ рддрд╛рд░реНрдХрд┐рдХ рдЖрд╣реЗ, рдХрд╛рд░рдг, рд╡рд┐рдирдВрддреНрдпрд╛рдВрдЪреНрдпрд╛ рд╡рд┐рдкрд░реАрдд, рдЙрддреНрддрд░рд╛рдВрдЪреА рд░рдЪрдирд╛ рдЬрдЯрд┐рд▓ рдЖрд╣реЗ рдЖрдгрд┐ рддреНрдпрд╛рдВрдирд╛ рдордЬрдХреВрд░ рд╕реНрд╡рд░реВрдкрд╛рдд рд▓рд┐рд╣рд┐рдгреЗ рдХрдареАрдг рдЖрд╣реЗ.
  • DNSTap
    рд╕реБрджреИрд╡рд╛рдиреЗ, рддреНрдпрд╛рдВрдЪреНрдпрд╛рдкреИрдХреА рдмрд░реЗрдЪ рдЬрдг рдпрд╛ рдЙрджреНрджреЗрд╢рд╛рд╕рд╛рдареА рдЖрдзреАрдЪ DNSTap рдЪреЗ рд╕рдорд░реНрдерди рдХрд░рддрд╛рдд.

DNSTap рдореНрд╣рдгрдЬреЗ рдХрд╛рдп?

DNSTap рдЖрдгрд┐ BGP рд╕рд╣ ILV рдмреНрд▓реЙрдХрд┐рдВрдЧ рдмрд╛рдпрдкрд╛рд╕ рдХрд░рд╛

рд╣рд╛ рдПрдХ рдХреНрд▓рд╛рдпрдВрдЯ-рд╕рд░реНрд╡реНрд╣рд░ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдЖрд╣реЗ рдЬреЛ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдмрдлрд░реНрд╕ тАЛтАЛрдЖрдгрд┐ рдлреНрд░реЗрдо рд╕реНрдЯреНрд░реАрдорд╡рд░ рдЖрдзрд╛рд░рд┐рдд DNS рд╕рд░реНрд╡реНрд╣рд░рд╡рд░реВрди рд╕рдВрд░рдЪрд┐рдд DNS рдХреНрд╡реЗрд░реА рдЖрдгрд┐ рдкреНрд░рддрд┐рд╕рд╛рджрд╛рдВрдЪреНрдпрд╛ рд╕рдВрдЧреНрд░рд╛рд╣рдХрд╛рдХрдбреЗ рд╣рд╕реНрддрд╛рдВрддрд░рд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЖрд╣реЗ. рдореВрд▓рдд:, DNS рд╕рд░реНрд╡реНрд╣рд░ рдХреНрд╡реЗрд░реА рдЖрдгрд┐ рдкреНрд░рддрд┐рд╕рд╛рдж рдореЗрдЯрд╛рдбреЗрдЯрд╛ (рд╕рдВрджреЗрд╢рд╛рдЪрд╛ рдкреНрд░рдХрд╛рд░, рдХреНрд▓рд╛рдпрдВрдЯ/рд╕рд░реНрд╡реНрд╣рд░ IP, рдЗ.) рддрд╕реЗрдЪ рд╕рдВрдкреВрд░реНрдг DNS рд╕рдВрджреЗрд╢ (рдмрд╛рдпрдирд░реА) рд╕реНрд╡рд░реВрдкрд╛рдд рдкреНрд░рд╕рд╛рд░рд┐рдд рдХрд░рддреЛ рдЬреНрдпрд╛рдордзреНрдпреЗ рддреЛ рдиреЗрдЯрд╡рд░реНрдХрд╡рд░ рддреНрдпрд╛рдВрдЪреНрдпрд╛рд╕реЛрдмрдд рдХрд╛рд░реНрдп рдХрд░рддреЛ.

рд╣реЗ рд╕рдордЬреВрди рдШреЗрдгреЗ рдорд╣рддреНрддреНрд╡рд╛рдЪреЗ рдЖрд╣реЗ рдХреА DNSTap рдкреЕрд░рд╛рдбрд╛рдЗрдордордзреНрдпреЗ, DNS рд╕рд░реНрд╡реНрд╣рд░ рдХреНрд▓рд╛рдпрдВрдЯ рдореНрд╣рдгреВрди рдХрд╛рдо рдХрд░рддреЛ рдЖрдгрд┐ рдХрд▓реЗрдХреНрдЯрд░ рд╕рд░реНрд╡реНрд╣рд░ рдореНрд╣рдгреВрди рдХрд╛рдо рдХрд░рддреЛ. рдореНрд╣рдгрдЬреЗрдЪ, DNS рд╕рд░реНрд╡реНрд╣рд░ рдХрд▓реЗрдХреНрдЯрд░рд╢реА рдХрдиреЗрдХреНрдЯ рд╣реЛрддреЛ, рдЙрд▓рдЯ рдирд╛рд╣реА.

рдЖрдЬ DNSTap рд╕рд░реНрд╡ рд▓реЛрдХрдкреНрд░рд┐рдп DNS рд╕рд░реНрд╡реНрд╣рд░рдордзреНрдпреЗ рд╕рдорд░реНрдерд┐рдд рдЖрд╣реЗ. рдкрд░рдВрддреБ, рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рдЕрдиреЗрдХ рд╡рд┐рддрд░рдгрд╛рдВрдордзреНрдпреЗ (рдЙрдмрдВрдЯреВ рдПрд▓рдЯреАрдПрд╕ рд╕рд╛рд░рдЦреЗ) BIND рд╕рд╣рд╕рд╛ рдХрд╛рд╣реА рдХрд╛рд░рдгрд╛рд╕реНрддрд╡ рддреНрдпрд╛рдЪреНрдпрд╛ рд╕рдорд░реНрдердирд╛рд╢рд┐рд╡рд╛рдп рддрдпрд╛рд░ рдХреЗрд▓реЗ рдЬрд╛рддреЗ. рдЪрд▓рд╛ рддрд░ рдордЧ рдкреБрдиреНрд╣рд╛ рдЕрд╕реЗрдВрдмреНрд▓реАрдЪрд╛ рддреНрд░рд╛рд╕ рдХрд░реВ рдирдХрд╛, рдкрд░рдВрддреБ рдПрдХ рд╣рд▓рдХрд╛ рдЖрдгрд┐ рд╡реЗрдЧрд╡рд╛рди рд░рд┐рдХрд╕рд░ рдШреНрдпрд╛ - рдЕрдирдмрд╛рдЙрдВрдб.

DNSTap рдХрд╕реЗ рдкрдХрдбрд╛рдпрдЪреЗ?

рдЖрд╣реЗрдд рдХрд╛рд╣реА рдкреНрд░рдорд╛рдг DNSTap рдЗрд╡реНрд╣реЗрдВрдЯрдЪреНрдпрд╛ рдкреНрд░рд╡рд╛рд╣рд╛рд╕рд╣ рдХрд╛рд░реНрдп рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА CLI рдЙрдкрдпреБрдХреНрддрддрд╛, рдкрд░рдВрддреБ рддреЗ рдЖрдордЪреНрдпрд╛ рд╕рдорд╕реНрдпреЗрдЪреЗ рдирд┐рд░рд╛рдХрд░рдг рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдпреЛрдЧреНрдп рдирд╛рд╣реАрдд. рдореНрд╣рдгреВрди, рдореА рдорд╛рдЭреА рд╕реНрд╡рддрдГрдЪреА рд╕рд╛рдпрдХрд▓ рд╢реЛрдзрдгреНрдпрд╛рдЪрд╛ рдирд┐рд░реНрдгрдп рдШреЗрддрд▓рд╛ рдЬреЛ рдЖрд╡рд╢реНрдпрдХ рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рд╕рд░реНрд╡ рдЧреЛрд╖реНрдЯреА рдХрд░реЗрд▓: dnstap-bgp

рдХрд╛рд░реНрдп рдЕрд▓реНрдЧреЛрд░рд┐рджрдо:

  • рд▓рд╛рдБрдЪ рдХреЗрд▓реНрдпрд╛рд╡рд░, рддреЗ рдордЬрдХреВрд░ рдлрд╛рдЗрд▓рдордзреВрди рдбреЛрдореЗрдирдЪреА рд╕реВрдЪреА рд▓реЛрдб рдХрд░рддреЗ, рддреНрдпрд╛рдВрдирд╛ рдЙрд▓рдЯ рдХрд░рддреЗ (habr.com -> com.habr), рддреБрдЯрд▓реЗрд▓реА рд░реЗрд╖рд╛, рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдЖрдгрд┐ рд╕рдмрдбреЛрдореЗрди рд╡рдЧрд│рддреЗ (рдореНрд╣рдгрдЬреЗ рд╕реВрдЪреАрдордзреНрдпреЗ habr.com рдЖрдгрд┐ www.habr.com рдЕрд╕рд▓реНрдпрд╛рд╕, рддреЗ рдлрдХреНрдд рдкрд╣рд┐рд▓реЗ рд▓реЛрдб рдХреЗрд▓реЗ рдЬрд╛рдИрд▓) рдЖрдгрд┐ рдпрд╛ рд╕реВрдЪреАрджреНрд╡рд╛рд░реЗ рдЬрд▓рдж рд╢реЛрдзрдгреНрдпрд╛рд╕рд╛рдареА рдПрдХ рдЙрдкрд╕рд░реНрдЧ рд╡реГрдХреНрд╖ рддрдпрд╛рд░ рдХрд░рддреЗ
  • DNSTap рд╕рд░реНрд╡реНрд╣рд░ рдореНрд╣рдгреВрди рдХрд╛рдо рдХрд░рддрд╛рдирд╛, рддреЗ DNS рд╕рд░реНрд╡реНрд╣рд░рд╡рд░реВрди рдХрдиреЗрдХреНрд╢рдирдЪреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рддреЗ. рддрддреНрд╡рддрдГ, рддреЗ UNIX рдЖрдгрд┐ TCP рд╕реЙрдХреЗрдЯреНрд╕ рджреЛрдиреНрд╣реАрд▓рд╛ рд╕рдорд░реНрдерди рджреЗрддреЗ, рдкрд░рдВрддреБ рдорд▓рд╛ рдорд╛рд╣рд┐рдд рдЕрд╕рд▓реЗрд▓реЗ DNS рд╕рд░реНрд╡реНрд╣рд░ рдлрдХреНрдд UNIX рд╕реЙрдХреЗрдЯреНрд╕ рд╡рд╛рдкрд░реВ рд╢рдХрддрд╛рдд
  • рдпреЗрдгрд╛рд░реЗ DNSTap рдкреЕрдХреЗрдЯ рдкреНрд░рдердо рдкреНрд░реЛрдЯреЛрдмрдл рд╕реНрдЯреНрд░рдХреНрдЪрд░рдордзреНрдпреЗ рдбреАрд╕реАрд░рд┐рдпрд▓ рдХреЗрд▓реЗ рдЬрд╛рддрд╛рдд рдЖрдгрд┐ рдирдВрддрд░ рдкреНрд░реЛрдЯреЛрдмрдл рдлреАрд▓реНрдбрдкреИрдХреА рдПрдХрд╛рдордзреНрдпреЗ рд╕реНрдерд┐рдд рдмрд╛рдпрдирд░реА рдбреАрдПрдирдПрд╕ рд╕рдВрджреЗрд╢ рдбреАрдПрдирдПрд╕ рдЖрд░рдЖрд░ рд░реЗрдХреЙрд░реНрдбрдЪреНрдпрд╛ рд╕реНрддрд░рд╛рд╡рд░ рдкрд╛рд░реНрд╕ рдХреЗрд▓рд╛ рдЬрд╛рддреЛ.
  • рд╡рд┐рдирдВрддреА рдХреЗрд▓реЗрд▓рд╛ рд╣реЛрд╕реНрдЯ (рдХрд┐рдВрд╡рд╛ рддреНрдпрд╛рдЪреЗ рдореВрд│ рдбреЛрдореЗрди) рд▓реЛрдб рдХреЗрд▓реЗрд▓реНрдпрд╛ рд╕реВрдЪреАрдордзреНрдпреЗ рдЖрд╣реЗ рдХреА рдирд╛рд╣реА рд╣реЗ рддрдкрд╛рд╕рд▓реЗ рдЬрд╛рддреЗ, рдирд╕рд▓реНрдпрд╛рд╕, рдкреНрд░рддрд┐рд╕рд╛рджрд╛рдХрдбреЗ рджреБрд░реНрд▓рдХреНрд╖ рдХреЗрд▓реЗ рдЬрд╛рддреЗ
  • рдкреНрд░рддрд┐рд╕рд╛рджрд╛рддреВрди рдлрдХреНрдд A/AAAA/CNAME RR рдирд┐рд╡рдбрд▓реЗ рдЬрд╛рддрд╛рдд рдЖрдгрд┐ рддреНрдпрд╛рдВрдЪреНрдпрд╛рдХрдбреВрди рд╕рдВрдмрдВрдзрд┐рдд IPv4/IPv6 рдкрддреНрддреЗ рдХрд╛рдврд▓реЗ рдЬрд╛рддрд╛рдд.
  • IP рдкрддреНрддреЗ рдХреЙрдиреНрдлрд┐рдЧрд░ рдХрд░рдгреНрдпрд╛рдпреЛрдЧреНрдп TTL рд╕рд╣ рдХреЕрд╢ рдХреЗрд▓реЗ рдЬрд╛рддрд╛рдд рдЖрдгрд┐ рд╕рд░реНрд╡ рдХреЙрдиреНрдлрд┐рдЧрд░ рдХреЗрд▓реЗрд▓реНрдпрд╛ BGP рд╕рдорд╡рдпрд╕реНрдХрд╛рдВрдирд╛ рдЬрд╛рд╣рд┐рд░рд╛рдд рдХреЗрд▓реА рдЬрд╛рддрд╛рдд
  • рдЖрдзреАрдЪ рдХреЕрд╢реЗ рдХреЗрд▓реЗрд▓реНрдпрд╛ рдЖрдпрдкреАрдХрдбреЗ рдирд┐рд░реНрджреЗрд╢ рдХрд░рдгрд╛рд░рд╛ рдкреНрд░рддрд┐рд╕рд╛рдж рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛рдирд╛, рддреНрдпрд╛рдЪреЗ TTL рдЕрджреНрдпрддрдирд┐рдд рдХреЗрд▓реЗ рдЬрд╛рддреЗ
  • TTL рдХрд╛рд▓рдмрд╛рд╣реНрдп рдЭрд╛рд▓реНрдпрд╛рдирдВрддрд░, рдПрдВрдЯреНрд░реА рдХреЕрд╢реЗрдордзреВрди рдЖрдгрд┐ BGP рдШреЛрд╖рдгрд╛рдВрдордзреВрди рдХрд╛рдвреВрди рдЯрд╛рдХрд▓реА рдЬрд╛рддреЗ

рдЕрддрд┐рд░рд┐рдХреНрдд рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛:

  • SIGHUP рджреНрд╡рд╛рд░реЗ рдбреЛрдореЗрдирдЪреА рд╕реВрдЪреА рдкреБрдиреНрд╣рд╛ рд╡рд╛рдЪрдд рдЖрд╣реЗ
  • рдХреЕрд╢реЗ рдЗрддрд░ рдЙрджрд╛рд╣рд░рдгрд╛рдВрд╕рд╣ рд╕рдордХреНрд░рдорд┐рдд рдареЗрд╡рдгреЗ dnstap-bgp HTTP/JSON рджреНрд╡рд╛рд░реЗ
  • рд░реАрд╕реНрдЯрд╛рд░реНрдЯ рдХреЗрд▓реНрдпрд╛рдирдВрддрд░ рддреНрдпрд╛рддреАрд▓ рд╕рд╛рдордЧреНрд░реА рдкреБрдирд░реНрд╕рдВрдЪрдпрд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдбрд┐рд╕реНрдХрд╡рд░реАрд▓ рдХреЕрд╢реЗ (рдмреЛрд▓реНрдЯрдбреАрдмреА рдбреЗрдЯрд╛рдмреЗрд╕рдордзреНрдпреЗ) рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдХрд░рд╛
  • рд╡реЗрдЧрд│реНрдпрд╛ рдиреЗрдЯрд╡рд░реНрдХ рдиреЗрдорд╕реНрдкреЗрд╕рд╡рд░ рд╕реНрд╡рд┐рдЪ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд╕рдорд░реНрдерди (рд╣реЗ рдХрд╛ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ рддреЗ рдЦрд╛рд▓реА рд╡рд░реНрдгрди рдХреЗрд▓реЗ рдЬрд╛рдИрд▓)
  • IPv6 рд╕рдорд░реНрдерди

рдорд░реНрдпрд╛рджрд╛

  • IDN рдбреЛрдореЗрди рдЕрджреНрдпрд╛рдк рд╕рдорд░реНрдерд┐рдд рдирд╛рд╣реАрдд
  • рдХрд╛рд╣реА BGP рд╕реЗрдЯрд┐рдВрдЧреНрдЬ

рдореА рдЧреЛрд│рд╛ рдХреЗрд▓рд╛ RPM рдЖрдгрд┐ DEB рд╕реБрд▓рдн рд╕реНрдерд╛рдкрдиреЗрд╕рд╛рдареА рдкреЕрдХреЗрдЬреЗрд╕. systemd рд╕рд╣ рд╕рд░реНрд╡ рддреБрд▓рдиреЗрдиреЗ рдЕрд▓реАрдХрдбреАрд▓ OS рд╡рд░ рдХрд╛рд░реНрдп рдХреЗрд▓реЗ рдкрд╛рд╣рд┐рдЬреЗ. рддреНрдпрд╛рдВрдЪреНрдпрд╛рдХрдбреЗ рдХреЛрдгрддреЗрд╣реА рдЕрд╡рд▓рдВрдмрд┐рддреНрд╡ рдирд╛рд╣реА.

рдпреЛрдЬрдирд╛

рддрд░, рд╕рд░реНрд╡ рдШрдЯрдХ рдПрдХрддреНрд░ рдПрдХрддреНрд░ рдХрд░рдгреЗ рд╕реБрд░реВ рдХрд░реВрдпрд╛. рдкрд░рд┐рдгрд╛рдореА, рдЖрдореНрд╣рд╛рд▓рд╛ рдпрд╛ рдиреЗрдЯрд╡рд░реНрдХ рдЯреЛрдкреЛрд▓реЙрдЬреАрд╕рд╛рд░рдЦреЗ рдХрд╛рд╣реАрддрд░реА рдорд┐рд│рд╛рд▓реЗ рдкрд╛рд╣рд┐рдЬреЗ:
DNSTap рдЖрдгрд┐ BGP рд╕рд╣ ILV рдмреНрд▓реЙрдХрд┐рдВрдЧ рдмрд╛рдпрдкрд╛рд╕ рдХрд░рд╛

рдХрд╛рдорд╛рдЪреЗ рддрд░реНрдХ, рдорд▓рд╛ рд╡рд╛рдЯрддреЗ, рдЖрдХреГрддреАрд╡рд░реВрди рд╕реНрдкрд╖реНрдЯ рдЖрд╣реЗ:

  • рдХреНрд▓рд╛рдпрдВрдЯрдиреЗ рдЖрдордЪрд╛ рд╕рд░реНрд╡реНрд╣рд░ DNS рдореНрд╣рдгреВрди рдХреЙрдиреНрдлрд┐рдЧрд░ рдХреЗрд▓реЗрд▓рд╛ рдЖрд╣реЗ рдЖрдгрд┐ DNS рдХреНрд╡реЗрд░реА рджреЗрдЦреАрд▓ VPN рд╡рд░ рдЬрд╛рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ. рд╣реЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ рдЬреЗрдгреЗрдХрд░реВрди рдкреНрд░рджрд╛рддрд╛ рдмреНрд▓реЙрдХ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА DNS рдЗрдВрдЯрд░рд╕реЗрдкреНрд╢рди рд╡рд╛рдкрд░реВ рд╢рдХрдд рдирд╛рд╣реА.
  • рд╕рд╛рдЗрдЯ рдЙрдШрдбрддрд╛рдирд╛, рдХреНрд▓рд╛рдпрдВрдЯ "xxx.org рдЪреЗ IPs рдХрд╛рдп рдЖрд╣реЗрдд" рд╕рд╛рд░рдЦреА DNS рдХреНрд╡реЗрд░реА рдкрд╛рдард╡рддреЛ.
  • рдЕрдирдмрд╛рдЙрдВрдб xxx.org рдЪреЗ рдирд┐рд░рд╛рдХрд░рдг рдХрд░рддреЗ (рдХрд┐рдВрд╡рд╛ рдХреЕрд╢реЗрдордзреВрди рдШреЗрддреЗ) рдЖрдгрд┐ рдХреНрд▓рд╛рдпрдВрдЯрд▓рд╛ рдкреНрд░рддрд┐рд╕рд╛рдж рдкрд╛рдард╡рддреЗ тАЬxxx.org рдХрдбреЗ рдЕрд╕рд╛ рдЖрдгрд┐ рдЕрд╕рд╛ IP рдЖрд╣реЗтАЭ, рддреЛ DNSTap рджреНрд╡рд╛рд░реЗ рд╕рдорд╛рдВрддрд░ рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдХрд░реВрди
  • dnstap-bgp рдордзреНрдпреЗ рд╣реЗ рдкрддреНрддреЗ рдЬрд╛рд╣реАрд░ рдХрд░рддреЗ рдмрд░реНрдб рдЬрд░ рдбреЛрдореЗрди рдмреНрд▓реЙрдХ рдХреЗрд▓реЗрд▓реНрдпрд╛ рдпрд╛рджреАрдд рдЕрд╕реЗрд▓ рддрд░ BGP рджреНрд╡рд╛рд░реЗ
  • рдмрд░реНрдб рд╕рд╣ рдпрд╛ IP рдЪреНрдпрд╛ рдорд╛рд░реНрдЧрд╛рдЪреА рдЬрд╛рд╣рд┐рд░рд╛рдд рдХрд░рддреЗ next-hop self рдХреНрд▓рд╛рдпрдВрдЯ рд░рд╛рдЙрдЯрд░
  • рдХреНрд▓рд╛рдпрдВрдЯрдХрдбреВрди рдпрд╛ рдЖрдпрдкреАрдкрд░реНрдпрдВрддрдЪреА рддреНрдпрд╛рдирдВрддрд░рдЪреА рдкреЕрдХреЗрдЯ рдмреЛрдЧрджреНрдпрд╛рддреВрди рдЬрд╛рддрд╛рдд

рд╕рд░реНрд╡реНрд╣рд░рд╡рд░, рдмреНрд▓реЙрдХ рдХреЗрд▓реЗрд▓реНрдпрд╛ рд╕рд╛рдЗрдЯреНрд╕рдЪреНрдпрд╛ рдорд╛рд░реНрдЧрд╛рдВрд╕рд╛рдареА, рдореА BIRD рдордзреНрдпреЗ рдПрдХ рд╕реНрд╡рддрдВрддреНрд░ рдЯреЗрдмрд▓ рд╡рд╛рдкрд░рддреЛ рдЖрдгрд┐ рддреЗ рдХреЛрдгрддреНрдпрд╛рд╣реА рдкреНрд░рдХрд╛рд░реЗ OS рд▓рд╛ рдЫреЗрджрдд рдирд╛рд╣реА.

рдпрд╛ рдпреЛрдЬрдиреЗрдд рдПрдХ рдХрдорддрд░рддрд╛ рдЖрд╣реЗ: рдХреНрд▓рд╛рдпрдВрдЯрдХрдбреВрди рдкреНрд░рдердо SYN рдкреЕрдХреЗрдЯ, рдмрд╣реБрдзрд╛, рдШрд░рдЧреБрддреА рдкреНрд░рджрд╛рддреНрдпрд╛рджреНрд╡рд╛рд░реЗ рд╕реЛрдбрдгреНрдпрд╛рдЪреА рд╡реЗрд│ рдЕрд╕реЗрд▓. рдорд╛рд░реНрдЧ рддреНрд╡рд░рд┐рдд рдЬрд╛рд╣реАрд░ рдХреЗрд▓рд╛ рдЬрд╛рдд рдирд╛рд╣реА. рдЖрдгрд┐ рдкреНрд░рджрд╛рддрд╛ рдмреНрд▓реЙрдХрд┐рдВрдЧ рдХрд╕реЗ рдХрд░рддреЛ рдпрд╛рд╡рд░ рдЕрд╡рд▓рдВрдмреВрди рдкрд░реНрдпрд╛рдп рд╢рдХреНрдп рдЖрд╣реЗрдд. рдЬрд░ рддреНрдпрд╛рдиреЗ рдлрдХреНрдд рдЯреНрд░реЕрдлрд┐рдХ рд╕реЛрдбрд▓реЗ рддрд░ рдХрд╛рд╣реА рд╣рд░рдХрдд рдирд╛рд╣реА. рдЖрдгрд┐ рдЬрд░ рддреНрдпрд╛рдиреЗ рддреЗ рдХрд╛рд╣реА DPI рд╡рд░ рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рд┐рдд рдХреЗрд▓реЗ рддрд░ (рд╕реИрджреНрдзрд╛рдВрддрд┐рдХрджреГрд╖реНрдЯреНрдпрд╛) рд╡рд┐рд╢реЗрд╖ рдкреНрд░рднрд╛рд╡ рд╢рдХреНрдп рдЖрд╣реЗрдд.

рд╣реЗ рджреЗрдЦреАрд▓ рд╢рдХреНрдп рдЖрд╣реЗ рдХреА рдХреНрд▓рд╛рдпрдВрдЯ DNS TTL рдЪрдорддреНрдХрд╛рд░рд╛рдВрдЪрд╛ рдЖрджрд░ рдХрд░рдд рдирд╛рд╣реАрдд, рдЬреНрдпрд╛рдореБрд│реЗ рдХреНрд▓рд╛рдпрдВрдЯ рдЕрдирдмрд╛рдЙрдВрдб рд╡рд┐рдЪрд╛рд░рдгреНрдпрд╛рдРрд╡рдЬреА рддреНрдпрд╛рдЪреНрдпрд╛ рдХреБрдЬрд▓реЗрд▓реНрдпрд╛ рдХреЕрд╢реЗрдордзреВрди рдХрд╛рд╣реА рд╢рд┐рд│реНрдпрд╛ рдиреЛрдВрджреА рд╡рд╛рдкрд░реВ рд╢рдХрддреЛ.

рд╡реНрдпрд╡рд╣рд╛рд░рд╛рдд, рдкрд╣рд┐рд▓реНрдпрд╛ рдХрд┐рдВрд╡рд╛ рджреБрд╕рд░реНтАНрдпрд╛рдиреЗ рдорд╛рдЭреНрдпрд╛рд╕рд╛рдареА рд╕рдорд╕реНрдпрд╛ рдирд┐рд░реНрдорд╛рдг рдХреЗрд▓реНрдпрд╛ рдирд╛рд╣реАрдд, рдкрд░рдВрддреБ рддреБрдордЪреЗ рдорд╛рдпрд▓реЗрдЬ рднрд┐рдиреНрди рдЕрд╕реВ рд╢рдХрддреЗ.

рд╕рд░реНрд╡реНрд╣рд░ рдЯреНрдпреВрдирд┐рдВрдЧ

рд░реЛрд▓рд┐рдВрдЧрдЪреНрдпрд╛ рд╕реБрд▓рднрддреЗрд╕рд╛рдареА, рдореА рд▓рд┐рд╣рд┐рд▓реЗ рдЙрддреНрддрд░рджрд╛рдпреА рд╕рд╛рдареА рднреВрдорд┐рдХрд╛. рд╣реЗ Linux рд╡рд░ рдЖрдзрд╛рд░рд┐рдд рд╕рд░реНрд╡реНрд╣рд░ рдЖрдгрд┐ рдХреНрд▓рд╛рдпрдВрдЯ рджреЛрдиреНрд╣реА рдХреЙрдиреНрдлрд┐рдЧрд░ рдХрд░реВ рд╢рдХрддреЗ (рдбреЗрдм-рдЖрдзрд╛рд░рд┐рдд рд╡рд┐рддрд░рдгрд╛рд╕рд╛рдареА рдбрд┐рдЭрд╛рдЗрди рдХреЗрд▓реЗрд▓реЗ). рд╕рд░реНрд╡ рд╕реЗрдЯрд┐рдВрдЧреНрдЬ рдЕрдЧрджреА рд╕реНрдкрд╖реНрдЯ рдЖрд╣реЗрдд рдЖрдгрд┐ рд╕реЗрдЯ рдХреЗрд▓реНрдпрд╛ рдЖрд╣реЗрдд inventory.yml. рд╣реА рднреВрдорд┐рдХрд╛ рдорд╛рдЭреНрдпрд╛ рдореЛрдареНрдпрд╛ рдкреНрд▓реЗрдмреБрдХрдордзреВрди рдХрд╛рдкрд▓реА рдЖрд╣реЗ, рддреНрдпрд╛рдореБрд│реЗ рддреНрдпрд╛рдд рддреНрд░реБрдЯреА рдЕрд╕реВ рд╢рдХрддрд╛рдд - рд╡рд┐рдирдВрддреА рдЦреЗрдЪрдгреЗ рд╕реНрд╡рд╛рдЧрдд рдЖрд╣реЗ ЁЯЩВ

рдЪрд▓рд╛ рдореБрдЦреНрдп рдШрдЯрдХрд╛рдВрдХрдбреЗ рдЬрд╛рдКрдпрд╛.

рдмреАрдЬреАрдкреА

рдПрдХрд╛рдЪ рд╣реЛрд╕реНрдЯрд╡рд░ рджреЛрди BGP рдбрд┐рдорди рдЪрд╛рд▓рд╡рдгреНрдпрд╛рдордзреНрдпреЗ рдПрдХ рдореВрд▓рднреВрдд рд╕рдорд╕реНрдпрд╛ рдЖрд╣реЗ: BIRD рд▓реЛрдХрд▓рд╣реЛрд╕реНрдЯ (рдХрд┐рдВрд╡рд╛ рдХреЛрдгрддреНрдпрд╛рд╣реА рд╕реНрдерд╛рдирд┐рдХ рдЗрдВрдЯрд░рдлреЗрд╕) рд╕рд╣ BGP рдкреАрдЕрд░рд┐рдВрдЧ рд╕реЗрдЯ рдХрд░реВ рдЗрдЪреНрдЫрд┐рдд рдирд╛рд╣реА. рд╢рдмреНрджрд╛рдкрд╛рд╕реВрдирдЪ. рдЧреБрдЧрд▓рд┐рдВрдЧ рдЖрдгрд┐ рдореЗрд▓рд┐рдВрдЧ-рдпрд╛рджреНрдпрд╛ рд╡рд╛рдЪреВрди рдлрд╛рдпрджрд╛ рдЭрд╛рд▓рд╛ рдирд╛рд╣реА, рддреЗ рдЕрд╕рд╛ рджрд╛рд╡рд╛ рдХрд░рддрд╛рдд рдХреА рд╣реЗ рдбрд┐рдЭрд╛рдЗрдирджреНрд╡рд╛рд░реЗ рдЖрд╣реЗ. рдХрджрд╛рдЪрд┐рдд рдХрд╛рд╣реА рдорд╛рд░реНрдЧ рдЕрд╕реЗрд▓, рдкрд░рдВрддреБ рдорд▓рд╛ рддреЛ рд╕рд╛рдкрдбрд▓рд╛ рдирд╛рд╣реА.

рддреБрдореНрд╣реА рджреБрд╕рд░рд╛ BGP рдбрд┐рдорди рд╡рд╛рдкрд░реВрди рдкрд╛рд╣реВ рд╢рдХрддрд╛, рдкрд░рдВрддреБ рдорд▓рд╛ BIRD рдЖрд╡рдбрддреЛ рдЖрдгрд┐ рддреЛ рдорд╛рдЭреНрдпрд╛рджреНрд╡рд╛рд░реЗ рд╕рд░реНрд╡рддреНрд░ рд╡рд╛рдкрд░рд▓рд╛ рдЬрд╛рддреЛ, рдорд▓рд╛ рд╕рдВрд╕реНрдерд╛ рддрдпрд╛рд░ рдХрд░рд╛рдпрдЪреА рдирд╛рд╣реАрдд.

рдореНрд╣рдгреВрди, рдореА рдиреЗрдЯрд╡рд░реНрдХ рдиреЗрдорд╕реНрдкреЗрд╕рдордзреНрдпреЗ dnstap-bgp рд▓рдкрд╡рд▓реЗ рдЖрд╣реЗ, рдЬреЗ рд╡реНрд╣реЗрде рдЗрдВрдЯрд░рдлреЗрд╕рджреНрд╡рд╛рд░реЗ рд░реВрдЯрд╢реА рдЬреЛрдбрд▓реЗрд▓реЗ рдЖрд╣реЗ: рддреЗ рдкрд╛рдИрдкрд╕рд╛рд░рдЦреЗ рдЖрд╣реЗ, рдЬреНрдпрд╛рдЪреЗ рдЯреЛрдХ рд╡реЗрдЧрд╡реЗрдЧрд│реНрдпрд╛ рдиреЗрдорд╕реНрдкреЗрд╕рдордзреНрдпреЗ рдЪрд┐рдХрдЯрд▓реЗрд▓реЗ рдЖрд╣реЗрдд. рдпрд╛ рдкреНрд░рддреНрдпреЗрдХ рдЯреЛрдХрд╛рд╡рд░, рдЖрдореНрд╣реА рдЦрд╛рдЬрдЧреА p2p IP рдкрддреНрддреЗ рд▓рдЯрдХрд╡рддреЛ рдЬреЗ рд╣реЛрд╕реНрдЯрдЪреНрдпрд╛ рдкрд▓реАрдХрдбреЗ рдЬрд╛рдд рдирд╛рд╣реАрдд, рддреНрдпрд╛рдореБрд│реЗ рддреЗ рдХрд╛рд╣реАрд╣реА рдЕрд╕реВ рд╢рдХрддрд╛рдд. рд╣реАрдЪ рдпрдВрддреНрд░рдгрд╛ рдЖрддрд▓реНрдпрд╛ рдкреНрд░рдХреНрд░рд┐рдпреЗрдд рдкреНрд░рд╡реЗрд╢ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд╡рд╛рдкрд░рд▓реА рдЬрд╛рддреЗ рд╕рд░реНрд╡рд╛рдВрдЪреЗ рдкреНрд░рд┐рдп рдбреЙрдХрд░ рдЖрдгрд┐ рдЗрддрд░ рдХрдВрдЯреЗрдирд░.

рдпрд╛рд╕рд╛рдареА рд╣реЗ рд▓рд┐рд╣реАрд▓реЗ рд╣реЛрддреЗ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЖрдгрд┐ рдХреЗрд╕рд╛рдВрджреНрд╡рд╛рд░реЗ рд╕реНрд╡рддрдГрд▓рд╛ рджреБрд╕рд░реНтАНрдпрд╛ рдиреЗрдорд╕реНрдкреЗрд╕рдордзреНрдпреЗ рдбреНрд░реЕрдЧ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд╡рд░ рд╡рд░реНрдгрди рдХреЗрд▓реЗрд▓реА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ dnstap-bgp рдордзреНрдпреЗ рдЬреЛрдбрд▓реА рдЧреЗрд▓реА рдЖрд╣реЗ. рдпрд╛рдореБрд│реЗ, рддреЗ рд░реВрдЯ рдореНрд╣рдгреВрди рдЪрд╛рд▓рд╡рд▓реЗ рдЬрд╛рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ рдХрд┐рдВрд╡рд╛ рд╕реЗрдЯрдХреЕрдк рдХрдорд╛рдВрдбрджреНрд╡рд╛рд░реЗ CAP_SYS_ADMIN рдмрд╛рдпрдирд░реАрд▓рд╛ рдЬрд╛рд░реА рдХреЗрд▓реЗ рдЬрд╛рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ.

рдиреЗрдорд╕реНрдкреЗрд╕ рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЙрджрд╛рд╣рд░рдг рд╕реНрдХреНрд░рд┐рдкреНрдЯ

#!/bin/bash

NS="dtap"

IP="/sbin/ip"
IPNS="$IP netns exec $NS $IP"

IF_R="veth-$NS-r"
IF_NS="veth-$NS-ns"

IP_R="192.168.149.1"
IP_NS="192.168.149.2"

/bin/systemctl stop dnstap-bgp || true

$IP netns del $NS > /dev/null 2>&1
$IP netns add $NS

$IP link add $IF_R type veth peer name $IF_NS
$IP link set $IF_NS netns $NS

$IP addr add $IP_R remote $IP_NS dev $IF_R
$IP link set $IF_R up

$IPNS addr add $IP_NS remote $IP_R dev $IF_NS
$IPNS link set $IF_NS up

/bin/systemctl start dnstap-bgp

dnstap-bgp.conf

namespace = "dtap"
domains = "/var/cache/rkn_domains.txt"
ttl = "168h"

[dnstap]
listen = "/tmp/dnstap.sock"
perm = "0666"

[bgp]
as = 65000
routerid = "192.168.149.2"

peers = [
    "192.168.149.1",
]

bird.conf

router id 192.168.1.1;

table rkn;

# Clients
protocol bgp bgp_client1 {
    table rkn;
    local as 65000;
    neighbor 192.168.1.2 as 65000;
    direct;
    bfd on;
    next hop self;
    graceful restart;
    graceful restart time 60;
    export all;
    import none;
}

# DNSTap-BGP
protocol bgp bgp_dnstap {
    table rkn;
    local as 65000;
    neighbor 192.168.149.2 as 65000;
    direct;
    passive on;
    rr client;
    import all;
    export none;
}

# Static routes list
protocol static static_rkn {
    table rkn;
    include "rkn_routes.list";
    import all;
    export none;
}

rkn_routes.list

route 3.226.79.85/32 via "ens3";
route 18.236.189.0/24 via "ens3";
route 3.224.21.0/24 via "ens3";
...

DNS

рдбреАрдлреЙрд▓реНрдЯрдиреБрд╕рд╛рд░, рдЙрдмрдВрдЯреВрдордзреНрдпреЗ, рдЕрдирдмрд╛рдЙрдВрдб рдмрд╛рдпрдирд░реАрд▓рд╛ AppArmor рдкреНрд░реЛрдлрд╛рдЗрд▓рджреНрд╡рд╛рд░реЗ рдХреНрд▓реЕрдореНрдк рдХреЗрд▓реЗ рдЬрд╛рддреЗ, рдЬреЗ рддреНрдпрд╛рд╕ рд╕рд░реНрд╡ рдкреНрд░рдХрд╛рд░рдЪреНрдпрд╛ DNSTap рд╕реЙрдХреЗрдЯрд╢реА рдХрдиреЗрдХреНрдЯ рд╣реЛрдгреНрдпрд╛рдкрд╛рд╕реВрди рдкреНрд░рддрд┐рдмрдВрдзрд┐рдд рдХрд░рддреЗ. рддреБрдореНрд╣реА рд╣реЗ рдкреНрд░реЛрдлрд╛рдЗрд▓ рд╣рдЯрд╡реВ рд╢рдХрддрд╛ рдХрд┐рдВрд╡рд╛ рддреЗ рдЕрдХреНрд╖рдо рдХрд░реВ рд╢рдХрддрд╛:

# cd /etc/apparmor.d/disable && ln -s ../usr.sbin.unbound .
# apparmor_parser -R /etc/apparmor.d/usr.sbin.unbound

рд╣реЗ рдмрд╣реБрдзрд╛ рдкреНрд▓реЗрдмреБрдХрдордзреНрдпреЗ рдЬреЛрдбрд▓реЗ рдЬрд╛рд╡реЗ. рдкреНрд░реЛрдлрд╛рдЗрд▓ рджреБрд░реБрд╕реНрдд рдХрд░рдгреЗ рдЖрдгрд┐ рдЖрд╡рд╢реНрдпрдХ рдЕрдзрд┐рдХрд╛рд░ рдЬрд╛рд░реА рдХрд░рдгреЗ рд╣реЗ рдирдХреНрдХреАрдЪ рдЖрджрд░реНрд╢ рдЖрд╣реЗ, рдкрд░рдВрддреБ рдореА рдЦреВрдк рдЖрд│рд╢реА рд╣реЛрддреЛ.

unbound.conf

server:
    chroot: ""
    port: 53
    interface: 0.0.0.0
    root-hints: "/var/lib/unbound/named.root"
    auto-trust-anchor-file: "/var/lib/unbound/root.key"
    access-control: 192.168.0.0/16 allow

remote-control:
    control-enable: yes
    control-use-cert: no

dnstap:
    dnstap-enable: yes
    dnstap-socket-path: "/tmp/dnstap.sock"
    dnstap-send-identity: no
    dnstap-send-version: no

    dnstap-log-client-response-messages: yes

рд╕реВрдЪреА рдбрд╛рдЙрдирд▓реЛрдб рдЖрдгрд┐ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд░рдд рдЖрд╣реЗ

IP рдкрддреНрддреНрдпрд╛рдВрдЪреА рд╕реВрдЪреА рдбрд╛рдЙрдирд▓реЛрдб рдЖрдгрд┐ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд╕реНрдХреНрд░рд┐рдкреНрдЯ
рд╣реЗ рд╕реВрдЪреА рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рддреЗ, рдЙрдкрд╕рд░реНрдЧрд╛рдкрд░реНрдпрдВрдд рдмреЗрд░реАрдЬ рдХрд░рддреЗ pfx. рдж рдЬреЛрдбреВ рдирдХрд╛ ╨╕ рд╕рд╛рд░рд╛рдВрд╢_рдХрд░реВ рдирдХрд╛ рддреБрдореНрд╣реА IPs рдЖрдгрд┐ рдиреЗрдЯрд╡рд░реНрдХрдирд╛ рд╡рдЧрд│рдгреНрдпрд╛рд╕ рдХрд┐рдВрд╡рд╛ рд╕рд╛рд░рд╛рдВрд╢ рди рджреЗрдгреНрдпрд╛рд╕ рд╕рд╛рдВрдЧреВ рд╢рдХрддрд╛. рдорд▓рд╛ рддреНрдпрд╛рдЪреА рдЧрд░рдЬ рд╣реЛрддреА. рдорд╛рдЭреНрдпрд╛ VPS рдЪреЗ рд╕рдмрдиреЗрдЯ рдмреНрд▓реЙрдХрд▓рд┐рд╕реНрдЯрдордзреНрдпреЗ рд╣реЛрддреЗ ЁЯЩВ

рдордЬреЗрджрд╛рд░ рдЧреЛрд╖реНрдЯ рдЕрд╢реА рдЖрд╣реЗ рдХреА RosKomSvoboda API рдбреАрдлреЙрд▓реНрдЯ рдкрд╛рдпрдерди рд╡рд╛рдкрд░рдХрд░реНрддрд╛ рдПрдЬрдВрдЯрд╕рд╣ рд╡рд┐рдирдВрддреНрдпрд╛ рдЕрд╡рд░реЛрдзрд┐рдд рдХрд░рддреЗ. рд╕реНрдХреНрд░рд┐рдкреНрдЯ-рдХрд┐рдбреАрд▓рд╛ рд╕рдордЬрд▓реНрдпрд╛рд╕рд╛рд░рдЦреЗ рджрд┐рд╕рддреЗ. рдореНрд╣рдгреВрди, рдЖрдореНрд╣реА рддреЗ рдУрдЧреНрдиреЗрд▓рд┐рд╕рдордзреНрдпреЗ рдмрджрд▓рддреЛ.

рдЖрддрд╛рдкрд░реНрдпрдВрдд, рд╣реЗ рдлрдХреНрдд IPv4 рд╕рд╣ рдХрд╛рд░реНрдп рдХрд░рддреЗ. IPv6 рдЪрд╛ рд╡рд╛рдЯрд╛ рд▓рд╣рд╛рди рдЖрд╣реЗ, рдкрд░рдВрддреБ рддреНрдпрд╛рдЪреЗ рдирд┐рд░рд╛рдХрд░рдг рдХрд░рдгреЗ рд╕реЛрдкреЗ рд╣реЛрдИрд▓. рдЬреЛрдкрд░реНрдпрдВрдд рддреБрдореНрд╣рд╛рд▓рд╛ bird6 рджреЗрдЦреАрд▓ рд╡рд╛рдкрд░рд╛рд╡реЗ рд▓рд╛рдЧрдд рдирд╛рд╣реА.

rkn.py

#!/usr/bin/python3

import json, urllib.request, ipaddress as ipa

url = 'https://api.reserve-rbl.ru/api/v2/ips/json'
pfx = '24'

dont_summarize = {
    # ipa.IPv4Network('1.1.1.0/24'),
}

dont_add = {
    # ipa.IPv4Address('1.1.1.1'),
}

req = urllib.request.Request(
    url,
    data=None, 
    headers={
        'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.47 Safari/537.36'
    }
)

f = urllib.request.urlopen(req)
ips = json.loads(f.read().decode('utf-8'))

prefix32 = ipa.IPv4Address('255.255.255.255')

r = {}
for i in ips:
    ip = ipa.ip_network(i)
    if not isinstance(ip, ipa.IPv4Network):
        continue

    addr = ip.network_address

    if addr in dont_add:
        continue

    m = ip.netmask
    if m != prefix32:
        r[m] = [addr, 1]
        continue

    sn = ipa.IPv4Network(str(addr) + '/' + pfx, strict=False)

    if sn in dont_summarize:
        tgt = addr
    else:
        tgt = sn

    if not sn in r:
        r[tgt] = [addr, 1]
    else:
        r[tgt][1] += 1

o = []
for n, v in r.items():
    if v[1] == 1:
        o.append(str(v[0]) + '/32')
    else:
        o.append(n)

for k in o:
    print(k)

рдЕрдкрдбреЗрдЯ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд╕реНрдХреНрд░рд┐рдкреНрдЯ
рдореА рддреЗ рджрд┐рд╡рд╕рд╛рддреВрди рдПрдХрджрд╛ рдореБрдХреБрдЯрд╡рд░ рдЪрд╛рд▓рд╡рддреЛ, рдХрджрд╛рдЪрд┐рдд рджрд░ 4 рддрд╛рд╕рд╛рдВрдиреА рддреЗ рдЦреЗрдЪрдгреЗ рдпреЛрдЧреНрдп рдЖрд╣реЗ. рд╣рд╛, рдорд╛рдЭреНрдпрд╛ рдорддреЗ, RKN рд▓рд╛ рдкреНрд░рджрд╛рддреНрдпрд╛рдВрдХрдбреВрди рдЖрд╡рд╢реНрдпрдХ рдЕрд╕рд▓реЗрд▓рд╛ рдиреВрддрдиреАрдХрд░рдг рдХрд╛рд▓рд╛рд╡рдзреА рдЖрд╣реЗ. рд╢рд┐рд╡рд╛рдп, рддреНрдпрд╛рдВрдЪреНрдпрд╛рдХрдбреЗ рдЖрдгрдЦреА рдХрд╛рд╣реА рдЕрддрд┐-рдЕрд░реНрдЬрдВрдЯ рдмреНрд▓реЙрдХрд┐рдВрдЧ рдЖрд╣реЗрдд, рдЬреЗ рдЬрд▓рдж рдкреЛрд╣реЛрдЪреВ рд╢рдХрддрд╛рдд.

рдЦрд╛рд▓реАрд▓ рдЧреЛрд╖реНрдЯреА рдХрд░рддрд╛рдд:

  • рдкреНрд░рдердо рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрд╛рд▓рд╡рддреЗ рдЖрдгрд┐ рдорд╛рд░реНрдЧрд╛рдВрдЪреА рд╕реВрдЪреА рдЕрджреНрдпрддрдирд┐рдд рдХрд░рддреЗ (rkn_routes.list) BIRD рд╕рд╛рдареА
  • BIRD рд░реАрд▓реЛрдб рдХрд░рд╛
  • dnstap-bgp рд╕рд╛рдареА рдбреЛрдореЗрдирдЪреА рд╕реВрдЪреА рдЕрджреНрдпрддрдирд┐рдд рдХрд░рддреЗ рдЖрдгрд┐ рд╕рд╛рдл рдХрд░рддреЗ
  • dnstap-bgp рд░реАрд▓реЛрдб рдХрд░рд╛

rkn_update.sh

#!/bin/bash

ROUTES="/etc/bird/rkn_routes.list"
DOMAINS="/var/cache/rkn_domains.txt"

# Get & summarize routes
/opt/rkn.py | sed 's/(.*)/route 1 via "ens3";/' > $ROUTES.new

if [ $? -ne 0 ]; then
    rm -f $ROUTES.new
    echo "Unable to download RKN routes"
    exit 1
fi

if [ -e $ROUTES ]; then
    mv $ROUTES $ROUTES.old
fi

mv $ROUTES.new $ROUTES

/bin/systemctl try-reload-or-restart bird

# Get domains
curl -s https://api.reserve-rbl.ru/api/v2/domains/json -o - | jq -r '.[]' | sed 's/^*.//' | sort | uniq > $DOMAINS.new

if [ $? -ne 0 ]; then
    rm -f $DOMAINS.new
    echo "Unable to download RKN domains"
    exit 1
fi

if [ -e $DOMAINS ]; then
    mv $DOMAINS $DOMAINS.old
fi

mv $DOMAINS.new $DOMAINS

/bin/systemctl try-reload-or-restart dnstap-bgp

рддреЗ рдЬрд╛рд╕реНрдд рд╡рд┐рдЪрд╛рд░ рди рдХрд░рддрд╛ рд▓рд┐рд╣рд┐рд▓реЗ рд╣реЛрддреЗ, рдореНрд╣рдгреВрди рдЬрд░ рддреБрдореНрд╣рд╛рд▓рд╛ рдХрд╛рд╣реА рд╕реБрдзрд╛рд░рддрд╛ рдпреЗрдИрд▓ рдЕрд╕реЗ рджрд┐рд╕рд▓реЗ рддрд░ - рддреНрдпрд╛рд╕рд╛рдареА рдЬрд╛.

рдХреНрд▓рд╛рдпрдВрдЯ рд╕реЗрдЯрдЕрдк

рдпреЗрдереЗ рдореА рд▓рд┐рдирдХреНрд╕ рд░рд╛рдЙрдЯрд░рд╕рд╛рдареА рдЙрджрд╛рд╣рд░рдгреЗ рджреЗрдИрди, рдкрд░рдВрддреБ Mikrotik / Cisco рдЪреНрдпрд╛ рдмрд╛рдмрддреАрдд рддреЗ рдЖрдгрдЦреА рд╕реЛрдкреЗ рдЕрд╕рд╛рд╡реЗ.

рдкреНрд░рдердо, рдЖрдореНрд╣реА BIRD рд╕реЗрдЯ рдХреЗрд▓реЗ:

bird.conf

router id 192.168.1.2;
table rkn;

protocol device {
    scan time 10;
};

# Servers
protocol bgp bgp_server1 {
    table rkn;
    local as 65000;
    neighbor 192.168.1.1 as 65000;
    direct;
    bfd on;
    next hop self;
    graceful restart;
    graceful restart time 60;
    rr client;
    export none;
    import all;
}

protocol kernel {
    table rkn;
    kernel table 222;
    scan time 10;
    export all;
    import none;
}

рдЕрд╢рд╛ рдкреНрд░рдХрд╛рд░реЗ, рдЖрдореНрд╣реА BGP рдХрдбреВрди рдкреНрд░рд╛рдкреНрдд рдХреЗрд▓реЗрд▓реЗ рдорд╛рд░реНрдЧ рдХрд░реНрдирд▓ рд░рд╛рдЙрдЯрд┐рдВрдЧ рдЯреЗрдмрд▓ рдХреНрд░рдорд╛рдВрдХ 222 рд╕рд╣ рд╕рдордХреНрд░рдорд┐рдд рдХрд░реВ.

рддреНрдпрд╛рдирдВрддрд░, рдбреАрдлреЙрд▓реНрдЯ рдПрдХ рдкрд╛рд╣рдгреНрдпрд╛рдкреВрд░реНрд╡реА рдХрд░реНрдирд▓рд▓рд╛ рд╣реА рдкреНрд▓реЗрдЯ рдкрд╛рд╣рдгреНрдпрд╛рд╕ рд╕рд╛рдВрдЧрдгреЗ рдкреБрд░реЗрд╕реЗ рдЖрд╣реЗ:

# ip rule add from all pref 256 lookup 222
# ip rule
0:  from all lookup local
256:    from all lookup 222
32766:  from all lookup main
32767:  from all lookup default

рд╕рд░реНрд╡ рдХрд╛рд╣реА, рд╕рд░реНрд╡реНрд╣рд░рдЪрд╛ рдмреЛрдЧрджрд╛ IP рдкрддреНрддрд╛ DNS рдореНрд╣рдгреВрди рд╡рд┐рддрд░рд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд░рд╛рдЙрдЯрд░рд╡рд░ DHCP рдХреЙрдиреНрдлрд┐рдЧрд░ рдХрд░рдгреЗ рдмрд╛рдХреА рдЖрд╣реЗ рдЖрдгрд┐ рдпреЛрдЬрдирд╛ рддрдпрд╛рд░ рдЖрд╣реЗ.

рдЙрдгреАрд╡рд╛

рдбреЛрдореЗрдирдЪреА рд╕реВрдЪреА рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЖрдгрд┐ рддреНрдпрд╛рд╡рд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд╕рдзреНрдпрд╛рдЪреНрдпрд╛ рдЕрд▓реНрдЧреЛрд░рд┐рджрдорд╕рд╣, рддреНрдпрд╛рдд рдЗрддрд░ рдЧреЛрд╖реНрдЯреАрдВрд╕рд╣, youtube.com рдЖрдгрд┐ рддреНрдпрд╛рдЪреЗ CDN.

рдЖрдгрд┐ рдпрд╛рдореБрд│реЗ рд╕рд░реНрд╡ рд╡реНрд╣рд┐рдбрд┐рдУ VPN рджреНрд╡рд╛рд░реЗ рдЬрд╛рддреАрд▓, рдЬреЗ рд╕рдВрдкреВрд░реНрдг рдЪреЕрдиреЗрд▓ рдмрдВрдж рдХрд░реВ рд╢рдХрддрд╛рдд. рдХрджрд╛рдЪрд┐рдд рд▓реЛрдХрдкреНрд░рд┐рдп рдбреЛрдореЗрди-рдЕрдкрд╡рд░реНрдЬрдирд╛рдВрдЪреА рдпрд╛рджреА рд╕рдВрдХрд▓рд┐рдд рдХрд░рдгреЗ рдпреЛрдЧреНрдп рдЖрд╣реЗ рдЬреЗ рдХрд╛рд╣реА рдХрд╛рд│рд╛рд╕рд╛рдареА RKN рдЕрд╡рд░реЛрдзрд┐рдд рдХрд░рддрд╛рдд, рд╣рд┐рдореНрдордд рдкрд╛рддрд│ рдЖрд╣реЗ. рдЖрдгрд┐ рдкрд╛рд░реНрд╕рд┐рдВрдЧ рдХрд░рддрд╛рдирд╛ рддреНрдпрд╛рдВрдирд╛ рд╡рдЧрд│рд╛.

рдирд┐рд╖реНрдХрд░реНрд╖

рд╡рд░реНрдгрди рдХреЗрд▓реЗрд▓реА рдкрджреНрдзрдд рдЖрдкрд▓реНрдпрд╛рд▓рд╛ рдкреНрд░рджрд╛рддреЗ рд╕рдзреНрдпрд╛ рд▓рд╛рдЧреВ рдХреЗрд▓реЗрд▓реНрдпрд╛ рдЬрд╡рд│рдЬрд╡рд│ рдХреЛрдгрддреНрдпрд╛рд╣реА рдмреНрд▓реЙрдХрд┐рдВрдЧрд▓рд╛ рдмрд╛рдпрдкрд╛рд╕ рдХрд░рдгреНрдпрд╛рдЪреА рдкрд░рд╡рд╛рдирдЧреА рджреЗрддреЗ.

рддрддреНрд╡рддрдГ, dnstap-bgp рдбреЛрдореЗрди рдирд╛рд╡рд╛рд╡рд░ рдЖрдзрд╛рд░рд┐рдд рдЯреНрд░реЕрдлрд┐рдХ рдирд┐рдпрдВрддреНрд░рдгрд╛рдЪреА рдХрд╛рд╣реА рдкрд╛рддрд│реА рдЖрд╡рд╢реНрдпрдХ рдЕрд╕рд▓реНрдпрд╛рд╕ рдЗрддрд░ рдХреЛрдгрддреНрдпрд╛рд╣реА рдЙрджреНрджреЗрд╢рд╛рд╕рд╛рдареА рд╡рд╛рдкрд░рд▓реА рдЬрд╛рдК рд╢рдХрддреЗ. рдлрдХреНрдд рд▓рдХреНрд╖рд╛рдд рдареЗрд╡рд╛ рдХреА рдЖрдордЪреНрдпрд╛ рдХрд╛рд│рд╛рдд, рдПрдХ рд╣рдЬрд╛рд░ рд╕рд╛рдЗрдЯ рд╕рдорд╛рди IP рдкрддреНрддреНрдпрд╛рд╡рд░ (рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рдХрд╛рд╣реА рдХреНрд▓рд╛рдЙрдбрдлреНрд▓реЗрдЕрд░рдЪреНрдпрд╛ рдорд╛рдЧреЗ) рд╣рдБрдЧ рд╣реЛрдК рд╢рдХрддрд╛рдд, рдореНрд╣рдгреВрди рдпрд╛ рдкрджреНрдзрддреАрдЪреА рдЕрдЪреВрдХрддрд╛ рдХрдореА рдЖрд╣реЗ.

рдкрд░рдВрддреБ рдмрд╛рдпрдкрд╛рд╕ рд▓реЙрдХрдЪреНрдпрд╛ рдЧрд░рдЬрд╛рдВрд╕рд╛рдареА, рд╣реЗ рдкреБрд░реЗрд╕реЗ рдЖрд╣реЗ.

рдЬреЛрдбрдгреЗ, рд╕рдВрдкрд╛рджрдиреЗ, рдкреБрд▓ рд╡рд┐рдирдВрддреНрдпрд╛ - рд╕реНрд╡рд╛рдЧрдд рдЖрд╣реЗ!

рд╕реНрддреНрд░реЛрдд: www.habr.com

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╛