Azureの仮想ネットワークでパブリックIPをアドレス空間として利用できるのかについて実際に設定して検証してみました。
もしパブリックIPを仮想ネットワークに登録できた場合には、サブネットとして利用可能か、など気になる点も検証してみました。
パブリックIPは仮想ネットワークに登録できるか?
実際に試してみます。
・仮想ネットワークの作成(IPアドレスの設定)

「正しく動作しないおそれがあります」と注意書きがありつつも設定としては入るようです。
そのままリソースのデプロイも完了しました。
・仮想ネットワークデプロイ完了画面

パブリックIPは仮想ネットワークに登録できるようです。
また、同時にそのパブリックIPのアドレス空間を利用してサブネットも作成できることも分かりました。
仮想マシンを作成可能か?
上記で作成した仮想ネットワーク内に仮想マシンが作成可能かを試してみます。
仮想マシン作成時の検証は成功しました。
・仮想マシン作成時の作成確認画面

デプロイも正常に完了しました。
・仮想マシンデプロイ完了画面

仮想マシンにおけるネットワーク構成でも以下のように [140.140.140.4] がプライベートIPであるように見えます。
・仮想マシンのネットワーク設定

その後、OS内にログインしてみましたが、ログイン可能で正常に動いているように見えました。
細かい部分では機能制限が出るかもしれないですが、少なくともパブリックIPのアドレス空間を利用したサブネット上に仮想マシンは作成可能ということが分かりました。
他のVnetとピアリングは可能か?
他のVnetとのピアリングを試してみましたが、ピアリングは可能でした。
・仮想ネットワークピアリングの設定画面

また、ピアリング先の仮想ネットワーク上に存在する仮想マシンからは、
[140.140.140.0/24] がVnetピアリングで広報されたアドレスレンジとして表示されていました。
・ピアリング先にある仮想マシンのネットワークインターフェースの [有効なルート] で学習経路を確認
![ピアリング先にある仮想マシンのネットワークインターフェースの [有効なルート] で学習経路の確認結果](https://bonjiri-blog.com/wp-content/uploads/register-public-ip-in-address-space-of-virtualnetwork-007.png)
他のVnet上の仮想マシンからプライベートIP(140.140.140.4)宛に接続可能か?
上記でピアリングした先にある仮想マシンからプライベートIPが [140.140.140.4] である仮想マシンに向けて疎通確認をしてみます。
プライベートIPが [140.140.140.4] である仮想マシン内ではICMP応答を返すようにOS内のFWで許可設定を入れておきます。
・pingの結果
PS C:\> ping 140.140.140.4
Pinging 140.140.140.4 with 32 bytes of data:
Reply from 140.140.140.4: bytes=32 time=2ms TTL=128
Reply from 140.140.140.4: bytes=32 time=2ms TTL=128
Reply from 140.140.140.4: bytes=32 time=2ms TTL=128
Reply from 140.140.140.4: bytes=32 time=2ms TTL=128
Ping statistics for 140.140.140.4:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 2ms, Maximum = 2ms, Average = 2ms
PS C:\>
・tracertの結果
PS C:\> tracert 140.140.140.4
Tracing route to 140.140.140.4 over a maximum of 30 hops
1 2 ms 1 ms 2 ms 140.140.140.4
Trace complete.
PS C:\>
pingの結果から疎通可能であることが分かりますし、tracertの結果からピアリングで直接アクセスできていることが確認できます。
したがって、パブリックIPをプライベートIPと認識している仮想マシンは仮想ネットワーク間で通信可能ということが分かりました。
さいごに
仮想マシン以外のリソースについては今のところ試していませんが、何となく利用はできる気がしました。
今度調べる機会があれば調べてみようと思います。
ただ、Azureの仮想ネットワーク上で設定したパブリックIP(今回でいうと 140.140.140.0/24 )と同じパブリックIPが利用されているインターネット上のサービスは利用できなくなるということになりますのでその点は注意しないといけないのかなと思いました。