ipipou: เจธเจฟเจฐเจซเจผ เจ‡เฉฑเจ• เจ…เจจเจ‡เจจเจ•เฉเจฐเจฟเจชเจŸเจก เจธเฉเจฐเฉฐเจ— เจคเฉ‹เจ‚ เจตเฉฑเจง

เจ…เจธเฉ€เจ‚ IPv6 เจฆเฉ‡ เจฐเฉฑเจฌ เจจเฉ‚เฉฐ เจ•เฉ€ เจ•เจนเจฟ เจฐเจนเฉ‡ เจนเจพเจ‚?

ipipou: เจธเจฟเจฐเจซเจผ เจ‡เฉฑเจ• เจ…เจจเจ‡เจจเจ•เฉเจฐเจฟเจชเจŸเจก เจธเฉเจฐเฉฐเจ— เจคเฉ‹เจ‚ เจตเฉฑเจง
เจ‡เจน เจธเจนเฉ€ เจนเฉˆ, เจ…เจธเฉ€เจ‚ เจ…เฉฑเจœ เจเจจเจ•เฉเจฐเจฟเจชเจธเจผเจจ เจฆเฉ‡ เจฆเฉ‡เจตเจคเฉ‡ เจจเฉ‚เฉฐ เจตเฉ€ เจ‡เจนเฉ€ เจ•เจนเจพเจ‚เจ—เฉ‡เฅค

เจ‡เฉฑเจฅเฉ‡ เจ…เจธเฉ€เจ‚ เจ‡เฉฑเจ• เจ—เฉˆเจฐ-เจ‡เจจเจ•เฉเจฐเจฟเจชเจŸเจก IPv4 เจธเฉเจฐเฉฐเจ— เจฌเจพเจฐเฉ‡ เจ—เฉฑเจฒ เจ•เจฐเจพเจ‚เจ—เฉ‡, เจชเจฐ เจ‡เฉฑเจ• "เจจเจฟเฉฑเจ˜เฉ‡ เจฆเฉ€เจตเฉ‡" เจฌเจพเจฐเฉ‡ เจจเจนเฉ€เจ‚, เจชเจฐ เจ‡เฉฑเจ• เจ†เจงเฉเจจเจฟเจ• "LED" เจฌเจพเจฐเฉ‡ เจ—เฉฑเจฒ เจ•เจฐเจพเจ‚เจ—เฉ‡เฅค เจ…เจคเฉ‡ เจ‡เฉฑเจฅเฉ‡ เจ•เฉฑเจšเฉ‡ เจธเจพเจ•เจŸ เจซเจฒเฉˆเจธเจผเจฟเฉฐเจ— เจตเฉ€ เจนเจจ, เจ…เจคเฉ‡ เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจธเจชเฉ‡เจธ เจตเจฟเฉฑเจš เจชเฉˆเจ•เฉ‡เจŸเจพเจ‚ เจจเจพเจฒ เจ•เฉฐเจฎ เจšเฉฑเจฒ เจฐเจฟเจนเจพ เจนเฉˆเฅค

เจนเจฐ เจธเจตเจพเจฆ เจ…เจคเฉ‡ เจฐเฉฐเจ— เจฒเจˆ N เจŸเจจเจฒเจฟเฉฐเจ— เจชเฉเจฐเฉ‹เจŸเฉ‹เจ•เฉ‹เจฒ เจนเจจ:

  • เจ…เฉฐเจฆเจพเจœเจผ, เจซเฉˆเจธเจผเจจเฉ‡เจฌเจฒ, เจจเฉŒเจœเจตเจพเจจ เจตเจพเจ‡เจฐเจ—เจพเจฐเจก
  • เจฎเจฒเจŸเฉ€เจซเฉฐเจ•เจธเจผเจจเจฒ, เจœเจฟเจตเฉ‡เจ‚ เจธเจตเจฟเจธ เจšเจพเจ•เฉ‚, เจ“เจชเจจเจตเฉ€เจชเฉ€เจเจจ เจ…เจคเฉ‡ เจเจธเจเจธเจเจš
  • เจชเฉเจฐเจพเจฃเจพ เจ…เจคเฉ‡ เจฌเฉเจฐเจพเจˆ GRE เจจเจนเฉ€เจ‚
  • เจธเจญ เจคเฉ‹เจ‚ เจธเจฐเจฒ, เจคเฉ‡เจœเจผ, เจชเฉ‚เจฐเฉ€ เจคเจฐเฉเจนเจพเจ‚ เจ…เจฃ-เจ‡เจจเจ•เฉเจฐเจฟเจชเจŸเจก IPIP
  • เจธเจฐเจ—เจฐเจฎเฉ€ เจจเจพเจฒ เจตเจฟเจ•เจพเจธ เจ•เจฐ เจฐเจฟเจนเจพ เจนเฉˆ GENEVE
  • เจ•เจˆ เจนเฉ‹เจฐเฅค

เจชเจฐ เจฎเฉˆเจ‚ เจ‡เฉฑเจ• เจชเฉเจฐเฉ‹เจ—เจฐเจพเจฎเจฐ เจนเจพเจ‚, เจ‡เจธเจฒเจˆ เจฎเฉˆเจ‚ N เจจเฉ‚เฉฐ เจธเจฟเจฐเจซ เจ‡เฉฑเจ• เจ…เฉฐเจธเจผ เจฆเฉเจ†เจฐเจพ เจตเจงเจพเจตเจพเจ‚เจ—เจพ, เจ…เจคเฉ‡ เจ…เจธเจฒเฉ€ เจชเฉเจฐเฉ‹เจŸเฉ‹เจ•เฉ‹เจฒ เจฆเฉ‡ เจตเจฟเจ•เจพเจธ เจจเฉ‚เฉฐ เจ•เจพเจฎเจฐเจธเฉˆเจ‚เจŸ เจกเจฟเจตเฉˆเจฒเจชเจฐเจพเจ‚ เจจเฉ‚เฉฐ เจ›เฉฑเจกเจพเจ‚เจ—เจพ.

เจ‡เฉฑเจ• เจ…เจฃเจœเฉฐเจฎเฉ‡ เจตเจฟเฉฑเจš เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸเจฎเฉˆเจ‚ เจนเฉเจฃ เจ•เฉ€ เจ•เจฐ เจฐเจฟเจนเจพ เจนเจพเจ‚ เจฌเจพเจนเจฐเฉ‹เจ‚ NAT เจฆเฉ‡ เจชเจฟเฉฑเจ›เฉ‡ เจฎเฉ‡เจœเจผเจฌเจพเจจเจพเจ‚ เจคเฉฑเจ• เจชเจนเฉเฉฐเจšเจฃเจพ เจนเฉˆ. เจ‡เจธเจฆเฉ‡ เจฒเจˆ เจฌเจพเจฒเจ— เจ•เฉเจฐเจฟเจชเจŸเฉ‹เจ—เฉเจฐเจพเจซเฉ€ เจตเจพเจฒเฉ‡ เจชเฉเจฐเฉ‹เจŸเฉ‹เจ•เฉ‹เจฒ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเฉ‡ เจนเฉ‹เจ, เจฎเฉˆเจ‚ เจ‡เจธ เจญเจพเจตเจจเจพ เจจเฉ‚เฉฐ เจนเจฟเจฒเจพ เจจเจนเฉ€เจ‚ เจธเจ•เจฆเจพ เจธเฉ€ เจ•เจฟ เจ‡เจน เจ‡เฉฑเจ• เจคเฉ‹เจช เจตเจฟเฉฑเจšเฉ‹เจ‚ เจšเจฟเฉœเฉ€เจ†เจ‚ เจจเฉ‚เฉฐ เจ—เฉ‹เจฒเฉ€ เจฎเจพเจฐเจจ เจตเจฐเจ—เจพ เจธเฉ€เฅค เจ•เจฟเจ‰เจ‚เจ•เจฟ เจธเฉเจฐเฉฐเจ— เจจเฉ‚เฉฐ เจœเจผเจฟเจ†เจฆเจพเจคเจฐ เจนเจฟเฉฑเจธเฉ‡ เจฒเจˆ NAT-e เจตเจฟเฉฑเจš เจ›เฉ‡เจ• เจ•เจฐเจจ เจฒเจˆ เจตเจฐเจคเจฟเจ† เจœเจพเจ‚เจฆเจพ เจนเฉˆ, เจ…เฉฐเจฆเจฐเฉ‚เจจเฉ€ เจŸเฉเจฐเฉˆเจซเจฟเจ• เจ†เจฎ เจคเฉŒเจฐ 'เจคเฉ‡ เจตเฉ€ เจเจจเจ•เฉเจฐเจฟเจชเจŸเจก เจนเฉเฉฐเจฆเจพ เจนเฉˆ, เจชเจฐ เจ‰เจน เจ…เจœเฉ‡ เจตเฉ€ HTTPS เจตเจฟเฉฑเจš เจกเฉเฉฑเจฌ เจœเจพเจ‚เจฆเฉ‡ เจนเจจเฅค

เจตเฉฑเจ–-เจตเฉฑเจ– เจŸเจจเจฒเจฟเฉฐเจ— เจชเฉเจฐเฉ‹เจŸเฉ‹เจ•เฉ‹เจฒเจพเจ‚ เจฆเฉ€ เจ–เฉ‹เจœ เจ•เจฐเจฆเฉ‡ เจธเจฎเฉ‡เจ‚, เจฎเฉ‡เจฐเฉ‡ เจ…เฉฐเจฆเจฐเฉ‚เจจเฉ€ เจธเฉฐเจชเฉ‚เจฐเจจเจคเจพเจตเจพเจฆเฉ€ เจฆเจพ เจงเจฟเจ†เจจ เจ‡เจธเจฆเฉ‡ เจ˜เฉฑเจŸเฉ‹-เจ˜เฉฑเจŸ เจ“เจตเจฐเจนเฉˆเฉฑเจก เจฆเฉ‡ เจ•เจพเจฐเจจ เจตเจพเจฐ-เจตเจพเจฐ IPIP เจตเฉฑเจฒ เจ–เจฟเฉฑเจšเจฟเจ† เจ—เจฟเจ† เจธเฉ€เฅค เจชเจฐ เจ‡เจธ เจตเจฟเฉฑเจš เจฎเฉ‡เจฐเฉ‡ เจ•เฉฐเจฎเจพเจ‚ เจฒเจˆ เจกเฉ‡เจข เจฎเจนเฉฑเจคเจตเจชเฉ‚เจฐเจจ เจ•เจฎเฉ€เจ†เจ‚ เจนเจจ:

  • เจ‡เจธ เจจเฉ‚เฉฐ เจฆเฉ‹เจตเฉ‡เจ‚ เจชเจพเจธเฉ‡ เจœเจจเจคเจ• IPs เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆ,
  • เจ…เจคเฉ‡ เจคเฉเจนเจพเจกเฉ‡ เจฒเจˆ เจ•เฉ‹เจˆ เจชเฉเจฐเจฎเจพเจฃเจฟเจ•เจคเจพ เจจเจนเฉ€เจ‚เฅค

เจ‡เจธ เจฒเจˆ, เจธเฉฐเจชเฉ‚เจฐเจจเจคเจพเจตเจพเจฆเฉ€ เจจเฉ‚เฉฐ เจตเจพเจชเจธ เจ–เฉ‹เจชเฉœเฉ€ เจฆเฉ‡ เจนเจจเฉ‡เจฐเฉ‡ เจ•เฉ‹เจจเฉ‡ เจตเจฟเฉฑเจš เจšเจฒเจพ เจฆเจฟเฉฑเจคเจพ เจ—เจฟเจ† เจธเฉ€, เจœเจพเจ‚ เจœเจฟเฉฑเจฅเฉ‡ เจตเฉ€ เจ‰เจน เจ‰เฉฑเจฅเฉ‡ เจฌเฉˆเจ เจฆเจพ เจนเฉˆ.

เจ…เจคเฉ‡ เจซเจฟเจฐ เจ‡เฉฑเจ• เจฆเจฟเจจ, 'เจคเฉ‡ เจฒเฉ‡เจ– เจชเฉœเฉเจนเจฆเฉ‡ เจนเฉ‹เจ เจจเฉ‡เจŸเจฟเจต เจธเจฎเจฐเจฅเจฟเจค เจธเฉเจฐเฉฐเจ—เจพเจ‚ เจฒเฉ€เจจเจ•เจธ เจตเจฟเฉฑเจš เจฎเฉˆเจ‚ FOU (Foo-over-UDP) เจตเจฟเฉฑเจš เจ†เจ‡เจ†, เจœเจฟเจตเฉ‡เจ‚ เจ•เจฟ. เจœเฉ‹ เจตเฉ€ เจนเฉ‹เจตเฉ‡, UDP เจตเจฟเฉฑเจš เจฒเจชเฉ‡เจŸเจฟเจ†เฅค เจนเฉเจฃ เจคเฉฑเจ•, เจธเจฟเจฐเจซเจผ IPIP เจ…เจคเฉ‡ GUE (เจœเจจเจฐเจฟเจ• UDP เจเจจเจ•เฉˆเจชเจธเฉ‚เจฒเฉ‡เจธเจผเจจ) เจธเจฎเจฐเจฅเจฟเจค เจนเจจเฅค

โ€œเจ‡เฉฑเจฅเฉ‡ เจšเจพเจ‚เจฆเฉ€ เจฆเฉ€ เจ—เฉ‹เจฒเฉ€ เจนเฉˆ! เจ‡เฉฑเจ• เจธเจงเจพเจฐเจจ IPIP เจฎเฉ‡เจฐเฉ‡ เจฒเจˆ เจ•เจพเจซเฉ€ เจนเฉˆเฅค - เจฎเฉˆเจ‚ เจธเฉ‹เจšเจฟเจ†.

เจ…เจธเจฒ เจตเจฟเฉฑเจš, เจ—เฉ‹เจฒเฉ€ เจชเฉ‚เจฐเฉ€ เจคเจฐเฉเจนเจพเจ‚ เจšเจพเจ‚เจฆเฉ€ เจฆเฉ€ เจจเจนเฉ€เจ‚ เจจเจฟเจ•เจฒเฉ€เฅค UDP เจตเจฟเฉฑเจš เจเจจเจ•เฉˆเจชเจธเฉ‚เจฒเฉ‡เจธเจผเจจ เจชเจนเจฟเจฒเฉ€ เจธเจฎเฉฑเจธเจฟเจ† เจจเฉ‚เฉฐ เจนเฉฑเจฒ เจ•เจฐเจฆเจพ เจนเฉˆ - เจคเฉเจธเฉ€เจ‚ เจชเจนเจฟเจฒเจพเจ‚ เจคเฉ‹เจ‚ เจธเจฅเจพเจชเจค เจ•เฉเจจเฉˆเจ•เจธเจผเจจ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจ•เฉ‡ เจฌเจพเจนเจฐเฉ‹เจ‚ NAT เจฆเฉ‡ เจชเจฟเฉฑเจ›เฉ‡ เจ—เจพเจนเจ•เจพเจ‚ เจจเจพเจฒ เจœเฉเฉœ เจธเจ•เจฆเฉ‡ เจนเฉ‹, เจชเจฐ เจ‡เฉฑเจฅเฉ‡ IPIP เจฆเฉ€ เจ…เจ—เจฒเฉ€ เจ•เจฎเจœเจผเฉ‹เจฐเฉ€ เจฆเจพ เจ…เฉฑเจงเจพ เจ‡เฉฑเจ• เจจเจตเฉ€เจ‚ เจฐเฉ‹เจธเจผเจจเฉ€ เจตเจฟเฉฑเจš เจ–เจฟเฉœเจฆเจพ เจนเฉˆ - เจ‡เฉฑเจ• เจชเฉเจฐเจพเจˆเจตเฉ‡เจŸ เจจเฉˆเจŸเจตเจฐเจ• เจคเฉ‹เจ‚ เจ•เฉ‹เจˆ เจตเฉ€ เจฆเฉเจฐเจฟเจธเจผเจŸเฉ€เจ•เฉ‹เจฃ เจฆเฉ‡ เจชเจฟเฉฑเจ›เฉ‡ เจฒเฉเจ• เจธเจ•เจฆเจพ เจนเฉˆ เจœเจจเจคเจ• IP เจ…เจคเฉ‡ เจ•เจฒเจพเจ‡เฉฐเจŸ เจชเฉ‹เจฐเจŸ (เจธเจผเฉเฉฑเจง IPIP เจตเจฟเฉฑเจš เจ‡เจน เจธเจฎเฉฑเจธเจฟเจ† เจฎเฉŒเจœเฉ‚เจฆ เจจเจนเฉ€เจ‚ เจนเฉˆ)เฅค

เจ‡เจธ เจกเฉ‡เจข เจธเจฎเฉฑเจธเจฟเจ† เจจเฉ‚เฉฐ เจนเฉฑเจฒ เจ•เจฐเจจ เจฒเจˆ, เจ‰เจชเจฏเฉ‹เจ—เจคเจพ เจฆเจพ เจœเจจเจฎ เจนเฉ‹เจ‡เจ† เจธเฉ€ ipipou. เจ‡เจน เจ•เจฐเจจเจฒ FOU เจฆเฉ‡ เจธเฉฐเจšเจพเจฒเจจ เจตเจฟเฉฑเจš เจตเจฟเจ˜เจจ เจชเจพเจ เจฌเจฟเจจเจพเจ‚, เจ‡เฉฑเจ• เจฐเจฟเจฎเฉ‹เจŸ เจนเฉ‹เจธเจŸ เจจเฉ‚เฉฐ เจชเฉเจฐเจฎเจพเจฃเจฟเจค เจ•เจฐเจจ เจฒเจˆ เจ‡เฉฑเจ• เจ˜เจฐเฉ‡เจฒเฉ‚-เจจเจฟเจฐเจฎเจฟเจค เจตเจฟเจงเฉ€ เจฒเจพเจ—เฉ‚ เจ•เจฐเจฆเจพ เจนเฉˆ, เจœเฉ‹ เจ•เจฟ เจ•เจฐเจจเจฒ เจธเจชเฉ‡เจธ เจตเจฟเฉฑเจš เจชเฉˆเจ•เฉ‡เจŸเจพเจ‚ เจฆเฉ€ เจคเฉ‡เจœเจผเฉ€ เจ…เจคเฉ‡ เจ•เฉเจธเจผเจฒเจคเจพ เจจเจพเจฒ เจชเฉเจฐเจ•เจฟเจฐเจฟเจ† เจ•เจฐเฉ‡เจ—เจพเฅค

เจธเจพเจจเฉ‚เฉฐ เจคเฉเจนเจพเจกเฉ€ เจธเจ•เฉเจฐเจฟเจชเจŸ เจฆเฉ€ เจฒเฉ‹เฉœ เจจเจนเฉ€เจ‚ เจนเฉˆ!

เจ เฉ€เจ• เจนเฉˆ, เจœเฉ‡ เจคเฉเจธเฉ€เจ‚ เจ—เจพเจนเจ• เจฆเฉ‡ เจœเจจเจคเจ• เจชเฉ‹เจฐเจŸ เจ…เจคเฉ‡ IP เจจเฉ‚เฉฐ เจœเจพเจฃเจฆเฉ‡ เจนเฉ‹ (เจ‰เจฆเจพเจนเจฐเจฃ เจตเจœเฉ‹เจ‚, เจ‡เจธเจฆเฉ‡ เจชเจฟเฉฑเจ›เฉ‡ เจนเจฐ เจ•เฉ‹เจˆ เจ•เจฟเจคเฉ‡ เจจเจนเฉ€เจ‚ เจœเจพเจ‚เจฆเจพ, NAT 1-เจ‡เจจ-1 เจชเฉ‹เจฐเจŸเจพเจ‚ เจจเฉ‚เฉฐ เจฎเฉˆเจช เจ•เจฐเจจ เจฆเฉ€ เจ•เฉ‹เจธเจผเจฟเจธเจผ เจ•เจฐเจฆเจพ เจนเฉˆ), เจคเฉเจธเฉ€เจ‚ เจ‡เจธ เจจเจพเจฒ เจ‡เฉฑเจ• IPIP-เจ“เจตเจฐ-FOU เจธเฉเจฐเฉฐเจ— เจฌเจฃเจพ เจธเจ•เจฆเฉ‡ เจนเฉ‹เฅค เจนเฉ‡เจ  เจฒเจฟเจ–เฉ€เจ†เจ‚ เจ•เจฎเจพเจ‚เจกเจพเจ‚, เจฌเจฟเจจเจพเจ‚ เจ•เจฟเจธเฉ‡ เจธเจ•เฉเจฐเจฟเจชเจŸ เจฆเฉ‡เฅค

เจธเจฐเจตเจฐ 'เจคเฉ‡:

# ะŸะพะดะณั€ัƒะทะธั‚ัŒ ะผะพะดัƒะปัŒ ัะดั€ะฐ FOU
modprobe fou

# ะกะพะทะดะฐั‚ัŒ IPIP ั‚ัƒะฝะฝะตะปัŒ ั ะธะฝะบะฐะฟััƒะปัั†ะธะตะน ะฒ FOU.
# ะœะพะดัƒะปัŒ ipip ะฟะพะดะณั€ัƒะทะธั‚ัั ะฐะฒั‚ะพะผะฐั‚ะธั‡ะตัะบะธ.
ip link add name ipipou0 type ipip 
    remote 198.51.100.2 local 203.0.113.1 
    encap fou encap-sport 10000 encap-dport 20001 
    mode ipip dev eth0

# ะ”ะพะฑะฐะฒะธั‚ัŒ ะฟะพั€ั‚ ะฝะฐ ะบะพั‚ะพั€ะพะผ ะฑัƒะดะตั‚ ัะปัƒัˆะฐั‚ัŒ FOU ะดะปั ัั‚ะพะณะพ ั‚ัƒะฝะฝะตะปั
ip fou add port 10000 ipproto 4 local 203.0.113.1 dev eth0

# ะะฐะทะฝะฐั‡ะธั‚ัŒ IP ะฐะดั€ะตั ั‚ัƒะฝะฝะตะปัŽ
ip address add 172.28.0.0 peer 172.28.0.1 dev ipipou0

# ะŸะพะดะฝัั‚ัŒ ั‚ัƒะฝะฝะตะปัŒ
ip link set ipipou0 up

เจ—เจพเจนเจ• 'เจคเฉ‡:

modprobe fou

ip link add name ipipou1 type ipip 
    remote 203.0.113.1 local 192.168.0.2 
    encap fou encap-sport 10001 encap-dport 10000 encap-csum 
    mode ipip dev eth0

# ะžะฟั†ะธะธ local, peer, peer_port, dev ะผะพะณัƒั‚ ะฝะต ะฟะพะดะดะตั€ะถะธะฒะฐั‚ัŒัั ัั‚ะฐั€ั‹ะผะธ ัะดั€ะฐะผะธ, ะผะพะถะฝะพ ะธั… ะพะฟัƒัั‚ะธั‚ัŒ.
# peer ะธ peer_port ะธัะฟะพะปัŒะทัƒัŽั‚ัั ะดะปั ัะพะทะดะฐะฝะธั ัะพะตะดะธะฝะตะฝะธั ัั€ะฐะทัƒ ะฟั€ะธ ัะพะทะดะฐะฝะธะธ FOU-listener-ะฐ.
ip fou add port 10001 ipproto 4 local 192.168.0.2 peer 203.0.113.1 peer_port 10000 dev eth0

ip address add 172.28.0.1 peer 172.28.0.0 dev ipipou1

ip link set ipipou1 up

เจœเจฟเฉฑเจฅเฉ‡

  • ipipou* โ€” เจธเจฅเจพเจจเจ• เจธเฉเจฐเฉฐเจ— เจจเฉˆเฉฑเจŸเจตเจฐเจ• เจ‡เฉฐเจŸเจฐเจซเฉ‡เจธ เจฆเจพ เจจเจพเจ‚
  • 203.0.113.1 - เจœเจจเจคเจ• IP เจธเจฐเจตเจฐ
  • 198.51.100.2 - เจ—เจพเจนเจ• เจฆเจพ เจœเจจเจคเจ• IP
  • 192.168.0.2 โ€” เจ•เจฒเจพเจ‡เฉฐเจŸ IP เจ‡เฉฐเจŸเจฐเจซเฉ‡เจธ eth0 เจจเฉ‚เฉฐ เจฆเจฟเฉฑเจคเจพ เจ—เจฟเจ† เจนเฉˆ
  • 10001 - FOU เจฒเจˆ เจธเจฅเจพเจจเจ• เจ•เจฒเจพเจ‡เฉฐเจŸ เจชเฉ‹เจฐเจŸ
  • 20001 - FOU เจฒเจˆ เจœเจจเจคเจ• เจ•เจฒเจพเจ‡เฉฐเจŸ เจชเฉ‹เจฐเจŸ
  • 10000 - FOU เจฒเจˆ เจœเจจเจคเจ• เจธเจฐเจตเจฐ เจชเฉ‹เจฐเจŸ
  • encap-csum โ€” เจเจจเจ•เฉˆเจชเจธเจฒเฉ‡เจŸเจฟเจก UDP เจชเฉˆเจ•เฉ‡เจŸเจพเจ‚ เจตเจฟเฉฑเจš เจ‡เฉฑเจ• UDP เจšเฉˆเฉฑเจ•เจธเจฎ เจœเฉ‹เฉœเจจ เจฆเจพ เจตเจฟเจ•เจฒเจช; เจฆเฉเจ†เจฐเจพ เจฌเจฆเจฒเจฟเจ† เจœเจพ เจธเจ•เจฆเจพ เจนเฉˆ noencap-csum, เจœเจผเจฟเจ•เจฐ เจจเจพ เจ•เจฐเจจ เจฒเจˆ, เจ‡เจ•เจธเจพเจฐเจคเจพ เจชเจนเจฟเจฒเจพเจ‚ เจนเฉ€ เจฌเจพเจนเจฐเฉ€ เจ‡เจจเจ•เฉˆเจชเจธเฉ‚เจฒเฉ‡เจธเจผเจจ เจชเจฐเจค เจฆเฉเจ†เจฐเจพ เจจเจฟเจฏเฉฐเจคเจฐเจฟเจค เจ•เฉ€เจคเฉ€ เจœเจพเจ‚เจฆเฉ€ เจนเฉˆ (เจœเจฆเฉ‹เจ‚ เจ•เจฟ เจชเฉˆเจ•เฉ‡เจŸ เจธเฉเจฐเฉฐเจ— เจฆเฉ‡ เจ…เฉฐเจฆเจฐ เจนเฉเฉฐเจฆเจพ เจนเฉˆ)
  • eth0 โ€” เจธเจฅเจพเจจเจ• เจ‡เฉฐเจŸเจฐเจซเฉ‡เจธ เจœเจฟเจธ เจจเจพเจฒ ipip เจธเฉเจฐเฉฐเจ— เจจเฉ‚เฉฐ เจฌเฉฐเจจเฉเจนเจฟเจ† เจœเจพเจตเฉ‡เจ—เจพ
  • 172.28.0.1 - เจ•เจฒเจพเจ‡เฉฐเจŸ เจธเฉเจฐเฉฐเจ— เจ‡เฉฐเจŸเจฐเจซเฉ‡เจธ (เจชเฉเจฐเจพเจˆเจตเฉ‡เจŸ) เจฆเจพ IP
  • 172.28.0.0 - IP เจธเฉเจฐเฉฐเจ— เจธเจฐเจตเจฐ เจ‡เฉฐเจŸเจฐเจซเฉ‡เจธ (เจชเฉเจฐเจพเจˆเจตเฉ‡เจŸ)

เจœเจฟเฉฐเจจเจพ เจšเจฟเจฐ UDP เจ•เจจเฉˆเจ•เจธเจผเจจ เจœเจผเจฟเฉฐเจฆเจพ เจนเฉˆ, เจธเฉเจฐเฉฐเจ— เจ•เฉฐเจฎ เจ•เจฐเจจ เจฆเฉ‡ เจ•เฉเจฐเจฎ เจตเจฟเฉฑเจš เจนเฉ‹เจตเฉ‡เจ—เฉ€, เจชเจฐ เจœเฉ‡เจ•เจฐ เจ‡เจน เจŸเฉเฉฑเจŸ เจœเจพเจ‚เจฆเฉ€ เจนเฉˆ, เจคเจพเจ‚ เจคเฉเจธเฉ€เจ‚ เจ–เฉเจธเจผเจ•เจฟเจธเจฎเจค เจนเฉ‹เจตเฉ‹เจ—เฉ‡ - เจœเฉ‡เจ•เจฐ เจ•เจฒเจพเจ‡เฉฐเจŸ เจฆเจพ IP: เจชเฉ‹เจฐเจŸ เจ‰เจนเฉ€ เจฐเจนเจฟเฉฐเจฆเจพ เจนเฉˆ - เจ‡เจน เจฒเจพเจˆเจต เจฐเจนเฉ‡เจ—เจพ, เจœเฉ‡เจ•เจฐ เจ‰เจน เจฌเจฆเจฒเจฆเจพ เจนเฉˆ - เจ‡เจน เจŸเฉเฉฑเจŸ เจœเจพเจตเฉ‡เจ—เจพเฅค

เจธเจญ เจ•เฉเจ เจตเจพเจชเจธ เจฎเฉ‹เฉœเจจ เจฆเจพ เจธเจญ เจคเฉ‹เจ‚ เจ†เจธเจพเจจ เจคเจฐเฉ€เจ•เจพ เจนเฉˆ เจ•เจฐเจจเจฒ เจฎเฉ‹เจกเฉ€เจŠเจฒ เจจเฉ‚เฉฐ เจ…เจจเจฒเฉ‹เจก เจ•เจฐเจจเจพ: modprobe -r fou ipip

เจญเจพเจตเฉ‡เจ‚ เจชเฉเจฐเจฎเจพเจฃเจฟเจ•เจคเจพ เจฆเฉ€ เจฒเฉ‹เฉœ เจจเจพ เจนเฉ‹เจตเฉ‡, เจ•เจฒเจพเจ‡เฉฐเจŸ เจฆเจพ เจœเจจเจคเจ• IP เจ…เจคเฉ‡ เจชเฉ‹เจฐเจŸ เจนเจฎเฉ‡เจธเจผเจพ เจœเจพเจฃเจฟเจ† เจจเจนเฉ€เจ‚ เจœเจพเจ‚เจฆเจพ เจนเฉˆ เจ…เจคเฉ‡ เจ…เจ•เจธเจฐ เจ…เจฃเจชเจ›เจพเจคเฉ‡ เจœเจพเจ‚ เจตเฉ‡เจฐเฉ€เจเจฌเจฒ เจนเฉเฉฐเจฆเฉ‡ เจนเจจ (NAT เจ•เจฟเจธเจฎ 'เจคเฉ‡ เจจเจฟเจฐเจญเจฐ เจ•เจฐเจฆเฉ‡ เจนเฉ‹เจ)เฅค เจœเฉ‡ เจคเฉเจธเฉ€เจ‚ เจ›เฉฑเจก เจฆเจฟเฉฐเจฆเฉ‡ เจนเฉ‹ encap-dport เจธเจฐเจตเจฐ เจธเจพเจˆเจก 'เจคเฉ‡, เจธเฉเจฐเฉฐเจ— เจ•เฉฐเจฎ เจจเจนเฉ€เจ‚ เจ•เจฐเฉ‡เจ—เฉ€, เจ‡เจน เจฐเจฟเจฎเฉ‹เจŸ เจ•เจจเฉˆเจ•เจธเจผเจจ เจชเฉ‹เจฐเจŸ เจฒเฉˆเจฃ เจฒเจˆ เจ‡เฉฐเจจเจพ เจšเฉเจธเจค เจจเจนเฉ€เจ‚ เจนเฉˆเฅค เจ‡เจธ เจธเจฅเจฟเจคเฉ€ เจตเจฟเฉฑเจš, ipipou เจตเฉ€ เจฎเจฆเจฆ เจ•เจฐ เจธเจ•เจฆเจพ เจนเฉˆ, เจœเจพเจ‚ WireGuard เจ…เจคเฉ‡ เจ‡เจธ เจตเจฐเจ—เฉ‡ เจนเฉ‹เจฐ เจคเฉเจนเจพเจกเฉ€ เจฎเจฆเจฆ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเจจเฅค

เจ‡เจธ เจจเฉ‚เฉฐ เจ•เฉฐเจฎ เจ•เจฐเจฆเจพ เจนเฉˆ?

เจ•เจฒเจพเจ‡เฉฐเจŸ (เจœเฉ‹ เจ†เจฎ เจคเฉŒเจฐ 'เจคเฉ‡ NAT เจฆเฉ‡ เจชเจฟเฉฑเจ›เฉ‡ เจนเฉเฉฐเจฆเจพ เจนเฉˆ) เจ‡เฉฑเจ• เจธเฉเจฐเฉฐเจ— เจ–เฉ‹เจฒเฉเจนเจฆเจพ เจนเฉˆ (เจœเจฟเจตเฉ‡เจ‚ เจ•เจฟ เจ‰เจชเจฐเฉ‹เจ•เจค เจ‰เจฆเจพเจนเจฐเจจ เจตเจฟเฉฑเจš), เจ…เจคเฉ‡ เจธเจฐเจตเจฐ เจจเฉ‚เฉฐ เจ‡เฉฑเจ• เจชเฉเจฐเจฎเจพเจฃเจฟเจ•เจคเจพ เจชเฉˆเจ•เฉ‡เจŸ เจญเฉ‡เจœเจฆเจพ เจนเฉˆ เจคเจพเจ‚ เจœเฉ‹ เจ‡เจน เจธเฉเจฐเฉฐเจ— เจจเฉ‚เฉฐ เจ‡เจธเจฆเฉ‡ เจชเจพเจธเฉ‡ เจฆเฉ€ เจธเฉฐเจฐเจšเจจเจพ เจ•เจฐเฉ‡เฅค เจธเฉˆเจŸเจฟเฉฐเจ—เจพเจ‚ 'เจคเฉ‡ เจจเจฟเจฐเจญเจฐ เจ•เจฐเจฆเฉ‡ เจนเฉ‹เจ, เจ‡เจน เจ‡เฉฑเจ• เจ–เจพเจฒเฉ€ เจชเฉˆเจ•เฉ‡เจŸ เจนเฉ‹ เจธเจ•เจฆเจพ เจนเฉˆ (เจธเจฟเจฐเจซเจผ เจคเจพเจ‚ เจ•เจฟ เจธเจฐเจตเจฐ เจœเจจเจคเจ• IP: เจ•เจจเฉˆเจ•เจธเจผเจจ เจชเฉ‹เจฐเจŸ เจฆเฉ‡เจ– เจธเจ•เฉ‡), เจœเจพเจ‚ เจกเฉ‡เจŸเจพ เจœเจฟเจธ เจฆเฉเจ†เจฐเจพ เจธเจฐเจตเจฐ เจ•เจฒเจพเจ‡เฉฐเจŸ เจฆเฉ€ เจชเจ›เจพเจฃ เจ•เจฐ เจธเจ•เจฆเจพ เจนเฉˆเฅค เจกเฉ‡เจŸเจพ เจธเจชเจธเจผเจŸ เจŸเฉˆเจ•เจธเจŸ เจตเจฟเฉฑเจš เจ‡เฉฑเจ• เจธเจงเจพเจฐเจจ เจชเจพเจธเจซเจฐเฉ‡เจœเจผ เจนเฉ‹ เจธเจ•เจฆเจพ เจนเฉˆ (HTTP เจฌเฉ‡เจธเจฟเจ• เจชเฉเจฐเจฎเจพเจฃเจฟเจ•เจคเจพ เจฆเฉ‡ เจจเจพเจฒ เจธเจฎเจพเจจเจคเจพ เจฎเจจ เจตเจฟเฉฑเจš เจ†เจ‰เจ‚เจฆเฉ€ เจนเฉˆ) เจœเจพเจ‚ เจ‡เฉฑเจ• เจจเจฟเฉฑเจœเฉ€ เจ•เฉเฉฐเจœเฉ€ เจจเจพเจฒ เจนเจธเจคเจพเจ–เจฐเจฟเจค เจตเจฟเจธเจผเฉ‡เจธเจผ เจคเฉŒเจฐ 'เจคเฉ‡ เจกเจฟเจœเจผเจพเจˆเจจ เจ•เฉ€เจคเจพ เจกเฉ‡เจŸเจพ (HTTP เจกเจพเจ‡เจœเฉˆเจธเจŸ เจชเฉเจฐเจฎเจพเจฃเจฟเจ•เจคเจพ เจฆเฉ‡ เจธเจฎเจพเจจ เจนเฉ€ เจฎเจœเจผเจฌเฉ‚เจค, เจซเฉฐเจ•เจธเจผเจจ เจตเฉ‡เจ–เฉ‹เฅค client_auth เจ•เฉ‹เจก เจตเจฟเฉฑเจš).

เจธเจฐเจตเจฐ เจ‰เฉฑเจคเฉ‡ (เจœเจจเจคเจ• IP เจฆเฉ‡ เจจเจพเจฒ เจชเจพเจธเฉ‡), เจœเจฆเฉ‹เจ‚ ipipou เจธเจผเฉเจฐเฉ‚ เจนเฉเฉฐเจฆเจพ เจนเฉˆ, เจ‡เจน เจ‡เฉฑเจ• nfqueue เจ•เจคเจพเจฐ เจนเฉˆเจ‚เจกเจฒเจฐ เจฌเจฃเจพเจ‰เจ‚เจฆเจพ เจนเฉˆ เจ…เจคเฉ‡ เจจเฉˆเฉฑเจŸเจซเจฟเจฒเจŸเจฐ เจจเฉ‚เฉฐ เจธเฉฐเจฐเจšเจฟเจค เจ•เจฐเจฆเจพ เจนเฉˆ เจคเจพเจ‚ เจœเฉ‹ เจฒเฉ‹เฉœเฉ€เจ‚เจฆเฉ‡ เจชเฉˆเจ•เฉ‡เจŸ เจญเฉ‡เจœเฉ‡ เจœเจพเจฃ เจœเจฟเฉฑเจฅเฉ‡ เจ‰เจน เจนเฉ‹เจฃเฉ‡ เจšเจพเจนเฉ€เจฆเฉ‡ เจนเจจ: nfqueue เจ•เจคเจพเจฐ เจจเจพเจฒ เจ•เฉเจจเฉˆเจ•เจธเจผเจจ เจธเจผเฉเจฐเฉ‚ เจ•เจฐเจจ เจตเจพเจฒเฉ‡ เจชเฉˆเจ•เฉ‡เจŸ, เจ…เจคเฉ‡ [เจฒเจ—เจญเจ—] เจฌเจพเจ•เฉ€ เจธเจพเจฐเฉ‡ เจธเจฟเฉฑเจงเฉ‡ เจธเฉเจฃเจจ เจตเจพเจฒเฉ‡ FOU เจ•เฉ‹เจฒ เจœเจพเจ‚เจฆเฉ‡ เจนเจจเฅค

เจ‰เจนเจจเจพเจ‚ เจฒเจˆ เจœเฉ‹ เจจเจนเฉ€เจ‚ เจœเจพเจฃเจฆเฉ‡, nfqueue (เจœเจพเจ‚ NetfilterQueue) เจ‰เจนเจจเจพเจ‚ เจธเจผเฉŒเจ•เฉ€เจจเจพเจ‚ เจฒเจˆ เจ‡เฉฑเจ• เจ–เจพเจธ เจšเฉ€เจœเจผ เจนเฉˆ เจœเฉ‹ เจ•เจฐเจจเจฒ เจฎเฉ‹เจกเจฟเจŠเจฒ เจจเฉ‚เฉฐ เจ•เจฟเจตเฉ‡เจ‚ เจตเจฟเจ•เจธเจฟเจค เจ•เจฐเจจเจพ เจจเจนเฉ€เจ‚ เจœเจพเจฃเจฆเฉ‡ เจนเจจ, เจœเฉ‹ เจ•เจฟ เจจเฉˆเฉฑเจŸเจซเจฟเจฒเจŸเจฐ (nftables/iptables) เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเฉ‡ เจนเฉ‹เจ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจจเฉˆเฉฑเจŸเจตเจฐเจ• เจชเฉˆเจ•เฉ‡เจŸเจพเจ‚ เจจเฉ‚เฉฐ เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจธเจชเฉ‡เจธ เจตเจฟเฉฑเจš เจฐเฉ€เจกเจพเจ‡เจฐเฉˆเจ•เจŸ เจ•เจฐเจจ เจ…เจคเฉ‡ เจ‰เจนเจจเจพเจ‚ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจ•เฉ‡ เจ‰เฉฑเจฅเฉ‡ เจชเฉเจฐเจ•เจฟเจฐเจฟเจ† เจ•เจฐเจจ เจฆเฉ€ เจ‡เจœเจพเจœเจผเจค เจฆเจฟเฉฐเจฆเจพ เจนเฉˆเฅค เจชเฉเจฐเจพเจ‡เจฎเจฐเฉ€ เจฆเจพ เจ…เจฐเจฅ เจนเฉฑเจฅ เจตเจฟเฉฑเจš เจนเฉˆ: เจธเฉ‹เจงเฉ‹ (เจตเจฟเจ•เจฒเจชเจฟเจ•) เจ…เจคเฉ‡ เจ‡เจธเจจเฉ‚เฉฐ เจ•เจฐเจจเจฒ เจจเฉ‚เฉฐ เจตเจพเจชเจธ เจฆเจฟเจ“, เจœเจพเจ‚ เจ‡เจธเจจเฉ‚เฉฐ เจฐเฉฑเจฆ เจ•เจฐเฉ‹เฅค

เจ•เฉเจ เจชเฉเจฐเฉ‹เจ—เจฐเจพเจฎเจฟเฉฐเจ— เจญเจพเจธเจผเจพเจตเจพเจ‚ เจฒเจˆ nfqueue เจจเจพเจฒ เจ•เฉฐเจฎ เจ•เจฐเจจ เจฒเจˆ เจฌเจพเจˆเจกเจฟเฉฐเจ— เจนเจจ, bash เจฒเจˆ เจ•เฉ‹เจˆ เจจเจนเฉ€เจ‚ เจธเฉ€ (เจนเฉ‡เจน, เจนเฉˆเจฐเจพเจจเฉ€ เจฆเฉ€ เจ—เฉฑเจฒ เจจเจนเฉ€เจ‚), เจฎเฉˆเจจเฉ‚เฉฐ python เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจจเฉ€ เจชเจˆ: ipipou use เจจเฉˆเฉฑเจŸเจซเจฟเจฒเจŸเจฐ เจ•เจคเจพเจฐ.

เจœเฉ‡เจ•เจฐ เจ•เจพเจฐเจ—เฉเจœเจผเจพเจฐเฉ€ เจจเจพเจœเจผเฉเจ• เจจเจนเฉ€เจ‚ เจนเฉˆ, เจคเจพเจ‚ เจ‡เจธ เจšเฉ€เจœเจผ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจ•เฉ‡ เจคเฉเจธเฉ€เจ‚ เจ•เจพเจซเจผเฉ€ เจ˜เฉฑเจŸ เจชเฉฑเจงเจฐ 'เจคเฉ‡ เจชเฉˆเจ•เฉ‡เจŸเจพเจ‚ เจจเจพเจฒ เจ•เฉฐเจฎ เจ•เจฐเจจ เจฒเจˆ เจฎเฉเจ•เจพเจฌเจฒเจคเจจ เจคเฉ‡เจœเจผเฉ€ เจจเจพเจฒ เจ…เจคเฉ‡ เจ†เจธเจพเจจเฉ€ เจจเจพเจฒ เจ†เจชเจฃเจพ เจคเจฐเจ• เจฌเจฃเจพ เจธเจ•เจฆเฉ‡ เจนเฉ‹, เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ, เจชเฉเจฐเจฏเฉ‹เจ—เจพเจคเจฎเจ• เจกเฉ‡เจŸเจพ เจŸเฉเจฐเจพเจ‚เจธเจซเจฐ เจชเฉเจฐเฉ‹เจŸเฉ‹เจ•เฉ‹เจฒ เจฌเจฃเจพเจ“, เจœเจพเจ‚ เจ—เฉˆเจฐ-เจฎเจฟเจ†เจฐเฉ€ เจตเจฟเจนเจพเจฐ เจจเจพเจฒ เจธเจฅเจพเจจเจ• เจ…เจคเฉ‡ เจฐเจฟเจฎเฉ‹เจŸ เจธเฉ‡เจตเจพเจตเจพเจ‚ เจจเฉ‚เฉฐ เจŸเฉเจฐเฉ‹เจฒ เจ•เจฐเฉ‹เฅค

เจ•เฉฑเจšเฉ‡ เจธเจพเจ•เจŸ nfqueue เจฆเฉ‡ เจจเจพเจฒ เจนเฉฑเจฅ เจตเจฟเฉฑเจš เจ•เฉฐเจฎ เจ•เจฐเจฆเฉ‡ เจนเจจ, เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ, เจœเจฆเฉ‹เจ‚ เจธเฉเจฐเฉฐเจ— เจชเจนเจฟเจฒเจพเจ‚ เจคเฉ‹เจ‚ เจนเฉ€ เจธเฉฐเจฐเจšเจฟเจค เจนเฉˆ เจ…เจคเฉ‡ FOU เจฒเฉ‹เฉœเฉ€เจ‚เจฆเฉ‡ เจชเฉ‹เจฐเจŸ 'เจคเฉ‡ เจธเฉเจฃ เจฐเจฟเจนเจพ เจนเฉˆ, เจคเจพเจ‚ เจคเฉเจธเฉ€เจ‚ เจ‰เจธเฉ‡ เจชเฉ‹เจฐเจŸ เจคเฉ‹เจ‚ เจ†เจฎ เจคเจฐเฉ€เจ•เฉ‡ เจจเจพเจฒ เจ‡เฉฑเจ• เจชเฉˆเจ•เฉ‡เจŸ เจญเฉ‡เจœเจฃ เจฆเฉ‡ เจฏเฉ‹เจ— เจจเจนเฉ€เจ‚ เจนเฉ‹เจตเฉ‹เจ—เฉ‡ - เจ‡เจน เจตเจฟเจ…เจธเจค เจนเฉˆ, เจชเจฐ เจคเฉเจธเฉ€เจ‚ เจ‡เฉฑเจ• เจฌเฉ‡เจคเจฐเจคเฉ€เจฌ เจคเฉŒเจฐ 'เจคเฉ‡ เจคเจฟเจ†เจฐ เจ•เฉ€เจคเฉ‡ เจชเฉˆเจ•เฉ‡เจŸ เจจเฉ‚เฉฐ เจ‡เฉฑเจ• เจ•เฉฑเจšเฉ‡ เจธเจพเจ•เจŸ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจ•เฉ‡ เจธเจฟเฉฑเจงเฉ‡ เจจเฉˆเฉฑเจŸเจตเจฐเจ• เจ‡เฉฐเจŸเจฐเจซเฉ‡เจธ 'เจคเฉ‡ เจฒเฉˆ เจธเจ•เจฆเฉ‡ เจนเฉ‹ เจ…เจคเฉ‡ เจญเฉ‡เจœ เจธเจ•เจฆเฉ‡ เจนเฉ‹, เจนเจพเจฒเจพเจ‚เจ•เจฟ เจ…เจœเจฟเจนเฉ‡ เจชเฉˆเจ•เฉ‡เจŸ เจจเฉ‚เฉฐ เจฌเจฃเจพเจ‰เจฃ เจฒเจˆ เจฅเฉ‹เฉœเจพ เจนเฉ‹เจฐ เจŸเจฟเฉฐเจ•เจฐเจฟเฉฐเจ— เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉ‹เจตเฉ‡เจ—เฉ€เฅค เจ‡เจธ เจคเจฐเฉเจนเจพเจ‚ ipipou เจตเจฟเฉฑเจš เจชเฉเจฐเจฎเจพเจฃเจฟเจ•เจคเจพ เจตเจพเจฒเฉ‡ เจชเฉˆเจ•เฉ‡เจŸ เจฌเจฃเจพเจ เจœเจพเจ‚เจฆเฉ‡ เจนเจจเฅค

เจ•เจฟเจ‰เจ‚เจ•เจฟ ipipou เจ•เฉเจจเฉˆเจ•เจธเจผเจจ เจคเฉ‹เจ‚ เจธเจฟเจฐเจซ เจชเจนเจฟเจฒเฉ‡ เจชเฉˆเจ•เฉ‡เจŸเจพเจ‚ เจฆเฉ€ เจชเฉเจฐเจ•เจฟเจฐเจฟเจ† เจ•เจฐเจฆเจพ เจนเฉˆ (เจ…เจคเฉ‡ เจ‰เจน เจœเฉ‹ เจ•เฉเจจเฉˆเจ•เจธเจผเจจ เจธเจฅเจพเจชเจค เจนเฉ‹เจฃ เจคเฉ‹เจ‚ เจชเจนเจฟเจฒเจพเจ‚ เจ•เจคเจพเจฐ เจตเจฟเฉฑเจš เจฒเฉ€เจ• เจนเฉ‹เจฃ เจตเจฟเฉฑเจš เจ•เจพเจฎเจฏเจพเจฌ เจนเฉ‹ เจ—เจ เจธเจจ), เจ•เจพเจฐเจ—เฉเจœเจผเจพเจฐเฉ€ เจฒเจ—เจญเจ— เจชเฉเจฐเจญเจพเจตเจฟเจค เจจเจนเฉ€เจ‚ เจนเฉเฉฐเจฆเฉ€ เจนเฉˆเฅค

เจœเจฟเจตเฉ‡เจ‚ เจนเฉ€ ipipou เจธเจฐเจตเจฐ เจ‡เฉฑเจ• เจชเฉเจฐเจฎเจพเจฃเจฟเจค เจชเฉˆเจ•เฉ‡เจŸ เจชเฉเจฐเจพเจชเจค เจ•เจฐเจฆเจพ เจนเฉˆ, เจ‡เฉฑเจ• เจธเฉเจฐเฉฐเจ— เจฌเจฃเจพเจˆ เจœเจพเจ‚เจฆเฉ€ เจนเฉˆ เจ…เจคเฉ‡ เจ•เฉเจจเฉˆเจ•เจธเจผเจจ เจตเจฟเฉฑเจš เจธเจพเจฐเฉ‡ เจ…เจ—เจฒเฉ‡ เจชเฉˆเจ•เฉ‡เจŸ เจชเจนเจฟเจฒเจพเจ‚ เจนเฉ€ nfqueue เจจเฉ‚เฉฐ เจฌเจพเจˆเจชเจพเจธ เจ•เจฐเจ•เฉ‡ เจ•เจฐเจจเจฒ เจฆเฉเจ†เจฐเจพ เจธเฉฐเจธเจพเจงเจฟเจค เจ•เฉ€เจคเฉ‡ เจœเจพเจ‚เจฆเฉ‡ เจนเจจเฅค เจœเฉ‡เจ•เจฐ เจ•เฉเจจเฉˆเจ•เจธเจผเจจ เจซเฉ‡เจฒ เจนเฉ‹ เจœเจพเจ‚เจฆเจพ เจนเฉˆ, เจคเจพเจ‚ เจธเฉˆเจŸเจฟเฉฐเจ—เจพเจ‚ 'เจคเฉ‡ เจจเจฟเจฐเจญเจฐ เจ•เจฐเจฆเจฟเจ†เจ‚, เจ…เจ—เจฒเฉ‡ เจฆเจพ เจชเจนเจฟเจฒเจพ เจชเฉˆเจ•เฉ‡เจŸ nfqueue เจ•เจคเจพเจฐ เจตเจฟเฉฑเจš เจญเฉ‡เจœเจฟเจ† เจœเจพเจตเฉ‡เจ—เจพ, เจœเฉ‡เจ•เจฐ เจ‡เจน เจชเฉเจฐเจฎเจพเจฃเจฟเจ•เจคเจพ เจตเจพเจฒเจพ เจชเฉˆเจ•เฉ‡เจŸ เจจเจนเฉ€เจ‚ เจนเฉˆ, เจชเจฐ เจ†เจ–เจฐเฉ€ เจฏเจพเจฆ เจ•เฉ€เจคเฉ‡ เจ†เจˆเจชเฉ€ เจ…เจคเฉ‡ เจ•เจฒเจพเจ‡เฉฐเจŸ เจชเฉ‹เจฐเจŸ เจคเฉ‹เจ‚, เจ‡เจธเจจเฉ‚เฉฐ เจœเจพเจ‚ เจคเจพเจ‚ เจชเจพเจธ เจ•เฉ€เจคเจพ เจœเจพ เจธเจ•เจฆเจพ เจนเฉˆเฅค เจšเจพเจฒเฉ‚ เจœเจพเจ‚ เจฐเฉฑเจฆ เจ•เฉ€เจคเจพ เจ—เจฟเจ†เฅค เจœเฉ‡เจ•เจฐ เจ‡เฉฑเจ• เจชเฉเจฐเจฎเจพเจฃเจฟเจค เจชเฉˆเจ•เฉ‡เจŸ เจ‡เฉฑเจ• เจจเจตเฉ‡เจ‚ IP เจ…เจคเฉ‡ เจชเฉ‹เจฐเจŸ เจคเฉ‹เจ‚ เจ†เจ‰เจ‚เจฆเจพ เจนเฉˆ, เจคเจพเจ‚ เจธเฉเจฐเฉฐเจ— เจจเฉ‚เฉฐ เจ‰เจนเจจเจพเจ‚ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจจ เจฒเจˆ เจฎเฉเฉœ เจธเฉฐเจฐเจšเจฟเจค เจ•เฉ€เจคเจพ เจœเจพเจ‚เจฆเจพ เจนเฉˆเฅค

NAT เจจเจพเจฒ เจ•เฉฐเจฎ เจ•เจฐเจฆเฉ‡ เจธเจฎเฉ‡เจ‚ เจ†เจฎ IPIP-over-FOU เจตเจฟเฉฑเจš เจ‡เฉฑเจ• เจนเฉ‹เจฐ เจธเจฎเฉฑเจธเจฟเจ† เจนเฉเฉฐเจฆเฉ€ เจนเฉˆ - เจ‡เฉฑเจ•เฉ‹ IP เจจเจพเจฒ UDP เจตเจฟเฉฑเจš เจธเจผเจพเจฎเจฒ เจฆเฉ‹ IPIP เจธเฉเจฐเฉฐเจ—เจพเจ‚ เจจเฉ‚เฉฐ เจฌเจฃเจพเจ‰เจฃเจพ เจ…เจธเฉฐเจญเจต เจนเฉˆ, เจ•เจฟเจ‰เจ‚เจ•เจฟ FOU เจ…เจคเฉ‡ IPIP เจฎเฉ‹เจกเฉ€เจŠเจฒ เจ‡เฉฑเจ• เจฆเฉ‚เจœเฉ‡ เจคเฉ‹เจ‚ เจ•เจพเจซเจผเฉ€ เจ…เจฒเฉฑเจ— เจนเจจเฅค เจ‰เจน. เจ‡เฉฑเจ•เฉ‹ เจœเจจเจคเจ• IP เจฆเฉ‡ เจชเจฟเฉฑเจ›เฉ‡ เจ—เจพเจนเจ•เจพเจ‚ เจฆเจพ เจ‡เฉฑเจ• เจœเฉ‹เฉœเจพ เจ‡เจธ เจคเจฐเฉ€เจ•เฉ‡ เจจเจพเจฒ เจ‡เฉฑเจ•เฉ‹ เจธเจฐเจตเจฐ เจจเจพเจฒ เจ•เจจเฉˆเจ•เจŸ เจ•เจฐเจจ เจฆเฉ‡ เจฏเฉ‹เจ— เจจเจนเฉ€เจ‚ เจนเฉ‹เจตเฉ‡เจ—เจพเฅค เจญเจตเจฟเฉฑเจ– เจตเจฟเฉฑเจš, เจธเฉฐเจญเจต เจคเฉŒเจฐ 'เจคเฉ‡, เจ‡เจธ เจจเฉ‚เฉฐ เจ•เจฐเจจเจฒ เจชเฉฑเจงเจฐ 'เจคเฉ‡ เจนเฉฑเจฒ เจ•เฉ€เจคเจพ เจœเจพเจตเฉ‡เจ—เจพ, เจชเจฐ เจ‡เจน เจจเจฟเจธเจผเจšเจฟเจค เจจเจนเฉ€เจ‚ เจนเฉˆเฅค เจ‡เจธ เจฆเฉŒเจฐเจพเจจ, NAT เจธเจฎเฉฑเจธเจฟเจ†เจตเจพเจ‚ เจจเฉ‚เฉฐ NAT เจฆเฉเจ†เจฐเจพ เจนเฉฑเจฒ เจ•เฉ€เจคเจพ เจœเจพ เจธเจ•เจฆเจพ เจนเฉˆ - เจœเฉ‡เจ•เจฐ เจ…เจœเจฟเจนเจพ เจนเฉเฉฐเจฆเจพ เจนเฉˆ เจ•เจฟ IP เจชเจคเจฟเจ†เจ‚ เจฆเจพ เจ‡เฉฑเจ• เจœเฉ‹เฉœเจพ เจชเจนเจฟเจฒเจพเจ‚ เจนเฉ€ เจ•เจฟเจธเฉ‡ เจนเฉ‹เจฐ เจธเฉเจฐเฉฐเจ— เจฆเฉเจ†เจฐเจพ เจ•เจฌเจœเจผเจพ เจ•เฉ€เจคเจพ เจนเฉ‹เจ‡เจ† เจนเฉˆ, เจคเจพเจ‚ ipipou เจœเจจเจคเจ• เจคเฉ‹เจ‚ NAT เจจเฉ‚เฉฐ เจ‡เฉฑเจ• เจตเจฟเจ•เจฒเจชเจ• เจชเฉเจฐเจพเจˆเจตเฉ‡เจŸ IP, เจตเฉ‹เจ‡เจฒเจพ เจตเจฟเฉฑเจš เจ•เจฐเฉ‡เจ—เจพ! - เจคเฉเจธเฉ€เจ‚ เจชเฉ‹เจฐเจŸเจพเจ‚ เจฆเฉ‡ เจ–เจคเจฎ เจนเฉ‹เจฃ เจคเฉฑเจ• เจธเฉเจฐเฉฐเจ— เจฌเจฃเจพ เจธเจ•เจฆเฉ‡ เจนเฉ‹เฅค

เจ•เจฟเจ‰เจ‚เจ•เจฟ เจ•เฉเจจเฉˆเจ•เจธเจผเจจ เจตเจฟเฉฑเจš เจธเจพเจฐเฉ‡ เจชเฉˆเจ•เฉ‡เจŸ เจนเจธเจคเจพเจ–เจฐเจฟเจค เจจเจนเฉ€เจ‚ เจนเฉเฉฐเจฆเฉ‡ เจนเจจ, เจซเจฟเจฐ เจ‡เจน เจธเจงเจพเจฐเจจ เจธเฉเจฐเฉฑเจ–เจฟเจ† MITM เจฒเจˆ เจ•เจฎเจœเจผเฉ‹เจฐ เจนเฉˆ, เจ‡เจธ เจฒเจˆ เจœเฉ‡เจ•เจฐ เจ—เจพเจนเจ• เจ…เจคเฉ‡ เจธเจฐเจตเจฐ เจฆเฉ‡ เจตเจฟเจšเจ•เจพเจฐ เจฎเจพเจฐเจ— 'เจคเฉ‡ เจ•เฉ‹เจˆ เจ–เจฒเจจเจพเจ‡เจ• เจฒเฉเจ•เจฟเจ† เจนเฉ‹เจ‡เจ† เจนเฉˆ เจœเฉ‹ เจŸเฉเจฐเฉˆเจซเจฟเจ• เจจเฉ‚เฉฐ เจธเฉเจฃ เจธเจ•เจฆเจพ เจนเฉˆ เจ…เจคเฉ‡ เจ‡เจธเจจเฉ‚เฉฐ เจนเฉ‡เจฐเจพเจซเฉ‡เจฐเฉ€ เจ•เจฐ เจธเจ•เจฆเจพ เจนเฉˆ, เจคเจพเจ‚ เจ‰เจน เจชเฉเจฐเจฎเจพเจฃเจฟเจค เจชเฉˆเจ•เฉ‡เจŸเจพเจ‚ เจจเฉ‚เฉฐ เจฐเฉ€เจกเจพเจ‡เจฐเฉˆเจ•เจŸ เจ•เจฐ เจธเจ•เจฆเจพ เจนเฉˆเฅค เจ‡เฉฑเจ• เจนเฉ‹เจฐ เจชเจคเจพ เจ…เจคเฉ‡ เจ‡เฉฑเจ• เจ…เจตเจฟเจธเจผเจตเจพเจธเจฏเฉ‹เจ— เจฎเฉ‡เจœเจผเจฌเจพเจจ เจคเฉ‹เจ‚ เจ‡เฉฑเจ• เจธเฉเจฐเฉฐเจ— เจฌเจฃเจพเจ“เฅค

เจœเฉ‡ เจ•เจฟเจธเฉ‡ เจ•เฉ‹เจฒ เจ‡เจธ เจฌเจพเจฐเฉ‡ เจตเจฟเจšเจพเจฐ เจนเจจ เจ•เจฟ เจ‡เจธ เจจเฉ‚เฉฐ เจ•เจฟเจตเฉ‡เจ‚ เจ เฉ€เจ• เจ•เจฐเจจเจพ เจนเฉˆ, เจœเจฆเฉ‹เจ‚ เจ•เจฟ เจฌเจนเฉเจค เจธเจพเจฐเฉ‡ เจŸเฉเจฐเฉˆเจซเจฟเจ• เจจเฉ‚เฉฐ เจฎเฉเฉฑเจ– เจตเจฟเฉฑเจš เจ›เฉฑเจกเจฃเจพ เจนเฉˆ, เจคเจพเจ‚ เจฌเฉ‹เจฒเจฃ เจคเฉ‹เจ‚ เจธเฉฐเจ•เฉ‹เจš เจจเจพ เจ•เจฐเฉ‹เฅค

เจคเจฐเฉ€เจ•เฉ‡ เจจเจพเจฒ, UDP เจตเจฟเฉฑเจš encapsulation เจจเฉ‡ เจ†เจชเจฃเฉ‡ เจ†เจช เจจเฉ‚เฉฐ เจฌเจนเฉเจค เจตเจงเฉ€เจ† เจขเฉฐเจ— เจจเจพเจฒ เจธเจพเจฌเจค เจ•เฉ€เจคเจพ เจนเฉˆ. IP เจ‰เฉฑเจคเฉ‡ encapsulation เจฆเฉ€ เจคเฉเจฒเจจเจพ เจตเจฟเฉฑเจš, UDP เจธเจฟเจฐเจฒเฉ‡เจ– เจฆเฉ‡ เจตเจพเจงเฉ‚ เจ“เจตเจฐเจนเฉˆเฉฑเจก เจฆเฉ‡ เจฌเจพเจตเจœเฉ‚เจฆ เจ‡เจน เจฌเจนเฉเจค เจœเจผเจฟเจ†เจฆเจพ เจธเจฅเจฟเจฐ เจ…เจคเฉ‡ เจ…เจ•เจธเจฐ เจคเฉ‡เจœเจผ เจนเฉเฉฐเจฆเจพ เจนเฉˆเฅค เจ‡เจน เจ‡เจธ เจคเฉฑเจฅ เจฆเฉ‡ เจ•เจพเจฐเจจ เจนเฉˆ เจ•เจฟ เจ‡เฉฐเจŸเจฐเจจเฉˆเจŸ 'เจคเฉ‡ เจœเจผเจฟเจ†เจฆเจพเจคเจฐ เจนเฉ‹เจธเจŸ เจธเจฟเจฐเจซ เจคเจฟเฉฐเจจ เจธเจญ เจคเฉ‹เจ‚ เจชเฉเจฐเจธเจฟเฉฑเจง เจชเฉเจฐเฉ‹เจŸเฉ‹เจ•เฉ‹เจฒเจพเจ‚ เจจเจพเจฒ เจตเจงเฉ€เจ† เจ•เฉฐเจฎ เจ•เจฐเจฆเฉ‡ เจนเจจ: TCP, UDP, ICMPเฅค เจ เฉ‹เจธ เจนเจฟเฉฑเจธเจพ เจฌเจพเจ•เฉ€ เจธเจญ เจ•เฉเจ เจจเฉ‚เฉฐ เจชเฉ‚เจฐเฉ€ เจคเจฐเฉเจนเจพเจ‚ เจฐเฉฑเจฆ เจ•เจฐ เจธเจ•เจฆเจพ เจนเฉˆ, เจœเจพเจ‚ เจ‡เจธเจจเฉ‚เฉฐ เจนเฉ‹เจฐ เจนเฉŒเจฒเฉ€-เจนเฉŒเจฒเฉ€ เจชเฉเจฐเจ•เจฟเจฐเจฟเจ† เจ•เจฐ เจธเจ•เจฆเจพ เจนเฉˆ, เจ•เจฟเจ‰เจ‚เจ•เจฟ เจ‡เจน เจธเจฟเจฐเจซ เจ‡เจนเจจเจพเจ‚ เจคเจฟเฉฐเจจเจพเจ‚ เจฒเจˆ เจ…เจจเฉเจ•เฉ‚เจฒเจฟเจค เจนเฉˆเฅค

เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ, เจ‡เจธ เจฒเจˆ เจ•เจตเจฟเฉฑเจ•, เจœเจฟเจธ 'เจคเฉ‡ HTTP/3 เจ†เจงเจพเจฐเจฟเจค เจนเฉˆ, เจจเฉ‚เฉฐ UDP เจฆเฉ‡ เจธเจฟเจ–เจฐ 'เจคเฉ‡ เจฌเจฃเจพเจ‡เจ† เจ—เจฟเจ† เจธเฉ€, เจจเจพ เจ•เจฟ IP เจฆเฉ‡ เจธเจฟเจ–เจฐ 'เจคเฉ‡เฅค

เจ–เฉˆเจฐ, เจ•เจพเจซเจผเฉ€ เจธเจผเจฌเจฆ, เจ‡เจน เจฆเฉ‡เจ–เจฃ เจฆเจพ เจธเจฎเจพเจ‚ เจนเฉˆ เจ•เจฟ เจ‡เจน "เจ…เจธเจฒ เจธเฉฐเจธเจพเจฐ" เจตเจฟเฉฑเจš เจ•เจฟเจตเฉ‡เจ‚ เจ•เฉฐเจฎ เจ•เจฐเจฆเจพ เจนเฉˆเฅค

เจฒเฉœเจพเจˆ

เจ…เจธเจฒ เจธเฉฐเจธเจพเจฐ เจฆเฉ€ เจจเจ•เจฒ เจ•เจฐเจจ เจฒเจˆ เจตเจฐเจคเจฟเจ† เจœเจพเจ‚เจฆเจพ เจนเฉˆ iperf3. เจนเจ•เฉ€เจ•เจค เจจเจพเจฒ เจจเฉ‡เฉœเจคเจพ เจฆเฉ€ เจกเจฟเจ—เจฐเฉ€ เจฆเฉ‡ เจธเฉฐเจฆเจฐเจญ เจตเจฟเฉฑเจš, เจ‡เจน เจฎเจพเจ‡เจจเจ•เจฐเจพเจซเจŸ เจตเจฟเฉฑเจš เจ…เจธเจฒ เจธเฉฐเจธเจพเจฐ เจฆเฉ€ เจจเจ•เจฒ เจ•เจฐเจจ เจฆเฉ‡ เจฌเจฐเจพเจฌเจฐ เจนเฉˆ, เจชเจฐ เจนเฉเจฃ เจฒเจˆ เจ‡เจน เจ•เจฐเฉ‡เจ—เจพ.

เจฎเฉเจ•เจพเจฌเจฒเฉ‡ เจตเจฟเฉฑเจš เจญเจพเจ— เจฒเฉˆเจฃ เจตเจพเจฒเฉ‡:

  • เจฎเฉเฉฑเจ– เจšเฉˆเจจเจฒ เจฆเจพ เจนเจตเจพเจฒเจพ
  • เจ‡เจธ เจฒเฉ‡เจ– เจฆเจพ เจจเจพเจ‡เจ• ipipou เจนเฉˆ
  • เจชเฉเจฐเจฎเจพเจฃเจฟเจ•เจคเจพ เจฆเฉ‡ เจจเจพเจฒ OpenVPN เจชเจฐ เจ•เฉ‹เจˆ เจเจจเจ•เฉเจฐเจฟเจชเจธเจผเจจ เจจเจนเฉ€เจ‚
  • เจ“เจชเจจเจตเฉ€เจชเฉ€เจเจจ เจ†เจฒ-เจ‡เจจเจ•เจฒเฉ‚เจธเจฟเจต เจฎเฉ‹เจก เจตเจฟเฉฑเจš
  • PresharedKey เจคเฉ‹เจ‚ เจฌเจฟเจจเจพเจ‚ เจตเจพเจ‡เจฐเจ—เจพเจฐเจก, MTU=1440 เจฆเฉ‡ เจจเจพเจฒ (เจธเจฟเจฐเจซเจผ IPv4 เจคเฉ‹เจ‚)

เจ—เฉ€เจ•เจธ เจฒเจˆ เจคเจ•เจจเฉ€เจ•เฉ€ เจกเฉ‡เจŸเจพ
เจฎเฉˆเจŸเฉเจฐเจฟเจ•เจธ เจจเฉ‚เฉฐ เจนเฉ‡เจ  เจฒเจฟเจ–เฉ€เจ†เจ‚ เจ•เจฎเจพเจ‚เจกเจพเจ‚ เจจเจพเจฒ เจฒเจฟเจ† เจœเจพเจ‚เจฆเจพ เจนเฉˆ:

เจ—เจพเจนเจ• 'เจคเฉ‡:

UDP

CPULOG=NAME.udp.cpu.log; sar 10 6 >"$CPULOG" & iperf3 -c SERVER_IP -4 -t 60 -f m -i 10 -B LOCAL_IP -P 2 -u -b 12M; tail -1 "$CPULOG"
# ะ“ะดะต "-b 12M" ัั‚ะพ ะฟั€ะพะฟัƒัะบะฝะฐั ัะฟะพัะพะฑะฝะพัั‚ัŒ ะพัะฝะพะฒะฝะพะณะพ ะบะฐะฝะฐะปะฐ, ะดะตะปั‘ะฝะฝะฐั ะฝะฐ ั‡ะธัะปะพ ะฟะพั‚ะพะบะพะฒ "-P", ั‡ั‚ะพะฑั‹ ะปะธัˆะฝะธะต ะฟะฐะบะตั‚ั‹ ะฝะต ะฟะปะพะดะธั‚ัŒ ะธ ะฝะต ะฟะพั€ั‚ะธั‚ัŒ ะฟั€ะพะธะทะฒะพะดะธั‚ะตะปัŒะฝะพัั‚ัŒ.

TCP

CPULOG=NAME.tcp.cpu.log; sar 10 6 >"$CPULOG" & iperf3 -c SERVER_IP -4 -t 60 -f m -i 10 -B LOCAL_IP -P 2; tail -1 "$CPULOG"

ICMP เจฒเฉ‡เจŸเฉˆเจ‚เจธเฉ€

ping -c 10 SERVER_IP | tail -1

เจธเจฐเจตเจฐ 'เจคเฉ‡ (เจ•เจฒเจพเจ‡เจŸ เจจเจพเจฒ เจ‡เฉฑเจ•เฉ‹ เจธเจฎเฉ‡เจ‚ เจšเฉฑเจฒเจฆเจพ เจนเฉˆ):

UDP

CPULOG=NAME.udp.cpu.log; sar 10 6 >"$CPULOG" & iperf3 -s -i 10 -f m -1; tail -1 "$CPULOG"

TCP

CPULOG=NAME.tcp.cpu.log; sar 10 6 >"$CPULOG" & iperf3 -s -i 10 -f m -1; tail -1 "$CPULOG"

เจธเฉเจฐเฉฐเจ— เจธเฉฐเจฐเจšเจจเจพ

ipipou
เจธเจฐเจตเจฐ
/etc/ipipou/server.conf:

server
number 0
fou-dev eth0
fou-local-port 10000
tunl-ip 172.28.0.0
auth-remote-pubkey-b64 eQYNhD/Xwl6Zaq+z3QXDzNI77x8CEKqY1n5kt9bKeEI=
auth-secret topsecret
auth-lifetime 3600
reply-on-auth-ok
verb 3

systemctl start ipipou@server

เจ—เจพเจนเจ•
/etc/ipipou/client.conf:

client
number 0
fou-local @eth0
fou-remote SERVER_IP:10000
tunl-ip 172.28.0.1
# pubkey of auth-key-b64: eQYNhD/Xwl6Zaq+z3QXDzNI77x8CEKqY1n5kt9bKeEI=
auth-key-b64 RuBZkT23na2Q4QH1xfmZCfRgSgPt5s362UPAFbecTso=
auth-secret topsecret
keepalive 27
verb 3

systemctl start ipipou@client

openvpn (เจ•เฉ‹เจˆ เจเจจเจ•เฉเจฐเจฟเจชเจธเจผเจจ เจจเจนเฉ€เจ‚, เจชเฉเจฐเจฎเจพเจฃเจฟเจ•เจคเจพ เจฆเฉ‡ เจจเจพเจฒ)
เจธเจฐเจตเจฐ

openvpn --genkey --secret ovpn.key  # ะ—ะฐั‚ะตะผ ะฝะฐะดะพ ะฟะตั€ะตะดะฐั‚ัŒ ovpn.key ะบะปะธะตะฝั‚ัƒ
openvpn --dev tun1 --local SERVER_IP --port 2000 --ifconfig 172.16.17.1 172.16.17.2 --cipher none --auth SHA1 --ncp-disable --secret ovpn.key

เจ—เจพเจนเจ•

openvpn --dev tun1 --local LOCAL_IP --remote SERVER_IP --port 2000 --ifconfig 172.16.17.2 172.16.17.1 --cipher none --auth SHA1 --ncp-disable --secret ovpn.key

เจ“เจชเจจเจตเฉ€เจชเฉ€เจเจจ (เจเจจเจ•เฉเจฐเจฟเจชเจธเจผเจจ, เจชเฉเจฐเจฎเจพเจฃเจฟเจ•เจคเจพ เจฆเฉ‡ เจจเจพเจฒ, UDP เจฆเฉเจ†เจฐเจพ, เจ‰เจฎเฉ€เจฆ เจ…เจจเฉเจธเจพเจฐ เจธเจญ เจ•เฉเจ)
เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจ•เฉ‡ เจธเฉฐเจฐเจšเจฟเจค เจ•เฉ€เจคเจพ เจ—เจฟเจ† openvpn-เจชเฉเจฐเจฌเฉฐเจง เจ•เจฐเฉ‹

เจตเจพเจ‡เจฐเจ—เจพเจฐเจก
เจธเจฐเจตเจฐ
/etc/wireguard/server.conf:

[Interface]
Address=172.31.192.1/18
ListenPort=51820
PrivateKey=aMAG31yjt85zsVC5hn5jMskuFdF8C/LFSRYnhRGSKUQ=
MTU=1440

[Peer]
PublicKey=LyhhEIjVQPVmr/sJNdSRqTjxibsfDZ15sDuhvAQ3hVM=
AllowedIPs=172.31.192.2/32

systemctl start wg-quick@server

เจ—เจพเจนเจ•
/etc/wireguard/client.conf:

[Interface]
Address=172.31.192.2/18
PrivateKey=uCluH7q2Hip5lLRSsVHc38nGKUGpZIUwGO/7k+6Ye3I=
MTU=1440

[Peer]
PublicKey=DjJRmGvhl6DWuSf1fldxNRBvqa701c0Sc7OpRr4gPXk=
AllowedIPs=172.31.192.1/32
Endpoint=SERVER_IP:51820

systemctl start wg-quick@client

ะ ะตะทัƒะปัŒั‚ะฐั‚ั‹

เจ—เจฟเฉฑเจฒเฉ‡ เจฌเจฆเจธเฉ‚เจฐเจค เจšเจฟเฉฐเจจเฉเจน
เจธเจฐเจตเจฐ CPU เจฒเฉ‹เจก เจฌเจนเฉเจค เจธเฉฐเจ•เฉ‡เจคเจ• เจจเจนเฉ€เจ‚ เจนเฉˆ, เจ•เจฟเจ‰เจ‚เจ•เจฟ... เจ‰เฉฑเจฅเฉ‡ เจ•เจˆ เจนเฉ‹เจฐ เจธเฉ‡เจตเจพเจตเจพเจ‚ เจšเฉฑเจฒ เจฐเจนเฉ€เจ†เจ‚ เจนเจจ, เจ•เจˆ เจตเจพเจฐ เจ‰เจน เจธเจฐเฉ‹เจคเจพเจ‚ เจจเฉ‚เฉฐ เจ–เจพ เจœเจพเจ‚เจฆเฉ€เจ†เจ‚ เจนเจจ:

proto bandwidth[Mbps] CPU_idle_client[%] CPU_idle_server[%]
# 20 Mbps ะบะฐะฝะฐะป ั ะผะธะบั€ะพะบะพะผะฟัŒัŽั‚ะตั€ะฐ (4 core) ะดะพ VPS (1 core) ั‡ะตั€ะตะท ะั‚ะปะฐะฝั‚ะธะบัƒ
# pure
UDP 20.4      99.80 93.34
TCP 19.2      99.67 96.68
ICMP latency min/avg/max/mdev = 198.838/198.997/199.360/0.372 ms
# ipipou
UDP 19.8      98.45 99.47
TCP 18.8      99.56 96.75
ICMP latency min/avg/max/mdev = 199.562/208.919/220.222/7.905 ms
# openvpn0 (auth only, no encryption)
UDP 19.3      99.89 72.90
TCP 16.1      95.95 88.46
ICMP latency min/avg/max/mdev = 191.631/193.538/198.724/2.520 ms
# openvpn (full encryption, auth, etc)
UDP 19.6      99.75 72.35
TCP 17.0      94.47 87.99
ICMP latency min/avg/max/mdev = 202.168/202.377/202.900/0.451 ms
# wireguard
UDP 19.3      91.60 94.78
TCP 17.2      96.76 92.87
ICMP latency min/avg/max/mdev = 217.925/223.601/230.696/3.266 ms

## ะพะบะพะปะพ-1Gbps ะบะฐะฝะฐะป ะผะตะถะดัƒ VPS ะ•ะฒั€ะพะฟั‹ ะธ ะกะจะ (1 core)
# pure
UDP 729      73.40 39.93
TCP 363      96.95 90.40
ICMP latency min/avg/max/mdev = 106.867/106.994/107.126/0.066 ms
# ipipou
UDP 714      63.10 23.53
TCP 431      95.65 64.56
ICMP latency min/avg/max/mdev = 107.444/107.523/107.648/0.058 ms
# openvpn0 (auth only, no encryption)
UDP 193      17.51  1.62
TCP  12      95.45 92.80
ICMP latency min/avg/max/mdev = 107.191/107.334/107.559/0.116 ms
# wireguard
UDP 629      22.26  2.62
TCP 198      77.40 55.98
ICMP latency min/avg/max/mdev = 107.616/107.788/108.038/0.128 ms

20 Mbps เจšเฉˆเจจเจฒ

ipipou: เจธเจฟเจฐเจซเจผ เจ‡เฉฑเจ• เจ…เจจเจ‡เจจเจ•เฉเจฐเจฟเจชเจŸเจก เจธเฉเจฐเฉฐเจ— เจคเฉ‹เจ‚ เจตเฉฑเจง

ipipou: เจธเจฟเจฐเจซเจผ เจ‡เฉฑเจ• เจ…เจจเจ‡เจจเจ•เฉเจฐเจฟเจชเจŸเจก เจธเฉเจฐเฉฐเจ— เจคเฉ‹เจ‚ เจตเฉฑเจง

เจšเฉˆเจจเจฒ เจชเฉเจฐเจคเฉ€ 1 เจ†เจธเจผเจพเจตเจพเจฆเฉ€ Gbps

ipipou: เจธเจฟเจฐเจซเจผ เจ‡เฉฑเจ• เจ…เจจเจ‡เจจเจ•เฉเจฐเจฟเจชเจŸเจก เจธเฉเจฐเฉฐเจ— เจคเฉ‹เจ‚ เจตเฉฑเจง

ipipou: เจธเจฟเจฐเจซเจผ เจ‡เฉฑเจ• เจ…เจจเจ‡เจจเจ•เฉเจฐเจฟเจชเจŸเจก เจธเฉเจฐเฉฐเจ— เจคเฉ‹เจ‚ เจตเฉฑเจง

เจธเจพเจฐเฉ‡ เจฎเจพเจฎเจฒเจฟเจ†เจ‚ เจตเจฟเฉฑเจš, ipipou เจฌเฉ‡เจธ เจšเฉˆเจจเจฒ เจฆเฉ‡ เจชเฉเจฐเจฆเจฐเจธเจผเจจ เจตเจฟเฉฑเจš เจ•เจพเจซเจผเฉ€ เจจเฉ‡เฉœเฉ‡ เจนเฉˆ, เจœเฉ‹ เจ•เจฟ เจฌเจนเฉเจค เจตเจงเฉ€เจ† เจนเฉˆ!

เจ…เจจเจ‡เจจเจ•เฉเจฐเจฟเจชเจŸเจก เจ“เจชเจจเจตเฉ€เจชเฉ€เจเจจ เจธเฉเจฐเฉฐเจ— เจฆเฉ‹เจตเจพเจ‚ เจฎเจพเจฎเจฒเจฟเจ†เจ‚ เจตเจฟเฉฑเจš เจ•เจพเจซเจผเฉ€ เจ…เจœเฉ€เจฌ เจตเจฟเจนเจพเจฐ เจ•เจฐเจฆเฉ€ เจนเฉˆเฅค

เจœเฉ‡ เจ•เฉ‹เจˆ เจ‡เจธ เจฆเฉ€ เจœเจพเจ‚เจš เจ•เจฐเจจ เจœเจพ เจฐเจฟเจนเจพ เจนเฉˆ, เจคเจพเจ‚ เจซเฉ€เจกเจฌเฉˆเจ• เจธเฉเจฃเจจเจพ เจฆเจฟเจฒเจšเจธเจช เจนเฉ‹เจตเฉ‡เจ—เจพ.

IPv6 เจ…เจคเฉ‡ NetPrickle เจธเจพเจกเฉ‡ เจจเจพเจฒ เจนเฉ‹ เจธเจ•เจฆเฉ‡ เจนเจจ!

เจธเจฐเฉ‹เจค: www.habr.com

เจ‡เฉฑเจ• เจŸเจฟเฉฑเจชเจฃเฉ€ เจœเฉ‹เฉœเฉ‹