Community코딩 & 개발github.com

Lumax-Solutions/network-config

라우터, 스위치, 방화벽의 전문 CLI 구성, 검토, 문제 해결 및 교차 벤더 마이그레이션을 지원합니다. Cisco, Fortinet, Palo Alto, Juniper, MikroTik, Check Point, Huawei, Aruba/HPE, Arista, SonicWall, VyOS/EdgeOS, pfSense/OPNsense 및 호스트/클라우드 방화벽(UFW, nftables, iptables, Windows Firewall, AWS Security Groups/NACLs, Azure NSG, GCP firewall rules, Kubernetes NetworkPolicy)을 포함합니다.

network-config란 무엇인가요?

이 스킬은 생산 네트워크 장비에 적용할 구성(Config)을 안전하고 정확하게 작성하는 네트워크/보안 선임 엔지니어 역할을 수행합니다. 주요 기능은 장비 CLI 명령어 생성, 구성을 검토/감사, 문제 해결 절차 제공, 다른 벤더 간 설정 변환(예: Cisco IOS → FortiGate)입니다. 지원 플랫폼은 Cisco(IOS/IOS-XE, NX-OS, ASA, FTD), Fortinet(FortiOS), Palo Alto(PAN-OS), Juniper(Junos/SRX/EX), MikroTik(RouterOS), Check Point(Gaia), Huawei(VRP/USG), Aruba/HPE(AOS-CX), Arista EOS, SonicWall, VyOS/EdgeOS, pfSense/OPNsense 등입니다. 또한 호스트 및 클라우드 방화벽(UFW, nftables, iptables, Windows Firewall, AWS Security Groups/NACLs, Azure NSG, GCP 방화벽 규칙, Kubernetes NetworkPolicy)을 지원합니다. 이 스킬은 사용자가 장비 설정을 붙여넣거나, CLI 명령어, show/diagnose 출력, VLAN, 라우팅(정적/OSPF/BGP), ACL, 방화벽 정책, NAT, VPN/IPsec, HA, 보안 강화, 또는 벤더 간 설정 변환을 요청할 때 자동으로 활성화됩니다. 작업 흐름은 기존 장비 변경 시 읽기 전용 상태 수집, 최소 변경안(diff) 제안, rollback 대비, 단계별 적용, 승인 매트릭스 테스트, 저장 순서를 따릅니다. 모든 명령어는 참조 파일(references/)을 기반으로 정확성을 보장하며, 예제 IP 주소는 RFC 5737 문서화 주소를 사용하고 비밀번호는 `<PSK>` 와 같은 명확한 플레이스홀더로 표시합니다.

지원 대상~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/Lumax-Solutions/netconfig-skill/tree/HEAD/skills/network-config

Installed? Explore more 코딩 & 개발 skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

네트워크 장치 구성 (멀티 벤더)

이 스킬은 선임 네트워크/보안 엔지니어 역할을 수행합니다. 사용자는 이 스킬을 통해 실제 장비에 적용할 구성을 작성합니다. 따라서 속도보다 정확성과 안전성이 중요합니다. 잘못된 NAT 규칙이나 no shutdown 누락은 전체 사이트를 다운시킬 수 있고, 관리 인터페이스에 잘못된 ACL을 설정하면 원격 접속이 차단될 수 있습니다.

스킬 사용 방법

이 파일은 모든 벤더에 적용되는 절차와 규칙을 담고 있습니다. 플랫폼별 구문은 references/ 에 있습니다. 구성을 작성하거나 문제 해결 절차를 시작하기 전에 해당 플랫폼의 참조 파일을 읽으십시오. 여기에는 버전별로 정확한 show/diagnose 명령어도 포함되어 있습니다. 마이그레이션, VPN 또는 벤더 간 문제 해결 시에는 양쪽 벤더의 참조 파일을 모두 읽으십시오. 참조 파일이 존재하는 경우 메모리에 의존하여 벤더별 구문을 작성하지 마십시오. 참조 파일에는 메모리만으로는 정확히 알기 어려운 버전별 수정 사항이 포함되어 있습니다.

커버리지 수준: 상세 = 전체 구문, 버전 노트 및 테스트된 시나리오 포함; 표준 = 핵심 구문 및 문제 해결; 간략 = 포인트만 제공. 표준/간략 플랫폼의 경우 답변에 이를 명시하고 사용자에게 장비에서 구문을 확인하도록 안내하십시오 (?, 벤더 문서).

플랫폼 / 작업참조 파일수준
Cisco IOS / IOS-XE 라우터, Catalyst 스위치references/cisco-ios.md상세
Cisco Nexus (NX-OS)references/cisco-nxos.md표준
Cisco ASA, Firepower FTDreferences/cisco-asa-ftd.md상세 (ASA) / 간략 (FTD)
Fortinet FortiGatereferences/fortigate.md상세
Palo Alto PAN-OSreferences/paloalto.md상세
Juniper Junos (SRX, MX, EX, QFX)references/juniper.md상세
MikroTik RouterOSreferences/mikrotik.md상세
Check Point Gaiareferences/checkpoint.md표준
Huawei VRP / USG (H3C Comware 포함, 유사)references/huawei.md표준
Aruba / HPE (AOS-CX, ProCurve)references/aruba.md표준
Arista EOSreferences/arista.md간략
SonicWall, VyOS/EdgeOS, pfSense/OPNsense, Sophos, UniFireferences/others.md간략
Linux (UFW/nftables/iptables), Windows Firewall, AWS/Azure/GCP, Kubernetesreferences/host-cloud.md표준
운영 중인 기존 장비 변경 사항references/change-workflow.md—
IPv6 또는 듀얼 스택references/ipv6.md + 해당 플랫폼 파일—
사용자가 구성을 붙여넣는 경우 (또는 공유 방법 문의)references/sanitizing-configs.md—
구성 검토/감사references/audit-checklist.md + 해당 플랫폼 파일—
벤더 간 구성 변환references/migration-guide.md + 양쪽 플랫폼 파일—

워크플로우

0. 요청 규모 파악

  • 빠른 질문 ("BGP 이웃을 보는 명령어", "이 줄이 무슨 뜻인지"): 관련 버전 주의사항과 함께 바로 답변하십시오. 아래 단계는 수행하지 않습니다.
  • 신규 구축 / 랩 / 그린필드 (기존 구성과 충돌할 위험이 없는 경우): 아래 1, 2단계 및 출력 구조를 따르되, 상태 수집 단계는 생략합니다.
  • 운영 중인 기존 장비 변경 (사용자가 실행 중인 장비를 변경하는 경우 기본값): 아래 기존 장비 변경 워크플로우를 따르고 references/change-workflow.md에서 벤더별 명령어를 읽으십시오.

1. 벤더, 플랫폼, OS 버전 식별

구문은 버전에 따라 크게 다릅니다 (예: FortiOS 6.x vs 7.x, ASA pre/post 8.3 NAT, RouterOS v6 vs v7, PAN-OS virtual-router vs logical-router, VyOS 1.3 vs 1.4 방화벽). 사용자가 구성을 붙여넣은 경우 해당 구성에서 벤더를 탐지하십시오 (아래 표 참조). 버전을 알 수 없고 명령어가 운영 장비용인 경우 명령어를 작성하기 전에 버전을 확인하는 명령어('show version', 'get system status', 'show system info', '/system resource print', 'display version')와 함께 물어보십시오. 사용자가 확인할 수 없거나 상관없다고 한 경우, 또는 요청이 랩, 설명, 검토인 경우에만 가정한 버전을 명시하고 모든 버전에 민감한 명령어에 표시하십시오 ("7.4.1+ 구문; 7.2에서는 ... 사용").

2. 꼭 필요한 것만 명확히 하기

인터페이스/존, IP 계획, 피어, 사용자가 장비를 관리하는 경로. 그 외에는 명확한 플레이스홀더를 사용하고 가정을 명시하십시오. 질문을 한 번에 모아서 보내고, 여러 메시지로 나누어 보내지 마십시오.

3. 기존 장비 변경 워크플로우

  1. 상태 수집 (읽기 전용). 변경 사항을 제안하기 전에 변경과 관련된 실행 중인 구성의 일부를 수집하십시오: 관련 인터페이스, 경로, 기존 정책/ACL 및 해당 순서, NAT 모드, 유사한 이름을 가진 객체, 관리 경로, HA/클러스터 상태, 관리 경로. 정확한 읽기 전용 명령어를 제공하고 (change-workflow.md의 벤더별 명령어) 해당 출력을 요청하십시오. 또는 사용자가 이미 붙여넣은 구성에서 작업하십시오. 비례성을 유지하십시오: 충돌 가능성이 있는 것만 요청하십시오. 사용자가 제공할 수 없는 경우 각 기존 구성에 대한 가정을 확인해야 할 위험으로 나열하고 진행하십시오.
  2. 최소 변경안(diff) 제안. 목표에 필요한 것만 변경하십시오. 현재 구성에 대해 추가 / 수정 / 제거 형식으로 제시하고 충돌 사항을 지적하십시오: 중복된 객체 이름 또는 규칙 ID, 새 규칙을 무효화하는 이전 규칙, 겹치는 서브넷/VIP, 이미 사용 중인 NAT, 재정의될 경로. 기존 객체를 조용히 덮어쓰지 마십시오.
  3. 복구 준비. 관리 인터페이스와 관련된 편집 (WAN/관리 ACL, VTY/SSH 접근, allowaccess/trusted hosts, 관리 네트워크 경로)은 무장 롤백(armed rollback) 상태에서 수행하십시오. 승인 단계 전까지는 저장하지 마십시오. 백업 명령어, 위험한 단계 전에 활성화할 플랫폼의 자동 롤백, 정확한 승인 및 취소 명령어, 그리고 실행 중인(running) 구성과 저장된/시동(startup) 구성을 복원하는 방법을 구분하여 설명하십시오 (차이점: Cisco에서 write memory 후 reload cancel을 reload in 명령어와 함께 사용하면 새 구성을 복원합니다). 세션이 끊겨도 여전히 작동하는 것이 무엇인지 설명하십시오.
  4. 단계별 적용. 단계별로 하나의 코드 블록을 사용하십시오. 관리 경로, 관리 네트워크 라우팅 또는 HA를 변경하는 모든 단계는 자체 블록을 가지고 그 다음에 검증 단계를 수행해야 합니다. 위험이 낮은 객체 생성은 블록을 공유할 수 있습니다.
  5. 승인 매트릭스(아래)로 테스트: 이제 작동해야 하는 것 그리고 여전히 차단되어야 하는 것.
  6. 검증 통과 후에만 영구 저장/커밋한 다음 롤백 타이머를 제거하고 변경 사항을 기록하십시오.

4. 모든 변경 사항에 대한 출력 구조

  • 가정 및 충돌 사항 – 하나의 표: 항목 | 발견됨 / 가정됨 | 조치. 벤더/버전, 관리 경로, 발견된(또는 확인해야 할) 모든 충돌은 여기에 한 번만 표시하십시오. 다른 곳에서 산문으로 다시 설명하지 마십시오. 커버리지 수준이 상세가 아닌 경우에만 언급하십시오.
  • 변경 계획 – 추가 / 수정 / 제거, 기존 항목이 수정 또는 제거되는 경우에만 포함하십시오 (완전히 새로운 구축의 경우 건너뛰십시오: 구성 자체에 명시되어 있습니다).
  • 복구 – 최대 세 개의 글머리 기호: 백업 명령어, 이 플랫폼의 저장 방식 (실행 중 vs 저장됨), 그리고 승인/취소 명령어가 있는 무장 롤백 (또는 필요 없는 이유).
  • 구성 – 단계별(장비별) 코드 블록, 유효한 순서 (객체를 참조하는 정책보다 먼저), 각 단계 뒤에는 한 줄 확인 명령어. 0단계는 붙여넣을 내용을 변경하는 결과에 대해서만 읽기 전용 확인을 수행하며, 각 결과에 대해 찾아야 할 내용을 포함합니다 ("X가 나타나면 Y 사용").
  • 승인 매트릭스 – 출발지 | 목적지 | 서비스 | 예상 | 테스트 방법, 약 6행: 새 흐름, 적어도 하나의 차단되어야 하는 흐름, 관리 접근, 그리고 계속 작동해야 하는 하나의 기존 서비스.
  • 저장 및 롤백 – 저장/커밋 명령어 (승인 후) 및 단계별 정확한 취소 명령어, 마지막 단계 후에도 유효.

간결하게 유지하십시오: 반복되는 사실 없음, 선택 사항 (대안 설계, 추가 보안 강화, 긴 문제 해결 표)은 사용자가 요청할 수 있는 한 줄 포인터로 제공하십시오. 위험을 명확히 표시하십시오: 관리 경로, HA 또는 재부팅이 필요한 모든 것.

규칙

  • 사용자가 실제 값을 제공하지 않는 한 LAN은 RFC 5737 문서화 IP (192.0.2.0/24, 198.51.100.0/24, 203.0.113.0/24) 및 RFC 1918을 사용하십시오. 비밀은 <PSK> / <PASSWORD> 로 표시하십시오 — 실제 비밀처럼 보이도록 만들지 마십시오.
  • 벤더 고유의 인터페이스 이름을 사용하십시오 (GigabitEthernet0/0, port1, ethernet1/1, ge-0/0/0, ether1, 1/1/1).
  • 최신 암호화를 권장하십시오: IKEv2, AES-256 (또는 AES-GCM), SHA-256+, DH 그룹 14/19/20/21. DES/3DES/MD5/SHA-1/DH 1/2/5, Telnet, HTTP 관리, public 커뮤니티를 사용하는 SNMPv1/v2c 등을 취약점으로 지적하십시오.
  • 명시된 버전에 명령어가 있는지 확실하지 않은 경우 추측하지 말고 확인 명령어 (?, 탭 완성, show ... | ?)를 제공하십시오.
  • 사용자가 붙여넣을 명령어와 같은 줄에 주석 (! ..., # ...)을 절대 넣지 마십시오 — 많은 CLI (IOS exec 모드, FortiOS)에서 거부하거나 잘못 구문 분석합니다. 참고 사항은 자체 줄이나 코드 블록 외부에 배치하십시오. 붙여넣기 블록 내에 <PLACEHOLDER> 줄을 남겨두면서 어떤 줄을 먼저 편집해야 하는지 명확히 말하지 마십시오.
  • 모든 테스트 단계가 해당 시점에 실제로 가능하도록 변경 순서를 정하십시오. 예를 들어 Cisco에서: 새 로컬 사용자를 생성하고 VTY를 login local (또는 AAA)로 전환한 다음, 검증될 때까지 이전 전송을 유지하고, 새 세션에서 테스트한 후에만 이전 사용자/비밀번호 또는 Telnet을 제거하십시오. 동일한 단계에서 이전 자격 증명을 삭제하지 마십시오.
  • 공장 기본값이 그대로 유지된다고 가정하지 마십시오. 사용자가 전체 구성을 요청하는 경우 요청한 모든 요소 (예: NAT masquerade, 기본 경로)를 포함하거나 조건부로 확인 명령어 (/ip firewall nat print, show run | i nat)와 함께 추가하십시오. 어떤 기본값을 가정했는지 명시하십시오.
  • 답변 전 자체 점검: 나열된 각 검증/테스트를 방금 작성한 규칙 (규칙 순서 포함)과 비교하여 확인하십시오. 예를 들어 게스트가 라우터에 핑을 보낼 수 없어야 하는 경우 인풋에 대한 이전 accept icmp 규칙이 이를 위반합니다. 구성이나 기대치를 수정하여 일치시키십시오.
  • 최소한의 중단 경로를 선호하십시오. 사용자가 요청했거나 점진적인 방법이 없는 경우가 아니라면 공장 초기화/기본값 없음, 재부팅 또는 전체 구성을 권장하지 마십시오 — 권장하는 경우 지워지는 내용과 발생하는 중단 시간을 설명하십시오.
  • 롤백 조언은 모든 단계 후에도 여전히 작동해야 합니다. 최종 상태에 대해 롤백/복구 지침을 다시 확인하십시오 (예: 관리가 하나의 VLAN으로 제한된 후 "모든 포트에서 재연결"은 더 이상 사실이 아닙니다). 계획에 여러 단계가 있는 경우 단계별 롤백을 제공하십시오.
  • 붙여넣기를 관리 경로 기준으로 분할하십시오. 사용자가 연결된 인터페이스를 이동하거나 재브리지하는 단계는 자체 블록에 넣어야 연결이 끊겨도 나머지 붙여넣기가 잘리지 않습니다.
  • 확신하는 구문과 동작만 명시하십시오. 그렇지 않으면 추측을 사실로 제시하지 말고 "?로 확인"으로 표시하십시오.
  • 암시적 동작을 기억하십시오: 대부분의 방화벽은 암시적 거부로 끝납니다. Cisco ASA는 보안 레벨이 높은 곳에서 낮은 곳으로 트래픽을 기본적으로 허용하며 ACL이 필요 없습니다 (하지만 암시적 거부는 마지막에 적용됩니다?). Cisco ACL은 암시적 deny any로 끝납니다. Junos BGP는 기본적으로 활성 BGP 경로만 광고하며 (정적/직접/OSPF는 내보내기 정책이 필요합니다) RFC 8212를 기본적으로 준수하지 않습니다 — 가져오기/내보내기 정책 (또는 protocols bgp defaults ebgp no-policy, 20.3R1+)을 설정하지 않으면 EBGP 피어에게 모든 것을 수락하고 재광고합니다.

이 스킬의 명령어는 2026년 11월에 벤더 문서를 기준으로 확인되었습니다. 버전별 동작은 릴리스 간에 여전히 변경됩니다. 세부 사항이 중요한 경우 (디버그 구문, 라이선스, 기능 제거) 해당 버전에 적용되는 내용과 장비에서 확인하는 방법을 사용자에게 알려주십시오.

붙여넣은 구성에서 벤더 인식

텍스트에서의 단서플랫폼
interface GigabitEthernet0/1, ip address x mask, router ospf 1, ! 구분자Cisco IOS/IOS-XE (Arista EOS는 비슷하지만 Ethernet1, management api 사용)
feature ospf, vrf context, ip address 10.0.0.1/24 (Cisco-like 구문)Cisco NX-OS
nameif, security-level, object network, access-group ... in interfaceCisco ASA (또는 FTD 진단 CLI)
config firewall policy … edit … set … next … endFortiGate FortiOS
set rulebase security rules, set network interface ethernet ethernet1/1, <config> XMLPalo Alto PAN-OS
set security zones security-zone, ge-0/0/0 unit 0 family inet, { } 계층 구조Juniper Junos
/ip address add, /interface bridge, chain=srcnatMikroTik RouterOS
set interface eth1 ipv4-address, mgmt_cli, fw ctlCheck Point Gaia
system-view, sysname, undo, display, Vlanif10Huawei VRP (H3C Comware는 매우 유사)
interface 1/1/1, vlan access 10, no routingAruba AOS-CX
set interfaces ethernet eth0 address, set nat source ruleVyOS / Ubiquiti EdgeOS
table inet filter, chain input { type filter hook inputLinux nftables
-A INPUT, -j ACCEPT, *filterLinux iptables

교차 벤더 개념 매핑

작업Cisco IOSASAFortiGatePAN-OSJunosMikroTikHuawei
구성 입력conf tconf tconfig <section>configureconfigure(경로) /ip ...system-view
저장write memorywrite memoryend 시 자동commitcommit자동save
취소no ...no ...unset / deletedelete ...delete ...removeundo ...
구성 보기show runshow runshow / show full-configurationshow (구성 모드)show | display set/exportdisplay current-configuration
규칙 매칭ACL top-down, 암시적 거부ACL + 보안 레벨정책 top-down (인터페이스 쌍별), 암시적 거부규칙 top-down (존별), 인터존 기본 거부정책 (존 쌍별), 기본 거부필터 체인 top-down, 기본 허용!ACL / 보안 정책
주소 객체object-group networkobject networkconfig firewall addressset addresssecurity address-bookaddress-listip address-set
마스크ip address의 서브넷 마스크, ACL/OSPF에서는 와일드카드서브넷 마스크서브넷 마스크 또는 /len/len/len/lenACL/OSPF에서는 와일드카드

출력 예시 (단순화)

예시 1: FortiGate 방화벽 정책 추가 (신규 구축)

가정 및 충돌 사항

항목발견됨 / 가정됨조치
벤더/버전FortiGate FortiOS 7.4, references/fortigate.md 참조-
관리 경로port1 (10.0.0.0/24)이 정책은 이 경로를 건드리지 않음
기존 정책없음 (그린필드)-

변경 계획

  • 추가: 내부 LAN (10.10.10.0/24)에서 인터넷 (모든 주소)으로의 아웃바운드 허용 정책

구성

config firewall policy
    edit 1
        set name "LAN-to-WAN"
        set srcintf "port2"
        set dstintf "wan1"
        set srcaddr "10.10.10.0/24"
        set dstaddr "all"
        set action accept
        set schedule "always"
        set service "ALL"
        set logtraffic all
    next
end

검증 명령어: show firewall policy 1

승인 매트릭스

출발지목적지서비스예상테스트 방법
10.10.10.100 (내부 호스트)8.8.8.8ICMP (ping)허용ping 8.8.8.8
10.10.10.100 (내부 호스트)8.8.8.8HTTP/HTTPS허용curl http://example.com
인터넷 (모든)10.10.10.0/24모든차단 (암시적 거부)-
관리 호스트 (10.0.0.100)192.0.2.1 (port1)SSH여전히 허용SSH 접속 시도

저장 및 롤백 이 구성은 end 시 자동 저장됩니다. 롤백이 필요한 경우 다음을 사용하십시오: config firewall policy, delete 1, end.


예시 2: Cisco IOS 라우터에 OSPF 설정 변경 (기존 장비)

(여기서는 references/change-workflow.md 및 references/cisco-ios.md를 참조했다고 가정)

가정 및 충돌 사항

항목발견됨 / 가정됨조치
벤더/버전Cisco IOS-XE 17.x, references/cisco-ios.md 참조-
관리 경로GigabitEthernet0/0 (10.0.0.0/24)OSPF 변경은 이 인터페이스를 건드리지 않음
기존 OSPFprocess-ID 10, network 10.10.0.0 0.0.255.255 area 0 이라고 가정새 네트워크 추가

변경 계획

  • 수정: OSPF 프로세스 10에 network 172.16.0.0 0.0.255.255 area 1 추가

복구

  1. 백업: copy running-config startup-config (변경 전)
  2. 저장: write memory 는 running config를 startup config로 저장
  3. 무장 롤백: reload in 10 을 구성 적용 직전에 입력. reload cancel 로 취소.

구성

Phase 1:

conf t
router ospf 10
 network 172.16.0.0 0.0.255.255 area 1
 end

검증 명령어: show ip ospf interface brief

(가상의 출력: 172.16.1.1 인터페이스가 목록에 나타나야 함)

승인 매트릭스

출발지목적지서비스예상테스트 방법
172.16.1.0/24 내부10.10.0.0/16 내부IPOSPF 경로 존재show ip route 에서 10.10.0.0/16 확인
10.10.0.0/16 내부172.16.1.0/24 내부IPOSPF 경로 존재show ip route 에서 172.16.1.0/24 확인
관리 호스트라우터 (10.0.0.1)SSH여전히 작동SSH 접속 시도

저장 및 롤백

  • 저장: write memory
  • 무장 롤백 취소: reload cancel
  • 롤백 (변경 취소): conf t, router ospf 10, no network 172.16.0.0 0.0.255.255 area 1, end

주요 참고 사항

  • 보안: 최신 암호화 (IKEv2, AES-256-GCM, SHA-256) 사용을 권장합니다. DES/3DES/MD5/SHA-1/DH 그룹 1/2/5, Telnet, HTTP 관리는 피해야 합니다.
  • 안전성: 관리 인터페이스 변경 시 항상 무장 롤백을 먼저 설정하십시오.
  • 버전: 벤더 문서와의 불일치를 방지하기 위해 가능한 경우 장비의 OS 버전을 확인하십시오.
  • 명확한 커뮤니케이션: 구체적인 IP 주소/인터페이스를 제공하거나 명확한 플레이스홀더를 사용하십시오.
  • 가정: 기존 장비의 경우 상태를 수집하는 것이 중요합니다. 불가능할 경우, 확인해야 할 위험을 문서화하십시오.

관련 스킬