NAT实现

原创 2017年11月02日 11:40:56

一、SANT

请求报文源地址替换
实现内网(192.168.129.0/24)通过路由访问外网(172.17.16.169)
路由器: 172.17.16.173和192.168.129.173

1.缺点

缺点
  多个内网主机同时访问外网主机的web服务;则路由的地址不够,此时需要用PNAT(端口转换)

2.内网路由指向路由器的内网网段IP

 nmcli c modify con-eth1  ipv4.gateway 192.168.129.173 

3.在路由器POSTROUTING加策略

#静态IP转换
iptables -t nat -A POSTROUTING -s 192.168.129.0/24  ! -d 192.168.129.0/24 -j SNAT --to-source 172.17.16.173
#动态IP转换
 iptables -t nat -A POSTROUTING -s 192.168.129.0/24  ! -d 192.168.129.0/24 -j MASQUERADE

4.开启转发功能

 sysctl -w net.ipv4.ip_forward=1

5.与网络防火墙区别

#不同
    只设置内网的路由记录
    在172.17网段查看,是172.17.16.173访问,但其实是192.168.129.174在访问
#相同
    都要开启路由转发功能

二、DANT

请求报文目标地址替换

1.实现

外网访问路由器的某个端口时,路由器替换目标地址IP和端口为内网的某个服务器的IP和端口
实现外网可以访问内网的服务

2.缺点

只能映射一个内部服务器主机

3.内网路由指向路由器的内网网段IP

 nmcli c modify con-eth1  ipv4.gateway 192.168.129.173 

4.在路由器POSTROUTING加策略

#转换IP加端口
iptables -t nat -A PREROUTING -d 172.17.16.173 -p tcp --dport 80 -j DNAT --to-destination 192.168.129.174:8080
#转换IP
iptables -t nat -A PREROUTING -d 172.17.16.173  -j DNAT --to-destination 192.168.129.174

4.开启转发功能

 sysctl -w net.ipv4.ip_forward=1

5.结果

这里写图片描述

三、REDIRECT

访问本机a端口时,将端口转换为本机的b端口

1.实现访问172.17.16.169的80端口时,转换为本机端口8080

iptables -t nat -A PREROUTING  -d 172.17.16.169 -p tcp --dport 80 -j REDIRECT --to-ports 80

2.访问本机的80端口,转换为本机的8080端口,则在本机执行,写本机IP

iptables -t nat -A PREROUTING  -d 本机IP -p tcp --dport 80 -j REDIRECT --to-ports 80
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

图示基于FreeBSD、Linux 的NAT实现

  • 2012年09月23日 19:46
  • 5.45MB
  • 下载

一个iptables的stateless NAT模块实现

  • 2014年12月27日 20:35
  • 15KB
  • 下载

iis反向代理Proxy实现及nginx配置和nat123的使用方法

用IIS配置反向代理

Linux系统NAT实现机制的升级改进

一点牢骚和希望一直以来,一直对Linux的NAT很不满,也写过《Linux系统如何平滑生效NAT》系列文章中的patch进行修补,还写过一些类Cisco实现的patch,然而都效果不大好,暴雨的夜晚,...
  • dog250
  • dog250
  • 2013年10月13日 08:05
  • 4758

一个可以直接使用的可用iptables配置的stateless NAT实现

使用iptables配置stateless NAT?我没有搞错。可能你根本不知道这么多NAT的实现细节,或者说根本不在乎,那么本文就当是一个“如何编写iptables模块”的练习了。实际上,我已经实现...
  • dog250
  • dog250
  • 2014年12月27日 20:25
  • 2405
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:NAT实现
举报原因:
原因补充:

(最多只允许输入30个字)