Forced Tunneling / Default Routeを理解するための前提
forced tunnelingはdefault routeをinspection pointへ向け、Internet-bound trafficをdirect Internet pathから外す設計。 0.0.0.0/0はcatch-allであり、よりspecific route/preferred routeは別pathを選ぶ可能性がある。
VPN Gatewayのforced tunnelingではon-prem default site/BGP default route等の方式があり、GatewaySubnetへ不適切な0/0 UDRを付けない。 Firewall/NVA経由ではDNS、SNAT、service tag/service endpoint、Private Endpointなどのinteractionを確認する。
stateful inspectionではreturn pathが別deviceへ逸れるとsilent drop/retransmissionの原因になる。 egress centralizationのacceptanceは「Internetに出られる」ではなくdeny policy、source IP、logs、failoverを含む。
Control plane と data plane
仕組み
workload subnetの0/0 UDRがFirewall/NVAへ向くと、specific routeにmatchしないInternet destinationはinspection pointへ送られる。
on-prem forced tunnelではVPN/ER pathを通り、on-prem edgeでInternetへNAT/inspectionする。Azure側のpublic dependencyもこのpathに乗るかを確認する。
Private Endpointのprivate IPやpeered VNet prefixなどmore-specific routeは0/0より優先されるため、全trafficが一律inspectionされるとは限らない。
Packet path
routing問題は「どのresourceがあるか」ではなく、packetが各hopで何を選ぶかを順に追う。
- destination IPにspecific routeがないことを確認。
- 0/0 UDR/BGP default routeを選択。
- Firewall/NVA/VPN Gatewayへforward。
- inspection/NAT後にInternet/on-premへ送信。
- return pathが同一state domainへ戻ることを確認。
設計判断
| 判断点 | 推奨 | 理由 |
|---|---|---|
| Scope | Internet/private east-west/on-premを別traffic classで設計。 | 0/0一本で全要件を表現しない。 |
| Exceptions | platform/PaaS dependencyをevidence付きで管理。 | blind exception routeを増やさない。 |
| DNS | FQDN filteringを使うならresolver pathもcentral designへ。 | route正常でもDNS不整合でpolicyが失敗する。 |
| Failover | inspection point failure時のblackhole/alternate pathを試験。 | central egressは大きなfailure domain。 |
確認手順
Azure Portal
- Route table → 0.0.0.0/0とmore-specific routesを確認。
- representative NIC Effective routes / Network Watcher Next hopでpublic destinationを確認。
- Firewall/NVA/VPN logsで実際のflow hitとsource NATを確認。
Verification discipline
- subscription / resource group / resource IDを記録する。
- 同じsource・destinationでbefore/afterを比較する。
- read-only evidenceを保存してから変更する。
- control-plane successとapplication successを別々に判定する。
az network route-table route list -g <rg> --route-table-name <rt> -o table
az network nic show-effective-route-table -g <rg> -n <nic> -o tableGet-AzRouteTable -ResourceGroupName <rg> -Name <rt>
障害切り分け
| 症状 | 疑う点 | 証拠 | 次の確認 |
|---|---|---|---|
| 一部public endpointだけdirect | more-specific/preferred route | effective routes | winner prefix確認 |
| 全outbound停止 | NVA/Firewall/gateway down | Next hop + appliance health | HA/failover path復旧 |
| on-premへ出るがreplyなし | on-prem NAT/route/ACL | on-prem capture/BGP | return route/NAT修正 |
| PaaSだけ不達 | DNS/service endpoint/private endpoint interaction | resolved IP + effective route | routeとname resolutionを分離 |
変更時の確認と rollback
- forced tunnel導入前にpublic dependency inventoryとbaseline source IPを保存。
- 0/0切替はcanary subnet/workloadから段階展開。
- rollback routeを事前に準備し、central device failure時に自動/手動手順を明示。
- rollback後はexisting sessionsではなくnew connectionsでdirect path復帰を確認。