REGENT 제작: AI를 통해 OpenWrt 라우터를 설정하는 MCP 서버
요약
REGENT은 MCP(Model Context Protocol)를 활용하여 OpenWrt 라우터를 자연어로 설정하고 진단할 수 있는 AI 서버입니다. 사용자의 의도를 분석해 복잡한 명령어를 생성하며, 안전한 변경을 위해 스냅샷 및 지연 복구 기능을 제공합니다.
핵심 포인트
- MCP 서버를 통해 AI가 라우터에 제어된 루트 권한을 가짐
- 자연어 명령을 uci, ubus, opkg 명령어로 자동 변환
- 단순 설정 나열이 아닌 토폴로지 분석을 통한 오류 진단 기능
- 스냅샷 및 지연 복구 기능을 통한 안전한 네트워크 설정 변경
얼마 전 제가 사용하던 OpenWrt 라우터가 갑자기 트래픽을 전달하지 못하게 되었는데, 웹 인터페이스 상의 모든 설정은 완벽하게 정상으로 보였습니다. 원인을 찾는 데 오후 내내 시간이 걸렸습니다. 각각 하나만으로도 트래픽을 중단시키기에 충분한 네 가지의 개별적인 설정 오류가 있었는데, 이 중 어느 것도 설정을 진행했던 페이지에서는 확인할 수 없었습니다.
이 경험이 REGENT를 만드는 계기가 되었습니다. REGENT는 AI가 라우터 전체를 한 번에 읽고, 실제로 무엇이 고장 났는지 알려주며, 사용자가 직접 명령줄 (Command Line)을 만질 필요 없이 일상적인 언어로 문제를 해결할 수 있게 해주는 서버입니다.
이것은 무엇인가요?
REGENT는 AI에게 OpenWrt 라우터에 대한 제어된 루트 (Root) 권한을 부여하는 **MCP 서버 (MCP server)**입니다. 사용자가 네트워크가 어떻게 동작해야 하는지를 일반적인 언어로 설명하면, REGENT는 이를 위해 어떤 uci 및 ubus 명령어가 어떤 순서로 필요한지, 그리고 변경 사항이 적용되기 위해 어떤 서비스를 재시작해야 하는지를 계산해냅니다. REGENT는 네트워크, Wi-Fi, 방화벽, 패키지 및 서비스를 아우르는 일반적인 OpenWrt 설정을 처리하며, 특히 라우터가 상위 Wi-Fi 네트워크에 접속하여 상위 네트워크가 제공할 수 없는 VPN 및 광고 차단 기능을 포함한 연결을 이후로 공유하는 라우티드 클라이언트 (Routed client) 모드 시나리오를 깊이 있게 다룹니다.
어떻게 작동하나요?
REGENT는 stdin 및 stdout을 통해 Model Context Protocol (MCP)을 사용하여 통신하므로, AI 클라이언트가 이를 직접 실행하며 네트워크 포트가 전혀 열리지 않습니다. REGENT는 라우터와의 단일 재사용 SSH 세션을 유지하며, 자연어 의도를 순서대로 정렬된 uci, ubus 및 opkg 호출로 변환합니다. 가공되지 않은 설정을 그대로 쏟아내는 대신, REGENT의 토폴로지 (Topology) 도구는 한 번의 패스로 라우터 전체를 읽어 들여, 라우터가 정상적으로 보임에도 불구하고 아무것도 작동하지 않게 만드는 구체적인 설정 오류들을 찾아냅니다.
모든 변경 사항은 두 가지 측면에서 보호됩니다. 3단계 액세스 게이트 (access gate)를 통해 읽기 권한은 항상 사용 가능하도록 유지하는 한편, 쓰기 (writes) 작업에는 명시적인 게이트가 필요하며, 파괴적인 작업 (destructive actions)에는 각 호출마다 별도의 확인 절차가 필요합니다. 또한, 위험한 변경을 수행하기 전에 구성 (configuration)을 스냅샷 (snapshot)으로 찍고 라우터 자체에 지연 복구 (deferred restore) 기능을 활성화합니다. 이후 연결성이 확인되면 복구는 취소되며, 연결이 확인되지 않으면 라우터가 스스로 이전 상태로 되돌아갑니다.
진단 예시:
UPLINK wwan via phy1-sta0, 192.168.1.4/24, gateway 192.168.1.1
SERVES lan 192.168.1.1/24 DHCP OFF
AP HomeNet 2.4 GHz → wwan2
...
주요 기능 (Key Features):
-
자연어 구성 (Natural-Language Configuration)
네트워크가 수행해야 할 작업을 말하면, REGENT이 정확한uci및ubus명령어, 명령어 순서, 그리고 각 명령에 필요한 서비스 재시작 (service reload) 과정을 도출합니다. -
단순 나열이 아닌 진단 (Diagnosis, Not a Dump)
토폴로지 (topology) 도구는 단 한 번의 호출로 전체 구성을 읽어 들여, 사용자가 직접 해석해야 하는 단순 목록 대신 무엇이 잘못되었고 왜 트래픽이 중단되는지를 보고합니다. -
전체 레시피 (Whole Recipes)
"업링크를 클라이언트와 공유하라"와 같은 복합적인 의도 (intents)는 여러 설정 파일에 걸쳐 하나의 순서 있는 변경 사항으로 실행되므로, AI가 직접 단계를 재조합할 필요가 없습니다. -
워치독 롤백 (Watchdog Rollback)
위험한 변경을 수행하기 전 라우터의 스냅샷을 찍고 장치 자체에 복구 기능을 활성화하므로, 사용자의 연결을 끊어버리는 변경 사항은 자동으로 취소됩니다. -
3단계 액세스 권한 (Three Levels of Access)
읽기는 항상 작동하며, 변경을 위해서는 쓰기 게이트 (write gate)를 열어야 하고, 재부팅 (rebooting), 플래싱 (flashing) 또는 리셋 (resetting)은 게이트 개방과 더불어 각 호출마다 별도의 확인이 필요합니다. -
비밀 정보 유지 (Secrets Stay In)
Wi-Fi 비밀번호, VPN 키, 구독 링크 등은 모델, 명령 로그 (command log) 또는 시스템 로그 (system log)에 도달하기 전에 모두 제거됩니다.
로드맵 (Roadmap):
-
apk 지원 (apk Support) —
opkg가apk로 변경된 OpenWrt 24.10 및 최신 버전에서의 패키지 처리 -
더 넓은 기기 범위 (Wider Device Coverage) — 현재까지 확인된 단일 TP-Link Archer C59를 넘어선 검증
-
게스트 네트워크 (Guest Network) — 하나의 의도(intent) 내에서 실행되는 별도의 격리된 Wi-Fi
저장소 링크 (Repository Link)
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기