利用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的防火牆規則。

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