環境
- Ubuntu 20.04.5 LTS
Ubuntuでネットワークブリッジを構成する
PCに搭載した2つのNICをL2スイッチのように振る舞わせるための設定です。
まずはnetplanを使って、ブリッジの構成を作ります
/etc/netplan/50-cloud-init.yaml
network:
version: 2
ethernets:
enp0s25:
dhcp4: no
enp5s0:
dhcp4: no
# mtuを設定する場合はここで指定する
# mtu: 9000
bridges:
br0:
interfaces:
- enp0s25
- enp5s0
dhcp4: no
addresses:
- 192.168.99.1/24
gateway4: 192.168.99.254
nameservers:
addresses: [8.8.8.8,8.8.4.4]
parameters:
forward-delay: 0
stp: no
optional: true
適応
$ sudo netplan apply
プロミキャスモードの設定
このままでは2つのNICを跨いだ通信ができないため、両方のNICをプロミキャスモードにします。
$ sudo ip link set dev enp0s25 promisc on
$ sudo ip link set dev enp5s0 promisc on
プロミキャスモードの永続化
プロミキャスモードを永続化するためにサービスを作成します。
以下のファイルを作成します。
/etc/systemd/system/bridge-promisc.service
[Unit]
Description=プロミキャスモードを有効にするためのサービス
After=network-online.target
[Service]
Type=oneshot
ExecStart=/usr/sbin/ip link set dev enp0s25 promisc on
ExecStart=/usr/sbin/ip link set dev enp5s0 promisc on
TimeoutStartSec=0
RemainAfterExit=yes
[Install]
WantedBy=default.target
サービスを起動時に呼び出すように登録します。
$ sudo systemctl enable bridge-promisc
確認
nicに PROMISC
のフラグが立っているか確認します。
$ ip a
2: enp0s25: <BROADCAST,MULTICAST,PROMISC,UP,LOWER_UP> mtu 1500 qdisc fq_codel master br0 state UP group default qlen 1000
link/ether d0:60:59:65:b1:30 brd ff:ff:ff:ff:ff:ff
3: enp5s0: <NO-CARRIER,BROADCAST,MULTICAST,PROMISC,UP> mtu 9000 qdisc mq master br0 state DOWN group default qlen 1000
link/ether 14:8c:92:7a:5a:52 brd ff:ff:ff:ff:ff:ff
5: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether 24:8a:07:7a:0b:50 brd ff:ff:ff:ff:ff:ff
inet 192.168.99.1/24 brd 192.168.99.255 scope global br0
valid_lft forever preferred_lft forever
inet6 fe80::bc80:f4ff:fe21:cf94/64 scope link
valid_lft forever preferred_lft forever
参考