arpトラブルあるある janog38 lt
TRANSCRIPT
1
Copyright IDC Frontier Inc. All rights reserved.
1
ARP トラブルあるある
株式会社 IDC フロンティア技術開発本部 UX 開発部アーキテクトグループ
井上 一清
2 2
( C ) IDC Frontier Inc. All Rights Reserved.
世の中の様々なネットワーク技術
OSPF
BGP
MPLS
VPLS
EVPN
AnsibleSDN
AutomationFabric
Fabric
Rest API
3 3
( C ) IDC Frontier Inc. All Rights Reserved.
ARP
4 4
( C ) IDC Frontier Inc. All Rights Reserved.
ARP
5 5
( C ) IDC Frontier Inc. All Rights Reserved.
http://qiita.com/inoueissei/items/8d61e675c404ff2ef8d1
今回の話は大体こちらに載ってます・・
6 6
( C ) IDC Frontier Inc. All Rights Reserved.
ARP は一往復で両機器の ARP table が更新される
192.168.1.1/2400:11:11:11:11:11
192.168.1.2/2400:22:22:22:22:22
192.168.1.3/2400:33:33:33:33:33
192.168.1.10/2400:10:10:10:10:10
Who has 192.168.1.1?Tell 192.168.1.10
MAC Address Address00:10:10:10:10:10 192.168.1.10
MAC Address Address00:10:10:10:10:10 192.168.1.10
MAC Address Address00:10:10:10:10:10 192.168.1.10
ARP Request
ARP Request は Broadcast で送出され、その時点で他のマシンもマシン A の ARP テーブルを学習する
A
B C D
ハイサーイ
めんそーれ! あいっ あいっ
7 7
( C ) IDC Frontier Inc. All Rights Reserved.
ARP は一往復で両機器の ARP table が更新される
192.168.1.1/2400:11:11:11:11:11
192.168.1.2/2400:22:22:22:22:22
192.168.1.3/2400:33:33:33:33:33
192.168.1.10/2400:10:10:10:10:10
192.168.1.1 is-at 00:11:11:11:11:11
MAC Address Address00:10:10:10:10:10 192.168.1.10
MAC Address Address00:10:10:10:10:10 192.168.1.10
MAC Address Address00:10:10:10:10:10 192.168.1.10
ARP Reply
MAC Address Address00:11:11:11:11:11 192.168.1.1
ARP Reply は基本 Unicastなので他のマシンは学習しない
A
B C Dはいさーい
めんそーれ!
・・・ ・・・
8 8
( C ) IDC Frontier Inc. All Rights Reserved.
はぁーや(へー、まぁそんな感じだよ
ね)
9 9
( C ) IDC Frontier Inc. All Rights Reserved.
でも NDP だと違う
10 10
( C ) IDC Frontier Inc. All Rights Reserved.
Neighbor Solicitation/Neighbor Advertisement の仕組
• ARP と異なり双方向で行われる必要がある• 要請ノードマルチキャストアドレスを上手く利用 ( ff02::1:ff00:0000 ~ ff02::1:FFff:ffff )
Neighbor SolicitationSrc=2001:db8:1::1Dst=ff02::1:ff00:2Target 2001:db8:1::2
2001:db8:1::10011.2233.4401
2001:db8:1::20011.2233.4402
2001:db8:1::30011.2233.4403
Neighbor AdvertisementSrc=2001:db8:1::2Dst=2001:db8:1::1Target MAC 0011.2233.4402
(破棄)×①
②
ff02::1:ff Unicast の下位 3byte
2001:db8:1::0000:0002 (2001:db8:1::2)
ff02::1:ff00:0002 (ff02::1:ff00:2)
Multicast Address と Ethernet Address の関係
( Dst Ethernet Address )
”※ 33:33” に Multicast の下位 4byte を連結
104 bits 24 bits
ff02::1:ff00:0002 (ff02::1:ff00:2)
33:33:ff:00:00:02要請ノードマルチキャストアドレス
こいつだけ学習 ・・(誰やねん)
11 11
( C ) IDC Frontier Inc. All Rights Reserved.
• IPv6 だと双方で NS/NA をやり取りする必要がある• /64 とかのアドレス空間で大量のデバイスが接続さ
れる可能性があるため• 実際通信しない機器の MAC まで覚えてられない
• 要請ノードマルチキャストアドレスの Dst MACを見れば、破棄できる• 機器は自分の要請ノードマルチキャストアドレス
を知っている。• 他の要請ノードマルチキャストアドレスは破棄
12 12
( C ) IDC Frontier Inc. All Rights Reserved.
ARP は CPU を食う
Broadcast だからこの段階では
( NIC は)破棄できないこれを” CPU が”見てようやく自分ではないと判断して破棄
APP Request のパケットキャプチャ
ARP の Broadcast Storm が発生した場合、帯域が食われるだけでなく、マシンの CPU も 100% に張りつく
※ あと、 ARP は IP パケット( Ethernet タイプ番号 0800 )ではありません。
13 13
( C ) IDC Frontier Inc. All Rights Reserved.
トラフィック切替時のARP 学習に注意しよう
14 14
( C ) IDC Frontier Inc. All Rights Reserved.
例えば、クラウド / 仮想環境で良くある構成
・・・・・・・・・・・めっちゃある仮想ルータ
物理ルータ
10,000 ARP
cost 500 cost 1000
15 15
( C ) IDC Frontier Inc. All Rights Reserved.
例えば、クラウド / 仮想環境で良くある構成
・・・・・・・・・・・めっちゃある仮想ルータ
物理ルータ
Who has 198.51.100.1?Who has 198.51.100.2?Who has 198.51.100.3?Who has 198.51.100.4?Who has 198.51.100.5?Who has 198.51.100.6? ×Who has 198.51.100.7?
大急ぎで ARP Request を投げなければならない
……
…
× ×
機器によるがこぼした場合は再送に 20 秒程度かかる
cost 500 cost 100
16 16
( C ) IDC Frontier Inc. All Rights Reserved.
・・・・・・・・・・・めっちゃある仮想ルータ
物理ルータ
先に上りを切り替えてあげようARP は timer があるので、各々がARP Request を再送してくれる
cost 500 cost 1000
ARP RequestARP Request
17 17
( C ) IDC Frontier Inc. All Rights Reserved.
例えば 2 、ルータ間のトラフィック切り戻し
0.0.0.0/0 via 1.1.1.1
1.1.1.1
メンテナンス等で、インタフェースを落として迂回している状態
18 18
( C ) IDC Frontier Inc. All Rights Reserved.
00:00:00.00 Link Up00:00:00.01 ARP Request
00:00:00.02 Link Up
下位機器が Link Up して ARP Request を投げても上位機器が Ready な状態になっていないと
ARP Request が受信されない
0.0.0.0/0 via 1.1.1.1
1.1.1.1
ARP
19 19
( C ) IDC Frontier Inc. All Rights Reserved.
大量の ARP 更新には落とし穴があることも
20 20
( C ) IDC Frontier Inc. All Rights Reserved.
・・・・・・・・・・・仮想ルータ
10,000 ARP
Who has 198.51.100.1?Who has 198.51.100.2?Who has 198.51.100.3?Who has 198.51.100.4?Who has 198.51.100.5?Who has 198.51.100.6? ×Who has 198.51.100.7?
……
…
ARP Timer を 5 分に設定1 分間隔に Expire が近いものをまとめて ARP 更新 自分が送った ARP Request
の Reply を捌けないことも・・
2000 個くらい
21 21
( C ) IDC Frontier Inc. All Rights Reserved.
以上、 ARP トラブルあるあるでした。
他にもこんなのあるぜ!という方はQiita 等にコメント下さい。
ご清聴ありがとうございました!!
22
( C ) IDC Frontier Inc. All Rights Reserved.