Rakuten Mobile + Surface Go LTE

Surface Go LTE に Rakuten Mobile (MNO) のSIMを認識させるまでの記録です。

## Rakuten Mobile

楽天モバイルは、月額上限2,980円で無制限に使える点が Surface Go LTE などのモバイルPCにとって魅力です。プランの選択肢はなく、初回記事執筆時点では Rakuten UN-LIMIT という名前でしたが、現在では「[Rakuten最強プラン](https://network.mobile.rakuten.co.jp/fee/saikyo-plan/)」という名前になっています。

:::note info
現在、楽天モバイルでは紹介キャンペーンを行っています。紹介URL経由で利用開始するとポイントがもらえます。よろしければご利用ください。

<https://r10.to/hkhVQG>

事前に楽天アカウントのログインが必要です。
:::

楽天モバイルの対応バンドは B3 B18(B26) となっており、Surface Go LTE は対応しているようです。パートナー回線 (au) の B18 は対応バンドに含まれていませんでしたが、B26 が内包しているとのこと

## NTT DOCOMO (LTE)

早速、郵送されたSIMを Surface Go LTE に入れて起動してみたものの、なぜか _NTT DOCOMO (LTE)_ として認識されてしまいました。

_NTT DOCOMO (LTE)_ に対して、無理やり `rakuten.jp` の APN を追加しようとしても、以下のようなエラーメッセージが出てきて登録できません。

> Cellular data is not working properly.

これまで、楽天モバイル MVNO の docomo データSIMを使っていたためかもしれませんが、Surface Go LTE にデフォルト設定されているAPNが悪さをしているようです。

## WwanSvc

色々調べてみると、APNの設定は以下のパスに保存されているとのこと

* `C:\ProgramData\Microsoft\WwanSvc\Profiles\*.xml`

中身の `*.xml` ファイルを除くと、`NTT DOCOMO` のデフォルト設定らしきものが含まれていました。

```xml
<?xml version="1.0"?>
<MBNProfileExt xmlns="http://www.microsoft.com/networking/WWAN/profile/v4">
	<Name>6818162F-C3BA-4FBD-AAC9-C1597B7F4150</Name>
	<Description>mopera U （Xi）</Description>
	<IsDefault>true</IsDefault>
	<ProfileCreationType>DeviceProvisioned</ProfileCreationType>
	...
	<HomeProviderName>NTT DOCOMO</HomeProviderName>
	<ConnectionMode>auto</ConnectionMode>
	<Context>
		<AccessString>mopera.net</AccessString>
		<Compression>DISABLE</Compression>
		<AuthProtocol>NONE</AuthProtocol>
		<IPType>IPv4v6</IPType>
	</Context>
	<PurposeGroups>
		<PurposeGroupGuid>...</PurposeGroupGuid>
	</PurposeGroups>
	<AutoConnectOrder xmlns="http://www.microsoft.com/networking/WWAN/profile/v8">1</AutoConnectOrder>
</MBNProfileExt>
```
```xml
<?xml version="1.0"?>
<MBNProfileExt xmlns="http://www.microsoft.com/networking/WWAN/profile/v4">
	<Name>DD62F728-80F8-49A9-B398-063882E98EDD</Name>
	<Description>mopera U （FOMA定額）</Description>
	<IsDefault>true</IsDefault>
	<ProfileCreationType>DeviceProvisioned</ProfileCreationType>
	...
	<HomeProviderName>NTT DOCOMO</HomeProviderName>
	<ConnectionMode>auto</ConnectionMode>
	<Context>
		<AccessString>mopera.flat.foma.ne.jp</AccessString>
		<Compression>DISABLE</Compression>
		<AuthProtocol>NONE</AuthProtocol>
		<IPType>IPv4v6</IPType>
	</Context>
	<PurposeGroups>
		<PurposeGroupGuid>...</PurposeGroupGuid>
	</PurposeGroups>
	<AutoConnectOrder xmlns="http://www.microsoft.com/networking/WWAN/profile/v8">2</AutoConnectOrder>
</MBNProfileExt>
```

## netsh mbn

Windows 10 では `netsh mbn` というコマンドを使うと、モバイル通信の設定 _Mobile Broadband Network (MBN)_ を調整可能なようです。

* [Netsh Commands for Mobile Broadband Network(MBN)](https://docs.microsoft.com/en-us/windows-server/networking/technologies/netsh/netsh-mbn)

### netsh mbn show profiles

[netsh mbn show profiles](https://docs.microsoft.com/en-us/windows-server/networking/technologies/netsh/netsh-mbn#profiles) で登録されている profile が確認できました。

```
> netsh mbn show profiles

Profiles on interface Cellular:
-------------------------------------
    6818162F-C3BA-4FBD-AAC9-C1597B7F4150
    DD62F728-80F8-49A9-B398-063882E98EDD
    {8ABBF94E-FB16-4D67-8B5F-945DC81F5820}

> netsh mbn show profiles interface="Cellular" name="6818162F-C3BA-4FBD-AAC9-C1597B7F4150"
...

> netsh mbn show profiles interface="Cellular" name="DD62F728-80F8-49A9-B398-063882E98EDD"
...
```

`*.xml` ファイルの `MBNProfileExt/Name` の値と `name` が一致しています。以下は、`NTT DOCOMO` `DeviceProvisoned` となっていることから、これらを削除してみます。

* `6818162F-C3BA-4FBD-AAC9-C1597B7F4150`
* `DD62F728-80F8-49A9-B398-063882E98EDD`

ブラケットがついている profile は、過去に自身で登録したAPNでしたので削除対象とはしません。

* `{8ABBF94E-FB16-4D67-8B5F-945DC81F5820}`

### netsh mbn delete profile

[netsh mbn delete profile](https://docs.microsoft.com/en-us/windows-server/networking/technologies/netsh/netsh-mbn#profile) で profile を削除します。

```
> netsh mbn delete profile interface="Cellular" name="6818162F-C3BA-4FBD-AAC9-C1597B7F4150"

> netsh mbn delete profile interface="Cellular" name="DD62F728-80F8-49A9-B398-063882E98EDD"

> netsh mbn show profiles

Profiles on interface Cellular:
-------------------------------------
    {8ABBF94E-FB16-4D67-8B5F-945DC81F5820}
```

削除後に Windows 10 を再起動します。

## Rakuten (LTE)

OS再起動後は、無事 _Rakuten (LTE)_ として認識されました。

特にAPNを追加することなく、既定の `rakuten.jp` のAPNが選択されていました。(2020/6/20 時点)

```
> netsh mbn show profiles

Profiles on interface Cellular:
-------------------------------------
    915AD6BF-E5D8-4905-995D-5629DA3D4D80

> netsh mbn show profiles interface="Cellular" name="915AD6BF-E5D8-4905-995D-5629DA3D4D80"

Profile 915AD6BF-E5D8-4905-995D-5629DA3D4D80 on interface Cellular:
=======================================================================
Profile Information
-------------------
    Version                : 1
    Type                   : Mobile Broadband
    Name                   : 915AD6BF-E5D8-4905-995D-5629DA3D4D80
    Default                : Yes
    Additional PDP Context : No
    Tethering              : No
    Subscriber Id          : ...
    Control options        :
        Connection mode    : Auto connect always

Connectivity settings
---------------------
    Service Provider Name  :
    Access Point Name      : rakuten.jp
    Username               : (null)
    Preferred Roaming Providers : (null)

Cost settings
-------------
    Cost                   : Fixed
    Congested              : No
    Approaching Data Limit : No
    Over Data Limit        : No
    Roaming                : No
    Cost Source            : Default
```

自動的にAPNが選択されない場合は、手動で追加します。

_Network & Internet > Cellular > Advanced Options > Add an APN_

| Name | Value |
|:--|:--|
|Profile name|(any)|
|APN|rakuten.jp|
|Type of sign-in info|None|
|IP Type|IPv4v6|

## netsh mbn show connection

楽天回線かパートナー回線 (au) かどうかは [netsh mbn show connection](https://docs.microsoft.com/en-us/windows-server/networking/technologies/netsh/netsh-mbn#connection) の _Provider Id = Mobile Country Code (MCC) + Mobile Network Code (MNC)_ で確認できます。

```
> netsh mbn show connection interface="Cellular"

Connection information for interface Cellular:
-------------------------------------
    Interface State       : Connected
    Register State        : Home
    Register Mode         : Automatic
    Provider Name         : Rakuten
    Provider Id           : 44011
    Provider Data Class   : LTE
    Number of connections : 1
...
```

| MCC | MNC | Brand | Description |
|:--|:--|:--|:--|
|440|11|Rakuten| |
|440|53|KDDI|楽天モバイルへのローミング用|

* https://ja.wikipedia.org/wiki/Mobile_Network_Code
* https://www.kddi.com/corporate/kddi/public/roaming/


## Conclusion

Rakuten Mobile の SIM や Surface Go LTE に限らず、Windows 10 でうまくモバイル回線を認識してくれない場合は、同様の対応が必要そうです。

Windows の [Network Shell (Netsh)](https://docs.microsoft.com/en-us/windows-server/networking/technologies/netsh/netsh) について学べたのは収穫でした。Windows 10 のネットワーク管理には、Network Shell ではなく [PowerShell](https://docs.microsoft.com/en-us/powershell/windows/get-started?view=win10-psPowerShell) を使うように記載がありますが、対応する PowerShell のコマンドについては宿題とします。