使用OpenWrt(VMWare)用iptables做Static NAT

因為Server資源不足,所以要將Virtual Machine移轉到另外的Server。順利轉過去,但是,網段有改,所以就要改IP才能通。

為了讓使用者不改變熟知的IP,所以使用Static NAT做對映,然而中間跨越了一個Core Switch,就不能只用一個NAT完成。最後使用兩個Static NAT與一個Tunnel,才完美解決路由問題。

軟路由是個很好用的東西,可以在不改動其他實體設備設定之下,達到打通路由的作用,而且還可以裝在VMWare等虛擬機平臺。

在軟路由選擇中,我使用OpenWrt,OpenWrt可以刷到實體機器也有推出VM版本,這邊我使用VMWare版本。

Openwrt的VMware版下載連結,使用網頁最下方的版本「 https://www.dropbox.com/s/nljp8todp99qggn/OpenWRT21.ova

透過Google搜尋「openwrt vmware how to」,如何想安裝在其他平臺,可以置換vmware關鍵字。

Openwrt 做 Static NAT 關鍵要素

  1. Openwrt需要在介面上新增Static NAT所對應的IP。
  2. Openwrt需要透過iptables指令去完成Static NAT,無法透過GUI所提供的設定選項完成。
  3. Openwrt需要連網下載iptables的套件,需要先解決Openwrt無法連到資源庫下載的問題。
Openwrt需要在介面上新增Static NAT所對應的IP。
Openwrt需要透過iptables指令去完成Static NAT,無法透過GUI所提供的設定選項完成。

iptables指令

iptables -t nat -I PREROUTING -i eth0 -d 172.16.3.40  -j DNAT --to 192.168.112.40
iptables -t nat -I POSTROUTING -o eth0 -s 192.168.112.40 -j SNAT --to 172.16.3.40

iptables -t nat -I PREROUTING -i eth0 -d 172.16.3.43  -j DNAT --to 192.168.112.43
iptables -t nat -I POSTROUTING -o eth0 -s 192.168.112.43 -j SNAT --to 172.16.3.43

iptables -t nat -I PREROUTING -i eth0 -d 172.16.3.188  -j DNAT --to 192.168.112.188
iptables -t nat -I POSTROUTING -o eth0 -s 192.168.112.188 -j SNAT --to 172.16.3.188

關於iptables的指令說明,可以參考網路上其他大神的文章。

iptables -t nat -I PREROUTING -i eth0 -d 172.16.3.40  -j DNAT --to 192.168.112.40
# -t nat 進行nat
# -I PREROUTING 設定iptables的PREROUTING鏈中執行
# -i eth0 從 eth0 進入
# -d <IP> 原目的IP
# -j DNAT 執行動作DNAT
# --to <IP> 執行動作DNAT的值
iptables -t nat -I POSTROUTING -o eth0 -s 192.168.112.40 -j SNAT --to 172.16.3.40
# -t nat 進行nat
# -I POSTROUTING 設定iptables的POSTROUTING鏈中執行
# -o eth0 從 eth0 出去
# -s <IP> 原來源的IP
# -j SNAT 執行動作SNAT
# --to <IP> 執行動作SNAT的值

指定介面與特定IP,就能限縮在正確路徑中執行,原路去原路回,否則可能影響其他介面進入的路由。

Openwrt需要連網下載iptables的套件,需要先解決Openwrt無法連到資源庫下載的問題。

點擊「Configure opkg」

在「/etc/opkg/disfees.conf」,將https改成http

src/gz openwrt_core http://downloads.openwrt.org/releases/21.02.0-rc3/targets/x86/64/packages
src/gz openwrt_base http://downloads.openwrt.org/releases/21.02.0-rc3/packages/x86_64/base
src/gz openwrt_luci http://downloads.openwrt.org/releases/21.02.0-rc3/packages/x86_64/luci
src/gz openwrt_packages http://downloads.openwrt.org/releases/21.02.0-rc3/packages/x86_64/packages
src/gz openwrt_routing http://downloads.openwrt.org/releases/21.02.0-rc3/packages/x86_64/routing
src/gz openwrt_telephony http://downloads.openwrt.org/releases/21.02.0-rc3/packages/x86_64/telephony

發表者:JN

嘗試留下一些優質紀錄,自詡造輪子的技術搬運工,身先士卒的踩雷先鋒。

發表留言

使用 WordPress.com 設計專業網站
立即開始使用