🐈

etherswitch on Cloud Edge 100s G2 by FreeBSD 15.0-current 2

に公開

この記事はなにか

前回の続き。

認識

実際にチップが認識されると、dmesgで以下のような出力を確認できる。

e6000sw0: <Marvell 88E6190> on mdio1
e6000sw0: single-chip addressing mode
e6000sw0: switch is ready.
miibus0: <MII bus> on e6000sw0
e1000phy0: <Marvell 88E1000 Gigabit PHY> PHY 1 on miibus0
e1000phy0:  none, 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, 1000baseT, 1000baseT-master, 1000baseT-FDX, 1000baseT-FDX-master, auto
miibus1: <MII bus> on e6000sw0
e1000phy1: <Marvell 88E1000 Gigabit PHY> PHY 2 on miibus1
e1000phy1:  none, 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, 1000baseT, 1000baseT-master, 1000baseT-FDX, 1000baseT-FDX-master, auto
miibus2: <MII bus> on e6000sw0
e1000phy2: <Marvell 88E1000 Gigabit PHY> PHY 3 on miibus2
e1000phy2:  none, 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, 1000baseT, 1000baseT-master
e6000sw0port1: link state changed to DOWN
, 1000baseT-FDX, 1000baseT-FDX-master, auto
miibus3: <MII bus> on e6000sw0
e6000sw0port2: link state changed to DOWN
e6000sw0port3: link state changed to DOWN
e1000phy3: <Marvell 88E1000 Gigabit PHY> PHY 4 on miibus3
e1000phy3:  none, 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, 1000baseT, 1000baseT-master, 1000baseT-FDX, 1000baseT-FDX-master, auto
miibus4: <MII bus> on e6000sw0
e1000phy4: <Marvell 88E1000 Gigabit PHY> PHY 5 on miibus4
e1000phy4:  none, 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, 1000baseT, 1000baseT-master, 1000baseT-FDX, 1000baseT-FDX-master, auto
miibus5: <MII bus> on e6000sw0
e1000phy5: <Marvell 88E1000 Gigabit PHY> PHY 6 on miibus5
e1000phy5:  none, 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, 1000baseT, 1000baseT-master, 1000baseT-FDX, 1000baseT-FDX-master, auto
miibus6: <MII bus> on e6000sw0
e6000sw0port4: link state changed to DOWN
e6000sw0port5: link state changed to DOWN
e6000sw0port6: link state changed to DOWN
e1000phy6: <Marvell 88E1000 Gigabit PHY> PHY 7 on miibus6
e1000phy6:  none, 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, 1000baseT, 1000baseT-master, 1000baseT-FDX, 1000baseT-FDX-master, auto
miibus7: <MII bus> on e6000sw0
e1000phy7: <Marvell 88E1000 Gigabit PHY> PHY 8 on miibus7
e1000phy7:  none, 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, 1000baseT, 1000baseT-master, 1000baseT-FDX, 1000baseT-FDX-master, auto
etherswitch0: <Switch controller> on e6000sw0
e6000sw0port7: link state changed to DOWN
e6000sw0port8: link state changed to DOWN
e6000sw0port2: link state changed to UP
e6000sw0port4: link state changed to UP
e6000sw0port2: link state changed to DOWN
e6000sw0port4: link state changed to DOWN
e6000sw0port2: link state changed to UP
e6000sw0port4: link state changed to UP
e6000sw0port2: link state changed to DOWN
ix0: link state changed to UP
ix1: link state changed to UP
e6000sw0port2: link state changed to UP
e6000sw0port2: link state changed to DOWN
e6000sw0port4: link state changed to DOWN
e6000sw0port8: link state changed to UP
e6000sw0port8: link state changed to DOWN
e6000sw0port2: link state changed to UP
e6000sw0port2: link state changed to DOWN
e6000sw0port1: link state changed to UP
e6000sw0port1: link state changed to DOWN
e6000sw0port7: link state changed to UP
e6000sw0port7: link state changed to DOWN
e6000sw0port5: link state changed to UP
e6000sw0port5: link state changed to DOWN
e6000sw0port3: link state changed to UP
e6000sw0port3: link state changed to DOWN
e6000sw0port4: link state changed to UP

何も設定していない場合、etherswitchcfgコマンドを流すと、以下のようになる。

# etherswitchcfg
etherswitch0: VLAN mode: PORT
port0:
        flags=0<>
        media: <unknown type>
        status: no carrier
port1:
        flags=0<>
        media: Ethernet autoselect (none)
        status: no carrier
port2:
        flags=0<>
        media: Ethernet autoselect (none)
        status: no carrier
port3:
        flags=0<>
        media: Ethernet autoselect (none)
        status: no carrier
port4:
        flags=0<>
        media: Ethernet autoselect (none)
        status: active
port5:
        flags=0<>
        media: Ethernet autoselect (none)
        status: no carrier
port6:
        flags=0<>
        media: Ethernet autoselect (none)
        status: no carrier
port7:
        flags=0<>
        media: Ethernet autoselect (none)
        status: no carrier
port8:
        flags=0<>
        media: Ethernet autoselect (none)
        status: no carrier
port9:
        flags=1<CPUPORT>
        media: Ethernet 2500Base-T <full-duplex>
        status: active
port10:
        flags=1<CPUPORT>
        media: Ethernet 2500Base-T <full-duplex>
        status: active
vlangroup1:
        port: 1
        members 2,3,4,5,6
vlangroup2:
        port: 2
        members 1,3,4,5,6
vlangroup3:
        port: 3
        members 1,2,4,5,6
vlangroup4:
        port: 4
        members 1,2,3,5,6
vlangroup5:
        port: 5
        members 1,2,3,4,6
vlangroup6:
        port: 6
        members 1,2,3,4,5
vlangroup7:
        port: 7
        members 1,2,3,4,5,6
vlangroup8:
        port: 8
        members 1,2,3,4,5,6
vlangroup9:
        port: 9
        members 1,2,3,4,5,6
vlangroup10:
        port: 10
        members 1,2,3,4,5,6

vlangroup[0]をリセットする

# etherswitchcfg vlangroup[0] members none

他のvlangroup[*]もリセットしたきゃそのようにスクリプト回してね

タグVLANを使いたい

# etherswitchcfg config vlan_mode DOT1Q
# etherswitchcfg vlangroup127 vlan 127
# etherswitchcfg vlangroup127 member 1t,2t

これでタグVLANでお喋りできるようになる

ポートVLANを使いたい

# etherswitchcfg config vlan_mode DOT1Q
# etherswitchcfg vlangroup127 vlan 127
# etherswitchcfg vlangroup127 members 1,2

これでポートVLAN使えるんだけど、ホストなFreeBSDはアクセスできない。
ホストなFreeBSDからも触りたいときは

# etherswitchcfg vlangroup127 members 1,2,9t,10t
# ifconfig ix0.127 create
# ifconfig ix0.127 inet XXX.XXX.XXX.XXX/XX up
みたいにすると、ホストのix0.127からIKERU

というか ix0,1も使えるようにしとけよ

# ifconfig ix0 up
# ifconfig ix1 up

Discussion