- blogs:
- cles::blog
« 検索エンジンの容量は6877TB? :: 夏休みの宿題はYahoo!で? »
2009/08/21
iptablesでポートマッピング
iptables久しぶりにiptablesでNATの設定をしたらハマってしまったので、忘れないうちにメモ。
こんなネットワークがあり、ServerAの8080で待ち受けているサービスを、Clientから使いたいという状況でした。
┌───────────┐
│ ServerA │
│ 192.168.200.2:8080 │
└───────────┘
│
│192.168.200.0/24
│
┌eth1(192.168.200.1) ─┐
│ServerB │
└eth0(192.168.100.1) ─┘
│
│192.168.100.0/24
│
┌───────────┐
│Client │
│ 192.168.100.0/24 │
└───────────┘
以下、作業メモ
† 最終的なネットワーク構成
最終的なネットワーク構成はこんな感じになりました。やったこととしては、ServerBには既に8080で動いているサービスがあったので、ServerAへのNATに使うアドレスとして、eth0:1を追加し、それに対してDNATの設定をしたという感じです。
やりたい事はそんなに難しい事ではないのですが、NATするためにはDestinationだけではなくて、Sourceの書き換えも必要になるので、DNATと対になるMASQUERADEもしくはSNATを書かないといけないのをすっかり忘れていて、かなり時間がかかってしまいました。
┌───────────┐
│ ServerA │
│ 192.168.200.2:8080 │
└───────────┘
│
│192.168.200.0/24
│
┌eth1(192.168.200.1) ──────────────┐
│ 192.168.200.2:8080 │
│ServerB ↑DNAT │
│ 192.168.100.2:8080 │
└eth0(192.168.100.1) ─ eth0:1(192.168.100.2) ─┘
│
│192.168.100.0/24
│
┌───────────┐
│Client │
│ 192.168.100.0/24 │
└───────────┘
† /etc/sysconfig/network-scripts/ifcfg-eth0:1
DEVICE=eth0:1
ONBOOT=yes
BOOTPROTO=none
NETMASK=255.255.255.0
IPADDR=192.168.100.2
TYPE=Ethernet
USERCTL=no
IPV6INIT=no
PEERDNS=yes
† nat.sh
#!/bin/bash
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A PREROUTING -i eth0 -p tcp -d 192.168.100.2 --dport 8080 -j DNAT --to 192.168.200.2:8080
iptables -t nat -A POSTROUTING -o eth1 -s 192.168.100.0/24 -j MASQUERADE
† 作業手順
ifup eth0:1
bash nat.sh
iptables -L -n -v -t nat
† 2018/12/23 追記
RHEL/CentOS 7 等で firewalld が使える場合には以下の方が簡単に設定できます。
トラックバックについて
Trackback URL:
お気軽にどうぞ。トラックバック前にポリシーをお読みください。[policy]
このエントリへのTrackbackにはこのURLが必要です→https://blog.cles.jp/item/3168
Trackbacks
このエントリにトラックバックはありません
Comments
愛のあるツッコミをお気軽にどうぞ。[policy]
古いエントリについてはコメント制御しているため、即時に反映されないことがあります。
古いエントリについてはコメント制御しているため、即時に反映されないことがあります。
コメントはありません
Comments Form
コメントは承認後の表示となります。
OpenIDでログインすると、即時に公開されます。
OpenID を使ってログインすることができます。
« 検索エンジンの容量は6877TB? :: 夏休みの宿題はYahoo!で? »
サイト内検索
検索ワードランキング
へぇが多いエントリ
- シャープの空気清浄加湿器の... (1)
- SMARTEK デジタル温湿度計 (1)
閲覧数が多いエントリ
1 . NP_TrackBack v2.x系の使い方(16591)
2 . Word で数式がグレーアウトされていて挿入できないときは(15184)
3 . awk で指定した n カラム目以降を出力する(11771)
4 . アーロンチェアのポスチャーフィットを修理(11478)
5 . Windows 10 で勝手にログアウトされないようにする(9750)
2 . Word で数式がグレーアウトされていて挿入できないときは(15184)
3 . awk で指定した n カラム目以降を出力する(11771)
4 . アーロンチェアのポスチャーフィットを修理(11478)
5 . Windows 10 で勝手にログアウトされないようにする(9750)
cles::blogについて
Referrers