반응형

[SOME/IP] vsomeip 다운로드, 빌드, 설치 및 실행하기 - 리눅스 용  

ubuntu 20.04 버전에서 vsomeip 빌드하고, routingmanagerd를 실행하여 보도록 하겠습니다!

 

git  및 cmake 설치하기

git으로 코드를 clone해야하기 때문에 우선 git을 먼저 설치해봅니다.

아래 명령어를 이용해 설치합니다. 

apt install git
apt install cmake

vsomeip git 다운로드 및 빌드하기

아래 명령어로 최신 vsomeip git을 clone합니다. 

# git clone https://github.com/COVESA/vsomeip.git

git clone을 하면 아래와 같이 최신 코드를 받아오는 것을 볼 수 있습니다. 

 

그럼 이제 아래 명령어를 이용하여 빌드해보도록 하겠습니다.

mkdir build
cd build
cmake ..
make

위 명령어를 따라하면 아래와 같이 빌드가 시작됩니다. 

빌드하는데 시간이 조금 오래 걸립니다. 

빌드가 완료되면 아래와 같이 so library 파일이 생성되고, examples 폴더 안에는 routingmanagerd binary가 생성되는 것을 볼 수 있습니다. 

 

빌드된 vsomeip 파일 설치하기

아래 명령어를 이용하여, 빌드된 결과물들을 리눅스 시스템에 설치합니다.

make install

 

routingmanagerd 실행하기

routingmanagerd를 실행하면 아래와 같이 로그가 출력되는 것을 볼 수 있습니다

반응형
반응형

Cisco Packet Tracer 설치하기 - 무료버전 (윈도우용)

 

Cisco Packet Tracer는 하드웨어가 필요 없는 가상 실험실에서 네트워킹, IoT 및 사이버 보안 기술을 연습할 수 있는 강력한 네트워크 시뮬레이션 도구입니다. 이 시뮬레이션 프로그램을 다운로드하여 설치 및 실행까지 해보도록 하겠습니다.

 

다운로드

우선 아래 링크에 접속합니다. 

Cisco Packet Tracer - Networking Simulation Tool (netacad.com)

 

Cisco Packet Tracer

Teaching with Packet Tracer Discover how Packet Tracer helps instructors teach complex networking concepts. Learn More

www.netacad.com

우선 아래 경로를 통해 로그인합니다. 아이디가 없으면 가입하여 로그인합니다. 가입하는 절차는 매우 간단합니다.

로그인한 이우에는 아래 링크에 접속합니다. 

Cisco Skills For All

 

Skills for All Resource Hub

Your one-stop for learning resources used within our courses such as hands-on practice activities and our network simulation tool, Cisco Packet Tracer.

skillsforall.com:443

그러면 아래와 같이 다운로드할 수 있는 파일이 표시됩니다. 

각 OS에 맞는 파일을 다운로드합니다. Windows 64 bit 용은 용량이 223 MB 정도 됩니다. 

 

설치하기

다운로드가 완료되면 설치 프로그램을 실행하여 설치를 진행합니다.

실행하기

설치가 완료되어, 실행파일을 실행시키면 아래와 같이 프로그램이 실행됩니다. 

이제부터 시뮬레이션으로 실습할 수 있게 됩니다. 

 

반응형
반응형

[리눅스 기반 브릿지] 3. 브리지 및 라우터로 사용되는  machine

참조 : https://ebtables.netfilter.org/br_fw_ia/br_fw_ia.html#section3

 

ebtables/iptables interaction on a Linux-based bridge

ebtables/iptables interaction on a Linux-based bridge 1. Introduction This document describes how iptables and ebtables filtering tables interact on a Linux-based bridge. Getting a bridging firewall on a 2.4.x kernel consists of patching the kernel source

ebtables.netfilter.org

IP 코드가 통과되는 부분입니다.

그림 3a. IP 코드 관문

다음은 iptables 패킷 탐색 방식입니다.

그림 3b. 라우팅 테이블(iptables) 탐색 프로세스

iptables NAT OUTPUT 체인은 라우팅 결정 후에 위치합니다. 이 부분은  DNAT에 대해 너무 늦습니다. IP 패킷이 DNAT된 경우 경로를 다시 지정하여 해결됩니다. 이것은 Linux 커널의 표준 동작입니다.

 

그림 3a와 3b는 iptables 체인이 IP 후크에 연결된 위치를 명확하게 보여줍니다. 브릿지 코드와 netfilter가 커널에서 활성화되면 iptables 체인도 브리징 코드의 후크에 연결됩니다. 그러나 이것이 더 이상 표준 IP 코드 후크에 연결되지 않는다는 의미는 아닙니다. 브리징 코드와 접촉하는 IP 패킷의 경우 br-nf 코드는 iptables 체인이 통과할 네트워크 코드의 위치를 ​​결정합니다. 분명히 동일한 패킷이 체인을 두 번 통과하지 않는다는 것이 보장됩니다. 브리지 코드와 접촉하지 않는 모든 패킷은 그림 3b와 같이 표준 방식으로 iptables 체인을 통과합니다.

단일 IP 패킷/프레임이 NAT PREROUTING, FILTER INPUT, NAT OUTPUT, FILTER OUTPUT 및 NAT POSTROUTING ebtables 체인을 통과하는 것을 볼 수 있습니다.

 

이것은 브리지가 라우터로도 사용될 때 발생할 수 있습니다. 해당 IP 패킷을 포함하는 이더넷 프레임은 브리지의 대상 MAC 주소를 가지지만 목적지 IP 주소는 브리지의 주소가 아닙니다. iptables 체인을 포함하여 다음은 IP 패킷이 브리지/라우터를 통해 실행되는 방식입니다.

 

그림 3. 브리지/라우터는 패킷을 브리지 인터페이스로 라우팅함

이것은 라우팅 결정이 패킷을 브리지 인터페이스로 보낸다고 가정합니다. 라우팅 결정이 패킷을 브릿지가 아닌 인터페이스로 보내는 경우 다음과 같은 현상이 발생합니다.

그림 3d. 브리지/라우터는 패킷을 브리지가 아닌 인터페이스로 라우팅

그림 3c와 3d는 IP 패킷이 브리지 포트에 도착했다고 가정합니다. 여기에서 분명히 "비대칭"인 것은 iptables PREROUTING 체인이 ebtables INPUT 체인보다 먼저 탐색되지만 기능을 희생하지 않고는 도움이 될 수 없다는 것입니다. 

반응형
반응형

[리눅스 기반 브릿지] 2. 이더넷 프레임이 ebtables 체인을 통과하는 방법

참조 : http://ebtables.netfilter.org/br_fw_ia/br_fw_ia.html#section2

 

ebtables/iptables interaction on a Linux-based bridge

ebtables/iptables interaction on a Linux-based bridge 1. Introduction This document describes how iptables and ebtables filtering tables interact on a Linux-based bridge. Getting a bridging firewall on a 2.4.x kernel consists of patching the kernel source

ebtables.netfilter.org

 

ebtables는 TCP/IP 네트워크 모델에 의한 OSI 계층 2(데이터 링크 계층) 또는 계층 1(링크 계층, 네트워크 액세스 계층)에 에서 동작합니다. 

이더넷 계층에서 작동하는 브리지에 따라 로컬 컴퓨터로 향하는 패킷이 반드시 IP 레이어에 따라 로컬 컴퓨터로 향하는 것은 아닙니다. 이것은 라우팅이 작동하는 방식입니다(MAC 대상은 라우터이고 IP 대상은 통신하려는 실제 대상자입니다).

그림 2a. 일반 프레임 통과 방식

 

Linux 브리징 코드에는 6개의 관문이 정의되어 있으며, 그 중 ebtables용으로 BROUTING 관문이 추가되었습니다.

그림 2b. 이더넷 브리징 관문

관문은 소프트웨어가 해당 위치를 통과하는 패킷/프레임을 처리하기 위해 자체적으로 연결할 수 있는 네트워크 코드의 특정 위치를 말합니다. 예를 들어, ebtables FORWARD 체인을 담당하는 커널 모듈은 브리지 FORWARD 관문에 연결됩니다. 이것은 모듈이 커널에 로드되거나 부팅될 때 수행됩니다.

ebtables BROUTING 및 PREROUTING 체인은 브리징 결정 전에 통과하므로 이러한 체인은 브리지에서 무시할 프레임도 볼 수 있습니다. 이 체인을 사용할 때 이를 고려해야 합니다. 또한 체인은 전달되지 않는 브리지 포트로 들어오는 프레임을 볼 수 없습니다.
프레임에 대한 브리지의 결정(그림 2b 참조)은 다음 중 하나일 수 있습니다.

1) 대상 MAC 주소가 브리지의 다른 쪽에 있는 경우 브리지합니다.
2) 대상 MAC이 있는 상자의 위치가 브리지에 알려지지 않은 경우 모든 포워딩 브리지 포트에 플러딩합니다.
3) 목적지 MAC 주소가 브리지 또는 포트 중 하나의 주소인 경우 상위 프로토콜 코드(IP 코드)로 전달합니다.
4) 대상 MAC 주소가 브리지의 같은 쪽에 있으면 무시합니다.

 

그림 2c. 브리징 테이블(ebtables) 통과 프로세스

Ebtables에는 그림 2c와 같이 filter, nat 및 broute의 세 가지 테이블이 있습니다.

broute 테이블에는 BROUTING 체인이 있습니다.
filter 테이블에는 FORWARD, INPUT 및 OUTPUT 체인이 있습니다.
nat 테이블에는 PREROUTING, OUTPUT 및 POSTROUTING 체인이 있습니다.

filter OUTPUT과 nat OUTPUT 체인은 분리되어 사용됩니다.

 

그림 2b와 2c는 ebtables 체인이 브리지 관문에 부착된 위치를 명확하게 보여줍니다.

브리지에 종속된 NIC가 프레임을 수신하면 프레임은 먼저 BROUTING 체인을 거칩니다. 이 체인에서는 프레임을 Routing할지 브리지할지 여부를 선택할 수 있어 brouter를 만들 수 있습니다. 

BROUTING은 라우터가 일부 프레임/패킷을 연결하고(즉, 링크 계층 정보를 기반으로 전달) 다른 프레임/패킷을 라우팅(즉, 네트워크 계층 정보를 기반으로 전달)하는 장치입니다. 브리지/Route 결정은 구성 정보를 기반으로 합니다.
예를 들어, Router는 두 네트워크 사이의 특정 트래픽(NetBEUI, ARP 등)을 브리징하는 동안 2개의 네트워크 사이의 IP 트래픽에 대한 일반 Router 역할을 하는 데 사용할 수 있습니다. IP 라우팅 테이블은 브리지 논리 장치를 사용하지 않으며 대신 상자에는 브리지 포트(브리지 종속 NIC)이기도 한 물리적 네트워크 장치에 할당된 IP 주소가 있습니다.
BROUTING 체인의 기본 결정은 브리징입니다.

다음으로 프레임은 PREROUTING 체인을 통과합니다. 이 체인에서 프레임의 대상 MAC 주소(DNAT)를 변경할 수 있습니다. 프레임이 이 체인을 통과하면 브리징 코드가 프레임을 보낼 위치를 결정합니다. 브리지는 대상 MAC 주소를 보고 이를 수행하며 네트워크 계층 주소(예: IP 주소)는 신경 쓰지 않습니다.

브리지가 프레임이 로컬 컴퓨터를 대상으로 한다고 결정하면 프레임은 INPUT 체인을 통과합니다. 이 체인에서 브리지 상자로 향하는 프레임을 필터링할 수 있습니다. INPUT 체인을 통과한 후 프레임은 네트워크 계층 코드(예: IP 코드)로 전달됩니다. 따라서 라우팅된 IP 패킷은 ebtables FORWARD 체인이 아니라 ebtables INPUT 체인을 통과합니다. 이것은 논리적입니다.

 

그림 2d. 들어오는 프레임의 체인 통과

그렇지 않으면 프레임이 브리지의 다른 쪽으로 보내질 수 있습니다. 그렇다면 프레임은 FORWARD 체인과 POSTROUTING 체인을 통과합니다. 브리지된 프레임은 FORWARD 체인에서 필터링할 수 있습니다. POSTROUTING 체인에서 MAC 소스 주소(SNAT)를 변경할 수 있습니다.

 

그림 2e. 전달된 프레임의 체인 통과

로컬에서 생성된 프레임은 브리징 결정 후 nat OUTPUT, filter OUTPUT 및 nat POSTROUTING 체인을 통과합니다. NAT OUTPUT 체인은 대상 MAC 주소를 변경할 수 있도록 하고 filter OUTPUT 체인은 브리지 박스에서 발생하는 프레임을 필터링할 수 있습니다. nat OUTPUT 체인은 브리징 결정 후에 탐색되므로 실제로는 너무 늦습니다. 속도를 빠르게 하려면, 이 부분을 변경해야 합니다. nat POSTROUTING 체인은 위에서 설명한 것과 동일합니다.

 

그림 2f. 나가는 프레임의 체인 통과

대상 장치가 논리적 브리지 장치인 경우 라우팅된 프레임이 이 세 가지 체인을 통과할 수도 있습니다.

반응형

+ Recent posts