{"id":81265,"date":"2020-05-12T01:42:43","date_gmt":"2020-05-11T23:42:43","guid":{"rendered":"https:\/\/prohoster.info\/blog\/administrirovanie\/bystryj-routing-i-nat-v-linux"},"modified":"2020-05-12T01:42:43","modified_gmt":"2020-05-11T23:42:43","slug":"bystryj-routing-i-nat-v-linux","status":"publish","type":"post","link":"https:\/\/prohoster.info\/da\/blog\/administrirovanie\/bystryj-routing-i-nat-v-linux","title":{"rendered":"Hurtig routing og NAT i Linux","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Som IPv4-adresserne bliver udt\u00f8mt, st\u00e5r mange teleoperat\u00f8rer over for n\u00f8dvendigheden af at organisere adgang til nettet for deres kunder gennem adresseovers\u00e6ttelse. I denne artikel vil jeg forklare, hvordan man kan opn\u00e5 ydeevne p\u00e5 niveau med Carrier Grade NAT p\u00e5 commodity-servere.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h3>Lidt historie<\/h3>\n<p>\nTemaet om udt\u00f8mning af IPv4-adressens rum er ikke nyt. P\u00e5 et tidspunkt opstod der ventelister i RIPE, og derefter dukkede der markeder op, hvor blokke af adresser blev handlet og lejeaftaler blev indg\u00e5et. Langsomt begyndte teleoperat\u00f8rer at tilbyde internetadgang ved hj\u00e6lp af adresse- og portovers\u00e6ttelse. Nogle havde ikke f\u00e5et nok adresser til at give hver kunde en 'hvid' adresse, mens andre begyndte at spare penge ved at afst\u00e5 fra at k\u00f8be adresser p\u00e5 det sekund\u00e6re marked. Producenterne af netv\u00e6rksudstyr st\u00f8ttede denne id\u00e9, da denne funktion normalt kr\u00e6ver ekstra udvidelseskort eller licenser. For eksempel, hos Juniper i deres MX-routerline (bortset fra de nyeste MX104 og MX204) kan man udf\u00f8re NAPT p\u00e5 et separat servicekort MS-MIC, p\u00e5 Cisco ASR1k kr\u00e6ves en CGN-licens, og p\u00e5 Cisco ASR9k kr\u00e6ves et separat modul A9K-ISM-100 samt licensen A9K-CGN-LIC. Generelt koster det en del penge.<\/p>\n<h3>IPTables<\/h3>\n<p>\nOpgaven med at udf\u00f8re NAT kr\u00e6ver ingen specialiserede beregningsressourcer, da almindelige CPU'er, som dem der findes i enhver hjemmerouter, kan l\u00f8se den. I teleoperat\u00f8rernes skala kan denne opgave l\u00f8ses ved hj\u00e6lp af commodity-servere, der k\u00f8rer FreeBSD (ipfw\/pf) eller GNU\/Linux (iptables). Vi vil ikke overveje FreeBSD, da jeg har opgivet at bruge dette operativsystem for l\u00e6ngere tid siden, s\u00e5 lad os fokusere p\u00e5 GNU\/Linux.<\/p>\n<p>Det er slet ikke sv\u00e6rt at aktivere adresseovers\u00e6ttelse. F\u00f8rst skal du skrive en regel i iptables ind i nat-tabellen:<\/p>\n<pre><code class=\"bash\">iptables -t nat -A POSTROUTING -s 100.64.0.0\/10 -j SNAT --to - --persistent\n<\/code><\/pre>\n<p>\nOperativsystemen vil indl\u00e6se nf_conntrack-modulet, som vil overv\u00e5ge alle aktive forbindelser og udf\u00f8re de n\u00f8dvendige transformationer. Der er nogle nuancer her. For det f\u00f8rste, da vi taler om NAT i stor skala for en telekommunikationsudbyder, er det n\u00f8dvendigt at justere timeouts, fordi tabellen for overs\u00e6ttelser med standardv\u00e6rdierne hurtigt vil vokse til katastrofale st\u00f8rrelser. Nedenfor er et eksempel p\u00e5 de indstillinger, jeg har brugt p\u00e5 mine servere:<\/p>\n<pre><code class=\"bash\">net.ipv4.ip_forward = 1\nnet.ipv4.ip_local_port_range = 8192 65535\n\nnet.netfilter.nf_conntrack_generic_timeout = 300\nnet.netfilter.nf_conntrack_tcp_timeout_syn_sent = 60\nnet.netfilter.nf_conntrack_tcp_timeout_syn_recv = 60\nnet.netfilter.nf_conntrack_tcp_timeout_established = 600\nnet.netfilter.nf_conntrack_tcp_timeout_fin_wait = 60\nnet.netfilter.nf_conntrack_tcp_timeout_close_wait = 45\nnet.netfilter.nf_conntrack_tcp_timeout_last_ack = 30\nnet.netfilter.nf_conntrack_tcp_timeout_time_wait = 120\nnet.netfilter.nf_conntrack_tcp_timeout_close = 10\nnet.netfilter.nf_conntrack_tcp_timeout_max_retrans = 300\nnet.netfilter.nf_conntrack_tcp_timeout_unacknowledged = 300\nnet.netfilter.nf_conntrack_udp_timeout = 30\nnet.netfilter.nf_conntrack_udp_timeout_stream = 60\nnet.netfilter.nf_conntrack_icmpv6_timeout = 30\nnet.netfilter.nf_conntrack_icmp_timeout = 30\nnet.netfilter.nf_conntrack_events_retry_timeout = 15\nnet.netfilter.nf_conntrack_checksum=0\n<\/code><\/pre>\n<p>\nFor det andet, da st\u00f8rrelsen p\u00e5 overs\u00e6ttelsestabellen som standard ikke er beregnet til at fungere under en operat\u00f8r, skal den \u00f8ges:<\/p>\n<pre><code class=\"plaintext\">net.netfilter.nf_conntrack_max = 3145728\n<\/code><\/pre>\n<p>\n Det er ogs\u00e5 n\u00f8dvendigt at \u00f8ge antallet af buckets til hash-tabellen, der gemmer alle overs\u00e6ttelser (dette er en mulighed i modulet nf_conntrack): <\/p>\n<pre><code class=\"plaintext\">options nf_conntrack hashsize=1572864\n<\/code><\/pre>\n<p>\nEfter disse enkle manipulationer f\u00e5r man en fuldt fungerende konstruktion, der kan overs\u00e6tte et stort antal klientadresser til en pulje af eksterne adresser. Men ydeevnen af denne l\u00f8sning er ikke tilfredsstillende. I mine f\u00f8rste fors\u00f8g med at bruge GNU\/Linux til NAT (omkring 2013) kunne jeg opn\u00e5 en ydeevne p\u00e5 omkring 7 Gbit\/s ved 0,8 Mpps p\u00e5 en server (Xeon E5-1650v2). Siden da er der foretaget mange forskellige optimeringer i det netv\u00e6rksstak i GNU\/Linux-kernen, og ydeevnen p\u00e5 en enkelt server med den samme hardware er steget til n\u00e6sten 18-19 Gbit\/s ved 1,8-1,9 Mpps (dette var gr\u00e6nsev\u00e6rdier), men behovet for den m\u00e6ngde trafik, der behandles af en enkelt server, er steget meget hurtigere. Som et resultat er der udviklet lastbalanceringsordninger for forskellige servere, men alt dette har \u00f8get kompleksiteten ved konfiguration, vedligeholdelse og sikring af kvalitetsservice.<\/p>\n<h3>NFTables<\/h3>\n<p>\nI dag er en popul\u00e6r trend inden for programmering af 'pakkeoml\u00e6gning' brugen af DPDK og XDP. Der er skrevet mange artikler om dette emne, lavet forskellige pr\u00e6sentationer, og kommercielle produkter som SKAT fra VasExperts er begyndt at dukke op. Men i en situation med begr\u00e6nsede ressourcer blandt programm\u00f8rer hos teleoperat\u00f8rer kan det v\u00e6re ret problematisk at udvikle en eller anden 'l\u00f8sning' baseret p\u00e5 disse rammer selv. Det vil ogs\u00e5 v\u00e6re meget sv\u00e6rere at implementere en s\u00e5dan l\u00f8sning senere hen, is\u00e6r da der vil v\u00e6re behov for at udvikle diagnostiske v\u00e6rkt\u00f8jer. For eksempel vil standard tcpdump ikke fungere med DPDK, og pakker sendt tilbage i ledningerne med XDP vil den ikke 'se'. Bag alle samtalerne om nye teknologier til at sende pakker til user-space er der blevet overset <noindex><a rel=\"nofollow\" href=\"https:\/\/netdevconf.info\/0x13\/session.html?workshop-netfilter-mini\">foredrag<\/a><\/noindex> og <noindex><a rel=\"nofollow\" href=\"https:\/\/lwn.net\/Articles\/738214\/\">artikler<\/a><\/noindex> Pablo Neira Ayuso, vedligeholder af iptables, om udviklingen af flow offloading i nftables. Lad os se n\u00e6rmere p\u00e5 denne mekanisme.<\/p>\n<p>Den grundl\u00e6ggende id\u00e9 er, at hvis routeren har ladet pakker fra \u00e9n session passere i begge retninger af str\u00f8mmen (TCP-sessionen er g\u00e5et ind i tilstanden ESTABLISHED), er der ikke behov for at lade de f\u00f8lgende pakker fra denne session g\u00e5 gennem alle firewall-reglerne, da alle disse kontroller alligevel vil ende med at sende pakken videre til routing. Og valget af rute beh\u00f8ver faktisk ikke at udf\u00f8res \u2014 vi ved allerede, hvilken interface og hvilken v\u00e6rt pakkerne skal videresendes til inden for denne session. Der er kun behov for at gemme denne information og bruge den til routing i den tidlige fase af pakkebehandlingen. Ved udf\u00f8relse af NAT er det n\u00f8dvendigt yderligere at gemme information om \u00e6ndringerne af adresser og porte, som er blevet transformeret af modulet nf_conntrack. Ja, selvf\u00f8lgelig vil forskellige polysere og andre informations- og statistiske regler i iptables stoppe med at fungere, men i forbindelse med opgaven med en separat NAT eller f.eks. en border-router er det ikke s\u00e5 vigtigt, fordi tjenesterne er distribueret p\u00e5 enhederne.<\/p>\n<h4>Konfiguration<\/h4>\n<p>\nFor at bruge denne funktion skal vi:<\/p>\n<ul>\n<li>Brug et opdateret kerne. Selvom funktionen selv blev introduceret i kerne 4.16, var den i lang tid meget 'r\u00e5' og for\u00e5rsagede regelm\u00e6ssigt kernel panic. Alt stabiliserede sig omkring december 2019, da LTS kernerne 4.19.90 og 5.4.5 blev udgivet.<\/li>\n<li>Skriv iptables-regler om til nftables-format, ved hj\u00e6lp af en tilstr\u00e6kkelig ny version af nftables. Det fungerer perfekt i version 0.9.0.<\/li>\n<\/ul>\n<p>\nHvis det f\u00f8rste punkt i det hele taget er forst\u00e5eligt, er det vigtigste at huske at aktivere modulet i konfigurationen under opbygningen (CONFIG_NFT_FLOW_OFFLOAD=m), s\u00e5 kr\u00e6ver det andet punkt forklaring. Reglerne i nftables beskrives slet ikke p\u00e5 samme m\u00e5de som i iptables. <noindex><a rel=\"nofollow\" href=\"https:\/\/wiki.nftables.org\/wiki-nftables\/index.php\/Main_Page\">Dokumentation<\/a><\/noindex> d\u00e6kker n\u00e6sten alle aspekter, og der er ogs\u00e5 specielle <noindex><a rel=\"nofollow\" href=\"https:\/\/wiki.nftables.org\/wiki-nftables\/index.php\/Moving_from_iptables_to_nftables\">konvertere<\/a><\/noindex> af regler fra iptables til nftables. Derfor vil jeg kun vise et eksempel p\u00e5 konfiguration af NAT og flow offload. En kort legende til eksemplet: &lt;i_if&gt;, &lt;o_if&gt; \u2014 disse er de netv\u00e6rksgr\u00e6nseflader, som trafikken g\u00e5r gennem; der kan faktisk v\u00e6re mere end to af dem. &lt;pool_addr_start&gt;, &lt;pool_addr_end&gt; \u2014 start- og slutadresse for intervallet af \"hvide\" adresser.<\/p>\n<p>NAT-konfigurationen er meget enkel:<\/p>\n<pre><code class=\"bash\">#! \/usr\/sbin\/nft -f\n\ntable nat {\n        chain postrouting {\n                type nat hook postrouting priority 100;\n                oif &lt;o_if&gt; snat to &lt;pool_addr_start&gt;-&lt;pool_addr_end&gt; persistent\n        }\n}\n<\/code><\/pre>\n<p>\nForskellen med flow offload er lidt mere kompliceret, men helt forst\u00e5elig:<\/p>\n<pre><code class=\"bash\">#! \/usr\/sbin\/nft -f\n\ntable inet filter {\n        flowtable fastnat {\n                hook ingress priority 0\n                devices = { &lt;i_if&gt;, &lt;o_if&gt; }\n        }\n\n        chain forward {\n                type filter hook forward priority 0; policy accept;\n                ip protocol { tcp , udp } flow offload @fastnat;\n        }\n}\n<\/code><\/pre>\n<p>\nOg det er selve konfigurationen. Nu vil al TCP\/UDP-trafik blive sendt til fastnat-tabellen og behandlet meget hurtigere.<\/p>\n<h3>Resultater<\/h3>\n<p>\nFor at illustrere, hvor meget hurtigere det er, vil jeg vedl\u00e6gge et screenshot af belastningen p\u00e5 to faktiske servere, med identisk hardware (Xeon E5-1650v2), ens konfigurationer, der bruger den samme Linux-kerne, men udf\u00f8rer NAT i iptables (NAT4) og nftables (NAT5).<\/p>\n<p><img decoding=\"async\" alt=\"Hurtig routing og NAT i Linux\" src=\"\/wp-content\/uploads\/2020\/05\/94bd3f58bf499ceb9837cd771cc9ef9f.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nScreenshotet viser ikke grafen for pakker pr. sekund, men i belastningsprofilen for disse servere er den gennemsnitlige pakkest\u00f8rrelse omkring 800 byte, s\u00e5 v\u00e6rdierne n\u00e5r op p\u00e5 1.5Mpps. Som man kan se, har serveren med nftables en enorm performance-reserve. I \u00f8jeblikket h\u00e5ndterer denne server op til 30Gbit\/s ved 3Mpps, og den er tydeligt i stand til at n\u00e5 den fysiske netv\u00e6rksgr\u00e6nse p\u00e5 40Gbps, mens den stadig har ledige CPU-ressourcer.<\/p>\n<p>Jeg h\u00e5ber, dette materiale vil v\u00e6re nyttigt for netv\u00e6rksingeni\u00f8rer, der pr\u00f8ver at forbedre deres serveres ydeevne.<br \/>\n<br \/>Kilde: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/501234\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041f\u043e \u043c\u0435\u0440\u0435 \u0438\u0441\u0447\u0435\u0440\u043f\u0430\u043d\u0438\u044f \u0430\u0434\u0440\u0435\u0441\u043e\u0432 IPv4, \u043c\u043d\u043e\u0433\u0438\u0435 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u044b \u0441\u0432\u044f\u0437\u0438 \u0441\u0442\u043e\u043b\u043a\u043d\u0443\u043b\u0438\u0441\u044c \u0441 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u044c\u044e \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u043e\u0432\u044b\u0432\u0430\u0442\u044c \u0434\u043e\u0441\u0442\u0443\u043f \u0441\u0432\u043e\u0438\u0445 \u043a\u043b\u0438\u0435\u043d\u0442\u043e\u0432 \u0432 \u0441\u0435\u0442\u044c \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0442\u0440\u0430\u043d\u0441\u043b\u044f\u0446\u0438\u0438 \u0430\u0434\u0440\u0435\u0441\u043e\u0432. \u0412 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u044f \u0440\u0430\u0441\u0441\u043a\u0430\u0436\u0443, \u043a\u0430\u043a \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0443\u0440\u043e\u0432\u043d\u044f Carrier Grade NAT \u043d\u0430 commodity \u0441\u0435\u0440\u0432\u0435\u0440\u0430\u0445. \u041d\u0435\u043c\u043d\u043e\u0433\u043e \u0438\u0441\u0442\u043e\u0440\u0438\u0438 \u0422\u0435\u043c\u0430 \u0438\u0441\u0447\u0435\u0440\u043f\u0430\u043d\u0438\u044f \u0430\u0434\u0440\u0435\u0441\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0430 IPv4 \u0443\u0436\u0435 \u043d\u0435 \u043d\u043e\u0432\u0430. \u0412 \u043a\u0430\u043a\u043e\u0439-\u0442\u043e \u043c\u043e\u043c\u0435\u043d\u0442 \u0432 RIPE \u043f\u043e\u044f\u0432\u0438\u043b\u0438\u0441\u044c \u043e\u0447\u0435\u0440\u0435\u0434\u0438 \u043e\u0436\u0438\u0434\u0430\u043d\u0438\u044f [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":81266,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-81265","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.3 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041f\u043e \u043c\u0435\u0440\u0435 \u0438\u0441\u0447\u0435\u0440\u043f\u0430\u043d\u0438\u044f \u0430\u0434\u0440\u0435\u0441\u043e\u0432 IPv4, \u043c\u043d\u043e\u0433\u0438\u0435 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u044b \u0441\u0432\u044f\u0437\u0438 \u0441\u0442\u043e\u043b\u043a\u043d\u0443\u043b\u0438\u0441\u044c \u0441 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u044c\u044e \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u043e\u0432\u044b\u0432\u0430\u0442\u044c \u0434\u043e\u0441\u0442\u0443\u043f \u0441\u0432\u043e\u0438\u0445 \u043a\u043b\u0438\u0435\u043d\u0442\u043e\u0432 \u0432 \u0441\u0435\u0442\u044c \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0442\u0440\u0430\u043d\u0441\u043b\u044f\u0446\u0438\u0438 \u0430\u0434\u0440\u0435\u0441\u043e\u0432.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/da\/blog\/administrirovanie\/bystryj-routing-i-nat-v-linux\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"da_DK\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0411\u044b\u0441\u0442\u0440\u044b\u0439 \u0440\u043e\u0443\u0442\u0438\u043d\u0433 \u0438 NAT \u0432 Linux | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041f\u043e \u043c\u0435\u0440\u0435 \u0438\u0441\u0447\u0435\u0440\u043f\u0430\u043d\u0438\u044f \u0430\u0434\u0440\u0435\u0441\u043e\u0432 IPv4, \u043c\u043d\u043e\u0433\u0438\u0435 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u044b \u0441\u0432\u044f\u0437\u0438 \u0441\u0442\u043e\u043b\u043a\u043d\u0443\u043b\u0438\u0441\u044c \u0441 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u044c\u044e \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u043e\u0432\u044b\u0432\u0430\u0442\u044c \u0434\u043e\u0441\u0442\u0443\u043f \u0441\u0432\u043e\u0438\u0445 \u043a\u043b\u0438\u0435\u043d\u0442\u043e\u0432 \u0432 \u0441\u0435\u0442\u044c \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0442\u0440\u0430\u043d\u0441\u043b\u044f\u0446\u0438\u0438 \u0430\u0434\u0440\u0435\u0441\u043e\u0432.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/da\/blog\/administrirovanie\/bystryj-routing-i-nat-v-linux\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2020-05-11T23:42:43+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-05-11T23:42:43+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Hurtig routing og NAT i Linux | ProHoster","description":"Med udt\u00f8mningen af IPv4-adresser har mange teleselskaber st\u00e5et over for n\u00f8dvendigheden af at organisere deres kunders adgang til nettet via adresseovers\u00e6ttelse.","canonical_url":"https:\/\/prohoster.info\/da\/blog\/administrirovanie\/bystryj-routing-i-nat-v-linux","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"da_DK","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0411\u044b\u0441\u0442\u0440\u044b\u0439 \u0440\u043e\u0443\u0442\u0438\u043d\u0433 \u0438 NAT \u0432 Linux | ProHoster","og:description":"\u041f\u043e \u043c\u0435\u0440\u0435 \u0438\u0441\u0447\u0435\u0440\u043f\u0430\u043d\u0438\u044f \u0430\u0434\u0440\u0435\u0441\u043e\u0432 IPv4, \u043c\u043d\u043e\u0433\u0438\u0435 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u044b \u0441\u0432\u044f\u0437\u0438 \u0441\u0442\u043e\u043b\u043a\u043d\u0443\u043b\u0438\u0441\u044c \u0441 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u044c\u044e \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u043e\u0432\u044b\u0432\u0430\u0442\u044c \u0434\u043e\u0441\u0442\u0443\u043f \u0441\u0432\u043e\u0438\u0445 \u043a\u043b\u0438\u0435\u043d\u0442\u043e\u0432 \u0432 \u0441\u0435\u0442\u044c \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0442\u0440\u0430\u043d\u0441\u043b\u044f\u0446\u0438\u0438 \u0430\u0434\u0440\u0435\u0441\u043e\u0432.","og:url":"https:\/\/prohoster.info\/da\/blog\/administrirovanie\/bystryj-routing-i-nat-v-linux","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2020-05-11T23:42:43+00:00","article:modified_time":"2020-05-11T23:42:43+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"81265","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 16:01:23","updated":"2022-09-28 04:47:17","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/posts\/81265","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/comments?post=81265"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/posts\/81265\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/media\/81266"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/media?parent=81265"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/categories?post=81265"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/tags?post=81265"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}