Бүгүн бир катар ири DNS сервистери жана DNS сервер өндүрүүчүлөрү биргелешкен иш-чара өткөрүшөт көңүл буруу үчүн иштелип чыккан чоң DNS билдирүүлөрдү иштетүүдө IP фрагментация менен. Бул экинчи мындай иш-чара, өткөн жылы "DNS желек күнү" EDNS суроо-талаптарын туура иштетүү боюнча.
DNS желек күнү 2020 демилгесинин катышуучулары EDNS үчүн сунушталган буфер өлчөмдөрүн 1232 байтка (MTU өлчөмү 1280 минус 48 байт темалар үчүн) бекитүүнү талап кылышууда. TCP аркылуу суроо-талаптарды иштетүү серверлерде болушу керек функция. IN UDP аркылуу суроо-талаптарды иштетүү үчүн гана колдоо милдеттүү деп белгиленет, ал эми TCP керектүү катары тизмеленген, бирок иштөө үчүн талап кылынбайт. Жаңы и TCP'ди DNS'тин туура иштеши үчүн талап кылынган мүмкүнчүлүк катары ачык тизмектеңиз. Демилге EDNS буферинин белгиленген өлчөмү жетишсиз болгон учурларда UDP аркылуу суроо-талаптарды жөнөтүүдөн TCP колдонууга өтүүнү мажбурлоону сунуштайт.
Сунушталган өзгөртүүлөр EDNS буферинин өлчөмүн тандоодогу башаламандыкты жок кылат жана чоң UDP билдирүүлөрүнүн фрагментация маселесин чечет, аларды иштетүү көбүнчө пакеттин жоголушуна жана кардар тарапта күтүү убактысынын үзгүлтүккө учурашына алып келет. Кардар тарабында EDNS буферинин өлчөмү туруктуу болот жана чоң жооптор дароо TCP аркылуу кардарга жөнөтүлөт. UDP аркылуу чоң билдирүүлөрдү жөнөтүүдөн качуу, ошондой эле чоң пакеттердин айрым брандмауэрлерге түшүрүлүшү менен байланышкан көйгөйлөрдү чечип, бөгөт коюуга мүмкүндүк берет. фрагменттелген UDP пакеттерин манипуляциялоого негизделген DNS кэш уулануу боюнча (фрагменттерге бөлүнгөндө, экинчи фрагмент идентификатору бар башты камтыбайт, ошондуктан аны жасалмалоого болот, ал үчүн текшерүү суммасына дал келүү жетиштүү).
Бүгүнтөн баштап DNS провайдерлери, анын ичинде CloudFlare, Quad 9, Cisco (OpenDNS) жана Google, DNS серверлериндеги EDNS буферинин өлчөмү 4096дан 1232 байтка чейин (EDNS өзгөрүүсү 4-6 жумага жайылып, убакыттын өтүшү менен өсүп жаткан суроо-талаптарды камтыйт). Жаңы чекке туура келбеген UDP сурамдарына жооптор TCP аркылуу жөнөтүлөт. DNS серверинин сатуучулары, анын ичинде BIND, Unbound, Knot, NSD жана PowerDNS демейки EDNS буферинин өлчөмүн 4096 байттан 1232 байтка чейин өзгөртүү үчүн жаңыртууларды чыгарышат.
Акыр-аягы, бул өзгөртүүлөр UDP DNS жооптору 1232 байттан ашкан жана TCP жообун жөнөтө албаган DNS серверлерине кирүүдө чечүү көйгөйлөрүнө алып келиши мүмкүн. Google'да жүргүзүлгөн эксперимент EDNS буферинин өлчөмүн өзгөртүү бузулуу ылдамдыгына дээрлик эч кандай таасир этпей турганын көрсөттү - буфер 4096 байт менен, кыскартылган UDP сурамдарынын саны 0.345%, TCP аркылуу жеткиликсиз кайра аракеттердин саны 0.115%. 1232 байт буфер менен бул көрсөткүчтөр 0.367% жана 0.116% түзөт. TCP колдоосун талап кылынган DNS өзгөчөлүгү кылуу DNS серверлеринин 0.1%га жакынында көйгөйлөрдү жаратат. Заманбап шарттарда TCPсиз бул серверлердин иштеши ансыз деле туруксуз экендиги белгиленген.
Авторитеттүү DNS серверлеринин администраторлору алардын сервери 53 тармак портундагы TCP аркылуу жооп беришин жана бул TCP портунун брандмауэр тарабынан бөгөттөлбөгөнүн камсыз кылышы керек. Белгилүү DNS сервери андан чоңураак UDP жоопторун жөнөтпөшү керек
суралган EDNS буфер өлчөмү. Сервердин өзүндө EDNS буферинин өлчөмү 1232 байтка коюлушу керек. Резолверлердин болжол менен бирдей талаптары бар - TCP аркылуу милдеттүү түрдө жооп берүү жөндөмдүүлүгү, кыскартылган UDP жообун алууда TCP аркылуу кайталанган суроо-талаптарды жөнөтүүнү милдеттүү колдоо жана EDNS буферин 1232 байтка коюу.
Төмөнкү параметрлер ар кандай DNS серверлеринде EDNS буферинин өлчөмүн орнотуу үчүн жооптуу:
параметрлер {
edns-udp-size 1232;
max-udp-size 1232;
};
максимум-udp-жүктөө: 1232
net.bufsize(1232)
udp-кесүү босогосу=1232
edns-outgoing-bufsize=1232
udp-кесүү босогосу=1232
edns-buffer-size: 1232
ipv4-edns-өлчөмү: 1232
ipv6-edns-өлчөмү: 1232
Source: opennet.ru
