เบเปเบญเบเบงเปเบฒเบเบตเปเบขเบนเป IPv4 เบเบฒเบเปเบเบฑเบเบเบฒเบเปเบชเบทเปเบญเบกเปเบเบก, เบเบนเปเบเบฐเบเบญเบเบเบฒเบเปเบเบฅเบฐเบเบปเบกเบเปเบฒเบเบงเบเบซเบผเบฒเบเบเปเบฒเบฅเบฑเบเบเบฐเปเบเบตเบเบเบฑเบเบเบงเบฒเบกเบเปเบญเบเบเบฒเบเบเบตเปเบเบฐเปเบซเปเบฅเบนเบเบเปเบฒเบเบญเบเบเบงเบเปเบเบปเบฒเปเบเบปเปเบฒเปเบเบดเบเปเบเบทเบญเบเปเบฒเบเปเบเบเปเบเปเบเบฒเบเปเบเบเบฒเบชเบฒเบเบตเปเบขเบนเป. เปเบเบเบปเบเบเบงเบฒเบกเบเบตเปเบเปเบฒเบเบฐเปเบเบปเปเบฒเบเบฐเบเบญเบเบเปเบฒเบเบงเบดเบเบตเบเบตเปเบเปเบฒเบเบชเบฒเบกเบฒเบเปเบเปเบฎเบฑเบ Carrier Grade NAT เบเบฐเบชเบดเบเบเบดเบเบฒเบเปเบเปเบเบทเปเบญเบเปเบกเปเบเปเบฒเบเบเบญเบเบชเบดเบเบเปเบฒ.
เบเบฒเบเบเบฐเบซเบงเบฑเบเบชเบฒเบ
เบซเบปเบงเบเปเปเบเบญเบเบเบฒเบเบซเบกเบปเบเบเบทเปเบเบเบตเปเบเบตเปเบขเบนเป IPv4 เปเบกเปเบเบเปเปเปเบซเบกเป. เปเบเบเบฒเบเบเบธเบ, เบฅเบฒเบเบเบทเปเบฅเปเบเปเบฒเปเบเปเบเบฒเบเบปเบเบขเบนเปเปเบ RIPE, เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบ, เบเบฒเบเปเบฅเบเบเปเบฝเบเปเบเปเปเบเบตเบเบเบทเปเบเปเบเบเปเบญเบเบเบตเปเบกเบตเบเบฒเบเบเบทเปเบเบฒเบเบเบตเปเบขเบนเปเปเบฅเบฐเบเปเปเบเบปเบเบฅเบปเบเปเบเปเบเบทเบเบชเบฐเบซเบผเบธเบเปเบเบทเปเบญเปเบเบปเปเบฒเบเบงเบเบกเบฑเบ. เบเปเบญเบเป, เบเบนเปเบเบฐเบเบญเบเบเบฒเบเปเบเบฅเบฐเบเบปเบกเปเบฅเบตเปเบกเปเบซเปเบเปเบฅเบดเบเบฒเบเปเบเบปเปเบฒเปเบเบดเบเบญเบดเบเปเบเบตเปเบเบฑเบเปเบเบเปเบเปเบเบตเปเบขเบนเปเปเบฅเบฐเบเบฒเบเปเบเบเบฒเบชเบฒเบเบญเบ. เบเบฒเบเบเบปเบเบเปเปเปเบเปเบเบฑเบเบเบฒเบเบเบตเปเบเบฐเปเบเปเบฎเบฑเบเบเบตเปเบขเบนเปเบเบฝเบเบเปเบเบตเปเบเบฐเบญเบญเบเบเบตเปเบขเบนเป "เบชเบตเบเบฒเบง" เปเบซเปเบเบฑเบเบเบนเปเบเบญเบเปเบเปเบฅเบฐเบเบปเบ, เปเบเบเบฐเบเบฐเบเบตเปเบเบปเบเบญเบทเปเบเปเบฅเบตเปเบกเบเบฐเบซเบเบฑเบเปเบเบดเบเปเบเบเบเบฒเบเบเบฐเบเบดเปเบชเบเบเบฒเบเบเบทเปเบเบตเปเบขเบนเปเปเบเบเบฐเบซเบผเบฒเบเบฎเบญเบ. เบเบนเปเบเบฐเบฅเบดเบเบญเบธเบเบฐเบเบญเบเปเบเบทเบญเบเปเบฒเบเบชเบฐเบซเบเบฑเบเบชเบฐเบซเบเบนเบเบเบงเบฒเบกเบเบดเบเบเบตเป, เปเบเบฒเบฐเบงเปเบฒ เบเบฒเบเบเปเบฒเบเบฒเบเบเบตเปเบเบปเบเบเบฐเบเบดเปเบฅเปเบงเบเปเบญเบเบเบฒเบเปเบกเบเบนเบเบเบฒเบเบเบฐเบซเบเบฒเบเปเบเบตเปเบกเปเบเบตเบกเบซเบผเบทเปเบเบญเบฐเบเบธเบเบฒเบ. เบเบปเบงเบขเปเบฒเบ, เปเบเบชเบฒเบเบเบญเบ Juniper เบเบญเบ MX routers (เบเบปเบเปเบงเบฑเปเบ MX104 เปเบฅเบฐ MX204 เบซเบผเปเบฒเบชเบธเบ), เบเปเบฒเบเบชเบฒเบกเบฒเบเบเบฐเบเบดเบเบฑเบ NAPT เปเบเบเบฑเบเบเปเบฅเบดเบเบฒเบ MS-MIC เปเบเบเบเปเบฒเบเบซเบฒเบ, Cisco ASR1k เบเปเบญเบเบเบฒเบเปเบเบญเบฐเบเบธเบเบฒเบ CGN, Cisco ASR9k เบเปเบญเบเบเบฒเบเปเบกเบเบนเบ A9K-ISM-100 เปเบเบเบเปเบฒเบเบซเบฒเบ. เปเบฅเบฐเปเบเบญเบฐเบเบธเบเบฒเบ A9K-CGN -LIC เบเบฑเบเบฅเบฒเบง. เปเบเบเบเบปเปเบงเปเบ, เบเบงเบฒเบกเบชเบธเบเบกเบตเบเปเบฒเปเบเปเบเปเบฒเบเบซเบผเบฒเบ.
IPTables
เบงเบฝเบเบเบฒเบเบเบญเบเบเบฒเบเบเบฐเบเบดเบเบฑเบ NAT เบเปเปเบเปเบฒเปเบเบฑเบเบเปเบญเบเบกเบตเบเบฑเบเบเบฐเบเบฒเบเบญเบเบเบญเบกเบเบดเบงเปเบเบตเปเบเบดเปเบชเบ; เบกเบฑเบเบชเบฒเบกเบฒเบเปเบเปเปเบเปเบเปเปเบเบเปเบเปเบเบเปเบเบตเบเบตเปเบกเบตเบเบธเบเบเบฐเบชเบปเบเบเบปเปเบงเปเบ, เปเบเบดเปเบเบเบทเบเบเบดเบเบเบฑเปเบ, เบเบปเบงเบขเปเบฒเบ, เปเบ router เปเบฎเบทเบญเบเปเบเบเปเปเบเบฒเบก. เปเบเบเบญเบเปเบเบเบเบญเบเบเบนเปเปเบซเปเบเปเบฅเบดเบเบฒเบเปเบเบฅเบฐเบเบปเบก, เบเบฑเบเบซเบฒเบเบตเปเบชเบฒเบกเบฒเบเปเบเปเปเบเปเบเปเปเบเบเปเบเปเปเบเบทเปเบญเบเปเบกเปเบเปเบฒเบเบชเบดเบเบเปเบฒเบเบตเปเปเบเป FreeBSD (ipfw/pf) เบซเบผเบท GNU/Linux (iptables). เบเบงเบเปเบฎเบปเบฒเบเบฐเบเปเปเบเบดเบเบฒเบฅเบฐเบเบฒ FreeBSD, เปเบเบฒเบฐเบงเปเบฒ ... เบเปเบญเบเปเบเบปเบฒเปเบเป OS เบเบตเปเบเบปเบเปเบฅเปเบง, เบเบฑเปเบเบเบฑเปเบเบเบงเบเปเบฎเบปเบฒเบเบฐเบเบดเบเบขเบนเปเบเบฑเบ GNU/Linux.
เบเบฒเบเปเบเบตเบเปเบเปเบเบฒเบเปเบเบเบตเปเบขเบนเปเปเบกเปเบเบเปเปเบเบฒเบเปเบฅเบตเบ. เบเปเบญเบเบญเบทเปเบ เปเบปเบ เบเปเบฒเบเบเปเบญเบเบฅเบปเบเบเบฐเบเบฝเบเบเบปเบเบฅเบฐเบเบฝเบเปเบ iptables เปเบเบเบฒเบเบฐเบฅเบฒเบ nat:
iptables -t nat -A POSTROUTING -s 100.64.0.0/10 -j SNAT --to <pool_start_addr>-<pool_end_addr> --persistent
เบฅเบฐเบเบปเบเบเบฐเบเบดเบเบฑเบเบเบฒเบเบเบฐเปเบซเบฅเบเปเบกเบเบนเบ nf_conntrack, เปเบเบดเปเบเบเบฐเบเบดเบเบเบฒเบกเบเบฒเบเปเบเบทเปเบญเบกเบเปเปเบเบตเปเปเบเปเบงเบฝเบเบเบฑเบเบซเบกเบปเบเปเบฅเบฐเบเบฐเบเบดเบเบฑเบเบเบฒเบเปเบเบเบเบตเปเบเปเบฒเปเบเบฑเบ. เบกเบต subtleties เบซเบผเบฒเบเบขเบนเปเบเบตเปเบเบตเป. เบเปเบญเบเบญเบทเปเบ เปเบปเบ, เบเปเบญเบเบงเปเบฒเบเบงเบเปเบฎเบปเบฒเปเบงเบปเปเบฒเบเปเบฝเบงเบเบฑเบ 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
เบกเบฑเบเบเบฑเบเบกเบตเบเบงเบฒเบกเบเปเบฒเปเบเบฑเบเบเบตเปเบเบฐเปเบเบตเปเบกเบเปเบฒเบเบงเบเบเบฑเบเบชเปเบฒเบฅเบฑเบเบเบฒเบเบฐเบฅเบฒเบ hash เบเบตเปเปเบเบฑเบเบฎเบฑเบเบชเบฒเบเบฒเบเบญเบญเบเบญเบฒเบเบฒเบเบเบฑเบเบซเบกเบปเบ (เบเบตเปเปเบกเปเบเบเบฒเบเปเบฅเบทเบญเบเปเบเปเบกเบเบนเบ nf_conntrack):
options nf_conntrack hashsize=1572864
เบซเบผเบฑเบเบเบฒเบเบเบฒเบเบซเบกเบนเบเปเบเปเบเบตเปเบเปเบฒเบเบเบฒเบเปเบซเบผเบปเปเบฒเบเบตเป, เบเบฒเบเบญเบญเบเปเบเบเบเบตเปเปเบฎเบฑเบเบงเบฝเบเบขเปเบฒเบเบชเบปเบกเบเบนเบเปเบกเปเบเปเบเปเบฎเบฑเบเบเบตเปเบชเบฒเบกเบฒเบเปเบเบเบฒเบชเบฒเบเปเบฒเบเบงเบเบซเบฅเบฒเบเบเบญเบเบเบตเปเบขเบนเปเบฅเบนเบเบเปเบฒเปเบเบปเปเบฒเปเบเปเบเบชเบฐเบเบธเบเปเบเบตเบเบฒเบเบเบญเบ. เบขเปเบฒเบเปเบเบเปเบเบฒเบก, เบเบฐเบชเบดเบเบเบดเบเบฒเบเบเบญเบเบเบฒเบเปเบเปเปเบเบเบตเปเปเบฎเบฑเบเปเบซเปเบซเบผเบฒเบเบเบตเปเบเบฐเบเปเบญเบเบเบฒเบ. เปเบเบเบงเบฒเบกเบเบฐเบเบฒเบเบฒเบกเบเปเบฒเบญเบดเบเบเบญเบเบเปเบญเบเปเบเบเบฒเบเบเปเบฒเปเบเป GNU / Linux เบชเปเบฒเบฅเบฑเบ NAT (เบเบฐเบกเบฒเบ 2013), เบเปเบญเบเบชเบฒเบกเบฒเบเบเบฐเบเบดเบเบฑเบเปเบเปเบเบฐเบกเบฒเบ 7Gbit / s เบเบตเป 0.8Mpps เบเปเปเปเบเบทเปเบญเบเปเบกเปเบเปเบฒเบ (Xeon E5-1650v2). เบเบฑเบเบเบฑเปเบเปโโเบเปเปเบงเบฅเบฒเบเบฑเปเบ, เบเบฒเบเปเบเบตเปเบกเบเบฐเบชเบดเบเบเบดเบเบฒเบเบเบตเปเปเบเบเบเปเบฒเบเบเบฑเบเบซเบผเบฒเบเปเบเปเบเบทเบเบเปเบฒเปเบเบตเบเบขเบนเปเปเบ stack เปเบเบทเบญเบเปเบฒเบ GNU / Linux kernel, เบเบฐเบชเบดเบเบเบดเบเบฒเบเบเบญเบเปเบเบทเปเบญเบเปเบกเปเบเปเบฒเบเบซเบเบถเปเบเปเบเบฎเบฒเบเปเบงเบเบฝเบงเบเบฑเบเปเบเปเปเบเบตเปเบกเบเบถเปเบเปเบเบทเบญเบ 18-19 Gbit / s เบเบตเป 1.8-1.9 Mpps (เปเบซเบผเบปเปเบฒเบเบตเปเปเบกเปเบเบเปเบฒเบชเบนเบเบชเบธเบ). , เปเบเปเบเบงเบฒเบกเบเปเบญเบเบเบฒเบเบชเปเบฒเบฅเบฑเบเบเบฐเบฅเบดเบกเบฒเบเบเบฒเบเบเบฐเบฅเบฒเบเบญเบ, เบเบฒเบเบเบธเบเปเบเปเบเปเบเบเปเบเบทเปเบญเบเปเบกเปเบเปเบฒเบเบซเบเบถเปเบเปเบเบตเปเบกเบเบถเปเบเปเบงเบซเบผเบฒเบ. เบเบฑเปเบเบเบฑเปเบ, เปเบเบเบเบฒเบเปเบเปเบเบทเบเบเบฑเบเบเบฐเบเบฒเปเบเบทเปเบญเบเบธเปเบเบเปเบฝเบเบเบฒเบเปเบซเบผเบเปเบเปเบเบทเปเบญเบเปเบกเปเบเปเบฒเบเบเบตเปเปเบเบเบเปเบฒเบเบเบฑเบ, เปเบเปเบเบฑเบเบซเบกเบปเบเบเบตเปเปเบฎเบฑเบเปเบซเปเบเบงเบฒเบกเบชเบฑเบเบชเบปเบเปเบเบเบฒเบเบเบฑเปเบเบเปเบฒ, เบเบฒเบเบฎเบฑเบเบชเบฒเปเบฅเบฐเบฎเบฑเบเบชเบฒเบเบธเบเบเบฐเบเบฒเบเบเบญเบเบเบฒเบเบเปเบฅเบดเบเบฒเบเบเบตเปเบชเบฐเบซเบเบญเบเปเบซเป.
NTFables
เปเบเบเบฑเบเบเบธเบเบฑเบ, เปเบเบงเปเบเปเบกเบเบญเบเบเบปเบเบญเบฑเบเปเบเบ: เปเบเบเบญเบเปเบง "shifting bag" เปเบกเปเบเบเบฒเบเบเปเบฒเปเบเป DPDK เปเบฅเบฐ XDP. เบซเบผเบฒเบเปเบเบปเบเบเบงเบฒเบกเปเบเปเบเบทเบเบเบฝเบเปเบงเปเปเบเบซเบปเบงเบเปเปเบเบตเป, เบเปเบฒเปเบงเบปเปเบฒเบเบตเปเปเบเบเบเปเบฒเบเบเบฑเบเบซเบผเบฒเบเปเบเปเบเบทเบเบชเปเบฒเบเบเบทเปเบ, เปเบฅเบฐเบเบฐเบฅเบดเบเบเบฐเบเบฑเบเบเบฒเบเบเปเบฒเปเบเปเบเบฒเบเบปเบ (เบเบปเบงเบขเปเบฒเบ, SKAT เบเบฒเบ VasExperts). เปเบเปเปเบเบทเปเบญเบเบเบฒเบเบเบฑเบเบเบฐเบเบฒเบเบญเบเบเบฒเบเบเบฝเบเปเบเบฅเปเบเบฅเบกเบเบตเปเบเปเบฒเบเบฑเบเบเบญเบเบเบนเปเบเบฐเบเบดเบเบฑเบเบเบฒเบเปเบเบฅเบฐเบเบปเบก, เบกเบฑเบเปเบเบฑเบเบเบฑเบเบซเบฒเบซเบผเบฒเบเบเบตเปเบเบฐเบชเปเบฒเบ "เบเบฐเบฅเบดเบเบเบฐเบเบฑเบ" เปเบเบเบญเบตเบเปเบชเปเบเบญเบเปเบซเบผเบปเปเบฒเบเบตเปเบเบญเบเบเปเบฒเบเปเบญเบ. เบกเบฑเบเบเบฐเบกเบตเบเบงเบฒเบกเบซเบเบธเปเบเบเบฒเบเบซเบผเบฒเบเบเบตเปเบเบฐเบเปเบฒเปเบเบตเบเบเบฒเบเปเบเปเปเบเบเบฑเปเบเบเปเบฒเบงเปเบเบญเบฐเบเบฒเบเบปเบ; เปเบเบเบชเบฐเปเบเบฒเบฐ, เปเบเบทเปเบญเบเบกเบทเบเบฒเบเบงเบดเบเบดเบเปเบชเบเปเบญเบเปเบเปเบฎเบฑเบเบเบฒเบเบเบฑเบเบเบฐเบเบฒ. เบเบปเบงเบขเปเบฒเบ, tcpdump เบกเบฒเบเบเบฐเบเบฒเบเบเบฑเบ DPDK เบเบฐเบเปเปเปเบฎเบฑเบเบงเบฝเบเบเบทเบเบฑเบเบเบฑเบเบเบฑเปเบ, เปเบฅเบฐเบกเบฑเบเบเบฐเบเปเป "เปเบเบดเปเบ" packets เบเบตเปเบเบทเบเบชเบปเปเบเปเบเบซเบฒเบชเบฒเบเปเบเบเปเบเป XDP. เบเปเบฒเบกเบเบฒเบเบเบฒเบเบชเบปเบเบเบฐเบเบฒเบเบฑเบเบซเบกเบปเบเบเปเบฝเบงเบเบฑเบเปเบเบฑเบเปเบเปเบฅเบขเบตเปเบซเบกเปเบชเปเบฒเบฅเบฑเบเบเบฒเบเบชเบปเปเบเบเปเปเปเบเบฑเบเปเบเบฑเบเปเบเบซเบฒเบเบทเปเบเบเบตเปเบเบนเปเปเบเป, เบเบงเบเปเบเบปเบฒเบเปเปเปเบเปเบชเบฑเบเปเบเบเปเบซเบฑเบ.
เปเบเบงเบเบงเบฒเบกเบเบดเบเบเบปเปเบเบเปเปเบกเปเบเบงเปเบฒเบเปเบฒ router เบเปเบฒเบเปเบเบฑเบเปเบเบฑเบเบเบฒเบเบเบญเบเบเบฐเบเบธเบกเบซเบเบถเปเบเปเบเบเบฑเบเบชเบญเบเบเบดเบเบเบฒเบเบเบญเบเบเบฒเบเปเบซเบผ (TCP session เปเบเบปเปเบฒเปเบเปเบเบชเบฐเบเบฒเบเบฐ ESTABLISHED), เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบเบเปเปเบเปเบฒเปเบเบฑเบเบเปเบญเบเบเปเบฒเบเบเบธเบเบเปเปเปเบเบเบญเบเบเบญเบเบเบฐเบเบธเบกเบเบตเปเปเบเบเบเปเบฒเบเบเบปเบเบฅเบฐเบเบฝเบเปเบเบงเปเบเบฑเบเบซเบกเบปเบ, เปเบเบฒเบฐเบงเปเบฒ. เบเบฒเบเบเบงเบเบชเบญเบเบเบฑเบเปเบปเบเปเบซเบผเบปเปเบฒเบเบตเปเบเบฑเบเบเบฐเบชเบดเปเบเบชเบธเบเบเปเบงเบเปเบเบฑเบเปเบเบฑเบเบเบตเปเบเบทเบเปเบญเบเปเบเบซเบฒเปเบชเบฑเปเบเบเบฒเบเบเปเปเปเบ. เปเบฅเบฐเบเบปเบงเบเบดเบเปเบฅเปเบงเบเบงเบเปเบฎเบปเบฒเบเปเปเบเปเบฒเปเบเบฑเบเบเปเบญเบเปเบฅเบทเบญเบเปเบชเบฑเปเบเบเบฒเบ - เบเบงเบเปเบฎเบปเบฒเบฎเบนเปเปเบฅเปเบงเบงเปเบฒเบญเบดเบเปเบเบตเปเบเบเปเบเปเบฅเบฐเปเบเบปเปเบฒเบเบฒเบเปเบเบเบตเปเบเบงเบเปเบฎเบปเบฒเบเปเบญเบเบเบฒเบเบชเบปเปเบเปเบเบฑเบเปเบเบฑเบเบเบฒเบเปเบเบเบญเบเบเบฐเบเบธเบกเบเบตเป. เบเบฑเบเบซเบกเบปเบเบเบตเปเบเบฑเบเปเบซเบผเบทเบญเปเบกเปเบเปเบเบทเปเบญเปเบเบฑเบเบฎเบฑเบเบชเบฒเบเปเปเบกเบนเบเบเบตเปเปเบฅเบฐเบเปเบฒเปเบเปเบกเบฑเบเบชเปเบฒเบฅเบฑเบ routing เปเบเปเบฅเบเบฐเบเบปเปเบเบเบญเบเบเบฒเบเบเบธเบเปเบเปเบ packet. เปเบกเบทเปเบญเบเบฐเบเบดเบเบฑเบ NAT, เบกเบฑเบเบเปเบฒเปเบเบฑเบเบเปเบญเบเปเบเบฑเบเบฎเบฑเบเบชเบฒเบเปเปเบกเบนเบเปเบเบตเปเบกเปเบเบตเบกเบเปเบฝเบงเบเบฑเบเบเบฒเบเบเปเบฝเบเปเบเบเบเบตเปเบขเบนเปเปเบฅเบฐเบเบญเบเบเบตเปเปเบเปเบเบเปเบกเบเบนเบ nf_conntrack. เปเบกเปเบเปเบฅเปเบง, เปเบเปเบเบญเบ, เปเบเบเปเบฅเบฐเบเบตเบเบตเป, เบเปเบฒเบซเบผเบงเบเบเปเบฒเบเปเปเบฅเบฐเบเปเปเบกเบนเบเบญเบทเปเบเปเปเบฅเบฐเบเบปเบเบฅเบฐเบเบฝเบเบชเบฐเบเบดเบเบดเปเบ iptables เบขเบธเบเปเบเบปเบฒเปเบฎเบฑเบเบงเบฝเบ, เปเบเปเปเบเบเบญเบเปเบเบเบเบญเบเบงเบฝเบเบเบฒเบเบเบญเบ NAT เปเบเบเบเปเบฒเบเบซเบฒเบเบซเบผเบท, เบชเปเบฒเบฅเบฑเบเบเบปเบงเบขเปเบฒเบ, เบเบฒเบเปเบเบ, เบเบตเปเบเปเปเปเบกเปเบเบชเบดเปเบเบชเปเบฒเบเบฑเบ, เปเบเบฒเบฐเบงเปเบฒเบเบฒเบเบเปเบฅเบดเบเบฒเบ. เบเบทเบเปเบเบเบขเบฒเบเปเบเบเบปเปเบงเบญเบธเบเบฐเบเบญเบ.
เบเบฒเบเบเบฑเปเบเบเปเบฒ
เปเบเบทเปเบญเปเบเปเบเบฑเบเบเบฑเบเบเบตเป, เบเบงเบเปเบฎเบปเบฒเบเปเบญเบเบเบฒเบ:
- เปเบเปเปเบเปเบเบชเบปเบ. เปเบเบดเบเบงเปเบฒเบเบฐเบกเบตเบเบงเบฒเบกเบเบดเบเบเบตเปเบงเปเบฒเบเบฒเบเบเปเบฒเบเบฒเบเบเบญเบเบกเบฑเบเปเบญเบเบเบฒเบเบปเบเบขเบนเปเปเบเปเบเปเบ 4.16, เปเบเบฑเบเปเบงเบฅเบฒเบเบปเบเบซเบผเบฒเบเบกเบฑเบ "เบเบดเบ" เปเบฅเบฐเปเบเบฑเบเบเบฐเบเปเบฒเปเบฎเบฑเบเปเบซเปเปเบเบตเบเบเบงเบฒเบกเบขเปเบฒเบเบเบปเบงเบเบญเบเปเบเปเบ. เบเบธเบเบขเปเบฒเบเบกเบตเบชเบฐเบเบฝเบเบฅเบฐเบเบฒเบเปเบเบฎเบญเบเปเบเบทเบญเบเบเบฑเบเบงเบฒ 2019, เปเบกเบทเปเบญ LTS kernels 4.19.90 เปเบฅเบฐ 5.4.5 เบเบทเบเบเปเบญเบเบญเบญเบเบกเบฒ.
- เบเบฝเบเบเบทเบเบเบปเบเบฅเบฐเบเบฝเบ iptables เปเบเบฎเบนเบเปเบเบ nftables เปเบเบเปเบเป nftables เบฎเบธเปเบเบซเบผเปเบฒเบชเบธเบ. เปเบฎเบฑเบเบงเบฝเบเบขเปเบฒเบเปเบเปเบเบดเบเปเบเบชเบฐเบเบฑเบ 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
}
}
เบเปเบงเบเบเบฒเบเปเบซเบผ offload เบกเบฑเบเบชเบฑเบเบชเบปเบเบซเบผเบฒเบ, เปเบเปเบเปเบญเบเบเปเบฒเบเปเบเบปเปเบฒเปเบเปเบเป:
#! /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 เบเบฑเบเบซเบกเบปเบเบเบฐเบเบปเบเบขเบนเปเปเบเบเบฒเบเบฐเบฅเบฒเบ fastnat เปเบฅเบฐเบเบทเบเบเบธเบเปเบเปเบเปเบงเบเบถเปเบเบซเบผเบฒเบ.
ะ ะตะทัะปััะฐัั
เปเบเบทเปเบญเปเบฎเบฑเบเปเบซเปเบกเบฑเบเบเบฑเบเปเบเบเบงเปเบฒ "เปเบง" เปเบเบปเปเบฒเปเบ, เบเปเบญเบเบเบฐเบเบฑเบเบเบดเบเบฎเบนเบเบซเบเปเบฒเบเปเบเบญเบเบเบฒเบเปเบซเบผเบเบขเบนเปเปเบเบชเบญเบเปเบเบทเปเบญเบเปเบกเปเบเปเบฒเบเบเบตเปเปเบเปเบเบดเบ, เบเปเบงเบเบฎเบฒเบเปเบงเบเบฝเบงเบเบฑเบ (Xeon E5-1650v2), เบเบฒเบเบเบฑเปเบเบเปเบฒเบเบฝเบงเบเบฑเบ, เปเบเป Linux kernel เบเบฝเบงเบเบฑเบ, เปเบเปเบเบฐเบเบดเบเบฑเบ NAT เปเบ iptables. (NAT4) เปเบฅเบฐเปเบ nftables (NAT5).
เบเปเปเบกเบตเบเบฒเบเบเบญเบเปเบเบฑเบเปเบเบฑเบเบเปเปเบงเบดเบเบฒเบเบตเปเบเบเบฒเบเบซเบเปเบฒเบเป, เปเบเปเปเบเปเบเปเบเบเบฒเบเปเบซเบผเบเบเบญเบเปเบเบทเปเบญเบเปเบกเปเบเปเบฒเบเปเบซเบผเบปเปเบฒเบเบตเปเบเบฐเบซเบเบฒเบเปเบเบฑเบเปเบเบฑเบเปเบเบเบชเบฐเปเบฅเปเบเปเบกเปเบเบเบฐเบกเบฒเบ 800 เปเบเบเป, เบเบฑเปเบเบเบฑเปเบเบเปเบฒเปเบเปเบชเบนเบเปเบเบดเบ 1.5Mpps. เบเบฑเปเบเบเบตเปเบเปเบฒเบเบชเบฒเบกเบฒเบเปเบซเบฑเบเปเบเป, เปเบเบทเปเบญเบเปเบกเปเบเปเบฒเบเบเบตเปเบกเบต nftables เบกเบตเบชเบฐเบซเบเบงเบเบเบฐเบชเบดเบเบเบดเบเบฒเบเบญเบฑเบเปเบซเบเปเบซเบผเบงเบ. เบเบฐเบเบธเบเบฑเบ, เปเบเบตเบเปเบงเบตเบเบตเปเบเบฐเบกเบงเบเบเบปเบเปเบเปเปเบเบดเบ 30Gbit/s เบเบตเป 3Mpps เปเบฅเบฐเบชเบฒเบกเบฒเบเบเบญเบเบชเบฐเปเบญเบเปเบเปเบเปเปเบเบณเบเบฑเบเบเบญเบเปเบเบทเบญเบเปเบฒเบเบเบปเบงเบเบดเบเบเบญเบ 40Gbps, เปเบเบเบฐเบเบฐเบเบตเปเบกเบตเบเบฑเบเบเบฐเบเบฒเบเบญเบ CPU เบเบฃเบต.
เบเปเบญเบเบซเบงเบฑเบเบงเปเบฒเปเบญเบเบฐเบชเบฒเบเบเบตเปเบเบฐเปเบเบฑเบเบเบฐเปเบซเบเบเบเปเปเบงเบดเบชเบฐเบงเบฐเบเบญเบเปเบเบทเบญเบเปเบฒเบเบเบตเปเบเบฐเบเบฒเบเบฒเบกเบเบฑเบเบเบธเบเบเบฒเบเบเบฐเบเบดเบเบฑเบเบเบญเบเปเบเบทเปเบญเบเปเบกเปเบเปเบฒเบเบเบญเบเบเบงเบเปเบเบปเบฒ.
เปเบซเบผเปเบเบเปเปเบกเบนเบ: www.habr.com