番号なしトンネルは、論理インターフェース用のサブネットを作る手順を省略するが、アドレッシングを完全に省略するわけではない。実装は依然としてローカルな IP 同一性を必要とするため、別の設定済みインターフェースのアドレスを借りる。その提供元は今や設計の一部である。アドレスが変わったりインターフェースがフラップしたりすれば、トンネルの IP 挙動もそれに従う。ほとんどの解説では三つの判断が混同されており、それらを分けておけば、正しく見えて何もルーティングしない設定を避けられる。

提供元は構文の細部ではなく設計上の選択として扱う。

三つのアドレスの役割を分けて保つ

外部ソースは、アンダーレイを越えてトンネルパケットを運ぶアドレスであり、ピアが到達できる必要があるのはこれである。借用したアドレスは、パケットがカプセル化解除された後に番号なし論理インターフェースが IP 処理に使う同一性である。保護されるプレフィックスは、そのトラフィックがトンネルを越えるべき LAN ネットワークであり、トンネルのアドレスではなくルーティングプロトコルによって広告される。インターフェースを番号なしとして指定しても、これらの役割が他のどれかに移るわけではない。

この分離はよくある混乱を説明する。アドレスを借りても、提供元の Ethernet セグメント全体が遠隔のピアに渡るわけではない。

提供元インターフェースの選び方

通常はループバックのほうがよい提供元である。アドレスが安定し、常にアップし、単一の物理リンクに依存しないからだ。LAN インターフェースから借りると、トンネルはそのインターフェースの状態とアドレス割り当てに結び付く。これは別の運用上のトレードオフであり、ラボでは便利だが、LAN のアドレスが変わると脆い。どちらを選ぶにしても、これから作るトンネル種別で番号なし動作がサポートされることを確認しておく。

どの提供元を選ぶにせよ、トンネル設定そのものの隣の変更記録に依存関係として記す。

トンネルを設定して読み返す

以下の例は IOS ファミリのルーターにおけるマルチポイント GRE トンネルで、ループバックを借り、外部ソースをアンダーレイインターフェースに向けている。NHRP の同一性は借用したアドレスとは別であり、明示的に設定する必要がある。

interface Loopback0
 ip address 10.255.255.1 255.255.255.255
interface Tunnel0
 ip unnumbered Loopback0
 tunnel source GigabitEthernet0/0
 tunnel mode gre multipoint
 ip nhrp network-id 100
! verify
show interfaces Tunnel0 | include line protocol|Tunnel source
show ip interface brief | include Tunnel|Loopback
show ip nhrp

まずインターフェース行を読む。down を報告する番号なしトンネルは、借用したアドレスにかかわらずルーティングしない。次に、提供元がアップしていて、そのアドレスが意図したものであることを確認する。アドレスを付け替えたループバックは、トンネルが提示する同一性を静かに変えてしまうからだ。

最後に、保護されるプレフィックスのルーティングテーブルとトンネル越しの隣接関係を確認する。なぜなら 正しいインターフェース状態は、どちらの到達性も証明しないからだ。

借用したアドレスが提供しないもの

DMVPN はスポーク同士が互いを解決できるよう NHRP の登録とマッピングを必要とするが、番号なし回線はそれを何も提供しない。認証、許可された転送、戻りのルートは依然として必要であり、プレフィックスを交換する前にルーティングプロトコルがトンネル越しの隣接関係を形成しなければならない。これらはいずれもインターフェースがアップと報告している間に失敗しうる。だから検証はアドレスからマッピング、そしてルートへと進む。

コマンド構文とアドレッシング規則も製品とリリースによって異なるため、別のプラットフォームから設定をコピーするのではなく、目の前の機器のインターフェースモデルに合わせる。目標は同じでも、必要な行は同じではないことがある。

提供元、外部ソース、広告されるプレフィックスをトンネルの文書に書き、提供元のアドレスが変わったら大きく失敗する検査を一つ追加する。その一つの検査が、番号なし設計がもっとも隠しやすい故障モードを捉える。

関連記事