85169
# 概要

家庭内のネットワークの全体像を把握したいと考え、  
いくつかのコマンドを実行してみたのですが、  
満足の行く結果が得られません。

# 状況

## ネットワークの全体像

[![home_network](https://i.stack.imgur.com/W3LsG.png)](https://i.stack.imgur.com/W3LsG.png)

## やりたいこと

**デバイスA1** から何らかの手段で、  
全てのルーター、デバイスの構成図とプライベートIPを取得すること。

# 実行したこと

## arp -a

ルーターAのIPアドレスが取得できた。

### 実行結果

```

    $ arp -a
    ROUTER.A (192.168.10.1) at xx:xx:xx:xx:xx:xx [ether] on eth0
    
```

### 疑問

#### ネットワーク部はどこ？

取得できたIPアドレスはサブネットマスクなどの情報が存在していない。  
しかしIPアドレスとサブネットマスクというのはセットではないのか？

#### arpテーブルには一つの情報しか無い？

今回`arp -a`コマンドではルータに関する情報しか存在していなかったが、  
デバイスA2に関する情報もarpテーブルに存在するということはあり得るのか？

## arp-scan

デバイスA1に直接繋がっている（？）ルーター、デバイスA2の情報を取得することが出来た。  
しかしルーターBとそれに接続されているデバイスB1、B2に関する情報は取得できなかった。

## 実行結果

```

    $ sudo arp-scan -I wlp2s0 -l
    Interface: eth0, type: EN10MB, MAC: aa:aa:aa:aa:aa:aa, IPv4: 192.168.10.14
    Starting arp-scan 1.9.7 with 256 hosts (https://github.com/royhills/arp-scan)
    192.168.10.1    xx:xx:xx:xx:xx:xx   ROUTER_A
    192.168.10.5    yy:yy:yy:yy:yy:yy   DEVICE_A1
    192.168.10.4    zz:zz:zz:zz:zz:zz   DEVICE_A2
    
```

## 疑問点

### ルータBに関する情報は？

ルーターBとそれに接続されているデバイスB1、B2に関する情報を取得するにはどうすればいいか？

### ネットワーク部の存在

arp-scanにおいても上の`arp -a`と同じく表示されるIPアドレスには、  
サブネットマスクなどのネットワーク部に関する情報が存在していない。

なぜIPアドレスとセットのはずのネットワーク部に関する情報が無いのか？

# 補足

一番理解ができない点は、  
なぜネットワーク部が存在しないIPアドレスが存在しているのかという点です。

IPアドレスはネットワーク部とホスト部の二つで構成されているという情報と齟齬が生じます。  
（そしてIPアドレスにはサブネットマスクの情報が存在したりしなかったりするのは何故なのか？）
CC BY-SA 4.0
2021-12-16T10:24:49.153
85168
2021-12-17T04:59:34.817
2021-12-16T14:48:13.020
9616
9616
question
network
ネットワーク全体の情報を取得したい
> 今回arp -aコマンドではルータに関する情報しか存在していなかったが、  
>  デバイスA2に関する情報もarpテーブルに存在するということはあり得るのか？

Ethernetで通信すれば、arp -aで表示されます。（MACアドレスの動的なキャッシュ）  
A2にpingを打った後、確認してみてください。A2のMACアドレスが表示されるはずです。

> ルーターBとそれに接続されているデバイスB1、B2に関する情報を取得するにはどうすればいいか？

ルーターBのネットワークが持つIPアドレス範囲にpingなどで通信してみる、という方法が考えられます。

> なぜネットワーク部が存在しないIPアドレスが存在しているのか

IPアドレスはネットワーク部とホスト部をくっつけて表記することは一般的に行われます。  
ネットワークのIPアドレスとホスト部を分けて書いていないのは、ARPは自分が所属するネットワーク内のMACアドレスを表示しているので、ネットワーク部のIPアドレスは自明で、ツールの表示情報として冗長だからといったところでしょう。

* * *

ほかの質問にも共通するのですが、L2 (データリンク層、Ethernet)とL3 (ネットワーク層、IP)の違いを勉強いただくのが早いと思います。

同じネットワーク上はデータリンク層で通信ができますし、隣のネットワーク(ルーターB)には、同じネットワークにいるゲートウェイに「デバイスBのIPアドレス宛です。よろしく」とIPパケットを送ります。これをきちんと説明するには数ページでは済まないので、本で体系立てて勉強してみてください。
CC BY-SA 4.0
2021-12-16T11:00:40.847
85169
2021-12-16T12:25:14.340
2021-12-16T12:25:14.340
2238
2238
85168
answer
(回答付いてますが, 他の質問との兼ね合いで)

データリンク層(Layer2) Ethernetプロトコルでは, 接続相手と通信するのに MAC(Medium Access
Control)アドレスを用います

例えば, 「デバイスA1」ノードから「デバイスA2」ノードへは  
まずは論理アドレス(IPアドレス) から物理アドレス(MACアドレス) に変換し, (相手の MACアドレスへと)データフレームを回線に乗せる  
その際に行われるのが, アドレス解決(Address Resolution Protocol) いわゆる ARP  
(MACアドレスがないと通信できないし, MACアドレスさえ合ってれば相手は(とりあえず)受信可能)

* * *

「デバイスA1」のノードから「デバイスB1」への場合は, 物理的に繋がっていないので L2以下のレイヤーではどうしようもない  
ネットワーク層(Layer3) IPにて, その先に存在するであろうノードに送り届けてもらう  
それを識別するための IPアドレスです

* * *

IPアドレスを例えば DHCPなどで割り当てているのなら, ネットマスクを調べるのなら DHCPに問い合わせるのが筋です  
(そうでなくても 192.168 であればクラス C, ネットワークアドレス長は 24ビット)
CC BY-SA 4.0
2021-12-17T04:59:34.817
85185
2021-12-17T04:59:34.817
43025
85168
answer