DNSTap เช…เชจเซ‡ BGP เชธเชพเชฅเซ‡ ILV เชฌเซเชฒเซ‹เช•เชฟเช‚เช—เชจเซ‡ เชฌเชพเชฏเชชเชพเชธ เช•เชฐเซ‹

DNSTap เช…เชจเซ‡ BGP เชธเชพเชฅเซ‡ ILV เชฌเซเชฒเซ‹เช•เชฟเช‚เช—เชจเซ‡ เชฌเชพเชฏเชชเชพเชธ เช•เชฐเซ‹

เชนเซเช‚ เชœเชพเชฃเซเช‚ เช›เซเช‚ เช•เซ‡ เช† เชตเชฟเชทเชฏ เช–เซ‚เชฌ เชฎเชพเชฐเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซ‹ เช›เซ‡. เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, เชเช• เชฎเชนเชพเชจ เช›เซ‡ เชฒเซ‡เช–, เชชเชฐเช‚เชคเซ เชฌเซเชฒเซ‹เช•เชฒเชฟเชธเซเชŸเชจเชพ เชฎเชพเชคเซเชฐ IP เชญเชพเช—เชจเซ‡ เชคเซเชฏเชพเช‚ เช—เชฃเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡. เช…เชฎเซ‡ เชกเซ‹เชฎเซ‡เชจเซเชธ เชชเชฃ เช‰เชฎเซ‡เชฐเซ€เชถเซเช‚.

เชนเช•เซ€เช•เชค เช เช›เซ‡ เช•เซ‡ เช…เชฆเชพเชฒเชคเซ‹ เช…เชจเซ‡ เช†เชฐเช•เซ‡เชเชจ เชฌเชงเซเช‚ เชœ เชœเชฎเชฃเซ‡ เช…เชจเซ‡ เชกเชพเชฌเซ‡ เช…เชตเชฐเซ‹เชงเซ‡ เช›เซ‡, เช…เชจเซ‡ เชชเซเชฐเชฆเชพเชคเชพเช“ เชฐเซ‡เชตเชฟเชเซ‹เชฐเซ‹ เชฆเซเชตเชพเชฐเชพ เชœเชพเชฐเซ€ เช•เชฐเชพเชฏเซ‡เชฒเชพ เชฆเช‚เชก เชนเซ‡เช เชณ เชจ เช†เชตเซ‡ เชคเซ‡ เชฎเชพเชŸเซ‡ เชธเช–เชค เชชเซเชฐเชฏเชพเชธ เช•เชฐเซ€ เชฐเชนเซเชฏเชพ เช›เซ‡, เช…เชตเชฐเซ‹เชงเชฟเชค เช•เชฐเชตเชพเชฅเซ€ เชธเช‚เช•เชณเชพเชฏเซ‡เชฒ เชจเซเช•เชธเชพเชจ เช–เซ‚เชฌ เชฎเซ‹เชŸเซเช‚ เช›เซ‡. เช…เชจเซ‡ "เช•เชพเชฏเชฆเซ‡เชธเชฐ" เช…เชตเชฐเซ‹เชงเชฟเชค เชธเชพเช‡เชŸเซเชธเชฎเชพเช‚ เช˜เชฃเซ€ เช‰เชชเชฏเซ‹เช—เซ€ เชธเชพเช‡เชŸเซเชธ เช›เซ‡ (เชนเซ‡เชฒเซ‹, เชฐเซเชŸเซเชฐเซ‡เช•เชฐ)

เชนเซเช‚ RKN เชจเชพ เช…เชงเชฟเช•เชพเชฐเช•เซเชทเซ‡เชคเซเชฐเชจเซ€ เชฌเชนเชพเชฐ เชฐเชนเซเช‚ เช›เซเช‚, เชชเชฐเช‚เชคเซ เชฎเชพเชฐเชพ เชฎเชพเชคเชพ-เชชเชฟเชคเชพ, เชธเช‚เชฌเช‚เชงเซ€เช“ เช…เชจเซ‡ เชฎเชฟเชคเซเชฐเซ‹ เช˜เชฐเซ‡ เชœ เชฐเชนเซเชฏเชพ. เชคเซ‡เชฅเซ€ IT เชฅเซ€ เชฆเซ‚เชฐ เชฒเซ‹เช•เซ‹ เชฎเชพเชŸเซ‡ เชฌเซเชฒเซ‹เช•เซ€เช‚เช—เชจเซ‡ เชฌเชพเชฏเชชเชพเชธ เช•เชฐเชตเชพเชจเซ‹ เชธเชฐเชณ เชฐเชธเซเชคเซ‹ เชฒเชพเชตเชตเชพเชจเซเช‚ เชจเช•เซเช•เซ€ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซเช‚, เชชเซเชฐเชพเชงเชพเชจเซเชฏเชฎเชพเช‚ เชคเซ‡เชฎเชจเซ€ เชธเชนเชญเชพเช—เชฟเชคเชพ เชตเชฟเชจเชพ.

เช† เชจเซ‹เช‚เชงเชฎเชพเช‚, เชนเซเช‚ เชชเช—เชฒเชพเช‚เช“เชฎเชพเช‚ เชฎเซ‚เชณเชญเซ‚เชค เชจเซ‡เชŸเชตเชฐเซเช• เชตเชธเซเชคเซเช“เชจเซเช‚ เชตเชฐเซเชฃเชจ เช•เชฐเซ€เชถ เชจเชนเซ€เช‚, เชชเชฐเช‚เชคเซ เช† เชฏเซ‹เชœเชจเชพเชจเซ‡ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เช…เชฎเชฒเชฎเชพเช‚ เชฎเซ‚เช•เซ€ เชถเช•เชพเชฏ เชคเซ‡เชจเชพ เชธเชพเชฎเชพเชจเซเชฏ เชธเชฟเชฆเซเชงเชพเช‚เชคเซ‹เชจเซเช‚ เชตเชฐเซเชฃเชจ เช•เชฐเซ€เชถ. เชคเซ‡เชฅเซ€ เชจเซ‡เชŸเชตเชฐเซเช• เชธเชพเชฎเชพเชจเซเชฏ เชฐเซ€เชคเซ‡ เช…เชจเซ‡ เช–เชพเชธ เช•เชฐเซ€เชจเซ‡ Linux เชฎเชพเช‚ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เช•เชพเชฐเซเชฏ เช•เชฐเซ‡ เช›เซ‡ เชคเซ‡เชจเซเช‚ เชœเซเชžเชพเชจ เชนเซ‹เชตเซเช‚ เชœเชฐเซ‚เชฐเซ€ เช›เซ‡.

เชคเชพเชณเชพเช“เชจเชพ เชชเซเชฐเช•เชพเชฐ

เชชเซเชฐเชฅเชฎ, เชšเชพเชฒเซ‹ เช†เชชเชฃเซ‡ เชถเซเช‚ เช…เชตเชฐเซ‹เชงเชฟเชค เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ€ เชฐเชนเซเชฏเซเช‚ เช›เซ‡ เชคเซ‡เชจเซ€ เชฏเชพเชฆเชถเช•เซเชคเชฟเชจเซ‡ เชคเชพเชœเซ€ เช•เชฐเซ€เช.

RKN เชฎเชพเช‚เชฅเซ€ เช…เชจเชฒเซ‹เชก เช•เชฐเซ‡เชฒ XML เชฎเชพเช‚ เช˜เชฃเชพ เชชเซเชฐเช•เชพเชฐเชจเชพ เชคเชพเชณเชพเช“ เช›เซ‡:

  • IP
  • เชกเซ‹เชฎเซ‡เชจ
  • URL เชจเซ‡

เชธเชฐเชณเชคเชพ เชฎเชพเชŸเซ‡, เช…เชฎเซ‡ เชคเซ‡เชจเซ‡ เช˜เชŸเชพเชกเซ€เชจเซ‡ เชฌเซ‡ เช•เชฐเซ€ เชฆเชˆเชถเซเช‚: IP เช…เชจเซ‡ เชกเซ‹เชฎเซ‡เชจ, เช…เชจเซ‡ เช…เชฎเซ‡ เชกเซ‹เชฎเซ‡เชจเชจเซ‡ URL เชฆเซเชตเชพเชฐเชพ เช…เชตเชฐเซ‹เชงเชฟเชค เช•เชฐเชตเชพเชฅเซ€ เช–เชพเชฒเซ€ เช–เซ‡เช‚เชšเซ€เชถเซเช‚ (เชตเชงเซ เชธเซเชชเชทเซเชŸ เชฐเซ€เชคเซ‡, เชคเซ‡เช“เช เช…เชฎเชพเชฐเชพ เชฎเชพเชŸเซ‡ เช† เชชเชนเซ‡เชฒเซ‡เชฅเซ€ เชœ เช•เชฐเซเชฏเซเช‚ เช›เซ‡).

เชจเชพ เชธเชพเชฐเชพ เชฒเซ‹เช•เซ‹ เชฐเซ‹เชธเซเช•เซ‹เชฎเซเชธเชตเซ‹เชฌเซ‹เชกเชพ เชเช• เช…เชฆเซเชญเซเชค เชธเชฎเชœเชพเชฏเซเช‚ API, เชœเซ‡เชจเชพ เชฆเซเชตเชพเชฐเชพ เช†เชชเชฃเซ‡ เชœเซ‡ เชœเซ‹เชˆเช เช›เซ‡ เชคเซ‡ เชฎเซ‡เชณเชตเซ€ เชถเช•เซ€เช เช›เซ€เช:

เช…เชตเชฐเซ‹เชงเชฟเชค เชธเชพเช‡เชŸเซเชธเชจเซ€ เชเช•เซเชธเซ‡เชธ

เช† เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡, เช…เชฎเชจเซ‡ เช•เซ‡เชŸเชฒเชพเช• เชจเชพเชจเชพ เชตเชฟเชฆเซ‡เชถเซ€ VPSเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡, เชชเซเชฐเชพเชงเชพเชจเซเชฏเชฎเชพเช‚ เช…เชฎเชฐเซเชฏเชพเชฆเชฟเชค เชŸเซเชฐเชพเชซเชฟเช• เชธเชพเชฅเซ‡ - เช†เชฎเชพเช‚เชจเชพ เช˜เชฃเชพ 3-5 เชฐเซ‚เชชเชฟเชฏเชพ เชฎเชพเชŸเซ‡ เช›เซ‡. เชคเชฎเชพเชฐเซ‡ เชคเซ‡เชจเซ‡ เชจเชœเซ€เช•เชจเชพ เชตเชฟเชฆเซ‡เชถเชฎเชพเช‚ เชฒเซ‡เชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡ เชœเซ‡เชฅเซ€ เชชเชฟเช‚เช— เช–เซ‚เชฌ เชฎเซ‹เชŸเซ€ เชจ เชนเซ‹เชฏ, เชชเชฐเช‚เชคเซ เชซเชฐเซ€เชฅเซ€, เชงเซเชฏเชพเชจเชฎเชพเช‚ เชฒเซ‹ เช•เซ‡ เช‡เชจเซเชŸเชฐเชจเซ‡เชŸ เช…เชจเซ‡ เชญเซ‚เช—เซ‹เชณ เชนเช‚เชฎเซ‡เชถเชพ เชเช•เชฐเซ‚เชช เชฅเชคเชพ เชจเชฅเซ€. เช…เชจเซ‡ 5 เชฐเซ‚เชชเชฟเชฏเชพ เชฎเชพเชŸเซ‡ เช•เซ‹เชˆ SLA เชจ เชนเซ‹เชตเชพเชฅเซ€, เชฆเซ‹เชท เชธเชนเชฟเชทเซเชฃเซเชคเชพ เชฎเชพเชŸเซ‡ เชตเชฟเชตเชฟเชง เชชเซเชฐเชฆเชพเชคเชพเช“ เชชเชพเชธเซ‡เชฅเซ€ 2+ เชŸเซเช•เชกเชพเช“ เชฒเซ‡เชตเชพเชจเซเช‚ เชตเชงเซ เชธเชพเชฐเซเช‚ เช›เซ‡.

เช†เช—เชณ, เช…เชฎเชพเชฐเซ‡ เช•เซเชฒเชพเชฏเช‚เชŸ เชฐเชพเช‰เชŸเชฐเชฅเซ€ VPS เชธเซเชงเซ€ เชเช• เชเชจเซเช•เซเชฐเชฟเชชเซเชŸเซ‡เชก เชŸเชจเชฒ เชธเซ‡เชŸ เช•เชฐเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡. เชนเซเช‚ เชตเชพเชฏเชฐเช—เชพเชฐเซเชกเชจเซ‹ เช‰เชชเชฏเซ‹เช— เชธเซ‡เชŸเช…เชช เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชธเซŒเชฅเซ€ เชเชกเชชเซ€ เช…เชจเซ‡ เชธเชฐเชณ เชคเชฐเซ€เช•เซ‡ เช•เชฐเซเช‚ เช›เซเช‚. เชฎเชพเชฐเซ€ เชชเชพเชธเซ‡ Linux เชชเชฐ เช†เชงเชพเชฐเชฟเชค เช•เซเชฒเชพเชฏเช‚เชŸ เชฐเชพเช‰เชŸเชฐเซเชธ เชชเชฃ เช›เซ‡ (APU2 เช…เชฅเชตเชพ OpenWRT เชฎเชพเช‚ เช•เช‚เชˆเช•). เช•เซ‡เชŸเชฒเชพเช• Mikrotik/Cisco เชจเชพ เช•เชฟเชธเซเชธเชพเชฎเชพเช‚, เชคเชฎเซ‡ OpenVPN เช…เชจเซ‡ GRE-over-IPSEC เชœเซ‡เชตเชพ เชคเซ‡เชฎเชจเชพ เชชเชฐ เช‰เชชเชฒเชฌเซเชง เชชเซเชฐเซ‹เชŸเซ‹เช•เซ‹เชฒเซเชธเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹.

เชฐเซเชšเชฟเชจเชพ เชŸเซเชฐเชพเชซเชฟเช•เชจเซ€ เช“เชณเช– เช…เชจเซ‡ เชฐเซ€เชกเชพเชฏเชฐเซ‡เช•เซเชถเชจ

เชคเชฎเซ‡, เช…เชฒเชฌเชคเซเชค, เชตเชฟเชฆเซ‡เชถเซ€ เชฆเซ‡เชถเซ‹ เชฆเซเชตเชพเชฐเชพ เชคเชฎเชพเชฎ เช‡เชจเซเชŸเชฐเชจเซ‡เชŸ เชŸเซเชฐเชพเชซเชฟเช•เชจเซ‡ เชฌเช‚เชง เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹. เชชเชฐเช‚เชคเซ, เชฎเซ‹เชŸเซ‡ เชญเชพเช—เซ‡, เชธเซเชฅเชพเชจเชฟเช• เชธเชพเชฎเช—เซเชฐเซ€ เชธเชพเชฅเซ‡ เช•เชพเชฎ เช•เชฐเชตเชพเชจเซ€ เชเชกเชช เช†เชจเชพเชฅเซ€ เชฎเซ‹เชŸเชพ เชชเซเชฐเชฎเชพเชฃเชฎเชพเช‚ เชชเซ€เชกเชพเชถเซ‡. เช‰เชชเชฐเชพเช‚เชค, VPS เชชเชฐ เชฌเซ‡เชจเซเชกเชตเชฟเชกเซเชฅ เช†เชตเชถเซเชฏเช•เชคเชพเช“ เช˜เชฃเซ€ เชตเชงเชพเชฐเซ‡ เชนเชถเซ‡.

เชคเซ‡เชฅเซ€, เช…เชฎเชพเชฐเซ‡ เช•เซ‹เชˆเช• เชฐเซ€เชคเซ‡ เช…เชตเชฐเซ‹เชงเชฟเชค เชธเชพเช‡เชŸเซเชธ เชชเชฐ เชŸเซเชฐเชพเชซเชฟเช• เชซเชพเชณเชตเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เชชเชกเชถเซ‡ เช…เชจเซ‡ เชชเชธเช‚เชฆเช—เซ€เชชเซ‚เชฐเซเชตเช• เชคเซ‡เชจเซ‡ เชŸเชจเชฒ เชชเชฐ เชฒเชˆ เชœเชตเซ€ เชชเชกเชถเซ‡. เชœเซ‹ เช…เชฎเซเช• "เช…เชคเชฟเชฐเชฟเช•เซเชค" เชŸเซเชฐเชพเชซเชฟเช• เชคเซเชฏเชพเช‚ เชชเชนเซ‹เช‚เชšเซ€ เชœเชพเชฏ, เชคเซ‹ เชชเชฃ เชคเซ‡ เชฌเชงเซเช‚ เชŸเชจเชฒ เชฎเชพเชฐเชซเชคเซ‡ เชšเชฒเชพเชตเชตเชพ เช•เชฐเชคเชพเช‚ เช˜เชฃเซเช‚ เชธเชพเชฐเซเช‚ เช›เซ‡.

เชŸเซเชฐเชพเชซเชฟเช• เชฎเซ‡เชจเซ‡เชœ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡, เช…เชฎเซ‡ BGP เชชเซเชฐเซ‹เชŸเซ‹เช•เซ‹เชฒเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชถเซเช‚ เช…เชจเซ‡ เช…เชฎเชพเชฐเชพ VPS เชฅเซ€ เช•เซเชฒเชพเชฏเชจเซเชŸเซเชธ เชฎเชพเชŸเซ‡ เชœเชฐเซ‚เชฐเซ€ เชจเซ‡เชŸเชตเชฐเซเช•เซเชธ เชฎเชพเชŸเซ‡เชจเชพ เชฐเซ‚เชŸเชจเซ€ เชœเชพเชนเซ‡เชฐเชพเชค เช•เชฐเซ€เชถเซเช‚. เชšเชพเชฒเซ‹ BIRD เชจเซ‡ เชธเซŒเชฅเซ€ เชตเชงเซ เช•เชพเชฐเซเชฏเชพเชคเซเชฎเช• เช…เชจเซ‡ เช…เชจเซเช•เซ‚เชณ BGP เชกเชฟเชฎเชจ เชคเชฐเซ€เช•เซ‡ เชฒเชˆเช.

IP

IP เชฆเซเชตเชพเชฐเชพ เช…เชตเชฐเซ‹เชงเชฟเชค เช•เชฐเชตเชพ เชธเชพเชฅเซ‡, เชฌเชงเซเช‚ เชธเซเชชเชทเซเชŸ เช›เซ‡: เช…เชฎเซ‡ เชซเช•เซเชค VPS เชธเชพเชฅเซ‡ เชคเชฎเชพเชฎ เช…เชตเชฐเซ‹เชงเชฟเชค IP เชจเซ€ เชœเชพเชนเซ‡เชฐเชพเชค เช•เชฐเซ€เช เช›เซ€เช. เชธเชฎเชธเซเชฏเชพ เช เช›เซ‡ เช•เซ‡ API เชชเชฐเชค เช•เชฐเซ‡ เช›เซ‡ เชคเซ‡ เชฏเชพเชฆเซ€เชฎเชพเช‚ เชฒเช—เชญเช— 600 เชนเชœเชพเชฐ เชธเชฌเชจเซ‡เชŸ เช›เซ‡ เช…เชจเซ‡ เชคเซ‡เชฎเชพเช‚เชฅเซ€ เชฎเซ‹เชŸเชพ เชญเชพเช—เชจเชพ /32 เชนเซ‹เชธเซเชŸ เช›เซ‡. เชฐเซ‚เชŸเชจเซ€ เช† เชธเช‚เช–เซเชฏเชพ เชจเชฌเชณเชพ เช•เซเชฒเชพเชฏเช‚เชŸ เชฐเชพเช‰เชŸเชฐเซเชธเชจเซ‡ เชฎเซ‚เช‚เชเชตเชฃเชฎเชพเช‚ เชฎเซ‚เช•เซ€ เชถเช•เซ‡ เช›เซ‡.

เชคเซ‡เชฅเซ€, เชธเซ‚เชšเชฟเชจเซ€ เชชเซเชฐเช•เซเชฐเชฟเชฏเชพ เช•เชฐเชคเซ€ เชตเช–เชคเซ‡, เชœเซ‹ เชคเซ‡เชฎเชพเช‚ 24 เช…เชฅเชตเชพ เชตเชงเซ เชนเซ‹เชธเซเชŸเซเชธ เชนเซ‹เชฏ เชคเซ‹ เชจเซ‡เชŸเชตเชฐเซเช• / 2 เชธเซเชงเซ€ เชธเชพเชฐเชพเช‚เชถ เช†เชชเชตเชพเชจเซเช‚ เชจเช•เซเช•เซ€ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซเช‚ เชนเชคเซเช‚. เช†เชฎ, เชฐเซ‚เชŸเชจเซ€ เชธเช‚เช–เซเชฏเชพ เช˜เชŸเซ€เชจเซ‡ ~100 เชนเชœเชพเชฐ เชฅเชˆ เช—เชˆ. เช† เชฎเชพเชŸเซ‡เชจเซ€ เชธเซเช•เซเชฐเชฟเชชเซเชŸ เช…เชจเซเชธเชฐเชถเซ‡.

เชกเซ‹เชฎเซ‡เชจเซเชธ

เชคเซ‡ เชตเชงเซ เชœเชŸเชฟเชฒ เช›เซ‡ เช…เชจเซ‡ เชคเซเชฏเชพเช‚ เช˜เชฃเซ€ เชฐเซ€เชคเซ‹ เช›เซ‡. เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, เชคเชฎเซ‡ เชฆเชฐเซ‡เช• เช•เซเชฒเชพเชฏเช‚เชŸ เชฐเชพเช‰เชŸเชฐ เชชเชฐ เชเช• เชชเชพเชฐเชฆเชฐเซเชถเช• เชธเซเช•เซเชตเชฟเชก เช‡เชจเซเชธเซเชŸเซ‹เชฒ เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹ เช…เชจเซ‡ เชคเซเชฏเชพเช‚ HTTP เช‡เชจเซเชŸเชฐเชธเซ‡เชชเซเชถเชจ เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹ เช…เชจเซ‡ เชชเชนเซ‡เชฒเชพ เช•เซ‡เชธเชฎเชพเช‚ เชตเชฟเชจเช‚เชคเซ€ เช•เชฐเซ‡เชฒ URL เช…เชจเซ‡ เชฌเซ€เชœเชพ เช•เชฟเชธเซเชธเชพเชฎเชพเช‚ SNI เชคเชฐเชซเชฅเซ€ เชกเซ‹เชฎเซ‡เชจ เชฎเซ‡เชณเชตเชตเชพ เชฎเชพเชŸเซ‡ TLS เชนเซ‡เชจเซเชกเชถเซ‡เช•เชฎเชพเช‚ เชกเซ‹เช•เชฟเชฏเซเช‚ เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹.

เชชเชฐเช‚เชคเซ เชคเชฎเชพเชฎ เชชเซเชฐเช•เชพเชฐเชจเชพ เชจเชตเชพ TLS1.3 + eSNI เชจเซ‡ เชฒเซ€เชงเซ‡, HTTPS เชตเชฟเชถเซเชฒเซ‡เชทเชฃ เชฆเชฐเชฐเซ‹เชœ เช“เช›เซเช‚ เช…เชจเซ‡ เช“เช›เซเช‚ เชตเชพเชธเซเชคเชตเชฟเช• เชฌเชจเซ€ เชฐเชนเซเชฏเซเช‚ เช›เซ‡. เชนเชพ, เช…เชจเซ‡ เช•เซเชฒเชพเชฏเช‚เชŸ เชฌเชพเชœเซเชจเซเช‚ เชˆเชจเซเชซเซเชฐเชพเชธเซเชŸเซเชฐเช•เซเชšเชฐ เชตเชงเซ เชœเชŸเชฟเชฒ เชฌเชจเซ€ เชฐเชนเซเชฏเซเช‚ เช›เซ‡ - เชคเชฎเชพเชฐเซ‡ เช“เช›เชพเชฎเชพเช‚ เช“เช›เซเช‚ OpenWRT เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชตเซ‹ เชชเชกเชถเซ‡.

เชคเซ‡เชฅเซ€, เชฎเซ‡เช‚ DNS เชตเชฟเชจเช‚เชคเซ€เช“เชจเชพ เชœเชตเชพเชฌเซ‹เชจเซ‡ เช…เชŸเช•เชพเชตเชตเชพเชจเซ‹ เชฎเชพเชฐเซเช— เช…เชชเชจเชพเชตเชตเชพเชจเซเช‚ เชจเช•เซเช•เซ€ เช•เชฐเซเชฏเซเช‚. เช…เชนเซ€เช‚ เชชเชฃ, เช•เซ‹เชˆเชชเชฃ DNS-เช“เชตเชฐ-TLS/HTTPS เชคเชฎเชพเชฐเชพ เชฎเชพเชฅเชพ เชชเชฐ เชซเชฐเชตเชพ เชฒเชพเช—เซ‡ เช›เซ‡, เชชเชฐเช‚เชคเซ เช…เชฎเซ‡ (เชนเชฎเชฃเชพเช‚ เชฎเชพเชŸเซ‡) เช•เซเชฒเชพเชฏเชจเซเชŸ เชชเชฐ เช† เชญเชพเช—เชจเซ‡ เชจเชฟเชฏเช‚เชคเซเชฐเชฟเชค เช•เชฐเซ€ เชถเช•เซ€เช เช›เซ€เช - เช•เชพเช‚ เชคเซ‹ เชคเซ‡เชจเซ‡ เช…เช•เซเชทเชฎ เช•เชฐเซ€ เชถเช•เซ€เช เช…เชฅเชตเชพ DoT/DH เชฎเชพเชŸเซ‡ เชคเชฎเชพเชฐเชพ เชชเซ‹เชคเชพเชจเชพ เชธเชฐเซเชตเชฐเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เช.

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 เชชเซ‡เช•เซ‡เชŸเซ‹ เชธเซŒเชชเซเชฐเชฅเชฎ เชชเซเชฐเซ‹เชŸเซ‹เชฌเชซ เชธเซเชŸเซเชฐเช•เซเชšเชฐเชฎเชพเช‚ เชกเซ€เชธเซ€เชฐเชฟเชฏเชฒเชพเชˆเช เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡, เช…เชจเซ‡ เชชเช›เซ€ เชชเซเชฐเซ‹เชŸเซ‹เชฌเชซ เชซเซ€เชฒเซเชกเชฎเชพเช‚เชจเชพ เชเช•เชฎเชพเช‚ เชธเซเชฅเชฟเชค เชฌเชพเชˆเชจเชฐเซ€ DNS เชธเช‚เชฆเซ‡เชถ เชชเซ‹เชคเซ‡ เชœ DNS RR เชฐเซ‡เช•เซ‹เชฐเซเชกเซเชธเชจเชพ เชธเซเชคเชฐ เชชเชฐ เชตเชฟเชถเซเชฒเซ‡เชทเชฟเชค เชฅเชพเชฏ เช›เซ‡.
  • เชตเชฟเชจเช‚เชคเซ€ เช•เชฐเซ‡เชฒ เชนเซ‹เชธเซเชŸ (เช…เชฅเชตเชพ เชคเซ‡เชจเซเช‚ เชชเซ‡เชฐเซ‡เชจเซเชŸ เชกเซ‹เชฎเซ‡เชจ) เชฒเซ‹เชก เช•เชฐเซ‡เชฒเซ€ เชธเซ‚เชšเชฟเชฎเชพเช‚ เช›เซ‡ เช•เซ‡ เช•เซ‡เชฎ เชคเซ‡ เชคเชชเชพเชธเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡, เชœเซ‹ เชจเชนเซ€เช‚, เชคเซ‹ เชชเซเชฐเชคเชฟเชญเชพเชต เช…เชตเช—เชฃเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡.
  • เชชเซเชฐเชคเชฟเชญเชพเชตเชฎเชพเช‚เชฅเซ€ เชฎเชพเชคเซเชฐ A/AAAA/CNAME RR เชชเชธเช‚เชฆ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡ เช…เชจเซ‡ เชคเซ‡เชฎเชพเช‚เชฅเซ€ เชธเช‚เชฌเช‚เชงเชฟเชค IPv4/IPv6 เชธเชฐเชจเชพเชฎเชพเช‚เช“ เช•เชพเชขเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡.
  • IP เชธเชฐเชจเชพเชฎเชพเช“ เชฐเซ‚เชชเชฐเซ‡เช–เชพเช‚เช•เชฟเชค TTL เชธเชพเชฅเซ‡ เช•เซ‡เชถ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡ เช…เชจเซ‡ เชคเชฎเชพเชฎ เชฐเซ‚เชชเชฐเซ‡เช–เชพเช‚เช•เชฟเชค BGP เชธเชพเชฅเซ€เชฆเชพเชฐเซ‹เชจเซ‡ เชœเชพเชนเซ‡เชฐเชพเชค เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡.
  • เชœเซเชฏเชพเชฐเซ‡ เชชเชนเซ‡เชฒเชพเชฅเซ€ เชœ เช•เซ‡เชถเซเชก IP เชคเชฐเชซ เชจเชฟเชฐเซเชฆเซ‡เชถ เช•เชฐเชคเซ‹ เชชเซเชฐเชคเชฟเชธเชพเชฆ เชชเซเชฐเชพเชชเซเชค เชฅเชพเชฏ เช›เซ‡, เชคเซเชฏเชพเชฐเซ‡ เชคเซ‡เชจเซเช‚ 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 เชฆเซเชตเชพเชฐเชพ
  • เชชเช•เซเชทเซ€ เชธเชพเชฅเซ‡ เช† IPs เชฎเชพเชŸเซ‡ เชฎเชพเชฐเซเช—เชจเซ€ เชœเชพเชนเซ‡เชฐเชพเชค เช•เชฐเซ‡ เช›เซ‡ next-hop self เช•เซเชฒเชพเชฏเช‚เชŸ เชฐเชพเช‰เชŸเชฐ
  • เช•เซเชฒเชพเชฏเชจเซเชŸเชฅเซ€ เช† IP เชชเชฐเชจเชพ เช…เชจเซเช—เชพเชฎเซ€ เชชเซ‡เช•เซ‡เชŸเซเชธ เชŸเชจเชฒเชฎเชพเช‚เชฅเซ€ เชชเชธเชพเชฐ เชฅเชพเชฏ เช›เซ‡

เชธเชฐเซเชตเชฐ เชชเชฐ, เช…เชตเชฐเซ‹เชงเชฟเชค เชธเชพเช‡เชŸเซเชธเชจเชพ เชฎเชพเชฐเซเช—เซ‹ เชฎเชพเชŸเซ‡, เชนเซเช‚ BIRD เชจเซ€ เช…เช‚เชฆเชฐ เชเช• เช…เชฒเช— เชŸเซ‡เชฌเชฒเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซเช‚ เช›เซเช‚ เช…เชจเซ‡ เชคเซ‡ เช•เซ‹เชˆเชชเชฃ เชฐเซ€เชคเซ‡ OS เชธเชพเชฅเซ‡ เช›เซ‡เชฆเชคเซเช‚ เชจเชฅเซ€.

เช† เชธเซเช•เซ€เชฎเชฎเชพเช‚ เช–เชพเชฎเซ€ เช›เซ‡: เช•เซเชฒเชพเชฏเชจเซเชŸ เชคเชฐเชซเชฅเซ€ เชชเซเชฐเชฅเชฎ SYN เชชเซ‡เช•เซ‡เชŸ, เชฎเซ‹เชŸเซ‡ เชญเชพเช—เซ‡, เชธเซเชฅเชพเชจเชฟเช• เชชเซเชฐเชฆเชพเชคเชพ เชฆเซเชตเชพเชฐเชพ เช›เซ‹เชกเชตเชพเชจเซ‹ เชธเชฎเชฏ เชนเชถเซ‡. เชฐเซ‚เชŸ เชคเชพเชคเซเช•เชพเชฒเชฟเช• เชœเชพเชนเซ‡เชฐ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเชคเซ‹ เชจเชฅเซ€. เช…เชจเซ‡ เชชเซเชฐเชฆเชพเชคเชพ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เช…เชตเชฐเซ‹เชงเชฟเชค เช•เชฐเซ‡ เช›เซ‡ เชคเซ‡เชจเชพ เช†เชงเชพเชฐเซ‡ เช…เชนเซ€เช‚ เชตเชฟเช•เชฒเซเชชเซ‹ เชถเช•เซเชฏ เช›เซ‡. เชœเซ‹ เชคเซ‡ เชซเช•เซเชค เชŸเซเชฐเชพเชซเชฟเช• เช›เซ‹เชกเซ‡ เช›เซ‡, เชคเซ‹ เช•เซ‹เชˆ เชธเชฎเชธเซเชฏเชพ เชจเชฅเซ€. เช…เชจเซ‡ เชœเซ‹ เชคเซ‡ เชคเซ‡เชจเซ‡ เช…เชฎเซเช• DPI เชชเชฐ เชฐเซ€เชกเชพเชฏเชฐเซ‡เช•เซเชŸ เช•เชฐเซ‡ เช›เซ‡, เชคเซ‹ เชชเช›เซ€ (เชธเซˆเชฆเซเชงเชพเช‚เชคเชฟเช• เชฐเซ€เชคเซ‡) เชตเชฟเชถเซ‡เชท เช…เชธเชฐเซ‹ เชถเช•เซเชฏ เช›เซ‡.

เชคเซ‡ เชชเชฃ เชถเช•เซเชฏ เช›เซ‡ เช•เซ‡ เช•เซเชฒเชพเชฏเชจเซเชŸเซเชธ DNS TTL เชšเชฎเชคเซเช•เชพเชฐเซ‹เชจเซ‹ เช†เชฆเชฐ เช•เชฐเชคเชพ เชจเชฅเซ€, เชœเซ‡เชจเชพ เช•เชพเชฐเชฃเซ‡ เช•เซเชฒเชพเชฏเชจเซเชŸ เช…เชจเชฌเชพเช‰เชจเซเชก เชชเซ‚เช›เชตเชพเชจเซ‡ เชฌเชฆเชฒเซ‡ เชคเซ‡เชจเชพ เชธเชกเซ‡เชฒเชพ เช•เซ‡เชถเชฎเชพเช‚เชฅเซ€ เช•เซ‡เชŸเชฒเซ€เช• เชœเซ‚เชจเซ€ เชเชจเซเชŸเซเชฐเซ€เช“เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€ เชถเช•เซ‡ เช›เซ‡.

เชตเซเชฏเชตเชนเชพเชฐเชฎเชพเช‚, เชจ เชคเซ‹ เชชเซเชฐเชฅเชฎ เช•เซ‡ เชฌเซ€เชœเซเช‚ เชฎเชพเชฐเชพ เชฎเชพเชŸเซ‡ เชธเชฎเชธเซเชฏเชพ เชŠเชญเซ€ เช•เชฐเซ‡ เช›เซ‡, เชชเชฐเช‚เชคเซ เชคเชฎเชพเชฐเซเช‚ เชฎเชพเช‡เชฒเซ‡เชœ เชฌเชฆเชฒเชพเชˆ เชถเช•เซ‡ เช›เซ‡.

เชธเชฐเซเชตเชฐ เชŸเซเชฏเซเชจเชฟเช‚เช—

เชฐเซ‹เชฒเชฟเช‚เช—เชจเซ€ เชธเชฐเชณเชคเชพ เชฎเชพเชŸเซ‡, เชฎเซ‡เช‚ เชฒเช–เซเชฏเซเช‚ เชœเชตเชพเชฌเชฆเชพเชฐ เชฎเชพเชŸเซ‡ เชญเซ‚เชฎเชฟเช•เชพ. เชคเซ‡ Linux เชชเชฐ เช†เชงเชพเชฐเชฟเชค เชธเชฐเซเชตเชฐ เช…เชจเซ‡ เช•เซเชฒเชพเชฏเช‚เชŸ เชฌเช‚เชจเซ‡เชจเซ‡ เช—เซ‹เช เชตเซ€ เชถเช•เซ‡ เช›เซ‡ (เชกเซ‡เชฌ-เช†เชงเชพเชฐเชฟเชค เชตเชฟเชคเชฐเชฃเซ‹ เชฎเชพเชŸเซ‡ เชฐเชšเชพเชฏเซ‡เชฒ). เชฌเชงเซ€ เชธเซ‡เชŸเชฟเช‚เช—เซเชธ เชเช•เชฆเชฎ เชธเซเชชเชทเซเชŸ เช›เซ‡ เช…เชจเซ‡ เชธเซ‡เชŸ เช•เชฐเซ‡เชฒเซ€ เช›เซ‡ inventory.yml. เช† เชญเซ‚เชฎเชฟเช•เชพ เชฎเชพเชฐเซ€ เชฎเซ‹เชŸเซ€ เชชเซเชฒเซ‡เชฌเซเช•เชฎเชพเช‚เชฅเซ€ เช•เชพเชชเซ€ เช›เซ‡, เชคเซ‡เชฅเซ€ เชคเซ‡เชฎเชพเช‚ เชญเซ‚เชฒเซ‹ เชนเซ‹เชˆ เชถเช•เซ‡ เช›เซ‡ - เช…เชฐเชœเซ€เช“ เช–เซ‡เช‚เชšเซ‹ เชธเซเชตเชพเช—เชค เช›เซ‡ ๐Ÿ™‚

เชšเชพเชฒเซ‹ เชฎเซเช–เซเชฏ เช˜เชŸเช•เซ‹เชฎเชพเช‚เชฅเซ€ เชชเชธเชพเชฐ เชฅเชˆเช.

เชฌเซ€.เชœเซ€.เชชเซ€.

เชเช• เชœ เชนเซ‹เชธเซเชŸ เชชเชฐ เชฌเซ‡ BGP เชกเชฟเชฎเชจ เชšเชฒเชพเชตเชตเชพเชฎเชพเช‚ เชฎเซ‚เชณเชญเซ‚เชค เชธเชฎเชธเซเชฏเชพ เช›เซ‡: BIRD เชฒเซ‹เช•เชฒเชนเซ‹เชธเซเชŸ (เช…เชฅเชตเชพ เช•เซ‹เชˆเชชเชฃ เชธเซเชฅเชพเชจเชฟเช• เชˆเชจเซเชŸเชฐเชซเซ‡เชธ) เชธเชพเชฅเซ‡ BGP เชชเซ€เช…เชฐเชฟเช‚เช— เชธเซ‡เชŸ เช•เชฐเชตเชพ เชฎเชพเช‚เช—เชคเซเช‚ เชจเชฅเซ€. เชฌเชฟเชฒเช•เซเชฒ เชถเชฌเซเชฆเชฎเชพเช‚เชฅเซ€. เช—เซ‚เช—เชฒเชฟเช‚เช— เช…เชจเซ‡ เชฎเซ‡เช‡เชฒเชฟเช‚เช—-เชฒเชฟเชธเซเชŸเซเชธ เชตเชพเช‚เชšเชตเชพเชฅเซ€ เชฎเชฆเชฆ เชฎเชณเซ€ เชจเชฅเซ€, เชคเซ‡เช“ เชฆเชพเชตเซ‹ เช•เชฐเซ‡ เช›เซ‡ เช•เซ‡ เช† เชกเชฟเชเชพเช‡เชจ เชฆเซเชตเชพเชฐเชพ เช›เซ‡. เช•เชฆเชพเชš เชคเซเชฏเชพเช‚ เช•เซ‹เชˆ เชฐเชธเซเชคเซ‹ เช›เซ‡, เชชเชฐเช‚เชคเซ เชฎเชจเซ‡ เชคเซ‡ เชฎเชณเซเชฏเซ‹ เชจเชฅเซ€.

เชคเชฎเซ‡ เชฌเซ€เชœเซ‹ BGP เชกเชฟเชฎเชจ เช…เชœเชฎเชพเชตเซ€ เชถเช•เซ‹ เช›เซ‹, เชชเชฐเช‚เชคเซ เชฎเชจเซ‡ BIRD เช—เชฎเซ‡ เช›เซ‡ เช…เชจเซ‡ เชคเซ‡ เชฎเชพเชฐเชพ เชฆเซเชตเชพเชฐเชพ เชฆเชฐเซ‡เช• เชœเช—เซเชฏเชพเช เช‰เชชเชฏเซ‹เช—เชฎเชพเช‚ เชฒเซ‡เชตเชพเชฏ เช›เซ‡, เชนเซเช‚ เชเชจเซเชŸเชฟเชŸเซ€ เชฌเชจเชพเชตเชตเชพ เชฎเชพเช‚เช—เชคเซ‹ เชจเชฅเซ€.

เชคเซ‡เชฅเซ€, เชฎเซ‡เช‚ เชจเซ‡เชŸเชตเชฐเซเช• เชจเซ‡เชฎเชธเซเชชเซ‡เชธเชจเซ€ เช…เช‚เชฆเชฐ dnstap-bgp เช›เซเชชเชพเชตเซเชฏเซเช‚ เช›เซ‡, เชœเซ‡ เชตเซ‡เชฅ เชˆเชจเซเชŸเชฐเชซเซ‡เชธ เชฆเซเชตเชพเชฐเชพ เชฐเซ‚เชŸ เชธเชพเชฅเซ‡ เชœเซ‹เชกเชพเชฏเซ‡เชฒ เช›เซ‡: เชคเซ‡ เชชเชพเช‡เชช เชœเซ‡เชตเซเช‚ เช›เซ‡, เชœเซ‡เชจเซ‹ เช›เซ‡เชกเซ‹ เช…เชฒเช— เช…เชฒเช— เชจเซ‡เชฎเชธเซเชชเซ‡เชธเชฎเชพเช‚ เชšเซ‹เช‚เชŸเซ€ เชœเชพเชฏ เช›เซ‡. เช† เชฆเชฐเซ‡เช• เช›เซ‡เชกเชพ เชชเชฐ, เช…เชฎเซ‡ เช–เชพเชจเช—เซ€ p2p IP เชเชกเซเชฐเซ‡เชธ เชฒเชŸเช•เชพเชตเซ€เช เช›เซ€เช เชœเซ‡ เชฏเชœเชฎเชพเชจเชจเซ€ เชฌเชนเชพเชฐ เชœเชคเชพ เชจเชฅเซ€, เชคเซ‡เชฅเซ€ เชคเซ‡ เช•เช‚เชˆเชชเชฃ เชนเซ‹เชˆ เชถเช•เซ‡ เช›เซ‡. เช† เชคเซ‡ เชœ เชชเชฆเซเชงเชคเชฟ เช›เซ‡ เชœเซ‡เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช…เช‚เชฆเชฐเชจเซ€ เชชเซเชฐเช•เซเชฐเชฟเชฏเชพเช“เชจเซ‡ เชเช•เซเชธเซ‡เชธ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชฅเชพเชฏ เช›เซ‡ เชฌเชงเชพ เชฆเซเชตเชพเชฐเชพ เชชเซเชฐเซ‡เชฎ เชกเซ‹เช•เชฐ เช…เชจเซ‡ เช…เชจเซเชฏ เช•เชจเซเชŸเซ‡เชจเชฐ.

เช† เชฎเชพเชŸเซ‡ เชฒเช–เชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซเช‚ เชนเชคเซเช‚ เชธเซเช•เซเชฐเชฟเชชเซเชŸ เช…เชจเซ‡ เชคเชฎเชพเชฐเซ€ เชœเชพเชคเชจเซ‡ เชตเชพเชณ เชฆเซเชตเชพเชฐเชพ เช…เชจเซเชฏ เชจเซ‡เชฎเชธเซเชชเซ‡เชธเชฎเชพเช‚ เช–เซ‡เช‚เชšเชตเชพ เชฎเชพเชŸเซ‡ เช‰เชชเชฐ เชตเชฐเซเชฃเชตเซ‡เชฒ เช•เชพเชฐเซเชฏเช•เซเชทเชฎเชคเชพ dnstap-bgp เชฎเชพเช‚ เช‰เชฎเซ‡เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ€ เชนเชคเซ€. เช†เชจเซ‡ เช•เชพเชฐเชฃเซ‡, เชคเซ‡ เชฐเซเชŸ เชคเชฐเซ€เช•เซ‡ เชšเชฒเชพเชตเชตเชพเชฎเชพเช‚ เช†เชตเชตเซเช‚ เชœเซ‹เชˆเช เช…เชฅเชตเชพ setcap เช†เชฆเซ‡เชถ เชฆเซเชตเชพเชฐเชพ 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

เชฎเซ‚เชณเชญเซ‚เชค เชฐเซ€เชคเซ‡, เช‰เชฌเซเชจเซเชŸเซเชฎเชพเช‚, เช…เชจเชฌเชพเช‰เชจเซเชก เชฌเชพเชˆเชจเชฐเซ€ เชเชชเช†เชฐเซเชฎเชฐ เชชเซเชฐเซ‹เชซเชพเช‡เชฒ เชฆเซเชตเชพเชฐเชพ เช•เซเชฒเซ‡เชฎเซเชชเซเชก เช›เซ‡, เชœเซ‡ เชคเซ‡เชจเซ‡ เชคเชฎเชพเชฎ เชชเซเชฐเช•เชพเชฐเชจเชพ 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 เชกเชฟเชซเซ‹เชฒเซเชŸ Python เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพ เชเชœเชจเซเชŸ เชธเชพเชฅเซ‡ เชตเชฟเชจเช‚เชคเซ€เช“เชจเซ‡ เช…เชตเชฐเซ‹เชงเชฟเชค เช•เชฐเซ‡ เช›เซ‡. เชเชตเซเช‚ เชฒเชพเช—เซ‡ เช›เซ‡ เช•เซ‡ เชธเซเช•เซเชฐเชฟเชชเซเชŸ-เช•เชฟเชกเซ€เชจเซ‡ เชคเซ‡ เชฎเชณเซ€ เช—เชฏเซเช‚ เช›เซ‡. เชคเซ‡เชฅเซ€, เช…เชฎเซ‡ เชคเซ‡เชจเซ‡ เช“เช—เซเชจเซ‡เชฒเชฟเชธเชฎเชพเช‚ เชฌเชฆเชฒเซ€เช เช›เซ€เช.

เช…เชคเซเชฏเชพเชฐ เชธเซเชงเซ€, เชคเซ‡ เชฎเชพเชคเซเชฐ 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

เชคเซ‡เช“ เช–เซ‚เชฌ เชตเชฟเชšเชพเชฐเซเชฏเชพ เชตเชฟเชจเชพ เชฒเช–เชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเชพ เชนเชคเชพ, เชคเซ‡เชฅเซ€ เชœเซ‹ เชคเชฎเซ‡ เช•เช‚เชˆเช• เชœเซ‹เชถเซ‹ เช•เซ‡ เชœเซ‡ เชธเซเชงเชพเชฐเซ€ เชถเช•เชพเชฏ เช›เซ‡ - เชคเซ‡เชจเชพ เชฎเชพเชŸเซ‡ เชœเชพเช“.

เช•เซเชฒเชพเชฏเช‚เชŸ เชธเซ‡เชŸเช…เชช

เช…เชนเซ€เช‚ เชนเซเช‚ Linux เชฐเชพเช‰เชŸเชฐเซเชธ เชฎเชพเชŸเซ‡ เช‰เชฆเชพเชนเชฐเชฃเซ‹ เช†เชชเซ€เชถ, เชชเชฐเช‚เชคเซ Mikrotik / Cisco เชจเชพ เช•เชฟเชธเซเชธเชพเชฎเชพเช‚ เชคเซ‡ เชตเชงเซ เชธเชฐเชณ เชนเซ‹เชตเซเช‚ เชœเซ‹เชˆเช.

เชชเซเชฐเชฅเชฎ, เช…เชฎเซ‡ เชฌเชฐเซเชก เชธเซ‡เชŸ เช•เชฐเซ€เช เช›เซ€เช:

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

เชเช• เชŸเชฟเชชเซเชชเชฃเซ€ เช‰เชฎเซ‡เชฐเซ‹