āĻĒā§āĻ¯āĻžāĻā§āĻ āĻĢāĻŋāĻ˛ā§āĻāĻžāĻ° nftables 1.0.3 āĻĒā§āĻ°āĻāĻžāĻļ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§, IPv4, IPv6, ARP āĻāĻŦāĻ āĻ¨ā§āĻāĻāĻ¯āĻŧāĻžāĻ°ā§āĻ āĻŦā§āĻ°āĻŋāĻ (iptables, ip6table, arptables āĻāĻŦāĻ ebtables āĻĒā§āĻ°āĻ¤āĻŋāĻ¸ā§āĻĨāĻžāĻĒāĻ¨ā§āĻ° āĻ˛āĻā§āĻˇā§āĻ¯ā§) āĻāĻ¨ā§āĻ¯ āĻĒā§āĻ¯āĻžāĻā§āĻ āĻĢāĻŋāĻ˛ā§āĻāĻžāĻ°āĻŋāĻ āĻāĻ¨ā§āĻāĻžāĻ°āĻĢā§āĻ¸ āĻāĻāĻ¤ā§āĻ°āĻŋāĻ¤ āĻāĻ°ā§āĨ¤ nftables 1.0.3 āĻĒā§āĻ°āĻāĻžāĻļā§āĻ° āĻāĻ¨ā§āĻ¯ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ā§āĻ¯āĻŧ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨āĻā§āĻ˛āĻŋ Linux 5.18 āĻāĻžāĻ°ā§āĻ¨ā§āĻ˛ā§ āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻā§āĻā§āĻ¤ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§āĨ¤
nftables āĻĒā§āĻ¯āĻžāĻā§āĻā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻĒā§āĻ¯āĻžāĻā§āĻ āĻĢāĻŋāĻ˛ā§āĻāĻžāĻ° āĻāĻĒāĻžāĻĻāĻžāĻ¨ āĻ°āĻ¯āĻŧā§āĻā§ āĻ¯āĻž āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻ° āĻ¸ā§āĻĨāĻžāĻ¨ā§ āĻāĻ˛ā§, āĻ¯āĻāĻ¨ āĻāĻžāĻ°ā§āĻ¨ā§āĻ˛ āĻ¸ā§āĻ¤āĻ°āĻāĻŋ nf_tables āĻ¸āĻžāĻŦāĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻĻā§āĻŦāĻžāĻ°āĻž āĻāĻĒāĻ˛āĻŦā§āĻ§ āĻāĻ°āĻž āĻšāĻ¯āĻŧ, āĻ¯āĻž 3.13 āĻĒā§āĻ°āĻāĻžāĻļā§āĻ° āĻĒāĻ° āĻĨā§āĻā§ Linux āĻāĻžāĻ°ā§āĻ¨ā§āĻ˛ā§āĻ° āĻ āĻāĻļāĨ¤ āĻāĻžāĻ°ā§āĻ¨ā§āĻ˛ āĻ¸ā§āĻ¤āĻ°ā§, āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻāĻāĻāĻŋ āĻā§āĻ¨ā§āĻ°āĻŋāĻ āĻĒā§āĻ°ā§āĻā§āĻāĻ˛-āĻ¸ā§āĻŦāĻžāĻ§ā§āĻ¨ āĻāĻ¨ā§āĻāĻžāĻ°āĻĢā§āĻ¸ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°āĻž āĻšāĻ¯āĻŧ āĻ¯āĻž āĻĒā§āĻ¯āĻžāĻā§āĻ āĻĨā§āĻā§ āĻĄā§āĻāĻž āĻāĻšāĻ°āĻŖ, āĻĄā§āĻāĻžāĻ° āĻāĻĒāĻ° āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻāĻ˛āĻžāĻĒ āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻ¨ āĻāĻŦāĻ āĻĒā§āĻ°āĻŦāĻžāĻš āĻ¨āĻŋāĻ¯āĻŧāĻ¨ā§āĻ¤ā§āĻ°āĻŖā§āĻ° āĻāĻ¨ā§āĻ¯ āĻŽā§āĻ˛āĻŋāĻ āĻĢāĻžāĻāĻļāĻ¨ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°ā§āĨ¤
āĻĢāĻŋāĻ˛ā§āĻāĻžāĻ°āĻŋāĻ āĻ¨āĻŋāĻ¯āĻŧāĻŽāĻā§āĻ˛āĻŋ āĻ¨āĻŋāĻā§āĻ°āĻžāĻ āĻāĻŦāĻ āĻĒā§āĻ°ā§āĻā§āĻāĻ˛-āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻšā§āĻ¯āĻžāĻ¨ā§āĻĄāĻ˛āĻžāĻ°āĻā§āĻ˛āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§-āĻ¸ā§āĻĒā§āĻ¸ āĻŦāĻžāĻāĻāĻā§āĻĄā§ āĻ¸āĻāĻāĻ˛āĻŋāĻ¤ āĻšāĻ¯āĻŧ, āĻ¤āĻžāĻ°āĻĒāĻ°ā§ āĻāĻ āĻŦāĻžāĻāĻāĻā§āĻĄāĻāĻŋ āĻ¨ā§āĻāĻ˛āĻŋāĻāĻ āĻāĻ¨ā§āĻāĻžāĻ°āĻĢā§āĻ¸ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻāĻžāĻ°ā§āĻ¨ā§āĻ˛ā§ āĻ˛ā§āĻĄ āĻāĻ°āĻž āĻšāĻ¯āĻŧ āĻāĻŦāĻ BPF (āĻŦāĻžāĻ°ā§āĻāĻ˛ā§ āĻĒā§āĻ¯āĻžāĻā§āĻ āĻĢāĻŋāĻ˛ā§āĻāĻžāĻ°) āĻ¸āĻĻā§āĻļ āĻāĻāĻāĻŋ āĻŦāĻŋāĻļā§āĻˇ āĻāĻžāĻ°ā§āĻā§āĻ¯āĻŧāĻžāĻ˛ āĻŽā§āĻļāĻŋāĻ¨ā§ āĻāĻžāĻ°ā§āĻ¨ā§āĻ˛ā§ āĻāĻžāĻ°ā§āĻ¯āĻāĻ° āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤ āĻāĻ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻāĻŋ āĻāĻžāĻ°ā§āĻ¨ā§āĻ˛ āĻ¸ā§āĻ¤āĻ°ā§ āĻāĻ˛āĻŽāĻžāĻ¨ āĻĢāĻŋāĻ˛ā§āĻāĻžāĻ°āĻŋāĻ āĻā§āĻĄā§āĻ° āĻāĻāĻžāĻ° āĻāĻ˛ā§āĻ˛ā§āĻāĻ¯ā§āĻā§āĻ¯āĻāĻžāĻŦā§ āĻšā§āĻ°āĻžāĻ¸ āĻāĻ°āĻž āĻāĻŦāĻ āĻĒāĻžāĻ°ā§āĻ¸āĻŋāĻ āĻ¨āĻŋāĻ¯āĻŧāĻŽā§āĻ° āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻĢāĻžāĻāĻļāĻ¨ āĻāĻŦāĻ āĻĒā§āĻ°ā§āĻā§āĻāĻ˛āĻā§āĻ˛āĻŋāĻ° āĻ¸āĻžāĻĨā§ āĻāĻžāĻ āĻāĻ°āĻžāĻ° āĻ¯ā§āĻā§āĻ¤āĻŋāĻā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻ° āĻāĻžāĻ¯āĻŧāĻāĻžāĻ¯āĻŧ āĻ¸ā§āĻĨāĻžāĻ¨āĻžāĻ¨ā§āĻ¤āĻ° āĻāĻ°āĻž āĻ¸āĻŽā§āĻāĻŦ āĻāĻ°ā§ āĻ¤ā§āĻ˛ā§āĨ¤
āĻĒā§āĻ°āĻ§āĻžāĻ¨ āĻāĻĻā§āĻāĻžāĻŦāĻ¨:
- āĻ¸ā§āĻ āĻ¤āĻžāĻ˛āĻŋāĻāĻžāĻā§āĻ˛āĻŋ āĻāĻāĻ¨ āĻāĻāĻāĻŋ āĻŽāĻžāĻ¸ā§āĻ āĻĻā§āĻŦāĻžāĻ°āĻž āĻŽāĻŋāĻ˛āĻŋāĻ¤ āĻ¨ā§āĻāĻāĻ¯āĻŧāĻžāĻ°ā§āĻ āĻāĻ¨ā§āĻāĻžāĻ°āĻĢā§āĻ¸ā§āĻ° āĻ¨āĻžāĻŽāĻā§āĻ˛āĻŋāĻā§ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻāĻ°ā§, āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, "*" āĻāĻŋāĻšā§āĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§: āĻā§āĻŦāĻŋāĻ˛ inet testifsets { set simple_wild { type ifname flags interval āĻāĻĒāĻžāĻĻāĻžāĻ¨ = { "abcdef*", "āĻ āĻ¨ā§āĻ¯ āĻ¨āĻžāĻŽ", "ppp0" } } āĻā§āĻāĻ¨ v4icmp { āĻāĻžāĻāĻĒ āĻĢāĻŋāĻ˛ā§āĻāĻžāĻ° āĻšā§āĻ āĻāĻ¨āĻĒā§āĻ āĻ āĻā§āĻ°āĻžāĻ§āĻŋāĻāĻžāĻ° 0; āĻ¨ā§āĻ¤āĻŋ āĻā§āĻ°āĻšāĻŖ; iifname @simple_wild āĻāĻžāĻāĻ¨ā§āĻāĻžāĻ° āĻĒā§āĻ¯āĻžāĻā§āĻ 0 āĻŦāĻžāĻāĻ 0 iifname { âabcdef*â, âeth0â } āĻāĻžāĻāĻ¨ā§āĻāĻžāĻ° āĻĒā§āĻ¯āĻžāĻā§āĻ 0 āĻŦāĻžāĻāĻ 0 } }
- āĻ
āĻĒāĻžāĻ°ā§āĻļāĻ¨ āĻāĻ˛āĻžāĻāĻžāĻ˛ā§āĻ¨ āĻā§āĻĻāĻāĻžāĻ°ā§ āĻ¸ā§āĻ-āĻ¤āĻžāĻ˛āĻŋāĻāĻž āĻāĻĒāĻžāĻĻāĻžāĻ¨āĻā§āĻ˛āĻŋāĻ° āĻ¸ā§āĻŦāĻ¯āĻŧāĻāĻā§āĻ°āĻŋāĻ¯āĻŧ āĻāĻāĻ¤ā§āĻ°ā§āĻāĻ°āĻŖ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻšāĻ¯āĻŧā§āĻā§ā§ˇ āĻĒā§āĻ°ā§āĻŦā§, āĻ¯āĻāĻ¨ "āĻ¸ā§āĻŦāĻ¯āĻŧāĻāĻā§āĻ°āĻŋāĻ¯āĻŧ-āĻāĻāĻ¤ā§āĻ°ā§āĻāĻ°āĻŖ" āĻŦāĻŋāĻāĻ˛ā§āĻĒāĻāĻŋ āĻ¸ā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻāĻŋāĻ˛, āĻ¤āĻāĻ¨ āĻ¨āĻŋāĻ¯āĻŧāĻŽ āĻā§āĻˇāĻŖāĻžāĻ° āĻĒāĻ°ā§āĻ¯āĻžāĻ¯āĻŧā§ āĻŽāĻžāĻ°ā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻāĻŋāĻ˛, āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻāĻāĻ¨ āĻāĻāĻŋ āĻāĻžāĻ āĻāĻ°ā§ āĻ¯āĻāĻ¨ āĻ
āĻĒāĻžāĻ°ā§āĻļāĻ¨ āĻāĻ˛āĻžāĻāĻžāĻ˛ā§āĻ¨ āĻā§āĻ°āĻŽāĻŦāĻ°ā§āĻ§āĻŽāĻžāĻ¨āĻāĻžāĻŦā§ āĻ¨āĻ¤ā§āĻ¨ āĻāĻĒāĻžāĻĻāĻžāĻ¨ āĻ¯ā§āĻā§āĻ¤ āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤ āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, āĻā§āĻˇāĻŖāĻž āĻĒāĻ°ā§āĻ¯āĻžāĻ¯āĻŧā§, āĻ¤āĻžāĻ˛āĻŋāĻāĻžāĻāĻŋ y { āĻĒāĻ¤āĻžāĻāĻž āĻŦā§āĻ¯āĻŦāĻ§āĻžāĻ¨ āĻ¸ā§āĻŦāĻ¯āĻŧāĻāĻā§āĻ°āĻŋāĻ¯āĻŧ-āĻŽāĻžāĻ°ā§āĻ āĻāĻĒāĻžāĻĻāĻžāĻ¨ = { 1.2.3.0, 1.2.3.255, 1.2.3.0/24, 3.3.3.3, 4.4.4.4, 4.4.4.4-4.4.4.8 āĻ¸ā§āĻ āĻāĻ°ā§ , 3.3.3.4 , 3.3.3.5 } } āĻāĻĒāĻžāĻĻāĻžāĻ¨ā§ āĻĒāĻ°āĻŋāĻŖāĻ¤ āĻšāĻŦā§ = { 1.2.3.0/24, 3.3.3.3-3.3.3.5, 4.4.4.4-4.4.4.8 } āĻāĻŦāĻ āĻ¤āĻžāĻ°āĻĒāĻ°ā§ āĻāĻĒāĻ¨āĻŋ āĻ¯āĻĻāĻŋ āĻ¨āĻ¤ā§āĻ¨ āĻāĻĒāĻžāĻĻāĻžāĻ¨ āĻ¯ā§āĻ āĻāĻ°ā§āĻ¨ # nft āĻ¯ā§āĻ āĻāĻ°ā§āĻ¨ āĻāĻĒāĻžāĻĻāĻžāĻ¨ ip xy { 1.2.3.0 -1.2.4.255, 3.3.3.6 } āĻāĻĒāĻžāĻĻāĻžāĻ¨ā§āĻ° āĻŽāĻ¤ā§ āĻĻā§āĻāĻžāĻŦā§ = { 1.2.3.0-1.2.4.255, 3.3.3.3-3.3.3.6, 4.4.4.4-4.4.4.8 }
āĻāĻĒāĻ¨āĻŋ āĻ¯āĻāĻ¨ āĻŦāĻŋāĻĻā§āĻ¯āĻŽāĻžāĻ¨ āĻ¸ā§āĻŽāĻžāĻ° āĻāĻāĻā§āĻŽāĻā§āĻ˛āĻŋāĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻĒāĻĄāĻŧā§ āĻāĻŽāĻ¨ āĻ¤āĻžāĻ˛āĻŋāĻāĻž āĻĨā§āĻā§ āĻĒā§āĻĨāĻ āĻāĻāĻā§āĻŽāĻā§āĻ˛āĻŋ āĻ¸āĻ°āĻŋāĻ¯āĻŧā§ āĻĻā§āĻ¨, āĻ¤āĻāĻ¨ āĻĒāĻ°āĻŋāĻ¸āĻ°āĻāĻŋ āĻ¸āĻāĻā§āĻˇāĻŋāĻĒā§āĻ¤ āĻŦāĻž āĻŦāĻŋāĻāĻā§āĻ¤ āĻšāĻ¯āĻŧāĨ¤
- āĻāĻāĻāĻŋ āĻŽāĻžāĻ¨āĻāĻŋāĻ¤ā§āĻ° āĻ¤āĻžāĻ˛āĻŋāĻāĻžāĻ¯āĻŧ āĻāĻāĻžāĻ§āĻŋāĻ āĻ āĻŋāĻāĻžāĻ¨āĻž āĻ
āĻ¨ā§āĻŦāĻžāĻĻ (NAT) āĻ¨āĻŋāĻ¯āĻŧāĻŽāĻā§āĻ˛āĻŋāĻā§ āĻāĻāĻ¤ā§āĻ°āĻŋāĻ¤ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻ¨āĻŋāĻ¯āĻŧāĻŽ āĻ
āĻĒā§āĻāĻŋāĻŽāĻžāĻāĻāĻžāĻ°ā§ āĻ¯ā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§, āĻ¯āĻāĻ¨ "-o/âāĻ
āĻĒā§āĻāĻŋāĻŽāĻžāĻāĻ" āĻŦāĻŋāĻāĻ˛ā§āĻĒāĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧ āĻ¤āĻāĻ¨ āĻŦāĻ˛āĻž āĻšāĻ¯āĻŧāĨ¤ āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, āĻ¸ā§āĻā§āĻ° āĻāĻ¨ā§āĻ¯ # cat ruleset.nft āĻā§āĻŦāĻŋāĻ˛ ip x { āĻā§āĻāĻ¨ y { āĻāĻžāĻāĻĒ nat hook postrouting priority srcnat; āĻĒāĻ˛āĻŋāĻ¸āĻŋ āĻĄā§āĻ°āĻĒ; ip saddr 1.1.1.1 tcp dport 8000 snat to 4.4.4.4:80 ip saddr 2.2.2.2 tcp dport 8001 snat āĻĨā§āĻā§ 5.5.5.5:90 } }
"nft -o -c -f ruleset.nft" āĻāĻžāĻ°ā§āĻ¯āĻāĻ° āĻāĻ°āĻž āĻĒā§āĻĨāĻ "āĻāĻāĻĒāĻŋ āĻ¸āĻĻāĻ°" āĻ¨āĻŋāĻ¯āĻŧāĻŽāĻā§āĻ˛āĻŋāĻā§ āĻāĻāĻāĻŋ āĻŽāĻžāĻ¨āĻāĻŋāĻ¤ā§āĻ°ā§āĻ° āĻ¤āĻžāĻ˛āĻŋāĻāĻžāĻ¯āĻŧ āĻ°ā§āĻĒāĻžāĻ¨ā§āĻ¤āĻ° āĻāĻ°āĻŦā§: snat āĻĨā§āĻā§ ip saddrāĨ¤ tcp dport āĻŽāĻžāĻ¨āĻāĻŋāĻ¤ā§āĻ° { 1.1.1.1 8000: 4.4.4.4āĨ¤ 80, 2.2.2.2āĨ¤ 8001: 5.5.5.5āĨ¤ 90}
āĻāĻāĻāĻāĻžāĻŦā§, āĻāĻžāĻāĻāĻž āĻ āĻāĻŋāĻŦā§āĻ¯āĻā§āĻ¤āĻŋāĻā§āĻ˛āĻŋ āĻŽāĻžāĻ¨āĻāĻŋāĻ¤ā§āĻ°ā§āĻ° āĻ¤āĻžāĻ˛āĻŋāĻāĻžāĻ¯āĻŧ āĻ°ā§āĻĒāĻžāĻ¨ā§āĻ¤āĻ°āĻŋāĻ¤ āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§: # cat ruleset.nft āĻā§āĻŦāĻŋāĻ˛ ip x { [âĻ] āĻā§āĻāĻ¨ nat_dns_acme { udp length 47-63 @th,160,128 0x0e373135363130333131303735353203 @ 62st d_t78st āĻĻā§āĻ°ā§āĻā§āĻ¯ ,160,128 0x0e31393032383939353831343037320e āĻ¯āĻžāĻ¨ nat_dns_this_5301 udp āĻĻā§āĻ°ā§āĻā§āĻ¯ 62-78 @th,160,128 0x0e31363436323733373931323934300e goto nat_dns_saturn_5301 udp āĻĻā§āĻ°ā§āĻā§āĻ¯ 62-78, @160,128 0 0e goto nat_dns_saturn_32393535373539353636383732310 udp āĻĻā§āĻ°ā§āĻā§āĻ¯ 5302-62 @th,78 160,128x0e0e goto nat_dns_saturn_38353439353637323038363633390}5303
āĻ āĻĒā§āĻāĻŋāĻŽāĻžāĻāĻā§āĻļāĻ¨ā§āĻ° āĻĒāĻ°ā§ āĻāĻŽāĻ°āĻž āĻāĻāĻāĻŋ āĻŽāĻžāĻ¨āĻāĻŋāĻ¤ā§āĻ°ā§āĻ° āĻ¤āĻžāĻ˛āĻŋāĻāĻž āĻĒāĻžāĻ: udp lengthāĨ¤ @th,160,128 vmap { 47-63 āĨ¤ 0x0e373135363130333131303735353203 : āĻ¯āĻžāĻ¨ nat_dns_dnstc, 62-78āĨ¤ 0x0e31393032383939353831343037320e : āĻ¯āĻžāĻ¨ nat_dns_this_5301, 62-78āĨ¤ 0x0e31363436323733373931323934300e : āĻ¯āĻžāĻ¨ nat_dns_saturn_5301, 62-78āĨ¤ 0x0e32393535373539353636383732310e : āĻ¯āĻžāĻ¨ nat_dns_saturn_5302, 62-78 āĨ¤ 0x0e38353439353637323038363633390e : goto nat_dns_saturn_5303 }
- āĻ¸āĻāĻŽāĻŋāĻļā§āĻ°āĻŖ āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻāĻ˛āĻžāĻĒā§ āĻāĻžāĻāĻāĻž āĻ āĻāĻŋāĻŦā§āĻ¯āĻā§āĻ¤āĻŋāĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ āĻ¨ā§āĻŽā§āĻĻāĻŋāĻ¤āĨ¤ āĻ¯ā§āĻŽāĻ¨: #nft add āĻ¨āĻŋāĻ¯āĻŧāĻŽ xy ip saddr. @ih,32,32 { 1.1.1.1 0x14, 2.2.2.2 0x1e } āĻŦāĻž āĻā§āĻŦāĻŋāĻ˛ x { āĻ¸ā§āĻ y { ip saddr āĻāĻ° āĻĒā§āĻ°āĻāĻžāĻ°āĨ¤ @ih,32,32 āĻāĻĒāĻžāĻĻāĻžāĻ¨ = { 1.1.1.1 āĨ¤ 0x14 } }
- āĻ¸āĻāĻ¯ā§āĻāĻ¨ āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻāĻ˛āĻžāĻĒā§ āĻĒā§āĻ°ā§āĻŖāĻ¸āĻāĻā§āĻ¯āĻž āĻļāĻŋāĻ°ā§āĻ¨āĻžāĻŽ āĻā§āĻˇā§āĻ¤ā§āĻ° āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻ¯ā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§: āĻā§āĻŦāĻŋāĻ˛ inet t { āĻŽāĻžāĻ¨āĻāĻŋāĻ¤ā§āĻ° m1 { āĻĒā§āĻ°āĻāĻžāĻ° udp āĻĻā§āĻ°ā§āĻā§āĻ¯āĨ¤ @ih,32,32 : āĻ°āĻžāĻ¯āĻŧ āĻĒāĻ¤āĻžāĻāĻž āĻŦā§āĻ¯āĻŦāĻ§āĻžāĻ¨ āĻāĻĒāĻžāĻĻāĻžāĻ¨ = {20-80āĨ¤ 0x14 : āĻā§āĻ°āĻšāĻŖ āĻāĻ°ā§āĻ¨, 1-10āĨ¤ 0xa : āĻĄā§āĻ°āĻĒ } } āĻā§āĻāĻ¨ c { āĻāĻžāĻāĻĒ āĻĢāĻŋāĻ˛ā§āĻāĻžāĻ° āĻšā§āĻ āĻāĻ¨āĻĒā§āĻ āĻ āĻā§āĻ°āĻžāĻ§āĻŋāĻāĻžāĻ° 0; āĻĒāĻ˛āĻŋāĻ¸āĻŋ āĻĄā§āĻ°āĻĒ; āĻāĻāĻĄāĻŋāĻĒāĻŋ āĻĻā§āĻ°ā§āĻā§āĻ¯āĨ¤ @ih,32,32 vmap @m1 } }
- āĻāĻŋāĻ¸āĻŋāĻĒāĻŋ āĻŦāĻŋāĻāĻ˛ā§āĻĒāĻā§āĻ˛āĻŋ āĻĒā§āĻ¨āĻ°āĻžāĻ¯āĻŧ āĻ¸ā§āĻ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻ¯ā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§ (āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻ˛āĻŋāĻ¨āĻžāĻā§āĻ¸ āĻāĻžāĻ°ā§āĻ¨ā§āĻ˛ 5.18+ āĻāĻ° āĻ¸āĻžāĻĨā§ āĻāĻžāĻ āĻāĻ°ā§): tcp āĻĢā§āĻ˛ā§āĻ¯āĻžāĻ āĻ¸āĻŋāĻ¨ āĻ°āĻŋāĻ¸ā§āĻ tcp āĻŦāĻŋāĻāĻ˛ā§āĻĒ sack-perm
- āĻā§āĻāĻ¨ āĻāĻāĻāĻĒā§āĻ āĻāĻŽāĻžāĻ¨ā§āĻĄ ("nft āĻ¤āĻžāĻ˛āĻŋāĻāĻž āĻā§āĻāĻ¨ xy") āĻāĻžāĻ°ā§āĻ¯āĻāĻ° āĻāĻ°āĻž āĻ¤ā§āĻŦāĻ°āĻžāĻ¨ā§āĻŦāĻŋāĻ¤ āĻšāĻ¯āĻŧā§āĻā§āĨ¤
āĻāĻ¤ā§āĻ¸: opennet.ru