IPv4 āĻ
ā§āĻ¯āĻžāĻĄā§āĻ°ā§āĻ¸āĻā§āĻ˛āĻŋ āĻŦāĻ¨ā§āĻ§ āĻšāĻ¯āĻŧā§ āĻ¯āĻžāĻāĻ¯āĻŧāĻžāĻ¯āĻŧ, āĻ
āĻ¨ā§āĻ āĻā§āĻ˛āĻŋāĻāĻŽ āĻ
āĻĒāĻžāĻ°ā§āĻāĻ° āĻ¤āĻžāĻĻā§āĻ° āĻā§āĻ˛āĻžāĻ¯āĻŧā§āĻ¨ā§āĻāĻĻā§āĻ° āĻ āĻŋāĻāĻžāĻ¨āĻž āĻ
āĻ¨ā§āĻŦāĻžāĻĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻ¨ā§āĻāĻāĻ¯āĻŧāĻžāĻ°ā§āĻ āĻ
ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°āĻžāĻ° āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ā§āĻ° āĻ¸āĻŽā§āĻŽā§āĻā§āĻ¨ āĻšāĻ¯āĻŧāĨ¤ āĻāĻ āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§ā§ āĻāĻŽāĻŋ āĻāĻĒāĻ¨āĻžāĻā§ āĻŦāĻ˛āĻŦ āĻāĻŋāĻāĻžāĻŦā§ āĻāĻĒāĻ¨āĻŋ āĻĒāĻŖā§āĻ¯ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°ā§ āĻā§āĻ¯āĻžāĻ°āĻŋāĻ¯āĻŧāĻžāĻ° āĻā§āĻ°ā§āĻĄ NAT āĻāĻ°ā§āĻŽāĻā§āĻˇāĻŽāĻ¤āĻž āĻĒā§āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨āĨ¤
āĻāĻ¤āĻŋāĻšāĻžāĻ¸ āĻāĻāĻāĻŋ āĻŦāĻŋāĻ
IPv4 āĻ ā§āĻ¯āĻžāĻĄā§āĻ°ā§āĻ¸ āĻ¸ā§āĻĒā§āĻ¸ āĻāĻā§āĻ¸āĻžāĻāĻ¸āĻļāĻ¨ā§āĻ° āĻŦāĻŋāĻˇāĻ¯āĻŧāĻāĻŋ āĻāĻ° āĻ¨āĻ¤ā§āĻ¨ āĻ¨āĻ¯āĻŧāĨ¤ āĻāĻŋāĻā§ āĻ¸āĻŽāĻ¯āĻŧā§, RIPE-āĻ¤ā§ āĻ āĻĒā§āĻā§āĻˇāĻŽāĻžāĻŖ āĻ¤āĻžāĻ˛āĻŋāĻāĻž āĻāĻĒāĻ¸ā§āĻĨāĻŋāĻ¤ āĻšāĻ¯āĻŧ, āĻ¤āĻžāĻ°āĻĒāĻ° āĻŦāĻŋāĻ¨āĻŋāĻŽāĻ¯āĻŧā§āĻ° āĻāĻŦāĻŋāĻ°ā§āĻāĻžāĻŦ āĻāĻā§ āĻ¯āĻžāĻ° āĻāĻŋāĻ¤ā§āĻ¤āĻŋāĻ¤ā§ āĻ āĻŋāĻāĻžāĻ¨āĻžāĻā§āĻ˛āĻŋāĻ° āĻŦā§āĻ˛āĻāĻā§āĻ˛āĻŋ āĻ˛ā§āĻ¨āĻĻā§āĻ¨ āĻāĻ°āĻž āĻšāĻ¯āĻŧ āĻāĻŦāĻ āĻ¸ā§āĻā§āĻ˛āĻŋāĻā§ āĻāĻāĻžāĻ°āĻž āĻĻā§āĻāĻ¯āĻŧāĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻā§āĻā§āĻ¤āĻŋ āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤ āĻ§ā§āĻ°ā§ āĻ§ā§āĻ°ā§, āĻā§āĻ˛āĻŋāĻāĻŽ āĻ āĻĒāĻžāĻ°ā§āĻāĻ°āĻ°āĻž āĻ āĻŋāĻāĻžāĻ¨āĻž āĻāĻŦāĻ āĻĒā§āĻ°ā§āĻ āĻ āĻ¨ā§āĻŦāĻžāĻĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻāĻ¨ā§āĻāĻžāĻ°āĻ¨ā§āĻ āĻ ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸ āĻĒāĻ°āĻŋāĻˇā§āĻŦāĻž āĻ¸āĻ°āĻŦāĻ°āĻžāĻš āĻāĻ°āĻ¤ā§ āĻļā§āĻ°ā§ āĻāĻ°ā§āĨ¤ āĻā§āĻ āĻā§āĻ āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻā§āĻ°āĻžāĻšāĻāĻā§ āĻāĻāĻāĻŋ "āĻ¸āĻžāĻĻāĻž" āĻ āĻŋāĻāĻžāĻ¨āĻž āĻāĻ¸ā§āĻ¯ā§ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻĒāĻ°ā§āĻ¯āĻžāĻĒā§āĻ¤ āĻ āĻŋāĻāĻžāĻ¨āĻž āĻĒā§āĻ¤ā§ āĻĒāĻ°āĻŋāĻāĻžāĻ˛āĻ¨āĻž āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨āĻŋ, āĻ āĻ¨ā§āĻ¯āĻ°āĻž āĻ¸ā§āĻā§āĻ¨ā§āĻĄāĻžāĻ°āĻŋ āĻŽāĻžāĻ°ā§āĻā§āĻā§ āĻ āĻŋāĻāĻžāĻ¨āĻž āĻā§āĻ°āĻ¯āĻŧ āĻāĻ°āĻ¤ā§ āĻ āĻ¸ā§āĻŦā§āĻāĻžāĻ° āĻāĻ°ā§ āĻ āĻ°ā§āĻĨ āĻ¸āĻā§āĻāĻ¯āĻŧ āĻāĻ°āĻ¤ā§ āĻļā§āĻ°ā§ āĻāĻ°ā§āĨ¤ āĻ¨ā§āĻāĻāĻ¯āĻŧāĻžāĻ°ā§āĻ āĻ¸āĻ°āĻā§āĻāĻžāĻŽ āĻ¨āĻŋāĻ°ā§āĻŽāĻžāĻ¤āĻžāĻ°āĻž āĻāĻ āĻ§āĻžāĻ°āĻŖāĻž āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻāĻ°ā§, āĻāĻžāĻ°āĻŖ āĻāĻ āĻāĻžāĻ°ā§āĻ¯āĻāĻžāĻ°āĻŋāĻ¤āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤ āĻ āĻ¤āĻŋāĻ°āĻŋāĻā§āĻ¤ āĻāĻā§āĻ¸āĻā§āĻ¨āĻļāĻ¨ āĻŽāĻĄāĻŋāĻāĻ˛ āĻŦāĻž āĻ˛āĻžāĻāĻ¸ā§āĻ¨ā§āĻ¸ā§āĻ° āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ āĻšāĻ¯āĻŧāĨ¤ āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, MX āĻ°āĻžāĻāĻāĻžāĻ°āĻā§āĻ˛āĻŋāĻ° āĻā§āĻ¨āĻŋāĻĒāĻžāĻ°ā§āĻ° āĻ˛āĻžāĻāĻ¨ā§ (āĻ¸āĻ°ā§āĻŦāĻļā§āĻˇ MX104 āĻāĻŦāĻ MX204 āĻŦā§āĻ¯āĻ¤ā§āĻ¤), āĻāĻĒāĻ¨āĻŋ āĻāĻāĻāĻŋ āĻĒā§āĻĨāĻ MS-MIC āĻĒāĻ°āĻŋāĻˇā§āĻŦāĻž āĻāĻžāĻ°ā§āĻĄā§ NAPT āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻ¨ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨, Cisco ASR1k-āĻāĻ° āĻāĻāĻāĻŋ CGN āĻ˛āĻžāĻāĻ¸ā§āĻ¨ā§āĻ¸ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨, Cisco ASR9k-āĻāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻĒā§āĻĨāĻ A9K-ISM-100 āĻŽāĻĄāĻŋāĻāĻ˛ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ āĻāĻŦāĻ āĻ¤āĻžāĻ° āĻāĻžāĻā§ āĻāĻāĻāĻŋ A9K-CGN āĻ˛āĻžāĻāĻ¸ā§āĻ¨ā§āĻ¸ -LICāĨ¤ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻāĻžāĻŦā§, āĻāĻ¨āĻ¨ā§āĻĻā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ āĻ¨ā§āĻ āĻāĻžāĻāĻž āĻāĻ°āĻ āĻšāĻ¯āĻŧāĨ¤
iptables
NAT āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻŦāĻŋāĻļā§āĻˇ āĻāĻŽā§āĻĒāĻŋāĻāĻāĻŋāĻ āĻ¸āĻāĻ¸ā§āĻĨāĻžāĻ¨āĻā§āĻ˛āĻŋāĻ° āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ āĻšāĻ¯āĻŧ āĻ¨āĻž; āĻāĻāĻŋ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ-āĻāĻĻā§āĻĻā§āĻļā§āĻ¯ āĻĒā§āĻ°āĻ¸ā§āĻ¸āĻ° āĻĻā§āĻŦāĻžāĻ°āĻž āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§, āĻ¯āĻž āĻāĻ¨āĻ¸ā§āĻāĻ˛ āĻāĻ°āĻž āĻāĻā§, āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, āĻ¯ā§ āĻā§āĻ¨āĻ āĻšā§āĻŽ āĻ°āĻžāĻāĻāĻžāĻ°ā§āĨ¤ āĻāĻāĻāĻŋ āĻā§āĻ˛āĻŋāĻāĻŽ āĻ āĻĒāĻžāĻ°ā§āĻāĻ°ā§āĻ° āĻ¸ā§āĻā§āĻ˛ā§, āĻĢā§āĻ°āĻŋāĻŦāĻŋāĻāĻ¸āĻĄāĻŋ (ipfw/pf) āĻŦāĻž GNU/Linux (iptables) āĻāĻžāĻ˛āĻŋāĻ¤ āĻāĻŽā§āĻĄāĻŋāĻāĻŋ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻāĻ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻ° āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤ āĻāĻŽāĻ°āĻž FreeBSD āĻŦāĻŋāĻŦā§āĻāĻ¨āĻž āĻāĻ°āĻŦ āĻ¨āĻž, āĻāĻžāĻ°āĻŖ... āĻāĻŽāĻŋ āĻāĻ OS āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻŦāĻ¨ā§āĻ§ āĻāĻ°ā§ āĻĻāĻŋāĻ¯āĻŧā§āĻāĻŋ āĻ āĻ¨ā§āĻ āĻāĻā§, āĻ¤āĻžāĻ āĻāĻŽāĻ°āĻž GNU/Linux-āĻ āĻ˛ā§āĻā§ āĻĨāĻžāĻāĻŦāĨ¤
āĻ āĻŋāĻāĻžāĻ¨āĻž āĻ āĻ¨ā§āĻŦāĻžāĻĻ āĻ¸āĻā§āĻˇāĻŽ āĻāĻ°āĻž āĻŽā§āĻā§āĻ āĻāĻ āĻŋāĻ¨ āĻ¨āĻ¯āĻŧāĨ¤ āĻĒā§āĻ°āĻĨāĻŽā§ āĻāĻĒāĻ¨āĻžāĻā§ nat āĻā§āĻŦāĻŋāĻ˛ā§ iptables āĻ āĻāĻāĻāĻŋ āĻ¨āĻŋāĻ¯āĻŧāĻŽ āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§āĻ¨ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§:
iptables -t nat -A POSTROUTING -s 100.64.0.0/10 -j SNAT --to <pool_start_addr>-<pool_end_addr> --persistent
āĻ āĻĒāĻžāĻ°ā§āĻāĻŋāĻ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ nf_conntrack āĻŽāĻĄāĻŋāĻāĻ˛ āĻ˛ā§āĻĄ āĻāĻ°āĻŦā§, āĻ¯āĻž āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ¸āĻā§āĻ°āĻŋāĻ¯āĻŧ āĻ¸āĻāĻ¯ā§āĻ āĻ¨āĻŋāĻ°ā§āĻā§āĻˇāĻŖ āĻāĻ°āĻŦā§ āĻāĻŦāĻ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ā§āĻ¯āĻŧ āĻ°ā§āĻĒāĻžāĻ¨ā§āĻ¤āĻ°āĻā§āĻ˛āĻŋ āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻ¨ āĻāĻ°āĻŦā§āĨ¤ āĻāĻāĻžāĻ¨ā§ āĻŦā§āĻļ āĻāĻŋāĻā§ āĻ¸ā§āĻā§āĻˇā§āĻŽāĻ¤āĻž āĻ°āĻ¯āĻŧā§āĻā§āĨ¤ āĻĒā§āĻ°āĻĨāĻŽāĻ¤, āĻ¯ā§āĻšā§āĻ¤ā§ āĻāĻŽāĻ°āĻž āĻāĻāĻāĻŋ āĻā§āĻ˛āĻŋāĻāĻŽ āĻ āĻĒāĻžāĻ°ā§āĻāĻ°ā§āĻ° āĻ¸ā§āĻā§āĻ˛ā§ NAT āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻāĻĨāĻž āĻŦāĻ˛āĻāĻŋ, āĻ¤āĻžāĻ āĻ¸āĻŽāĻ¯āĻŧāĻ¸ā§āĻŽāĻž āĻ¸āĻžāĻŽāĻā§āĻāĻ¸ā§āĻ¯ āĻāĻ°āĻž āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨, āĻāĻžāĻ°āĻŖ āĻĄāĻŋāĻĢāĻ˛ā§āĻ āĻŽāĻžāĻ¨āĻā§āĻ˛āĻŋāĻ° āĻ¸āĻžāĻĨā§ āĻ āĻ¨ā§āĻŦāĻžāĻĻ āĻā§āĻŦāĻŋāĻ˛ā§āĻ° āĻāĻāĻžāĻ° āĻĻā§āĻ°ā§āĻ¤ āĻŦāĻŋāĻĒāĻ°ā§āĻ¯āĻ¯āĻŧāĻŽā§āĻ˛āĻ āĻŽāĻžāĻ¨āĻā§āĻ˛āĻŋāĻ¤ā§ āĻŦā§āĻĻā§āĻ§āĻŋ āĻĒāĻžāĻŦā§āĨ¤ āĻ¨ā§āĻā§ āĻāĻŽāĻŋ āĻāĻŽāĻžāĻ° āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°āĻā§āĻ˛āĻŋāĻ¤ā§ āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤ āĻ¸ā§āĻāĻŋāĻāĻ¸ā§āĻ° āĻāĻāĻāĻŋ āĻāĻĻāĻžāĻšāĻ°āĻŖ:
net.ipv4.ip_forward = 1
net.ipv4.ip_local_port_range = 8192 65535
net.netfilter.nf_conntrack_generic_timeout = 300
net.netfilter.nf_conntrack_tcp_timeout_syn_sent = 60
net.netfilter.nf_conntrack_tcp_timeout_syn_recv = 60
net.netfilter.nf_conntrack_tcp_timeout_established = 600
net.netfilter.nf_conntrack_tcp_timeout_fin_wait = 60
net.netfilter.nf_conntrack_tcp_timeout_close_wait = 45
net.netfilter.nf_conntrack_tcp_timeout_last_ack = 30
net.netfilter.nf_conntrack_tcp_timeout_time_wait = 120
net.netfilter.nf_conntrack_tcp_timeout_close = 10
net.netfilter.nf_conntrack_tcp_timeout_max_retrans = 300
net.netfilter.nf_conntrack_tcp_timeout_unacknowledged = 300
net.netfilter.nf_conntrack_udp_timeout = 30
net.netfilter.nf_conntrack_udp_timeout_stream = 60
net.netfilter.nf_conntrack_icmpv6_timeout = 30
net.netfilter.nf_conntrack_icmp_timeout = 30
net.netfilter.nf_conntrack_events_retry_timeout = 15
net.netfilter.nf_conntrack_checksum=0
āĻāĻŦāĻ āĻĻā§āĻŦāĻŋāĻ¤ā§āĻ¯āĻŧāĻ¤, āĻ¯ā§āĻšā§āĻ¤ā§ āĻ āĻ¨ā§āĻŦāĻžāĻĻ āĻā§āĻŦāĻŋāĻ˛ā§āĻ° āĻĄāĻŋāĻĢāĻ˛ā§āĻ āĻāĻāĻžāĻ°āĻāĻŋ āĻā§āĻ˛āĻŋāĻāĻŽ āĻ āĻĒāĻžāĻ°ā§āĻāĻ°ā§āĻ° āĻļāĻ°ā§āĻ¤ā§ āĻāĻžāĻ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻĄāĻŋāĻāĻžāĻāĻ¨ āĻāĻ°āĻž āĻšāĻ¯āĻŧāĻ¨āĻŋ, āĻ¤āĻžāĻ āĻāĻāĻŋ āĻŦāĻžāĻĄāĻŧāĻžāĻ¨ā§ āĻĻāĻ°āĻāĻžāĻ°:
net.netfilter.nf_conntrack_max = 3145728
āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ¸āĻŽā§āĻĒā§āĻ°āĻāĻžāĻ° āĻ¸āĻāĻ°āĻā§āĻˇāĻŖ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻšā§āĻ¯āĻžāĻļ āĻā§āĻŦāĻŋāĻ˛ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻŦāĻžāĻ˛āĻ¤āĻŋ āĻ¸āĻāĻā§āĻ¯āĻž āĻŦāĻžāĻĄāĻŧāĻžāĻ¨ā§āĻ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ (āĻāĻāĻŋ nf_conntrack āĻŽāĻĄāĻŋāĻāĻ˛ā§āĻ° āĻāĻāĻāĻŋ āĻŦāĻŋāĻāĻ˛ā§āĻĒ):
options nf_conntrack hashsize=1572864
āĻāĻ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻŽā§āĻ¯āĻžāĻ¨āĻŋāĻĒā§āĻ˛ā§āĻļāĻ¨āĻā§āĻ˛āĻŋāĻ° āĻĒāĻ°ā§, āĻāĻāĻāĻŋ āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖ āĻāĻžāĻ°ā§āĻ¯āĻāĻ°ā§ āĻ¨āĻāĻļāĻž āĻĒāĻžāĻāĻ¯āĻŧāĻž āĻ¯āĻžāĻ¯āĻŧ āĻ¯āĻž āĻĒā§āĻ°āĻā§āĻ° āĻ¸āĻāĻā§āĻ¯āĻ āĻā§āĻ˛āĻžāĻ¯āĻŧā§āĻ¨ā§āĻ āĻ āĻŋāĻāĻžāĻ¨āĻžāĻā§āĻ˛āĻŋāĻā§ āĻŦāĻšāĻŋāĻ°āĻžāĻāĻ¤āĻā§āĻ˛āĻŋāĻ° āĻāĻāĻāĻŋ āĻĒā§āĻ˛ā§ āĻ āĻ¨ā§āĻŦāĻžāĻĻ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤ āĻ¯āĻžāĻāĻšā§āĻ, āĻāĻ āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ā§āĻ° āĻāĻ°ā§āĻŽāĻā§āĻˇāĻŽāĻ¤āĻž āĻĒāĻāĻ¨ā§āĻĻāĻ¸āĻ āĻšāĻ¤ā§ āĻ āĻ¨ā§āĻ āĻā§āĻĄāĻŧā§. NAT (āĻĒā§āĻ°āĻžāĻ¯āĻŧ 2013) āĻāĻ° āĻāĻ¨ā§āĻ¯ GNU/Linux āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻžāĻ° āĻāĻŽāĻžāĻ° āĻĒā§āĻ°āĻĨāĻŽ āĻĒā§āĻ°āĻā§āĻˇā§āĻāĻžāĻ¯āĻŧ, āĻāĻŽāĻŋ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ° āĻĒā§āĻ°āĻ¤āĻŋ 7Mpps (Xeon E0.8-5v1650) āĻ āĻĒā§āĻ°āĻžāĻ¯āĻŧ 2Gbit/s āĻĒāĻžāĻ°āĻĢāĻ°āĻŽā§āĻ¯āĻžāĻ¨ā§āĻ¸ āĻĒā§āĻ¤ā§ āĻ¸āĻā§āĻˇāĻŽ āĻšāĻ¯āĻŧā§āĻāĻŋāĨ¤ āĻ¸ā§āĻ āĻ¸āĻŽāĻ¯āĻŧ āĻĨā§āĻā§, GNU/Linux āĻāĻžāĻ°ā§āĻ¨ā§āĻ˛ āĻ¨ā§āĻāĻāĻ¯āĻŧāĻžāĻ°ā§āĻ āĻ¸ā§āĻā§āĻ¯āĻžāĻā§ āĻ āĻ¨ā§āĻāĻā§āĻ˛āĻŋ āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻ āĻĒā§āĻāĻŋāĻŽāĻžāĻāĻā§āĻļāĻ¨ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§, āĻāĻāĻ āĻšāĻžāĻ°ā§āĻĄāĻāĻ¯āĻŧā§āĻ¯āĻžāĻ°ā§āĻ° āĻāĻāĻāĻŋ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°ā§āĻ° āĻāĻžāĻ°ā§āĻ¯āĻā§āĻˇāĻŽāĻ¤āĻž 18-19 Mpps-āĻ āĻĒā§āĻ°āĻžāĻ¯āĻŧ 1.8-1.9 Gbit/s-āĻ āĻŦā§āĻĄāĻŧā§āĻā§ (āĻāĻā§āĻ˛āĻŋ āĻ¸āĻ°ā§āĻŦāĻžāĻ§āĻŋāĻ āĻŽāĻžāĻ¨ āĻāĻŋāĻ˛) , āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻāĻāĻāĻŋ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ° āĻĻā§āĻŦāĻžāĻ°āĻž āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻā§āĻ¤ āĻā§āĻ°āĻžāĻĢāĻŋāĻ āĻāĻ˛āĻŋāĻāĻŽā§āĻ° āĻāĻžāĻšāĻŋāĻĻāĻž āĻ āĻ¨ā§āĻ āĻĻā§āĻ°ā§āĻ¤ āĻŦā§āĻĻā§āĻ§āĻŋ āĻĒā§āĻ¯āĻŧā§āĻā§āĨ¤ āĻĢāĻ˛āĻ¸ā§āĻŦāĻ°ā§āĻĒ, āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°ā§ āĻ˛ā§āĻĄā§āĻ° āĻāĻžāĻ°āĻ¸āĻžāĻŽā§āĻ¯ āĻŦāĻāĻžāĻ¯āĻŧ āĻ°āĻžāĻāĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻ¸ā§āĻāĻŋāĻŽāĻā§āĻ˛āĻŋ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻāĻŋāĻ˛, āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻāĻ āĻ¸āĻŽāĻ¸ā§āĻ¤āĻā§āĻ˛āĻŋ āĻĒā§āĻ°āĻĻāĻ¤ā§āĻ¤ āĻĒāĻ°āĻŋāĻˇā§āĻŦāĻžāĻā§āĻ˛āĻŋāĻ° āĻŽāĻžāĻ¨ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨, āĻ°āĻā§āĻˇāĻŖāĻžāĻŦā§āĻā§āĻˇāĻŖ āĻāĻŦāĻ āĻ°āĻā§āĻˇāĻŖāĻžāĻŦā§āĻā§āĻˇāĻŖā§āĻ° āĻāĻāĻŋāĻ˛āĻ¤āĻž āĻŦāĻžāĻĄāĻŧāĻŋāĻ¯āĻŧā§āĻā§āĨ¤
āĻāĻ¨āĻāĻĢāĻāĻŋāĻŦā§āĻŦāĻ˛āĻ¸
āĻāĻāĻāĻžāĻ˛, āĻ¸āĻĢā§āĻāĻāĻ¯āĻŧā§āĻ¯āĻžāĻ°ā§āĻ° āĻāĻāĻāĻŋ āĻĢā§āĻ¯āĻžāĻļāĻ¨ā§āĻŦāĻ˛ āĻĒā§āĻ°āĻŦāĻŖāĻ¤āĻž āĻšāĻ˛ DPDK āĻāĻŦāĻ XDP-āĻāĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° "āĻŦā§āĻ¯āĻžāĻ āĻ¸ā§āĻĨāĻžāĻ¨āĻžāĻ¨ā§āĻ¤āĻ° āĻāĻ°āĻž"ā§ˇ āĻāĻ āĻŦāĻŋāĻˇāĻ¯āĻŧā§ āĻĒā§āĻ°āĻā§āĻ° āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§ āĻ˛ā§āĻāĻž āĻšāĻ¯āĻŧā§āĻā§, āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻŦāĻā§āĻ¤ā§āĻ¤āĻž āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§, āĻāĻŦāĻ āĻŦāĻžāĻŖāĻŋāĻā§āĻ¯āĻŋāĻ āĻĒāĻŖā§āĻ¯ āĻĒā§āĻ°āĻĻāĻ°ā§āĻļāĻŋāĻ¤ āĻšāĻā§āĻā§ (āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, VasExperts āĻĨā§āĻā§ SKAT)āĨ¤ āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻā§āĻ˛āĻŋāĻāĻŽ āĻ
āĻĒāĻžāĻ°ā§āĻāĻ°āĻĻā§āĻ° āĻ¸ā§āĻŽāĻŋāĻ¤ āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽāĻŋāĻ āĻ¸āĻāĻ¸ā§āĻĨāĻžāĻ¨āĻā§āĻ˛āĻŋāĻ° āĻāĻžāĻ°āĻŖā§, āĻāĻ āĻāĻžāĻ āĻžāĻŽā§āĻ° āĻāĻĒāĻ° āĻāĻŋāĻ¤ā§āĻ¤āĻŋ āĻāĻ°ā§ āĻ¨āĻŋāĻā§āĻ°āĻžāĻ āĻ¯ā§ āĻā§āĻ¨āĻ "āĻĒāĻŖā§āĻ¯" āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻŦā§āĻļ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻ¯ā§āĻā§āĻ¤āĨ¤ āĻāĻŦāĻŋāĻˇā§āĻ¯āĻ¤ā§ āĻāĻ āĻāĻžāĻ¤ā§āĻ¯āĻŧ āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ āĻĒāĻ°āĻŋāĻāĻžāĻ˛āĻ¨āĻž āĻāĻ°āĻž āĻāĻ°āĻ āĻāĻ āĻŋāĻ¨ āĻšāĻŦā§; āĻŦāĻŋāĻļā§āĻˇāĻ¤, āĻĄāĻžāĻ¯āĻŧāĻžāĻāĻ¨āĻ¸ā§āĻāĻŋāĻ āĻ¸āĻ°āĻā§āĻāĻžāĻŽāĻā§āĻ˛āĻŋ āĻŦāĻŋāĻāĻžāĻļ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§āĨ¤ āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, DPDK-āĻāĻ° āĻ¸āĻžāĻĨā§ āĻ¸ā§āĻā§āĻ¯āĻžāĻ¨ā§āĻĄāĻžāĻ°ā§āĻĄ tcpdump āĻ āĻŋāĻ āĻ¸ā§āĻāĻžāĻŦā§ āĻāĻžāĻ āĻāĻ°āĻŦā§ āĻ¨āĻž āĻāĻŦāĻ āĻāĻāĻŋ XDP āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻ¤āĻžāĻ°ā§ āĻĢā§āĻ°āĻ¤ āĻĒāĻžāĻ āĻžāĻ¨ā§ āĻĒā§āĻ¯āĻžāĻā§āĻāĻā§āĻ˛āĻŋ "āĻĻā§āĻāĻŦā§ āĻ¨āĻž"āĨ¤ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§-āĻ¸ā§āĻĒā§āĻ¸ā§ āĻĒā§āĻ¯āĻžāĻā§āĻ āĻĢāĻ°āĻāĻ¯āĻŧāĻžāĻ°ā§āĻĄāĻŋāĻ āĻāĻāĻāĻĒā§āĻ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻ¨āĻ¤ā§āĻ¨ āĻĒā§āĻ°āĻ¯ā§āĻā§āĻ¤āĻŋ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻāĻ˛ā§āĻāĻ¨āĻžāĻ° āĻŽāĻ§ā§āĻ¯ā§, āĻ¤āĻžāĻ°āĻž āĻ
āĻ˛āĻā§āĻˇāĻŋāĻ¤ āĻāĻŋāĻ˛
āĻŽā§āĻ˛ āĻ§āĻžāĻ°āĻŖāĻž āĻšāĻ˛ āĻ¯ā§ āĻ°āĻžāĻāĻāĻžāĻ° āĻ¯āĻĻāĻŋ āĻĒā§āĻ°āĻŦāĻžāĻšā§āĻ° āĻāĻāĻ¯āĻŧ āĻĻāĻŋāĻā§ āĻāĻāĻāĻŋ āĻ¸ā§āĻļāĻ¨ āĻĨā§āĻā§ āĻĒā§āĻ¯āĻžāĻā§āĻ āĻĒāĻžāĻ¸ āĻāĻ°ā§ (āĻāĻŋāĻ¸āĻŋāĻĒāĻŋ āĻ¸ā§āĻļāĻ¨āĻāĻŋ āĻ¸ā§āĻĨāĻžāĻĒāĻŋāĻ¤ āĻ āĻŦāĻ¸ā§āĻĨāĻžāĻ¯āĻŧ āĻāĻ˛ā§ āĻ¯āĻžāĻ¯āĻŧ), āĻ¤āĻžāĻšāĻ˛ā§ āĻĢāĻžāĻ¯āĻŧāĻžāĻ°āĻāĻ¯āĻŧāĻžāĻ˛ā§āĻ° āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ¨āĻŋāĻ¯āĻŧāĻŽā§āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻāĻ āĻ¸ā§āĻļāĻ¨ā§āĻ° āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§ āĻĒā§āĻ¯āĻžāĻā§āĻāĻā§āĻ˛āĻŋ āĻĒāĻžāĻ¸ āĻāĻ°āĻžāĻ° āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ āĻ¨ā§āĻ, āĻāĻžāĻ°āĻŖ āĻāĻ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻā§āĻ āĻĒā§āĻ¯āĻžāĻā§āĻāĻāĻŋ āĻāĻ°āĻ āĻ°āĻžāĻāĻāĻŋāĻāĻ¯āĻŧā§ āĻ¸ā§āĻĨāĻžāĻ¨āĻžāĻ¨ā§āĻ¤āĻ°āĻŋāĻ¤ āĻšāĻāĻ¯āĻŧāĻžāĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻžāĻĨā§ āĻļā§āĻˇ āĻšāĻŦā§āĨ¤ āĻāĻŦāĻ āĻāĻŽāĻžāĻĻā§āĻ° āĻāĻ¸āĻ˛ā§ āĻāĻāĻāĻŋ āĻ°ā§āĻ āĻ¨āĻŋāĻ°ā§āĻŦāĻžāĻāĻ¨ āĻāĻ°āĻžāĻ° āĻĻāĻ°āĻāĻžāĻ° āĻ¨ā§āĻ - āĻāĻŽāĻ°āĻž āĻāĻ¤āĻŋāĻŽāĻ§ā§āĻ¯ā§āĻ āĻāĻžāĻ¨āĻŋ āĻā§āĻ¨ āĻāĻ¨ā§āĻāĻžāĻ°āĻĢā§āĻ¸ā§ āĻāĻŦāĻ āĻā§āĻ¨ āĻšā§āĻ¸ā§āĻā§ āĻāĻŽāĻžāĻĻā§āĻ° āĻāĻ āĻ¸ā§āĻļāĻ¨ā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻĒā§āĻ¯āĻžāĻā§āĻ āĻĒāĻžāĻ āĻžāĻ¤ā§ āĻšāĻŦā§āĨ¤ āĻ¯āĻž āĻ āĻŦāĻļāĻŋāĻˇā§āĻ āĻĨāĻžāĻā§ āĻ¤āĻž āĻšāĻ˛ āĻāĻ āĻ¤āĻĨā§āĻ¯ āĻ¸āĻāĻ°āĻā§āĻˇāĻŖ āĻāĻ°āĻž āĻāĻŦāĻ āĻĒā§āĻ¯āĻžāĻā§āĻ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻāĻ°āĻŖā§āĻ° āĻĒā§āĻ°āĻžāĻĨāĻŽāĻŋāĻ āĻĒāĻ°ā§āĻ¯āĻžāĻ¯āĻŧā§ āĻ°āĻžāĻāĻāĻŋāĻ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻžāĨ¤ NAT āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻ¨ āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ, nf_conntrack āĻŽāĻĄāĻŋāĻāĻ˛ āĻĻā§āĻŦāĻžāĻ°āĻž āĻ āĻ¨ā§āĻŦāĻžāĻĻ āĻāĻ°āĻž āĻ āĻŋāĻāĻžāĻ¨āĻž āĻāĻŦāĻ āĻĒā§āĻ°ā§āĻā§āĻ° āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻ āĻ¤āĻŋāĻ°āĻŋāĻā§āĻ¤ āĻ¤āĻĨā§āĻ¯ āĻ¸āĻāĻ°āĻā§āĻˇāĻŖ āĻāĻ°āĻž āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨āĨ¤ āĻšā§āĻ¯āĻžāĻ, āĻ āĻŦāĻļā§āĻ¯āĻ, āĻāĻ āĻā§āĻˇā§āĻ¤ā§āĻ°ā§, iptables-āĻ āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻĒā§āĻ˛āĻŋāĻļ āĻāĻŦāĻ āĻ āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻ¤āĻĨā§āĻ¯ āĻāĻŦāĻ āĻĒāĻ°āĻŋāĻ¸āĻāĻā§āĻ¯āĻžāĻ¨ā§āĻ° āĻ¨āĻŋāĻ¯āĻŧāĻŽāĻā§āĻ˛āĻŋ āĻāĻžāĻ āĻāĻ°āĻž āĻŦāĻ¨ā§āĻ§ āĻāĻ°ā§ āĻĻā§āĻ¯āĻŧ, āĻ¤āĻŦā§ āĻāĻāĻāĻŋ āĻĒā§āĻĨāĻ āĻ¸ā§āĻĨāĻžāĻ¯āĻŧā§ NAT āĻŦāĻž, āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, āĻāĻāĻāĻŋ āĻ¸ā§āĻŽāĻžāĻ¨ā§āĻ¤ā§āĻ° āĻāĻžāĻā§āĻ° āĻāĻžāĻ āĻžāĻŽā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻāĻāĻŋ āĻāĻ¤ āĻā§āĻ°ā§āĻ¤ā§āĻŦāĻĒā§āĻ°ā§āĻŖ āĻ¨āĻ¯āĻŧ, āĻāĻžāĻ°āĻŖ āĻĒāĻ°āĻŋāĻˇā§āĻŦāĻžāĻā§āĻ˛āĻŋ āĻĄāĻŋāĻāĻžāĻāĻ¸ āĻā§āĻĄāĻŧā§ āĻŦāĻŋāĻ¤āĻ°āĻŖ āĻāĻ°āĻž āĻšāĻ¯āĻŧ.
āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨
āĻāĻ āĻĢāĻžāĻāĻļāĻ¨āĻāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻāĻŽāĻžāĻĻā§āĻ° āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨:
- āĻāĻāĻāĻŋ āĻ¤āĻžāĻāĻž āĻāĻžāĻ°ā§āĻ¨ā§āĻ˛ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§āĻ¨āĨ¤ āĻāĻžāĻ°ā§āĻ¯āĻāĻžāĻ°āĻŋāĻ¤āĻž āĻ¨āĻŋāĻā§āĻ āĻāĻžāĻ°ā§āĻ¨ā§āĻ˛ 4.16-āĻ āĻāĻĒāĻ¸ā§āĻĨāĻŋāĻ¤ āĻšāĻāĻ¯āĻŧāĻž āĻ¸āĻ¤ā§āĻ¤ā§āĻŦā§āĻ, āĻŦā§āĻļ āĻĻā§āĻ°ā§āĻ āĻ¸āĻŽāĻ¯āĻŧā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻŋ āĻā§āĻŦ "āĻāĻžāĻāĻāĻž" āĻāĻŋāĻ˛ āĻāĻŦāĻ āĻ¨āĻŋāĻ¯āĻŧāĻŽāĻŋāĻ¤āĻāĻžāĻŦā§ āĻāĻžāĻ°ā§āĻ¨ā§āĻ˛ āĻāĻ¤āĻā§āĻ āĻ¸ā§āĻˇā§āĻāĻŋ āĻāĻ°ā§āĻāĻŋāĻ˛āĨ¤ āĻĄāĻŋāĻ¸ā§āĻŽā§āĻŦāĻ° 2019 āĻāĻ° āĻāĻžāĻāĻžāĻāĻžāĻāĻŋ āĻ¸āĻŦāĻāĻŋāĻā§ āĻ¸ā§āĻĨāĻŋāĻ° āĻšāĻ¯āĻŧā§ āĻ¯āĻžāĻ¯āĻŧ, āĻ¯āĻāĻ¨ LTS āĻāĻžāĻ°ā§āĻ¨ā§āĻ˛ 4.19.90 āĻāĻŦāĻ 5.4.5 āĻĒā§āĻ°āĻāĻžāĻļāĻŋāĻ¤ āĻšāĻ¯āĻŧā§āĻāĻŋāĻ˛āĨ¤
- nftables āĻāĻ° āĻŽā§āĻāĻžāĻŽā§āĻāĻŋ āĻ¸āĻžāĻŽā§āĻĒā§āĻ°āĻ¤āĻŋāĻ āĻ¸āĻāĻ¸ā§āĻāĻ°āĻŖ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ nftables āĻŦāĻŋāĻ¨ā§āĻ¯āĻžāĻ¸ā§ iptables āĻ¨āĻŋāĻ¯āĻŧāĻŽāĻā§āĻ˛āĻŋ āĻĒā§āĻ¨āĻ°āĻžāĻ¯āĻŧ āĻ˛āĻŋāĻā§āĻ¨āĨ¤ 0.9.0 āĻ¸āĻāĻ¸ā§āĻāĻ°āĻŖā§ āĻ āĻŋāĻ āĻāĻžāĻ āĻāĻ°ā§
āĻ¯āĻĻāĻŋ āĻĒā§āĻ°āĻĨāĻŽ āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¨ā§āĻ¤āĻŋāĻāĻ¤āĻāĻžāĻŦā§ āĻ¸āĻŦāĻāĻŋāĻā§ āĻĒāĻ°āĻŋāĻˇā§āĻāĻžāĻ° āĻšāĻ¯āĻŧ, āĻ¤āĻŦā§ āĻŽā§āĻ˛ āĻāĻŋāĻ¨āĻŋāĻ¸āĻāĻŋ āĻ¸āĻŽāĻžāĻŦā§āĻļā§āĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ā§ āĻŽāĻĄāĻŋāĻāĻ˛āĻāĻŋ āĻ
āĻ¨ā§āĻ¤āĻ°ā§āĻā§āĻā§āĻ¤ āĻāĻ°āĻ¤ā§ āĻā§āĻ˛āĻŦā§āĻ¨ āĻ¨āĻž (CONFIG_NFT_FLOW_OFFLOAD=m), āĻ¤āĻžāĻ°āĻĒāĻ° āĻĻā§āĻŦāĻŋāĻ¤ā§āĻ¯āĻŧ āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻāĻāĻŋāĻ° āĻŦā§āĻ¯āĻžāĻā§āĻ¯āĻž āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨āĨ¤ nftables āĻ¨āĻŋāĻ¯āĻŧāĻŽāĻā§āĻ˛āĻŋ iptables āĻĨā§āĻā§ āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖ āĻāĻŋāĻ¨ā§āĻ¨āĻāĻžāĻŦā§ āĻŦāĻ°ā§āĻŖāĻ¨āĻž āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§āĨ¤
NAT āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ āĻā§āĻŦ āĻ¸āĻšāĻ:
#! /usr/sbin/nft -f
table nat {
chain postrouting {
type nat hook postrouting priority 100;
oif <o_if> snat to <pool_addr_start>-<pool_addr_end> persistent
}
}
āĻĢā§āĻ˛ā§ āĻ āĻĢāĻ˛ā§āĻĄā§āĻ° āĻ¸āĻžāĻĨā§ āĻāĻāĻŋ āĻāĻāĻā§ āĻŦā§āĻļāĻŋ āĻāĻāĻŋāĻ˛, āĻ¤āĻŦā§ āĻŦā§āĻļ āĻŦā§āĻ§āĻāĻŽā§āĻ¯:
#! /usr/sbin/nft -f
table inet filter {
flowtable fastnat {
hook ingress priority 0
devices = { <i_if>, <o_if> }
}
chain forward {
type filter hook forward priority 0; policy accept;
ip protocol { tcp , udp } flow offload @fastnat;
}
}
āĻ¯ā§, āĻāĻ¸āĻ˛ā§, āĻĒā§āĻ°ā§ āĻ¸ā§āĻāĻāĻĒ. āĻāĻāĻ¨ āĻ¸āĻŽāĻ¸ā§āĻ¤ TCP/UDP āĻā§āĻ°ā§āĻ¯āĻžāĻĢāĻŋāĻ āĻĢāĻžāĻ¸ā§āĻāĻ¨ā§āĻ¯āĻžāĻ āĻā§āĻŦāĻŋāĻ˛ā§ āĻĒāĻĄāĻŧāĻŦā§ āĻāĻŦāĻ āĻ āĻ¨ā§āĻ āĻĻā§āĻ°ā§āĻ¤ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻāĻ°āĻž āĻšāĻŦā§āĨ¤
Đ ĐĩСŅĐģŅŅĐ°ŅŅ
āĻāĻāĻŋ āĻāĻ¤āĻāĻž "āĻā§āĻŦ āĻĻā§āĻ°ā§āĻ¤" āĻ¤āĻž āĻ¸ā§āĻĒāĻˇā§āĻ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯, āĻāĻŽāĻŋ āĻāĻāĻ āĻšāĻžāĻ°ā§āĻĄāĻāĻ¯āĻŧā§āĻ¯āĻžāĻ° (Xeon E5-1650v2) āĻ¸āĻš, āĻāĻāĻ āĻ˛āĻŋāĻ¨āĻžāĻā§āĻ¸ āĻāĻžāĻ°ā§āĻ¨ā§āĻ˛ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§, āĻāĻŋāĻ¨ā§āĻ¤ā§ iptables-āĻ NAT āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻ¨ āĻāĻ°ā§ āĻāĻāĻ āĻšāĻžāĻ°ā§āĻĄāĻāĻ¯āĻŧā§āĻ¯āĻžāĻ° āĻ¸āĻš āĻĻā§āĻāĻŋ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°ā§ āĻ˛ā§āĻĄā§āĻ° āĻāĻāĻāĻŋ āĻ¸ā§āĻā§āĻ°āĻŋāĻ¨āĻļāĻ āĻ¸āĻāĻ¯ā§āĻā§āĻ¤ āĻāĻ°āĻŦāĨ¤ (NAT4) āĻāĻŦāĻ nftables (NAT5)āĨ¤
āĻ¸ā§āĻā§āĻ°āĻŋāĻ¨āĻļāĻā§ āĻĒā§āĻ°āĻ¤āĻŋ āĻ¸ā§āĻā§āĻ¨ā§āĻĄā§ āĻĒā§āĻ¯āĻžāĻā§āĻā§āĻ° āĻā§āĻ¨ā§ āĻā§āĻ°āĻžāĻĢ āĻ¨ā§āĻ, āĻ¤āĻŦā§ āĻāĻ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°ā§āĻ° āĻ˛ā§āĻĄ āĻĒā§āĻ°ā§āĻĢāĻžāĻāĻ˛ā§ āĻāĻĄāĻŧ āĻĒā§āĻ¯āĻžāĻā§āĻā§āĻ° āĻāĻāĻžāĻ° āĻĒā§āĻ°āĻžāĻ¯āĻŧ 800 āĻŦāĻžāĻāĻ, āĻ¤āĻžāĻ āĻŽāĻžāĻ¨āĻā§āĻ˛āĻŋ 1.5Mpps āĻĒāĻ°ā§āĻ¯āĻ¨ā§āĻ¤ āĻĒā§āĻāĻāĻžāĻ¯āĻŧāĨ¤ āĻāĻĒāĻ¨āĻŋ āĻĻā§āĻāĻ¤ā§ āĻĒāĻžāĻā§āĻā§āĻ¨, nftables āĻ¸āĻš āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°ā§āĻ° āĻāĻāĻāĻŋ āĻŦāĻŋāĻļāĻžāĻ˛ āĻāĻ°ā§āĻŽāĻā§āĻˇāĻŽāĻ¤āĻž āĻ°āĻŋāĻāĻžāĻ°ā§āĻ āĻ°āĻ¯āĻŧā§āĻā§āĨ¤ āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ā§, āĻāĻ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°āĻāĻŋ 30Mpps-āĻ 3Gbit/s āĻĒāĻ°ā§āĻ¯āĻ¨ā§āĻ¤ āĻĒā§āĻ°āĻ¸ā§āĻ¸ āĻāĻ°ā§ āĻāĻŦāĻ āĻŦāĻŋāĻ¨āĻžāĻŽā§āĻ˛ā§āĻ¯ā§ CPU āĻ°āĻŋāĻ¸ā§āĻ°ā§āĻ¸ āĻĨāĻžāĻāĻžāĻāĻžāĻ˛ā§āĻ¨ 40Gbps-āĻāĻ° āĻļāĻžāĻ°ā§āĻ°āĻŋāĻ āĻ¨ā§āĻāĻāĻ¯āĻŧāĻžāĻ°ā§āĻ āĻ¸ā§āĻŽāĻžāĻŦāĻĻā§āĻ§āĻ¤āĻž āĻĒā§āĻ°āĻŖ āĻāĻ°āĻ¤ā§ āĻ¸ā§āĻĒāĻˇā§āĻāĻāĻžāĻŦā§ āĻ¸āĻā§āĻˇāĻŽāĨ¤
āĻāĻŽāĻŋ āĻāĻļāĻž āĻāĻ°āĻŋ āĻāĻ āĻāĻĒāĻžāĻĻāĻžāĻ¨āĻāĻŋ āĻ¤āĻžāĻĻā§āĻ° āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°ā§āĻ° āĻāĻ°ā§āĻŽāĻā§āĻˇāĻŽāĻ¤āĻž āĻāĻ¨ā§āĻ¨āĻ¤ āĻāĻ°āĻžāĻ° āĻā§āĻˇā§āĻāĻž āĻāĻ°āĻž āĻ¨ā§āĻāĻāĻ¯āĻŧāĻžāĻ°ā§āĻ āĻāĻā§āĻāĻŋāĻ¨āĻŋāĻ¯āĻŧāĻžāĻ°āĻĻā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻĒāĻ¯ā§āĻā§ āĻšāĻŦā§āĨ¤
āĻāĻ¤ā§āĻ¸: www.habr.com