nftables ፓኬት ማጣሪያ 0.9.4 መለቀቅ

የታተመ የፓኬት ማጣሪያ መለቀቅ nftables 0.9.4ለ IPv6, IPv4, ARP እና የአውታረ መረብ ድልድዮች የፓኬት ማጣሪያ መገናኛዎችን በማዋሃድ ለ iptables, ip6table, arptables እና ebtables ምትክ በማደግ ላይ. የ nftables ጥቅል በተጠቃሚ ቦታ ውስጥ የሚሰሩ የፓኬት ማጣሪያ ክፍሎችን ያካትታል፣ የከርነል ደረጃ ስራው ደግሞ በ nf_tables ንዑስ ሲስተም የቀረበ ሲሆን 3.13 ከተለቀቀ በኋላ የሊኑክስ ከርነል አካል ነው። ለ nftables 0.9.4 መልቀቅ አስፈላጊ የሆኑ ለውጦች ወደፊት የከርነል ቅርንጫፍ ውስጥ ተካትተዋል። Linux 5.6.

የከርነል ደረጃ ከፓኬቶች መረጃን ለማውጣት፣ የውሂብ ስራዎችን ለማከናወን እና ፍሰትን ለመቆጣጠር መሰረታዊ ተግባራትን የሚያቀርብ አጠቃላይ ፕሮቶኮል-ገለልተኛ በይነገጽ ብቻ ይሰጣል። የማጣራት ደንቦቹ እና ፕሮቶኮል-ተኮር ተቆጣጣሪዎች በተጠቃሚ ቦታ ውስጥ በባይቴኮድ ይጠናቀቃሉ ፣ ከዚያ በኋላ ይህ ባይት ኮድ የኔትሊንክ በይነገጽን በመጠቀም ወደ ከርነል ተጭኖ በልዩ ቨርቹዋል ማሽን ውስጥ BPF (በርክሌይ ፓኬት ማጣሪያዎች) የሚያስታውስ በከርነል ውስጥ ይፈጸማል። ይህ አቀራረብ በከርነል ደረጃ የሚሰራውን የማጣሪያ ኮድ መጠን በከፍተኛ ሁኔታ እንዲቀንሱ እና ሁሉንም የመተንተን ደንቦችን እና ከፕሮቶኮሎች ጋር አብሮ ለመስራት አመክንዮ ወደ ተጠቃሚ ቦታ እንዲወስዱ ያስችልዎታል።

ዋና ፈጠራዎች፡-

  • በግንኙነቶች ውስጥ ላሉ ክልሎች ድጋፍ (መገጣጠም ፣ ንፅፅርን የሚያቃልሉ የተወሰኑ የአድራሻ ጥቅሎች እና ወደቦች)። ለምሳሌ፣ ንጥረ ነገሮቹ አባሪ ለሆኑት "ነጭ ሊስት" ስብስብ፣ የ" ክፍተት" ባንዲራ መግለጹ ስብስቡ በአባሪው ውስጥ ያሉትን ክልሎች ሊያካትት እንደሚችል ያሳያል (ለአባሪው "ipv4_addr . ipv4_addr . ipv192.168.10.35_addr . inet_service" በትክክል መዘርዘር ይቻል ነበር። ከቅጹ "192.68.11.123. 80" ጋር ይዛመዳል, እና አሁን የአድራሻ ቡድኖችን "192.168.10.35-192.168.10.40-192.68.11.123" መለየት ይችላሉ.

    ጠረጴዛ ip foo {
    የተፈቀደ ዝርዝር አዘጋጅ {
    ipv4_addr ይተይቡ። ipv4_adr. inet_አገልግሎት
    የባንዲራዎች ክፍተት
    ንጥረ ነገሮች = {192.168.10.35-192.168.10.40. 192.68.11.123-192.168.11.125. 80}
    }

    ሰንሰለት አሞሌ {
    አይነት ማጣሪያ መንጠቆ ቀዳሚ ማጣሪያ; የፖሊሲ ውድቀት;
    ip saddr. ip አባት. tcp dport @whitelist ተቀበል
    }
    }

  • በስብስብ እና በካርታ ዝርዝሮች ውስጥ የ "ዓይነት" መመሪያን መጠቀም ይቻላል, ይህም በሚዛመድበት ጊዜ የንጥሉን ቅርጸት ይወስናል.
    ለምሳሌ:

    ጠረጴዛ ip foo {
    የተፈቀደ ዝርዝር አዘጋጅ {
    ዓይነት ip saddr
    ንጥረ ነገሮች = {192.168.10.35, 192.168.10.101, 192.168.10.135}
    }

    ሰንሰለት አሞሌ {
    አይነት ማጣሪያ መንጠቆ ቀዳሚ ማጣሪያ; የፖሊሲ ውድቀት;
    ip daddr @whitelist ተቀበል
    }
    }

    ጠረጴዛ ip foo {
    ካርታ addr2mark {
    typeof ip saddr: ሜታ ምልክት
    ንጥረ ነገሮች = {192.168.10.35: 0x00000001, 192.168.10.135: 0x00000002}
    }
    }

  • በ NAT ማሰሪያዎች ውስጥ መቀላቀልን የመጠቀም ችሎታ ታክሏል ፣ ይህም በካርታ ዝርዝሮች ወይም በተሰየሙ ስብስቦች ላይ በመመስረት የ NAT ለውጦችን ሲገልጹ አድራሻ እና ወደብ እንዲገልጹ ያስችልዎታል።

    nft add rule ip nat pre dnat ip addr . ወደብ ወደ ip saddr ካርታ (1.1.1.1: 2.2.2.2). ሰላሳ }

    nft add ካርታ ip nat መድረሻዎች {ipv4_addr ይተይቡ። inet_አገልግሎት፡ ipv4_adr. inet_አገልግሎት \\; }
    nft add rule ip nat pre dnat ip addr . ወደብ ወደ ip saddr. tcp dport ካርታ @ መድረሻዎች

  • በሃርድዌር ማጣደፍ ድጋፍ በኔትወርክ ካርድ ከተከናወኑ አንዳንድ የማጣሪያ ስራዎች ጋር። ማጣደፍ የሚነቃው በethtool መገልገያ በኩል ነው ("ethtool -K eth0 hw-tc-offload on")፣ ከዚያ በኋላ የ"offload" ባንዲራ በመጠቀም ለዋናው ሰንሰለት በ nftables ውስጥ እንዲነቃ ይደረጋል። የሊኑክስ ከርነል 5.6ን በሚጠቀሙበት ጊዜ የሃርድዌር ማጣደፍ ከራስጌ መስክ ማዛመድ እና መጪ የበይነገጽ ፍተሻ ከመቀበል፣ ከመጣል፣ ከማባዛት (ዱፕ) እና ከማስተላለፊያ (fwd) ፓኬቶች ጋር በማጣመር ይደገፋል። ከዚህ በታች ባለው ምሳሌ ፣ ከ 192.168.30.20 አድራሻ የሚመጡ እሽጎች የመጣል ስራዎች በአውታረ መረብ ካርድ ደረጃ ይከናወናሉ ፣ እሽጎቹን ወደ ከርነል ሳያስተላልፉ ።

    # ድመት ፋይል.nft
    ጠረጴዛ netdev x {
    ሰንሰለት y {
    አይነት ማጣሪያ መንጠቆ ማስገቢያ መሣሪያ eth0 ቅድሚያ 10; ባንዲራዎች ከተጫነ;
    ip saddr 192.168.30.20 ነጠብጣብ
    }
    }
    # nft -f file.nft

  • በህጎቹ ውስጥ ስለ ስህተት ቦታ የተሻሻለ መረጃ.

    # nft ሰርዝ ደንብ ip yz እጀታ 7
    ስህተት፡ ህግን ማስኬድ አልተቻለም፡ እንደዚህ ያለ ፋይል ወይም ማውጫ የለም።
    ደንብ ip yz handle 7 ሰርዝ
    ^

    # nft ሰርዝ ደንብ ip xx እጀታ 7
    ስህተት፡ ህግን ማስኬድ አልተቻለም፡ እንደዚህ ያለ ፋይል ወይም ማውጫ የለም።
    የአይፒ xx መመሪያን ሰርዝ 7
    ^

    # nft ሠንጠረዥን አጥፋ
    ስህተት: እንደዚህ ያለ ፋይል ወይም ማውጫ የለም; በቤተሰብ ip ውስጥ የጠረጴዛ ሙከራ ማለትዎ ነውን?
    ሠንጠረዥን twst ሰርዝ
    ^^^^

    የመጀመሪያው ምሳሌ የሚያሳየው ጠረጴዛው "y" በሲስተሙ ውስጥ አለመኖሩን ነው, ሁለተኛው "7" ተቆጣጣሪው ጠፍቷል, ሶስተኛው ደግሞ የጠረጴዛውን ስም በሚተይቡበት ጊዜ የትየባ ጥያቄ ይታያል.

  • “ሜታ sdif” ወይም “meta sdifname”ን በመግለጽ የባሪያን በይነገጽ ለመፈተሽ ተጨማሪ ድጋፍ፡-

    ሜታ ስዲፍ ስም vrf1 ...

  • ለቀኝ ወይም ለግራ ፈረቃ ስራዎች ድጋፍ ታክሏል። ለምሳሌ፣ ያለውን የፓኬት መለያ በ1 ቢት ወደ ግራ ለመቀየር እና ትንሹን ወደ 1 ለማቀናበር፡-

    ሜታ ማርክ የሜታ ምልክት lshift 1 ወይም 0x1 አዘጋጅቷል…

  • የተራዘመ የስሪት መረጃን ለማሳየት የ"-V" አማራጭ ተተግብሯል።

    # nft -V
    nftables v0.9.4 (Jive at Five)
    cli: readline
    json: አዎ
    minigmp: አይደለም
    libxtables: አዎ

  • የትእዛዝ መስመር አማራጮች አሁን ከትእዛዞች በፊት መገለጽ አለባቸው። ለምሳሌ፣ “nft-a list ruleset” ን መግለጽ ያስፈልግዎታል፣ እና “nft list ruleset -a” ን ማስኬድ ስህተትን ያስከትላል።

    ምንጭ: opennet.ru

አስተያየት ያክሉ