それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

debianで br0 にIPアドレスを2つ割り当てる。

debian で br0 をつくり、IPを複数割り当てたい。

debian で eth0 を bridge にして bridge に複数のIPを割り当てて行ききたい

完成形をこんな感じにする

takuya@:~$ ip a br0 
br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether be:53:38:65:9d:00 brd ff:ff:ff:ff:ff:ff
    inet 192.168.101.5/24 brd 192.168.101.255 scope global br0:0
       valid_lft forever preferred_lft forever
    inet 192.168.101.9/24 brd 192.168.101.255 scope global secondary br0:1
       valid_lft forever preferred_lft forever

図で書くと、次のようにした。

f:id:takuya_1st:20220109061350p:plain

veth は後で付与するので、今回は br0 の箇所を重点的に作った。

必要な準備

sudo apt install bridge-utils

bridge-utils を入れて ブリッジを確認できるように準備しておく。

必要な設定

/etc/network/interfaces のファイルに、設定を書いていく。

bridge の設定や IPを複数割り当てる設定をうまく組み合わせる必要がある。

/etc/network/interfaces

allow-hotplug eth0
iface eth0 inet manual

auto br0
allow-hotplug br0
iface br0 inet manual
  bridge_ports eth0
  bridge_stp off
  bridge_maxwait 1
auto br0:0
allow-hotplug br0:0
iface br0:0 inet static
  address 192.168.101.5/24
  gateway 192.168.101.1
auto br0:1
allow-hotplug br0:1
iface br0:1 inet static
    address 192.168.101.9/24

設定を書いたら、反映するので再起動

service networking restart

設定のポイント1

br0 を起動する設定 manual がポイント。

auto br0
iface br0 inet manual

br0 というNICを定義して、その設定を inet manual と書いて、何も設定しないNICを生み出しておく.

設定のポイント2

br0 をブリッジにする設定

iface br0 inet manual
  bridge_ports eth0
  bridge_stp off
  bridge_maxwait 1

作った br0 をブリッジとして登録するように設定を書いておく。ここではIPアドレスの指定をしない。

設定のポイント3

br0:0を作る設定。

br0:0 に address付与している。

auto br0:0
iface br0:0 inet static
  address 192.168.101.5/24

debian では、eth0:0,eth0:1, eth0:2 のようにコロンで番号を振って、同一インタフェースをに複数のIPアドレスを割り振ることができる。eth0:0 を作るときは eth0 にIPを割り当てずにおいておく(割り当てても問題ないが、トラブル原因になるので、普通は割り当てないと思う)

この複数のIPを割り当てる設定を応用して、eth0:0 のeth0の代わりに、br0にかえて、br0をNICに指定した。

そして、br0 をそのままにしておくので、 br0 は inet manualでipアドレスを付与せず。br0:0 に address付与している。

このネットワークの作成意図

なんでこんな事するの?

eth0を共有して、docker ホスト側に抜けるIPを分けてNATフォワードを分けたい。ネットワークをうまく通信を捌いてアレコレしたいが、macvlan ほどは今はも求めてない。

そして、IPアドレスはに予備がほしい。わたしはすべてに予備がないと不安。

そして、netplan には愛想が尽きたので debian を使って /etc/network/interface という古き佳きわかりやすいものを使ったのだが、bridgeと組み合わせは、ちょっと頭を捻ったのでメモとして残しておきます。

単純な br0 の設定と 単純な eth0 の設定で動く。netplan みたいに制限ないし、ぱぱっと使いやすい。

Debianのネットワーク設定はシンプルでいいな!