Linux рдХрд░реНрдирд▓рдордзреАрд▓ рднреЗрджреНрдпрддрд╛ рдЬреА UDP рдкреЕрдХреЗрдЯ рдкрд╛рдард╡реВрди рдХреНрд░реЕрд╢ рд╣реЛрдК рд╢рдХрддреЗ

рд▓рд┐рдирдХреНрд╕ рдХрд░реНрдирд▓ рдордзреНрдпреЗ рдУрд│рдЦрд▓реЗ рдЕрд╕реБрд░рдХреНрд╖рд┐рддрддрд╛ (рд╕реАрд╡реНрд╣реАрдИ- 2019-11683), рдЬреЗ рддреБрдореНрд╣рд╛рд▓рд╛ рдЦрд╛рд╕ рдбрд┐рдЭрд╛рдЗрди рдХреЗрд▓реЗрд▓реЗ UDP рдкреЕрдХреЗрдЯ (рдкреЕрдХреЗрдЯ-рдСрдл-рдбреЗрде) рдкрд╛рдард╡реВрди рджреВрд░рд╕реНрдердкрдгреЗ рд╕реЗрд╡рд╛ рдирд╛рдХрд╛рд░рдгреНрдпрд╛рдЪреА рдкрд░рд╡рд╛рдирдЧреА рджреЗрддреЗ. GRO (рдЬреЗрдиреЗрд░рд┐рдХ рд░рд┐рд╕реАрд╡реНрд╣ рдСрдлрд▓реЛрдб) рддрдВрддреНрд░рдЬреНрдЮрд╛рдирд╛рдЪреНрдпрд╛ рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреАрд╕рд╣ udp_gro_receive_segment рд╣рдБрдбрд▓рд░ (net/ipv4/udp_offload.c) рдордзреНрдпреЗ рддреНрд░реБрдЯреАрдореБрд│реЗ рд╕рдорд╕реНрдпрд╛ рдЙрджреНрднрд╡рд▓реА рдЖрд╣реЗ рдЖрдгрд┐ рд╢реВрдиреНрдп рдкреЕрдбрд┐рдВрдЧрд╕рд╣ UDP рдкреЕрдХреЗрдЯреНрд╕рд╡рд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд░рддрд╛рдирд╛ рдХрд░реНрдирд▓ рдореЗрдорд░реА рдХреНрд╖реЗрддреНрд░рд╛рдЪреНрдпрд╛ рд╕рд╛рдордЧреНрд░реАрд╕ рдиреБрдХрд╕рд╛рди рд╣реЛрдК рд╢рдХрддреЗ. (рд░рд┐рдХреНрдд рдкреЗрд▓реЛрдб).

рд╕рдорд╕реНрдпрд╛ рдлрдХреНрдд рдХрд░реНрдирд▓ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддреЗ 5.0UDP рд╕реЙрдХреЗрдЯрд╕рд╛рдареА GRO рд╕рдорд░реНрдерди рдЕрд╕рд▓реНрдпрд╛рдиреЗ рд▓рд╛рдЧреВ рдХреЗрд▓реЗ рдЧреЗрд▓реНрдпрд╛ рд╡рд░реНрд╖реА рдиреЛрд╡реНрд╣реЗрдВрдмрд░рдордзреНрдпреЗ рдЖрдгрд┐ рдлрдХреНрдд рдирд╡реАрдирддрдо рд╕реНрдерд┐рд░ рдХрд░реНрдирд▓ рдкреНрд░рдХрд╛рд╢рдирд╛рдд рдЬрд╛рдгреНрдпрд╛рдд рд╡реНрдпрд╡рд╕реНрдерд╛рдкрд┐рдд. GRO рддрдВрддреНрд░рдЬреНрдЮрд╛рди рддреБрдореНрд╣рд╛рд▓рд╛ рдЕрдиреЗрдХ рдкреЕрдХреЗрдЯреНрд╕ рдореЛрдареНрдпрд╛ рдмреНрд▓реЙрдХреНрд╕рдордзреНрдпреЗ рдПрдХрддреНрд░рд┐рдд рдХрд░реВрди рдореЛрдареНрдпрд╛ рд╕рдВрдЦреНрдпреЗрдиреЗ рдпреЗрдгрд╛рд░реНтАНрдпрд╛ рдкреЕрдХреЗрдЯреНрд╕рдЪреНрдпрд╛ рдкреНрд░рдХреНрд░рд┐рдпреЗрд▓рд╛ рдЧрддреА рджреЗрдгреНрдпрд╛рд╕ рдЕрдиреБрдорддреА рджреЗрддреЗ рдЬреНрдпрд╛рдВрдирд╛ рдкреНрд░рддреНрдпреЗрдХ рдкреЕрдХреЗрдЯрдЪреА рд╕реНрд╡рддрдВрддреНрд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЖрд╡рд╢реНрдпрдХ рдирд╕рддреЗ.
TCP рд╕рд╛рдареА, рд╕рдорд╕реНрдпрд╛ рдЙрджреНрднрд╡рдд рдирд╛рд╣реА, рдХрд╛рд░рдг рд╣рд╛ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдкреЗрд▓реЛрдбрд╢рд┐рд╡рд╛рдп рдкреЕрдХреЗрдЯ рдПрдХрддреНрд░реАрдХрд░рдгрд╛рд╕ рд╕рдорд░реНрдерди рджреЗрдд рдирд╛рд╣реА.

рдЕрд╕реБрд░рдХреНрд╖рд┐рддрддрд╛ рдЖрддрд╛рдкрд░реНрдпрдВрдд рдлрдХреНрдд рдлреЙрд░реНрдордордзреНрдпреЗ рдирд┐рд╢реНрдЪрд┐рдд рдХреЗрд▓реА рдЧреЗрд▓реА рдЖрд╣реЗ рдкреЕрдЪ, рд╕реБрдзрд╛рд░рд╛рддреНрдордХ рдЕрджреНрдпрддрди рдЕрджреНрдпрд╛рдк рдкреНрд░рдХрд╛рд╢рд┐рдд рдХреЗрд▓реЗ рдЧреЗрд▓реЗ рдирд╛рд╣реА (рдХрд╛рд▓рдЪреЗ рдЕрджреНрдпрддрди 5.0.11 рдирд┐рд░рд╛рдХрд░рдг рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдирд╛рд╣реА). рд╡рд┐рддрд░рдг рдХрд┐рдЯрдордзреВрди, рдХрд░реНрдирд▓ 5.0 рдордзреНрдпреЗ рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдХрд░рдгреНрдпрд╛рдд рд╡реНрдпрд╡рд╕реНрдерд╛рдкрд┐рдд рдХреЗрд▓реЗ рдлреЗрдбреЛрд░рд╛ 30, рдЙрдмрдВрдЯреВ 19.04, рдЖрд░реНрдХ рд▓рд┐рдирдХреНрд╕, рдЧреЗрдиреНрдЯреВ рдЖрдгрд┐ рдЗрддрд░ рд╕рддрдд рдЕрдкрдбреЗрдЯ рдХреЗрд▓реЗрд▓реЗ рд╡рд┐рддрд░рдг. рдбреЗрдмрд┐рдпрди, рдЙрдмрдВрдЯреВ 18.10 рдЖрдгрд┐ рдкреВрд░реНрд╡реАрдЪреЗ, RHEL/CentOS ╨╕ SUSE/openSUSE рд╕рдорд╕реНрдпрд╛ рдкреНрд░рднрд╛рд╡рд┐рдд рд╣реЛрдд рдирд╛рд╣реА.

рдкрд░рд┐рдгрд╛рдореА рд╕рдорд╕реНрдпрд╛ рдЖрдврд│реВрди рдЖрд▓реА рд╡рд╛рдкрд░рд╛ Google рджреНрд╡рд╛рд░реЗ рддрдпрд╛рд░ рдХреЗрд▓реЗрд▓реА рд╕реНрд╡рдпрдВрдЪрд▓рд┐рдд рдлрдЭрд┐рдВрдЧ рдЪрд╛рдЪрдгреА рдкреНрд░рдгрд╛рд▓реА syzbot рдЖрдгрд┐ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдХрд╕рди (KernelAddressSanitizer), рдореЗрдорд░реАрд╕рд╣ рдХрд╛рдо рдХрд░рддрд╛рдирд╛ рддреНрд░реБрдЯреА рдУрд│рдЦрдгреЗ рдЖрдгрд┐ рдЪреБрдХреАрдЪреНрдпрд╛ рдореЗрдорд░реА рдкреНрд░рд╡реЗрд╢рд╛рдЪреА рддрдереНрдпреЗ, рдЬрд╕реЗ рдХреА рдореЛрдХрд│реА рдореЗрдорд░реА рднрд╛рдЧрд╛рдд рдкреНрд░рд╡реЗрд╢ рдХрд░рдгреЗ рдЖрдгрд┐ рдореЗрдорд░реА рднрд╛рдЧрд╛рдд рдХреЛрдб рдареЗрд╡рдгреЗ рдпрд╛ рд╣реЗрддреВрдиреЗ рдЕрд╢рд╛ рд╣рд╛рддрд╛рд│рдгреАрд╕рд╛рдареА рд╣реЗрддреВ рдирд╛рд╣реА.

рд╕реНрддреНрд░реЛрдд: opennet.ru

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╛