22
17

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

SNATとDNATの設定方法

Posted at

LinuxにおけるSNAT、DNATの設定方法について確認したのでメモ。
前提としては、NAT用ルータとしてではなくパケット送信する端末としての設定である。
よく使うことが想定されるのは[1-1]及び[2-1]である。

環境

[root@SYSLOG02 ~]# cat /etc/redhat-release
CentOS Linux release 7.6.1810 (Core)
[root@SYSLOG02 ~]# uname -a
Linux SYSLOG02.strike-lab 3.10.0-862.9.1.el7.x86_64 #1 SMP Mon Jul 16 16:29:36 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux

1. SNAT(送信元IPアドレスの変換)

1-1. 特定の通信先に対し、送信元のアドレスを変換する

宛先IPアドレスが[192.168.1.31]であった場合、送信元IPアドレスを[192.168.1.254]に変換する

[root@SYSLOG02 ~]# iptables -t nat -A POSTROUTING -d 192.168.1.31 -j SNAT --to-source 192.168.1.254

想定される利用シーン

システム連携先からNAT用アドレスを払い出され、NATしないといけないとき

1-2. 送信元が特定のIPである場合、送信元のアドレスを変換する

送信元IPアドレスが[192.168.1.32]であった場合、送信元IPアドレスを[192.168.1.254]に変換する

[root@SYSLOG02 ~]# iptables -t nat -A POSTROUTING -s 192.168.1.32 -j SNAT --to-source 192.168.1.254

想定される利用シーン

送信元IPアドレスを偽装したいとき(UDP限定)。
TCPの場合にこれを実行してしまうと3wayハンドシェイクを行う際におかしなことになる。

2. DNAT(宛先IPアドレスの変換)

2-1. 特定の通信先に対し、宛先のアドレスを変換する

宛先IPアドレスが[192.168.1.31]であった場合、宛先IPアドレスを[192.168.1.254]に変換する

[root@SYSLOG02 ~]# iptables -t nat -A OUTPUT -d 192.168.1.31 -j DNAT --to-destination 192.168.1.254

想定される利用シーン

グローバルIPアドレスを有するホストに対し通信をするシステムなどを検証するとき。
通信先のシステムをプライベートIPアドレスを有する端末で作成し、そのアドレスにNATさせたり。

2-2. 送信元が特定のIPである場合、宛先のアドレスを変換する

送信元IPアドレスが[192.168.1.32]であった場合、宛先IPアドレスを[192.168.1.254]に変換する

[root@SYSLOG02 ~]# iptables -t nat -A OUTPUT -s 192.168.1.32 -j DNAT --to-destination 192.168.1.254

想定される利用シーン

暫定的にすべての通信先を1箇所に向けたいとき。

22
17
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
22
17

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?