0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ip routeでは物足りない. 新しいルーティングテーブルを追加する.

Last updated at Posted at 2025-01-28

これはなに?

Ubuntu24.04のネットワークのルーティングの設定において新しいテーブルの追加方法を紹介する.

日本語の資料ではルーティングテーブルにルートを追加する方法を紹介してるものがあってもテーブルの追加は全く見つけられない.

新しいテーブルの追加が何に使えるかというと, 自分は2つのVPN(NordVPN, WireGuard)を共存させるために必要だった.

ルーティングテーブルの編集や追加と聞けば

ip route add 192.0.2.1 via 10.0.0.1 eth0

というコマンドしか思いつかない人は少なくないだろう. 実際, 私も数週間前までそうだった.

しかし, 多くの人は意識していないが, 上記のコマンドはmainというルーティングテーブルにルートを追加しろというコマンドなのだ. これは 他にもテーブルが存在している ことを暗示している.

NordVPNは自動的にテーブルを作成する. そのためNordVPNを利用してるPCでテーブルも含めてルーティングを確認すると

# ip route show table all
default dev nordlynx table 111 scope link 
999.99.0.0/99 dev nordlynx table 111 scope link 
default via 888.888.888.1 dev ens1 proto static 
999.99.0.0/99 dev nordlynx proto kernel scope link src 999.99.0.66
(以下略)

のような出力を得られる. この出力にテーブルの番号が含まれているのがわかる. オプションの show table all を書かずに ip route で表示されるのはmainテーブルだけのため, 知らないと怪我をすることもある.

またルートの追加だけでなくテーブルの追加ができるようになると, fwmarkを用いてより高度なルーティングを行えるようになる.

ルーティングテーブルの追加方法

参考元はRed hat Enterprise Linuxのネットワークガイドのポリシールティングについて.

Ubuntu24.04ではルーティングの設定をiproute2で行っている. iproute2のルーティングテーブルの設定は /etc/iproute2/rt_tables に書かれている.

# cat /etc/iproute2/rt_tables
#
# reserved values
#
255	local
254	main
253	default
0	unspec
#
# local
#
#1	inr.ruhep

この内容から「番号が255, 名前がlocal」のテーブルが用意されることがわかる. 新しくテーブルを追加したいときはこのファイルを編集すればよい. ちなみにこの番号はルーティングのルールで使用する.

今, 100番でhogeというテーブルを作るなら

$ cat /etc/iproute2/rt_tables
#
# reserved values
#
255	local
254	main
253	default
100 hoge
0	unspec
#
# local
#
#1	inr.ruhep

となるように編集する. 追記して保存するだけでテーブルを利用できるようになる. 実際, この状態で

# ip route add 0.0.0.0/0 dev ens1 table 100

を実行するとルートが正常に追加できる. 確認してみると

# ip route show table 100
default dev ens1 scope link 

のようにちゃんとユーザが独自に追加したルーティングテーブルにルートが追加されているのがわかる. 素晴らしい.

以上.

0
1
0

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
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?