NAT рдХреЗ рдкреАрдЫреЗ рдХреА рдорд╢реАрдиреЛрдВ рдХреЛ рд╕реАрдзреЗ рдЬреЛрдбрд╝рдиреЗ рдХрд╛ рдХрд╛рдо рджреБрдирд┐рдпрд╛ рдЬрд┐рддрдирд╛ рдкреБрд░рд╛рдирд╛ рд╣реИ, рдФрд░ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХрдИ рдиреЗ рдпреВрдбреАрдкреА рд╣реЛрд▓ рдкрдВрдЪрд┐рдВрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реБрдирд╛ рд╣реИред рдЬрдм рдореИрдВ рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рджрд┐рд▓рдЪрд╕реНрдкреА рд▓реЗрдирд╛ рд╢реБрд░реВ рдХрд░ рд░рд╣рд╛ рдерд╛, рддреЛ рдореИрдВрдиреЗ рдЦреБрдж рдХреЛ рдЗрд╕ рд░рд╛рдп рдореЗрдВ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдХрд┐ рд╕рдордорд┐рдд рдирдЯ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рддреЛрдбрд╝рдирд╛ рдЕрд╕рдВрднрд╡ рд╣реИ рдФрд░ рдпрд╣ рдХреЛрд╢рд┐рд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд╛рдпрдХ рднреА рдирд╣реАрдВ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдореИрдВ рдПрдХ рд▓реЗрдЦ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЖрдпрд╛ рдерд╛ рдЬрд┐рд╕рдореЗрдВ рдпрд╣ рдХрд╣рд╛ рдЧрдпрд╛ рдерд╛ рдХрд┐ рдПрдХ рд╕рдордорд┐рдд рдирдЯ рдПрдХ рд╡рд╛рдХреНрдп рдирд╣реАрдВ рд╣реИред
рдЪрд▓рд┐рдП рдЗрд╕рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рддреЗ рд╣реИрдВред
NAT рдкреНрд░рдХрд╛рд░
рдкрд░рдВрдкрд░рд╛рдЧрдд рд░реВрдк рд╕реЗ, рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░ рдХрдИ рд▓реЗрдЦреЛрдВ рдореЗрдВ, рд╕рднреА NAT рдХреЛ рдЪрд╛рд░ рдкреНрд░рдХрд╛рд░реЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:
- рдкреВрд░реНрдг-рд╢рдВрдХреБ NAT;
- рдкрддрд╛-рдкреНрд░рддрд┐рдмрдВрдзрд┐рдд рд╢рдВрдХреБ NAT;
- рдкреЛрд░реНрдЯ-рдкреНрд░рддрд┐рдмрдВрдзрд┐рдд рд╢рдВрдХреБ NAT;
- рд╕рдордорд┐рдд рдПрдирдПрдЯреА
рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рдЪ рдирд╣реАрдВ рд╣реИред рдЕрдзрд┐рдХ рд╕рдЯреАрдХ, рдмрд┐рд▓реНрдХреБрд▓ рд╕рд╣реА рдирд╣реАрдВред рдХрд┐рд╕реА рднреА NAT рдХреА рджреЛ рдореБрдЦреНрдп рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рд╣реИрдВ:
1) рдлрд┐рд▓реНрдЯрд░ рдЖрдиреЗ рд╡рд╛рд▓реЗ рдкреИрдХреЗрдЯ;
2) рдкреЛрд░реНрдЯ рдореИрдкрд┐рдВрдЧ рдирд┐рдпрдоред
рдкрд╣рд▓реА рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЛ рдЬреНрдпрд╛рджрд╛рддрд░ рд▓реЗрдЦреЛрдВ рдореЗрдВ рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдПрдирдПрдЯреА рдХреЗ рдкреАрдЫреЗ рдорд╢реАрди рдХреЛ рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдиреЗ рд╡рд╛рд▓реЗ рдкреИрдХреЗрдЯ: рд╕рдм рдХреБрдЫ (рдХреЛрдИ рдлрд┐рд▓реНрдЯрд░ - рдкреВрд░реНрдг рд╢рдВрдХреБ), рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкрддреЗ (рдкрддреЗ-рдкреНрд░рддрд┐рдмрдВрдзрд┐рдд) рд╕реЗ рдпрд╛ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкрддреЗ рдФрд░ рдкреЛрд░реНрдЯ (рдкреЛрд░реНрдЯ-рдкреНрд░рддрд┐рдмрдВрдзрд┐рдд) рд╕реЗред
рджреВрд╕рд░реА рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЗрд╡рд▓ рд╕рдордорд┐рдд рдПрдирдПрдЯреА рдХреЗ рд▓рд┐рдП рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдкрд╣рд▓реЗ рддреАрди рдкреНрд░рдХрд╛рд░ рдПрдХ рд╕реЗ рдПрдХ рдкреНрд░рддрд┐рдмрд┐рдВрдм рдмрдирд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЕрдЧрд░ рдЧреНрд░рд╛рд╣рдХ рдЖрдВрддрд░рд┐рдХ рдкрддреЗ 192.168.10.24:62145 рд╕реЗ рдПрдХ рдкреИрдХреЗрдЯ рднреЗрдЬрддрд╛ рд╣реИ, рддреЛ рдкреИрдХреЗрдЯ рд░рд╛рдЙрдЯрд░ рд╕реЗ 1.2.3.4:62145 рдкрддреЗ рд╕реЗ рдЬрд╛рдПрдЧрд╛ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдкреНрд░рд╛рдкреНрддрдХрд░реНрддрд╛ рдкрддреЗ рдХреА рдкрд░рд╡рд╛рд╣ рдХрд┐рдП рдмрд┐рдирд╛ред
рд╕рдордорд┐рдд рдПрдирдПрдЯреА
рдФрд░ рдЕрдм рд╕рдордорд┐рдд рдПрдирдПрдЯреА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗред рддреБрд░рдВрдд рдПрдХ рдЖрд░рдХреНрд╖рдг рдХрд░реЗрдВ рдХрд┐ рдЖрдиреЗ рд╡рд╛рд▓реЗ рдкреИрдХреЗрдЯ рдХреЗ рд▓рд┐рдП рдлрд╝рд┐рд▓реНрдЯрд░ рднреА рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ (рдХреЛрдИ рдлрд╝рд┐рд▓реНрдЯрд░, рдкрддрд╛-рдкреНрд░рддрд┐рдмрдВрдзрд┐рдд рдпрд╛ рдкреЛрд░реНрдЯ-рдкреНрд░рддрд┐рдмрдВрдзрд┐рдд) рдирд╣реАрдВред рдФрд░ рдПрдирдПрдЯреА рдХреЗ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдФрд░ рдкрд┐рдЫрд▓реЗ рд╡рд╛рд▓реЗ рдХреЗ рдмреАрдЪ рдПрдХрдорд╛рддреНрд░ рдЕрдВрддрд░ рд░рд╛рдЙрдЯрд░ рдкрд░ рдЖрдЙрдЯрдЧреЛрдЗрдВрдЧ рдкреЛрд░реНрдЯ рдХреА рдкрд╕рдВрдж рдореЗрдВ рдареАрдХ рд╣реИ, рдпрд╣ рдХреНрд▓рд╛рдЗрдВрдЯ рдкрд░ рдореВрд▓ рдкреЛрд░реНрдЯ рд╕реЗ рд▓рдЧрднрдЧ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рднрд┐рдиреНрди рд╣реЛрдЧрд╛ред рдкрд┐рдЫрд▓реЗ рдЙрджрд╛рд╣рд░рдг рдкрд░ рд▓реМрдЯрддреЗ рд╣реБрдП, рдкреНрд░рддрд┐рдмрд┐рдВрдм рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ: 192.168.10.24:62145 -> 1.2.3.4.11274ред
рдЙрд╕реА рдкреЛрд░реНрдЯ рдХреЛ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд░реВрдк рд╕реЗ рдЪреБрдирд╛ рдЬрд╛рддрд╛ рд╣реИ (рдпрд╛ рд╕рдВрдпреЛрдЧ рд╕реЗ рдирд╣реАрдВ, рдмрд▓реНрдХрд┐ рдмрджрд▓реЗ рдореЗрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╣рдо рдмрд╛рд╣рд░ рд╕реЗ рдЗрд╕рдХреА рдкрд╕рдВрдж рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ)ред рд▓реЗрдХрд┐рди рдХреБрдЫ рдирд┐рдпрдо рд╣реИрдВ, рд╡реЗ рдЖрдиреЗ рд╡рд╛рд▓реЗ рдкреИрдХреЗрдЯ рдХреЗ рдлрд┐рд▓реНрдЯрд░ рдХреЗ рд╕рдорд╛рди рд╣реИрдВ:
- рд░рд┐рд╕реАрд╡рд░ (рд╢рдВрдХреБ) рдХреА рдкрд░рд╡рд╛рд╣ рдХрд┐рдП рдмрд┐рдирд╛ рдмрдВрджрд░рдЧрд╛рд╣ рд╣рдореЗрд╢рд╛ рдПрдХ рд╣реА рд░рд╣ рд╕рдХрддрд╛ рд╣реИ;
- рдкреЛрд░реНрдЯ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкреНрд░рд╛рдкреНрддрдХрд░реНрддрд╛ рдкрддреЗ (рдкрддреЗ) рдХреЗ рд▓рд┐рдП рд╕рдорд╛рди рд░рд╣ рд╕рдХрддрд╛ рд╣реИ;
- рдПрдХ рдкреЛрд░реНрдЯ рдХреЗрд╡рд▓ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкрддреЗ рдФрд░ рд░рд┐рд╕реАрд╡рд░ (рдкреЛрд░реНрдЯ) рдХреЗ рдкреЛрд░реНрдЯ рдХреЗ рд▓рд┐рдП рд╣реА рд░рд╣ рд╕рдХрддрд╛ рд╣реИ;
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкреЛрд░реНрдЯ рдХреЛ рдЪреБрдирдиреЗ рдХреЗ рднреА рдирд┐рдпрдо рд╣реИрдВ:
рдпрд╣ рд╕рдВрдпреЛрдЧ рд╕реЗ рд╣рд░ рдмрд╛рд░ рдХрд┐рд╕реА рддрд░рд╣ рдХрд╛ рдбреЗрд▓реНрдЯрд╛ (+ 1 / -1 рдпрд╛ + 10 / -10) рдпрд╛ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдореИрдВрдиреЗ рдПрдХ NAT рдХреЛ рджреЗрдЦрд╛, рдЬрд┐рд╕рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдмрд╛рдж рдХреЗ рдкреЛрд░реНрдЯ рдХреЛ рдкрд┐рдЫрд▓реЗ рдПрдХ рд╕реЗ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд╕рдВрдЦреНрдпрд╛ рд╕реЗ рдЕрд▓рдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рд╣рдореЗрд╢рд╛ 4096 рдХрд╛ рдПрдХ рдЧреБрдгрдХредрдПрдХ рдирд┐рд╖реНрдХрд░реНрд╖ рдХреЗ рдмрдЬрд╛рдп
рддреЛ, рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рдкреЛрд░реНрдЯ рдЖрд╡рдВрдЯрди рдФрд░ рдбреЗрд▓реНрдЯрд╛ рдХреЗ рдирд┐рдпрдо рдХреЛ рдЬрд╛рдирдХрд░, рдЖрдк рдЕрдиреБрдорд╛рди рд▓рдЧрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЖрдЙрдЯрдЧреЛрдЗрдВрдЧ рдкреИрдХреЗрдЯ рдХрд┐рд╕ рдкреЛрд░реНрдЯ рд╕реЗ рдЬрд╛рдПрдЧрд╛, рдФрд░ рддрджрдиреБрд╕рд╛рд░ рдмрд╣реБрдд рд╕рдордорд┐рдд рдПрдирдПрдЯреА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЯреВрдЯ рдЬрд╛рдПрдЧрд╛ред рдмреЗрд╢рдХ, рдпрджрд┐ рдЖрдк рджреБрд░реНрдШрдЯрдирд╛ рд╕реЗ рдПрдХ рдмрдВрджрд░рдЧрд╛рд╣ рдХрд╛ рдЪрдпрди рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдЪрд╛рд▓ рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧреАред
рдЦреИрд░, рд╣рдо рд▓реЗрдЦ рдХреЗ рд╕рд╛рд░ рдФрд░ рдЙрджреНрджреЗрд╢реНрдп рдХреЗ рд▓рд┐рдП рдорд┐рд▓ рдЧрдПред рдкреНрд░рд╢реНрди рдХрд╛ рдЙрддреНрддрд░ рджреЗрдВ
"рдХреНрдпрд╛ рдкреЛрд░реНрдЯ рдФрд░ рдбреЗрд▓реНрдЯрд╛ рдХреЗ рдЖрд╡рдВрдЯрди рдХреЗ рд▓рд┐рдП рдПрдХ рдирд┐рдпрдо рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ, NAT'om рдХреЗ рдкреАрдЫреЗ?"рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЗрд╕ STUN рдореЗрдВ рд╣рдорд╛рд░реА рдорджрдж рдХрд░реЗрдЧрд╛ред рд╣рдорд╛рд░рд╛ рдХрд╛рдо рдПрдХ рд╕реЙрдХреЗрдЯ (рдПрдХ рд╕реНрдерд╛рдиреАрдп рдкреЛрд░реНрдЯ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╡рд┐рднрд┐рдиреНрди рдкрддреЛрдВ рдФрд░ рдмрдВрджрд░рдЧрд╛рд╣реЛрдВ рдХреЗ рд▓рд┐рдП рдЪрд╛рд░ рдЕрдиреБрд░реЛрдз рдХрд░рдирд╛ рд╣реИ рдФрд░ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд░рдирд╛ рд╣реИ:
рд╣рдо рд╕рдордЭ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЖрдЙрдЯрдЧреЛрдЗрдВрдЧ рдкреЛрд░реНрдЯ рдХреИрд╕реЗ рдЖрд╡рдВрдЯрд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ (рдкрддрд╛ рдпрд╛ рдкреЛрд░реНрдЯ) рдФрд░ рдЙрд╕реА рдбреЗрд▓реНрдЯрд╛ рдХреА рдЧрдгрдирд╛ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред
рдФрд░ рдлрд┐рд░ рдореИрдВ рдЖрдБрдХрдбрд╝реЛрдВ рдХреЗ рд╕рд╛рде рдореЗрд░реА рдорджрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдЧреНрд░рд╣ рдХрд░рддрд╛ рд╣реВрдВред рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░, рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдЕрдЪреЗрдд рдЧреНрд░рд╛рд╣рдХ рдкрд╛рдпрд╛ рдЧрдпрд╛ рдерд╛, рдпрд╣ рдПрдХ рд╕реНрд▓реЗрдЬрд╣реЗрдорд░ рдХреЗ рд╕рд╛рде рдереЛрдбрд╝рд╛ рдХрдо рдерд╛ рдФрд░ рдпрд╣реА рд╣реБрдЖ:
рд╕реНрд░реЛрдд рдХреЛрдбрд▓рд┐рдирдХреНрд╕ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдпрд╣ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдирд╛ рдЬрд╛рдирддреЗ рд╣реИрдВред
рдЗрд╕ рддрд░рд╣gcc -lpthread -o stun stun.c
рд╡рд┐рдВрдбреЛрдЬ рдХреЗ рддрд╣рдд рдпрд╣ рд╕реНрдЯреВрдбрд┐рдпреЛ рдХреЗ рд╕рд╛рде рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдВрдХрд▓рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдпрд╣рд╛рдВ
рдмрд╛рдЗрдирд░реА рд╣реИ рдпрджрд┐ рд╕реНрдЯреВрдбрд┐рдпреЛ рд╣рд╛рде рдореЗрдВ рдирд╣реАрдВ рд╣реИред
рдореБрдЭреЗ рд╣рдмрд▓ рдкреНрд░рднрд╛рд╡ рдХреЗ рд▓рд┐рдП stun.counterpath.net рдорд╛рдл рдХрд░ рджреЛ :)рдпрд╣рд╛рдБ рдореЗрд░реЗ рдкрд░рд┐рдгрд╛рдо рд╣реИрдВ, рд▓реЗрдХрд┐рди рдореЗрд░реЗ рдкрд╛рд╕ рд╕рдордорд┐рдд рдПрдирдПрдЯреА рдирд╣реАрдВ рд╣реИ рдФрд░ рдпрд╣ рджрд┐рд▓рдЪрд╕реНрдк рдирд╣реАрдВ рд╣реИ:
рдкрд░рд┐рдгрд╛рдо
рдкрд░реАрдХреНрд╖рдг: 1010
NAT рд╡рд░реНрддрдорд╛рди: 1
рдкрд╣рд▓рд╛ рд╕рдВрд░рдХреНрд╖рд┐рдд рдмрдВрджрд░рдЧрд╛рд╣: рез
рдкреЛрд░реНрдЯ рдХреЛ рд╕рдВрд░рдХреНрд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ: 0
рдкреНрд░рдХрд╛рд░: рдкреЛрд░реНрдЯ рдкреНрд░рддрд┐рдмрдВрдзрд┐рдд NAT
рдореИрдк рдХрд┐рдП рдЧрдП рдкреЛрд░реНрдЯ: 55907 55907 55907 55907рдЖрдкрдХреА рдорджрдж рдХреЗ рд▓рд┐рдП рдЖрдк рд╕рднреА рдХрд╛ рдзрдиреНрдпрд╡рд╛рдж!
udp: рдХреГрдкрдпрд╛ рдЕрдкрдиреЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЛ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рдЫреЛрдбрд╝ рджреЗрдВ, рднрд▓реЗ рд╣реА NAT рд╕рдордорд┐рдд рди рд╣реЛред рджрд░рдЕрд╕рд▓, рдХрд┐рд╕реА рднреА рдорд╛рдорд▓реЗ рдореЗрдВ, рдкреНрд░рдХрд╛рд░ рд╕реЗ рдкрд┐рдирдЖрдЙрдЯ рдЬрд╛рдирдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред