タイトルが難しいです。
現象
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 に接続できません。
- 〇: 10.2.0.1 → 10.2.0.200
- ×: 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