それマグで!

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

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

linux の iproute2 でブリッジの追加。( brctl に代わる bridgeというiproute パッケージのコマンド )

linux の iproute2 でブリッジの追加。

brctl はもう時代遅れらしいので、iproute2 (ip コマンド)で追加する方法を模索してみた。

ブリッジの追加と削除

ブリッジを作成して、インタフェースをブリッジに挿す。

sudo ip link
sudo ip link add name br0 type bridge
sudo ip link set dev br0 up
sudo ip link set dev macvlan1 master br0
sudo ip a
sudo dhclient -v br0

削除

sudo ip link set dev br0 down
sudo ip link del br0

実際にやってみた結果。

ブリッジを追加するとどのように変わるのか。コマンドを実行して確認したいと思います。

ブリッジの追加

追加前

takuya@raspi-ubuntu:~$ sudo ip link
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000
    link/ether dc:a6:32:dd:23:c4 brd ff:ff:ff:ff:ff:ff
5: macvlan1@eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT group default qlen 1000
    link/ether 52:76:71:6e:4f:80 brd ff:ff:ff:ff:ff:ff
6: macvlan0@eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT group default qlen 1000
    link/ether 32:b7:9f:1a:67:d4 brd ff:ff:ff:ff:ff:ff

追加:ipコマンドで追加

takuya@raspi-ubuntu:~$ sudo ip link add name br0 type bridge

追加後: br0 が追加されてる

takuya@raspi-ubuntu:~$ sudo ip link
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000
    link/ether dc:a6:32:dd:23:c4 brd ff:ff:ff:ff:ff:ff
5: macvlan1@eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT group default qlen 1000
    link/ether 52:76:71:6e:4f:80 brd ff:ff:ff:ff:ff:ff
6: macvlan0@eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT group default qlen 1000
    link/ether 32:b7:9f:1a:67:d4 brd ff:ff:ff:ff:ff:ff
23: br0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
    link/ether a6:e2:d0:d6:9e:5a brd ff:ff:ff:ff:ff:ff
takuya@raspi-ubuntu:~$

ブリッジにNICを追加。

ブリッジにNICを参加させると、どう変わるのか、コマンド実行して結果を確認したいと思います。

追加前

takuya@raspi-ubuntu:~$ bridge link
takuya@raspi-ubuntu:~$

追加:br0 に macvlan1 を参加(接続)させる。

sudo ip link set dev macvlan1 master br0

結果の確認

takuya@raspi-ubuntu:~$ bridge link
5: macvlan1@eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 master br0 state forwarding priority 32 cost 4

まだ試してないこと。

btctl でもやってたと思うけど。。。

BPDUを使ったルートポートとブロッキング・ポートの処理。

STPによるループ処理 について知っておく必要がある。

参考1 , 参考2

STPでは、BPDU を送出し、相互にSTP有効であることを認知する。 スイッチが互いを認知する際に、ブリッジ・プライオリティを送出する。 スイッチはお互いの経路を認知する際に、PATHコストを計算する。 ルートスイッチは、自分のコスト=0として広告 各スイッチは、ルートに近いポートを認知 不要なポートはブロック。

このあたりをbrdige コマンドのコスト設定で可能になる。

ip link add br0 type brige でできるのはわかるけど、検索して引っ掛けるのは不可能なんじゃ。。。

参考資料

https://wiki.alphaframe.net/doku.php?id=linux:macvlan