我是靠谱客的博主 靓丽自行车,最近开发中收集的这篇文章主要介绍网络 || 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.临时开启

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  # 添加配置,开启路由转发功能

让内核重新加载新的配置,开启路由转发功能

sysctl -p   
net.ipvr.ip_forward=1

最后

以上就是靓丽自行车为你收集整理的网络 || NAT策略的全部内容,希望文章能够帮你解决网络 || NAT策略所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(42)

评论列表共有 0 条评论

立即
投稿
返回
顶部