주:
- 이 자습서에서는 Oracle Cloud에 액세스해야 합니다. 무료 계정에 등록하려면 Oracle Cloud Infrastructure Free Tier 시작하기를 참조하십시오.
- Oracle Cloud Infrastructure 자격 증명, 테넌시 및 구획에 예제 값을 사용합니다. 실습을 완료했으면 이러한 값을 자신의 클라우드 환경과 관련된 값으로 대체하십시오.
Oracle Cloud Infrastructure 내에서 허브의 패킷 및 스포크 VCN 라우팅 아키텍처 팔로우
소개
인스턴스, 데이터베이스 및 네트워크 서비스는 Oracle Cloud Infrastructure(OCI) 내부 애플리케이션의 일반적인 구성 요소입니다. 네트워크에서 응용 프로그램을 빌드할 때 소스에서 보내는 트래픽이 대상에 도달하는지 확인하는 것이 좋습니다. OCI는 경로를 확인하기 위해 네트워크 경로 분석기를 제공하지만, 홉 단위로 끝점 자체에서 발생하는 일에 대한 정보를 조금 더 얻고자 하는 경우도 있습니다.
이 사용지침서에서는 OCI 내의 허브 및 스포크 네트워크 아키텍처에서 패킷을 팔로우하는 데 사용할 수 있는 몇 가지 시나리오를 제공합니다.
경로 지정 플로우 시나리오
여러 라우팅 흐름 시나리오가 허브 및 스포크 VCN 라우팅 아키텍처에 적용됩니다.
- 시나리오 1: 한 스포크 VCN 인스턴스에서 다른 스포크 VCN 인스턴스로 패킷 팔로우
- 시나리오 2: 스포크 VCN 인스턴스에서 허브 인스턴스로 패킷 팔로우
- 시나리오 3: 허브 인스턴스에서 스포크 VCN 인스턴스로 패킷 팔로우
- 시나리오 4: 스포크 VCN 인스턴스에서 인터넷으로 패킷 팔로우
- 시나리오 5: 스포크 VCN 인스턴스에서 OCI 서비스 네트워크로 패킷 팔로우
- 시나리오 6: 허브 인스턴스에서 인터넷으로 패킷 팔로우
- 시나리오 7: 인터넷에서 허브 인스턴스로 패킷 팔로우
- 시나리오 8: 온프레미스에서 스포크 VCN 인스턴스로 패킷 팔로우
- 시나리오 9: Spoke VCN 인스턴스에서 온프레미스(On-Premise)로 패킷 이동
- 시나리오 10: 원격 컴퓨터에서 로드 밸런서까지 패킷에 따라 VCN 인스턴스 스포크
시나리오 1에서 패킷을 따라갈 수 있는 방법만 설명합니다. 다른 시나리오의 경우 동일한 방법을 사용할 수 있습니다.
목표
- 이 사용지침서에서는 허브 및 스포크 네트워크 경로 지정 아키텍처를 활용하여 OCI 테넌트 환경에서 네트워크 패킷을 추적하는 방법을 보여줍니다. 필요한 데이터를 수집하기 위해 VCN 내에서 패킷 캡처, TCPdumps 및 서브넷 레벨 로깅의 조합을 사용합니다. 이후의 데이터 분석을 통해 패킷의 전체 경로를 식별합니다. 이 접근 방식은 종단간 연결 문제를 쉽게 해결할 수 있으며 가능한 문제가 발생하는 원인을 쉽게 찾을 수 있습니다.
시나리오 1: 한 스포크 VCN 인스턴스에서 다른 스포크 VCN 인스턴스로 패킷 팔로우
이 시나리오에서는 한 스포크 VCN 인스턴스에서 다른 스포크 VCN의 인스턴스로 패킷을 추적합니다.
다음 다이어그램은 지정된 홉과 함께 표시됩니다. A-F 지점은 특정 형식의 로깅 또는 패킷 캡처를 사용으로 설정할 수 있는 위치를 나타냅니다. 우리는 패킷을 따를 수 있도록이 모든 장소를 하나씩 탐색 할 것입니다.
테스트할 소스, 대상 및 포트를 결정해야 합니다. 이렇게 하면 산만하지 않고 패킷을 분석할 수 있습니다.
이 예에서는 다음 소스, 대상 및 포트를 사용합니다.
소스 | 대상 | 대상 포트 |
---|---|---|
172.16.1.93 | 172.16.2.88 | TCP/80 |
이 여정을 제대로 시작하려면 로깅 설정, 정보 캡처 및 수집을 통해 가능한 한 효과적인 작업 순서가 중요합니다.
작업 1: 메모 작동 중지 시간
-
이 튜토리얼에서는 중앙 컴퓨터를 사용하여 모든 데이터를 수집합니다.
-
분석을 시작하는 시간을 기록합니다. 이 예에서는
8:44
AM입니다.
작업 2: 인스턴스 A에서 첫번째 SSH 세션 열기
-
이 세션을 사용하여 대상에 대한 HTTP 연결을 시작합니다.
- SSH를 사용하여 VCN A에 있는 인스턴스 A의 터미널에 연결합니다.
- 탭 연결을 사용해 봅니다. 이렇게 하면 세션 간에 빠르게 전환할 수 있습니다.
timedatectl
명령을 실행하여 인스턴스의 현재 시간을 가져옵니다.- 시간 설정이 정상인지 확인합니다. 이 예에서는
8:44
AM입니다.
작업 3: 인스턴스 A에서 두번째 SSH 세션 열기
-
VCN A에 있는 인스턴스 A에 대한 두번째 접속을 엽니다.
-
tcpdump
를 사용하여 다음 패킷을 시작할 수 있도록 이 세션을 사용하여tcpdump
명령을 사용으로 설정합니다.
작업 4: 인스턴스 B에서 SSH 세션 열기
-
이 세션을 사용하여 소스에서 HTTP 연결을 수신합니다.
- SSH를 사용하여 VCN B에 있는 인스턴스 B의 터미널에 연결합니다.
- 탭 연결을 사용해 봅니다. 이렇게 하면 세션 간에 빠르게 전환할 수 있습니다.
timedatectl
명령을 실행하여 인스턴스의 현재 시간을 가져옵니다.- 시간 설정이 정상인지 확인합니다. 이 예에서는
8:45 AM
입니다.
작업 5: pfSense 방화벽에서 웹 세션 열기
-
허브 및 스포크 VCN 라우팅 아키텍처를 사용 중이므로 한 스포크에서 다른 스포크로 트래픽이 흐르는 경우 트래픽이 pfSense 방화벽을 전달합니다. pfSense 방화벽은 트래픽을 허용하거나 거부합니다. 패킷 캡처를 사용하여 pfSense 방화벽에서 이를 확인하려고 합니다.
- pfSense 방화벽 관리 콘솔을 엽니다.
- Diagnostics(진단) 및 Packet Capture(패킷 캡처)를 누릅니다.
-
패킷 캡처 페이지로 재지정됩니다. 패킷 캡처를 시작하지 마십시오. 열기만 하면 됩니다.
작업 6: 스포크 A 프라이빗 서브넷에서 로깅 사용(모든 로그)
-
소스가 스포크 A VCN의 프라이빗 서브넷에 연결되어 있으므로 VCN의 서브넷 레벨에서 로깅이 사용으로 설정됩니다.
- 왼쪽 상단 모서리에서 햄버거 메뉴 (≡)를 클릭합니다.
- 네트워킹을 누릅니다.
- Virtual cloud networks(가상 클라우드 네트워크)를 누릅니다.
-
Spoke A VCN을 누릅니다.
-
VCN A 내의 프라이빗 서브넷을 누릅니다.
- 로그를 누릅니다.
- 모든 로그에 대해 로그 사용을 선택하고 사용으로 설정합니다.
-
모든 로그 설정을 기본값으로 유지하고 로그 사용을 누릅니다.
-
상태는 Creating입니다.
- 몇 분 후 상태가 Active로 변경됩니다.
- 모두에 대해 로그 사용은 사용입니다.
작업 7: 스포크 B 프라이빗 서브넷에서 로깅 사용(모든 로그)
-
스포크 VCN B 전용 서브넷의 단계를 작업 6과 동일하게 수행합니다.
- 네트워킹, 가상 클라우드 네트워킹, 스포크 B VCN, 서브넷 세부정보 및 로그로 이동합니다.
- 몇 분 후 상태가 Active로 변경됩니다.
- 모두에 대해 로그 사용은 사용입니다.
작업 8: 허브 프라이빗 서브넷에서 로깅(모든 로그) 사용
-
허브 전용 서브넷의 단계를 작업 6과 동일하게 수행합니다.
- 네트워킹, 가상 클라우드 네트워킹, 허브 VCN, 서브넷 세부정보 및 로그로 이동합니다.
- 몇 분 후 상태가 Active로 변경됩니다.
- 모두에 대해 로그 사용은 사용입니다.
작업 9: 인스턴스 A의 두번째 SSH 세션에서 tcpdump 세션 시작
-
인스턴스 A의 두번째 SSH 세션으로 이동합니다.
-
다음 명령을 실행하여 tcpdump를 사용으로 설정합니다.
sudo tcpdump -i ens3 dst 172.16.2.88 and src 172.16.1.93 and dst port 80
.주:
tcpdump
명령에서 원하는 트래픽에 대한 정보만 볼 수 있도록 적절한 필터를 사용해야 합니다. 이 예에서는 소스, 대상 및 포트를 지정합니다. -
tcpdump가 사용으로 설정됩니다.
작업 10: 인스턴스 B의 SSH 세션에서 tcpdump 세션 시작
-
인스턴스 B의 SSH 세션으로 이동합니다.
-
다음 명령을 실행하여 tcpdump를 사용으로 설정합니다.
sudo tcpdump -i ens3 src 172.16.0.20 and port 80
. -
tcpdump가 사용으로 설정됩니다.
`
작업 11: pfSense 방화벽에서 패킷 캡처 시작
-
pfSense 방화벽 콘솔로 이동합니다.
-
사용자정의 필터 옵션 섹션으로 스크롤합니다.
-
태그가 지정되지 않은 필터 섹션에서 다음 정보를 입력하고 시작을 누릅니다.
- 다음 중 하나 이상 포함을 선택합니다.
- 호스트 ID 주소 또는 서브넷: 대상에 대해 모두를 선택하고
172.16.2.88
를 입력합니다. - 프로토콜 및 포트 번호: 포트의 경우 임의 항목을 선택하고
80
을 입력합니다.
-
아래로.
-
이미 캡처된 패킷이 있습니다. 포트 80에 있으며 대상 IP 주소(
172.16.2.88
)에 대한 모든 트래픽입니다. 포트 80에서도 상태 검사를 수행하는 로드 밸런서가 활성 상태이므로 이미 트래픽이 표시됩니다. -
우리는 나중에 우리가 찾고있는 올바른 정보를 필터링하기 위해 Wireshark 응용 프로그램을 사용할 수 있도록 소스에서 HTTP 테스트를 수행하는 동안 몇 분 동안 캡처를 계속 유지할 것입니다.
작업 12: 인스턴스 A의 첫번째 SSH 세션에서 인스턴스 B 웹 서버로 HTTP 트래픽 전송
-
소스에서 대상으로의 트래픽을 시작합니다.
- 인스턴스 A의 첫번째 SSH 세션으로 이동합니다.
timedatectl
명령을 다시 실행하여 인스턴스의 현재 시간을 가져옵니다.- 시간을 기록합니다. 이 예에서는
8:56 AM
입니다.
-
curl http://172.16.2.88
명령을 실행하여 HTTP 트래픽을 전송합니다. -
인스턴스 B의 웹 서버는 HTML 콘텐츠로 응답합니다.
-
HTTP 트래픽을 여러 번 전송하려면 동일한 명령을 세 번 또는 네 번 실행하여 프로세스를 반복합니다.
작업 13: 모든 로깅 지점 및 패킷 캡처를 살펴보고 경로를 따르십시오.
정보를 수집하여 패킷을 추적할 수 있습니다.
모든 로깅, 패킷 캡처 및 tcpdump 중지:
수집 정보를 시작하기 전에 모든 로깅, 패킷 캡처 및 tcpdump를 중지하여 너무 많은 정보를 얻지 못하도록 합니다.
-
인스턴스 A 및 인스턴스 B의 tcpdump를 중지합니다.
- 인스턴스 A의 두번째 SSH 세션으로 이동하고 ctrl+c를 눌러 tcpdump를 중지합니다.
- 인스턴스 B의 SSH 세션으로 이동하고 ctrl+c를 눌러 tcpdump를 중지합니다.
-
pfSense 방화벽 관리 콘솔로 이동하여 패킷 캡처를 중지합니다.
-
허브 VCN에서 로깅을 사용 안함으로 설정합니다.
- Networking, Virtual Cloud Networking, Hub VCN, Subnet Details(서브넷 세부정보)로 이동하고 Logs(로그)를 누릅니다.
- 로깅을 사용 안함으로 설정하려면 모두 로그 사용을 토글합니다.
-
상태는 업데이트 중입니다.
-
몇 분 후 상태가 비활성으로 변경됩니다.
-
스포크 VCN A에서 로깅을 사용 안함으로 설정합니다.
- 네트워킹, 가상 클라우드 네트워킹, 스포크 VCN A, 서브넷 세부정보로 이동하고 로그를 누릅니다.
- 몇 분 후 상태가 비활성으로 변경됩니다.
- 모두에 대해 로그 사용이 사용 안함인지 확인합니다.
-
스포크 VCN B에서 로깅을 사용 안함으로 설정합니다.
- 네트워킹, 가상 클라우드 네트워킹, 스포크 VCN B, 서브넷 세부정보로 이동하고 로그를 누릅니다.
- 몇 분 후 상태가 비활성으로 변경됩니다.
- 모두에 대해 로그 사용이 사용 안함인지 확인합니다.
-
모든 로깅, 패킷 캡처 및 tcpdumps를 사용 안함으로 설정했습니다. 이제 데이터를 확인해야 합니다.
다음 다이어그램은 모든 로깅 지점 A, B, C, D, E 및 F를 보여 줍니다.
로깅 지점 A: 인스턴스 A의 tcpdump
- 인스턴스 A의 두번째 SSH 세션으로 이동합니다.
- 생성된 tcpdump 출력을 확인합니다.
-
Tcpdump 출력
[opc@ih-instance-vcn-a ~]$ sudo tcpdump -i ens3 dst 172.16.2.88 and src 172.16.1.93 and dst port 80 dropped privs to tcpdump tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on ens3, link-type EN10MB (Ethernet), capture size 262144 bytes 08:56:50.489159 IP ih-instance-vcn-a.ihprivatesubnet.spokevcna.oraclevcn.com.57422 > 172.16.2.88.http: Flags [S], seq 1817516973, win 62720, options [mss 8960,sackOK,TS val 3736091466 ecr 0,nop,wscale 7], length 0 08:56:50.491649 IP ih-instance-vcn-a.ihprivatesubnet.spokevcna.oraclevcn.com.57422 > 172.16.2.88.http: Flags [.], ack 372277210, win 490, options [nop,nop,TS val 3736091468 ecr 671349263], length 0 08:56:50.491702 IP ih-instance-vcn-a.ihprivatesubnet.spokevcna.oraclevcn.com.57422 > 172.16.2.88.http: Flags [P.], seq 0:75, ack 1, win 490, options [nop,nop,TS val 3736091468 ecr 671349263], length 75: HTTP: GET / HTTP/1.1 08:56:50.492114 IP ih-instance-vcn-a.ihprivatesubnet.spokevcna.oraclevcn.com.57422 > 172.16.2.88.http: Flags [.], ack 239, win 489, options [nop,nop,TS val 3736091469 ecr 671349265], length 0 08:56:50.492210 IP ih-instance-vcn-a.ihprivatesubnet.spokevcna.oraclevcn.com.57422 > 172.16.2.88.http: Flags [.], ack 873, win 485, options [nop,nop,TS val 3736091469 ecr 671349265], length 0 08:56:50.492982 IP ih-instance-vcn-a.ihprivatesubnet.spokevcna.oraclevcn.com.57422 > 172.16.2.88.http: Flags [F.], seq 75, ack 873, win 485, options [nop,nop,TS val 3736091469 ecr 671349265], length 0 08:56:50.493488 IP ih-instance-vcn-a.ihprivatesubnet.spokevcna.oraclevcn.com.57422 > 172.16.2.88.http: Flags [.], ack 874, win 485, options [nop,nop,TS val 3736091470 ecr 671349267], length 0 08:57:09.284210 IP ih-instance-vcn-a.ihprivatesubnet.spokevcna.oraclevcn.com.54210 > 172.16.2.88.http: Flags [S], seq 3049648180, win 62720, options [mss 8960,sackOK,TS val 3736110261 ecr 0,nop,wscale 7], length 0 08:57:09.284913 IP ih-instance-vcn-a.ihprivatesubnet.spokevcna.oraclevcn.com.54210 > 172.16.2.88.http: Flags [.], ack 728296369, win 490, options [nop,nop,TS val 3736110261 ecr 671368058], length 0 08:57:09.284973 IP ih-instance-vcn-a.ihprivatesubnet.spokevcna.oraclevcn.com.54210 > 172.16.2.88.http: Flags [P.], seq 0:75, ack 1, win 490, options [nop,nop,TS val 3736110261 ecr 671368058], length 75: HTTP: GET / HTTP/1.1 08:57:09.285422 IP ih-instance-vcn-a.ihprivatesubnet.spokevcna.oraclevcn.com.54210 > 172.16.2.88.http: Flags [.], ack 239, win 489, options [nop,nop,TS val 3736110262 ecr 671368059], length 0 08:57:09.285522 IP ih-instance-vcn-a.ihprivatesubnet.spokevcna.oraclevcn.com.54210 > 172.16.2.88.http: Flags [.], ack 873, win 485, options [nop,nop,TS val 3736110262 ecr 671368059], length 0 08:57:09.285590 IP ih-instance-vcn-a.ihprivatesubnet.spokevcna.oraclevcn.com.54210 > 172.16.2.88.http: Flags [F.], seq 75, ack 873, win 485, options [nop,nop,TS val 3736110262 ecr 671368059], length 0 08:57:09.286060 IP ih-instance-vcn-a.ihprivatesubnet.spokevcna.oraclevcn.com.54210 > 172.16.2.88.http: Flags [.], ack 874, win 485, options [nop,nop,TS val 3736110263 ecr 671368059], length 0 08:57:10.963760 IP ih-instance-vcn-a.ihprivatesubnet.spokevcna.oraclevcn.com.54214 > 172.16.2.88.http: Flags [S], seq 1863177286, win 62720, options [mss 8960,sackOK,TS val 3736111940 ecr 0,nop,wscale 7], length 0 08:57:10.964504 IP ih-instance-vcn-a.ihprivatesubnet.spokevcna.oraclevcn.com.54214 > 172.16.2.88.http: Flags [.], ack 464215720, win 490, options [nop,nop,TS val 3736111941 ecr 671369737], length 0 08:57:10.964551 IP ih-instance-vcn-a.ihprivatesubnet.spokevcna.oraclevcn.com.54214 > 172.16.2.88.http: Flags [P.], seq 0:75, ack 1, win 490, options [nop,nop,TS val 3736111941 ecr 671369737], length 75: HTTP: GET / HTTP/1.1 08:57:10.965048 IP ih-instance-vcn-a.ihprivatesubnet.spokevcna.oraclevcn.com.54214 > 172.16.2.88.http: Flags [.], ack 239, win 489, options [nop,nop,TS val 3736111942 ecr 671369738], length 0 08:57:10.965135 IP ih-instance-vcn-a.ihprivatesubnet.spokevcna.oraclevcn.com.54214 > 172.16.2.88.http: Flags [.], ack 873, win 485, options [nop,nop,TS val 3736111942 ecr 671369738], length 0 08:57:10.965351 IP ih-instance-vcn-a.ihprivatesubnet.spokevcna.oraclevcn.com.54214 > 172.16.2.88.http: Flags [F.], seq 75, ack 873, win 485, options [nop,nop,TS val 3736111942 ecr 671369738], length 0 08:57:10.965865 IP ih-instance-vcn-a.ihprivatesubnet.spokevcna.oraclevcn.com.54214 > 172.16.2.88.http: Flags [.], ack 874, win 485, options [nop,nop,TS val 3736111942 ecr 671369739], length 0 08:58:23.663598 IP ih-instance-vcn-a.ihprivatesubnet.spokevcna.oraclevcn.com.53200 > 172.16.2.88.http: Flags [S], seq 407465876, win 62720, options [mss 8960,sackOK,TS val 3736184640 ecr 0,nop,wscale 7], length 0 08:58:23.664381 IP ih-instance-vcn-a.ihprivatesubnet.spokevcna.oraclevcn.com.53200 > 172.16.2.88.http: Flags [.], ack 3047424129, win 490, options [nop,nop,TS val 3736184641 ecr 671442437], length 0 08:58:23.664430 IP ih-instance-vcn-a.ihprivatesubnet.spokevcna.oraclevcn.com.53200 > 172.16.2.88.http: Flags [P.], seq 0:75, ack 1, win 490, options [nop,nop,TS val 3736184641 ecr 671442437], length 75: HTTP: GET / HTTP/1.1 08:58:23.665005 IP ih-instance-vcn-a.ihprivatesubnet.spokevcna.oraclevcn.com.53200 > 172.16.2.88.http: Flags [.], ack 239, win 489, options [nop,nop,TS val 3736184641 ecr 671442438], length 0 08:58:23.665129 IP ih-instance-vcn-a.ihprivatesubnet.spokevcna.oraclevcn.com.53200 > 172.16.2.88.http: Flags [.], ack 873, win 485, options [nop,nop,TS val 3736184642 ecr 671442438], length 0 08:58:23.665297 IP ih-instance-vcn-a.ihprivatesubnet.spokevcna.oraclevcn.com.53200 > 172.16.2.88.http: Flags [F.], seq 75, ack 873, win 485, options [nop,nop,TS val 3736184642 ecr 6714 08:58:23.666655 IP ih-instance-vcn-a.ihprivatesubnet.spokevcna.oraclevcn.com.5 gs [.], ack 874, win 485, options [nop,nop,TS val 3736184643 ecr 671442440], l 08:58:24.529502 IP ih-instance-vcn-a.ihprivatesubnet.spokevcna.oraclevcn.com.5 gs [S], seq 3610633804, win 62720, options [mss 8960,sackOK,TS val 3736185506 0 08:58:24.530337 IP ih-instance-vcn-a.ihprivatesubnet.spokevcna.oraclevcn.com.5 gs [.], ack 575035162, win 490, options [nop,nop,TS val 3736185507 ecr 6714433 08:58:24.530386 IP ih-instance-vcn-a.ihprivatesubnet.spokevcna.oraclevcn.com.5 gs [P.], seq 0:75, ack 1, win 490, options [nop,nop,TS val 3736185507 ecr 6714 / HTTP/1.1 08:58:24.530886 IP ih-instance-vcn-a.ihprivatesubnet.spokevcna.oraclevcn.com.5 gs [.], ack 239, win 489, options [nop,nop,TS val 3736185507 ecr 671443304], l 08:58:24.530966 IP ih-instance-vcn-a.ihprivatesubnet.spokevcna.oraclevcn.com.5 gs [.], ack 873, win 485, options [nop,nop,TS val 3736185507 ecr 671443304], l 08:58:24.531347 IP ih-instance-vcn-a.ihprivatesubnet.spokevcna.oraclevcn.com.5 gs [F.], seq 75, ack 873, win 485, options [nop,nop,TS val 3736185508 ecr 6714 08:58:24.531891 IP ih-instance-vcn-a.ihprivatesubnet.spokevcna.oraclevcn.com.5 gs [.], ack 874, win 485, options [nop,nop,TS val 3736185508 ecr 671443305], l 08:58:25.562327 IP ih-instance-vcn-a.ihprivatesubnet.spokevcna.oraclevcn.com.5 gs [S], seq 3415948315, win 62720, options [mss 8960,sackOK,TS val 3736186539 0 08:58:25.563186 IP ih-instance-vcn-a.ihprivatesubnet.spokevcna.oraclevcn.com.5 gs [.], ack 2043572435, win 490, options [nop,nop,TS val 3736186540 ecr 671444 08:58:25.563244 IP ih-instance-vcn-a.ihprivatesubnet.spokevcna.oraclevcn.com.5 gs [P.], seq 0:75, ack 1, win 490, options [nop,nop,TS val 3736186540 ecr 6714 / HTTP/1.1 08:58:25.563718 IP ih-instance-vcn-a.ihprivatesubnet.spokevcna.oraclevcn.com.5 gs [.], ack 239, win 489, options [nop,nop,TS val 3736186540 ecr 671444337], l 08:58:25.563845 IP ih-instance-vcn-a.ihprivatesubnet.spokevcna.oraclevcn.com.5 gs [.], ack 873, win 485, options [nop,nop,TS val 3736186540 ecr 671444337], l 08:58:25.564627 IP ih-instance-vcn-a.ihprivatesubnet.spokevcna.oraclevcn.com.5 gs [F.], seq 75, ack 873, win 485, options [nop,nop,TS val 3736186541 ecr 6714 08:58:25.565113 IP ih-instance-vcn-a.ihprivatesubnet.spokevcna.oraclevcn.com.5 gs [.], ack 874, win 485, options [nop,nop,TS val 3736186542 ecr 671444338], l
-
출력을 분석합니다. 이 출력은 HTTP 트래픽이 인스턴스 A에서 전송되었음을 나타냅니다.
- 생성된 컬 요청의 첫 번째 출력 섹션입니다.
- 생성된 컬 요청의 두 번째 출력 섹션입니다.
- 소스 DNS/IP입니다.
- 대상 DNS/IP입니다.
- 포트입니다.
- TCP 플래그
로깅 지점 B: 스포크 VCN A 전용 서브넷에 로깅
이제 서브넷 레벨 로깅에서 패킷이 VCN의 서브넷에 표시되는지 확인합니다.
-
네트워킹, 가상 클라우드 네트워크, 스포크 VCN A, (프라이빗) 서브넷 세부정보, 로그로 이동하고
all
범주의 로그 이름을 누릅니다.- 작업 드롭다운 메뉴를 누릅니다.
- 로그 검색 탐색을 누릅니다.
-
사용자정의 필터에 다음 필터를 입력합니다.
data.destinationAddress='172.16.2.88'
.data.sourceAddress='172.16.1.93'
.
-
대상에 대한 필터가 추가됩니다.
-
소스에 대한 필터가 추가됩니다.
- 시간별 필터링: 과거 시간을 선택합니다.
- 막대 차트는 필터에서 사용하는 소스 및 대상에 대해 사용 가능한 로그 데이터가 있음을 나타냅니다.
- 아래로.
- 소스 IP를 확인합니다.
- 대상 IP를 확인합니다.
- 포트를 확인합니다.
- 위로 이동.
- 로그를 누릅니다.
로깅 지점 C: 허브 VCN 프라이빗 서브넷에 로깅
-
허브 VCN의 로그 이름을 누릅니다.
-
트래픽이 방화벽에서 인스턴스 B VCN으로 이동하지 않으므로 소스 및 대상 필터를 변경해야 합니다.
- 사용자정의 필터에 다음 필터를 입력합니다.
data.destinationAddress='172.16.0.20'
data.sourceAddress='172.16.1.93'
data.destinationPort='80'
- 막대 차트는 필터에서 사용하는 소스 및 대상에 대해 사용 가능한 로그 데이터가 있음을 나타냅니다.
- 아래로.
- 자세한 로깅 섹션을 살펴봅니다.
- 소스 IP를 확인합니다.
- 대상 IP를 기록해 둡니다.
- 포트를 적어 둡니다.
- 사용자정의 필터에 다음 필터를 입력합니다.
Logging Point D: pfSense 방화벽의 패킷 캡처
-
pfSense 방화벽 관리 콘솔로 이동합니다.
- 다운로드를 누릅니다.
- 캡처가 다운로드되었는지 확인합니다.
-
Wireshark에서 패킷 캡처를 엽니다.
- 다음 Wireshark 필터를 입력합니다.
(ip.dst == 172.16.2.88 && ip.src == 172.16.1.93) || (ip.dst == 172.16.2.88 && ip.src == 172.16.1.93) && http
- 소스 IP를 확인합니다.
- 대상 IP를 기록해 둡니다.
- 포트 또는 프로토콜을 확인합니다.
- 다음 Wireshark 필터를 입력합니다.
로깅 지점 E: 스포크 VCN B 프라이빗 서브넷에 로깅
-
로깅, 로그로 이동하고 스포크 VCN B에 대한 로그 이름을 누릅니다.
- 작업 드롭다운 메뉴를 누릅니다.
- 로그 검색 탐색을 누릅니다.
- 사용자정의 필터에 다음 필터를 입력합니다.
data.destinationAddress='172.16.2.88'
.data.sourceAddress='172.16.0.20'
.
- 막대 차트는 필터에서 사용하는 소스 및 대상에 대해 사용 가능한 로그 데이터가 있음을 나타냅니다.
- 아래로.
- 자세한 로깅 섹션을 살펴봅니다.
- 소스 IP를 확인합니다.
- 대상 IP를 기록해 둡니다.
- 포트를 적어 둡니다.
로깅 지점 F: 인스턴스 B의 Tcpdump
- 인스턴스 B의 SSH 세션으로 이동합니다.
- 생성된 tcpdump 출력을 확인합니다.
-
Tcpdump 출력
[opc@ih-instance-vcn-b ~]$ sudo tcpdump -i ens3 src 172.16.0.20 and port 80 dropped privs to tcpdump tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on ens3, link-type EN10MB (Ethernet), capture size 262144 bytes 08:56:50.489551 IP 172.16.0.20.23408 > ih-instance-vcn-b.ihprivatesubnet.spokevcnb.oraclevcn.com.http: Flags [S], seq 1817516973, win 62720, options [mss 8960,sackOK,TS val 3736091466 ecr 0,nop,wscale 7], length 0 08:56:50.491813 IP 172.16.0.20.23408 > ih-instance-vcn-b.ihprivatesubnet.spokevcnb.oraclevcn.com.http: Flags [.], ack 372277210, win 490, options [nop,nop,TS val 3736091468 ecr 671349263], length 0 08:56:50.491849 IP 172.16.0.20.23408 > ih-instance-vcn-b.ihprivatesubnet.spokevcnb.oraclevcn.com.http: Flags [P.], seq 0:75, ack 1, win 490, options [nop,nop,TS val 3736091468 ecr 671349263], length 75: HTTP: GET / HTTP/1.1 08:56:50.492311 IP 172.16.0.20.23408 > ih-instance-vcn-b.ihprivatesubnet.spokevcnb.oraclevcn.com.http: Flags [.], ack 239, win 489, options [nop,nop,TS val 3736091469 ecr 671349265], length 0 08:56:50.492327 IP 172.16.0.20.23408 > ih-instance-vcn-b.ihprivatesubnet.spokevcnb.oraclevcn.com.http: Flags [.], ack 873, win 485, options [nop,nop,TS val 3736091469 ecr 671349265], length 0 08:56:50.493247 IP 172.16.0.20.23408 > ih-instance-vcn-b.ihprivatesubnet.spokevcnb.oraclevcn.com.http: Flags [F.], seq 75, ack 873, win 485, options [nop,nop,TS val 3736091469 ecr 671349265], length 0 08:56:50.493667 IP 172.16.0.20.23408 > ih-instance-vcn-b.ihprivatesubnet.spokevcnb.oraclevcn.com.http: Flags [.], ack 874, win 485, options [nop,nop,TS val 3736091470 ecr 671349267], length 0 08:57:09.284597 IP 172.16.0.20.22060 > ih-instance-vcn-b.ihprivatesubnet.spokevcnb.oraclevcn.com.http: Flags [S], seq 3049648180, win 62720, options [mss 8960,sackOK,TS val 3736110261 ecr 0,nop,wscale 7], length 0 08:57:09.285040 IP 172.16.0.20.22060 > ih-instance-vcn-b.ihprivatesubnet.spokevcnb.oraclevcn.com.http: Flags [.], ack 728296369, win 490, options [nop,nop,TS val 3736110261 ecr 671368058], length 0 08:57:09.285102 IP 172.16.0.20.22060 > ih-instance-vcn-b.ihprivatesubnet.spokevcnb.oraclevcn.com.http: Flags [P.], seq 0:75, ack 1, win 490, options [nop,nop,TS val 3736110261 ecr 671368058], length 75: HTTP: GET / HTTP/1.1 08:57:09.285534 IP 172.16.0.20.22060 > ih-instance-vcn-b.ihprivatesubnet.spokevcnb.oraclevcn.com.http: Flags [.], ack 239, win 489, options [nop,nop,TS val 3736110262 ecr 671368059], length 0 08:57:09.285641 IP 172.16.0.20.22060 > ih-instance-vcn-b.ihprivatesubnet.spokevcnb.oraclevcn.com.http: Flags [.], ack 873, win 485, options [nop,nop,TS val 3736110262 ecr 671368059], length 0 08:57:09.285855 IP 172.16.0.20.22060 > ih-instance-vcn-b.ihprivatesubnet.spokevcnb.oraclevcn.com.http: Flags [F.], seq 75, ack 873, win 485, options [nop,nop,TS val 3736110262 ecr 671368059], length 0 08:57:09.286211 IP 172.16.0.20.22060 > ih-instance-vcn-b.ihprivatesubnet.spokevcnb.oraclevcn.com.http: Flags [.], ack 874, win 485, options [nop,nop,TS val 3736110263 ecr 671368059], length 0 08:57:10.964151 IP 172.16.0.20.47275 > ih-instance-vcn-b.ihprivatesubnet.spokevcnb.oraclevcn.com.http: Flags [S], seq 1863177286, win 62720, options [mss 8960,sackOK,TS val 3736111940 ecr 0,nop,wscale 7], length 0 08:57:10.964645 IP 172.16.0.20.47275 > ih-instance-vcn-b.ihprivatesubnet.spokevcnb.oraclevcn.com.http: Flags [.], ack 464215720, win 490, options [nop,nop,TS val 3736111941 ecr 671369737], length 0 08:57:10.964694 IP 172.16.0.20.47275 > ih-instance-vcn-b.ihprivatesubnet.spokevcnb.oraclevcn.com.http: Flags [P.], seq 0:75, ack 1, win 490, options [nop,nop,TS val 3736111941 ecr 671369737], length 75: HTTP: GET / HTTP/1.1 08:57:10.965157 IP 172.16.0.20.47275 > ih-instance-vcn-b.ihprivatesubnet.spokevcnb.oraclevcn.com.http: Flags [.], ack 239, win 489, options [nop,nop,TS val 3736111942 ecr 671369738], length 0 08:57:10.965243 IP 172.16.0.20.47275 > ih-instance-vcn-b.ihprivatesubnet.spokevcnb.oraclevcn.com.http: Flags [.], ack 873, win 485, options [nop,nop,TS val 3736111942 ecr 671369738], length 0 08:57:10.965612 IP 172.16.0.20.47275 > ih-instance-vcn-b.ihprivatesubnet.spokevcnb.oraclevcn.com.http: Flags [F.], seq 75, ack 873, win 485, options [nop,nop,TS val 3736111942 ecr 671369738], length 0 08:57:10.966035 IP 172.16.0.20.47275 > ih-instance-vcn-b.ihprivatesubnet.spokevcnb.oraclevcn.com.http: Flags [.], ack 874, win 485, options [nop,nop,TS val 3736111942 ecr 671369739], length 0 08:58:23.664041 IP 172.16.0.20.16336 > ih-instance-vcn-b.ihprivatesubnet.spokevcnb.oraclevcn.com.http: Flags [S], seq 407465876, win 62720, options [mss 8960,sackOK,TS val 3736184640 ecr 0,nop,wscale 7], length 0 08:58:23.664613 IP 172.16.0.20.16336 > ih-instance-vcn-b.ihprivatesubnet.spokevcnb.oraclevcn.com.http: Flags [.], ack 3047424129, win 490, options [nop,nop,TS val 3736184641 ecr 671442437], length 0 08:58:23.664620 IP 172.16.0.20.16336 > ih-instance-vcn-b.ihprivatesubnet.spokevcnb.oraclevcn.com.http: Flags [P.], seq 0:75, ack 1, win 490, options [nop,nop,TS val 3736184641 ecr 671442437], length 75: HTTP: GET / HTTP/1.1 08:58:23.665349 IP 172.16.0.20.16336 > ih-instance-vcn-b.ihprivatesubnet.spokevcnb.oraclevcn.com.http: Flags [.], ack 239, win 489, options [nop,nop,TS val 3736184641 ecr 671442438], length 0 08:58:23.666335 IP 172.16.0.20.16336 > ih-instance-vcn-b.ihprivatesubnet.spokevcnb.oraclevcn.com.http: Flags [.], ack 873, win 485, options [nop,nop,TS val 3736184642 ecr 671442438], length 0 08:58:23.666344 IP 172.16.0.20.16336 > ih-instance-vcn-b.ihprivatesubnet.spokevcnb.oraclevcn.com.http: Flags [F.], seq 75, ack 873, win 485, options [nop,nop,TS val 3736184642 ecr 671442438], length 0 08:58:23.666816 IP 172.16.0.20.16336 > ih-instance-vcn-b.ihprivatesubnet.spokevcnb.oraclevcn.com.http: Flags [.], ack 874, win 485, options [nop,nop,TS val 3736184643 ecr 671442440], length 0 08:58:24.529970 IP 172.16.0.20.27720 > ih-instance-vcn-b.ihprivatesubnet.spokevcnb.oraclevcn.com.http: Flags [S], seq 3610633804, win 62720, options [mss 8960,sackOK,TS val 3736185506 ecr 0,nop,wscale 7], length 0 08:58:24.530465 IP 172.16.0.20.27720 > ih-instance-vcn-b.ihprivatesubnet.spokevcnb.oraclevcn.com.http: Flags [.], ack 575035162, win 490, options [nop,nop,TS val 3736185507 ecr 671443303], length 0 08:58:24.530545 IP 172.16.0.20.27720 > ih-instance-vcn-b.ihprivatesubnet.spokevcnb.oraclevcn.com.http: Flags [P.], seq 0:75, ack 1, win 490, options [nop,nop,TS val 3736185507 ecr 671443303], length 75: HTTP: GET / HTTP/1.1 08:58:24.531020 IP 172.16.0.20.27720 > ih-instance-vcn-b.ihprivatesubnet.spokevcnb.oraclevcn.com.http: Flags [.], ack 239, win 489, options [nop,nop,TS val 3736185507 ecr 671443304], length 0 08:58:24.531079 IP 172.16.0.20.27720 > ih-instance-vcn-b.ihprivatesubnet.spokevcnb.oraclevcn.com.http: Flags [.], ack 873, win 485, options [nop,nop,TS val 3736185507 ecr 671443304], length 0 08:58:24.531619 IP 172.16.0.20.27720 > ih-instance-vcn-b.ihprivatesubnet.spokevcnb.oraclevcn.com.http: Flags [F.], seq 75, ack 873, win 485, options [nop,nop,TS val 3736185508 ecr 671443304], length 0 08:58:24.532042 IP 172.16.0.20.27720 > ih-instance-vcn-b.ihprivatesubnet.spokevcnb.oraclevcn.com.http: Flags [.], ack 874, win 485, options [nop,nop,TS val 3736185508 ecr 671443305], length 0 08:58:25.562872 IP 172.16.0.20.33101 > ih-instance-vcn-b.ihprivatesubnet.spokevcnb.oraclevcn.com.http: Flags [S], seq 3415948315, win 62720, options [mss 8960,sackOK,TS val 3736186539 ecr 0,nop,wscale 7], length 0 08:58:25.563301 IP 172.16.0.20.33101 > ih-instance-vcn-b.ihprivatesubnet.spokevcnb.oraclevcn.com.http: Flags [.], ack 2043572435, win 490, options [nop,nop,TS val 3736186540 ecr 671444336], length 0 08:58:25.563424 IP 172.16.0.20.33101 > ih-instance-vcn-b.ihprivatesubnet.spokevcnb.oraclevcn.com.http: Flags [P.], seq 0:75, ack 1, win 490, options [nop,nop,TS val 3736186540 ecr 671444336], length 75: HTTP: GET / HTTP/1.1 08:58:25.563812 IP 172.16.0.20.33101 > ih-instance-vcn-b.ihprivatesubnet.spokevcnb.oraclevcn.com.http: Flags [.], ack 239, win 489, options [nop,nop,TS val 3736186540 ecr 671444337], length 0 08:58:25.563960 IP 172.16.0.20.33101 > ih-instance-vcn-b.ihprivatesubnet.spokevcnb.oraclevcn.com.http: Flags [.], ack 873, win 485, options [nop,nop,TS val 3736186540 ecr 671444337], length 0 08:58:25.564877 IP 172.16.0.20.33101 > ih-instance-vcn-b.ihprivatesubnet.spokevcnb.oraclevcn.com.http: Flags [F.], seq 75, ack 873, win 485, options [nop,nop,TS val 3736186541 ecr 671444337], length 0 08:58:25.565259 IP 172.16.0.20.33101 > ih-instance-vcn-b.ihprivatesubnet.spokevcnb.oraclevcn.com.http: Flags [.], ack 874, win 485, options [nop,nop,TS val 3736186542 ecr 671444338], length 0
-
출력을 분석합니다. 이 출력은 HTTP 트래픽이 허브 방화벽 IP에서 수신되었음을 나타냅니다.
- 생성된 컬 요청의 첫 번째 출력 섹션입니다.
- 생성된 컬 요청의 두 번째 출력 섹션입니다.
- 수행된 컬 요청의 세 번째 출력 섹션입니다.
- 소스 DNS/IP입니다.
- 대상 DNS/IP입니다.
- 포트입니다.
- TCP 플래그
주: 다른 시나리오의 경우 로그, 패킷 캡처 및 tcpdump를 시나리오 1과 동일하게 수집합니다.
시나리오 2: 스포크 VCN 인스턴스에서 허브 인스턴스로 패킷 팔로우
시나리오 3: 허브 인스턴스에서 스포크 VCN 인스턴스로 패킷 팔로우
시나리오 4: 스포크 VCN 인스턴스에서 인터넷으로 패킷 팔로우
시나리오 5: 스포크 VCN 인스턴스에서 OCI 서비스 네트워크로 패킷 팔로우
시나리오 6: 허브 인스턴스에서 인터넷으로 패킷 팔로우
시나리오 7: 인터넷에서 허브 인스턴스로 패킷 팔로우
시나리오 8: 온프레미스에서 스포크 VCN 인스턴스로 패킷 팔로우
시나리오 9: Spoke VCN 인스턴스에서 온프레미스(On-Premise)로 패킷 이동
시나리오 10: 원격 컴퓨터에서 로드 밸런서까지 패킷에 따라 VCN 인스턴스 스포크
확인
- 작성자 - Iwan Hoogendoorn(OCI 네트워크 전문가)
추가 학습 자원
docs.oracle.com/learn에서 다른 실습을 탐색하거나 Oracle Learning YouTube 채널에서 더 많은 무료 학습 콘텐츠에 액세스하세요. 또한 Oracle Learning Explorer가 되려면 education.oracle.com/learning-explorer을 방문하십시오.
제품 설명서는 Oracle Help Center를 참조하십시오.
Follow the Packets in a Hub and Spoke VCN Routing Architecture inside Oracle Cloud Infrastructure
G12467-02
August 2024