[toc]

iptables nat表应用

10.16~10.18 iptables nat表应用

A机器两块网卡ens33(192.168.133.130)、ens37(192.168.100.1),ens33可以上外网,ens37仅仅是内部网络,B机器只有ens37(192.168.100.100),和A机器ens37可以通信互联。
以下是设置过程:

  • 在01机器上给添加的ens37网卡添加IP,
[root@localhost ~]# ifconfig ens37 192.168.100.1/24

  • 对02机器同样新建一块网卡,并设置为启动连接,选择通用的LAN区段

  • 在02机器上给添加的ens37网卡添加IP,
[root@localhost ~]# ifconfig ens37 192.168.100.100/24

  • 开始是不成功的,用ifconfig查看时ens37自己数据丢失了,重新定义一下后可以ping通了

需求1:可以让B机器连接外网A机器上打开路由转发

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

1.A上执行 iptables -t nat -A POSTROUTING -s 192.168.100.0/24 -o ens33 -j MASQUERADE

[root@localhost ~]# cat /proc/sys/net/ipv4/ip_forward
0  //默认的是0
[root@localhost ~]#  echo "1">/proc/sys/net/ipv4/ip_forward
[root@localhost ~]# !cat
cat /proc/sys/net/ipv4/ip_forward
1

查看结果:

[root@localhost ~]# iptables -t nat -nvL
Chain PREROUTING (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain POSTROUTING (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 MASQUERADE  all  --  *      ens33   192.168.100.0/24     0.0.0.0/0 

2. B上设置网关为192.168.100.1

这样意味着002机器可以和外网通信了,但是我们还
要设置下DNS

3.设置DNS vi /etc/resolv.conf

这样就可以ping接外网了。这里A机器相当于路由器,B机器就是手机等设备终端。

需求2:C机器只能和A通信,让C机器可以直接连通B机器的22端口

A上打开路由转发echo "1">/ proc/sys/net/ipv4/ip_forward
A上执行iptables -t nat -A PREROUTING -d 192.168.133.130 -p tcp --dport 1122 -j DNAT --to 192.168.100.100:22//对进入的包进行端口转发
A上执行iptables -t nat -A POSTROUTING -s 192.168.100.100 -j SNAT --to 192.168.133.130
B上设置网关为192.168.100.1

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

这个步骤和需求1一致,先cat查看下,然后决定是否修改

执行前要把之前的iptable内容删除,iptables -t nat -F

iptables -t nat -D POSTROUTING -s 192.168.100.0/24 -o ens33 -j MASQUERADE

[root@localhost ~]# iptables -t nat -A PREROUTING -d 192.168.72.130 -p tcp --dport 1122 -j DNAT --to 192.168.100.100:22
[root@localhost ~]# iptables -t nat -A POSTROUTING -s 192.168.100.100 -j SNAT --to 192.168.72.130

设置DNS, vi /etc/resolv.conf

在X-shell里面设置如下:

这里通过192.168.72.130把这个机器ping通外网了,机器002的网卡ens37通过001主机做的映射完成了网络连接。

10.19 iptables规则的备份和恢复

1.#iptables-save > /tmp/ipt.txt

删除刚才所以规则,然后恢复

2.恢复规则#iptables-restore < /tmp/ipt.txt

3.为了重启时就加载这些规则 service iptables save //会把规则保存到/etc/sysconfig/iptables