iptables 垫脚石之 NAT DNAT SNAT 代理 深度理解

NAT:

SNAT:内网主机访问外网的时候,当外网主机响应的时候路由无法识别源地址,因此需要做源地址转换,

其实,当响应的时候,源地址已经变为目标地址,因此路由也做了DNAT,源地址转换可以隐藏内

网主机,因此,最早是设计来保证内网主机的安全的,但是后来,作为了ipv4公网地址不够用的完

美解决办法,因此,除了安全,还是实现内网中的私网地址通过一个公网地址上网的功能。

其实,做SNAT的时候,可以通过修改公网服务器主机的路由网关,把自己的网关指向路由服务器

的网关也可。

DNAT:把内网主机扮作服务器,可供外网主机访问,当访问时,无法路由,因次,需要把路由服务器的

DNAT打开,把目标地址转换为公网网关,内网主机响应时,把源地址转换为公网网关地址。这样

做可以把内网N个主机扮演为,一个公共网关公网地址的服务器,并且如果iptables规格设置的几

个主机的条件一样,就可以实现负载均衡。

DNAT因为在请求时已经知道是请求的内网路由,并无法路由,因此需要在路由服务器的

PREROUTING设置iptables规则,而SNAT因为在请求时要先分析源地址是内网地址,所以要进ip

路由分析池出来之后才知道,因此需要在POSTROUTING处设置iptables规则。

另外补充,在DNS中也能通过DNS解析实现负载均衡,而这里ipttables的DNAT也能实现负载均衡,并

且后期的内核中更强大的负载均衡工具也行。

代理跟NAT的区别在于,代理在应用层,主要负责你干什么?而NAT工作在网络层和传输层,主要

负责怎么去到要干事情的地方!!

时间: 2024-10-10 23:30:53

iptables 垫脚石之 NAT DNAT SNAT 代理 深度理解的相关文章

Linux服务器集群架构部署搭建(二)linux防火墙iptables使用及NAT共享

第一章 外网防火墙部署企业应用 1.1 生产中iptables的实际应用 ①iptables是基于内核的防火墙,功能非常强大,基于数据包的过滤!特别是可以在一台非常低的硬件配置下跑的非常好.iptables主要工作在OSI七层的2.3.4层.七层的控制可以使用squid代理+iptables. ②iptabes:生产中根据具体情况,一般,内网关闭,外网打开.大并发的情况不能开iptables,影响性能,iptables是要消耗CPU的,所以大并发的情况下,我们使用硬件防火墙的各方面做的很仔细.s

iptables转发技术(NAT)

1|1二. 什么是nat NAT(Network Address Translation)译为网络地址转换.通常路由器在转发我们的数据包时,仅仅会将源MAC地址换成自己的MAC地址,但是NAT技术可以修改数据包的源地址.目的地址以及源端口.目的端口等信息. 1|2二. NAT的作用 NAT技术最常见的应用就是通过修改源IP地址实现内网多主机使用一个公网地址接入互联网.NAT技术通常用于端口和流量的转发.重定向,实现如端口映射.跨网络访问.流量代理等功能. 1|3二. iptables实现NAT转

CentOS下配置iptables防火墙 linux NAT(iptables)配置

CentOS下配置防火墙 配置nat转发服务CentOS下配置iptables防火墙 linux NAT(iptables)配置 CentOS下配置iptables 1,vim /etc/sysconfig/network   这里可以更改主机名称. NETWORKING=yesNETWORKING_IPV6=noHOSTNAME=BGI-TJ.localdomain GATEWAY=192.168.11.1(超算网关) 2.vim /etc/sysconfig/network-scripts/

dnat,snat

Iptables实现NAT是最基本的功能,大部分家用路由都是基于其SNAT方式上网,使用Iptables实现外网DNAT也很简单,不过经常会出现不能正常NAT的现象. 以下命令将客户端访问1.1.1.1的HTTP数据DNAT到2.2.2.2,很多人往往只做这一步,然后测试不能正常连接. iptables -t nat -A PREROUTING -p tcp -d 1.1.1.1 --dport 80 -j DNAT --to 2.2.2.2:80 想像一下此时客户端访问1.1.1.1的数据流程

docker iptables 端口映射 nat

docker  iptables  端口映射  nat #!/bin/bash pro='tcp' NAT_Host='Host_A' NAT_Port=8080 Dst_Host='Host_B' Dst_Port=80 iptables -t nat -A PREROUTING -m $pro -p $pro --dport $NAT_Port -j DNAT --to-destination $Dst_Host:$Dst_Port iptables -t nat -A POSTROUTIN

java 动态代理深度学习(Proxy,InvocationHandler),含$Proxy0源码

java 动态代理深度学习, 一.相关类及其方法: java.lang.reflect.Proxy,Proxy 提供用于创建动态代理类和实例的静态方法.newProxyInstance()返回一个指定接口的代理类实例,该接口可以将方法调用指派到指定的调用处理程序(详见api文档) java.lang.reflect.InvocationHandler,InvocationHandler 是代理实例的调用处理程序 实现的接口. invoke()在代理实例上处理方法调用并返回结果.在与方法关联的代理

Java深度理解——Java字节代码的操纵

导读:Java作为业界应用最为广泛的语言之一,深得众多软件厂商和开发者的推崇,更是被包括Oracle在内的众多JCP成员积极地推动发展.但是对于 Java语言的深度理解和运用,毕竟是很少会有人涉及的话题.InfoQ中文站特地邀请IBM高级工程师成富为大家撰写这个<Java深度历险>专栏,旨在就Java的一些深度和高级特性分享他的经验.在一般的Java应用开发过程中,开发人员使用Java的方式比较简单.打开惯用的IDE,编写Java源代码,再利用IDE提供的功能直接运行 Java 程序就可以了.

深度理解Android InstantRun原理以及源码分析

深度理解Android InstantRun原理以及源码分析 @Author 莫川 Instant Run官方介绍 简单介绍一下Instant Run,它是Android Studio2.0以后新增的一个运行机制,能够显著减少你第二次及以后的构建和部署时间.简单通俗的解释就是,当你在Android Studio中改了你的代码,Instant Run可以很快的让你看到你修改的效果.而在没有Instant Run之前,你的一个小小的修改,都肯能需要几十秒甚至更长的等待才能看到修改后的效果. 传统的代

深度理解IIS下部署ASP.NET Core2.1 Web应用拓扑图

原文:深度理解IIS下部署ASP.NET Core2.1 Web应用拓扑图 IIS部署ASP.NET Core2.1 应用拓扑图 我们看到相比Asp.Net, 出现了3个新的组件:ASP.NET Core Module.Kestrel.dotnet.exe, 后面我们会理清楚这三个组件的作用和组件之间的交互原理. 引入Kestrel的原因 进程内HTTP服务器,与老牌web服务器解耦,实现跨平台部署 IIS.Nginx.Apache等老牌web服务器有他们自己的启动进程和环境:为了实现跨平台部署