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 āĻ°āĻŋāĻ˛āĻŋāĻœā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ā§€āĻ¯āĻŧ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨āĻ—ā§āĻ˛āĻŋ āĻ­āĻŦāĻŋāĻˇā§āĻ¯āĻ¤ā§‡āĻ° āĻ•āĻžāĻ°ā§āĻ¨ā§‡āĻ˛ āĻļāĻžāĻ–āĻžāĻ¯āĻŧ āĻ…āĻ¨ā§āĻ¤āĻ°ā§āĻ­ā§āĻ•ā§āĻ¤ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡ āĻ˛āĻŋāĻ¨āĻžāĻ•ā§āĻ¸ 5.6.

āĻ•āĻžāĻ°ā§āĻ¨ā§‡āĻ˛ āĻ¸ā§āĻ¤āĻ° āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻāĻ•āĻŸāĻŋ āĻœā§‡āĻ¨ā§‡āĻ°āĻŋāĻ• āĻĒā§āĻ°ā§‹āĻŸā§‹āĻ•āĻ˛-āĻ¸ā§āĻŦāĻžāĻ§ā§€āĻ¨ āĻ‡āĻ¨ā§āĻŸāĻžāĻ°āĻĢā§‡āĻ¸ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻ•āĻ°ā§‡ āĻ¯āĻž āĻĒā§āĻ¯āĻžāĻ•ā§‡āĻŸ āĻĨā§‡āĻ•ā§‡ āĻĄā§‡āĻŸāĻž āĻ†āĻšāĻ°āĻŖ, āĻĄā§‡āĻŸāĻž āĻ…āĻĒāĻžāĻ°ā§‡āĻļāĻ¨ āĻāĻŦāĻ‚ āĻĒā§āĻ°āĻŦāĻžāĻš āĻ¨āĻŋāĻ¯āĻŧāĻ¨ā§āĻ¤ā§āĻ°āĻŖā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻŽā§ŒāĻ˛āĻŋāĻ• āĻĢāĻžāĻ‚āĻļāĻ¨ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻ•āĻ°ā§‡āĨ¤ āĻĢāĻŋāĻ˛ā§āĻŸāĻžāĻ°āĻŋāĻ‚ āĻ¨āĻŋāĻ¯āĻŧāĻŽ āĻāĻŦāĻ‚ āĻĒā§āĻ°ā§‹āĻŸā§‹āĻ•āĻ˛-āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻŸ āĻšā§āĻ¯āĻžāĻ¨ā§āĻĄāĻ˛āĻžāĻ°āĻ—ā§āĻ˛āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻ•āĻžāĻ°ā§€āĻ° āĻ¸ā§āĻĨāĻžāĻ¨ā§‡āĻ° āĻŦāĻžāĻ‡āĻŸāĻ•ā§‹āĻĄā§‡ āĻ¸āĻ‚āĻ•āĻ˛āĻŋāĻ¤ āĻšāĻ¯āĻŧ, āĻ¤āĻžāĻ°āĻĒāĻ°ā§‡ āĻāĻ‡ āĻŦāĻžāĻ‡āĻŸāĻ•ā§‹āĻĄāĻŸāĻŋ āĻ¨ā§‡āĻŸāĻ˛āĻŋāĻ‚āĻ• āĻ‡āĻ¨ā§āĻŸāĻžāĻ°āĻĢā§‡āĻ¸ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡ āĻ•āĻžāĻ°ā§āĻ¨ā§‡āĻ˛ā§‡ āĻ˛ā§‹āĻĄ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ āĻāĻŦāĻ‚ BPF (āĻŦāĻžāĻ°ā§āĻ•āĻ˛ā§‡ āĻĒā§āĻ¯āĻžāĻ•ā§‡āĻŸ āĻĢāĻŋāĻ˛ā§āĻŸāĻžāĻ°) āĻāĻ° āĻ¸ā§āĻŽāĻ°āĻŖ āĻ•āĻ°āĻŋāĻ¯āĻŧā§‡ āĻĻā§‡āĻ¯āĻŧ āĻāĻŽāĻ¨ āĻāĻ•āĻŸāĻŋ āĻŦāĻŋāĻļā§‡āĻˇ āĻ­āĻžāĻ°ā§āĻšā§āĻ¯āĻŧāĻžāĻ˛ āĻŽā§‡āĻļāĻŋāĻ¨ā§‡ āĻ•āĻžāĻ°ā§āĻ¨ā§‡āĻ˛ā§‡ āĻ•āĻžāĻ°ā§āĻ¯āĻ•āĻ° āĻ•āĻ°āĻž āĻšāĻ¯āĻŧāĨ¤ āĻāĻ‡ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻŸāĻŋ āĻ†āĻĒāĻ¨āĻžāĻ•ā§‡ āĻ•āĻžāĻ°ā§āĻ¨ā§‡āĻ˛ āĻ¸ā§āĻ¤āĻ°ā§‡ āĻšāĻ˛āĻŽāĻžāĻ¨ āĻĢāĻŋāĻ˛ā§āĻŸāĻžāĻ°āĻŋāĻ‚ āĻ•ā§‹āĻĄā§‡āĻ° āĻ†āĻ•āĻžāĻ° āĻ‰āĻ˛ā§āĻ˛ā§‡āĻ–āĻ¯ā§‹āĻ—ā§āĻ¯āĻ­āĻžāĻŦā§‡ āĻšā§āĻ°āĻžāĻ¸ āĻ•āĻ°āĻ¤ā§‡ āĻāĻŦāĻ‚ āĻĒā§āĻ°ā§‹āĻŸā§‹āĻ•āĻ˛āĻ—ā§āĻ˛āĻŋāĻ° āĻ¸āĻžāĻĨā§‡ āĻ•āĻžāĻœ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻĒāĻžāĻ°ā§āĻ¸āĻŋāĻ‚ āĻ¨āĻŋāĻ¯āĻŧāĻŽ āĻāĻŦāĻ‚ āĻ¯ā§āĻ•ā§āĻ¤āĻŋāĻŦāĻŋāĻĻā§āĻ¯āĻžāĻ° āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻĢāĻžāĻ‚āĻļāĻ¨āĻ—ā§āĻ˛āĻŋāĻ•ā§‡ āĻ‡āĻ‰āĻœāĻžāĻ° āĻ¸ā§āĻĒā§‡āĻ¸ā§‡ āĻ¸ā§āĻĨāĻžāĻ¨āĻžāĻ¨ā§āĻ¤āĻ° āĻ•āĻ°āĻ¤ā§‡ āĻĻā§‡āĻ¯āĻŧāĨ¤

āĻĒā§āĻ°āĻ§āĻžāĻ¨ āĻ‰āĻĻā§āĻ­āĻžāĻŦāĻ¨:

  • āĻ¸āĻ‚āĻ¯ā§‹āĻ—ā§‡āĻ° āĻ°ā§‡āĻžā§āĻœā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ (āĻ¸āĻ‚āĻ¯ā§āĻ•ā§āĻ¤āĻŋ, āĻ āĻŋāĻ•āĻžāĻ¨āĻžāĻ° āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻŸ āĻŦāĻžāĻ¨ā§āĻĄāĻŋāĻ˛ āĻāĻŦāĻ‚ āĻĒā§‹āĻ°ā§āĻŸ āĻ¯āĻž āĻ¤ā§āĻ˛āĻ¨āĻž āĻ¸āĻšāĻœ āĻ•āĻ°ā§‡)āĨ¤ āĻ‰āĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§‚āĻĒ, āĻāĻ•āĻŸāĻŋ āĻ¸ā§‡āĻŸ "āĻšā§‹āĻ¯āĻŧāĻžāĻ‡āĻŸāĻ˛āĻŋāĻ¸ā§āĻŸ" āĻāĻ° āĻœāĻ¨ā§āĻ¯ āĻ¯āĻžāĻ° āĻ‰āĻĒāĻžāĻĻāĻžāĻ¨āĻ—ā§āĻ˛āĻŋ āĻāĻ•āĻŸāĻŋ āĻ¸āĻ‚āĻ¯ā§āĻ•ā§āĻ¤āĻŋ, "āĻŦā§āĻ¯āĻŦāĻ§āĻžāĻ¨" āĻĒāĻ¤āĻžāĻ•āĻž āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻŸ āĻ•āĻ°āĻž āĻ‡āĻ™ā§āĻ—āĻŋāĻ¤ āĻ•āĻ°āĻŦā§‡ āĻ¯ā§‡ āĻ¸ā§‡āĻŸāĻŸāĻŋ āĻ¸āĻ‚āĻ¯ā§āĻ•ā§āĻ¤āĻŋāĻ¤ā§‡ āĻĒāĻ°āĻŋāĻ¸ā§€āĻŽāĻž āĻ…āĻ¨ā§āĻ¤āĻ°ā§āĻ­ā§āĻ•ā§āĻ¤ āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡ (āĻ¸āĻ‚āĻ¯ā§āĻ•ā§āĻ¤āĻŋ "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}
    }

    āĻšā§‡āĻ‡āĻ¨ āĻŦāĻžāĻ° {
    āĻŸāĻžāĻ‡āĻĒ āĻĢāĻŋāĻ˛ā§āĻŸāĻžāĻ° āĻšā§āĻ• prerouting āĻ…āĻ—ā§āĻ°āĻžāĻ§āĻŋāĻ•āĻžāĻ° āĻĢāĻŋāĻ˛ā§āĻŸāĻžāĻ°; āĻĒāĻ˛āĻŋāĻ¸āĻŋ āĻĄā§āĻ°āĻĒ;
    āĻ†āĻ‡āĻĒāĻŋ āĻ¸āĻĻāĻ°āĨ¤ ip daddr. tcp dport @āĻļā§āĻŦā§‡āĻ¤āĻŦāĻžāĻĻā§€ āĻ¸ā§āĻŦā§€āĻ•āĻžāĻ° āĻ•āĻ°ā§āĻ¨
    }
    }

  • āĻ¸ā§‡āĻŸ āĻāĻŦāĻ‚ āĻŽāĻžāĻ¨āĻšāĻŋāĻ¤ā§āĻ°ā§‡āĻ° āĻ¤āĻžāĻ˛āĻŋāĻ•āĻžāĻ¯āĻŧ, "āĻŸāĻžāĻ‡āĻĒāĻĢ" āĻ¨āĻŋāĻ°ā§āĻĻā§‡āĻļāĻŋāĻ•āĻž āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻž āĻ¸āĻŽā§āĻ­āĻŦ, āĻ¯āĻž āĻŽāĻŋāĻ˛āĻŋāĻ¤ āĻšāĻ“āĻ¯āĻŧāĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻ‰āĻĒāĻžāĻĻāĻžāĻ¨āĻŸāĻŋāĻ° āĻŦāĻŋāĻ¨ā§āĻ¯āĻžāĻ¸ āĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻŖ āĻ•āĻ°ā§‡āĨ¤
    āĻ‰āĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§‚āĻĒ:

    āĻŸā§‡āĻŦāĻŋāĻ˛ ip foo {
    āĻ¸āĻžāĻĻāĻž āĻ¤āĻžāĻ˛āĻŋāĻ•āĻž āĻ¸ā§‡āĻŸ āĻ•āĻ°ā§āĻ¨ {
    āĻ†āĻ‡āĻĒāĻŋ āĻ¸āĻĻāĻ°ā§‡āĻ° āĻĒā§āĻ°āĻ•āĻžāĻ°
    āĻ‰āĻĒāĻžāĻĻāĻžāĻ¨ = { 192.168.10.35, 192.168.10.101, 192.168.10.135 }
    }

    āĻšā§‡āĻ‡āĻ¨ āĻŦāĻžāĻ° {
    āĻŸāĻžāĻ‡āĻĒ āĻĢāĻŋāĻ˛ā§āĻŸāĻžāĻ° āĻšā§āĻ• prerouting āĻ…āĻ—ā§āĻ°āĻžāĻ§āĻŋāĻ•āĻžāĻ° āĻĢāĻŋāĻ˛ā§āĻŸāĻžāĻ°; āĻĒāĻ˛āĻŋāĻ¸āĻŋ āĻĄā§āĻ°āĻĒ;
    ip daddr @whitelist āĻ¸ā§āĻŦā§€āĻ•āĻžāĻ° āĻ•āĻ°ā§āĻ¨
    }
    }

    āĻŸā§‡āĻŦāĻŋāĻ˛ ip foo {
    āĻŽāĻžāĻ¨āĻšāĻŋāĻ¤ā§āĻ° addr2mark {
    āĻ†āĻ‡āĻĒāĻŋ āĻ¸āĻĻāĻ°ā§‡āĻ° āĻĒā§āĻ°āĻ•āĻžāĻ°: āĻŽā§‡āĻŸāĻž āĻŽāĻžāĻ°ā§āĻ•
    āĻ‰āĻĒāĻžāĻĻāĻžāĻ¨ = { 192.168.10.35 : 0x00000001, 192.168.10.135 : 0x00000002 }
    }
    }

  • NAT āĻŦāĻžāĻ‡āĻ¨ā§āĻĄāĻŋāĻ‚āĻ—ā§āĻ˛āĻŋāĻ¤ā§‡ āĻ¯ā§‹āĻ—āĻĻāĻžāĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻžāĻ° āĻ•ā§āĻˇāĻŽāĻ¤āĻž āĻ¯ā§āĻ•ā§āĻ¤ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡, āĻ¯āĻž āĻ†āĻĒāĻ¨āĻžāĻ•ā§‡ āĻŽāĻžāĻ¨āĻšāĻŋāĻ¤ā§āĻ°ā§‡āĻ° āĻ¤āĻžāĻ˛āĻŋāĻ•āĻž āĻŦāĻž āĻ¨āĻžāĻŽāĻ¯ā§āĻ•ā§āĻ¤ āĻ¸ā§‡āĻŸāĻ—ā§āĻ˛āĻŋāĻ° āĻ‰āĻĒāĻ° āĻ­āĻŋāĻ¤ā§āĻ¤āĻŋ āĻ•āĻ°ā§‡ NAT āĻ°ā§‚āĻĒāĻžāĻ¨ā§āĻ¤āĻ° āĻ¸āĻ‚āĻœā§āĻžāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻ•āĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻāĻ•āĻŸāĻŋ āĻ āĻŋāĻ•āĻžāĻ¨āĻž āĻāĻŦāĻ‚ āĻĒā§‹āĻ°ā§āĻŸ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻŸ āĻ•āĻ°āĻ¤ā§‡ āĻĻā§‡āĻ¯āĻŧ:

    nft āĻ¯ā§‹āĻ— āĻ¨āĻŋāĻ¯āĻŧāĻŽ ip nat pre dnat ip addr. āĻĒā§‹āĻ°ā§āĻŸ āĻĨā§‡āĻ•ā§‡ āĻ†āĻ‡āĻĒāĻŋ āĻ¸āĻĻāĻ° āĻŽāĻžāĻ¨āĻšāĻŋāĻ¤ā§āĻ° { 1.1.1.1 : 2.2.2.2 āĻ¤ā§āĻ°āĻŋāĻļ}

    nft āĻŽāĻžāĻ¨āĻšāĻŋāĻ¤ā§āĻ° āĻ¯ā§‹āĻ— āĻ•āĻ°ā§āĻ¨ ip nat āĻ—āĻ¨ā§āĻ¤āĻŦā§āĻ¯ { āĻŸāĻžāĻ‡āĻĒ āĻ•āĻ°ā§āĻ¨ ipv4_addr. inet_service: ipv4_addr. inet_service \\; }
    nft āĻ¯ā§‹āĻ— āĻ¨āĻŋāĻ¯āĻŧāĻŽ ip nat pre dnat ip addr. āĻ†āĻ‡āĻĒāĻŋ āĻ¸āĻĻāĻ° āĻĨā§‡āĻ•ā§‡ āĻĒā§‹āĻ°ā§āĻŸāĨ¤ āĻŸāĻŋāĻ¸āĻŋāĻĒāĻŋ āĻĄāĻŋāĻĒā§‹āĻ°ā§āĻŸ āĻŽā§āĻ¯āĻžāĻĒ @āĻ—āĻ¨ā§āĻ¤āĻŦā§āĻ¯

  • āĻ¨ā§‡āĻŸāĻ“āĻ¯āĻŧāĻžāĻ°ā§āĻ• āĻ•āĻžāĻ°ā§āĻĄ āĻĻā§āĻŦāĻžāĻ°āĻž āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻŋāĻ¤ āĻ•āĻŋāĻ›ā§ āĻĢāĻŋāĻ˛ā§āĻŸāĻžāĻ°āĻŋāĻ‚ āĻ…āĻĒāĻžāĻ°ā§‡āĻļāĻ¨ āĻ¸āĻš āĻšāĻžāĻ°ā§āĻĄāĻ“āĻ¯āĻŧā§āĻ¯āĻžāĻ° āĻ¤ā§āĻŦāĻ°āĻŖā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨āĨ¤ āĻāĻĨāĻŸā§āĻ˛ āĻ‡āĻ‰āĻŸāĻŋāĻ˛āĻŋāĻŸāĻŋ ("ethtool -K eth0 hw-tc-āĻ…āĻĢāĻ˛ā§‹āĻĄ āĻ…āĻ¨") āĻāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§‡ āĻ¤ā§āĻŦāĻ°āĻŖ āĻ¸āĻ•ā§āĻˇāĻŽ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡, āĻ¤āĻžāĻ°āĻĒāĻ°ā§‡ āĻāĻŸāĻŋ "āĻ…āĻĢāĻ˛ā§‹āĻĄ" āĻĒāĻ¤āĻžāĻ•āĻž āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡ āĻŽā§‚āĻ˛ āĻšā§‡āĻ‡āĻ¨ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ nftables āĻ āĻ¸āĻ•ā§āĻ°āĻŋāĻ¯āĻŧ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧāĨ¤ āĻ˛āĻŋāĻ¨āĻžāĻ•ā§āĻ¸ āĻ•āĻžāĻ°ā§āĻ¨ā§‡āĻ˛ 5.6 āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ, āĻšā§‡āĻĄāĻžāĻ° āĻĢāĻŋāĻ˛ā§āĻĄ āĻŽā§āĻ¯āĻžāĻšāĻŋāĻ‚ āĻāĻŦāĻ‚ āĻ‡āĻ¨āĻ•āĻžāĻŽāĻŋāĻ‚ āĻ‡āĻ¨ā§āĻŸāĻžāĻ°āĻĢā§‡āĻ¸ āĻĒāĻ°āĻŋāĻĻāĻ°ā§āĻļāĻ¨ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻšāĻžāĻ°ā§āĻĄāĻ“āĻ¯āĻŧā§āĻ¯āĻžāĻ° āĻ¤ā§āĻŦāĻ°āĻŖ āĻ¸āĻŽāĻ°ā§āĻĨāĻŋāĻ¤ āĻšāĻ¯āĻŧ āĻĒā§āĻ°āĻžāĻĒā§āĻ¤āĻŋ, āĻŦāĻžāĻ¤āĻŋāĻ˛, āĻĄā§āĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻŸ (āĻĄā§āĻĒ), āĻāĻŦāĻ‚ āĻĢāĻ°āĻ“āĻ¯āĻŧāĻžāĻ°ā§āĻĄāĻŋāĻ‚ (fwd) āĻĒā§āĻ¯āĻžāĻ•ā§‡āĻŸā§‡āĻ° āĻ¸āĻžāĻĨā§‡āĨ¤ āĻ¨ā§€āĻšā§‡āĻ° āĻ‰āĻĻāĻžāĻšāĻ°āĻŖā§‡, 192.168.30.20 āĻ āĻŋāĻ•āĻžāĻ¨āĻž āĻĨā§‡āĻ•ā§‡ āĻĒā§āĻ¯āĻžāĻ•ā§‡āĻŸ āĻĄā§āĻ°āĻĒ āĻ•āĻ°āĻžāĻ° āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ•āĻ˛āĻžāĻĒāĻ—ā§āĻ˛āĻŋ āĻĒā§āĻ¯āĻžāĻ•ā§‡āĻŸāĻ—ā§āĻ˛āĻŋ āĻ•āĻžāĻ°ā§āĻ¨ā§‡āĻ˛ā§‡ āĻ¨āĻž āĻĻāĻŋāĻ¯āĻŧā§‡ āĻ¨ā§‡āĻŸāĻ“āĻ¯āĻŧāĻžāĻ°ā§āĻ• āĻ•āĻžāĻ°ā§āĻĄ āĻ¸ā§āĻ¤āĻ°ā§‡ āĻ¸āĻžā§āĻšāĻžāĻ˛āĻŋāĻ¤ āĻšāĻ¯āĻŧ:

    # cat file.nft
    āĻŸā§‡āĻŦāĻŋāĻ˛ netdev x {
    āĻšā§‡āĻ‡āĻ¨ y {
    āĻŸāĻžāĻ‡āĻĒ āĻĢāĻŋāĻ˛ā§āĻŸāĻžāĻ° āĻšā§āĻ• āĻ‡āĻ¨āĻ—ā§āĻ°ā§‡āĻ¸ āĻĄāĻŋāĻ­āĻžāĻ‡āĻ¸ eth0 āĻ…āĻ—ā§āĻ°āĻžāĻ§āĻŋāĻ•āĻžāĻ° 10; āĻĒāĻ¤āĻžāĻ•āĻž āĻ…āĻĢāĻ˛ā§‹āĻĄ;
    āĻ†āĻ‡āĻĒāĻŋ āĻ¸āĻĻāĻ° 192.168.30.20 āĻĄā§āĻ°āĻĒ
    }
    }
    # nft -f file.nft

  • āĻ¨āĻŋāĻ¯āĻŧāĻŽā§‡ āĻ¤ā§āĻ°ā§āĻŸāĻŋāĻ° āĻ…āĻŦāĻ¸ā§āĻĨāĻžāĻ¨ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻ•ā§‡ āĻ‰āĻ¨ā§āĻ¨āĻ¤ āĻ¤āĻĨā§āĻ¯āĨ¤

    # nft āĻŽā§āĻ›ā§‡ āĻĢā§‡āĻ˛āĻžāĻ° āĻ¨āĻŋāĻ¯āĻŧāĻŽ ip y z āĻšā§āĻ¯āĻžāĻ¨ā§āĻĄā§‡āĻ˛ 7
    āĻ¤ā§āĻ°ā§āĻŸāĻŋ: āĻ¨āĻŋāĻ¯āĻŧāĻŽ āĻĒā§āĻ°āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻ•āĻ°āĻž āĻ¯āĻžāĻ¯āĻŧāĻ¨āĻŋ: āĻāĻ‡ āĻ§āĻ°āĻ¨ā§‡āĻ° āĻ•ā§‹āĻ¨ā§‹ āĻĢāĻžāĻ‡āĻ˛ āĻŦāĻž āĻĄāĻŋāĻ°ā§‡āĻ•ā§āĻŸāĻ°āĻŋ āĻ¨ā§‡āĻ‡
    āĻ¨āĻŋāĻ¯āĻŧāĻŽ ip y z āĻšā§āĻ¯āĻžāĻ¨ā§āĻĄā§‡āĻ˛ 7 āĻŽā§āĻ›ā§‡ āĻĻāĻŋāĻ¨
    ^

    # nft āĻŽā§āĻ›ā§‡ āĻĢā§‡āĻ˛āĻžāĻ° āĻ¨āĻŋāĻ¯āĻŧāĻŽ ip x x āĻšā§āĻ¯āĻžāĻ¨ā§āĻĄā§‡āĻ˛ 7
    āĻ¤ā§āĻ°ā§āĻŸāĻŋ: āĻ¨āĻŋāĻ¯āĻŧāĻŽ āĻĒā§āĻ°āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻ•āĻ°āĻž āĻ¯āĻžāĻ¯āĻŧāĻ¨āĻŋ: āĻāĻ‡ āĻ§āĻ°āĻ¨ā§‡āĻ° āĻ•ā§‹āĻ¨ā§‹ āĻĢāĻžāĻ‡āĻ˛ āĻŦāĻž āĻĄāĻŋāĻ°ā§‡āĻ•ā§āĻŸāĻ°āĻŋ āĻ¨ā§‡āĻ‡
    āĻ¨āĻŋāĻ¯āĻŧāĻŽ ip x x āĻšā§āĻ¯āĻžāĻ¨ā§āĻĄā§‡āĻ˛ 7 āĻŽā§āĻ›ā§‡ āĻĻāĻŋāĻ¨
    ^

    # nft āĻŸā§‡āĻŦāĻŋāĻ˛ twst āĻŽā§āĻ›ā§‡ āĻĢā§‡āĻ˛ā§āĻ¨
    āĻ¤ā§āĻ°ā§āĻŸāĻŋ: āĻāĻ‡ āĻ§āĻ°āĻ¨ā§‡āĻ° āĻ•ā§‹āĻ¨ā§‹ āĻĢāĻžāĻ‡āĻ˛ āĻŦāĻž āĻĄāĻŋāĻ°ā§‡āĻ•ā§āĻŸāĻ°āĻŋ āĻ¨ā§‡āĻ‡; āĻ†āĻĒāĻ¨āĻŋ āĻ•āĻŋ āĻĒāĻžāĻ°āĻŋāĻŦāĻžāĻ°āĻŋāĻ• āĻ†āĻ‡āĻĒāĻŋāĻ¤ā§‡ āĻŸā§‡āĻŦāĻŋāĻ˛ 'āĻĒāĻ°ā§€āĻ•ā§āĻˇāĻž' āĻŦāĻ˛āĻ¤ā§‡ āĻšāĻžāĻ¨?
    āĻŸā§‡āĻŦāĻŋāĻ˛ twst āĻŽā§āĻ›ā§āĻ¨
    ^^^^

    āĻĒā§āĻ°āĻĨāĻŽ āĻ‰āĻĻāĻžāĻšāĻ°āĻŖāĻŸāĻŋ āĻĻā§‡āĻ–āĻžāĻ¯āĻŧ āĻ¯ā§‡ āĻŸā§‡āĻŦāĻŋāĻ˛ "y" āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽā§‡ āĻ¨ā§‡āĻ‡, āĻĻā§āĻŦāĻŋāĻ¤ā§€āĻ¯āĻŧāĻŸāĻŋ āĻ¯ā§‡ "7" āĻšā§āĻ¯āĻžāĻ¨ā§āĻĄāĻ˛āĻžāĻ°āĻŸāĻŋ āĻ…āĻ¨ā§āĻĒāĻ¸ā§āĻĨāĻŋāĻ¤, āĻāĻŦāĻ‚ āĻ¤ā§ƒāĻ¤ā§€āĻ¯āĻŧāĻŸāĻŋ āĻ¯ā§‡ āĻŸā§‡āĻŦāĻŋāĻ˛ā§‡āĻ° āĻ¨āĻžāĻŽ āĻŸāĻžāĻ‡āĻĒ āĻ•āĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻāĻ•āĻŸāĻŋ āĻŸāĻžāĻ‡āĻĒā§‹ āĻĒā§āĻ°āĻŽā§āĻĒāĻŸ āĻĒā§āĻ°āĻĻāĻ°ā§āĻļāĻŋāĻ¤ āĻšāĻ¯āĻŧā§ˇ

  • "āĻŽā§‡āĻŸāĻž sdif" āĻŦāĻž "meta sdifname" āĻ‰āĻ˛ā§āĻ˛ā§‡āĻ– āĻ•āĻ°ā§‡ āĻ¸ā§āĻ˛ā§‡āĻ­ āĻ‡āĻ¨ā§āĻŸāĻžāĻ°āĻĢā§‡āĻ¸ āĻšā§‡āĻ• āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻ¯ā§‹āĻ— āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡:

    ... meta sdifname vrf1 ...

  • āĻĄāĻžāĻ¨ āĻŦāĻž āĻŦāĻžāĻŽ āĻ¸ā§āĻĨāĻžāĻ¨āĻžāĻ¨ā§āĻ¤āĻ° āĻ…āĻĒāĻžāĻ°ā§‡āĻļāĻ¨ āĻœāĻ¨ā§āĻ¯ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻ¯ā§‹āĻ— āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡. āĻ‰āĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§‚āĻĒ, āĻāĻ•āĻŸāĻŋ āĻŦāĻŋāĻĻā§āĻ¯āĻŽāĻžāĻ¨ āĻĒā§āĻ¯āĻžāĻ•ā§‡āĻŸ āĻ˛ā§‡āĻŦā§‡āĻ˛āĻ•ā§‡ 1 āĻŦāĻŋāĻŸ āĻŦāĻžāĻŽā§‡ āĻ¸ā§āĻĨāĻžāĻ¨āĻžāĻ¨ā§āĻ¤āĻ° āĻ•āĻ°āĻ¤ā§‡ āĻāĻŦāĻ‚ āĻ›ā§‹āĻŸ āĻŦāĻŋāĻŸāĻŸāĻŋāĻ•ā§‡ 1 āĻ āĻ¸ā§‡āĻŸ āĻ•āĻ°āĻ¤ā§‡:

    â€Ļ āĻŽā§‡āĻŸāĻž āĻŽāĻžāĻ°ā§āĻ• āĻ¸ā§‡āĻŸ āĻŽā§‡āĻŸāĻž āĻŽāĻžāĻ°ā§āĻ• lshift 1 āĻŦāĻž 0x1 â€Ļ

  • āĻŦāĻ°ā§āĻ§āĻŋāĻ¤ āĻ¸āĻ‚āĻ¸ā§āĻ•āĻ°āĻŖ āĻ¤āĻĨā§āĻ¯ āĻĒā§āĻ°āĻĻāĻ°ā§āĻļāĻ¨ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ "-V" āĻŦāĻŋāĻ•āĻ˛ā§āĻĒ āĻ•āĻžāĻ°ā§āĻ¯āĻ•āĻ° āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤

    # nft -V
    nftables v0.9.4 (āĻœāĻŋāĻ­ āĻ āĻĢāĻžāĻ‡āĻ­)
    cli:āĻ°āĻŋāĻĄāĻ˛āĻžāĻ‡āĻ¨
    json: āĻšā§āĻ¯āĻžāĻ
    minigmp: āĻ¨āĻž
    libxtables: āĻšā§āĻ¯āĻžāĻ

  • āĻ•āĻŽāĻžāĻ¨ā§āĻĄ āĻ˛āĻžāĻ‡āĻ¨ āĻ…āĻĒāĻļāĻ¨ āĻāĻ–āĻ¨ āĻ•āĻŽāĻžāĻ¨ā§āĻĄā§‡āĻ° āĻ†āĻ—ā§‡ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻŸ āĻ•āĻ°āĻž āĻ†āĻŦāĻļā§āĻ¯āĻ•āĨ¤ āĻ‰āĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§‚āĻĒ, āĻ†āĻĒāĻ¨āĻžāĻ•ā§‡ "nft -a list ruleset" āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻŸ āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡ āĻāĻŦāĻ‚ "nft list ruleset -a" āĻšāĻžāĻ˛āĻžāĻ¨ā§‹āĻ° āĻĢāĻ˛ā§‡ āĻāĻ•āĻŸāĻŋ āĻ¤ā§āĻ°ā§āĻŸāĻŋ āĻĻā§‡āĻ–āĻž āĻĻā§‡āĻŦā§‡āĨ¤

    āĻ‰āĻ¤ā§āĻ¸: opennet.ru

āĻāĻ•āĻŸāĻŋ āĻŽāĻ¨ā§āĻ¤āĻŦā§āĻ¯ āĻœā§āĻĄāĻŧā§āĻ¨