เดฒเดฟเดจเด•เตเดธเดฟเตฝ เดซเดพเดธเตเดฑเตเดฑเต เดฑเต‚เดŸเตเดŸเดฟเด‚เด—เตเด‚ NAT เด‰เด‚

IPv4 เดตเดฟเดฒเดพเดธเด™เตเด™เตพ เด‡เดฒเตเดฒเดพเดคเดพเด•เตเดจเตเดจเดคเต‹เดŸเต†, เดชเดฒ เดŸเต†เดฒเดฟเด•เต‹เด‚ เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเตผเดฎเดพเดฐเตเด‚ เดคเด™เตเด™เดณเตเดŸเต† เด•เตเดฒเดฏเดจเตเดฑเตเด•เตพเด•เตเด•เต เดตเดฟเดฒเดพเดธ เดตเดฟเดตเตผเดคเตเดคเดจเด‚ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดจเต†เดฑเตเดฑเตโ€Œเดตเตผเด•เตเด•เต เด†เด•เตโ€Œเดธเดธเต เดจเตฝเด•เต‡เดฃเตเดŸเดคเดฟเดจเตเดฑเต† เด†เดตเดถเตเดฏเด•เดคเดฏเต† เด…เดญเดฟเดฎเตเด–เต€เด•เดฐเดฟเด•เตเด•เตเดจเตเดจเต. เด•เดฎเตเดฎเต‹เดกเดฟเดฑเตเดฑเดฟ เดธเต†เตผเดตเดฑเตเด•เดณเดฟเตฝ เด•เดพเดฐเดฟเดฏเตผ เด—เตเดฐเต‡เดกเต NAT เดชเตเดฐเด•เดŸเดจเด‚ เดŽเด™เตเด™เดจเต† เดจเต‡เดŸเดพเดฎเต†เดจเตเดจเต เดˆ เดฒเต‡เด–เดจเดคเตเดคเดฟเตฝ เดžเดพเตป เดจเดฟเด™เตเด™เดณเต‹เดŸเต เดชเดฑเดฏเตเด‚.

เด’เดฐเต เดšเต†เดฑเดฟเดฏ เดšเดฐเดฟเดคเตเดฐเด‚

IPv4 เด…เดกเตเดฐเดธเต เดธเตโ€Œเดชเต‡เดธเต เด•เตเดทเต€เดฃเด‚ เดŽเดจเตเดจ เดตเดฟเดทเดฏเด‚ เด‡เดจเดฟ เดชเตเดคเดฟเดฏเดคเดฒเตเดฒ. เดšเดฟเดฒ เด˜เดŸเตเดŸเด™เตเด™เดณเดฟเตฝ, เดตเต†เดฏเดฟเดฑเตเดฑเดฟเด‚เด—เต เดฒเดฟเดธเตเดฑเตเดฑเตเด•เตพ RIPE-เตฝ เดชเตเดฐเดคเตเดฏเด•เตเดทเดชเตเดชเต†เดŸเตเดŸเต, เดคเตเดŸเตผเดจเตเดจเต เดตเดฟเดฒเดพเดธเด™เตเด™เดณเตเดŸเต† เดฌเตเดฒเต‹เด•เตเด•เตเด•เตพ เดŸเตเดฐเต‡เดกเต เดšเต†เดฏเตเดฏเดชเตเดชเต†เดŸเตเดจเตเดจ เดŽเด•เตเดธเตเดšเต‡เดžเตเดšเตเด•เตพ เด‰เดฏเตผเดจเตเดจเตเดตเดฐเตเด•เดฏเตเด‚ เด…เดต เดชเดพเดŸเตเดŸเดคเตเดคเดฟเดจเต เดจเตฝเด•เตเดจเตเดจเดคเดฟเดจเต เดกเต€เดฒเตเด•เตพ เด…เดตเดธเดพเดจเดฟเดชเตเดชเดฟเด•เตเด•เตเด•เดฏเตเด‚ เดšเต†เดฏเตเดคเต. เด•เตเดฐเดฎเต‡เดฃ, เดŸเต†เดฒเดฟเด•เต‹เด‚ เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเตผเดฎเดพเตผ เดตเดฟเดฒเดพเดธเดตเตเด‚ เดชเต‹เตผเดŸเตเดŸเต เดชเดฐเดฟเดญเดพเดทเดฏเตเด‚ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เด‡เดจเตเดฑเตผเดจเต†เดฑเตเดฑเต เด†เด•เตเดธเดธเต เดธเต‡เดตเดจเด™เตเด™เตพ เดจเตฝเด•เดพเตป เดคเตเดŸเด™เตเด™เดฟ. เด“เดฐเต‹ เดตเดฐเดฟเด•เตเด•เดพเดฐเดจเตเด‚ "เดตเต†เดณเตเดคเตเดค" เดตเดฟเดฒเดพเดธเด‚ เดจเตฝเด•เตเดจเตเดจเดคเดฟเดจเต เดฎเดคเดฟเดฏเดพเดฏ เดตเดฟเดฒเดพเดธเด™เตเด™เตพ เดจเต‡เดŸเดพเตป เดšเดฟเดฒเตผเด•เตเด•เต เด•เดดเดฟเดžเตเดžเดฟเดฒเตเดฒ, เดฎเดฑเตเดฑเตเดณเตเดณเดตเตผ เดธเต†เด•เตเด•เตปเดกเดฑเดฟ เดฎเดพเตผเด•เตเด•เดฑเตเดฑเดฟเตฝ เดตเดฟเดฒเดพเดธเด™เตเด™เตพ เดตเดพเด™เตเด™เดพเตป เดตเดฟเดธเดฎเตเดฎเดคเดฟเดšเตเดšเตเด•เตŠเดฃเตเดŸเต เดชเดฃเด‚ เดฒเดพเดญเดฟเด•เตเด•เดพเตป เดคเตเดŸเด™เตเด™เดฟ. เดจเต†เดฑเตเดฑเตโ€Œเดตเตผเด•เตเด•เต เด‰เดชเด•เดฐเดฃเด™เตเด™เดณเตเดŸเต† เดจเดฟเตผเดฎเตเดฎเดพเดคเดพเด•เตเด•เตพ เดˆ เด†เดถเดฏเดคเตเดคเต† เดชเดฟเดจเตเดคเตเดฃเดšเตเดšเต, เด•เดพเดฐเดฃเด‚ เดˆ เดชเตเดฐเดตเตผเดคเตเดคเดจเดคเตเดคเดฟเดจเต เดธเดพเดงเดพเดฐเดฃเดฏเดพเดฏเดฟ เด…เดงเดฟเด• เดตเดฟเดชเตเดฒเต€เด•เดฐเดฃ เดฎเตŠเดกเตเดฏเต‚เดณเตเด•เดณเต‹ เดฒเตˆเดธเตปเดธเตเด•เดณเต‹ เด†เดตเดถเตเดฏเดฎเดพเดฃเต. เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, เดœเตเดจเตˆเดชเตเดชเดฑเดฟเดจเตเดฑเต† MX เดฑเต‚เดŸเตเดŸเดฑเตเด•เดณเตเดŸเต† เดจเดฟเดฐเดฏเดฟเตฝ (เดเดฑเตเดฑเดตเตเด‚ เดชเตเดคเดฟเดฏ MX104, MX204 เดŽเดจเตเดจเดฟเดต เด’เดดเดฟเด•เต†), เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด’เดฐเต เดชเตเดฐเดคเตเดฏเต‡เด• MS-MIC เดธเต‡เดตเดจ เด•เดพเตผเดกเดฟเตฝ NAPT เดจเดŸเดคเตเดคเดพเด‚, Cisco ASR1k-เดจเต CGN เดฒเตˆเดธเตปเดธเต เด†เดตเดถเตเดฏเดฎเดพเดฃเต, Cisco ASR9k-เดจเต เด’เดฐเต เดชเตเดฐเดคเตเดฏเต‡เด• A9K-ISM-100 เดฎเตŠเดกเตเดฏเต‚เตพ เด†เดตเดถเตเดฏเดฎเดพเดฃเต. เด•เต‚เดŸเดพเดคเต† A9K-CGN เดฒเตˆเดธเตปเดธเต -เดŽเตฝเดเดธเดฟ เด…เดฆเตเดฆเต‡เดนเดคเตเดคเดฟเดจเต. เดชเตŠเดคเตเดตเต‡, เด†เดจเดจเตเดฆเดคเตเดคเดฟเดจเต เดงเดพเดฐเดพเดณเด‚ เดชเดฃเด‚ เดšเดฟเดฒเดตเดพเด•เตเด‚.

IPTables

NAT เดจเดฟเตผเดตเตเดตเดนเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดšเตเดฎเดคเดฒเดฏเตเด•เตเด•เต เดชเตเดฐเดคเตเดฏเต‡เด• เด•เดฎเตเดชเตเดฏเต‚เดŸเตเดŸเดฟเด‚เด—เต เด‰เดฑเดตเดฟเดŸเด™เตเด™เตพ เด†เดตเดถเตเดฏเดฎเดฟเดฒเตเดฒ; เด‡เดคเต เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดค เดชเตŠเดคเต-เด‰เดฆเตเดฆเต‡เดถเตเดฏ เดชเตเดฐเต‹เดธเดธเตเดธเดฑเตเด•เตพเด•เตเด•เต เดชเดฐเดฟเดนเดฐเดฟเด•เตเด•เดพเตป เด•เดดเดฟเดฏเตเด‚, เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, เดเดคเต เดนเต‹เด‚ เดฑเต‚เดŸเตเดŸเดฑเดฟเดฒเตเด‚. เด’เดฐเต เดŸเต†เดฒเดฟเด•เต‹เด‚ เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเดฑเตเดŸเต† เดธเตเด•เต†เดฏเดฟเดฒเดฟเตฝ, FreeBSD (ipfw/pf) เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ GNU/Linux (iptables) เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจ เดšเดฐเด•เตเด•เต เดธเต†เตผเดตเดฑเตเด•เตพ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดˆ เดชเตเดฐเดถเตเดจเด‚ เดชเดฐเดฟเดนเดฐเดฟเด•เตเด•เดพเตป เด•เดดเดฟเดฏเตเด‚. เดžเด™เตเด™เตพ FreeBSD เดชเดฐเดฟเด—เดฃเดฟเด•เตเด•เดฟเดฒเตเดฒ, เด•เดพเดฐเดฃเด‚... เดžเดพเตป เดˆ OS เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเดคเต เดตเดณเดฐเต†เด•เตเด•เดพเดฒเด‚ เดฎเตเดฎเตเดชเต เดจเดฟเตผเดคเตเดคเดฟ, เด…เดคเดฟเดจเดพเตฝ เดžเด™เตเด™เตพ GNU/Linux-เตฝ เด‰เดฑเดšเตเดšเตเดจเดฟเตฝเด•เตเด•เตเด‚.

เดตเดฟเดฒเดพเดธ เดตเดฟเดตเตผเดคเตเดคเดจเด‚ เดชเตเดฐเดตเตผเดคเตเดคเดจเด•เตเดทเดฎเดฎเดพเด•เตเด•เตเดจเตเดจเดคเต เด’เดŸเตเดŸเตเด‚ เดฌเตเดฆเตเดงเดฟเดฎเตเดŸเตเดŸเตเดณเตเดณ เด•เดพเดฐเตเดฏเดฎเดฒเตเดฒ. เด†เดฆเตเดฏเด‚ เดจเดฟเด™เตเด™เตพ เดจเดพเดฑเตเดฑเต เดŸเต‡เดฌเดฟเดณเดฟเตฝ 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 เดชเตเดฐเด•เดŸเดจเด‚ เดจเต‡เดŸเดพเตป เดŽเดจเดฟเด•เตเด•เต เด•เดดเดฟเดžเตเดžเต. เด…เดจเตเดจเตเดฎเตเดคเตฝ, เด—เตเดจเต/เดฒเดฟเดจเด•เตเดธเต เด•เต‡เตผเดฃเตฝ เดจเต†เดฑเตเดฑเตโ€Œเดตเตผเด•เตเด•เต เดธเตเดฑเตเดฑเดพเด•เตเด•เดฟเตฝ เดจเดฟเดฐเดตเดงเดฟ เดตเตเดฏเดคเตเดฏเดธเตเดค เด’เดชเตเดฑเตเดฑเดฟเดฎเตˆเดธเต‡เดทเดจเตเด•เตพ เดจเดŸเดคเตเดคเดฟเดฏเดฟเดŸเตเดŸเตเดฃเตเดŸเต, เด’เดฐเต‡ เดนเดพเตผเดกเตโ€Œเดตเต†เดฏเดฑเดฟเดฒเต† เด’เดฐเต เดธเต†เตผเดตเดฑเดฟเดจเตเดฑเต† เดชเตเดฐเด•เดŸเดจเด‚ 18-19 Mpps-เตฝ เดเด•เดฆเต‡เดถเด‚ 1.8-1.9 Gbit/s เด†เดฏเดฟ เดตเตผเดฆเตเดงเดฟเดšเตเดšเต (เด‡เดตเดฏเดพเดฃเต เดชเดฐเดฎเดพเดตเดงเดฟ เดฎเต‚เดฒเตเดฏเด™เตเด™เตพ) , เดŽเดจเตเดจเดพเตฝ เด’เดฐเต เดธเต†เตผเดตเตผ เดชเตเดฐเต‹เดธเดธเตเดธเต เดšเต†เดฏเตเดฏเตเดจเตเดจ เดŸเตเดฐเดพเดซเดฟเด•เต เดตเต‹เดณเดฟเดฏเดคเตเดคเดฟเดจเตเดฑเต† เด†เดตเดถเตเดฏเด‚ เดตเดณเดฐเต† เดตเต‡เด—เดคเตเดคเดฟเตฝ เดตเดณเตผเดจเตเดจเต. เดคเตฝเดซเดฒเดฎเดพเดฏเดฟ, เดตเตเดฏเดคเตเดฏเดธเตเดค เดธเต†เตผเดตเดฑเตเด•เดณเดฟเดฒเต† เดฒเต‹เดกเต เดธเดจเตเดคเตเดฒเดฟเดคเดฎเดพเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต เดธเตเด•เต€เดฎเตเด•เตพ เดตเดฟเด•เดธเดฟเดชเตเดชเดฟเดšเตเดšเต†เดŸเตเดคเตเดคเต, เดŽเดจเตเดจเดพเตฝ เด‡เดคเต†เดฒเตเดฒเดพเด‚ เดจเตฝเด•เดฟเดฏ เดธเต‡เดตเดจเด™เตเด™เดณเตเดŸเต† เด—เตเดฃเดจเดฟเดฒเดตเดพเดฐเด‚ เดธเดœเตเดœเต€เด•เดฐเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเด‚ เดชเดฐเดฟเดชเดพเดฒเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเด‚ เดชเดฐเดฟเดชเดพเดฒเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดฎเตเดณเตเดณ เดธเด™เตเด•เต€เตผเดฃเตเดฃเดค เดตเตผเดฆเตเดงเดฟเดชเตเดชเดฟเดšเตเดšเต.

NTFables

เด‡เด•เตเด•เดพเดฒเดคเตเดคเต, เดธเต‹เดซเตเดฑเตเดฑเตโ€Œเดตเต†เดฏเตผ "เดทเดฟเดซเตเดฑเตเดฑเดฟเด‚เด—เต เดฌเดพเด—เตเด•เตพ" เดŽเดจเตเดจเดคเดฟเดฒเต† เด’เดฐเต เดซเดพเดทเดจเดฌเดฟเตพ เดŸเตเดฐเต†เตปเดกเต DPDK, XDP เดŽเดจเตเดจเดฟเดตเดฏเตเดŸเต† เด‰เดชเดฏเต‹เด—เดฎเดพเดฃเต. เดˆ เดตเดฟเดทเดฏเดคเตเดคเดฟเตฝ เดงเดพเดฐเดพเดณเด‚ เดฒเต‡เด–เดจเด™เตเด™เตพ เดŽเดดเตเดคเดฟเดฏเดฟเดŸเตเดŸเตเดฃเตเดŸเต, เดจเดฟเดฐเดตเดงเดฟ เดตเตเดฏเดคเตเดฏเดธเตเดค เดชเตเดฐเดธเด‚เด—เด™เตเด™เตพ เดจเดŸเดคเตเดคเดฟ, เดตเดพเดฃเดฟเดœเตเดฏ เด‰เตฝเดชเตเดชเดจเตเดจเด™เตเด™เตพ เดชเตเดฐเดคเตเดฏเด•เตเดทเดชเตเดชเต†เดŸเตเดจเตเดจเต (เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, VasExperts เตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ SKAT). เดŽเดจเตเดจเดพเตฝ เดŸเต†เดฒเดฟเด•เต‹เด‚ เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเตผเดฎเดพเดฐเตเดŸเต† เดชเดฐเดฟเดฎเดฟเดคเดฎเดพเดฏ เดชเตเดฐเต‹เด—เตเดฐเดพเดฎเดฟเด‚เด—เต เด‰เดฑเดตเดฟเดŸเด™เตเด™เตพ เด•เดฃเด•เตเด•เดฟเดฒเต†เดŸเตเด•เตเด•เตเดฎเตเดชเต‹เตพ, เดˆ เดšเดŸเตเดŸเด•เตเด•เต‚เดŸเตเด•เดณเต† เด…เดŸเดฟเดธเตเดฅเดพเดจเดฎเดพเด•เตเด•เดฟ เดเดคเต†เด™เตเด•เดฟเดฒเตเด‚ "เด‰เตฝเดชเตเดชเดจเตเดจเด‚" เดธเตเดตเดจเตเดคเดฎเดพเดฏเดฟ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเดจเตเดจเดคเต เดคเดฟเด•เดšเตเดšเตเด‚ เดชเตเดฐเดถเตเดจเด•เดฐเดฎเดพเดฃเต. เดญเดพเดตเดฟเดฏเดฟเตฝ เด…เดคเตเดคเดฐเดฎเตŠเดฐเต เดชเดฐเดฟเดนเดพเดฐเด‚ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเดคเต เดตเดณเดฐเต† เดฌเตเดฆเตเดงเดฟเดฎเตเดŸเตเดŸเดพเดฏเดฟเดฐเดฟเด•เตเด•เตเด‚; เดชเตเดฐเดคเตเดฏเต‡เด•เดฟเดšเตเดšเตเด‚, เดกเดฏเด—เตเดจเต‹เดธเตเดฑเตเดฑเดฟเด•เต เด‰เดชเด•เดฐเดฃเด™เตเด™เตพ เดตเดฟเด•เดธเดฟเดชเตเดชเดฟเด•เตเด•เต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต. เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, DPDK เด‰เดณเตเดณ เดธเตเดฑเตเดฑเดพเตปเดกเต‡เตผเดกเต tcpdump เด…เดคเต เดชเต‹เดฒเต† เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เดฟเดฒเตเดฒ, เด•เต‚เดŸเดพเดคเต† XDP เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดตเดฏเดฑเตเด•เดณเดฟเดฒเต‡เด•เตเด•เต เดคเดฟเดฐเดฟเด•เต† เด…เดฏเดšเตเดš เดชเดพเด•เตเด•เดฑเตเดฑเตเด•เตพ เด…เดคเต "เด•เดพเดฃเดฟเดฒเตเดฒ". เดฏเต‚เดธเตผ-เดธเตโ€Œเดชเต†เดฏเตโ€Œเดธเดฟเดฒเต‡เด•เตเด•เต เดชเดพเด•เตเด•เดฑเตเดฑเต เดซเต‹เตผเดตเต‡เดกเดฟเด‚เด—เต เด”เดŸเตเดŸเตโ€ŒเดชเตเดŸเตเดŸเต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดชเตเดคเดฟเดฏ เดธเดพเด™เตเด•เต‡เดคเดฟเด•เดตเดฟเดฆเตเดฏเด•เดณเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเตเดณเตเดณ เดŽเดฒเตเดฒเดพ เดธเด‚เดธเดพเดฐเดคเตเดคเดฟเดจเดฟเดŸเดฏเดฟเดฒเตเด‚, เด…เดต เดถเตเดฐเดฆเตเดงเดฟเด•เตเด•เดชเตเดชเต†เดŸเดพเดคเต† เดชเต‹เดฏเดฟ. เดฑเดฟเดชเตเดชเต‹เตผเดŸเตเดŸเตเด•เตพ ะธ เดฒเต‡เด–เดจเด™เตเด™เตพ เดชเดพเดฌเตเดฒเต‹ เดจเต†เดฏเตโ€Œเดฑ เด†เดฏเตเดธเต‹, iptables เดฎเต†เดฏเดฟเดจเตเดฑเดจเตผ, nftables-เตฝ เดซเตเดฒเต‹ เด“เดซเตโ€Œเดฒเต‹เดกเดฟเด‚เด—เต เดตเดฟเด•เดธเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเต. เดˆ เดฎเต†เด•เตเด•เดพเดจเดฟเดธเด‚ เด•เต‚เดŸเตเดคเตฝ เดตเดฟเดถเดฆเดฎเดพเดฏเดฟ เดจเต‹เด•เตเด•เดพเด‚.

เดชเตเดฐเดงเดพเดจ เด†เดถเดฏเด‚, เดฑเต‚เดŸเตเดŸเตผ เด’เดฐเต เดธเต†เดทเดจเดฟเตฝ เดจเดฟเดจเตเดจเต เดซเตเดฒเต‹เดฏเตเดŸเต† เดฐเดฃเตเดŸเต เดฆเดฟเดถเด•เดณเดฟเดฒเต‡เด•เตเด•เตเด‚ เดชเดพเด•เตเด•เดฑเตเดฑเตเด•เตพ เด•เตˆเดฎเดพเดฑเดฟเดฏเต†เด™เตเด•เดฟเตฝ (TCP เดธเต†เดทเตป เดธเตเดฅเดพเดชเดฟเดคเดฎเดพเดฏ เด…เดตเดธเตเดฅเดฏเดฟเดฒเต‡เด•เตเด•เต เดชเต‹เดฏเดฟ), เดˆ เดธเต†เดทเดจเตเดฑเต† เดคเตเดŸเตผเดจเตเดจเตเดณเตเดณ เดชเดพเด•เตเด•เดฑเตเดฑเตเด•เตพ เดŽเดฒเตเดฒเดพ เดซเดฏเตผเดตเดพเตพ เดจเดฟเดฏเดฎเด™เตเด™เดณเดฟเดฒเต‚เดŸเต†เดฏเตเด‚ เด•เดŸเดจเตเดจเตเดชเต‹เด•เต‡เดฃเตเดŸ เด†เดตเดถเตเดฏเดฎเดฟเดฒเตเดฒ, เด•เดพเดฐเดฃเด‚ เดชเดพเด•เตเด•เดฑเตเดฑเต เดฑเต‚เดŸเตเดŸเดฟเด‚เด—เดฟเดฒเต‡เด•เตเด•เต เดฎเดพเดฑเตเดฑเตเดจเตเดจเดคเต‹เดŸเต† เดˆ เดชเดฐเดฟเดถเต‹เดงเดจเด•เดณเต†เดฒเตเดฒเดพเด‚ เด…เดตเดธเดพเดจเดฟเด•เตเด•เตเด‚. เดžเด™เตเด™เตพ เดฏเดฅเดพเตผเดคเตเดฅเดคเตเดคเดฟเตฝ เด’เดฐเต เดฑเต‚เดŸเตเดŸเต เดคเดฟเดฐเดžเตเดžเต†เดŸเตเด•เตเด•เต‡เดฃเตเดŸเดคเดฟเดฒเตเดฒ - เดˆ เดธเต†เดทเดจเดฟเตฝ เดเดคเต เด‡เดจเตเดฑเตผเดซเต‡เดธเดฟเดฒเต‡เด•เตเด•เดพเดฃเต, เดเดคเต เดนเต‹เดธเตเดฑเตเดฑเดฟเดฒเต‡เด•เตเด•เดพเดฃเต เดชเดพเด•เตเด•เดฑเตเดฑเตเด•เตพ เด…เดฏเดฏเตเด•เตเด•เต‡เดฃเตเดŸเดคเต†เดจเตเดจเต เดžเด™เตเด™เตพเด•เตเด•เดฑเดฟเดฏเดพเด‚. เดˆ เดตเดฟเดตเดฐเด™เตเด™เตพ เดธเด‚เดญเดฐเดฟเด•เตเด•เตเด•เดฏเตเด‚ เดชเดพเด•เตเด•เดฑเตเดฑเต เดชเตเดฐเต‹เดธเดธเตเดธเดฟเด‚เด—เดฟเดจเตเดฑเต† เดชเตเดฐเดพเดฐเด‚เดญ เด˜เดŸเตเดŸเดคเตเดคเดฟเตฝ เดฑเต‚เดŸเตเดŸเดฟเด‚เด—เดฟเดจเดพเดฏเดฟ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเด• เดŽเดจเตเดจเดคเดพเดฃเต เด…เดตเดถเต‡เดทเดฟเด•เตเด•เตเดจเตเดจเดคเต. NAT เดจเดŸเดคเตเดคเตเดฎเตเดชเต‹เตพ, nf_contrack เดฎเตŠเดกเตเดฏเต‚เตพ เดตเดฟเดตเตผเดคเตเดคเดจเด‚ เดšเต†เดฏเตเดค เดตเดฟเดฒเดพเดธเด™เตเด™เดณเดฟเดฒเตเด‚ เดชเต‹เตผเดŸเตเดŸเตเด•เดณเดฟเดฒเตเด‚ เดตเดฐเตเดคเตเดคเดฟเดฏ เดฎเดพเดฑเตเดฑเด™เตเด™เดณเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเตเดณเตเดณ เดตเดฟเดตเดฐเด™เตเด™เตพ เด…เดงเดฟเด•เดฎเดพเดฏเดฟ เดธเด‚เดญเดฐเดฟเด•เตเด•เต‡เดฃเตเดŸเดคเต เด†เดตเดถเตเดฏเดฎเดพเดฃเต. เด…เดคเต†, เดคเต€เตผเดšเตเดšเดฏเดพเดฏเตเด‚, เดˆ เดธเดพเดนเดšเดฐเตเดฏเดคเตเดคเดฟเตฝ iptables-เดฒเต† เดตเดฟเดตเดฟเดง เดชเต‹เดฒเต€เดธเตเด•เดพเดฐเตเด‚ เดฎเดฑเตเดฑเต เดตเดฟเดตเดฐเด™เตเด™เดณเตเด‚ เดธเตเดฑเตเดฑเดพเดฑเตเดฑเดฟเดธเตเดฑเตเดฑเดฟเด•เตเด•เตฝ เดจเดฟเดฏเดฎเด™เตเด™เดณเตเด‚ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเดคเต เดจเดฟเตผเดคเตเดคเตเดจเตเดจเต, เดŽเดจเตเดจเดพเตฝ เด’เดฐเต เดชเตเดฐเดคเตเดฏเต‡เด• เดธเตเดฑเตเดฑเดพเตปเดกเดฟเด‚เด—เต NAT เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ, เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, เด’เดฐเต เด…เดคเดฟเตผเดคเตเดคเดฟเดฏเตเดŸเต† เดšเตเดฎเดคเดฒเดฏเตเดŸเต† เดšเดŸเตเดŸเด•เตเด•เต‚เดŸเดฟเดจเตเดณเตเดณเดฟเตฝ, เด‡เดคเต เด…เดคเตเดฐ เดชเตเดฐเดงเดพเดจเดฎเดฒเตเดฒ, เด•เดพเดฐเดฃเด‚ เดธเต‡เดตเดจเด™เตเด™เตพ เด‰เดชเด•เดฐเดฃเด™เตเด™เดณเดฟเดฒเตเดŸเดจเต€เดณเด‚ เดตเดฟเดคเดฐเดฃเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต.

เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเตป

เดˆ เดซเด‚เด—เตเดทเตป เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต เดžเด™เตเด™เตพเด•เตเด•เต เด‡เดคเต เด†เดตเดถเตเดฏเดฎเดพเดฃเต:

  • เด’เดฐเต เดชเตเดคเดฟเดฏ เด•เต‡เตผเดฃเตฝ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเด•. เดชเตเดฐเดตเตผเดคเตเดคเดจเด‚ เดคเดจเตเดจเต† เด•เต‡เตผเดฃเตฝ 4.16 เตฝ เดชเตเดฐเดคเตเดฏเด•เตเดทเดชเตเดชเต†เดŸเตเดŸเดฟเดŸเตเดŸเตเดฃเตเดŸเต†เด™เตเด•เดฟเดฒเตเด‚, เดตเดณเดฐเต†เด•เตเด•เดพเดฒเดฎเดพเดฏเดฟ เด‡เดคเต เดตเดณเดฐเต† โ€œเดฑเต‹โ€ เด†เดฏเดฟเดฐเตเดจเตเดจเต, เดชเดคเดฟเดตเดพเดฏเดฟ เด•เต‡เตผเดฃเตฝ เดชเดฐเดฟเดญเตเดฐเดพเดจเตเดคเดฟ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเดจเตเดจเต. 2019 เดกเดฟเดธเด‚เดฌเดฑเดฟเตฝ LTS เด•เต‡เตผเดฃเดฒเตเด•เตพ 4.19.90, 5.4.5 เดŽเดจเตเดจเดฟเดต เดชเตเดฑเดคเตเดคเดฟเดฑเด™เตเด™เดฟเดฏเดชเตเดชเต‹เตพ เดŽเดฒเตเดฒเดพเด‚ เดธเตเดธเตเดฅเดฟเดฐเดฎเดพเดฏเดฟ.
  • nftables-เดจเตเดฑเต† เดเดฑเตเดฑเดตเตเด‚ เดชเตเดคเดฟเดฏ เดชเดคเดฟเดชเตเดชเต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต iptables เดจเดฟเดฏเดฎเด™เตเด™เตพ nftables เดซเต‹เตผเดฎเดพเดฑเตเดฑเดฟเตฝ เดตเต€เดฃเตเดŸเตเด‚ เดŽเดดเตเดคเตเด•. 0.9.0 เดชเดคเดฟเดชเตเดชเดฟเตฝ เด•เตƒเดคเตเดฏเดฎเดพเดฏเดฟ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเต

เดคเดคเตเดตเดคเตเดคเดฟเตฝ เดŽเดฒเตเดฒเดพเด‚ เด†เดฆเตเดฏ เดชเต‹เดฏเดฟเดจเตเดฑเต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดตเตเดฏเด•เตเดคเดฎเดพเดฃเต†เด™เตเด•เดฟเตฝ, เด…เดธเด‚เดฌเตเดฒเดฟ เดธเดฎเดฏเดคเตเดคเต เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเดจเดฟเตฝ เดฎเตŠเดกเตเดฏเต‚เตพ เด‰เตพเดชเตเดชเต†เดŸเตเดคเตเดคเดพเตป เดฎเดฑเด•เตเด•เดฐเตเดคเต เดŽเดจเตเดจเดคเดพเดฃเต เดชเตเดฐเดงเดพเดจ เด•เดพเดฐเตเดฏเด‚ (CONFIG_NFT_FLOW_OFFLOAD=m), เดฐเดฃเตเดŸเดพเดฎเดคเตเดคเต† เดชเต‹เดฏเดฟเดจเตเดฑเดฟเดจเต เดตเดฟเดถเดฆเต€เด•เดฐเดฃเด‚ เด†เดตเดถเตเดฏเดฎเดพเดฃเต. nftables เดจเดฟเดฏเดฎเด™เตเด™เตพ iptables-เตฝ เดจเดฟเดจเตเดจเต เดตเตเดฏเดคเตเดฏเดธเตเดคเดฎเดพเดฏเดฟ เดตเดฟเดตเดฐเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต. เดกเต‹เด•เตเดฏเตเดฎเต†เดจเตเดฑเต‡เดทเตป เดฎเดฟเด•เตเด•เดตเดพเดฑเตเด‚ เดŽเดฒเตเดฒเดพ เดชเต‹เดฏเดฟเดจเตเดฑเตเด•เดณเตเด‚ เดตเต†เดณเดฟเดชเตเดชเต†เดŸเตเดคเตเดคเตเดจเตเดจเต, เดชเตเดฐเดคเตเดฏเต‡เด•เดคเด•เดณเตเด‚ เด‰เดฃเตเดŸเต เด•เตบเดตเต†เตผเดŸเตเดŸเดฑเตเด•เตพ iptables เดฎเตเดคเตฝ nftables เดตเดฐเต†เดฏเตเดณเตเดณ เดจเดฟเดฏเดฎเด™เตเด™เตพ. เด…เดคเดฟเดจเดพเตฝ, NAT, เดซเตเดฒเต‹ เด“เดซเตโ€Œเดฒเต‹เดกเต เดŽเดจเตเดจเดฟเดต เดธเดœเตเดœเต€เด•เดฐเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เด’เดฐเต เด‰เดฆเดพเดนเดฐเดฃเด‚ เดฎเดพเดคเตเดฐเด‚ เดžเดพเตป เดจเตฝเด•เตเด‚. เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต เด’เดฐเต เดšเต†เดฑเดฟเดฏ เด‡เดคเดฟเดนเดพเดธเด‚: , - เด‡เดตเดฏเดพเดฃเต เดŸเตเดฐเดพเดซเดฟเด•เต เด•เดŸเดจเตเดจเตเดชเต‹เด•เตเดจเตเดจ เดจเต†เดฑเตเดฑเตโ€Œเดตเตผเด•เตเด•เต เด‡เดจเตเดฑเตผเดซเต‡เดธเตเด•เตพ; เดตเดพเดธเตเดคเดตเดคเตเดคเดฟเตฝ เด…เดตเดฏเดฟเตฝ เดฐเดฃเตเดŸเดฟเตฝ เด•เต‚เดŸเตเดคเตฝ เด‰เดฃเตเดŸเดพเด•เดพเด‚. , - "เดตเต†เดณเตเดคเตเดค" เดตเดฟเดฒเดพเดธเด™เตเด™เดณเตเดŸเต† เดถเตเดฐเต‡เดฃเดฟเดฏเตเดŸเต† เด†เดฐเด‚เดญเดตเตเด‚ เด…เดตเดธเดพเดจเดตเตเด‚ เดตเดฟเดฒเดพเดธเด‚.

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).

เดฒเดฟเดจเด•เตเดธเดฟเตฝ เดซเดพเดธเตเดฑเตเดฑเต เดฑเต‚เดŸเตเดŸเดฟเด‚เด—เตเด‚ NAT เด‰เด‚

เดธเตเด•เตเดฐเต€เตปเดทเต‹เดŸเตเดŸเดฟเตฝ เดธเต†เด•เตเด•เตปเดกเดฟเตฝ เดชเดพเด•เตเด•เดฑเตเดฑเตเด•เดณเตเดŸเต† เด—เตเดฐเดพเดซเต เด‡เดฒเตเดฒ, เดŽเดจเตเดจเดพเตฝ เดˆ เดธเต†เตผเดตเดฑเตเด•เดณเตเดŸเต† เดฒเต‹เดกเต เดชเตเดฐเตŠเดซเตˆเดฒเดฟเตฝ เดถเดฐเดพเดถเดฐเดฟ เดชเดพเด•เตเด•เดฑเตเดฑเต เดตเดฒเตเดชเตเดชเด‚ เดเด•เดฆเต‡เดถเด‚ 800 เดฌเตˆเดฑเตเดฑเตเด•เตพ เด†เดฃเต, เด…เดคเดฟเดจเดพเตฝ เดฎเต‚เดฒเตเดฏเด™เตเด™เตพ 1.5Mpps เดตเดฐเต† เดŽเดคเตเดคเตเดจเตเดจเต. เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด•เดพเดฃเดพเดจเดพเด•เตเดจเตเดจเดคเตเดชเต‹เดฒเต†, nftables เด‰เดณเตเดณ เดธเต†เตผเดตเดฑเดฟเดจเต เด’เดฐเต เดตเดฒเดฟเดฏ เดชเตเดฐเด•เดŸเดจ เดฑเดฟเดธเตผเดตเต เด‰เดฃเตเดŸเต. เดจเดฟเดฒเดตเดฟเตฝ, เดˆ เดธเต†เตผเดตเตผ 30Mpps-เตฝ 3Gbit/s เดตเดฐเต† เดชเตเดฐเต‹เดธเดธเตเดธเต เดšเต†เดฏเตเดฏเตเดจเตเดจเต, เด•เต‚เดŸเดพเดคเต† เดธเตเดตเดคเดจเตเดคเตเดฐ CPU เด‰เดฑเดตเดฟเดŸเด™เตเด™เตพ เด‰เดณเตเดณเดชเตเดชเต‹เตพ เดคเดจเตเดจเต† 40Gbps เดŽเดจเตเดจ เดซเดฟเดธเดฟเด•เตเด•เตฝ เดจเต†เดฑเตเดฑเตโ€Œเดตเตผเด•เตเด•เต เดชเดฐเดฟเดฎเดฟเดคเดฟ เดชเดพเดฒเดฟเด•เตเด•เดพเตป เด‡เดคเต เดตเตเดฏเด•เตเดคเดฎเดพเดฏเดฟ เดชเตเดฐเดพเดชเตเดคเดฎเดพเดฃเต.

เด…เดตเดฐเตเดŸเต† เดธเต†เตผเดตเดฑเตเด•เดณเตเดŸเต† เดชเตเดฐเด•เดŸเดจเด‚ เดฎเต†เดšเตเดšเดชเตเดชเต†เดŸเตเดคเตเดคเดพเตป เดถเตเดฐเดฎเดฟเด•เตเด•เตเดจเตเดจ เดจเต†เดฑเตเดฑเตโ€Œเดตเตผเด•เตเด•เต เดŽเดžเตเดšเดฟเดจเต€เดฏเตผเดฎเดพเตผเด•เตเด•เต เดˆ เดฎเต†เดฑเตเดฑเต€เดฐเดฟเดฏเตฝ เด‰เดชเดฏเต‹เด—เดชเตเดฐเดฆเดฎเดพเด•เตเดฎเต†เดจเตเดจเต เดžเดพเตป เดชเตเดฐเดคเต€เด•เตเดทเดฟเด•เตเด•เตเดจเตเดจเต.

เด…เดตเดฒเด‚เดฌเด‚: www.habr.com

เด’เดฐเต เด…เดญเดฟเดชเตเดฐเดพเดฏเด‚ เดšเต‡เตผเด•เตเด•เตเด•