はじめに
ルータ化して遊べるx86の箱として有名な(?)Cloud Edge 100Sを買ったのでUbuntuを入れてルータにしてみた話です.
Cloud Edge 100S
Trend Microの Cloud Edgeシリーズは,ファイアーウォールを提供するセキュリティ機器です.x86の機器で複数のポートが搭載されており,中古で4000 ~ 6000円ぐらいで買えるので,VyOSなどを入れて自宅でルータとして運用されていることも多いです.
外観・スペック
中古品を買ったらとりあえず,分解&清掃をします.スペックとしては以下です.
- CPU: AMD GX-416RA SOC
- RAM: 4GB (DDR3)
- ROM: Transcend SSD370 (SATA3 32GB)
- NIC: Intel® Ethernet Controller I211 × 5


BIOS設定
まず,RJ45コネクタにシリアルケーブルを接続して,以下の設定(115200bps,8bit,1bitストップ,パリティなし,フロー制御なし)でコンソールに接続します.
起動後はDelでBIOSに入れます.

ルータ化するためには,BIOSでLAN Bypass機能を無効にする必要があります.デフォルトでは,WAN1 <> LAN1とLAN2<>LAN3でLAN Bypass機能が有効になっています.Lan Bypass機能は,特定のインターフェース間で,ハードウェアで直接通信できる機能です.これを有効になっていると,Ubuntuを入れたときにインターフェースが上がらないので切っておきます.(私はこの機能のせいでインターフェースが上がらず2週間かけてデバッグしてました…)

ひとしきり確認すれば,BIOSは抜けます.
Ubuntuインストール
ubuntuが入ったUSBをさして電源をいれます.USBブートが有効になっているので,よく見るUbuntuをインストール画面に行きます.ちなみにUbuntuはUbuntu Server 22.04を用意しました.

普通に一番上の「Try or Install Ubuntu Server」を指定すればよいですが,初期設定の際にコンソールからでもアクセスできるようにしたいので,「e」を押してeditの画面に入ります.
編集画面では,vmlinuzのあとに「console=tty0 console=ttyS0,115200\n8」を入れておきます.この設定でconsoleからubuntuにログインできるようになります.設定後は,Ctrl+xを押してUbuntuを起動します.

その後,Ubuntuの起動画面が出てきます.これよりあとはよしなに設定していきます.
インストールや設定が諸々終わると,いつものコンソールに入れます.とりあえず,インターフェースを表示.
$ sudo lshw -C network
*-network DISABLED
description: Ethernet interface
product: I211 Gigabit Network Connection
vendor: Intel Corporation
physical id: 0
bus info: pci@0000:01:00.0
logical name: enp1s0
version: 03
serial: 00:0d:48:47:46:f1
capacity: 1Gbit/s
width: 32 bits
clock: 33MHz
capabilities: pm msi msix pciexpress bus_master cap_list ethernet physical tp 10bt 10bt-fd 100bt 100bt-fd 1000bt-fd autonegotiation
configuration: autonegotiation=on broadcast=yes driver=igb driverversion=5.15.0-119-generic firmware=0. 4-2 latency=0 link=no multicast=yes port=twisted pair
resources: irq:34 memory:f0400000-f041ffff ioport:6000(size=32) memory:f0420000-f0423fff
*-network DISABLED
description: Ethernet interface
product: I211 Gigabit Network Connection
vendor: Intel Corporation
physical id: 0
bus info: pci@0000:02:00.0
logical name: enp2s0
version: 03
serial: 00:0d:48:47:46:f2
capacity: 1Gbit/s
width: 32 bits
clock: 33MHz
capabilities: pm msi msix pciexpress bus_master cap_list ethernet physical tp 10bt 10bt-fd 100bt 100bt-fd 1000bt-fd autonegotiation
configuration: autonegotiation=on broadcast=yes driver=igb driverversion=5.15.0-119-generic firmware=0. 4-2 latency=0 link=no multicast=yes port=twisted pair
resources: irq:40 memory:f1000000-f101ffff ioport:5000(size=32) memory:f1020000-f1023fff
*-network DISABLED
description: Ethernet interface
product: I211 Gigabit Network Connection
vendor: Intel Corporation
physical id: 0
bus info: pci@0000:06:00.0
logical name: enp6s0
version: 03
serial: 00:0d:48:47:46:f3
capacity: 1Gbit/s
width: 32 bits
clock: 33MHz
capabilities: pm msi msix pciexpress bus_master cap_list ethernet physical tp 10bt 10bt-fd 100bt 100bt-fd 1000bt-fd autonegotiation
configuration: autonegotiation=on broadcast=yes driver=igb driverversion=5.15.0-119-generic firmware=0. 4-2 latency=0 link=no multicast=yes port=twisted pair
resources: irq:46 memory:f0300000-f031ffff ioport:4000(size=32) memory:f0320000-f0323fff
*-network DISABLED
description: Ethernet interface
product: I211 Gigabit Network Connection
vendor: Intel Corporation
physical id: 0
bus info: pci@0000:07:00.0
logical name: enp7s0
version: 03
serial: 00:0d:48:47:46:f4
capacity: 1Gbit/s
width: 32 bits
clock: 33MHz
capabilities: pm msi msix pciexpress bus_master cap_list ethernet physical tp 10bt 10bt-fd 100bt 100bt-fd 1000bt-fd autonegotiation
configuration: autonegotiation=on broadcast=yes driver=igb driverversion=5.15.0-119-generic firmware=0. 4-2 latency=0 link=no multicast=yes port=twisted pair
resources: irq:52 memory:f0200000-f021ffff ioport:3000(size=32) memory:f0220000-f0223fff
*-network
description: Ethernet interface
product: I211 Gigabit Network Connection
vendor: Intel Corporation
physical id: 0
bus info: pci@0000:08:00.0
logical name: enp8s0
version: 03
serial: 00:0d:48:47:46:f5
size: 1Gbit/s
capacity: 1Gbit/s
width: 32 bits
clock: 33MHz
capabilities: pm msi msix pciexpress bus_master cap_list ethernet physical tp 10bt 10bt-fd 100bt 100bt-fd 1000bt-fd autonegotiation
configuration: autonegotiation=on broadcast=yes driver=igb driverversion=5.15.0-119-generic duplex=full firmware=0. 4-2 ip=192.168.5.129 latency=0 link=yes multicast=yes port=twisted pair speed=1Gbit/s
resources: irq:58 memory:f0100000-f011ffff ioport:2000(size=32) memory:f0120000-f0123ff
とりあえず,FRRを入れて,Full route突っ込んでみました.
メモリ4Gなのでフルルート突っ込むと,割とかつかつになりますが,実験用としては色々遊べそうです.
$ docker compose exec frr vtysh -c "show ip route" | more
Codes: K - kernel route, C - connected, S - static, R - RIP,
O - OSPF, I - IS-IS, B - BGP, E - EIGRP, N - NHRP,
T - Table, v - VNC, V - VNC-Direct, A - Babel, F - PBR,
f - OpenFabric,
> - selected route, * - FIB route, q - queued, r - rejected, b - backup
t - trapped, o - offload failure
B 1.0.0.0/24 [20/0] via 192.168.255.250 inactive, weight 1, 1d02h01m
B 1.0.4.0/24 [20/0] via 192.168.255.250 inactive, weight 1, 1d02h01m
B 1.0.5.0/24 [20/0] via 192.168.255.250 inactive, weight 1, 1d02h01m
B 1.0.6.0/24 [20/0] via 192.168.255.250 inactive, weight 1, 1d02h01m
B 1.0.7.0/24 [20/0] via 192.168.255.250 inactive, weight 1, 1d02h01m
B 1.0.16.0/24 [20/0] via 192.168.255.250 inactive, weight 1, 1d02h01m
B 1.0.64.0/18 [20/0] via 192.168.255.250 inactive, weight 1, 1d02h01m
B 1.0.128.0/17 [20/0] via 192.168.255.250 inactive, weight 1, 1d02h01m
B 1.0.128.0/18 [20/0] via 192.168.255.250 inactive, weight 1, 1d02h01m
B 1.0.128.0/19 [20/0] via 192.168.255.250 inactive, weight 1, 1d02h01m
B 1.0.128.0/24 [20/0] via 192.168.255.250 inactive, weight 1, 1d02h01m
B 1.0.129.0/24 [20/0] via 192.168.255.250 inactive, weight 1, 1d02h01m
B 1.0.130.0/23 [20/0] via 192.168.255.250 inactive, weight 1, 1d02h01m
B 1.0.132.0/24 [20/0] via 192.168.255.250 inactive, weight 1, 1d02h01m
B 1.0.133.0/24 [20/0] via 192.168.255.250 inactive, weight 1, 1d02h01m
B 1.0.136.0/24 [20/0] via 192.168.255.250 inactive, weight 1, 1d02h01m
B 1.0.137.0/24 [20/0] via 192.168.255.250 inactive, weight 1, 1d02h01m
B 1.0.138.0/24 [20/0] via 192.168.255.250 inactive, weight 1, 1d02h01m
B 1.0.139.0/24 [20/0] via 192.168.255.250 inactive, weight 1, 1d02h01m
B 1.0.140.0/23 [20/0] via 192.168.255.250 inactive, weight 1, 1d02h01m
B 1.0.141.0/24 [20/0] via 192.168.255.250 inactive, weight 1, 1d02h01m
B 1.0.142.0/23 [20/0] via 192.168.255.250 inactive, weight 1, 1d02h01m
B 1.0.144.0/20 [20/0] via 192.168.255.250 inactive, weight 1, 1d02h01m
B 1.0.160.0/19 [20/0] via 192.168.255.250 inactive, weight 1, 1d02h01m
B 1.0.160.0/22 [20/0] via 192.168.255.250 inactive, weight 1, 1d02h01m
B 1.0.164.0/24 [20/0] via 192.168.255.250 inactive, weight 1, 1d02h01m
B 1.0.165.0/24 [20/0] via 192.168.255.250 inactive, weight 1, 1d02h01m
B 1.0.166.0/24 [20/0] via 192.168.255.250 inactive, weight 1, 1d02h01m
B 1.0.167.0/24 [20/0] via 192.168.255.250 inactive, weight 1, 1d02h01m
B 1.0.168.0/24 [20/0] via 192.168.255.250 inactive, weight 1, 1d02h01m
B 1.0.169.0/24 [20/0] via 192.168.255.250 inactive, weight 1, 1d02h01m
B 1.0.170.0/24 [20/0] via 192.168.255.250 inactive, weight 1, 1d02h01m
B 1.0.171.0/24 [20/0] via 192.168.255.250 inactive, weight 1, 1d02h01m
B 1.0.172.0/22 [20/0] via 192.168.255.250 inactive, weight 1, 1d02h01m
B 1.0.176.0/24 [20/0] via 192.168.255.250 inactive, weight 1, 1d02h01m
B 1.0.177.0/24 [20/0] via 192.168.255.250 inactive, weight 1, 1d02h01m
このルータで遊んでいる話は別の記事で書く(かもしれない)
コメント