15/07/18 01:37:55.70 .net
>>1007
PPPはL2
PPPoEはEthernetフレームでカプセル化したPPPで通信するからARPは使わない
PPPoEサーバとの疎通もIPアドレスで行う訳じゃ無いからARPは使わない
1009:ななし
15/07/18 05:03:49.05 .net
>>1001,990
ARP出すかどうかにOSがL2意識してるとは思わん
同一ネットワークと判断してるかどうかが関わってくるとおもうんだが、その辺の動作が違うのかもしれん
>>993あたりの情報だと、Windowsでデフォゲの設定が無い(ルーティング経路が見つからない)と
最終的には全部同一ネットワークとみなして通信しようとするのかもしれんな
あと静的なARPエントリは通常削除されんだろうから、勝手に静的で登録されたら
上限数がいくらだろうが、そのうち使い果たす可能性はあるわな
まあしかし、ファイアウォール系のソフトか、通信高速化系のソフトが何か悪さしてる気がしてしょうがないんだが
1010:984,991
15/07/18 10:55:17.71 .net
>>1008
> PPPoEサーバとの疎通もIPアドレスで行う訳じゃ無いからARPは使わない
言われて見ればその通りだな・・サンクス
1011:985
15/07/18 14:03:52.15 .net
>>1009
もう少し細かく挙動を見てみた。
PPPoE接続をすると仮想インターフェースとしてPPPアダプタが作成される
DGWはメトリックからPPPアダプタのリンク上に向く
ARP要求についてはWiresharkで確認したが、PPPoEのセッションを張る時に相手のMACアドレスを通知してもらい
以後はそのMACアドレスに対してPPPoEでカプセル化したパケットを投げるだけ。
PC-ゲートウェイ間でゲートウェイに対する物も含めてARPによるMACアドレスのやり取りは無かった。
ただし、PPPアダプタのARPテーブルに下記の形式で登録はされる。
インターフェイス: xxx.xxx.xxx.xxx --- 0x17 ※(PPPアダプタ)
インターネット アドレス 物理アドレス 種類
8.8.8.8 静的
この登録は相手が存在するかは関係無くPPPアダプタからパケットを送出した時点で登録されるらしい
数的には256個までで257個目が登録されるとその時点で未使用の物は全クリアされるみたい
(種類が静的になっているけど勝手にクリアされる)
スクリプトとか使って一気に大量の宛先にパケットを送って1000個オーバーとか
一時的に256個を超えて登録されている状態にすることは出来る。
ただ、数秒から数十秒でクリアされる。
数が超過している間に新規の通信が出来なくなったりはしない
物理NICに割りあてたネットワークと同一ネットワーク宛については
ルーティングテーブルに従って物理NICから通常通りARPでMACアドレスを取得して通信する。
Linuxでも仮想インターフェースとしてppp0が作られるけど上記みたいにARPテーブルに登録はされない
FreeBSDも同様
1012:名無しさん@いたづらはいやづら
15/07/18 15:45:14.79 .net
>>1009
> Windowsでデフォゲの設定が無い(ルーティング経路が見つからない)と
> 最終的には全部同一ネットワークとみなして通信しようとするのかもしれんな
記載不足だったけどWindowsの動きは分からない
自分がProxyARP説を推してたのは過去に>>975と似た現象を経験した為で症状は
・サイトにアクセスできなくなる(しかしメジャーなサイトは繋がる)
・アクセスが多い時(多くの人が使う時)に発生する
・数時間経つと復旧する
・FWにARPエントリが数千件登録されていた
接続はLAN―FW―GW―WANで、FWが「Denyで弾いた物以外はGWのポートへ送る」になってて
GW側へARP解決が発生、ProxyARPで処理されたのでWANのサイトごとにARPエントリが登録された
>>1007,992
PPPoEについて疎かったので仕組みを調べてみたらこれはARP使わないね
勉強になったありがとう
ただ>>975は症状からやはりARPエントリの枯渇と思っていて
どこかからARPリプライが飛んで来る(または自分が?)からARPエントリが増えてるはずなので
Wiresharkが使えるならARPリプライ送信元を調べることになると思う
でも物理アドレスが入ってないとしたらどのタイミングで来るのかしか分からないかもしれない
>>1001
PPPアダプタ宛てにIPを投げるということはWAN越しにグローバルIPでアクセスするってことだよね?
それだけでARPに登録されるなら、理屈が分からないけどWANからの攻撃でARP登録が
発生してるだけかもしれないね
・・と書いた所で>>1011を確認します
>>999
ARPエントリが大量なインターフェースはPPPoEの仮想インターフェース?
ARPに登録されてるIPアドレスはインターネットのサイトの物?
arp -d *はインターフェースが複数ある場合はインターフェースアドレスの指定が
必要なので「arp -d * -N インターフェースアドレス」になるので再発時に試してほしい
1013:964
15/07/18 17:02:39.74 .net
>>1012も自分です
>>1011
> 数的には256個までで257個目が登録されるとその時点で未使用の物は全クリアされるみたい
> (種類が静的になっているけど勝手にクリアされる)
枯渇しないようにOSがクリアするのかな
Vista以降でARPCacheの扱いが変わったらしいので、古いWindowsだとクリアされないとかの違いがあるのかも
> この登録は相手が存在するかは関係無くPPPアダプタからパケットを送出した時点で登録されるらしい
ARPリプライを受けてないのにARPエントリが登録される点と、グローバルの8.8.8.8も(物理アドレスが無いことから)この方式で登録されたと推測される点から
PCが通信開始時に自分自身で宛先IPをARPエントリへ登録してるってことかな?
PPPはARPという仕組みを使わないけどベースはEthernetなので、Ethernetを利用する上でどうしてもARPテーブルへのIPアドレスの登録が必要で
(あるいはそうするのが簡単だったから?)パケット送信直前にARPエントリへ登録を行う、って感じだろうか?
そうでなければ物理アドレスの無いARPエントリという無意味な物が登録される理由が分からないから・・
そういう理屈であれば外部にアクセスする度にそのIPアドレスでARP登録されるのは分かる
そうなるとARPエントリが増えるのは避けられないからテーブルの保持時間を短くして解決するしかないかもね
XPだとレジストリのarpcacheを変更、Vista以降はnetshコマンドでbasereachableの値を変更するみたい
> Linuxでも仮想インターフェースとしてppp0が作られるけど上記みたいにARPテーブルに登録はされない
> FreeBSDも同様
今回のがWindows特有の動きだとすると、ルータでPPPoEを使う場合は問題ないと考えていいかもね
1014:ななし
15/07/18 18:17:55.81 .net
>>1013
PPPのベースがEthernetなんじゃなくて、TCP/IPのベースがEthernetな
なんでTCP/IPの都合上ARPテーブル必須な実装になってる可能性はある
Ethernetそのものに、ARPは関係ない(TCP/IP以外のプロトコルだって存在するから)
PPPoEはベースにEthernetがあるけど、その実装でARP必須になるとも思えん
が、Ethernetで通信する以上、相手の物理アドレスは必要なんでそのために
ARPテーブルを利用してる可能性はあるわな
だからARP発行しないでもARPテーブルにエントリが増えるのかもしれん
今のWindowsってTCP/IP必須コンポーネントだったりするからなぁ
ただ、その実装で問題が出るなら、もっとメジャーな問題になってると思うけどなぁ
1015:984,991,994
15/07/18 18:31:04.90 .net
横やりからの詳細な調査恐れ要ります。大変参考になりました。
>>1013
> PPPはARPという仕組みを使わないけどベースはEthernetなので、
少なくともカプセリングされたIPのやり取りには原理的に不要という認識だけど、
Ethernetと同レベルで扱えるように、OS側のプロトコルスタックの実装上の都合でMACやARPの動作を真似てる可能性はありそう。
# OS実装が分からないと書いたのはこの辺が理由。
あちこちに通信始める度にARPエントリ増やすとなると、登録される先のMACアドレスは何になるんだろう。PPPoEサーバ?
1016:anonymouse
15/07/18 18:32:15.20 .net
ネットワークに関する疑問・質問 Part28 [転載禁止](c)2ch.net
スレリンク(hack板)
1017:1001
Over 1000 Thread.net
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。