实验----SNAT,DNAT,转发

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了实验----SNAT,DNAT,转发相关的知识,希望对你有一定的参考价值。

首先配置NAT环境:

A机:桥接网卡,作为外网。IP:172.17.252.227

B机:作为NAT转换机,两个网卡都有。IP:172.17.123.224 192.168.199.138

   开启转发功能:

   echo 1 > /proc/sys/net/ipv4/ip_forward

     或者vim /etc/sysctl.conf

             net.ipv4.ip_forward=1

         sysctl -p

C机:仅主机网卡,作为内网。IP:192.168.199.142

   添加路由记录route add default gw 192.168.199.138


实现SNAT:

在NAT转换机上:

iptables -t nat -A POSTROUTING -s 192.168.199.0/24 -j SNAT --to-source 172.17.123.224   转换源地址

效果:实现内网可以访问外网,外网不可以访问内网

C机:

技术分享

A机:

技术分享 


实现DNAT:

在NAT转换机上:

iptables -t nat -I PREROUTING 1 -d 172.17.123.224 -j DNAT --to-destination 192.168.199.142   转换目标地址

效果:实现外网访问内网

A机:

技术分享 

 

实现REDIRECT转发:通过改变目标IP和端口,将接受的包转发至不同端口

本例实现目标地址是本机192.168.199.143端口是80的包转发到本机8080端口:

准备工作:修改192.168.199.143主机的httpd服务的监听端口为8080

 vim /etc/httpd/conf/httpd.conf

     Listen 8080

 systemctl restart httpd  

防火墙策略:

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

效果:访问网页的时候不需要加上8080端口也可以访问,因为会把80转换为8080

技术分享 


在centos7上还可以用firewalld实现:

firewall-cmd --add-masquerade   启用伪装

firewall-cmd --add-forward-port=port=80:proto=tcp:toport=8080:toaddr=192.168.199.143

也可以实现转发到远程主机,只需要更改为远程主机ip即可

技术分享



以上是关于实验----SNAT,DNAT,转发的主要内容,如果未能解决你的问题,请参考以下文章

iptables之SNAT与DNAT

iptables SNAT 和DNAT的转化配置实验

Linux|计算机网络|iptables|dnat+snat实现外网访问局域网内部服务器

snat和dnat

详细分析SNAT和DNAT原理与应用

linux DNAT & SNAT