ipipou: āĻļ⧁āϧ⧁āĻŽāĻžāĻ¤ā§āϰ āĻāĻ•āϟāĻŋ āĻāύāĻ•ā§āϰāĻŋāĻĒā§āϟ āĻ•āϰāĻž āϟāĻžāύ⧇āϞ⧇āϰ āĻšā§‡āϝāĻŧ⧇āĻ“ āĻŦ⧇āĻļāĻŋ āĻ•āĻŋāϛ⧁

āφāĻŽāϰāĻž IPv6 āĻāϰ āψāĻļā§āĻŦāϰāϕ⧇ āĻ•āĻŋ āĻŦāϞāĻ›āĻŋ?

ipipou: āĻļ⧁āϧ⧁āĻŽāĻžāĻ¤ā§āϰ āĻāĻ•āϟāĻŋ āĻāύāĻ•ā§āϰāĻŋāĻĒā§āϟ āĻ•āϰāĻž āϟāĻžāύ⧇āϞ⧇āϰ āĻšā§‡āϝāĻŧ⧇āĻ“ āĻŦ⧇āĻļāĻŋ āĻ•āĻŋāϛ⧁
āĻāϟāĻž āĻ āĻŋāĻ•, āφāĻŽāϰāĻž āφāϜ āĻāύāĻ•ā§āϰāĻŋāĻĒāĻļāύ⧇āϰ āĻĻ⧇āĻŦāϤāĻžāϕ⧇āĻ“ āĻāĻ•āχ āĻ•āĻĨāĻž āĻŦāϞāĻŦāĨ¤

āĻāĻ–āĻžāύ⧇ āφāĻŽāϰāĻž āĻāĻ•āϟāĻŋ āĻāύāĻ•ā§āϰāĻŋāĻĒā§āϟ āĻ•āϰāĻž IPv4 āϟāĻžāύ⧇āϞ āϏāĻŽā§āĻĒāĻ°ā§āϕ⧇ āĻ•āĻĨāĻž āĻŦāϞāĻŦ, āϤāĻŦ⧇ āĻāĻ•āϟāĻŋ "āωāĻˇā§āĻŖ āĻŦāĻžāϤāĻŋ" āϏāĻŽā§āĻĒāĻ°ā§āϕ⧇ āύāϝāĻŧ, āĻāĻ•āϟāĻŋ āφāϧ⧁āύāĻŋāĻ• "LED" āϏāĻŽā§āĻĒāĻ°ā§āϕ⧇ āĻ•āĻĨāĻž āĻŦāϞāĻŦ⧎ āĻāĻŦāĻ‚ āĻāĻ–āĻžāύ⧇ āĻ•āĻžāρāϚāĻž āϏāϕ⧇āϟāϗ⧁āϞāĻŋāĻ“ āĻĢā§āĻ˛ā§āϝāĻžāĻļ āĻ•āϰāϛ⧇, āĻāĻŦāĻ‚ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻ•āĻžāϰ⧀āϰ āϜāĻžāϝāĻŧāĻ—āĻžāϝāĻŧ āĻĒā§āϝāĻžāϕ⧇āϟāϗ⧁āϞāĻŋ āύāĻŋāϝāĻŧ⧇ āĻ•āĻžāϜ āϚāϞāϛ⧇āĨ¤

āĻĒā§āϰāϤāĻŋāϟāĻŋ āĻ¸ā§āĻŦāĻžāĻĻ āĻāĻŦāĻ‚ āϰāϙ⧇āϰ āϜāĻ¨ā§āϝ āĻāύ āϟāĻžāύ⧇āϞāĻŋāĻ‚ āĻĒā§āϰ⧋āĻŸā§‹āĻ•āϞ āϰāϝāĻŧ⧇āϛ⧇:

  • āφāĻĄāĻŧāĻŽā§āĻŦāϰāĻĒā§‚āĻ°ā§āĻŖ, āĻĢā§āϝāĻžāĻļāύ⧇āĻŦāϞ, āϝ⧁āĻŦāĻ• WireGuard
  • āĻŦāĻšā§āĻŽā§āĻ–ā§€, āϝ⧇āĻŽāύ āϏ⧁āχāϏ āϛ⧁āϰāĻŋ, āĻ“āĻĒ⧇āύāĻ­āĻŋāĻĒāĻŋāĻāύ āĻāĻŦāĻ‚ āĻāϏāĻāϏāĻāχāϚ
  • āĻĒ⧁āϰāĻžāύ⧋ āĻāĻŦāĻ‚ āĻ–āĻžāϰāĻžāĻĒ āϜāĻŋāφāϰāχ āύāϝāĻŧ
  • āϏāĻŦāĻšā§‡āϝāĻŧ⧇ āϏāĻšāϜ, āĻĻā§āϰ⧁āϤ, āϏāĻŽā§āĻĒā§‚āĻ°ā§āĻŖāϰ⧂āĻĒ⧇ āφāύāĻ•ā§āϰāĻŋāĻĒā§āϟ āĻ•āϰāĻž IPIP
  • āϏāĻ•ā§āϰāĻŋāϝāĻŧāĻ­āĻžāĻŦ⧇ āωāĻ¨ā§āύāϝāĻŧāύāĻļā§€āϞ āĻœā§‡āύ⧇āĻ­
  • āĻ…āύ⧇āϕ⧇.

āĻ•āĻŋāĻ¨ā§āϤ⧁ āφāĻŽāĻŋ āĻāĻ•āϜāύ āĻĒā§āϰ⧋āĻ—ā§āϰāĻžāĻŽāĻžāϰ, āϤāĻžāχ āφāĻŽāĻŋ āĻļ⧁āϧ⧁āĻŽāĻžāĻ¤ā§āϰ āĻāĻ•āϟāĻŋ āĻ­āĻ—ā§āύāĻžāĻ‚āĻļ āĻĻā§āĻŦāĻžāϰāĻž N āĻŦ⧃āĻĻā§āϧāĻŋ āĻ•āϰāĻŦ āĻāĻŦāĻ‚ āĻĒā§āϰāĻ•ā§ƒāϤ āĻĒā§āϰ⧋āĻŸā§‹āĻ•āϞ⧇āϰ āĻŦāĻŋāĻ•āĻžāĻļ āĻ•āĻŽāĻžāĻ°ā§āĻ¸ā§āϝāĻžāĻ¨ā§āϟ āĻĄā§‡āϭ⧇āϞāĻĒāĻžāϰāĻĻ⧇āϰ āĻ•āĻžāϛ⧇ āϛ⧇āĻĄāĻŧ⧇ āĻĻ⧇āĻŦāĨ¤

āĻāĻ• āĻ…āύāĻžāĻ—āϤ⧇ āĻĒā§āϰāĻ•āĻ˛ā§āĻĒāφāĻŽāĻŋ āĻāĻ–āύ āϝāĻž āĻ•āϰāĻ›āĻŋ āϤāĻž āĻšāϞ āĻŦāĻžāχāϰ⧇ āĻĨ⧇āϕ⧇ NAT āĻāϰ āĻĒāĻŋāĻ›āύ⧇ āĻšā§‹āĻ¸ā§āϟāĻĻ⧇āϰ āĻ•āĻžāϛ⧇ āĻĒ⧌āρāĻ›āĻžāύ⧋āĨ¤ āĻāϟāĻŋāϰ āϜāĻ¨ā§āϝ āĻĒā§āϰāĻžāĻĒā§āϤāĻŦāϝāĻŧāĻ¸ā§āĻ•āĻĻ⧇āϰ āĻ•ā§āϰāĻŋāĻĒā§āĻŸā§‹āĻ—ā§āϰāĻžāĻĢāĻŋ āϏāĻš āĻĒā§āϰ⧋āĻŸā§‹āĻ•āϞ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇, āφāĻŽāĻŋ āĻāχ āĻ…āύ⧁āĻ­ā§‚āϤāĻŋāϟāĻŋ āύāĻžāĻĄāĻŧāĻžāϤ⧇ āĻĒāĻžāϰāĻŋāύāĻŋ āϝ⧇ āĻāϟāĻŋ āĻāĻ•āϟāĻŋ āĻ•āĻžāĻŽāĻžāύ āĻĨ⧇āϕ⧇ āϚāĻĄāĻŧ⧁āχāϕ⧇ āϗ⧁āϞāĻŋ āĻ•āϰāĻžāϰ āĻŽāϤ⧋āĨ¤ āĻ•āĻžāϰāĻŖ āϟāĻžāύ⧇āϞāϟāĻŋ āĻŦ⧇āĻļāĻŋāϰāĻ­āĻžāĻ— āĻ…āĻ‚āĻļ⧇ āĻļ⧁āϧ⧁āĻŽāĻžāĻ¤ā§āϰ NAT-e-āϤ⧇ āĻ›āĻŋāĻĻā§āϰ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ āĻŦā§āϝāĻŦāĻšā§ƒāϤ āĻšāϝāĻŧ, āĻ…āĻ­ā§āϝāĻ¨ā§āϤāϰ⧀āĻŖ āĻŸā§āĻ°ā§āϝāĻžāĻĢāĻŋāĻ• āϏāĻžāϧāĻžāϰāĻŖāϤ āĻāύāĻ•ā§āϰāĻŋāĻĒā§āϟ āĻ•āϰāĻž āĻšāϝāĻŧ, āĻ•āĻŋāĻ¨ā§āϤ⧁ āϤāĻžāϰāĻž āĻāĻ–āύāĻ“ HTTPS-āĻ āĻĄā§āĻŦ⧇ āϝāĻžāϝāĻŧāĨ¤

āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āύ āϟāĻžāύ⧇āϞāĻŋāĻ‚ āĻĒā§āϰ⧋āĻŸā§‹āĻ•āϞ āύāĻŋāϝāĻŧ⧇ āĻ—āĻŦ⧇āώāĻŖāĻž āĻ•āϰāĻžāϰ āϏāĻŽāϝāĻŧ, āĻ¨ā§āϝ⧂āύāϤāĻŽ āĻ“āĻ­āĻžāϰāĻšā§‡āĻĄā§‡āϰ āĻ•āĻžāϰāϪ⧇ āφāĻŽāĻžāϰ āĻ…āĻ­ā§āϝāĻ¨ā§āϤāϰ⧀āĻŖ āĻĒāĻžāϰāĻĢ⧇āĻ•āĻļāύāĻŋāĻ¸ā§āĻŸā§‡āϰ āĻŽāύ⧋āϝ⧋āĻ— āĻŦāĻžāϰāĻŦāĻžāϰ āφāχāĻĒāĻŋāφāχāĻĒāĻŋ-āϰ āĻĒā§āϰāϤāĻŋ āφāĻ•ā§ƒāĻˇā§āϟ āĻšāϝāĻŧ⧇āĻ›āĻŋāϞāĨ¤ āĻ•āĻŋāĻ¨ā§āϤ⧁ āφāĻŽāĻžāϰ āĻ•āĻžāĻœā§‡āϰ āϜāĻ¨ā§āϝ āĻāϟāĻŋāϰ āĻĻ⧇āĻĄāĻŧ āωāĻ˛ā§āϞ⧇āĻ–āϝ⧋āĻ—ā§āϝ āĻ¤ā§āϰ⧁āϟāĻŋ āϰāϝāĻŧ⧇āϛ⧇:

  • āĻāϟāĻŋ āωāĻ­āϝāĻŧ āĻĻāĻŋāϕ⧇ āĻĒāĻžāĻŦāϞāĻŋāĻ• āφāχāĻĒāĻŋ āĻĒā§āϰāϝāĻŧā§‹āϜāύ,
  • āĻāĻŦāĻ‚ āφāĻĒāύāĻžāϰ āϜāĻ¨ā§āϝ āϕ⧋āύ āĻĒā§āϰāĻŽāĻžāĻŖā§€āĻ•āϰāĻŖ āύ⧇āχāĨ¤

āĻ…āϤāĻāĻŦ, āĻĒāϰāĻŋāĻĒā§‚āĻ°ā§āĻŖāϤāĻžāĻŦāĻžāĻĻā§€āϕ⧇ āĻŽāĻžāĻĨāĻžāϰ āϖ⧁āϞāĻŋāϰ āĻ…āĻ¨ā§āϧāĻ•āĻžāϰ āϕ⧋āϪ⧇ āĻŦāĻž āϝ⧇āĻ–āĻžāύ⧇āχ āϤāĻŋāύāĻŋ āϏ⧇āĻ–āĻžāύ⧇ āĻŦāϏ⧇āύ āϏ⧇āĻ–āĻžāύ⧇ āĻĢāĻŋāϰ⧇ āϚāĻžāϞāĻŋāϤ āĻšāϝāĻŧ⧇āĻ›āĻŋāϞāĨ¤

āĻāĻŦāĻ‚ āϤāĻžāϰāĻĒāϰ āĻāĻ•āĻĻāĻŋāύ, āύāĻŋāĻŦāĻ¨ā§āϧ āĻĒāĻĄāĻŧāĻžāϰ āϏāĻŽāϝāĻŧ āĻ¸ā§āĻĨāĻžāύ⧀āϝāĻŧāĻ­āĻžāĻŦ⧇ āϏāĻŽāĻ°ā§āĻĨāĻŋāϤ āϟāĻžāύ⧇āϞ āϞāĻŋāύāĻžāĻ•ā§āϏ⧇ āφāĻŽāĻŋ FOU (Foo-over-UDP) āϜ⧁āĻĄāĻŧ⧇ āĻāϏ⧇āĻ›āĻŋ, āĻ…āĻ°ā§āĻĨāĻžā§Ž āϝāĻžāχ āĻšā§‹āĻ• āύāĻž āϕ⧇āύ, UDP-āϤ⧇ āĻŽā§‹āĻĄāĻŧāĻžāύ⧋āĨ¤ āĻāĻ–āύ āĻĒāĻ°ā§āϝāĻ¨ā§āϤ, āĻļ⧁āϧ⧁āĻŽāĻžāĻ¤ā§āϰ IPIP āĻāĻŦāĻ‚ GUE (āĻœā§‡āύāĻžāϰāĻŋāĻ• UDP āĻāύāĻ•ā§āϝāĻžāĻĒāϏ⧁āϞ⧇āĻļāύ) āϏāĻŽāĻ°ā§āĻĨāĻŋāϤāĨ¤

“āĻāχ āϝ⧇ āϏāĻŋāϞāĻ­āĻžāϰ āĻŦ⧁āϞ⧇āϟ! āĻāĻ•āϟāĻŋ āϏāĻžāϧāĻžāϰāĻŖ āφāχāĻĒāĻŋāφāχāĻĒāĻŋ āφāĻŽāĻžāϰ āϜāĻ¨ā§āϝ āϝāĻĨ⧇āĻˇā§āϟāĨ¤" - āφāĻŽāĻŋ āĻ­āĻžāĻŦāĻŋ.

āφāϏāϞ⧇, āĻŦ⧁āϞ⧇āϟāϟāĻŋ āĻĒ⧁āϰ⧋āĻĒ⧁āϰāĻŋ āϰ⧂āĻĒāĻžāϞ⧀ āύāϝāĻŧāĨ¤ UDP-āϤ⧇ āĻāύāĻ•ā§āϝāĻžāĻĒāϏ⧁āϞ⧇āĻļāύ āĻĒā§āϰāĻĨāĻŽ āϏāĻŽāĻ¸ā§āϝāĻžāϰ āϏāĻŽāĻžāϧāĻžāύ āĻ•āϰ⧇ - āφāĻĒāύāĻŋ āĻĒā§‚āĻ°ā§āĻŦ-āĻ¸ā§āĻĨāĻžāĻĒāĻŋāϤ āϏāĻ‚āϝ⧋āĻ— āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āĻŦāĻžāχāϰ⧇ āĻĨ⧇āϕ⧇ NAT-āĻāϰ āĻĒāĻŋāĻ›āύ⧇ āĻĨāĻžāĻ•āĻž āĻ•ā§āϞāĻžāϝāĻŧ⧇āĻ¨ā§āϟāĻĻ⧇āϰ āϏāĻžāĻĨ⧇ āϏāĻ‚āϝ⧋āĻ— āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āύ, āĻ•āĻŋāĻ¨ā§āϤ⧁ āĻāĻ–āĻžāύ⧇ IPIP-āĻāϰ āĻĒāϰāĻŦāĻ°ā§āϤ⧀ āĻ¤ā§āϰ⧁āϟāĻŋāϰ āĻ…āĻ°ā§āϧ⧇āĻ•āϟāĻŋ āύāϤ⧁āύ āφāϞ⧋āϝāĻŧ āĻĢ⧁āĻŸā§‡ āωāϠ⧇āϛ⧇ - āĻāĻ•āϟāĻŋ āĻŦā§āϝāĻ•ā§āϤāĻŋāĻ—āϤ āύ⧇āϟāĻ“āϝāĻŧāĻžāĻ°ā§āĻ• āĻĨ⧇āϕ⧇ āϝ⧇ āϕ⧇āω āĻĻ⧃āĻļā§āϝāĻŽāĻžāύ⧇āϰ āĻĒāĻŋāĻ›āύ⧇ āϞ⧁āĻ•āĻŋāϝāĻŧ⧇ āĻĨāĻžāĻ•āϤ⧇ āĻĒāĻžāϰ⧇ āĻĒāĻžāĻŦāϞāĻŋāĻ• āφāχāĻĒāĻŋ āĻāĻŦāĻ‚ āĻ•ā§āϞāĻžāϝāĻŧ⧇āĻ¨ā§āϟ āĻĒā§‹āĻ°ā§āϟ (āĻŦāĻŋāĻļ⧁āĻĻā§āϧ āφāχāĻĒāĻŋāφāχāĻĒāĻŋāϤ⧇ āĻāχ āϏāĻŽāĻ¸ā§āϝāĻžāϟāĻŋ āĻŦāĻŋāĻĻā§āϝāĻŽāĻžāύ āύ⧇āχ)āĨ¤

āĻāχ āĻĻ⧇āĻĄāĻŧ āϏāĻŽāĻ¸ā§āϝāĻž āϏāĻŽāĻžāϧāĻžāύ⧇āϰ āϜāĻ¨ā§āϝāχ āϜāĻ¨ā§āĻŽ āύ⧇āϝāĻŧ āχāωāϟāĻŋāϞāĻŋāϟāĻŋ ipipou. āĻāϟāĻŋ āĻ•āĻžāĻ°ā§āύ⧇āϞ FOU-āĻāϰ āĻ•ā§āϰāĻŋāϝāĻŧāĻžāĻ•āϞāĻžāĻĒāϕ⧇ āĻŦā§āϝāĻžāĻšāϤ āύāĻž āĻ•āϰ⧇ āĻāĻ•āϟāĻŋ āĻĻā§‚āϰāĻŦāĻ°ā§āϤ⧀ āĻšā§‹āĻ¸ā§āϟāϕ⧇ āĻĒā§āϰāĻŽāĻžāĻŖā§€āĻ•āϰāϪ⧇āϰ āϜāĻ¨ā§āϝ āĻāĻ•āϟāĻŋ āĻŦāĻžāĻĄāĻŧāĻŋāϤ⧇ āϤ⧈āϰāĻŋ āĻĒā§āϰāĻ•ā§āϰāĻŋāϝāĻŧāĻž āĻĒā§āϰāϝāĻŧā§‹āĻ— āĻ•āϰ⧇, āϝāĻž āĻ•āĻžāĻ°ā§āύ⧇āϞ āĻ¸ā§āĻĒ⧇āϏ⧇ āĻĒā§āϝāĻžāϕ⧇āϟāϗ⧁āϞāĻŋ āĻĻā§āϰ⧁āϤ āĻāĻŦāĻ‚ āĻĻāĻ•ā§āώāϤāĻžāϰ āϏāĻžāĻĨ⧇ āĻĒā§āϰāĻ•ā§āϰāĻŋāϝāĻŧāĻž āĻ•āϰāĻŦ⧇āĨ¤

āφāĻŽāϰāĻž āφāĻĒāύāĻžāϰ āĻ¸ā§āĻ•ā§āϰāĻŋāĻĒā§āϟ āĻĒā§āϰāϝāĻŧā§‹āϜāύ āύ⧇āχ!

āĻ āĻŋāĻ• āφāϛ⧇, āφāĻĒāύāĻŋ āϝāĻĻāĻŋ āĻ•ā§āϞāĻžāϝāĻŧ⧇āĻ¨ā§āĻŸā§‡āϰ āĻĒāĻžāĻŦāϞāĻŋāĻ• āĻĒā§‹āĻ°ā§āϟ āĻāĻŦāĻ‚ āφāχāĻĒāĻŋ āϜāĻžāύ⧇āύ (āωāĻĻāĻžāĻšāϰāĻŖāĻ¸ā§āĻŦāϰ⧂āĻĒ, āĻāϰ āĻĒāĻŋāĻ›āύ⧇āϰ āϏāĻŦāĻžāχ āϕ⧋āĻĨāĻžāĻ“ āϝāĻžāϝāĻŧ āύāĻž, NAT āĻĒā§‹āĻ°ā§āϟ 1-in-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 - āĻĒāĻžāĻŦāϞāĻŋāĻ• āφāχāĻĒāĻŋ āϏāĻžāĻ°ā§āĻ­āĻžāϰ
  • 198.51.100.2 - āĻ•ā§āϞāĻžāϝāĻŧ⧇āĻ¨ā§āĻŸā§‡āϰ āĻĒāĻžāĻŦāϞāĻŋāĻ• āφāχāĻĒāĻŋ
  • 192.168.0.2 — eth0 āχāĻ¨ā§āϟāĻžāϰāĻĢ⧇āϏ⧇ āĻ•ā§āϞāĻžāϝāĻŧ⧇āĻ¨ā§āϟ āφāχāĻĒāĻŋ āĻŦāϰāĻžāĻĻā§āĻĻ āĻ•āϰāĻž āĻšāϝāĻŧ⧇āϛ⧇
  • 10001 - FOU āĻāϰ āϜāĻ¨ā§āϝ āĻ¸ā§āĻĨāĻžāύ⧀āϝāĻŧ āĻ•ā§āϞāĻžāϝāĻŧ⧇āĻ¨ā§āϟ āĻĒā§‹āĻ°ā§āϟ
  • 20001 - FOU āĻāϰ āϜāĻ¨ā§āϝ āĻĒāĻžāĻŦāϞāĻŋāĻ• āĻ•ā§āϞāĻžāϝāĻŧ⧇āĻ¨ā§āϟ āĻĒā§‹āĻ°ā§āϟ
  • 10000 — FOU āĻāϰ āϜāĻ¨ā§āϝ āĻĒāĻžāĻŦāϞāĻŋāĻ• āϏāĻžāĻ°ā§āĻ­āĻžāϰ āĻĒā§‹āĻ°ā§āϟ
  • encap-csum — āĻāύāĻ•ā§āϝāĻžāĻĒāϏ⧁āϞ⧇āĻŸā§‡āĻĄ UDP āĻĒā§āϝāĻžāϕ⧇āϟāϗ⧁āϞāĻŋāϤ⧇ āĻāĻ•āϟāĻŋ UDP āĻšā§‡āĻ•āϏāĻžāĻŽ āϝ⧋āĻ— āĻ•āϰāĻžāϰ āĻŦāĻŋāĻ•āĻ˛ā§āĻĒ; āĻĻā§āĻŦāĻžāϰāĻž āĻĒā§āϰāϤāĻŋāĻ¸ā§āĻĨāĻžāĻĒāĻŋāϤ āĻ•āϰāĻž āϝ⧇āϤ⧇ āĻĒāĻžāϰ⧇ noencap-csumāωāĻ˛ā§āϞ⧇āĻ– āĻ•āϰāĻžāϰ āĻŽāϤ⧋ āύāϝāĻŧ, āĻ…āĻ–āĻŖā§āĻĄāϤāĻž āχāϤāĻŋāĻŽāĻ§ā§āϝ⧇āχ āĻŦāĻžāχāϰ⧇āϰ āĻāύāĻ•ā§āϝāĻžāĻĒāϏ⧁āϞ⧇āĻļāύ āĻ¸ā§āϤāϰ āĻĻā§āĻŦāĻžāϰāĻž āύāĻŋāϝāĻŧāĻ¨ā§āĻ¤ā§āϰāĻŋāϤ āĻšāϝāĻŧ (āϝāĻ–āύ āĻĒā§āϝāĻžāϕ⧇āϟāϟāĻŋ āϟāĻžāύ⧇āϞ⧇āϰ āĻ­āĻŋāϤāϰ⧇ āĻĨāĻžāϕ⧇)
  • eth0 — āĻ¸ā§āĻĨāĻžāύ⧀āϝāĻŧ āχāĻ¨ā§āϟāĻžāϰāĻĢ⧇āϏ āϝ⧇āĻ–āĻžāύ⧇ ipip āϟāĻžāύ⧇āϞ āφāĻŦāĻĻā§āϧ āĻšāĻŦ⧇
  • 172.28.0.1 — āĻ•ā§āϞāĻžāϝāĻŧ⧇āĻ¨ā§āϟ āϟāĻžāύ⧇āϞ āχāĻ¨ā§āϟāĻžāϰāĻĢ⧇āϏ⧇āϰ āφāχāĻĒāĻŋ (āĻŦā§āϝāĻ•ā§āϤāĻŋāĻ—āϤ)
  • 172.28.0.0 — āφāχāĻĒāĻŋ āϟāĻžāύ⧇āϞ āϏāĻžāĻ°ā§āĻ­āĻžāϰ āχāĻ¨ā§āϟāĻžāϰāĻĢ⧇āϏ (āĻŦā§āϝāĻ•ā§āϤāĻŋāĻ—āϤ)

āϝāϤāĻ•ā§āώāĻŖ UDP āϏāĻ‚āϝ⧋āĻ—āϟāĻŋ āĻœā§€āĻŦāĻŋāϤ āĻĨāĻžāϕ⧇, āϟāĻžāύ⧇āϞāϟāĻŋ āĻ•āĻžāĻ°ā§āϝāĻ•āϰ⧀ āĻ•ā§āϰāĻŽā§‡ āĻĨāĻžāĻ•āĻŦ⧇, āĻ•āĻŋāĻ¨ā§āϤ⧁ āϝāĻĻāĻŋ āĻāϟāĻŋ āϭ⧇āϙ⧇ āϝāĻžāϝāĻŧ, āφāĻĒāύāĻŋ āĻ­āĻžāĻ—ā§āϝāĻŦāĻžāύ āĻšāĻŦ⧇āύ - āϝāĻĻāĻŋ āĻ•ā§āϞāĻžāϝāĻŧ⧇āĻ¨ā§āĻŸā§‡āϰ āφāχāĻĒāĻŋ: āĻĒā§‹āĻ°ā§āϟ āĻāĻ•āχ āĻĨāĻžāϕ⧇ - āĻāϟāĻŋ āĻŦ⧇āρāĻšā§‡ āĻĨāĻžāĻ•āĻŦ⧇, āϝāĻĻāĻŋ āϤāĻžāϰāĻž āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ āĻšāϝāĻŧ - āĻāϟāĻŋ āϭ⧇āϙ⧇ āϝāĻžāĻŦ⧇āĨ¤

āϏāĻŦāĻ•āĻŋāϛ⧁ āĻĢāĻŋāϰāĻŋāϝāĻŧ⧇ āφāύāĻžāϰ āϏāĻŦāĻšā§‡āϝāĻŧ⧇ āϏāĻšāϜ āωāĻĒāĻžāϝāĻŧ āĻšāϞ āĻ•āĻžāĻ°ā§āύ⧇āϞ āĻŽāĻĄāĻŋāωāϞāϗ⧁āϞāĻŋ āφāύāϞ⧋āĻĄ āĻ•āϰāĻž: modprobe -r fou ipip

āĻĒā§āϰāĻŽāĻžāĻŖā§€āĻ•āϰāϪ⧇āϰ āĻĒā§āϰāϝāĻŧā§‹āϜāύ āύāĻž āĻšāϞ⧇āĻ“, āĻ•ā§āϞāĻžāϝāĻŧ⧇āĻ¨ā§āĻŸā§‡āϰ āϏāĻ°ā§āĻŦāϜāύ⧀āύ āφāχāĻĒāĻŋ āĻāĻŦāĻ‚ āĻĒā§‹āĻ°ā§āϟ āϏāĻŦāϏāĻŽāϝāĻŧ āĻĒāϰāĻŋāϚāĻŋāϤ āĻšāϝāĻŧ āύāĻž āĻāĻŦāĻ‚ āĻĒā§āϰāĻžāϝāĻŧāĻļāχ āĻ…āĻĒā§āϰāĻ¤ā§āϝāĻžāĻļāĻŋāϤ āĻŦāĻž āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύāĻļā§€āϞ (NAT āĻĒā§āϰāĻ•āĻžāϰ⧇āϰ āωāĻĒāϰ āύāĻŋāĻ°ā§āĻ­āϰ āĻ•āϰ⧇)āĨ¤ āĻŦāĻžāĻĻ āĻĻāĻŋāϞ⧇ encap-dport āϏāĻžāĻ°ā§āĻ­āĻžāϰ⧇āϰ āĻĻāĻŋāϕ⧇, āϟāĻžāύ⧇āϞ āĻ•āĻžāϜ āĻ•āϰāĻŦ⧇ āύāĻž, āĻāϟāĻŋ āĻĻā§‚āϰāĻŦāĻ°ā§āϤ⧀ āϏāĻ‚āϝ⧋āĻ— āĻĒā§‹āĻ°ā§āϟ āύāĻŋāϤ⧇ āϝāĻĨ⧇āĻˇā§āϟ āĻ¸ā§āĻŽāĻžāĻ°ā§āϟ āύāϝāĻŧāĨ¤ āĻāχ āĻ•ā§āώ⧇āĻ¤ā§āϰ⧇, ipipouāĻ“ āϏāĻžāĻšāĻžāĻ¯ā§āϝ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇, āĻ…āĻĨāĻŦāĻž WireGuard āĻāĻŦāĻ‚ āĻāϰ āĻŽāϤ⧋ āĻ…āĻ¨ā§āϝāϰāĻž āφāĻĒāύāĻžāϕ⧇ āϏāĻžāĻšāĻžāĻ¯ā§āϝ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āĨ¤

āĻāϟāĻž āĻ•āĻŋāĻ­āĻžāĻŦ⧇ āĻ•āĻžāϜ āĻ•āϰ⧇?

āĻ•ā§āϞāĻžāϝāĻŧ⧇āĻ¨ā§āϟ (āϝāĻž āϏāĻžāϧāĻžāϰāĻŖāϤ NAT āĻāϰ āĻĒāĻŋāĻ›āύ⧇ āĻĨāĻžāϕ⧇) āĻāĻ•āϟāĻŋ āϟāĻžāύ⧇āϞ āĻ–ā§‹āϞ⧇ (āωāĻĒāϰ⧇āϰ āωāĻĻāĻžāĻšāϰāϪ⧇āϰ āĻŽāϤ⧋), āĻāĻŦāĻ‚ āϏāĻžāĻ°ā§āĻ­āĻžāϰ⧇ āĻāĻ•āϟāĻŋ āĻĒā§āϰāĻŽāĻžāĻŖā§€āĻ•āϰāĻŖ āĻĒā§āϝāĻžāϕ⧇āϟ āĻĒāĻžāĻ āĻžāϝāĻŧ āϝāĻžāϤ⧇ āĻāϟāĻŋ āϤāĻžāϰ āĻĒāĻžāĻļ⧇āϰ āϟāĻžāύ⧇āϞāϟāĻŋ āĻ•āύāĻĢāĻŋāĻ—āĻžāϰ āĻ•āϰ⧇āĨ¤ āϏ⧇āϟāĻŋāĻ‚āϏ⧇āϰ āωāĻĒāϰ āύāĻŋāĻ°ā§āĻ­āϰ āĻ•āϰ⧇, āĻāϟāĻŋ āĻāĻ•āϟāĻŋ āĻ–āĻžāϞāĻŋ āĻĒā§āϝāĻžāϕ⧇āϟ āĻšāϤ⧇ āĻĒāĻžāϰ⧇ (āϝ⧇āύ āϏāĻžāĻ°ā§āĻ­āĻžāϰāϟāĻŋ āϏāĻ°ā§āĻŦāϜāύ⧀āύ āφāχāĻĒāĻŋ āĻĻ⧇āĻ–āϤ⧇ āĻĒāĻžāϰ⧇: āϏāĻ‚āϝ⧋āĻ— āĻĒā§‹āĻ°ā§āϟ), āĻ…āĻĨāĻŦāĻž āĻāĻŽāύ āĻĄā§‡āϟāĻž āϝāĻž āĻĻā§āĻŦāĻžāϰāĻž āϏāĻžāĻ°ā§āĻ­āĻžāϰ āĻ•ā§āϞāĻžāϝāĻŧ⧇āĻ¨ā§āϟāϕ⧇ āϏāύāĻžāĻ•ā§āϤ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āĨ¤ āĻĄā§‡āϟāĻž āĻ¸ā§āĻĒāĻˇā§āϟ āĻĒāĻžāĻ ā§āϝ⧇ āĻāĻ•āϟāĻŋ āϏāĻžāϧāĻžāϰāĻŖ āĻĒāĻžāϏāĻĢā§āϰ⧇āϜ āĻšāϤ⧇ āĻĒāĻžāϰ⧇ (āĻāχāϚāϟāĻŋāϟāĻŋāĻĒāĻŋ āĻŦ⧇āϏāĻŋāĻ• āĻĒā§āϰāĻŽāĻžāϪ⧇āϰ āϏāĻžāĻĨ⧇ āϏāĻžāĻĻ⧃āĻļā§āϝāϟāĻŋ āĻŽāύ⧇ āφāϏ⧇) āĻŦāĻž āĻāĻ•āϟāĻŋ āĻŦā§āϝāĻ•ā§āϤāĻŋāĻ—āϤ āϕ⧀ āĻĻāĻŋāϝāĻŧ⧇ āĻ¸ā§āĻŦāĻžāĻ•ā§āώāϰāĻŋāϤ āĻŦāĻŋāĻļ⧇āώāĻ­āĻžāĻŦ⧇ āĻĄāĻŋāϜāĻžāχāύ āĻ•āϰāĻž āĻĄā§‡āϟāĻž āĻšāϤ⧇ āĻĒāĻžāϰ⧇ (āĻāχāϚāϟāĻŋāϟāĻŋāĻĒāĻŋ āĻĄāĻžāχāĻœā§‡āĻ¸ā§āϟ āĻĒā§āϰāĻŽāĻžāϪ⧇āϰ āĻŽāϤ⧋āχ āĻļāĻ•ā§āϤāĻŋāĻļāĻžāϞ⧀, āĻĢāĻžāĻ‚āĻļāύ āĻĻ⧇āϖ⧁āύ client_auth āϕ⧋āĻĄā§‡)āĨ¤

āϏāĻžāĻ°ā§āĻ­āĻžāϰ⧇ (āĻĒāĻžāĻŦāϞāĻŋāĻ• āφāχāĻĒāĻŋ āϏāĻš), āϝāĻ–āύ ipipou āĻļ⧁āϰ⧁ āĻšāϝāĻŧ, āĻāϟāĻŋ āĻāĻ•āϟāĻŋ nfqueue āϏāĻžāϰāĻŋ āĻšā§āϝāĻžāĻ¨ā§āĻĄāϞāĻžāϰ āϤ⧈āϰāĻŋ āĻ•āϰ⧇ āĻāĻŦāĻ‚ āύ⧇āϟāĻĢāĻŋāĻ˛ā§āϟāĻžāϰ āĻ•āύāĻĢāĻŋāĻ—āĻžāϰ āĻ•āϰ⧇ āϝāĻžāϤ⧇ āĻĒā§āϰāϝāĻŧā§‹āϜāύ⧀āϝāĻŧ āĻĒā§āϝāĻžāϕ⧇āϟāϗ⧁āϞāĻŋ āϝ⧇āĻ–āĻžāύ⧇ āĻĒāĻžāĻ āĻžāύ⧋ āωāϚāĻŋāϤ āϏ⧇āĻ–āĻžāύ⧇ āĻĒāĻžāĻ āĻžāύ⧋ āĻšāϝāĻŧ: āĻĒā§āϝāĻžāϕ⧇āϟāϗ⧁āϞāĻŋ nfqueue āϏāĻžāϰāĻŋāϤ⧇ āϏāĻ‚āϝ⧋āĻ— āĻļ⧁āϰ⧁ āĻ•āϰ⧇ āĻāĻŦāĻ‚ [āĻĒā§āϰāĻžāϝāĻŧ] āĻŦāĻžāĻ•āĻŋ āϏāĻŦ āĻļā§āϰ⧋āϤāĻž FOU āϏāϰāĻžāϏāϰāĻŋ āϝāĻžāύ.

āϝāĻžāϰāĻž āϜāĻžāύ⧇āύ āύāĻž āϤāĻžāĻĻ⧇āϰ āϜāĻ¨ā§āϝ, nfqueue (āĻŦāĻž NetfilterQueue) āĻ…āĻĒ⧇āĻļāĻžāĻĻāĻžāϰāĻĻ⧇āϰ āϜāĻ¨ā§āϝ āĻāĻ•āϟāĻŋ āĻŦāĻŋāĻļ⧇āώ āϜāĻŋāύāĻŋāϏ āϝāĻžāϰāĻž āĻ•āĻžāĻ°ā§āύ⧇āϞ āĻŽāĻĄāĻŋāωāϞāϗ⧁āϞāĻŋ āϕ⧀āĻ­āĻžāĻŦ⧇ āĻŦāĻŋāĻ•āĻžāĻļ āĻ•āϰāϤ⧇ āĻšāϝāĻŧ āϤāĻž āϜāĻžāύ⧇āύ āύāĻž, āϝāĻž āύ⧇āϟāĻĢāĻŋāĻ˛ā§āϟāĻžāϰ (nftables/iptables) āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āφāĻĒāύāĻžāϕ⧇ āύ⧇āϟāĻ“āϝāĻŧāĻžāĻ°ā§āĻ• āĻĒā§āϝāĻžāϕ⧇āϟāϗ⧁āϞāĻŋāϕ⧇ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻ•āĻžāϰ⧀āϰ āĻ¸ā§āĻĨāĻžāύ⧇ āĻĒ⧁āύāσāύāĻŋāĻ°ā§āĻĻ⧇āĻļ āĻ•āϰāϤ⧇ āĻĻ⧇āϝāĻŧ āĻāĻŦāĻ‚ āϏ⧇āϗ⧁āϞāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āϏ⧇āĻ–āĻžāύ⧇ āĻĒā§āϰāĻ•ā§āϰāĻŋāϝāĻŧāĻž āĻ•āϰāϤ⧇ āĻĻ⧇āϝāĻŧāĨ¤ āφāĻĻāĻŋāĻŽ āĻ…āĻ°ā§āĻĨ āĻšāĻžāϤ⧇āϰ āĻ•āĻžāϛ⧇: āϏāĻ‚āĻļā§‹āϧāύ āĻ•āϰ⧁āύ (āϐāĻšā§āĻ›āĻŋāĻ•) āĻāĻŦāĻ‚ āĻāϟāĻŋ āĻ•āĻžāĻ°ā§āύ⧇āϞ⧇ āĻĢāĻŋāϰāĻŋāϝāĻŧ⧇ āĻĻāĻŋāύ, āĻŦāĻž āĻŦāĻžāϤāĻŋāϞ āĻ•āϰ⧁āύāĨ¤

āĻ•āĻŋāϛ⧁ āĻĒā§āϰ⧋āĻ—ā§āϰāĻžāĻŽāĻŋāĻ‚ āĻ­āĻžāώāĻžāϰ āϜāĻ¨ā§āϝ nfqueue āĻāϰ āϏāĻžāĻĨ⧇ āĻ•āĻžāϜ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ āĻŦāĻžāχāĻ¨ā§āĻĄāĻŋāĻ‚ āϰāϝāĻŧ⧇āϛ⧇, āĻŦā§āϝāĻžāĻļ⧇āϰ āϜāĻ¨ā§āϝ āϏ⧇āĻ–āĻžāύ⧇ āĻ•āĻŋāϛ⧁āχ āĻ›āĻŋāϞ āύāĻž (āĻšā§‡, āφāĻļā§āϚāĻ°ā§āϝāϜāύāĻ• āύāϝāĻŧ), āφāĻŽāĻžāϕ⧇ āĻĒāĻžāχāĻĨāύ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāϤ⧇ āĻšāϝāĻŧ⧇āĻ›āĻŋāϞ: ipipou āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āύ⧇āϟāĻĢāĻŋāĻ˛ā§āϟāĻžāϰ āϏāĻžāϰāĻŋ.

āĻ•āĻ°ā§āĻŽāĻ•ā§āώāĻŽāϤāĻž āϏāĻŽāĻžāϞ⧋āϚāύāĻžāĻŽā§‚āϞāĻ• āύāĻž āĻšāϞ⧇, āĻāχ āϜāĻŋāύāĻŋāϏāϟāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āφāĻĒāύāĻŋ āĻŽā§‹āϟāĻžāĻŽā§āϟāĻŋ āύāĻŋāĻŽā§āύ āĻ¸ā§āϤāϰ⧇ āĻĒā§āϝāĻžāϕ⧇āϟāϗ⧁āϞāĻŋāϰ āϏāĻžāĻĨ⧇ āĻ•āĻžāϜ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ āϤ⧁āϞāύāĻžāĻŽā§‚āϞāĻ•āĻ­āĻžāĻŦ⧇ āĻĻā§āϰ⧁āϤ āĻāĻŦāĻ‚ āϏāĻšāĻœā§‡āχ āφāĻĒāύāĻžāϰ āύāĻŋāϜāĻ¸ā§āĻŦ āϝ⧁āĻ•ā§āϤāĻŋ āϤ⧈āϰāĻŋ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āύ, āωāĻĻāĻžāĻšāϰāĻŖāĻ¸ā§āĻŦāϰ⧂āĻĒ, āĻĒāϰ⧀āĻ•ā§āώāĻžāĻŽā§‚āϞāĻ• āĻĄā§‡āϟāĻž āĻ¸ā§āĻĨāĻžāύāĻžāĻ¨ā§āϤāϰ āĻĒā§āϰ⧋āĻŸā§‹āĻ•āϞ āϤ⧈āϰāĻŋ āĻ•āϰ⧁āύ, āĻŦāĻž āĻ…-āĻŽāĻžāύāĻ• āφāϚāϰāϪ⧇āϰ āϏāĻžāĻĨ⧇ āĻ¸ā§āĻĨāĻžāύ⧀āϝāĻŧ āĻāĻŦāĻ‚ āĻĻā§‚āϰāĻŦāĻ°ā§āϤ⧀ āĻĒāϰāĻŋāώ⧇āĻŦāĻžāϗ⧁āϞāĻŋāϕ⧇ āĻŸā§āϰāϞ āĻ•āϰ⧁āύ⧎

āĻ•āĻžāρāϚāĻž āϏāϕ⧇āϟāϗ⧁āϞāĻŋ nfqueue-āĻāϰ āϏāĻžāĻĨ⧇ āĻšāĻžāϤ⧇ āĻšāĻžāϤ āĻŽāĻŋāϞāĻŋāϝāĻŧ⧇ āĻ•āĻžāϜ āĻ•āϰ⧇, āωāĻĻāĻžāĻšāϰāĻŖāĻ¸ā§āĻŦāϰ⧂āĻĒ, āϝāĻ–āύ āϟāĻžāύ⧇āϞāϟāĻŋ āχāϤāĻŋāĻŽāĻ§ā§āϝ⧇āχ āĻ•āύāĻĢāĻŋāĻ—āĻžāϰ āĻ•āϰāĻž āĻĨāĻžāϕ⧇ āĻāĻŦāĻ‚ FOU āĻ•āĻžāĻ™ā§āĻ•ā§āώāĻŋāϤ āĻĒā§‹āĻ°ā§āĻŸā§‡ āĻļ⧁āύāϛ⧇, āϤāĻ–āύ āφāĻĒāύāĻŋ āĻāĻ•āχ āĻĒā§‹āĻ°ā§āϟ āĻĨ⧇āϕ⧇ āĻ¸ā§āĻŦāĻžāĻ­āĻžāĻŦāĻŋāĻ• āωāĻĒāĻžāϝāĻŧ⧇ āĻāĻ•āϟāĻŋ āĻĒā§āϝāĻžāϕ⧇āϟ āĻĒāĻžāĻ āĻžāϤ⧇ āĻĒāĻžāϰāĻŦ⧇āύ āύāĻž - āĻāϟāĻŋ āĻŦā§āϝāĻ¸ā§āϤ, āĻ•āĻŋāĻ¨ā§āϤ⧁ āφāĻĒāύāĻŋ āĻāĻ•āϟāĻŋ āĻ•āĻžāρāϚāĻž āϏāϕ⧇āϟ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āϏāϰāĻžāϏāϰāĻŋ āύ⧇āϟāĻ“āϝāĻŧāĻžāĻ°ā§āĻ• āχāĻ¨ā§āϟāĻžāϰāĻĢ⧇āϏ⧇ āĻāĻ•āϟāĻŋ āĻāϞ⧋āĻŽā§‡āϞ⧋āĻ­āĻžāĻŦ⧇ āĻœā§‡āύāĻžāϰ⧇āϟ āĻ•āϰāĻž āĻĒā§āϝāĻžāϕ⧇āϟ āύāĻŋāϤ⧇ āĻāĻŦāĻ‚ āĻĒāĻžāĻ āĻžāϤ⧇ āĻĒāĻžāϰ⧇āύ, āϝāĻĻāĻŋāĻ“ āĻāχ āϧāϰāύ⧇āϰ āĻāĻ•āϟāĻŋ āĻĒā§āϝāĻžāϕ⧇āϟ āϤ⧈āϰāĻŋ āĻ•āϰāϤ⧇ āĻāĻ•āϟ⧁ āĻŦ⧇āĻļāĻŋ āϟāĻŋāĻ™ā§āĻ•āĻžāϰāĻŋāĻ‚ āĻĒā§āϰāϝāĻŧā§‹āϜāύ āĻšāĻŦ⧇āĨ¤ āĻāĻ­āĻžāĻŦ⧇āχ ipipou-āĻ āĻĒā§āϰāĻŽāĻžāĻŖā§€āĻ•āϰāĻŖ āϏāĻš āĻĒā§āϝāĻžāϕ⧇āϟ āϤ⧈āϰāĻŋ āĻ•āϰāĻž āĻšāϝāĻŧāĨ¤

āϝ⧇āĻšā§‡āϤ⧁ ipipou āϏāĻ‚āϝ⧋āĻ— āĻĨ⧇āϕ⧇ āĻļ⧁āϧ⧁āĻŽāĻžāĻ¤ā§āϰ āĻĒā§āϰāĻĨāĻŽ āĻĒā§āϝāĻžāϕ⧇āϟāϗ⧁āϞāĻŋāϕ⧇ āĻĒā§āϰāĻ•ā§āϰāĻŋāϝāĻŧāĻž āĻ•āϰ⧇ (āĻāĻŦāĻ‚ āϝ⧇āϗ⧁āϞāĻŋ āϏāĻ‚āϝ⧋āĻ— āĻ¸ā§āĻĨāĻžāĻĒāύ⧇āϰ āφāϗ⧇ āϏāĻžāϰāĻŋāϤ⧇ āĻĢ⧁āĻŸā§‹ āĻšāϝāĻŧ⧇ āĻ—āĻŋāϝāĻŧ⧇āĻ›āĻŋāϞ), āĻ•āĻžāĻ°ā§āϝāĻ•ā§āώāĻŽāϤāĻž āĻĒā§āϰāĻžāϝāĻŧ āĻ•ā§āώāϤāĻŋāĻ—ā§āϰāĻ¸ā§āϤ āĻšāϝāĻŧ āύāĻžāĨ¤

āϝāϤ āϤāĻžāĻĄāĻŧāĻžāϤāĻžāĻĄāĻŧāĻŋ ipipou āϏāĻžāĻ°ā§āĻ­āĻžāϰ āĻāĻ•āϟāĻŋ āĻĒā§āϰāĻŽāĻžāĻŖā§€āĻ•ā§ƒāϤ āĻĒā§āϝāĻžāϕ⧇āϟ āĻĒāĻžāϝāĻŧ, āĻāĻ•āϟāĻŋ āϟāĻžāύ⧇āϞ āϤ⧈āϰāĻŋ āĻ•āϰāĻž āĻšāϝāĻŧ āĻāĻŦāĻ‚ āϏāĻ‚āϝ⧋āϗ⧇āϰ āϏāĻŽāĻ¸ā§āϤ āĻĒāϰāĻŦāĻ°ā§āϤ⧀ āĻĒā§āϝāĻžāϕ⧇āϟ āχāϤāĻŋāĻŽāĻ§ā§āϝ⧇āχ nfqueue āĻŦāĻžāχāĻĒāĻžāϏ āĻ•āϰ⧇ āĻ•āĻžāĻ°ā§āύ⧇āϞ āĻĻā§āĻŦāĻžāϰāĻž āĻĒā§āϰāĻ•ā§āϰāĻŋāϝāĻŧāĻž āĻ•āϰāĻž āĻšāϝāĻŧāĨ¤ āϝāĻĻāĻŋ āϏāĻ‚āϝ⧋āĻ—āϟāĻŋ āĻŦā§āϝāĻ°ā§āĻĨ āĻšāϝāĻŧ, āϤāĻŦ⧇ āĻĒāϰāĻŦāĻ°ā§āϤ⧀āϟāĻŋāϰ āĻĒā§āϰāĻĨāĻŽ āĻĒā§āϝāĻžāϕ⧇āϟāϟāĻŋ āϏ⧇āϟāĻŋāĻ‚āϏ⧇āϰ āωāĻĒāϰ āύāĻŋāĻ°ā§āĻ­āϰ āĻ•āϰ⧇ nfqueue āϏāĻžāϰāĻŋāϤ⧇ āĻĒāĻžāĻ āĻžāύ⧋ āĻšāĻŦ⧇, āϝāĻĻāĻŋ āĻāϟāĻŋ āĻĒā§āϰāĻŽāĻžāĻŖā§€āĻ•āϰāĻŖ āϏāĻš āĻāĻ•āϟāĻŋ āĻĒā§āϝāĻžāϕ⧇āϟ āύāĻž āĻšāϝāĻŧ, āϤāĻŦ⧇ āĻļ⧇āώ āĻŽāύ⧇ āϰāĻžāĻ–āĻž āφāχāĻĒāĻŋ āĻāĻŦāĻ‚ āĻ•ā§āϞāĻžāϝāĻŧ⧇āĻ¨ā§āϟ āĻĒā§‹āĻ°ā§āϟ āĻĨ⧇āϕ⧇ āĻāϟāĻŋ āĻĒāĻžāϏ āĻ•āϰāĻž āϝ⧇āϤ⧇ āĻĒāĻžāϰ⧇āĨ¤ āϚāĻžāϞ⧁ āĻŦāĻž āĻŦāĻžāϤāĻŋāϞ āϝāĻĻāĻŋ āĻāĻ•āϟāĻŋ āĻĒā§āϰāĻŽāĻžāĻŖā§€āĻ•ā§ƒāϤ āĻĒā§āϝāĻžāϕ⧇āϟ āĻāĻ•āϟāĻŋ āύāϤ⧁āύ āφāχāĻĒāĻŋ āĻāĻŦāĻ‚ āĻĒā§‹āĻ°ā§āϟ āĻĨ⧇āϕ⧇ āφāϏ⧇, āϤāĻžāĻšāϞ⧇ āϤāĻžāĻĻ⧇āϰ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ āϟāĻžāύ⧇āϞāϟāĻŋ āĻĒ⧁āύāϰāĻžāϝāĻŧ āĻ•āύāĻĢāĻŋāĻ—āĻžāϰ āĻ•āϰāĻž āĻšāϝāĻŧāĨ¤

NAT-āĻāϰ āϏāĻžāĻĨ⧇ āĻ•āĻžāϜ āĻ•āϰāĻžāϰ āϏāĻŽāϝāĻŧ āĻ¸ā§āĻŦāĻžāĻ­āĻžāĻŦāĻŋāĻ• IPIP-āĻ“āĻ­āĻžāϰ-FOU-āĻāϰ āφāϰāĻ“ āĻāĻ•āϟāĻŋ āϏāĻŽāĻ¸ā§āϝāĻž āϰāϝāĻŧ⧇āϛ⧇ - āĻāĻ•āχ IP āĻĻāĻŋāϝāĻŧ⧇ UDP-āϤ⧇ āĻĻ⧁āϟāĻŋ IPIP āϟāĻžāύ⧇āϞ āϤ⧈āϰāĻŋ āĻ•āϰāĻž āĻ…āϏāĻŽā§āĻ­āĻŦ, āĻ•āĻžāϰāĻŖ FOU āĻāĻŦāĻ‚ IPIP āĻŽāĻĄāĻŋāωāϞāϗ⧁āϞāĻŋ āĻāϕ⧇ āĻ…āĻĒāϰ⧇āϰ āĻĨ⧇āϕ⧇ āĻŦ⧇āĻļ āĻŦāĻŋāĻšā§āĻ›āĻŋāĻ¨ā§āύāĨ¤ āϏ⧇āϗ⧁āϞ⧋. āĻāĻ•āχ āĻĒāĻžāĻŦāϞāĻŋāĻ• āφāχāĻĒāĻŋāϰ āĻĒāĻŋāĻ›āύ⧇ āĻāĻ•āĻœā§‹āĻĄāĻŧāĻž āĻ•ā§āϞāĻžāϝāĻŧ⧇āĻ¨ā§āϟ āĻāĻ•āχ āϏāĻžāĻĨ⧇ āĻāĻ•āχ āϏāĻžāĻ°ā§āĻ­āĻžāϰ⧇āϰ āϏāĻžāĻĨ⧇ āĻāχāĻ­āĻžāĻŦ⧇ āϏāĻ‚āϝ⧋āĻ— āĻ•āϰāϤ⧇ āϏāĻ•ā§āώāĻŽ āĻšāĻŦ⧇ āύāĻžāĨ¤ āĻ­āĻŦāĻŋāĻˇā§āϝāϤ⧇, āϏāĻŽā§āĻ­āĻŦāϤ, āĻāϟāĻŋ āĻ•āĻžāĻ°ā§āύ⧇āϞ āĻ¸ā§āϤāϰ⧇ āϏāĻŽāĻžāϧāĻžāύ āĻ•āϰāĻž āĻšāĻŦ⧇, āĻ•āĻŋāĻ¨ā§āϤ⧁ āĻāϟāĻŋ āύāĻŋāĻļā§āϚāĻŋāϤ āύāϝāĻŧāĨ¤ āχāϤāĻŋāĻŽāĻ§ā§āϝ⧇, NAT āϏāĻŽāĻ¸ā§āϝāĻžāϗ⧁āϞāĻŋ NAT āĻĻā§āĻŦāĻžāϰāĻž āϏāĻŽāĻžāϧāĻžāύ āĻ•āϰāĻž āϝ⧇āϤ⧇ āĻĒāĻžāϰ⧇ - āϝāĻĻāĻŋ āĻāĻŽāύ āĻšāϝāĻŧ āϝ⧇ āĻāĻ• āĻœā§‹āĻĄāĻŧāĻž IP āĻ āĻŋāĻ•āĻžāύāĻž āχāϤāĻŋāĻŽāĻ§ā§āϝ⧇āχ āĻ…āĻ¨ā§āϝ āĻāĻ•āϟāĻŋ āϟāĻžāύ⧇āϞ āĻĻā§āĻŦāĻžāϰāĻž āĻĻāĻ–āϞ āĻ•āϰāĻž āĻšāϝāĻŧ⧇āϛ⧇, ipipou āϜāύāϏāĻžāϧāĻžāϰāϪ⧇āϰ āĻĨ⧇āϕ⧇ āĻāĻ•āϟāĻŋ āĻŦāĻŋāĻ•āĻ˛ā§āĻĒ āĻŦā§āϝāĻ•ā§āϤāĻŋāĻ—āϤ āφāχāĻĒāĻŋāϤ⧇ NAT āĻ•āϰāĻŦ⧇, voila! - āĻĒā§‹āĻ°ā§āϟāϗ⧁āϞāĻŋ āĻļ⧇āώ āύāĻž āĻšāĻ“āϝāĻŧāĻž āĻĒāĻ°ā§āϝāĻ¨ā§āϤ āφāĻĒāύāĻŋ āϟāĻžāύ⧇āϞ āϤ⧈āϰāĻŋ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āύāĨ¤

āĻ•āĻžāϰāĻŖ āϏāĻ‚āϝ⧋āϗ⧇āϰ āϏāĻŽāĻ¸ā§āϤ āĻĒā§āϝāĻžāϕ⧇āϟ āϏāĻžāχāύ āĻ•āϰāĻž āĻšāϝāĻŧ āύāĻž, āϤāĻžāĻšāϞ⧇ āĻāχ āϏāĻžāϧāĻžāϰāĻŖ āϏ⧁āϰāĻ•ā§āώāĻž āĻāĻŽāφāχāϟāĻŋāĻāĻŽ-āĻāϰ āϜāĻ¨ā§āϝ āĻā§āρāĻ•āĻŋāĻĒā§‚āĻ°ā§āĻŖ, āϤāĻžāχ āϝāĻĻāĻŋ āĻ•ā§āϞāĻžāϝāĻŧ⧇āĻ¨ā§āϟ āĻāĻŦāĻ‚ āϏāĻžāĻ°ā§āĻ­āĻžāϰ⧇āϰ āĻŽāĻ§ā§āϝ⧇ āϕ⧋āύāĻ“ āĻ­āĻŋāϞ⧇āύ āϞ⧁āĻ•āĻŋāϝāĻŧ⧇ āĻĨāĻžāϕ⧇ āϝ⧇ āĻŸā§āĻ°ā§āϝāĻžāĻĢāĻŋāĻ• āĻļ⧁āύāϤ⧇ āĻāĻŦāĻ‚ āĻāϟāĻŋāϕ⧇ āĻŽā§āϝāĻžāύāĻŋāĻĒ⧁āϞ⧇āϟ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇, āϤāĻŦ⧇ āϏ⧇ āĻāϰ āĻŽāĻžāĻ§ā§āϝāĻŽā§‡ āĻĒā§āϰāĻŽāĻžāĻŖā§€āĻ•ā§ƒāϤ āĻĒā§āϝāĻžāϕ⧇āϟāϗ⧁āϞāĻŋāϕ⧇ āĻĒ⧁āύāσāύāĻŋāĻ°ā§āĻĻ⧇āĻļ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇ āĻ…āĻ¨ā§āϝ āĻ āĻŋāĻ•āĻžāύāĻž āĻāĻŦāĻ‚ āĻāĻ•āϟāĻŋ āĻ…āĻŦāĻŋāĻļā§āĻŦāĻ¸ā§āϤ āĻšā§‹āĻ¸ā§āϟ āĻĨ⧇āϕ⧇ āĻāĻ•āϟāĻŋ āϟāĻžāύ⧇āϞ āϤ⧈āϰāĻŋ āĻ•āϰ⧁āύāĨ¤

āĻŸā§āϰāĻžāĻĢāĻŋāϕ⧇āϰ āĻŽā§‚āϞ āĻ…āĻ‚āĻļ āϛ⧇āĻĄāĻŧ⧇ āϝāĻžāĻ“āϝāĻŧāĻžāϰ āϏāĻŽāϝāĻŧ āϕ⧀āĻ­āĻžāĻŦ⧇ āĻāϟāĻŋ āĻ āĻŋāĻ• āĻ•āϰāĻž āϝāĻžāϝāĻŧ āϏ⧇ āϏāĻŽā§āĻĒāĻ°ā§āϕ⧇ āĻ•āĻžāϰāĻ“ āĻ•āĻžāϛ⧇ āϧāĻžāϰāĻŖāĻž āĻĨāĻžāĻ•āϞ⧇, āĻ•āĻĨāĻž āĻŦāϞāϤ⧇ āĻĻā§āĻŦāĻŋāϧāĻž āĻ•āϰāĻŦ⧇āύ āύāĻžāĨ¤

āϝāĻžāχāĻšā§‹āĻ•, āχāωāĻĄāĻŋāĻĒāĻŋāϤ⧇ āĻāύāĻ•ā§āϝāĻžāĻĒāϏ⧁āϞ⧇āĻļāύ āύāĻŋāĻœā§‡āϕ⧇ āϖ⧁āĻŦ āĻ­āĻžāϞāĻ­āĻžāĻŦ⧇ āĻĒā§āϰāĻŽāĻžāĻŖ āĻ•āϰ⧇āϛ⧇āĨ¤ āφāχāĻĒāĻŋāϰ āωāĻĒāϰ āĻāύāĻ•ā§āϝāĻžāĻĒāϏ⧁āϞ⧇āĻļāύ⧇āϰ āϤ⧁āϞāύāĻžāϝāĻŧ, āĻāϟāĻŋ UDP āĻšā§‡āĻĄāĻžāϰ⧇āϰ āĻ…āϤāĻŋāϰāĻŋāĻ•ā§āϤ āĻ“āĻ­āĻžāϰāĻšā§‡āĻĄ āϏāĻ¤ā§āĻ¤ā§āĻŦ⧇āĻ“ āĻ…āύ⧇āĻ• āĻŦ⧇āĻļāĻŋ āĻ¸ā§āĻĨāĻŋāϤāĻŋāĻļā§€āϞ āĻāĻŦāĻ‚ āĻĒā§āϰāĻžāϝāĻŧāĻļāχ āĻĻā§āϰ⧁āϤāĨ¤ āĻāϟāĻŋ āĻāχ āĻ•āĻžāϰāϪ⧇ āϝ⧇ āχāĻ¨ā§āϟāĻžāϰāύ⧇āĻŸā§‡ āĻŦ⧇āĻļāĻŋāϰāĻ­āĻžāĻ— āĻšā§‹āĻ¸ā§āϟ āĻļ⧁āϧ⧁āĻŽāĻžāĻ¤ā§āϰ āϤāĻŋāύāϟāĻŋ āϜāύāĻĒā§āϰāĻŋāϝāĻŧ āĻĒā§āϰ⧋āĻŸā§‹āĻ•āϞ⧇āϰ āϏāĻžāĻĨ⧇ āĻ­āĻžāϞ āĻ•āĻžāϜ āĻ•āϰ⧇: TCP, UDP, ICMPāĨ¤ āĻŦāĻžāĻ¸ā§āϤāĻŦ āĻ…āĻ‚āĻļāϟāĻŋ āϏāĻŽā§āĻĒā§‚āĻ°ā§āĻŖāϰ⧂āĻĒ⧇ āĻ…āĻ¨ā§āϝ āϏāĻŦāĻ•āĻŋāϛ⧁ āĻŦāĻžāϤāĻŋāϞ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇, āĻŦāĻž āĻāϟāĻŋ āφāϰāĻ“ āϧ⧀āϰ⧇ āϧ⧀āϰ⧇ āĻĒā§āϰāĻ•ā§āϰāĻŋāϝāĻŧāĻž āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇, āĻ•āĻžāϰāĻŖ āĻāϟāĻŋ āĻļ⧁āϧ⧁āĻŽāĻžāĻ¤ā§āϰ āĻāχ āϤāĻŋāύāϟāĻŋāϰ āϜāĻ¨ā§āϝ āĻ…āĻĒā§āϟāĻŋāĻŽāĻžāχāϜ āĻ•āϰāĻž āĻšāϝāĻŧ⧇āϛ⧇āĨ¤

āωāĻĻāĻžāĻšāϰāĻŖāĻ¸ā§āĻŦāϰ⧂āĻĒ, āĻāχ āĻ•āĻžāϰāϪ⧇āχ āϕ⧁āχāĻ•, āϝāĻžāϰ āωāĻĒāϰ āĻ­āĻŋāĻ¤ā§āϤāĻŋ āĻ•āϰ⧇ HTTP/3, UDP-āĻāϰ āωāĻĒāϰ⧇ āϤ⧈āϰāĻŋ āĻ•āϰāĻž āĻšāϝāĻŧ⧇āĻ›āĻŋāϞ, IP-āĻāϰ āωāĻĒāϰ⧇ āύāϝāĻŧāĨ¤

āĻ āĻŋāĻ• āφāϛ⧇, āϝāĻĨ⧇āĻˇā§āϟ āĻļāĻŦā§āĻĻ, āĻāϟāĻŋ "āĻŦāĻžāĻ¸ā§āϤāĻŦ āϜāĻ—āϤ⧇" āϕ⧀āĻ­āĻžāĻŦ⧇ āĻ•āĻžāϜ āĻ•āϰ⧇ āϤāĻž āĻĻ⧇āĻ–āĻžāϰ āϏāĻŽāϝāĻŧāĨ¤

āϝ⧁āĻĻā§āϧ

āĻŦāĻžāĻ¸ā§āϤāĻŦ āĻŦāĻŋāĻļā§āĻŦ⧇āϰ āĻ…āύ⧁āĻ•āϰāĻŖ āĻŦā§āϝāĻŦāĻšā§ƒāϤ iperf3. āĻŦāĻžāĻ¸ā§āϤāĻŦāϤāĻžāϰ āϏāĻžāĻĨ⧇ āϘāύāĻŋāĻˇā§āĻ āϤāĻžāϰ āĻĄāĻŋāĻ—ā§āϰāĻŋāϰ āĻĒāϰāĻŋāĻĒā§āϰ⧇āĻ•ā§āώāĻŋāϤ⧇, āĻāϟāĻŋ āĻĒā§āϰāĻžāϝāĻŧ āĻŽāĻžāχāύāĻ•ā§āϰāĻžāĻĢā§āĻŸā§‡ āĻŦāĻžāĻ¸ā§āϤāĻŦ āϜāĻ—āϤ⧇āϰ āĻ…āύ⧁āĻ•āϰāϪ⧇āϰ āϏāĻŽāĻžāύ, āϤāĻŦ⧇ āφāĻĒāĻžāϤāϤ āĻāϟāĻŋ āĻ•āϰāĻŦ⧇āĨ¤

āĻĒā§āϰāϤāĻŋāϝ⧋āĻ—āĻŋāϤāĻžāϝāĻŧ āĻ…āĻ‚āĻļāĻ—ā§āϰāĻšāĻŖāĻ•āĻžāϰ⧀āϰāĻž:

  • āϰ⧇āĻĢāĻžāϰ⧇āĻ¨ā§āϏ āĻĒā§āϰāϧāĻžāύ āĻšā§āϝāĻžāύ⧇āϞ
  • āĻāχ āύāĻŋāĻŦāĻ¨ā§āϧ⧇āϰ āύāĻžāϝāĻŧāĻ• ipipou
  • āĻĒā§āϰāĻŽāĻžāĻŖā§€āĻ•āϰāĻŖ āϏāĻš OpenVPN āĻ•āĻŋāĻ¨ā§āϤ⧁ āϕ⧋āύ āĻāύāĻ•ā§āϰāĻŋāĻĒāĻļāύ āύ⧇āχ
  • āϏāĻŦ-āĻ…āĻ¨ā§āϤāĻ°ā§āϭ⧁āĻ•ā§āϤ āĻŽā§‹āĻĄā§‡ OpenVPN
  • PresharedKey āĻ›āĻžāĻĄāĻŧāĻž āĻ“āϝāĻŧā§āϝāĻžāϰāĻ—āĻžāĻ°ā§āĻĄ, MTU=1440 āϏāĻš (āĻļ⧁āϧ⧁āĻŽāĻžāĻ¤ā§āϰ IPv4 āĻĨ⧇āϕ⧇)

Geeks āϜāĻ¨ā§āϝ āĻĒā§āϰāϝ⧁āĻ•ā§āϤāĻŋāĻ—āϤ āϤāĻĨā§āϝ
āĻŽā§‡āĻŸā§āϰāĻŋāĻ•ā§āϏ āύāĻŋāĻŽā§āύāϞāĻŋāĻ–āĻŋāϤ āĻ•āĻŽāĻžāĻ¨ā§āĻĄā§‡āϰ āϏāĻžāĻĨ⧇ āύ⧇āĻ“āϝāĻŧāĻž āĻšāϝāĻŧ:

āĻ•ā§āϞāĻžāϝāĻŧ⧇āĻ¨ā§āĻŸā§‡āϰ āωāĻĒāϰ:

āĻāϰ āĻĢāϞ⧇ 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

openvpn (āĻāύāĻ•ā§āϰāĻŋāĻĒāĻļāύ āϏāĻš, āĻĒā§āϰāĻŽāĻžāĻŖā§€āĻ•āϰāĻŖ, 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