nftables ಪ್ಯಾಕೆಟ್ ಫಿಲ್ಟರ್ 0.9.9 ಬಿಡುಗಡೆ

ಪ್ಯಾಕೆಟ್ ಫಿಲ್ಟರ್ nftables 0.9.9 ಬಿಡುಗಡೆಯನ್ನು ಪ್ರಕಟಿಸಲಾಗಿದೆ, IPv4, IPv6, ARP ಮತ್ತು ನೆಟ್‌ವರ್ಕ್ ಸೇತುವೆಗಳಿಗಾಗಿ ಪ್ಯಾಕೆಟ್ ಫಿಲ್ಟರಿಂಗ್ ಇಂಟರ್‌ಫೇಸ್‌ಗಳನ್ನು ಏಕೀಕರಿಸುತ್ತದೆ (iptables, ip6table, arptables ಮತ್ತು ebtables ಅನ್ನು ಬದಲಿಸುವ ಗುರಿಯನ್ನು ಹೊಂದಿದೆ). ಅದೇ ಸಮಯದಲ್ಲಿ, ಕಂಪ್ಯಾನಿಯನ್ ಲೈಬ್ರರಿ libnftnl 1.2.0 ಬಿಡುಗಡೆಯನ್ನು ಪ್ರಕಟಿಸಲಾಯಿತು, ಇದು nf_tables ಉಪವ್ಯವಸ್ಥೆಯೊಂದಿಗೆ ಸಂವಹನ ನಡೆಸಲು ಕಡಿಮೆ-ಮಟ್ಟದ API ಅನ್ನು ಒದಗಿಸುತ್ತದೆ. nftables 0.9.9 ಬಿಡುಗಡೆಯು ಕಾರ್ಯನಿರ್ವಹಿಸಲು ಅಗತ್ಯವಿರುವ ಬದಲಾವಣೆಗಳನ್ನು Linux ಕರ್ನಲ್ 5.13-rc1 ನಲ್ಲಿ ಸೇರಿಸಲಾಗಿದೆ.

nftables ಪ್ಯಾಕೇಜ್ ಬಳಕೆದಾರರ ಜಾಗದಲ್ಲಿ ಕಾರ್ಯನಿರ್ವಹಿಸುವ ಪ್ಯಾಕೆಟ್ ಫಿಲ್ಟರ್ ಘಟಕಗಳನ್ನು ಒಳಗೊಂಡಿದೆ, ಆದರೆ ಕರ್ನಲ್-ಮಟ್ಟದ ಕೆಲಸವನ್ನು nf_tables ಉಪವ್ಯವಸ್ಥೆಯಿಂದ ಒದಗಿಸಲಾಗುತ್ತದೆ, ಇದು ಬಿಡುಗಡೆಯಾದ 3.13 ರಿಂದ ಲಿನಕ್ಸ್ ಕರ್ನಲ್‌ನ ಭಾಗವಾಗಿದೆ. ಕರ್ನಲ್ ಮಟ್ಟವು ಪ್ಯಾಕೆಟ್‌ಗಳಿಂದ ಡೇಟಾವನ್ನು ಹೊರತೆಗೆಯಲು, ಡೇಟಾ ಕಾರ್ಯಾಚರಣೆಗಳನ್ನು ನಿರ್ವಹಿಸಲು ಮತ್ತು ಹರಿವಿನ ನಿಯಂತ್ರಣಕ್ಕೆ ಮೂಲಭೂತ ಕಾರ್ಯಗಳನ್ನು ಒದಗಿಸುವ ಸಾಮಾನ್ಯ ಪ್ರೋಟೋಕಾಲ್-ಸ್ವತಂತ್ರ ಇಂಟರ್ಫೇಸ್ ಅನ್ನು ಮಾತ್ರ ಒದಗಿಸುತ್ತದೆ.

ಫಿಲ್ಟರಿಂಗ್ ನಿಯಮಗಳು ಮತ್ತು ಪ್ರೋಟೋಕಾಲ್-ನಿರ್ದಿಷ್ಟ ಹ್ಯಾಂಡ್ಲರ್‌ಗಳನ್ನು ಯೂಸರ್-ಸ್ಪೇಸ್ ಬೈಟ್‌ಕೋಡ್‌ಗೆ ಸಂಕಲಿಸಲಾಗುತ್ತದೆ, ನಂತರ ಈ ಬೈಟ್‌ಕೋಡ್ ಅನ್ನು ನೆಟ್‌ಲಿಂಕ್ ಇಂಟರ್ಫೇಸ್ ಬಳಸಿ ಕರ್ನಲ್‌ಗೆ ಲೋಡ್ ಮಾಡಲಾಗುತ್ತದೆ ಮತ್ತು ಬಿಪಿಎಫ್ (ಬರ್ಕ್ಲಿ ಪ್ಯಾಕೆಟ್ ಫಿಲ್ಟರ್‌ಗಳು) ಹೋಲುವ ವಿಶೇಷ ವರ್ಚುವಲ್ ಗಣಕದಲ್ಲಿ ಕರ್ನಲ್‌ನಲ್ಲಿ ಕಾರ್ಯಗತಗೊಳಿಸಲಾಗುತ್ತದೆ. ಈ ವಿಧಾನವು ಕರ್ನಲ್ ಮಟ್ಟದಲ್ಲಿ ಚಾಲನೆಯಲ್ಲಿರುವ ಫಿಲ್ಟರಿಂಗ್ ಕೋಡ್‌ನ ಗಾತ್ರವನ್ನು ಗಮನಾರ್ಹವಾಗಿ ಕಡಿಮೆ ಮಾಡಲು ಮತ್ತು ಪಾರ್ಸಿಂಗ್ ನಿಯಮಗಳ ಎಲ್ಲಾ ಕಾರ್ಯಗಳನ್ನು ಮತ್ತು ಪ್ರೋಟೋಕಾಲ್‌ಗಳೊಂದಿಗೆ ಕೆಲಸ ಮಾಡುವ ತರ್ಕವನ್ನು ಬಳಕೆದಾರರ ಜಾಗಕ್ಕೆ ಸರಿಸಲು ಸಾಧ್ಯವಾಗಿಸುತ್ತದೆ.

ಮುಖ್ಯ ಆವಿಷ್ಕಾರಗಳು:

  • ಫ್ಲೋಟೇಬಲ್ ಸಂಸ್ಕರಣೆಯನ್ನು ನೆಟ್‌ವರ್ಕ್ ಅಡಾಪ್ಟರ್ ಬದಿಗೆ ಸರಿಸುವ ಸಾಮರ್ಥ್ಯವನ್ನು ಅಳವಡಿಸಲಾಗಿದೆ, 'ಆಫ್‌ಲೋಡ್' ಫ್ಲ್ಯಾಗ್ ಬಳಸಿ ಸಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ. ಫ್ಲೋಟೇಬಲ್ ಪ್ಯಾಕೆಟ್ ಮರುನಿರ್ದೇಶನದ ಮಾರ್ಗವನ್ನು ಉತ್ತಮಗೊಳಿಸುವ ಕಾರ್ಯವಿಧಾನವಾಗಿದೆ, ಇದರಲ್ಲಿ ಎಲ್ಲಾ ನಿಯಮ ಸಂಸ್ಕರಣಾ ಸರಪಳಿಗಳ ಸಂಪೂರ್ಣ ಅಂಗೀಕಾರವನ್ನು ಮೊದಲ ಪ್ಯಾಕೆಟ್‌ಗೆ ಮಾತ್ರ ಅನ್ವಯಿಸಲಾಗುತ್ತದೆ ಮತ್ತು ಹರಿವಿನಲ್ಲಿರುವ ಎಲ್ಲಾ ಇತರ ಪ್ಯಾಕೆಟ್‌ಗಳನ್ನು ನೇರವಾಗಿ ಫಾರ್ವರ್ಡ್ ಮಾಡಲಾಗುತ್ತದೆ. ಟೇಬಲ್ ಐಪಿ ಗ್ಲೋಬಲ್ {ಫ್ಲೋಟೇಬಲ್ ಎಫ್ {ಹುಕ್ ಪ್ರವೇಶದ ಆದ್ಯತೆಯ ಫಿಲ್ಟರ್ + 1 ಸಾಧನಗಳು = {ಲ್ಯಾನ್3, ಲ್ಯಾನ್0, ವ್ಯಾನ್ } ಫ್ಲ್ಯಾಗ್‌ಗಳು ಆಫ್‌ಲೋಡ್ } ಚೈನ್ ಫಾರ್ವರ್ಡ್ {ಟೈಪ್ ಫಿಲ್ಟರ್ ಹುಕ್ ಫಾರ್ವರ್ಡ್ ಆದ್ಯತಾ ಫಿಲ್ಟರ್; ನೀತಿ ಸ್ವೀಕರಿಸಿ; ip ಪ್ರೋಟೋಕಾಲ್ {tcp, udp } ಹರಿವು ಸೇರಿಸಿ @f } ಚೈನ್ ಪೋಸ್ಟ್ {ಟೈಪ್ ನ್ಯಾಟ್ ಹುಕ್ ಪೋಸ್ಟ್‌ರೌಟಿಂಗ್ ಆದ್ಯತಾ ಫಿಲ್ಟರ್; ನೀತಿ ಸ್ವೀಕರಿಸಿ; oif ಹೆಸರು "ವಾನ್" ಮಾಸ್ಕ್ವೆರೇಡ್ } }
  • ಪ್ರಕ್ರಿಯೆಯ ಮೂಲಕ ಟೇಬಲ್‌ನ ವಿಶೇಷ ಬಳಕೆಯನ್ನು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಲು ಮಾಲೀಕರ ಫ್ಲ್ಯಾಗ್ ಅನ್ನು ಟೇಬಲ್‌ಗೆ ಲಗತ್ತಿಸಲು ಬೆಂಬಲವನ್ನು ಸೇರಿಸಲಾಗಿದೆ. ಪ್ರಕ್ರಿಯೆಯು ಕೊನೆಗೊಂಡಾಗ, ಅದರೊಂದಿಗೆ ಸಂಯೋಜಿತವಾಗಿರುವ ಟೇಬಲ್ ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಅಳಿಸಲ್ಪಡುತ್ತದೆ. ಪ್ರಕ್ರಿಯೆಯ ಬಗ್ಗೆ ಮಾಹಿತಿಯನ್ನು ಕಾಮೆಂಟ್ ರೂಪದಲ್ಲಿ ನಿಯಮಗಳ ಡಂಪ್‌ನಲ್ಲಿ ಪ್ರದರ್ಶಿಸಲಾಗುತ್ತದೆ: ಟೇಬಲ್ ip x { # progname nft ಫ್ಲ್ಯಾಗ್‌ಗಳ ಮಾಲೀಕರ ಸರಪಳಿ y {ಟೈಪ್ ಫಿಲ್ಟರ್ ಹುಕ್ ಇನ್‌ಪುಟ್ ಆದ್ಯತೆಯ ಫಿಲ್ಟರ್; ನೀತಿ ಸ್ವೀಕರಿಸಿ; ಕೌಂಟರ್ ಪ್ಯಾಕೆಟ್‌ಗಳು 1 ಬೈಟ್‌ಗಳು 309 } }
  • IEEE 802.1ad ವಿವರಣೆಗೆ (VLAN ಪೇರಿಸುವಿಕೆ ಅಥವಾ QinQ) ಬೆಂಬಲವನ್ನು ಸೇರಿಸಲಾಗಿದೆ, ಇದು ಅನೇಕ VLAN ಟ್ಯಾಗ್‌ಗಳನ್ನು ಒಂದೇ ಎತರ್ನೆಟ್ ಫ್ರೇಮ್‌ಗೆ ಬದಲಿಸುವ ವಿಧಾನವನ್ನು ವ್ಯಾಖ್ಯಾನಿಸುತ್ತದೆ. ಉದಾಹರಣೆಗೆ, ಬಾಹ್ಯ ಈಥರ್ನೆಟ್ ಫ್ರೇಮ್ 8021ad ಮತ್ತು vlan id=342 ಪ್ರಕಾರವನ್ನು ಪರಿಶೀಲಿಸಲು, ನೀವು ನಿರ್ಮಾಣವನ್ನು ಬಳಸಬಹುದು ... ಈಥರ್ ಟೈಪ್ 802.1ad vlan id 342 ಈಥರ್ನೆಟ್ ಫ್ರೇಮ್ನ ಬಾಹ್ಯ ಪ್ರಕಾರವನ್ನು ಪರಿಶೀಲಿಸಲು 8021ad/vlan id=1, ನೆಸ್ಟೆಡ್ 802.1 q/vlan id=2 ಮತ್ತು ಮತ್ತಷ್ಟು IP ಪ್ಯಾಕೆಟ್ ಎನ್‌ಕ್ಯಾಪ್ಸುಲೇಶನ್: ... ಈಥರ್ ಪ್ರಕಾರ 8021ad vlan id 1 vlan ಪ್ರಕಾರ 8021q vlan id 2 vlan ಪ್ರಕಾರ ip ಕೌಂಟರ್
  • ಏಕೀಕೃತ ಕ್ರಮಾನುಗತ cgroups v2 ಬಳಸಿಕೊಂಡು ಸಂಪನ್ಮೂಲಗಳನ್ನು ನಿರ್ವಹಿಸಲು ಬೆಂಬಲವನ್ನು ಸೇರಿಸಲಾಗಿದೆ. cgroups v2 ಮತ್ತು v1 ನಡುವಿನ ಪ್ರಮುಖ ವ್ಯತ್ಯಾಸವೆಂದರೆ CPU ಸಂಪನ್ಮೂಲಗಳನ್ನು ನಿಯೋಜಿಸಲು ಪ್ರತ್ಯೇಕ ಶ್ರೇಣಿಗಳ ಬದಲಿಗೆ ಎಲ್ಲಾ ರೀತಿಯ ಸಂಪನ್ಮೂಲಗಳಿಗೆ ಸಾಮಾನ್ಯ cgroups ಕ್ರಮಾನುಗತವನ್ನು ಬಳಸುವುದು, ಮೆಮೊರಿ ಬಳಕೆಯನ್ನು ನಿಯಂತ್ರಿಸುವುದು ಮತ್ತು I/O ಗಾಗಿ. ಉದಾಹರಣೆಗೆ, ಮೊದಲ ಹಂತದ cgroupv2 ನಲ್ಲಿರುವ ಸಾಕೆಟ್‌ನ ಪೂರ್ವಜರು “system.slice” ಮಾಸ್ಕ್‌ಗೆ ಹೊಂದಿಕೆಯಾಗುತ್ತದೆಯೇ ಎಂಬುದನ್ನು ಪರಿಶೀಲಿಸಲು, ನೀವು ನಿರ್ಮಾಣವನ್ನು ಬಳಸಬಹುದು: ... ಸಾಕೆಟ್ cgroupv2 ಹಂತ 1 “system.slice”
  • SCTP ಪ್ಯಾಕೆಟ್‌ಗಳ ಘಟಕಗಳನ್ನು ಪರಿಶೀಲಿಸುವ ಸಾಮರ್ಥ್ಯವನ್ನು ಸೇರಿಸಲಾಗಿದೆ (ಇದಕ್ಕೆ ಅಗತ್ಯವಿರುವ ಕಾರ್ಯವು Linux 5.14 ಕರ್ನಲ್‌ನಲ್ಲಿ ಗೋಚರಿಸುತ್ತದೆ). ಉದಾಹರಣೆಗೆ, ಪ್ಯಾಕೆಟ್‌ನಲ್ಲಿ 'ಡೇಟಾ' ಮತ್ತು ಕ್ಷೇತ್ರ 'ಪ್ರಕಾರ' ಹೊಂದಿರುವ ಭಾಗವಿದೆಯೇ ಎಂದು ಪರಿಶೀಲಿಸಲು: ... sctp ಚಂಕ್ ಡೇಟಾ ಅಸ್ತಿತ್ವದಲ್ಲಿದೆ ... sctp ಚಂಕ್ ಡೇಟಾ ಪ್ರಕಾರ 0
  • ನಿಯಮ ಲೋಡಿಂಗ್ ಕಾರ್ಯಾಚರಣೆಯ ಕಾರ್ಯಗತಗೊಳಿಸುವಿಕೆಯು "-f" ಫ್ಲ್ಯಾಗ್ ಅನ್ನು ಬಳಸಿಕೊಂಡು ಸರಿಸುಮಾರು ಎರಡು ಬಾರಿ ವೇಗಗೊಳಿಸಲಾಗಿದೆ. ನಿಯಮಗಳ ಪಟ್ಟಿಯ ಔಟ್‌ಪುಟ್ ಅನ್ನು ಸಹ ವೇಗಗೊಳಿಸಲಾಗಿದೆ.
  • ಫ್ಲ್ಯಾಗ್ ಬಿಟ್‌ಗಳನ್ನು ಹೊಂದಿಸಲಾಗಿದೆಯೇ ಎಂದು ಪರಿಶೀಲಿಸಲು ಕಾಂಪ್ಯಾಕ್ಟ್ ಫಾರ್ಮ್ ಅನ್ನು ಒದಗಿಸಲಾಗಿದೆ. ಉದಾಹರಣೆಗೆ, snot ಮತ್ತು dnat ಸ್ಥಿತಿ ಬಿಟ್‌ಗಳನ್ನು ಹೊಂದಿಸಲಾಗಿಲ್ಲ ಎಂದು ಪರಿಶೀಲಿಸಲು, ನೀವು ನಿರ್ದಿಷ್ಟಪಡಿಸಬಹುದು: ... ct ಸ್ಥಿತಿ ! ಬಿಟ್‌ಮಾಸ್ಕ್ ಸಿನ್‌ನಲ್ಲಿ ಸಿನ್ ಬಿಟ್ ಅನ್ನು ಹೊಂದಿಸಲಾಗಿದೆಯೇ ಎಂದು ಪರಿಶೀಲಿಸಲು snat,dnat, ack: ... tcp ಫ್ಲ್ಯಾಗ್‌ಗಳು syn / syn, ack ಮತ್ತು rst ಬಿಟ್‌ಗಳನ್ನು ಬಿಟ್‌ಮಾಸ್ಕ್ syn, ack, fin,rst ನಲ್ಲಿ ಹೊಂದಿಸಲಾಗಿಲ್ಲ ಎಂದು ಪರಿಶೀಲಿಸಲು ... tcp ಧ್ವಜಗಳು ! = ಫಿನ್, rst / syn,ack, fin, rst
  • ಸೆಟ್/ಮ್ಯಾಪ್ ಪ್ರಕಾರದ ವ್ಯಾಖ್ಯಾನಗಳಲ್ಲಿ "ತೀರ್ಪು" ಕೀವರ್ಡ್ ಅನ್ನು ಅನುಮತಿಸಿ: ನಕ್ಷೆಯನ್ನು ಸೇರಿಸಿ xm { typeof iifname . ip ಪ್ರೋಟೋಕಾಲ್ ನೇ ಡಿಪೋರ್ಟ್: ತೀರ್ಪು ;}

ಮೂಲ: opennet.ru

ಕಾಮೆಂಟ್ ಅನ್ನು ಸೇರಿಸಿ