ら・び・あん・ろ~ず

ちょっと古い IT やらガジェットやらのよもやまごとをつぶやきます。

マルチホーム環境の Linux Box に対して両方の IP と通信するには

タイトルが難しいです。

現象

Computer Name DMZ (10.1.0.0/24) Client (10.2.0.0/24) Note
gateway 10.1.0.254 10.2.0.254 ルーティング設定済
server 10.1.0.200 10.2.0.200
client N/A 10.2.0.1

マルチホームの Linux Server に対して Client からアクセスをする際、10.2.0.200 にはアクセスできますが、10.1.0.200 に接続できません。

  1. 〇: 10.2.0.1 → 10.2.0.200
  2. ×: 10.2.0.1 → 10.2.0.254 - 10.1.0.254 → 10.1.0.200

Linux Server 側で 10.2.0.200 を無効に ( ifconfig wlan0 down ) すると、アクセスできるようになります。

背景

届いた Raspberry Pi 4 (Raspberry Pi OS 10 Buster aarch64) を DMZ に置きつつ、折角、ふたつ NIC あるしなぁ、と設定したらはまりました。

原因の推定

10.1.0.200 から受信したパケットに対して、10.2.0.200 から応答しようとして、問題が起きていると推測されます。

対処

ポリシーベースルーティングを設定します。

~# ip route add default via 10.1.0.254 dev eth0 table 10100 
~# ip rule add from 10.1.0.200 table 10100 prior 10

ルーティングテーブルには名前を付けることもできます。

~#echo 10100 dmz >> /etc/iproute2/rt_tables
~#ip route add default via 10.1.0.254 dev 10.1.0.200 table dmz
~#ip rule add from 10.1.0.200 table dmz prio 10

トラブル: ポリシーべースルーティングが消えている

永続化は DHCPcd hook なり、Network script なり Network Manager なり、ということのよう。 /lib/dhcpcd/dhcpcd-hooks/90-route.conf に追加して様子を見ることにします。

qiita.com itblog.webdigg.org unix.stackexchange.com

参考文献

unix.stackexchange.com qiita.com