INCIDENT REPLAY · 2022-07-02
KDDI (au) 61-hour nationwide outage
From 01:35 JST on 2 July to 15:00 on 4 July 2022 (61 hours 25 minutes) KDDI's voice and data services were degraded nationwide. KDDI's own report counts about 22.78 million voice (VoLTE) users and 7.65 million or more data users; MIC's guidance cites about 23.16 million voice and 7.75 million data users. ATMs, logistics, connected cars, weather data collection and emergency calling were affected; press reports put exposed lines at up to 39 million.
A reconstruction, not the operator's network. Hammerhead's authors rebuilt the change from the public record as a small network of their own. No configuration here is the operator's. What follows is what the tool reported on that reconstruction; it is not a claim that the tool would have prevented the outage.
What happened
Who: KDDI Corporation (au, UQ mobile, povo; AS2516) and Okinawa Cellular, Japan
The summary at the top is paraphrased from the sources below. Hammerhead's catalog rates its confidence in this account high.
Sources
- https://w.media/kddi-draft-remedies-for-service-outages/
- https://www.datacenterdynamics.com/en/news/equipment-failure-causes-huge-telecoms-outage-in-japan-impacting-39-million-mobile-lines/
- https://www.fierce-network.com/wireless/kddi-outage-affects-nearly-40m-customers-japan
- https://www.itpro.com/infrastructure/network-internet/368425/japans-second-biggest-telco-finally-fixes-network-after-outage
- https://www.kddi.com/english/important-news/20220729_01/
- https://www.kddi.com/extlib/files/english/corporate/ir/library/presentation/2023/pdf/kddi_220729_e_shougai_qe3B6V.pdf
- https://www.lightreading.com/business-management/kddi-network-goes-down-for-two-days-after-maintenance-failure
- https://www.soumu.go.jp/main_sosiki/joho_tsusin/eng/pressrelease/2022/8/03_02.html
What the public record says
- From 01:35 JST on 2 July to 15:00 on 4 July 2022 (61 hours 25 minutes) KDDI's voice and data services were degraded nationwide. KDDI's own report counts about 22.78 million voice (VoLTE) users and 7.65 million or more data users; MIC's guidance cites about 23.16 million voice and 7.75 million data users. ATMs, logistics, connected cars, weather data collection and emergency calling were affected; press reports put exposed lines at up to 39 million.
- Who: KDDI Corporation (au, UQ mobile, povo; AS2516) and Okinawa Cellular, Japan
What the reconstruction assumed
Decided by Hammerhead's authors to build a network that runs. None of it describes the operator's network.
Everything below is ours.
- The family template (
tools/replays/gen_family_policy.py): SUBSCRIBER-GW-1 (the subscriber gateway) reaches IMS-1 (the VoLTE core) through CORE-TRANSPORT-1 (the core transport router that was changed), which filters inbound on its outside interface. The intent file names the flow:VoLTE signalling, both directionson udp/5060. - The trigger was a core transport router change that left VoLTE traffic reachable one way only. Modelled as the router's filter on the inside interface losing the return-direction permit while the forward direction is untouched; the intent names both directions, and the signalling storm that followed is out of remit.
- Cisco IOS syntax and stand-in address space throughout. A reconstruction, not any operator's configuration.
What Hammerhead said
Each run below is pinned by Hammerhead's replay tests at commit 0ee9732: the verdict and the quoted text are checked against the tool's output, and a run that disagrees fails the test. Reason lines are copied verbatim; a pinned line can be part of a longer reason. Every preflight run uses --max-blast-radius 100, so a change is never counted as caught merely because it touched many devices of a small network.
the change as intended
now: passOn the reconstruction, hammerhead preflight on a before and an after snapshot with --policy @kddi_2022/policy.yaml --allow-flow-changes returned pass.
First run, before the fixes this batch prompted
first: fail- policy gate: high/critical failure(s) on the 'after' network: VoLTE signalling, both directions
Pinned in tests/gauntlet/replays-policy.yaml.
the change as pushed
now: failOn the reconstruction, hammerhead preflight on a before and an after snapshot with --policy @kddi_2022/policy.yaml --allow-flow-changes returned fail, for the reasons below.
Reason text pinned (some reason contains each line)
- policy gate: high/critical failure(s) on the 'after' network: VoLTE signalling, both directions
- NOT reachable (expected reachable)
First run, before the fixes this batch prompted
first: fail- policy gate: high/critical failure(s) on the 'after' network: VoLTE signalling, both directions
Pinned in tests/gauntlet/replays-policy.yaml.
What changed in Hammerhead because of it
From the “What was fixed” table in Hammerhead's replay notes, where each fix landed after a failing test. “Found by” is copied as written; a family name means the batch this incident belongs to.
A flow rule names its protocol and port
Every reachability rule probed TCP/80, so an intent about SIP could not tell the push from the intended change: 7 of 11 intended changes failed on main and the one that dropped only the named port passed. protocol: and dst_port: on the rule; the policy gate's reason now carries the violation, not only the policy's name.
Found by: Required-flow family
Limits
- The configurations are a reconstruction. Where the record is silent, the assumptions above fill the gap; if one is wrong, the replay is wrong in that respect.
- A verdict describes the reconstructed network's converged state. Timing, traffic load, and anything a device does that no configuration states, such as software reacting to a health check or a firmware bug, are outside it.
- A pass is reported as a pass. A fail says a gate fired on the reconstruction, nothing more.
- Why the catalog counts this outage as partly in scope: The trigger (a core transport router change that left one-way reachability for VoLTE traffic) is a forwarding-asymmetry finding a config simulator could flag before the push; the 61-hour VoLTE/subscriber-DB signalling storm that followed the rollback is outside what router configs can predict.
Imported from docs/replays/kddi-2022/FACTS.md and the replay manifests in the Hammerhead repository at commit 0ee9732.