Diagram generation: ref-arch-driven procedure + spec validator + KB enrichment

The diagram path now follows a documented standard procedure (lookup
the closest Oracle Architecture Center reference → confirm components
→ author absolute_layout → spec validator → render → visually verify)
and ships persistent guardrails so layout regressions can't recur.

Persistent procedure changes (apply to all users, all sessions):
- tools/diagram_spec_validator.py — geometry checks (CONTAINER_TOO_THIN,
  CONTAINER_PADDING_VIOLATION, LABEL_OVERFLOW_PARENT) run BEFORE either
  renderer (drawio + PPTX). Catches the subnet-collapse / label-overflow
  bugs that the post-render drawio validator missed.
- tools/oci_diagram_gen.py + tools/oci_pptx_diagram_gen.py — call the
  spec validator before emitting any output. Adds mysql / mysql_heatwave
  type aliases.
- tools/archcenter_pattern_lookup.py — scores against cached page
  descriptions (not just the 1-line summary), supports --queries for
  multi-fragment composition, and applies synonym expansion via
  kb/architecture-center/synonyms.yaml so "LB HA cross AD" matches
  "load balancer high availability availability domain".
- kb/architecture-center/synonyms.yaml — canonical synonym table
  (load balancer, autonomous database, data guard, …) used by the
  lookup scorer.

KB enrichment:
- tools/archcenter_description_fetcher.py + 121 cached _description.md
  under kb/diagram/assets/archcenter-refs/<slug>/. Removes the runtime
  dependency on docs.oracle.com when authoring specs and feeds the
  pattern-lookup scorer.
- 110+ cached .drawio / .svg / .png references for offline reuse,
  plus the OCI Toolkit v24.2 import (kb/diagram/assets/oci-toolkit-drawio).

Documentation:
- docs/skill/output-formats.md — new "Standard diagram-generation
  procedure (MANDATORY)" + geometry rules + the new validator entry.
- SKILL.md option 2 — references the mandatory procedure.
- README.md — describes the spec validator, archcenter_pattern_lookup
  and description fetcher, and updates the KB-health table.

Tooling that backs the procedure (cumulative across recent sessions):
tools/archcenter_case_runner.py, archcenter_batch_driver.py,
archcenter_zip_downloader.py, drawio_visual_validator.py,
drawio_fidelity_eval.py, harvest_drawio_icon.py, import_oci_library.py,
oci_pptx_diagram_gen.py, oci_pptx_render.py, refresh_pptx_icon_index.py.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
root
2026-04-25 21:15:21 -03:00
parent 2491c38d4b
commit b30a4f0d32
635 changed files with 365317 additions and 1014 deletions

View File

@@ -0,0 +1,280 @@
# Use private DNS in interconnected VCNs and on-premises
- Source: https://docs.oracle.com/en/solutions/private-dns/index.html
- Date: 2024-11
- Type: reference-architecture
- Services: vcn, dns, drg
- Tags: networking
## Summary (catalog)
Private DNS configuration for hybrid and multi-VCN environments. DNS forwarding between on-premises and OCI, conditional forwarding for split-horizon DNS, and cross-VCN name resolution via DRG.
## Architecture (fetched from source)
Architecture
This architecture demonstrates the use of Private DNS in Oracle Cloud
Infrastructure .
A private DNS resolver allows resolution of local, internal resources that have
custom domain names. The domain names do not need to be
subdomains of oraclevcn.com, as with the default internet and
VCN resolver. The private DNS resolves your custom domain names,
and forwards requests for other domains to the internet and VCN
resolver. For example, in the architecture described here, the
private DNS resolver on the spoke VCN resolves a query for a
hostname on the example.com domain. Also, a query originating
from the on-premises network can be forwarded to the private
resolver of the hub.example.com VCN to resolve addresses in the
spoke.example.com domain.
The following diagram illustrates this reference architecture.
Description of the illustration architecture-deploy-private-dns.png
architecture-deploy-private-dns.zip
The architecture has the following components:
- Region
An Oracle Cloud
Infrastructure region is a localized geographic area that
contains one or more data centers, called
availability domains. Regions are independent of
other regions, and vast distances can separate
them (across countries or even
continents).
- Availability domains
Availability domains are standalone, independent data centers within a region. The physical resources in each availability domain are isolated from the resources in the other availability domains, which provides fault tolerance. Availability domains dont share infrastructure such as power or cooling, or the internal availability domain network. So, a failure at one availability domain shouldn't affect the other availability domains in the region.
- Virtual cloud network (VCN) and subnets
A VCN is a customizable,
software-defined network that you set up in an Oracle Cloud
Infrastructure region. Like traditional data center networks,
VCNs give you control over your network
environment. A VCN can have multiple
non-overlapping CIDR blocks that you can change
after you create the VCN. You can segment a VCN
into subnets, which can be scoped to a region or
to an availability domain. Each subnet consists of
a contiguous range of addresses that don't overlap
with the other subnets in the VCN. You can change
the size of a subnet after creation. A subnet can
be public or private.
- Local
peering gateway (LPG)
An LPG enables you to
peer one VCN with another VCN in the same region.
Peering means the VCNs communicate using private
IP addresses, without the traffic traversing the
internet or routing through your on-premises
network.
- Dynamic routing gateway
(DRG)
The DRG
is a virtual router that provides a path for
private network traffic between VCNs in the same
region, between a VCN and a network outside the
region, such as a VCN in another Oracle Cloud
Infrastructure region, an on-premises network, or a network in
another cloud provider.
- Private DNS Resolver
A Private DNS Resolver provides full control of naming and record management in a private DNS zone. The listening, or ingress, interface receives queries from another VCN or from your on-premises DNS server for name resolution. The forwarding, or egress, interface forwards queries to another VCN or to your on-premises DNS server for name resolution.
- DNS
Oracle Cloud
Infrastructure Domain Name System (DNS) service is a highly
scalable, global anycast domain name system (DNS)
network that offers enhanced DNS performance,
resiliency, and scalability, so that end users
connect to customers application as quickly as
possible, from wherever they are.
Recommendations
Your requirements might differ from the architecture described here. Use the following recommendations as a starting point.
- VCN
When you create a VCN, determine the number of CIDR blocks required and the size of each block based on the number of resources that you plan to attach to subnets in the VCN. Use CIDR blocks that are within the standard private IP address space.
Select CIDR blocks that don't overlap with any other network (in Oracle Cloud
Infrastructure , your on-premises data center, or another cloud provider) to which you intend to set up private connections.
After you create a VCN, you can change, add, and remove its CIDR blocks.
When you design the subnets, consider your traffic flow and security requirements. Attach all the resources within a specific tier or role to the same subnet, which can serve as a security boundary.
- DNS resolver
VCNs always have resolvers, but you need to enable DNS on subnets if you want to use the internal resolver and OCI system-generated zone within the subnet.
Considerations
Consider the following points when deploying this reference architecture.
- Performance
There are no performance considerations. The service is offered as a managed platform, requiring no intervention for operation.
- Security
The security is integrated with OCI Identity and Access Management (IAM).
- Availability
There are no availability considerations. The DNS service is a platform service and fully redundant.
- Cost
Private DNS has no cost and is provided with Oracle Cloud
Infrastructure .
Explore More
To learn more about DNS in Oracle Cloud
Infrastructure , see the following resources:
- Overview of the DNS Service
- DNS in Your Virtual Cloud Network
- Tutorial: Configure Private DNS Zones, Views, and Resolvers
- LiveLab: Configuring Private DNS
Change Log
This log lists significant changes:
November 1, 2024
- Fixed a broken link in Explore More.
- Updated diagram.
- Updated content in Architecture.
Title and Copyright Information
Use private DNS in interconnected VCNs and on-premises
F36796-08
November 2024
Copyright © 2020,2024,
Oracle and/or its affiliates.