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

පළ කළා පැකට් පෙරහන මුදා හැරීම nftables 0.9.4, IPv6, IPv4, ARP සහ ජාල පාලම් සඳහා පැකට් පෙරීමේ අතුරුමුහුණත් ඒකාබද්ධ කිරීම මගින් iptables, ip6table, arptables සහ ebtables සඳහා ආදේශකයක් ලෙස සංවර්ධනය වෙමින් පවතී. nftables පැකේජයට පරිශීලක අවකාශයේ ක්‍රියාත්මක වන පැකට් පෙරහන් සංරචක ඇතුළත් වන අතර කර්නල් මට්ටමේ කාර්යය සපයනු ලබන්නේ nf_tables උප පද්ධතිය මගිනි, එය 3.13 නිකුතුවේ සිට Linux කර්නලයේ කොටසක් වේ. nftables 0.9.4 නිකුතුව ක්‍රියා කිරීමට අවශ්‍ය වෙනස්කම් අනාගත කර්නල් ශාඛාවේ ඇතුළත් වේ. Linux 5.6.

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

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

  • සම්බන්ධතා වල පරාසයන් සඳහා සහාය (සම්බන්ධ කිරීම, සංසන්දනය සරල කරන ඇතැම් ලිපින මිටි සහ වරායන්). උදාහරණයක් ලෙස, "සුදු ලේඛන" කුලකයක් සඳහා, එහි මූලද්‍රව්‍ය ඇමුණුමක් වන අතර, "අන්ත‍්‍රය" ධජය සඳහන් කිරීමෙන්, කට්ටලයට ඇමුණුමේ පරාසයන් ඇතුළත් විය හැකි බව පෙන්වයි ("ipv4_addr . ipv4_addr . inet_service" ඇමුණුම සඳහා කලින් නිවැරදිව ලැයිස්තුගත කිරීමට හැකි විය. "192.168.10.35. 192.68.11.123" පෝරමයේ ගැලපීම්, සහ දැන් ඔබට "80-192.168.10.35-192.168.10.40-192.68.11.123

    වගුව ip foo {
    සුදු ලැයිස්තුව සකසන්න {
    ipv4_addr ටයිප් කරන්න. ipv4_addr. inet_service
    කොඩි පරතරය
    මූලද්රව්ය = { 192.168.10.35-192.168.10.40 . 192.68.11.123-192.168.11.125. 80}
    }

    දාම තීරුව {
    ටයිප් ෆිල්ටර් කොක්ක ප්‍රමුඛතා පෙරහන පෙරහුරු; ප්රතිපත්ති පහත වැටීම;
    ip saddr. ip daddr. tcp dport @whitelist පිළිගන්න
    }
    }

  • කට්ටල සහ සිතියම් ලැයිස්තු වල, ගැලපෙන විට මූලද්රව්යයේ ආකෘතිය තීරණය කරන "typeof" විධානය භාවිතා කළ හැකිය.
    උදාහරණ වශයෙන්:

    වගුව ip foo {
    සුදු ලැයිස්තුව සකසන්න {
    ip saddr වර්ගය
    මූලද්‍රව්‍ය = { 192.168.10.35, 192.168.10.101, 192.168.10.135 }
    }

    දාම තීරුව {
    ටයිප් ෆිල්ටර් කොක්ක ප්‍රමුඛතා පෙරහන පෙරහුරු; ප්රතිපත්ති පහත වැටීම;
    ip daddr @ whitelist පිළිගන්න
    }
    }

    වගුව ip foo {
    සිතියම addr2mark {
    ip saddr වර්ගය: මෙටා ලකුණ
    මූලද්‍රව්‍ය = { 192.168.10.35 : 0x00000001, 192.168.10.135 : 0x00000002 }
    }
    }

  • සිතියම් ලැයිස්තු හෝ නම් කරන ලද කට්ටල මත පදනම්ව NAT පරිවර්තන නිර්වචනය කිරීමේදී ලිපිනයක් සහ වරායක් නියම කිරීමට ඔබට ඉඩ සලසන NAT බන්ධනවල සන්ධි භාවිතා කිරීමේ හැකියාව එක් කරන ලදී:

    nft add rule ip nat pre dnat ip addr. port to ip saddr සිතියම { 1.1.1.1 : 2.2.2.2 . තිස් }

    nft සිතියම එකතු කරන්න ip nat ගමනාන්ත { type ipv4_addr . inet_service: ipv4_addr. inet_service \\; }
    nft add rule ip nat pre dnat ip addr. port to ip saddr. tcp dport සිතියම @ ගමනාන්ත

  • ජාල කාඩ්පත මගින් සිදු කරනු ලබන සමහර පෙරීමේ මෙහෙයුම් සමඟ දෘඪාංග ත්වරණය සඳහා සහාය. ත්වරණය ethtool උපයෝගීතාව හරහා සක්‍රීය කර ඇත (“ethtool -K eth0 hw-tc-offload on”), ඉන්පසු එය “offload” ධජය භාවිතයෙන් ප්‍රධාන දාමය සඳහා nftables තුළ සක්‍රිය කෙරේ. Linux kernel 5.6 භාවිතා කරන විට, දෘඪාංග ත්වරණය ශීර්ෂ ක්ෂේත්‍ර ගැලපීම සහ ලැබෙන අතුරුමුහුණත් පරීක්‍ෂාව සඳහා ලබා ගැනීම, ඉවතලීම, අනුපිටපත් කිරීම (dup) සහ ඉදිරියට යැවීම (fwd) පැකට් සමඟ ඒකාබද්ධව සහාය වේ. පහත උදාහරණයේ, 192.168.30.20 ලිපිනයෙන් එන පැකට් අතහැරීමේ මෙහෙයුම්, පැකට් කර්නලය වෙත යැවීමෙන් තොරව ජාල කාඩ්පත් මට්ටමින් සිදු කෙරේ:

    # cat file.nft
    වගුව netdev x {
    දාමය y {
    ටයිප් ෆිල්ටර් කොක්ක ඇතුල් කිරීමේ උපාංගය eth0 ප්‍රමුඛතාවය 10; ධජ ඉවත් කිරීම;
    ip saddr 192.168.30.20 drop
    }
    }
    # nft -f file.nft

  • රීති වල දෝෂයක් ඇති ස්ථානය පිළිබඳ වැඩි දියුණු කළ තොරතුරු.

    # nft මකන්න රීතිය ip yz හසුරුව 7
    දෝෂය: රීතිය සැකසීමට නොහැකි විය: එවැනි ගොනුවක් හෝ නාමාවලියක් නොමැත
    රීතිය ip yz හසුරුව මකන්න 7
    ^

    # nft මකන්න රීතිය ip xx හසුරුව 7
    දෝෂය: රීතිය සැකසීමට නොහැකි විය: එවැනි ගොනුවක් හෝ නාමාවලියක් නොමැත
    රීතිය ip xx හසුරුව 7 මකන්න
    ^

    # nft table twst මකන්න
    දෝෂය: එවැනි ගොනුවක් හෝ නාමාවලියක් නැත; ඔබ අදහස් කළේ පවුලේ ip හි වගුව 'පරීක්‍ෂණය' ද?
    table twst මකන්න
    ^^^^

    පළමු උදාහරණයෙන් පෙන්නුම් කරන්නේ “y” වගුව පද්ධතියේ නොමැති බවත්, දෙවැන්න “7” හසුරුවන්නා නැති බවත්, තෙවනුව වගුවේ නම ටයිප් කිරීමේදී ටයිප් ප්‍රේරකයක් දර්ශනය වන බවත්ය.

  • "meta sdif" හෝ "meta sdifname" සඳහන් කිරීමෙන් වහල් අතුරුමුහුණත පරීක්ෂා කිරීම සඳහා සහය එකතු කරන ලදි:

    ... meta sdifname vrf1 ...

  • දකුණු හෝ වම් මාරු මෙහෙයුම් සඳහා සහය එක් කරන ලදී. උදාහරණයක් ලෙස, දැනට පවතින පැකට් ලේබලයක් බිට් 1 කින් වමට මාරු කිරීමට සහ සුළු බිට් 1 ලෙස සැකසීමට:

    … meta mark set meta mark lshift 1 හෝ 0x1 …

  • විස්තීරණ අනුවාද තොරතුරු සංදර්ශන කිරීමට "-V" විකල්පය ක්‍රියාත්මක කරන ලදී.

    # nft -V
    nftables v0.9.4 (Jive at Five)
    cli:කියවන රේඛාව
    json: ඔව්
    minigmp: නැත
    libxtables: ඔව්

  • විධාන රේඛා විකල්ප දැන් විධාන වලට පෙර සඳහන් කළ යුතුය. උදාහරණයක් ලෙස, ඔබට “nft -a list ruleset” සඳහන් කිරීමට අවශ්‍ය වන අතර, “nft list ruleset -a” ධාවනය කිරීම දෝෂයක් ඇති කරයි.

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

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