利用iptables做地址转发

1、实现目的

 有三台服务器,分别为node1,node2(nat),node3,其中node2做nat转换。在node1不能与node3直接通信的情况下,通过node2 nat地址转换,实现node1能与node3通信。

node1:192.168.0.73

node2:192.168.0.74 【nat机器】

node3:192.168.0.189

2、环境配置

 node1不能与node3同学,在node3上开启防火墙,

    在node3上操作

    # systemctl start firewalld.service

    # iptables -A INPUT -s 192.168.0.73 -j REJECT

    将所有来自于192.168.0.73的请求拒绝。

3、NAT服务器配置

     node2上的操作 

    首先打开内核ip地址转发功能

    # cat /proc/sys/net/ipv4/ip_forward  //查看,1为打开,0为关闭

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

    # systemctl start firewalld.service 

    # iptables -t nat -A PREROUTING -s 192.168.0.73 -j DNAT --to-destination 192.168.0.189    //做目标地址转发,将所有来自node1的请求的目的地址转换成node3,由于在路由器是看不到原地址的,所以只有做目的地址转换。

    # iptables -t nat -A POSTROUTING -d 192.168.0.189 -j SNAT --to 192.168.0.74

// 由于PREROUTING链做的目的地址转换,所以在POSTROUTING链看到的就是指向node3的数据包,因此在这里对目的地址为node3的数据包做SNAT(源地址转换),将源地址node1转换成node2的,

    经过目的地址转换和源地址转换后,发往node3的数据包就是S:node2,D:node3,因此跳过了node3的防火墙规则。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章