I hit the VLAN 1 failure pattern while migrating from a consumer TP-Link managed switch to a Juniper EX2200. The configs looked equivalent, but the behavior was not.
Consumer switches are forgiving:
- Trunk ports behave like access ports with extras
- “Allow all VLANs” plus PVID feels safe
- End devices often work on trunks accidentally
On the EX2200:
- Trunks are for VLAN-aware devices only
- Native VLAN is not a substitute for access ports
- VLAN 1 must not be implicitly tagged
- Ambiguous configs are accepted but behave differently
The fix was mostly mental model. Once I treated trunks as trunk-only and made VLAN intent explicit everywhere, VLAN 1 behaved and DHCP stopped failing silently.
For the working port and VLAN patterns, see: Juniper EX2200 VLAN Reference.