网络 || NAT策略

NAT 简介

NAT:Network Address Translation,网络地址转换。

解决的问题

ipv4地址不足,不能给每个人或者每个设备都分配足额的ip地址。

Linux网关服务器:理解为就是一台路由器。

NAT功能的实现是通过netfilter模块来实现的,iptables给netfilter传递参数。

iptables是一个Linux里的防火墙工具。Linux系统内部有一个内核(kernel),对tcp/ip协议族--》netfilter 模块:专门对进出系统的数据进行过滤。

iptables 是给netfilter模块传递参数的一个工具。NAT 转换表(映射表)--》Linux的内核里netfilter模块里。

DNAT策略的典型应用环境 

在Internet中发布位于企业局域网内的服务器。

在Internet中发布内网的服务器。

  • 发布:公开出去。将一个网络里的服务器发布出去让另外的网络能够访问。
  • 发布:背后是对内部资源的管控。

DNAT策略的原理

目标地址转换,Destination Network Address Translation,修改数据包的目标IP地址。

站在企业的角度,将服务器发布出去。

步骤:

  1. 内网的服务器配置好ip和网关,dns,关闭防火墙。
  2. 内网的服务器搭建好web服务,启动nginx。
  3. 网关服务器开启路由功能配置好 dnat 策略。

在iptables里添加一条snat的转发策略,让内网192.168.100.0的网络从ens33接口出去,出去的时候将源ip地址转换为192.168.0.165。

iptables -t nat  -A POSTROUTING  -s  192.168.100.0/24 -o ens33 -j SNAT --to-source 192.168.0.165

dnat策略-web

iptables -t nat -A PREROUTING  -i ens33 -d 192.168.0.165 -p tcp  --dport 80  -j DNAT --to-destination 192.168.100.200

dnat策略-mysql

iptables -t nat -A PREROUTING  -i ens33 -d 192.168.0.165 -p tcp  --dport 3306  -j DNAT --to-destination 192.168.100.200

DNAT如何发布内网不同的服务器呢?

使用不同的端口号来对应内网不同的ip地址服务器。

iptables -t nat -A PREROUTING -d 192.168.0.133 -p tcp --dport 80 -i ens33 -j DNAT --to-destination 192.168.66.128

iptables -t nat -A PREROUTING -d 192.168.0.133 -p tcp --dport 8080 -i ens33 -j DNAT --to-destination 192.168.66.129:8080

iptables -t nat -A PREROUTING -d 192.168.0.133 -p tcp --dport 3306 -i ens33 -j DNAT --to-destination 192.168.66.130:3306

dnat修改ip包的目的ip地址i,还可以修改tcp或者udp里的目的端口号。

SNAT策略的原理

源地址转换,Source Network Address Translation,修改数据包的源IP地址。

SNAT策略的典型应用环境

局域网主机共享单个公网IP地址接入Internet。

站在用户的角度,帮助用户上网的。

开启snat功能

iptables -t nat -A PSOTROUTING -s 192.168.66.0/24 -o ens33 -j SNAT --to-source 192.168.0.133

-t nat 指定在nat表里操作

-A POSTROUTING 在POSTROUTING位置追加一条规则 append。

-s 192.168.66.0/24 指定从防火墙过的数据包里的源ip地址来自192.168.66.0/24网段。

-o ens33 从ens33接口出去 out-interface。

-j SNAT 采取SNAT策略,进行源ip地址的转换。

--to-source 192.168.0.133 将ip包里的源ip地址修改为192.168.0.133。

开启路由功能

1.临时开启

[root@sc nginx]# echo 1 >/proc/sys/net/ipv4/ip_forward

[root@sc nginx]# cat /proc/sys/net/ipv4/ip_forward
1

0  表示内核里的路由转发功能是关闭的。

1  表示内核里的路由转发功能是开启的。

2.永久开启

[root@sc nginx]# vim /etc/sysctl.conf
net.ipvr.ip_forward=1  # 添加配置,开启路由转发功能

#让内核重新加载新的配置,开启路由转发功能
[root@sc nginx]# sysctl -p   
net.ipvr.ip_forward=1
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

韩未零

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值