通过iptables实现nat、负载均衡笔记

网络拓扑图

在这里插入图片描述

SNAT地址池的实验:
  • Win7-2和Win7-3 ping Win7-1,对应的iptables命令,如下:

iptables -t nat -A POSTROUTING -s 192.168.136.0/24 -d 192.168.0.34 -j SNAT --to-source 8.8.8.8-8.8.8.200

  • 实验结果:
    在这里插入图片描述
  • 通过抓包可以看出SNAT的地址池起作用了,将“源”替换成了8.8.8.165和8.8.8.200;
DNAT实验:
  • Win7-1 ping 路由口ip:192.168.0.6 最终转换为 ping Win7-2,iptables 命令如下:

iptabls -t nat -A PREROUTING -s 192.168.0.34 -d 192.168.0.6 -j DNAT --to-destination 192.168.136.4

  • 实验结果:
    在Win7-1上的数据包:
    在这里插入图片描述
    在Win7-2上的数据包:
    在这里插入图片描述
  • 可以通过抓包看一看出目的IP:192.168.0.6被替换成IP:192.168.136.4;







DNAT端口映射实验1:
  • 实验步骤:使用网络调试助手,在Win7-1上访问Centos的192.168.0.6的8080端口,通过DNAT端口映射使其访问到Win7-2的8081端口;

iptables -t nat -A PREROUTING -s 192.168.0.34 -d 192.168.0.6 -p tcp --dport 8080 -j DNAT --to-destination 192.168.136.4:8081

  • 实验结果:
    在Win7-1上的数据包:
    在这里插入图片描述
    在Win7-2的数据包:
    在这里插入图片描述
DNAT端口映射实验2:
  • 实验步骤:使用网络调试助手,在Win7-1上访问Centos的192.168.0.6的8080端口,通过DNAT随机映射到Win7-2或者Win7-3;
    iptables命令如下:

iptables -t nat -A PREROUTING -s 192.168.0.34 -d 192.168.0.6 -p tcp --dport 8080 -j DNAT --to-destination 192.168.136.4-192.168.136.5

*实验结果:
在Win7-1的数据包如下:
在这里插入图片描述
在Win-7的数据包如下:
在这里插入图片描述
此处实验结果说明性不够强,不能就说明目的IP被随机分配

注意!

  • 每一次进行实验前要清楚状态链接防止上一次实验对本次的影响,通过conntrack -D清除;



负载均衡实验

  • 实验网络拓扑图如下:

  • 目前已知通过iptables实现负载均衡存在三种配置方式

  • ** 注意:**本实验是通过网络调试助手实现,即:在每台windows设备上放置一个网络调试助手,使用网络调试助手访问Centos的8080端口,最后转换为对内网服务器的访问;



1、只需要配置一条策略实现随机分配到内网两台服务器

iptables -t nat -A PREROUTING -s 192.168.0.0/24 -d 192.168.0.6 -p tcp --dport 8080 -m state --state NEW -j DNAT --to-destination 192.168.136.4-192.168.136.5:8081

  • 实验结果:通过建立的连接显示,四条链接其中的三条是客户机与Win7-2建立的,一条是客户机与Win7-3建立的,由于客户机数量有限不能把握其随机分配情况,但是多次的实验表明大部分链接都在一台服务器上,但是当我在Win7-1上采用小兵发包后(不停的变换源IP发送大量的TCP链接请求),此时数据包基数较大,可以明显的看出负载均衡功能;
2、在Centos上配置多条策略,通过轮询算法的方式实现,即:每几个包的第几个到哪一个服务器;

iptables -t nat -A PREROUTING -s 192.168.0.0/24 -d 192.168.0.6 -p tcp --dport 8080 -m state --state NEW -m statistic --mode nth --every 2 --packet 0 -j DNAT --to-destination 192.168.136.4:8081

iptables -t nat -A PREROUTING -s 192.168.0.0/24 -d 192.168.0.6 -p tcp --dport 8080 -m state --state NEW -m statistic --mode nth --every 1 --packet 0 -j DNAT --to-destination 192.168.136.5:8081


3、在Centos上配置多条策略,通过随机概率算法的方式实现;

在这里插入图片描述

相关链接:
简书阐述负载均衡:https://www.jianshu.com/p/5d4e3566935a
外文文档:http://wiki.netkit.org/netkit-labs/netkit-labs_application-level/netkit-lab_loadbalancer-ws/netkit-lab_loadbalancer-ws.pdf
IPtables中SNAT、DNAT和MASQUERADE的含义:https://blog.csdn.net/jk110333/article/details/8229828
朱双印:http://www.zsythink.net/archives/1764
轮询算法需要注意的地方:https://blog.csdn.net/qq267197245/article/details/86447467
DNAT官方文档:https://www.frozentux.net/iptables-tutorial/chunkyhtml/x4033.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值