LoginSignup
17
14

More than 3 years have passed since last update.

CentOS7 の ip_forward 有効化で rp_filter が邪魔してる話

Last updated at Posted at 2018-02-22

やりたいこと

  • CentOS7 で eth0 に届くパケットを全て eth1 に転送し出力する

これだけ!!!

問題

  • カーネルパラメータ ip_forward を有効化 (ip_forward=1) 、iptables で FORWARD チェーンにルールを追加しても転送が行われない
  • 詳しくしらべると、iptables の PREROUTING チェーンにはパケットが届いているが、その先の FORWARD チェーンに到達していない

解決策

  • rp_filter を無効化する

これだけ!!!

CentOS7 では、スプーフィング対策で rp_filter というフィルターが稼働しており、これが自身宛以外のパケットを drop させている模様。

まとめ

やるべきことは以下の通り
- ip_forward を有効化
- eth0 の rp_filter を無効化 (タイポ修正しました)
- eth1 の rp_filter を無効化 (タイポ修正しました)
- iptablesのFORWARDチェーンにルールを追加

# echo 1 > /proc/sys/net/ipv4/ip_forward
# echo 0 > /proc/sys/net/ipv4/conf/eth0/rp_filter
# echo 0 > /proc/sys/net/ipv4/conf/eth1/rp_filter
# iptables -A FORWARD -i eth0 -o eth1 -j ACCEPT
17
14
1

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
17
14