ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Ribbon SBC] Core–Edge TLS/SRTP Hands on - 2 : VirtualBox·Rocky·SIPp namespace·내부 DNS
    Ribbon Communications/Session Border controller 2026. 9. 15. 14:07

    그림으로 보는 전체 흐름

    Root CA가 Core와 Edge 인증서를 서명하고 TLS 프로파일이 이를 사용합니다.

     

    1편 · 전체 SOP와 실습 첨부 | 이전 편

    이번 편에서 할 일

    1편에서 SIPp client와 server를 한 Rocky VM 안에 두되, 패킷이 반드시 Core와 Edge를 거치게 만들겠다고 말씀드렸습니다. 이번 편은 그 준비 과정입니다.

    • VirtualBox에서 VM별 네트워크를 어떻게 나눴는지 정리합니다.
    • Rocky의 NIC 두 개를 서로 다른 network namespace로 옮겨 SIPp client와 server를 분리합니다.
    • Core–Edge 구간을 제3자 위치에서 볼 수 있도록 캡처 전용 NIC를 붙입니다.
    • 인증서 이름(core.sbc.test, edge.sbc.test)을 풀어 줄 내부 DNS를 준비합니다.

    미리 한계를 밝혀 두겠습니다. Rocky OS 설치와 SIPp 빌드는 이번 재구축에서 다시 하지 않았습니다. SIPp 3.7.7은 기존 설치본을 그대로 썼습니다. 반면 namespace는 이번에 기존 것을 지우고 다시 만들었습니다.

    시험 환경

    항목 값 비고
    하이퍼바이저 Oracle VirtualBox 7.2.16 r174877
    시험 VM Rocky Linux 9.8, 메모리 2GB Rocky Linux 9.8 / vCPU 2
    SIPp 3.7.7 기존 설치본 유지(이번에 재빌드하지 않음)
    작업일 2026-09-15 —

    이번 편의 구성도

    VirtualBox 결선도(설계)

                      ┌────────────── 호스트 전용 관리망 (192.168.56.0/24) ──────────────┐
                      │                     │                        │                  │
                Core 관리 NIC          Edge 관리 NIC            Rocky 관리 NIC       호스트
    
      [SBC-Lab-PKT0]   Rocky enp0s9  ────────  Core pkt0
      [SBC-Lab-PKT1]     Core pkt1     ────────  Edge Ethernet 1   ←── Rocky enp0s16 (수신 전용)
      [SBC-Lab-Edge-SIPp]   Edge Ethernet 2 ──────  Rocky enp0s10
    

    실제 VirtualBox 어댑터 연결값

    모든 사용 NIC의 어댑터 유형은 Paravirtualized Network(virtio-net)입니다. 아래 이름은 실제 VM 설정에서 확인했습니다. 라이선스가 적용된 VM의 UUID와 MAC는 그대로 유지합니다.

    VM 어댑터 연결 방식 / 네트워크 역할
    Core 1 Host-only / VirtualBox Host-Only Ethernet Adapter 관리 192.168.56.101
    Core 2 Internal / SBC-Lab-HA 이번 호 경로에서 사용하지 않는 HA망
    Core 3 Internal / SBC-Lab-PKT0 pkt0 / 10.77.10.1
    Core 4 Internal / SBC-Lab-PKT1 pkt1 / 10.77.20.1
    Edge 1 Host-only / VirtualBox Host-Only Ethernet Adapter 관리 192.168.56.102
    Edge 2 Internal / SBC-Lab-PKT1 Ethernet 1-1 / 10.77.20.2
    Edge 3 Internal / SBC-Lab-Edge-SIPp Ethernet 2-1 / 10.77.30.1
    Rocky 1 NAT enp0s3 / 패키지 설치 통신
    Rocky 2 Host-only / VirtualBox Host-Only Ethernet Adapter enp0s8 / 관리·DNS 192.168.56.20
    Rocky 3 Internal / SBC-Lab-PKT0 enp0s9 / client namespace
    Rocky 4 Internal / SBC-Lab-Edge-SIPp enp0s10 / server namespace
    Rocky 5 Internal / SBC-Lab-PKT1 / Promiscuous Allow All enp0s16 / IP 없는 캡처 전용

    Edge의 나머지 어댑터는 별도 미사용 내부망에 연결되어 있으며 이 시험 경로에 참여하지 않습니다. 관리 계정은 Core CLI admin(SSH 22), Core OS linuxadmin(SSH 2024), Edge WebUI admin, Rocky sbclab(SSH 22)입니다.

    IP 논리 구성도(설계)

    서브넷 한쪽 반대쪽 게이트웨이
    10.77.10.0/24 SIPp client ns enp0s9 10.77.10.10 Core pkt0 10.77.10.1 없음(같은 서브넷 직결)
    10.77.20.0/24 Core pkt1 10.77.20.1 Edge Ethernet 1 10.77.20.2 없음
    10.77.30.0/24 Edge Ethernet 2 10.77.30.1 SIPp server ns enp0s10 10.77.30.10 없음

    세 서브넷이 모두 한 구간짜리 직결입니다. SIPp 쪽은 상대 SBC가 같은 서브넷에 있어서 기본 게이트웨이가 필요 없습니다. 이 점이 namespace 분리의 핵심이기도 합니다. client namespace는 10.77.30.0/24로 가는 경로를 아예 모르기 때문에, server에 닿으려면 Core로 보내는 수밖에 없습니다.

    VM 자원 할당

    VM 메모리 vCPU 디스크
    SBC SWe Core 16GB —  
    SBC SWe Edge 2GB —  
    Rocky(SIPp) 2GB vCPU 2 실제 VM 설정

    이 값은 이 랩에서 세 VM을 한 PC에 동시에 올리려고 제가 정한 할당값입니다. 제품 요구 사양으로 읽지 말아 주세요.

    Rocky 인터페이스 역할

    Rocky 인터페이스 붙은 네트워크 최종 위치 IP 용도
    enp0s9 Core pkt0과 같은 내부 네트워크 namespace sipp-client 10.77.10.10/24 SIPp UAC
    enp0s10 Edge Ethernet 2와 같은 내부 네트워크 namespace sipp-server 10.77.30.10/24 SIPp UAS
    enp0s16 SBC-Lab-PKT1 (Core pkt1 ↔ Edge Ethernet 1) 기본 namespace 없음 수신 전용 캡처
    관리 NIC 호스트 전용 관리망 기본 namespace — SSH, DNS

    인터페이스 이름을 어댑터 번호로 단정하지 마세요. VirtualBox의 "어댑터 3"이 게스트에서 몇 번째 이름으로 보일지는 PCI 슬롯 배치에 따라 달라집니다. 저는 VirtualBox 화면의 MAC 주소와 Rocky의 ip -br link 출력에 나온 MAC을 대조해서 이름을 확인했습니다.

    어디서: Rocky shell(root)

    ip -br link
    
    • 기대값: VirtualBox 어댑터 설정에 표시된 MAC과 같은 MAC을 가진 인터페이스가 보여야 합니다.
    • 실패 시: 엉뚱한 NIC를 namespace로 옮기면 SSH가 끊기거나 SIPp가 반대편 SBC를 못 찾습니다. MAC 대조부터 다시 해주세요.

    실제 VirtualBox 어댑터 연결값

    모든 사용 NIC의 어댑터 유형은 Paravirtualized Network(virtio-net)입니다. 아래 이름은 실제 VM 설정에서 확인했습니다. 라이선스가 적용된 VM의 UUID와 MAC는 그대로 유지합니다.

    VM 어댑터 연결 방식 / 네트워크 역할
    Core 1 Host-only / VirtualBox Host-Only Ethernet Adapter 관리 192.168.56.101
    Core 2 Internal / SBC-Lab-HA 이번 호 경로에서 사용하지 않는 HA망
    Core 3 Internal / SBC-Lab-PKT0 pkt0 / 10.77.10.1
    Core 4 Internal / SBC-Lab-PKT1 pkt1 / 10.77.20.1
    Edge 1 Host-only / VirtualBox Host-Only Ethernet Adapter 관리 192.168.56.102
    Edge 2 Internal / SBC-Lab-PKT1 Ethernet 1-1 / 10.77.20.2
    Edge 3 Internal / SBC-Lab-Edge-SIPp Ethernet 2-1 / 10.77.30.1
    Rocky 1 NAT enp0s3 / 패키지 설치 통신
    Rocky 2 Host-only / VirtualBox Host-Only Ethernet Adapter enp0s8 / 관리·DNS 192.168.56.20
    Rocky 3 Internal / SBC-Lab-PKT0 enp0s9 / client namespace
    Rocky 4 Internal / SBC-Lab-Edge-SIPp enp0s10 / server namespace
    Rocky 5 Internal / SBC-Lab-PKT1 / Promiscuous Allow All enp0s16 / IP 없는 캡처 전용

    Edge의 나머지 어댑터는 별도 미사용 내부망에 연결되어 있으며 이 시험 경로에 참여하지 않습니다. 관리 계정은 Core CLI admin(SSH 22), Core OS linuxadmin(SSH 2024), Edge WebUI admin, Rocky sbclab(SSH 22)입니다.

    Rocky에 SIPp 설치 (참고: 이번에 다시 실행하지 않음)

    어디서: Rocky shell(root)

    이번 랩의 SIPp는 아래 스크립트로 이전에 빌드해 둔 3.7.7을 그대로 사용했습니다. 새로 구축하는 분을 위해 스크립트 원문을 싣습니다. 다만 이번 재구축에서 이 스크립트를 처음부터 다시 돌려 검증하지는 않았다는 점을 꼭 기억해 주세요.

    #!/usr/bin/env bash
    set -euo pipefail
    export LC_ALL=C
    dnf -y install gcc-c++ cmake make ncurses-devel openssl-devel tcpdump curl tar
    install -d -m 755 /opt/sbc-lab/src
    cd /opt/sbc-lab/src
    curl --fail --location --retry 3 -o sipp-3.7.7.tar.gz https://github.com/SIPp/sipp/releases/download/v3.7.7/sipp-3.7.7.tar.gz
    sha256sum sipp-3.7.7.tar.gz > sipp-3.7.7.tar.gz.sha256
    tar -xzf sipp-3.7.7.tar.gz
    cmake -S sipp-3.7.7 -B sipp-3.7.7/build -DUSE_SSL=1
    cmake --build sipp-3.7.7/build -j2
    install -m 755 sipp-3.7.7/build/sipp /usr/local/bin/sipp
    firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="10.77.10.1/32" port port="5060" protocol="udp" accept'
    firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="10.77.30.1/32" port port="5060" protocol="udp" accept'
    firewall-cmd --reload
    /usr/local/bin/sipp -v | — | test "$?" -eq 1
    ip -br address
    
    줄 하는 일 왜
    set -euo pipefail 명령 하나라도 실패하면 즉시 중단 빌드가 반쯤 실패한 채로 설치되는 것을 막음
    dnf -y install … 컴파일러, cmake, ncurses·OpenSSL 헤더, tcpdump 설치 SIPp 빌드 의존성 + 7편에서 쓸 캡처 도구
    curl … sipp-3.7.7.tar.gz GitHub 릴리스에서 소스 받기 버전을 3.7.7로 고정
    sha256sum … > ….sha256 받은 파일의 해시 기록 나중에 같은 소스로 빌드했는지 대조하려고
    cmake … -DUSE_SSL=1 TLS 지원을 켜고 빌드 설정 이 랩에서 SIPp 자체는 UDP만 쓰지만, 같은 바이너리로 TLS 시험도 할 수 있게
    cmake --build … -j2 병렬 2개로 빌드 Rocky VM에 할당한 자원 범위에서
    install -m 755 … /usr/local/bin/sipp 실행 파일 설치 namespace 안에서도 절대 경로로 부르기 위해
    firewall-cmd … 10.77.10.1/32 … Core pkt0에서 오는 UDP 5060 허용 client 쪽 SIP
    firewall-cmd … 10.77.30.1/32 … Edge Ethernet 2에서 오는 UDP 5060 허용 server 쪽 SIP
    sipp -v || test "$?" -eq 1 버전 출력 sipp -v는 종료 코드 1로 끝나서, 1을 성공으로 받아 줌

    firewalld 규칙에 대해 한 가지 짚고 가겠습니다. 이 규칙은 기본(root) namespace 기준으로 들어갑니다. 아래에서 NIC를 별도 namespace로 옮긴 뒤에도 이 규칙이 그 NIC에 적용되는지는 이번에 따로 확인하지 않았습니다. 이 규칙은 RTP 포트(6000, 6002)를 열지 않는데도 7편 시험에서 미디어가 오갔습니다. 그러니 적어도 이 규칙이 미디어를 막지는 않았습니다.

    network namespace로 client/server 분리

    어디서: Rocky shell(root)

    이번 재구축에서는 기존 sipp-client, sipp-server namespace를 지우고 새로 만들었습니다. 사용한 스크립트는 아래와 같습니다. 파일 위치는 /usr/local/sbin/setup-sipp-namespaces입니다.

    #!/usr/bin/env bash
    set -euo pipefail
    for pair in 'sipp-client enp0s9 10.77.10.10/24' 'sipp-server enp0s10 10.77.30.10/24'; do
      read -r ns dev addr <<< "$pair"
      ip netns list | cut -d' ' -f1 | grep -qx "$ns" | — | ip netns add "$ns"
      if ip link show "$dev" >/dev/null 2>&1; then
        nmcli device set "$dev" managed no
        ip addr flush dev "$dev"
        ip link set "$dev" netns "$ns"
      fi
      ip -n "$ns" link set lo up
      ip -n "$ns" address flush dev "$dev"
      ip -n "$ns" address replace "$addr" dev "$dev"
      ip -n "$ns" link set "$dev" up
      ip netns exec "$ns" sysctl -qw net.ipv4.ip_forward=0
      ip -n "$ns" -br address
      ip -n "$ns" route
     done
    

    한 줄씩 보겠습니다.

    줄 하는 일 왜 이렇게 했나
    for pair in '…enp0s9 10.77.10.10/24' '…enp0s10 10.77.30.10/24' namespace 이름, 옮길 NIC, 주소를 한 쌍으로 묶음 client와 server를 같은 코드로 처리
    grep -qx "$ns" || ip netns add "$ns" 없을 때만 namespace 생성 두 번 실행해도 오류가 나지 않게(재부팅 후 서비스로 다시 돌기 때문)
    if ip link show "$dev" NIC가 아직 기본 namespace에 있을 때만 옮김 이미 옮겨졌으면 기본 namespace에서는 안 보이므로 건너뜀
    nmcli device set "$dev" managed no NetworkManager가 이 NIC를 관리하지 않게 함 NetworkManager가 주소를 다시 붙이거나 연결을 되살리는 것을 막음
    ip addr flush dev "$dev" 기본 namespace에 붙어 있던 주소 제거 같은 주소가 두 곳에 남지 않게
    ip link set "$dev" netns "$ns" NIC 자체를 namespace로 이동 이 NIC는 기본 namespace와 다른 namespace에서 더 이상 보이지 않음. 커널 안에서 client↔server 지름길이 사라짐
    ip -n "$ns" link set lo up namespace 안의 loopback 켜기 새 namespace는 lo도 꺼진 상태로 시작
    address flush → address replace 주소를 비우고 설계 주소 하나만 부여 replace는 이미 있어도 오류 없이 덮어씀
    link set "$dev" up NIC 올리기 —
    sysctl -qw net.ipv4.ip_forward=0 namespace 안 IP 포워딩 끄기 namespace가 라우터 역할을 해서 SBC를 우회하는 일을 원천 차단
    ip -n "$ns" -br address, route 결과 출력 실행 직후 눈으로 확인

    마지막 줄 앞의 공백(done)은 원본 파일 그대로입니다. bash 동작에는 영향이 없습니다.

    재부팅 후에도 유지되게 systemd에 등록

    namespace와 NIC 이동은 재부팅하면 사라집니다. 그래서 부팅 때 위 스크립트를 한 번 실행하는 서비스를 만들었습니다. 파일은 /etc/systemd/system/sipp-netns.service입니다.

    [Unit]
    Description=SIPp separate client and server networks
    After=NetworkManager.service network-online.target
    Wants=network-online.target
    [Service]
    Type=oneshot
    ExecStart=/usr/local/sbin/setup-sipp-namespaces
    RemainAfterExit=yes
    [Install]
    WantedBy=multi-user.target
    
    항목 값 이유
    After=NetworkManager.service network-online.target NetworkManager 이후 실행 NetworkManager가 NIC를 먼저 잡은 뒤에 managed no와 이동을 해야 되돌려지지 않음
    Type=oneshot 한 번 실행하고 끝 상주 프로세스가 아님
    RemainAfterExit=yes 끝난 뒤에도 active로 표시 systemctl status로 적용 여부를 볼 수 있게
    WantedBy=multi-user.target 일반 부팅에서 자동 실행 —

    설치와 활성화는 아래 순서입니다.

    install -m 755 setup-sipp-namespaces /usr/local/sbin/setup-sipp-namespaces
    install -m 644 sipp-netns.service /etc/systemd/system/sipp-netns.service
    systemctl daemon-reload
    systemctl enable --now sipp-netns.service
    

    분리 확인

    어디서: Rocky shell(root)

    ip -n sipp-client -br address
    ip -n sipp-client route
    ip -n sipp-server -br address
    ip -n sipp-server route
    ip netns exec sipp-client sysctl net.ipv4.ip_forward
    ip netns exec sipp-server sysctl net.ipv4.ip_forward
    systemctl status sipp-netns.service
    
    확인 항목 기대값 실측값 판정
    client ns 주소 enp0s9 10.77.10.10/24 —  
    server ns 주소 enp0s10 10.77.30.10/24 —  
    client ns 라우팅 10.77.10.0/24 연결 경로만, 기본 게이트웨이 없음 —  
    server ns 라우팅 10.77.30.0/24 연결 경로만, 기본 게이트웨이 없음 —  
    두 ns의 ip_forward 0 —  
    서비스 상태 active (exited) —  

    실패 시

    • namespace에 주소가 없으면 nmcli device status로 NetworkManager가 NIC를 다시 잡았는지 먼저 보세요.
    • 기본 게이트웨이가 보이면 SBC를 우회할 가능성이 생깁니다. 이 경우 스크립트 밖에서 누가 경로를 넣었는지 찾아야 합니다.

    SBC 쪽 데이터 인터페이스는 4편(Core)과 5편(Edge)에서 올라옵니다. 그래서 인접 SBC로의 ping 확인은 이 시점에 하지 않았습니다. 대신 7편의 end-to-end 통화가 인접 구간 연결까지 함께 보여 줍니다.

    캡처 전용 NIC 추가 (Rocky NIC 5)

    어디서: VirtualBox 관리자 (Rocky VM 전원 꺼진 상태)

    SBC가 내부에서 떠 주는 캡처만으로는 "실제로 선 위에 SRTP가 흘렀다"고 말하기 어렵습니다. 그 이유는 7편에서 숫자로 보여 드리겠습니다. 그래서 Core pkt1과 Edge Ethernet 1이 붙어 있는 내부 네트워크에 Rocky NIC를 하나 더 꽂고, IP 없이 엿듣기만 하게 했습니다.

    필드 값 이유
    어댑터 5번 기존 1~4번 용도를 건드리지 않으려고 비어 있는 번호를 사용
    다음에 연결됨 내부 네트워크 Core–Edge가 쓰는 네트워크에 합류
    이름 SBC-Lab-PKT1 Core pkt1과 Edge Ethernet 1이 붙어 있는 바로 그 네트워크
    무차별 모드(Promiscuous Mode) 모두 허용(Allow All) 기본값이면 자기 MAC이 아닌 프레임은 이 NIC로 전달되지 않음. Core↔Edge 사이 패킷을 보려면 필요
    게스트 IP 없음 캡처 NIC가 시험 트래픽에 끼어들지 않게

    Rocky를 끈 상태에서 추가한 데는 이유가 있습니다. 이 랩에서 VM이 켜진 채로 VirtualBox 네트워크 설정이나 트레이스를 바꾸다가 VirtualBox 프로세스가 비정상 종료된 적이 있습니다(1편 막혔던 지점). 그래서 끈 상태에서 추가한 뒤 콜드 부팅했습니다.

    같은 설정을 CLI로 하면 아래와 같습니다. VM 이름은 여러분 환경에 맞게 바꿔 주세요.

    & "C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" modifyvm "Rocky-SIPp-Lab01" --nic5 intnet --intnet5 SBC-Lab-PKT1 --nictype5 virtio --nicpromisc5 allow-all --cableconnected5 on
    

    부팅 후 Rocky에서 이 NIC는 enp0s16으로 보였습니다. 주소는 주지 않았습니다.

    • 확인: ip -br address show enp0s16 결과에 IPv4 주소가 없어야 합니다.
    • 실패 시: 캡처에 Core↔Edge 패킷이 하나도 안 보이면, 먼저 네트워크 이름 철자(SBC-Lab-PKT1)와 무차별 모드 값을 확인하세요.

    내부 DNS

    어디서: 관리망의 DNS 서버(192.168.56.20)

    인증서에 IP가 아니라 FQDN을 넣었기 때문에, 이름 해석이 맞아야 이름 검증도 통과합니다. 이 랩에서 DNS를 쓰는 방식은 장비마다 다릅니다.

    장비 이름을 푸는 방법 설정 편
    Core 외부 DNS를 쓰지 않고, Core 안의 DNS 그룹 FRESH_TLS_DNS에 local record로 edge.sbc.test, core.sbc.test를 넣음 4편
    Edge Primary DNS Server = 192.168.56.20. Split DNS로 sbc.test와 20.77.10.in-addr.arpa를 이 서버로 보냄. 추가로 Hosts 항목 core.sbc.test = 10.77.20.1 5편

    그래서 이 DNS 서버가 대답해야 하는 이름은 아래와 같습니다.

    조회 이름 기대 응답
    정방향 A core.sbc.test 10.77.20.1
    정방향 A edge.sbc.test 10.77.20.2
    역방향 PTR 10.77.20.1 (1.20.77.10.in-addr.arpa) core.sbc.test
    역방향 PTR 10.77.20.2 (2.20.77.10.in-addr.arpa) edge.sbc.test

    역방향 영역까지 준비한 이유가 있습니다. 이번 구성에서 Edge는 상대(Core)가 TLS client로 들어올 때 Client FQDN 검증을 켜 둡니다. 저는 Edge가 10.77.20.1을 core.sbc.test로 연결 지을 수 있도록 Hosts 항목과 역방향 조회 경로를 모두 마련해 두었습니다. 다만 Edge가 검증 때 둘 중 어느 경로를 실제로 썼는지는 이번에 따로 확인하지 않았습니다.

    Rocky에 실제 DNS 파일 배치

    이번 랩의 DNS 프로그램은 dnsmasq이고, 실제 가동 파일은 /etc/sbc-lab-dns.conf입니다. 아래 내용은 시험이 끝난 뒤 VM에서 수집한 파일 그대로입니다.

    port=53
    listen-address=192.168.56.20
    bind-interfaces
    no-resolv
    no-hosts
    local=/sbc.test/
    host-record=core.sbc.test,10.77.20.1
    host-record=edge.sbc.test,10.77.20.2
    

    서비스 파일 /etc/systemd/system/sbc-lab-dns.service:

    [Unit]
    Description=SBC lab private DNS
    After=network-online.target
    [Service]
    ExecStart=/usr/sbin/dnsmasq --keep-in-foreground --conf-file=/etc/sbc-lab-dns.conf
    Restart=on-failure
    [Install]
    WantedBy=multi-user.target
    

    첨부를 /home/sbclab/sop-files에 풀었다면 다음처럼 설치합니다. 관리 NIC의 192.168.56.20 주소가 먼저 설정되어 있어야 합니다.

    cd /home/sbclab/sop-files
    sudo dnf -y install dnsmasq bind-utils
    sudo install -m 644 sipp/sbc-lab-dns.conf /etc/sbc-lab-dns.conf
    sudo install -m 644 sipp/sbc-lab-dns.service /etc/systemd/system/sbc-lab-dns.service
    sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.56.0/24" port protocol="udp" port="53" accept'
    sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.56.0/24" port protocol="tcp" port="53" accept'
    sudo firewall-cmd --reload
    sudo systemctl daemon-reload
    sudo systemctl enable --now sbc-lab-dns.service
    sudo systemctl is-active sbc-lab-dns.service
    

    firewall-cmd는 firewalld를 사용하는 환경의 명령입니다. 아래 dig 표는 재현할 때 비교할 기대 응답입니다. 신규 시험에서는 TLS 상대 이름 검증과 호 성공을 확인했고, 별도 dig 출력은 새 시험 증적에 수집하지 않았습니다.

    확인 명령은 관리망에서 아래처럼 실행합니다.

    dig @192.168.56.20 core.sbc.test A +short
    dig @192.168.56.20 edge.sbc.test A +short
    dig @192.168.56.20 -x 10.77.20.1 +short
    dig @192.168.56.20 -x 10.77.20.2 +short
    

    확인

    확인 항목 기대값 실측값 판정 증적
    namespace 두 개 존재 sipp-client, sipp-server 기존 것 삭제 후 재생성 일치 —
    client ns 주소 10.77.10.10/24 10.77.10.10 (7편 캡처의 SIP 출발지) 일치 7편 client 캡처
    server ns 주소 10.77.30.10/24 10.77.30.10 (7편 캡처의 SIP 수신지) 일치 7편 server 캡처
    캡처 NIC enp0s16 IP 없음, SBC-Lab-PKT1, 모두 허용 설정함 —  
    SIPp 버전 3.7.7 3.7.7(기존 설치본) 일치 —
    DNS 정방향·역방향 위 표 설정 파일 수집, dig 출력은 미수집 —  

    정리

    Rocky VM 한 대 안에 SIPp client와 server를 namespace로 갈라 두었습니다. 두 namespace 사이에는 경로도, 포워딩도 없습니다. 그래서 7편의 통화가 성공한다면, 그 호는 Core와 Edge를 모두 지나간 것입니다. 또 Core–Edge 구간에는 IP 없는 캡처 NIC를 붙여서 제3자 위치에서 볼 준비를 했습니다.

    다음 편에서는 공인 도메인 없이 쓸 사설 CA를 만들고, core.sbc.test와 edge.sbc.test 인증서를 발급하겠습니다.

    1편 · 전체 SOP와 실습 첨부 | 이전 편

    댓글

Designed by Tistory.