Multi-homing と Policy based routing
異なるサブネットに属する 192.168.0.1/24 と 192.168.1.1/24 が割り当てられた 2 つの NIC が装着されているマシンがあり、前者のゲートウェイ 192.168.0.100 は後者のサブネット 192.168.1.0 へパケットをルーティングすることもできるし、後者のゲートウェイ 192.168.1.100 は前者のサブネット 192.168.0.0 へパケットをルーティングすることもできるという環境がある。
ここで、前者のサブネットに所属する 192.168.0.2 を持つマシンから 192.168.1.1 に対して接続しようとすると、Request Timeout エラーで接続できないという問題が生じた。いわゆる multi-homing 問題である。tcpdump 等でいろいろ調査した結果、192.168.1.1 で受け取ったパケットの返事が 192.168.0.1 を持つ NIC から送出されようとしていることが分かった。しかし、reverse path filter によってブロックされてしまうので、tcpdump でもキャプチャされない。Reverse path filter は、net.ipv4.conf.{all,interface}.rp_filter
によって制御されており、フィルタを無効にすることで ping が通るようになった。ドキュメントには
The max value from conf/{all,interface}/rp_filter is usedwhen doing source validation on the {interface}.
とあり、all の設定をインターフェイスごとの個別設定が常に上書きするわけではないことに注意が必要。
しかし、192.168.0.2 から 192.168.1.1 で動いている Web サーバ(https) には依然として接続できなかった。もちろん、192.168.1.2 や 192.168.3.1 など、192.168.0.0 以外のサブネットからは問題なく接続できる。この原因は不明のままだが(ゲートウェイ上で何らかのフィルタが適用されている可能性もあるが、ゲートウェイは別の管理者のものなので設定内容は不明)、policy based routing PBRで、受け取ったのと同じ NIC から返事させることにした。
PBR では、カーネル内部に複数のルーティングテーブルを用意する。まず /etc/iproute2/rt_tables
にて、ルーティングテーブルの優先順位と名前をつける。
100 eno1 # 192.168.1.1
のようなものを書き足せば良い。
そして、当マシンは NetworkManager 管理だったので、
/etc/sysconfig/network-scripts/rule-eno1
に
from 192.168.1.1/32 table eno1 priority 100
として、192.168.1.1 由来のパケットはこの eno1 テーブルを使うと指示した。
テーブルの中身は、
/etc/sysconfig/network-scripts/route-eno1
で定義し、
192.168.1.0/24 dev eno1 table eno1 default via 192.168.1.100 dev eno1 table eno1
とした。
設定を適用するには
sudo nmcli general reload sudo systemctl restart NetworkManager
とする。後者だけではダメだった。
なお、試行錯誤の仮定で変なルールが定義されてしまった場合は、ip rule delete
によって削除しなければならない。
読んだ
GazLog "Intel が Battlemage GPU を 2024 年 12 月に発表へ。性能は非常に高い?"
応援したい。PC watch "6 GB/s超! Thunderbolt 5 対応に対応した世界初の外付けSSD「Envoy Ultra Thunderbolt 5 ポータブル SSD」を試す"
そんな速度何に使うんだよ。しかも 46 GB 程度の書き込みで SLC cache を使い切ったら 430 MB/sec まで速度が下がるというのなら、実際には 15 秒程度しかこの速度の恩恵に与れないことになる。
Thunderbolt でない USB 3.2 Gen 2 ポートだと動作しなかったということは、USB protocol ではなく Thunderbolt の PCIe tunneling を使っているのかしら。仕様にも "Thunderbolt 4, Thunderbolt 5, or USB4 port” と書いてあり USB 3 が含まれていないので、PCIe プロトコルを使ってそうだ。でも、USB 4 の PCIe tunneling は optional だから、USB 4 だが動かないケースがありそう。PC watch "他社より 1 万円ぐらい安いけどなぜ? MINISFORUM の eGPUドック「MGA1」"
そこまでしてミニ PC に eGPU つなぐくらいなら、最初から dGPU 搭載の少し大きい PC を買えばいいのではと思ってしまう。CNN "Trump’s return to power raises serious questions about the media’s credibility"
自己批判に乏しい、他人事な印象を受けた。- pliant: 従順な・曲がりやすい
- clout: 影響力
- repudation: 拒絶
CNN "Trump thinks presidents have near-total power: there will be little to stop him in his second term"
具体的にどういう越権行為を Trump が行う危険があるのかが不明瞭なので、説得力に欠ける印象。- disquiet: 不安
- coerce: 強要する
- intemperate: 過激な
- spurn: reject
BBC "Trump says 'no price tag' for mass deportations"
不法滞在者の家族が引き裂かれようが、そりゃ仕方ないだろ。それにコストがかかるからといって、法を適用しないわけにもいくまい。- injunction: 差止命令
BBC "How a Chinese maths 'prodigy' unravelled in cheating storm"
どうやって不正がバレたのか気になる。ここで話題となっている数学コンテストはアリババ主催の大学生以上が参加するもので、国際数学オリンピックとは無関係。- vocatinal: 職業訓練の
PC watch "CPU 性能が 50 % 向上した Android 搭載カラー電子ペーパー「BOOX Note Air4 C」"
なかなか彩度上がらないなあ。あるいは価格を下げないと普及が進まないと思う。PC watch "Teclast、1 万 5,900 円からで AI 機能満載の Android 15 タブレット"
AI 機能いらないから DPI を上げてくれ。
見た
- "Snake eating itself"
思ったより長かったw