nftables පැකට් පෙරහන නිකුතුව 0.9.9

IPv0.9.9, IPv4, ARP සහ ජාල පාලම් සඳහා (iptables, ip6table, arptables සහ ebtables ප්‍රතිස්ථාපනය කිරීම අරමුණු කරගත්) පැකට් පෙරහන් අතුරුමුහුණත් ඒකාබද්ධ කරමින්, packet filter nftables 6 නිකුත් කිරීම ප්‍රකාශයට පත් කර ඇත. ඒ සමගම, nf_tables උපපද්ධතිය සමඟ අන්තර්ක්‍රියා කිරීම සඳහා පහත් මට්ටමේ API සපයන සහකාර පුස්තකාලය libnftnl 1.2.0 නිකුත් කිරීම ප්‍රකාශයට පත් කරන ලදී. nftables 0.9.9 නිකුතුව ක්‍රියා කිරීමට අවශ්‍ය වෙනස්කම් Linux kernel 5.13-rc1 හි ඇතුළත් කර ඇත.

nftables පැකේජයට පරිශීලක අවකාශයේ ක්‍රියාත්මක වන පැකට් පෙරහන් සංරචක ඇතුළත් වන අතර කර්නල් මට්ටමේ කාර්යය සපයනු ලබන්නේ nf_tables උප පද්ධතිය මගිනි, එය 3.13 නිකුතුවේ සිට Linux කර්නලයේ කොටසක් වේ. කර්නල් මට්ටම සපයනු ලබන්නේ පැකට් වලින් දත්ත උපුටා ගැනීම, දත්ත මෙහෙයුම් සිදු කිරීම සහ ප්‍රවාහ පාලනය සඳහා මූලික කාර්යයන් සපයන සාමාන්‍ය ප්‍රොටෝකෝල-ස්වාධීන අතුරු මුහුණතක් පමණි.

පෙරීමේ රීති සහ ප්‍රොටෝකෝල-විශේෂිත හසුරුවන්නන් පරිශීලක අවකාශයේ බයිට්කේතයට සම්පාදනය කරනු ලැබේ, ඉන්පසු මෙම බයිට්කේතය Netlink අතුරුමුහුණත භාවිතයෙන් කර්නලයට පටවනු ලබන අතර BPF (Berkeley Packet Filters) සිහිගන්වන විශේෂ අථත්‍ය යන්ත්‍රයක කර්නලය තුළ ක්‍රියාත්මක වේ. මෙම ප්‍රවේශය මඟින් කර්නල් මට්ටමින් ක්‍රියාත්මක වන පෙරහන් කේතයේ ප්‍රමාණය සැලකිය යුතු ලෙස අඩු කිරීමට සහ ප්‍රොටෝකෝල සමඟ වැඩ කිරීම සඳහා විග්‍රහ කිරීමේ නීති සහ තර්කනයේ සියලුම කාර්යයන් පරිශීලක අවකාශයට ගෙන යාමට ඔබට ඉඩ සලසයි.

ප්රධාන නවෝත්පාදන:

  • 'offload' ධජය භාවිතයෙන් සක්‍රීය කර ඇති ප්‍රවාහ වගු සැකසුම් ජාල ඇඩැප්ටරය පැත්තට ගෙනයාමේ හැකියාව ක්‍රියාත්මක කර ඇත. Flowtable යනු පැකට් යළි හරවා යැවීමේ මාර්ගය ප්‍රශස්ත කිරීම සඳහා වන යාන්ත්‍රණයකි, එහි සියලුම රීති සැකසුම් දාමවල සම්පූර්ණ ඡේදය පළමු පැකට්ටුවට පමණක් යොදන අතර ප්‍රවාහයේ ඇති අනෙකුත් සියලුම පැකට් සෘජුවම යොමු කෙරේ. table ip ගෝලීය {flowtable f { hook ingress priority filter + 1 devices = { lan3, lan0, wan } flags offload } chain forward { type filter hook forward priority filter; ප්රතිපත්ති පිළිගැනීම; ip ප්‍රොටෝකෝලය { tcp, udp } ප්‍රවාහය එකතු කරන්න @f } දාම පෝස්ට් {type nat hook postrouting priority filter; ප්රතිපත්ති පිළිගැනීම; oifname "wan" වෙස් මුහුණු } }
  • ක්‍රියාවලියක් මගින් වගුවේ සුවිශේෂී භාවිතය සහතික කිරීම සඳහා හිමිකරු ධජයක් වගුවකට ඇමිණීම සඳහා සහය එක් කරන ලදී. ක්‍රියාවලියක් අවසන් වූ විට, එයට සම්බන්ධ වගුව ස්වයංක්‍රීයව මකා දැමෙනු ඇත. ක්‍රියාවලිය පිළිබඳ තොරතුරු විවරණයක ආකාරයෙන් රීති ඩම්ප් හි ප්‍රදර්ශනය කෙරේ: වගුව ip x { # progname nft flags owner chain y { type filter hook input priority filter; ප්රතිපත්ති පිළිගැනීම; කවුන්ටර පැකට් 1 බයිට් 309 } }
  • IEEE 802.1ad පිරිවිතර (VLAN stacking හෝ QinQ) සඳහා සහය එක් කරන ලදී, එය බහු VLAN ටැග් තනි ඊතර්නෙට් රාමුවකට ආදේශ කිරීමේ මාධ්‍යයක් නිර්වචනය කරයි. උදාහරණයක් ලෙස, බාහිර ඊතර්නෙට් රාමු 8021ad සහ vlan id=342 වර්ගය පරීක්ෂා කිරීමට, ඔබට ඉදිකිරීම් භාවිතා කළ හැක ... ether type 802.1ad vlan id 342 Ethernet රාමුවේ බාහිර වර්ගය පරීක්ෂා කිරීමට 8021ad/vlan id=1, nested 802.1 q/vlan id=2 සහ තවත් IP පැකට් සංග්‍රහය: ... ඊතර් වර්ගය 8021ad vlan id 1 vlan වර්ගය 8021q vlan id 2 vlan වර්ගයේ ip කවුන්ටරය
  • ඒකාබද්ධ ධුරාවලිය cgroups v2 භාවිතා කරමින් සම්පත් කළමනාකරණය සඳහා සහය එක් කරන ලදී. cgroups v2 සහ v1 අතර ඇති ප්‍රධාන වෙනස නම් CPU සම්පත් වෙන් කිරීම, මතක පරිභෝජනය නියාමනය කිරීම සහ I/O සඳහා වෙන වෙනම ධුරාවලියක් වෙනුවට සියලු වර්ගවල සම්පත් සඳහා පොදු cgroups ධුරාවලියක් භාවිතා කිරීමයි. උදාහරණයක් ලෙස, පළමු මට්ටමේ cgroupv2 හි සොකට් එකක මුතුන් මිත්තන් "system.slice" වෙස් මුහුණට ගැලපේදැයි පරීක්ෂා කිරීමට, ඔබට ඉදිකිරීම් භාවිතා කළ හැක: ... socket cgroupv2 මට්ටමේ 1 "system.slice"
  • SCTP පැකට් වල සංරචක පරීක්ෂා කිරීමේ හැකියාව එකතු කරන ලදි (මේ සඳහා අවශ්‍ය ක්‍රියාකාරීත්වය Linux කර්නලය 5.14 හි දිස්වනු ඇත). උදාහරණයක් ලෙස, පැකට්ටුවක 'දත්ත' වර්ගය සහ ක්ෂේත්‍රය 'වර්ගය' සහිත කුට්ටියක් තිබේදැයි පරීක්ෂා කිරීමට: ... sctp කුට්ටි දත්ත පවතී ... sctp කුට්ටි දත්ත වර්ගය 0
  • රීති පැටවීමේ මෙහෙයුම ක්‍රියාත්මක කිරීම “-f” ධජය භාවිතයෙන් ආසන්න වශයෙන් දෙගුණයකින් වේගවත් කර ඇත. නීති ලැයිස්තුවේ ප්‍රතිදානය ද වේගවත් කර ඇත.
  • කොඩි බිටු සකසා ඇත්දැයි පරීක්ෂා කිරීම සඳහා සංයුක්ත පෝරමයක් සපයා ඇත. උදාහරණයක් ලෙස, snot සහ dnat තත්ව බිටු සකසා නොමැති දැයි පරීක්ෂා කිරීමට, ඔබට සඳහන් කළ හැක: ... ct තත්ත්වය ! snat,dnat syn bit එක bitmask syn තුළ සකසා ඇත්දැයි පරීක්ෂා කරන්න, ack: ... tcp flags syn / syn,ack බිට්මාස්ක් syn,ack,fin,rst තුළ fin සහ rst bits සකසා නොමැති දැයි පරීක්ෂා කිරීමට ... tcp කොඩි ! = fin,rst / syn,ack,fin,rst
  • "තීරණය" මූල පදය කට්ටලය/සිතියම් ආකාරයේ අර්ථ දැක්වීම් වලට ඉඩ දෙන්න: සිතියම xm එකතු කරන්න { typeof iifname . ip ප්රොටෝකෝලය dport: තීන්දුව ;}

මූලාශ්රය: opennet.ru

අදහස් එක් කරන්න