рд░рд╛рдЙрдЯрд░рдУрдПрд╕ рдореЗрдВ рдмреИрдХрдкреЛрд░реНрдЯ рднреЗрджреНрдпрддрд╛ рд╕реИрдХрдбрд╝реЛрдВ рд╣рдЬрд╛рд░реЛрдВ рдЙрдкрдХрд░рдгреЛрдВ рдХреЛ рдЦрддрд░реЗ рдореЗрдВ рдбрд╛рд▓рддреА рд╣реИ

рд░рд╛рдЙрдЯрд░рдУрдПрд╕ рдореЗрдВ рдмреИрдХрдкреЛрд░реНрдЯ рднреЗрджреНрдпрддрд╛ рд╕реИрдХрдбрд╝реЛрдВ рд╣рдЬрд╛рд░реЛрдВ рдЙрдкрдХрд░рдгреЛрдВ рдХреЛ рдЦрддрд░реЗ рдореЗрдВ рдбрд╛рд▓рддреА рд╣реИ

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

рд░рд╛рдЙрдЯрд░рдУрдПрд╕ рдореЗрдВ рдмреИрдХрдкреЛрд░реНрдЯ рднреЗрджреНрдпрддрд╛ рд╕реИрдХрдбрд╝реЛрдВ рд╣рдЬрд╛рд░реЛрдВ рдЙрдкрдХрд░рдгреЛрдВ рдХреЛ рдЦрддрд░реЗ рдореЗрдВ рдбрд╛рд▓рддреА рд╣реИ

рднреЗрджреНрдпрддрд╛ рд╡рд┐рд╡рд░рдг

рд░рд╛рдЙрдЯрд░рдУрдПрд╕ рдЯрд░реНрдорд┐рдирд▓ рдбреАрдПрдирдПрд╕ рд▓реБрдХрдЕрдк рдХреЗ рд▓рд┐рдП рд░рд┐рдЬрд╝реЙрд▓реНрдпреВрд╢рди рдХрдорд╛рдВрдб рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред

рд░рд╛рдЙрдЯрд░рдУрдПрд╕ рдореЗрдВ рдмреИрдХрдкреЛрд░реНрдЯ рднреЗрджреНрдпрддрд╛ рд╕реИрдХрдбрд╝реЛрдВ рд╣рдЬрд╛рд░реЛрдВ рдЙрдкрдХрд░рдгреЛрдВ рдХреЛ рдЦрддрд░реЗ рдореЗрдВ рдбрд╛рд▓рддреА рд╣реИ

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

рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рд░рд╛рдЙрдЯрд░рдУрдПрд╕ рдореЗрдВ рдбреАрдПрдирдПрд╕ рд╕рд░реНрд╡рд░ рд╕реБрд╡рд┐рдзрд╛ рдЕрдХреНрд╖рдо рд╣реИред

рд░рд╛рдЙрдЯрд░рдУрдПрд╕ рдореЗрдВ рдмреИрдХрдкреЛрд░реНрдЯ рднреЗрджреНрдпрддрд╛ рд╕реИрдХрдбрд╝реЛрдВ рд╣рдЬрд╛рд░реЛрдВ рдЙрдкрдХрд░рдгреЛрдВ рдХреЛ рдЦрддрд░реЗ рдореЗрдВ рдбрд╛рд▓рддреА рд╣реИ

рд╣рд╛рд▓рд╛рдБрдХрд┐, рд╕рд░реНрд╡рд░ рдлрд╝рдВрдХреНрд╢рди рдЕрдХреНрд╖рдо рд╣реЛрдиреЗ рдкрд░ рднреА, рд░рд╛рдЙрдЯрд░ рдЕрдкрдирд╛ рд╕реНрд╡рдпрдВ рдХрд╛ DNS рдХреИрд╢ рдмрдирд╛рдП рд░рдЦрддрд╛ рд╣реИред

рд░рд╛рдЙрдЯрд░рдУрдПрд╕ рдореЗрдВ рдмреИрдХрдкреЛрд░реНрдЯ рднреЗрджреНрдпрддрд╛ рд╕реИрдХрдбрд╝реЛрдВ рд╣рдЬрд╛рд░реЛрдВ рдЙрдкрдХрд░рдгреЛрдВ рдХреЛ рдЦрддрд░реЗ рдореЗрдВ рдбрд╛рд▓рддреА рд╣реИ

рдЬрдм рд╣рдо рдЙрджрд╛рд╣рд░рдг example.com рдХреЗ рд▓рд┐рдП winbox_dns_request рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрдиреБрд░реЛрдз рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд░рд╛рдЙрдЯрд░ рдкрд░рд┐рдгрд╛рдо рдХреЛ рдХреИрд╢ рдХрд░ рджреЗрдЧрд╛ред

рд░рд╛рдЙрдЯрд░рдУрдПрд╕ рдореЗрдВ рдмреИрдХрдкреЛрд░реНрдЯ рднреЗрджреНрдпрддрд╛ рд╕реИрдХрдбрд╝реЛрдВ рд╣рдЬрд╛рд░реЛрдВ рдЙрдкрдХрд░рдгреЛрдВ рдХреЛ рдЦрддрд░реЗ рдореЗрдВ рдбрд╛рд▓рддреА рд╣реИ

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

def dns_response(data):
    request = DNSRecord.parse(data)
    reply = DNSRecord(DNSHeader(
        id=request.header.id, qr=1, aa=1, ra=1), q=request.q)
    qname = request.q.qname
    qn = str(qname)
    reply.add_answer(RR(qn,ttl=30,rdata=A("192.168.88.250")))
    print("---- Reply:n", reply)
    return reply.pack()

рдЕрдм рдпрджрд┐ рдЖрдк Winbox рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ example.com рдЦреЛрдЬрддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд░рд╛рдЙрдЯрд░ рдХрд╛ DNS рдХреИрд╢ рдЦрд╝рд░рд╛рдм рд╣реЛ рдЧрдпрд╛ рд╣реИред

рд░рд╛рдЙрдЯрд░рдУрдПрд╕ рдореЗрдВ рдмреИрдХрдкреЛрд░реНрдЯ рднреЗрджреНрдпрддрд╛ рд╕реИрдХрдбрд╝реЛрдВ рд╣рдЬрд╛рд░реЛрдВ рдЙрдкрдХрд░рдгреЛрдВ рдХреЛ рдЦрддрд░реЗ рдореЗрдВ рдбрд╛рд▓рддреА рд╣реИ

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

def dns_response(data):
    request = DNSRecord.parse(data)
    reply = DNSRecord(DNSHeader(
        id=request.header.id, qr=1, aa=1, ra=1), q=request.q)
    qname = request.q.qname
    qn = str(qname)
    reply.add_answer(RR(qn,ttl=30,rdata=A("192.168.88.250")))
    reply.add_answer(RR("upgrade.mikrotik.com",ttl=604800,
        rdata=A("192.168.88.250")))
    reply.add_answer(RR("cloud.mikrotik.com",ttl=604800,
        rdata=A("192.168.88.250")))
    reply.add_answer(RR("cloud2.mikrotik.com",ttl=604800,
        rdata=A("192.168.88.250")))
    reply.add_answer(RR("download.mikrotik.com",ttl=604800,
        rdata=A("192.168.88.250")))
    print("---- Reply:n", reply)
    return reply.pack()

рд░рд╛рдЙрдЯрд░ рдПрдХ рдЕрдиреБрдорддрд┐ рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░рддрд╛ рд╣реИ, рдФрд░ рд╣рдо рдкрд╛рдВрдЪ рд╡рд╛рдкрд╕ рджреЗрддреЗ рд╣реИрдВред рд░рд╛рдЙрдЯрд░ рдЗрди рд╕рднреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдХреИрд╢ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

рд░рд╛рдЙрдЯрд░рдУрдПрд╕ рдореЗрдВ рдмреИрдХрдкреЛрд░реНрдЯ рднреЗрджреНрдпрддрд╛ рд╕реИрдХрдбрд╝реЛрдВ рд╣рдЬрд╛рд░реЛрдВ рдЙрдкрдХрд░рдгреЛрдВ рдХреЛ рдЦрддрд░реЗ рдореЗрдВ рдбрд╛рд▓рддреА рд╣реИ

рдЬрд╛рд╣рд┐рд░ рд╣реИ, рдпрджрд┐ рд░рд╛рдЙрдЯрд░ DNS рд╕рд░реНрд╡рд░ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рд░реНрдп рдХрд░ рд░рд╣рд╛ рд╣реИ рддреЛ рдпрд╣ рд╣рдорд▓рд╛ рднреА рдЙрдкрдпреЛрдЧреА рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд░рд╛рдЙрдЯрд░ рдХреЗ рдЧреНрд░рд╛рд╣рдХреЛрдВ рдкрд░ рд╣рдорд▓рд╛ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред

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


рдЗрд╕ рддрдереНрдп рдХреЗ рдмрд╛рд╡рдЬреВрдж, рд╣рдорд▓рд╛ рдХрд╛рдлреА рдХрд╛рд░рдЧрд░ рд╣реИ рд▓реЗрдЦрдХ рдХрдИ рдФрд░ рд╡реИрдХреНрдЯрд░ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рдирдореЗрдВ рд╕рдВрдмрдВрдзрд┐рдд рд╡реЗрдХреНрдЯрд░ рднреА рд╢рд╛рдорд┐рд▓ рд╣реИрдВ рдлрд░реНрдорд╡реЗрдпрд░ рдореЗрдВ рдкрд┐рдЫрд▓реЗ рджрд░рд╡рд╛рдЬреЗ рдХреЛ рдПрдореНрдмреЗрдб рдХрд░рдирд╛, рд▓реЗрдХрд┐рди рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рдЕрдирд╛рд╡рд╢реНрдпрдХ рддрдХрдиреАрдХ рд╣реИ рдФрд░ рдирд╛рдЬрд╛рдпрдЬ рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдЕрд╡реИрдз рд╣реИред

рд╕реБрд░рдХреНрд╖рд╛

рдмрд╕ Winbox рдХреЛ рдЕрдХреНрд╖рдо рдХрд░рдиреЗ рд╕реЗ рдЖрдк рдЗрди рд╣рдорд▓реЛрдВ рд╕реЗ рдЦреБрдж рдХреЛ рд╕реБрд░рдХреНрд╖рд┐рдд рд░рдЦ рд╕рдХрддреЗ рд╣реИрдВред Winbox рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреНрд░рд╢рд╛рд╕рди рдХреА рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рдмрд╛рд╡рдЬреВрдж, SSH рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реИред

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

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╝реЗрдВ