{"id":26292507,"url":"https://github.com/renatoelho/cidr","last_synced_at":"2026-04-28T19:36:50.818Z","repository":{"id":275916521,"uuid":"927568949","full_name":"Renatoelho/cidr","owner":"Renatoelho","description":"O CIDR (Classless Inter-Domain Routing) e as subnets são fundamentais para a alocação eficiente de endereços IP e segmentação de redes, eliminando as limitações das antigas classes de IP (A, B e C). ","archived":false,"fork":false,"pushed_at":"2025-02-10T07:24:42.000Z","size":763,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-15T01:38:13.771Z","etag":null,"topics":["cidr-range","cidr-subnet","docker","docker-compose","ip","ipv4"],"latest_commit_sha":null,"homepage":"https://cursos.renato.tec.br/Docker_na_Pr%C3%A1tica","language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Renatoelho.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-02-05T07:08:18.000Z","updated_at":"2025-02-10T07:24:46.000Z","dependencies_parsed_at":null,"dependency_job_id":"7b71d0f5-576b-45e2-aaf5-5ea2fc9e0ab9","html_url":"https://github.com/Renatoelho/cidr","commit_stats":null,"previous_names":["renatoelho/cidr"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Renatoelho/cidr","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Renatoelho%2Fcidr","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Renatoelho%2Fcidr/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Renatoelho%2Fcidr/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Renatoelho%2Fcidr/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Renatoelho","download_url":"https://codeload.github.com/Renatoelho/cidr/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Renatoelho%2Fcidr/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32396738,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-28T14:34:11.604Z","status":"ssl_error","status_checked_at":"2026-04-28T14:32:37.009Z","response_time":56,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cidr-range","cidr-subnet","docker","docker-compose","ip","ipv4"],"created_at":"2025-03-15T01:35:58.185Z","updated_at":"2026-04-28T19:36:50.812Z","avatar_url":"https://github.com/Renatoelho.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"# CIDR: Entendendo as classes de IP no Docker\n\nO **CIDR (Classless Inter-Domain Routing)** e as subnets são fundamentais para a alocação eficiente de **endereços IP** e segmentação de redes, eliminando as limitações das antigas classes de IP (A, B e C). No contexto do **Docker**, o CIDR é amplamente utilizado para definir redes virtuais personalizadas, permitindo que contêineres se comuniquem dentro de um mesmo subnet ou sejam isolados em diferentes redes. Ao criar um **docker network** com uma faixa CIDR específica, é possível **otimizar** a distribuição de endereços IP, melhorar a **segurança** e garantir que diferentes serviços dentro do ambiente conteinerizado possam se conectar de forma eficiente. Além disso, ao trabalhar com múltiplas faixas de IP no **Docker Compose**, é essencial compreender o mascaramento de sub-rede e roteamento entre bridges para garantir que aplicações distribuídas operem corretamente sem conflitos de endereçamento.\n\n\u003c!--\nhttps://www.youtube.com/@renato-coelho\n--\u003e\n\n## Apresentação em Vídeo\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://youtu.be/cOIcNH27gkI\" target=\"_blank\"\u003e\u003cimg src=\"imagens/thumbnail/thumbnail-cidr-faixas-ip-docker-github-01.png\" alt=\"Vídeo de apresentação\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n![YouTube Video Views](https://img.shields.io/youtube/views/cOIcNH27gkI) ![YouTube Video Likes](https://img.shields.io/youtube/likes/cOIcNH27gkI)\n\n### Requisitos\n\n+ ![Docker](https://img.shields.io/badge/Docker-27.4.1-E3E3E3)\n+ ![Docker-compose](https://img.shields.io/badge/Docker--compose-1.25.0-E3E3E3)\n+ ![Git](https://img.shields.io/badge/Git-2.25.1%2B-E3E3E3)\n+ ![Ubuntu](https://img.shields.io/badge/Ubuntu-20.04-E3E3E3)\n\n## Conceitos de CIDR e máscara de Sub-rede\n\nO CIDR foi introduzido para permitir uma alocação de endereços mais eficiente, substituindo as antigas classes fixas de IP (A, B e C). Ele utiliza um sufixo `/n` para indicar o tamanho da sub-rede.\n\n### Exemplos de redes CIDR:\n\n- `10.0.0.0/16` → 65.536 endereços (Classe A)\n- `172.16.0.0/12` → 1.048.576 endereços (Classe B)\n- `192.168.1.0/24` → 256 endereços (Classe C)\n\n### Limites das faixas de IPs privados:\n\n| Faixa de IP                    | Máscara             | Endereços totais |\n|--------------------------------|---------------------|------------------|\n| 10.0.0.0 → 10.255.255.255      | /8                  | 16.777.216       |\n| 172.16.0.0 → 172.31.255.255    | /12                 | 1.048.576        |\n| 192.168.0.0 → 192.168.255.255  | /16                 | 65.536           |\n\n\n### Cálculo de Intervalos de IPs\n\nA quantidade de endereços disponíveis em uma sub-rede pode ser calculada como:\n\n**Quantidade de IPs = 2 ^ (32 − Máscara)**\n\n**Exemplos:**\n\n- Para `10.10.1.0/24`: `2 ^ (32 - 24) = 256`\n- Para `10.10.1.0/26`: `2 ^ (32 - 26) = 64 - 3 (endereços reservados) = 61`\n\n📌 **Endereços Reservados:**\n\n- **Endereço de Rede:** O primeiro endereço (`10.10.1.0`)\n- **Gateway da Rede Docker:** O endereço (`10.10.1.1`)\n- **Broadcast:** O último endereço do intervalo (`10.10.1.?`)\n\n## Criando redes customizadas no Docker\n\nO Docker permite definir redes personalizadas com CIDR, facilitando a segmentação de aplicações.\n\n### Exemplo de `docker-compose.yaml`:\n\n```yaml\nservices:\n  app:\n    build:\n      context: .\n      dockerfile: dockerfile\n    image: imagem-modelo:0.0.1\n    ports:\n      - 8000-8004:8000 # O intervalo de portas está ligado à quantidade de réplicas.\n    volumes:\n      - ./src:/src\n    deploy:\n      replicas: 5 # O número de réplicas está ligado à quantidade de IPs válidos.\n    restart: always\n    command: uvicorn app:app --host 0.0.0.0 --port 8000 --reload\n    networks:\n      - rede_cidr\nnetworks:\n  rede_cidr:\n    driver: bridge\n    ipam:\n      config:\n        - subnet: 10.3.0.0/29 # 8 IPs 5 válidos\n```\n\n**Execute o comando para subir as aplicações:**\n\n```bash\ndocker compose -p cidr -f docker-compose.yaml up -d --build\n```\n\n📌 **Explicação:**\n\n- Criamos uma rede `rede_cidr` com a sub-rede `10.3.0.0/29`.\n- O número de **réplicas** da aplicação está diretamente ligado ao número de **IPs disponíveis**.\n- O intervalo de portas (`8000-8004`) segue a quantidade de réplicas configuradas.\n\n## Referências\n\nEndereço de IP, **Wikipedia**. Disponível em: \u003chttps://pt.wikipedia.org/wiki/Endereço_IP\u003e. Acesso em: 04 fev. 2025.\n\nClassless Inter-domain Routing (CIDR), **RFC 4632**. Disponível em: \u003chttps://datatracker.ietf.org/doc/html/rfc4632\u003e. Acesso em: 04 fev. 2025.\n\nNetworking overview, **Docker Docs**. Disponível em: \u003chttps://docs.docker.com/engine/network/\u003e. Acesso em: 04 fev. 2025.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frenatoelho%2Fcidr","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frenatoelho%2Fcidr","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frenatoelho%2Fcidr/lists"}