카테고리 없음

Cracking BGP: Build Your Own Internet Routing Lab with GNS3 and Docker

BOOKSEAL 2025. 5. 9. 17:55

 

 
Table of Contents

  • BGP? Unveiling the Secrets in its Name
  • Why We Should Explore BGP
  • BGP: So, What Exactly Does It Do?
  • Getting Hands-On: Preparing Your BGP Environment
    • Part 1: Building Your Own Network Lab with GNS3 and Docker
      • Prerequisites: Tools for the Experiment
      • Crafting Your Own Docker Images: Creating Experimental Mini-PCs
        • Image 1: The Lightweight Worker (Simple Host)
        • Image 2: The Routing Specialist (Router)
      • Utilizing Docker Images in GNS3: Assembling Your Virtual Network
      • First Steps: Basic Network Configuration and Verification
      • Wrapping Up Part 1: Organizing Your Deliverables
  • Looking Forward to the Next Exploration
    BGP? Unveiling the Secrets in its Name
    BGP, which we'll explore together, stands for Border Gateway Protocol.
    우리가 함께 탐험할 BGP는 Border Gateway Protocol의 약자야.
  1. The name itself holds clues to BGP's role!

이름 자체에 BGP 역할에 대한 단서가 숨어있지!
Let's break it down to get a bit more familiar with BGP.
BGP랑 좀 더 친해지기 위해 하나씩 살펴보자.
Border - A Gatekeeper Between Which Entities?
The internet can be seen as a vast network of countless interconnected networks.
인터넷은 수많은 네트워크들이 서로 연결된 거대한 망으로 볼 수 있어.
Large, independently operated network units are called AS (Autonomous Systems).
독립적으로 운영되는 큰 네트워크 단위를 AS (자율 시스템)라고 불러.
For example, major telecommunication companies (like AT&T, Verizon) or global corporations (Google, Amazon) have their own ASes.
예를 들어, 대형 통신사나 글로벌 기업들은 자신들만의 AS를 가지고 있지.
The 'Border' in BGP refers to the boundary between these ASes.
BGP에서 '경계'는 바로 이 AS들 사이의 경계를 의미해.
BGP operates at these borders, playing a crucial role in determining how different ASes exchange information.
BGP는 이 경계에서 활동하면서 서로 다른 AS들이 정보를 교환하는 방식을 결정하는 중요한 역할을 해.
Gateway - What Gate Does It Guard?
A 'Gateway' literally means a passage ('Way') that acts as a 'Gate'.
게이트웨이는 말 그대로 '문(Gate)' 역할을 하는 '통로(Way)'라는 뜻이야.
In networking, it refers to a device or software that connects different networks.
네트워크에서는 서로 다른 네트워크를 연결해 주는 장비나 소프트웨어를 의미하지.
The 'Gateway' in BGP can be thought of as the routers located at the border of an AS.
BGP에서의 '게이트웨이'는 AS 경계에 위치한 라우터라고 생각하면 돼.
These routers are like doors to other ASes, and data going out or coming in from the outside passes through these gateways.
이 라우터들은 다른 AS로 향하는 문과 같아서, 외부로 나가거나 외부에서 들어오는 데이터가 이 게이트웨이를 통과하게 돼.
BGP helps these gateway routers decide, "Which path is the best to take?"
BGP는 이 게이트웨이 라우터들이 "어떤 길이 최선일까?"를 결정하도록 도와줘.
Protocol - What Promises Does It Make?
A 'Protocol' is a set of 'rules' or 'agreements' predefined for computers or network devices to communicate with each other.
프로토콜은 컴퓨터나 네트워크 장비들이 서로 통신하기 위해 미리 정해 놓은 '규칙' 또는 '약속'이야.
Just as we need a common language to converse with someone from a different country, network devices also need common agreements to exchange data.
우리가 다른 나라 사람과 대화할 때 공통 언어가 필요한 것처럼, 네트워크 장비들도 데이터를 주고받기 위한 공통된 약속이 필요해.
BGP is a protocol that defines the rules for gateway routers at AS borders to exchange routing information (path information).
BGP는 AS 경계의 게이트웨이 라우터들이 서로 라우팅 정보(경로 정보)를 주고받기 위한 규칙을 정의한 프로토콜이야.
It's an agreement on how to exchange information like, "To reach our AS, you must take this path!" or "To go to that AS, you need to go through that door!"
이건 "우리 AS로 오려면 이 길로 와야 해!" 또는 "저 AS로 가려면 저 문으로 가야 해!" 같은 정보를 교환하는 방법에 대한 약속이지.
In essence, BGP is a "Protocol (agreement) for routers acting as Gateways (portals) at the Borders (boundaries) of large independent networks (ASes) to exchange path information."
본질적으로 BGP는 "큰 독립 네트워크(AS)의 경계(Border)에서 관문(Gateway) 역할을 하는 라우터들이 경로 정보를 교환하기 위한 약속(Protocol)"이야.
Thanks to this agreement, countless networks worldwide are connected, allowing us to use the internet freely.
이 약속 덕분에 전 세계 수많은 네트워크가 연결되어 우리가 인터넷을 자유롭게 사용할 수 있는 거지.
Why We Should Explore BGP
"BGP... I kind of get the name now, but why do I need to learn about it?"
"BGP... 이름은 이제 좀 알겠는데, 이걸 왜 배워야 하지?"
That's a great question!
좋은 질문이야!
Learning BGP means more than just adding another piece of technical knowledge.
BGP를 배운다는 건 단순히 기술 지식 하나를 더하는 것 이상을 의미해.

  • Understanding How the Internet Works: BGP is a core technology that underpins today's internet.
  • BGP는 오늘날 인터넷을 뒷받침하는 핵심 기술이야.Learning BGP is like looking inside the engine of the giant machine called the internet!
  • BGP를 배우는 건 인터넷이라는 거대한 기계의 엔진을 들여다보는 것과 같아!
  • To understand how the websites we visit daily and the apps we use reach us, and to comprehend that vast flow of information, you need to know BGP.
  • 우리가 매일 방문하는 웹사이트와 사용하는 앱이 어떻게 우리에게 도달하는지, 그리고 그 방대한 정보의 흐름을 이해하려면 BGP를 알아야 해.
  • Career Advancement as a Network Professional: If you want to work as a network engineer, especially in large-scale networks, Internet Service Providers (ISPs), or cloud service companies, BGP knowledge is essential, not optional.
  • 네트워크 엔지니어로 일하고 싶다면, 특히 대규모 네트워크, 인터넷 서비스 제공자(ISP) 또는 클라우드 서비스 회사에서 일하고 싶다면 BGP 지식은 선택이 아니라 필수야.
  • Understanding and being able to configure BGP will significantly elevate your professional expertise.
  • BGP를 이해하고 설정할 수 있다는 것은 너의 전문성을 상당히 높여줄 거야.
  • Enhanced Problem-Solving Skills: When network issues arise, like "Suddenly, I can't access a specific overseas website!", knowing BGP can be a great help in diagnosing the cause and resolving the problem.
    네트워크 문제가 발생했을 때, 예를 들어 "갑자기 특정 해외 웹사이트에 접속이 안 돼!" 같은 경우, BGP를 알면 원인을 진단하고 문제를 해결하는 데 큰 도움이 될 수 있어.
  • It's like a doctor diagnosing an illness based on a patient's symptoms.
    마치 의사가 환자의 증상을 보고 병을 진단하는 것과 같지.
  • Foundation for Future Technologies: BGP is continuously evolving.
    BGP는 계속 진화하고 있어.BGP provides a stepping stone to a broader world of technology.
    BGP는 더 넓은 기술 세계로 나아가는 디딤돌을 제공해.
  • Through Multiprotocol BGP (MP-BGP), it serves as the foundation for various advanced technologies such as VPNs, IPv6, and EVPN (Ethernet VPN), which is crucial in data center networks.
    MP-BGP(Multiprotocol BGP)를 통해 VPN, IPv6 및 데이터센터 네트워크에서 중요한 EVPN(Ethernet VPN)과 같은 다양한 고급 기술의 기반이 돼.

BGP: So, What Exactly Does It Do?
BGP's core mission is to determine the optimal path between ASes (Autonomous Systems) and share this information with other ASes.
BGP의 핵심 임무는 AS(자율 시스템) 간의 최적 경로를 결정하고 이 정보를 다른 AS와 공유하는 거야.

  • Inter-AS Navigator: The internet is made up of connections between numerous ASes, and each AS has a unique number (ASN).
    인터넷은 수많은 AS 간의 연결로 이루어져 있고, 각 AS는 고유한 번호(ASN)를 가지고 있어.
  • BGP advertises and learns path information about "which ASes to traverse to reach a certain network (IP address range)."
    BGP는 "특정 네트워크(IP 주소 범위)에 도달하기 위해 어떤 AS를 거쳐야 하는지"에 대한 경로 정보를 광고하고 학습해.
  • Policy Decisions Based on Path Attributes: BGP doesn't just find the shortest path.
    BGP는 단순히 가장 짧은 경로만 찾는 게 아니야.Each AS can select paths that best suit its policies (e.g., avoiding transit through a specific AS, cost-saving) based on these attributes.
    각 AS는 이러한 속성을 기반으로 자체 정책(예: 특정 AS 경유 회피, 비용 절감)에 가장 적합한 경로를 선택할 수 있어.
  • This makes BGP a very flexible and powerful routing protocol.
    이것이 BGP를 매우 유연하고 강력한 라우팅 프로토콜로 만드는 이유야.
  • It uses various 'path attributes' such as AS_PATH (a list of ASes traversed), Next Hop (the address of the next router to go to), Local Preference (preferred path within an AS), and MED (Multi-Exit Discriminator, informs other ASes which path into one's own AS is preferred).
    AS_PATH(경유한 AS 목록), Next Hop(다음으로 가야 할 라우터 주소), Local Preference(AS 내 선호 경로), MED(자신의 AS로 들어오는 경로 중 어떤 것을 선호하는지 다른 AS에 알림)와 같은 다양한 '경로 속성'을 사용해.
  • Loop Prevention: The AS_PATH information includes a list of ASes it has already passed through.
    AS_PATH 정보에는 이미 통과한 AS 목록이 포함되어 있어.This prevents routing information from endlessly circulating in the network (looping).
    이렇게 하면 라우팅 정보가 네트워크에서 끝없이 순환하는 것(루핑)을 방지할 수 있어.
  • If an AS sees its own ASN already in the path it's about to advertise, it will not accept that path.
    AS가 광고하려는 경로에 이미 자신의 ASN이 포함되어 있는 것을 보면 해당 경로를 수락하지 않아.
  • Reliable Information Exchange: BGP exchanges critical routing information using TCP (port 179).
    BGP는 TCP(포트 179)를 사용하여 중요한 라우팅 정보를 교환해.
  • TCP ensures reliable data transmission, helping BGP messages to be delivered securely.
    TCP는 안정적인 데이터 전송을 보장하여 BGP 메시지가 안전하게 전달되도록 도와줘.

Simply put, BGP is like the central control tower managing the traffic system of the vast city called the internet.
간단히 말해, BGP는 인터넷이라는 거대한 도시의 교통 시스템을 관리하는 중앙 관제탑과 같아.
It determines which roads are congested, which new roads have opened, and which route is the most efficient, informing all drivers (data packets).
어떤 도로가 혼잡한지, 어떤 새로운 도로가 개통되었는지, 어떤 경로가 가장 효율적인지 결정하여 모든 운전자(데이터 패킷)에게 알려주지.
Getting Hands-On: Preparing Your BGP Environment
Alright, now that we've had a good taste of theory, it's time to get our hands dirty and experience BGP directly!
자, 이제 이론은 충분히 맛봤으니, 직접 BGP를 만져보고 경험할 시간이야!
In the first practical part of this manual, we'll use a network simulator called GNS3 and a container technology called Docker to build our own BGP lab environment.
이 매뉴얼의 첫 번째 실습 파트에서는 GNS3라는 네트워크 시뮬레이터와 Docker라는 컨테이너 기술을 사용하여 우리만의 BGP 실험실 환경을 구축할 거야.
Part 1: Building Your Own Network Lab with GNS3 and Docker
In this part, we'll create two devices in a virtual environment and configure them basically so they can communicate with each other.
이 파트에서는 가상 환경에 두 개의 장치를 만들고 서로 통신할 수 있도록 기본적으로 설정할 거야.
It's like the first step in building a small castle with Lego blocks!
마치 레고 블록으로 작은 성을 만드는 첫 단계와 같아!
Prerequisites: Tools for the Experiment

  • Virtual Machine (VM): It's best to conduct all operations within a virtual machine.
    모든 작업은 가상 머신 내에서 수행하는 것이 가장 좋아.
  • This allows you to experiment safely without affecting your actual PC environment.
    이렇게 하면 실제 PC 환경에 영향을 주지 않고 안전하게 실험할 수 있어.
  • GNS3 (Graphical Network Simulator 3): A powerful free program that allows you to draw and simulate complex network topologies without actual network equipment.
    실제 네트워크 장비 없이 복잡한 네트워크 토폴로지를 그리고 시뮬레이션할 수 있게 해주는 강력한 무료 프로그램이야.(GNS3 Official Website)
    • When using GNS3, a separate virtual machine called the GNS3 VM is typically used.
      GNS3를 사용할 때는 일반적으로 GNS3 VM이라는 별도의 가상 머신이 사용돼.
    • The network devices we create (routers, switches, etc.) will actually run inside this GNS3 VM.
      우리가 만드는 네트워크 장치(라우터, 스위치 등)는 실제로 이 GNS3 VM 내에서 실행될 거야.
  • It's like drawing a network diagram on a digital sketchbook and seeing it come to life!
    마치 디지털 스케치북에 네트워크 다이어그램을 그리고 그것이 실제로 작동하는 것을 보는 것과 같아!
  • Docker: An open-source platform based on containers that allows you to quickly build, test, and deploy applications.
    애플리케이션을 신속하게 구축, 테스트 및 배포할 수 있는 컨테이너 기반 오픈 소스 플랫폼이야.Think of it as a bento box that lightly packs only the necessary programs for execution. 🍱
    실행에 필요한 프로그램만 가볍게 담는 도시락 통이라고 생각해. 🍱
  • (Docker Official Website)
    Crafting Your Own Docker Images: Creating Experimental Mini-PCs
    In this exercise, we'll create two types of Docker images ourselves.
    이번 실습에서는 두 가지 유형의 Docker 이미지를 직접 만들 거야.
  • We can efficiently configure our experimental environment by creating each network device as a lightweight Docker container.
    각 네트워크 장치를 가벼운 Docker 컨테이너로 만들어 실험 환경을 효율적으로 구성할 수 있어.

An image can be thought of as a "blueprint" or "template" for creating containers.
이미지는 컨테이너를 만들기 위한 "설계도" 또는 "템플릿"으로 생각할 수 있어.
Image 1: The Lightweight Worker (Simple Host)
This image is for creating a simple device that will act as a typical user PC in the network.
이 이미지는 네트워크에서 일반적인 사용자 PC 역할을 할 간단한 장치를 만들기 위한 거야.

  • Base System: Any Linux distribution will do, but the lightweight and fast Alpine Linux is recommended.
    어떤 리눅스 배포판이든 괜찮지만, 가볍고 빠른 Alpine Linux를 추천해.
  • Required Components:
    • BusyBox: A small executable file that bundles core Linux utilities.
      핵심 리눅스 유틸리티를 번들로 묶은 작은 실행 파일이야.Alpine Linux often includes it by default.
      Alpine Linux에는 기본적으로 포함되어 있는 경우가 많아.
      • Dockerfile Example (Alpine-based):
        FROM alpine:latest

        BusyBox is usually included in Alpine by default, no extra steps may be needed

        If necessary, RUN apk add --no-cache busybox-extras # for additional commands like ip, route

        CMD ["/bin/sh"]
    • It allows you to use basic commands like ls, ping, and ifconfig.
      ls, ping, ifconfig와 같은 기본 명령을 사용할 수 있게 해줘.

Image 2: The Routing Specialist (Router)
This image is for creating a device that will act as a router capable of running routing protocols like BGP and OSPF.
이 이미지는 BGP 및 OSPF와 같은 라우팅 프로토콜을 실행할 수 있는 라우터 역할을 할 장치를 만들기 위한 거야.

  • Base System: Again, use your preferred Linux distribution.
    다시 말하지만, 선호하는 리눅스 배포판을 사용해.
  • (e.g., Ubuntu, Debian, CentOS)
  • Required Components:
    • Routing Software: We'll use FRRouting (FRR).
      우리는 FRRouting (FRR)을 사용할 거야.It supports various routing protocols, including BGP, OSPF, and IS-IS.
      BGP, OSPF, IS-IS를 포함한 다양한 라우팅 프로토콜을 지원해.
      • FRR includes services like zebra (core routing engine), bgpd (BGP daemon), ospfd (OSPF daemon), and isisd (IS-IS daemon).
        FRR에는 zebra(코어 라우팅 엔진), bgpd(BGP 데몬), ospfd(OSPF 데몬), isisd(IS-IS 데몬)와 같은 서비스가 포함되어 있어.
    • FRR is a modern routing protocol suite that is a successor to open-source routing software like Zebra and Quagga.
      FRR은 Zebra 및 Quagga와 같은 오픈 소스 라우팅 소프트웨어의 후속 제품인 최신 라우팅 프로토콜 제품군이야.
    • Activated Services:
      • BGPD (BGP daemon)
      • OSPFD (OSPF daemon)
      • IS-IS routing engine
    • BusyBox (or similar tools): Needed for basic shell command usage.
      기본 쉘 명령 사용에 필요해.
  • Dockerfile Example (FRR installation on Ubuntu):
    FROM ubuntu:latest

Install basic packages and register/add FRR official repository key

RUN apt-get update && apt-get install -y
gnupg
curl
vim
# It's best to follow FRR installation scripts (may vary by version and distribution)
# Example: curl -s https://deb.frrouting.org/frr/keys.asc | apt-key add -
# RUN echo "deb https://deb.frrouting.org/frr $(lsb_release -s -c) frr-stable" | tee /etc/apt/sources.list.d/frr.list
# RUN apt-get update && apt-get install -y frr frr-pythontools busybox

(The FRR installation part above should be replaced with the exact commands from the FRR official documentation.)

Assuming FRR is installed for now.

In reality, you'd install packages like this:

Example: (Debian/Ubuntu)

RUN apt-get update && apt-get install -y frr frr-doc frr-pythontools busybox iproute2

Enable necessary daemons in FRR daemon configuration file (/etc/frr/daemons)

RUN sed -i 's/bgpd=no/bgpd=yes/' /etc/frr/daemons

RUN sed -i 's/ospfd=no/ospfd=yes/' /etc/frr/daemons

RUN sed -i 's/isisd=no/isisd=yes/' /etc/frr/daemons

(The sed commands above are valid if the file exists after FRR installation and the default is 'no'.)

FRR service start script or CMD setting

Example: CMD ["/usr/lib/frr/docker-start"] (may vary by FRR version)

CMD ["/bin/sh"] # Temporary shell execution; actual FRR daemon start command needed
VERY IMPORTANT!: For the FRR installation part in the Dockerfile above, you must refer to the FRR official documentation and write the correct installation commands for your environment and the Linux distribution you are using!
매우 중요!: 위 Dockerfile의 FRR 설치 부분은 FRR 공식 문서를 참조하여 사용 환경과 사용 중인 리눅스 배포판에 맞는 정확한 설치 명령을 작성해야 해!

Daemon activation (bgpd=yes, etc.) is usually done by modifying the /etc/frr/daemons file.
데몬 활성화(bgpd=yes 등)는 일반적으로 /etc/frr/daemons 파일을 수정하여 수행돼.

  • Caution: These Docker images will be used throughout all future exercises.
    주의: 이 Docker 이미지는 앞으로의 모든 실습에서 사용될 거야.All IP settings will be done in GNS3 after placing and connecting the devices.
    모든 IP 설정은 GNS3에서 장치를 배치하고 연결한 후에 수행될 거야.
  • Do not pre-configure any IP addresses when creating them!
    생성 시 IP 주소를 미리 설정하지 마!

Utilizing Docker Images in GNS3: Assembling Your Virtual Network

  • GNS3 and GNS3 VM Setup:
    • Install and run GNS3, then set up and connect the GNS3 VM (VirtualBox or VMware is commonly used).
      GNS3를 설치하고 실행한 다음 GNS3 VM(일반적으로 VirtualBox 또는 VMware 사용)을 설정하고 연결해.
    • The Docker containers we create will run inside this GNS3 VM.
      우리가 만드는 Docker 컨테이너는 이 GNS3 VM 내에서 실행될 거야.
    • When you design and run a network in the GNS3 client (the program you install on your PC), the actual computation happens in the GNS3 VM.
      GNS3 클라이언트(PC에 설치하는 프로그램)에서 네트워크를 설계하고 실행하면 실제 계산은 GNS3 VM에서 이루어져.
    • If you know the IP address of the GNS3 VM, you can access it via a web browser to manage projects or access device consoles.
      GNS3 VM의 IP 주소를 알면 웹 브라우저를 통해 접속하여 프로젝트를 관리하거나 장치 콘솔에 액세스할 수 있어.
    • (The IP address is usually displayed when the GNS3 VM starts.)
      (IP 주소는 일반적으로 GNS3 VM 시작 시 표시돼.)
  • Adding Docker Templates to GNS3:
    • In GNS3's settings (Preferences) menu, navigate to the "Docker containers" section.
      GNS3의 설정(Preferences) 메뉴에서 "Docker containers" 섹션으로 이동해.
    • Click the "New" button to create templates for each of the two Docker images we made (the Simple Host image and the Router image).
      "New" 버튼을 클릭하여 우리가 만든 두 개의 Docker 이미지(Simple Host 이미지와 Router 이미지) 각각에 대한 템플릿을 만들어.
    • Specify the image name and select the "Run this Docker container on the GNS3 VM" option.
      이미지 이름을 지정하고 "Run this Docker container on the GNS3 VM" 옵션을 선택해야 해.
    • Once these templates are created, you can drag and drop them from GNS3's device list onto your workspace.
      이러한 템플릿이 생성되면 GNS3의 장치 목록에서 작업 공간으로 끌어다 놓을 수 있어.
    • (The corresponding Docker images must be built or accessible within the GNS3 VM for GNS3 to recognize them.)
      (해당 Docker 이미지는 GNS3가 인식할 수 있도록 GNS3 VM 내에 빌드되거나 액세스할 수 있어야 해.)

First Steps: Basic Network Configuration and Verification
Now, let's use the prepared Docker image templates to create a very simple network in GNS3.
이제 준비된 Docker 이미지 템플릿을 사용하여 GNS3에서 매우 간단한 네트워크를 만들어 보자.

  • Device Placement and Connection:
    • Drag one device from the Simple Host image template (e.g., host-1) and one device from the Router image template (e.g., router-1) onto the GNS3 workspace.
      Simple Host 이미지 템플릿에서 장치 하나(예: host-1)와 Router 이미지 템플릿에서 장치 하나(예: router-1)를 GNS3 작업 공간으로 끌어다 놓아.
    • Connect the two devices with a cable.
      두 장치를 케이블로 연결해.
    • (e.g., connect host-1's eth0 interface to router-1's eth0 interface).
      (host-1eth0 인터페이스를 router-1eth0 인터페이스에 연결하는 것처럼 말이야.)
    [host-1 (Simple Host Image)] ----cable---- [router-1 (Router Image)]
  • Starting Devices and Accessing Consoles:
    • Click the "Start" button in GNS3 to run all devices.
      GNS3에서 "Start" 버튼을 클릭하여 모든 장치를 실행시켜.
    • Double-click each device or right-click and select "Console" to access the shell or terminal of that device (container).
      각 장치를 두 번 클릭하거나 마우스 오른쪽 버튼을 클릭하고 "Console"을 선택하여 해당 장치(컨테이너)의 쉘 또는 터미널에 액세스해.
  • Basic Status Check:
    • In the host-1 console:
      • Verify the hostname with the hostname command.
        hostname 명령으로 호스트 이름을 확인해.
      • Check the network interface status with ip addr or ifconfig (available commands may vary depending on the BusyBox version).
        ip addr 또는 ifconfig(사용 가능한 명령은 BusyBox 버전에 따라 다를 수 있음) 명령으로 네트워크 인터페이스 상태를 확인해.
      • (IPs are not yet configured).
        (IP는 아직 설정되지 않았어.)
      • Check running processes with the ps command (mostly shell processes).
        ps 명령으로 실행 중인 프로세스(주로 쉘 프로세스)를 확인해.
    • In the router-1 console:
      • Verify the hostname with the hostname command.
        hostname 명령으로 호스트 이름을 확인해.
      • Check the network interface status with ip addr or ifconfig.
        ip addr 또는 ifconfig 명령으로 네트워크 인터페이스 상태를 확인해.
      • Check if FRR-related daemons (zebra, bgpd, ospfd, isisd, etc.) are running with the ps aux (or ps -ef) command.
        ps aux (또는 ps -ef) 명령으로 FRR 관련 데몬(zebra, bgpd, ospfd, isisd 등)이 실행 중인지 확인해.
        • If the FRR daemons are running correctly, you can start configuring the router using FRR's integrated CLI, vtysh.
          FRR 데몬이 올바르게 실행 중이면 FRR의 통합 CLI인 vtysh를 사용하여 라우터 구성을 시작할 수 있어.(To exit, type exit or quit).
          (종료하려면 exit 또는 quit를 입력해.)
        • Type vtysh and press Enter, and the prompt should change to something like router-1#.
          vtysh를 입력하고 Enter 키를 누르면 프롬프트가 router-1#과 같이 변경될 거야.
      • If the daemons are not visible, you need to recheck the FRR service start settings or daemon activation settings in your Docker image creation process.
        데몬이 보이지 않으면 Docker 이미지 생성 프로세스에서 FRR 서비스 시작 설정 또는 데몬 활성화 설정을 다시 확인해야 해.
    *At this stage, we are not configuring IP addresses or testing actual communication.
    *이 단계에서는 IP 주소를 구성하거나 실제 통신을 테스트하지 않아.
  • The goal is simply to launch Docker containers in GNS3 and check their basic status.*
    목표는 단순히 GNS3에서 Docker 컨테이너를 시작하고 기본 상태를 확인하는 거야.

Wrapping Up Part 1: Organizing Your Deliverables
If you've successfully completed these steps, you've laid the first stepping stone for your BGP exploration!
이 단계를 성공적으로 완료했다면 BGP 탐험을 위한 첫 번째 디딤돌을 놓은 거야!

  • Working Folder and Files:
    • Organize all configuration files for this part (Dockerfile, GNS3 project file, simple configuration scripts, etc.) in a folder named P1.
      이 부분에 대한 모든 구성 파일(Dockerfile, GNS3 프로젝트 파일, 간단한 구성 스크립트 등)을 P1이라는 폴더에 정리해.
    • It's good practice to add ample comments to each configuration file, explaining what the code does and why it's configured that way.
      각 구성 파일에 충분한 주석을 추가하여 코드가 수행하는 작업과 그렇게 구성된 이유를 설명하는 것이 좋아.
    • This makes it much easier for you to understand later or for others to review.
      이렇게 하면 나중에 이해하거나 다른 사람이 검토하기가 훨씬 쉬워져.
  • Exporting GNS3 Project:
    • In GNS3, use File > "Export portable project" to export your current project as a .gns3project file.
      GNS3에서 File > "Export portable project"를 사용하여 현재 프로젝트를 .gns3project 파일로 내보내.
    • This file is in ZIP archive format, so you can change the extension to .zip to explore its contents if needed.
      이 파일은 ZIP 아카이브 형식이므로 필요한 경우 확장자를 .zip으로 변경하여 내용을 탐색할 수 있어.
    • It includes topology information, device configurations, etc.
      토폴로지 정보, 장치 구성 등이 포함되어 있어.
    • If you need to submit this as an assignment, it's common to submit this .gns3project file along with the Dockerfiles used and documentation explaining the configuration process.
      과제로 제출해야 하는 경우 사용된 Dockerfile 및 구성 프로세스를 설명하는 문서와 함께 이 .gns3project 파일을 제출하는 것이 일반적이야.

Looking Forward to the Next Exploration
Congratulations! 🎉
You've successfully completed the first step in building a basic lab environment for learning BGP using GNS3 and Docker.
GNS3와 Docker를 사용하여 BGP 학습을 위한 기본 실험실 환경을 구축하는 첫 단계를 성공적으로 완료했어.
We haven't even configured the 'B' in BGP yet, but just like any building, a solid foundation is the most important part.
아직 BGP의 'B'자도 구성하지 않았지만, 어떤 건물이든 견고한 기초가 가장 중요한 부분이야.
In the next part, we'll explore a tunneling technology called VXLAN on this environment, and then we'll finally dive deeper into the world of BGP by configuring BGP and EVPN.
다음 파트에서는 이 환경에서 VXLAN이라는 터널링 기술을 탐색한 다음, 마침내 BGP와 EVPN을 구성하여 BGP의 세계로 더 깊이 들어갈 거야.
Aren't you excited? 😉
The process of learning new things is always a series of challenges, but it brings a great sense of accomplishment.
새로운 것을 배우는 과정은 항상 일련의 도전이지만, 큰 성취감을 가져다줘.
If you have questions, don't hesitate to look up resources and discuss them with your peers to grow together!
궁금한 점이 있으면 주저하지 말고 자료를 찾아보고 동료들과 토론하며 함께 성장해!
See you in the next exploration! 🚀