自宅Lab

Cloud Edge 100Sをルータ化するためにUbuntuを入れる

はじめに

ルータ化して遊べる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

このルータで遊んでいる話は別の記事で書く(かもしれない)

コメント

タイトルとURLをコピーしました