職場でやる機会があったので、メモしておきます
Name | IP | IF |
---|---|---|
Client | 192.168.0.10/24 | eth0 |
Router | 192.168.0.254/24 | eth0 |
Router | 192.168.1.254/24 | eth1 |
Server | 192.168.1.10/24 | eth0 |
ClinetからRouterを経由してServerへアクセスさせる
送信側(Client)
Server(192.168.1.10) への通信を Router(192.168.0.254) にルーティングする。
# ip route add 192.168.1.10 via 192.168.0.254
ルータ側(Router)
カーネルパラメータでforwarding有効化
# cat /proc/sys/net/ipv4/ip_forward # echo 1 > /proc/sys/net/ipv4/ip_forward
eth0→eth1への転送を許可、ソースIPは192.168.0.10のみ、ステートフル確認できたものは許可
iptablesでやる場合
# iptables -L -n -v # iptables -A FORWARD -i eth0 -o eth1 -s 192.168.0.10 -j ACCEPT # iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
firewall-cmdでやる場合
# firewall-cmd --direct --get-all-rules # firewall-cmd --direct --add-rule ipv4 filter FORWARD 0 -i eth0 -o eth1 -s 192.168.0.10 -j ACCEPT # firewall-cmd --direct --add-rule ipv4 filter FORWARD 0 -m state --state ESTABLISHED,RELATED -j ACCEPT
eth1からでていく通信をsnatする、ソースIPは192.168.0.10
iptablesでやる場合
# iptables -t nat -L -n -v # iptables -t nat -A POSTROUTING -o eth1 -s 192.168.0.10 -j MASQUERADE
firewall-cmdでやる場合
# firewall-cmd --direct --get-all-rules # firewall-cmd --direct --add-rule ipv4 nat POSTROUTING 0 -o eth1 -s 192.168.0.10 -j MASQUERADE