반응형
반응형
오늘은 리눅스 커널 내 pr_debug를 활용해 디버깅 메시지를 출력하는 예제에 대해 써보려고 한다. 1. pr_debug 기본 사용법기본 사용법은 아래와 같고, 출력 메시지는 일반적으로 dmesg나 /var/log/messages를 통해 확인할 수 있다. 근데 CONFIG_DYNAMIC_DEBUG 또는 CONFIG_DEBUG가 활성화되지 않으면 아무 출력도 발생하지 않는다. (pr_debug 동작은 커널 설정(.config)에 의존한다.#include pr_debug("This is a debug message: variable=%d\n", my_variable); (1) CONFIG_DYNAMIC_DEBUG해당 컨피그가 활성화되면 디버깅 메시지가 동적으로 활성화/비활성화 가능하다. 디버깅 메시지를 런..
1. 카고(Cargo)란?카고는 러스트 빌드 시스템 및 패키지 매니저로 코드 빌드나 코드 작성에 필요한 외부 라이브러리(dependency)를 다운로드할 때나, 라이브러리를 제작할 때 겪는 귀찮은 일들을 줄여주는 도구이다. 아래의 명령어로 카고가 설치되어 있는지 확인해보자.cargo --version2. 카고로 프로젝트 생성하기본인이 원하는 디렉토리에서 아래의 명령어로 cargo 디렉토리 및 파일들을 생성해보자. hello_cargo 라는 이름으로 지정했고, 카고는 동일한 이름의 디렉토리 안에 파일들을 생성한다. hello_cargo 안으로 들어가 ls 명령어로 조회해보자.$ cargo new hello_cargo$ cd hello_cargo그럼 위와 같이 hello_cargo 안에 git, Cargo...
1. Rust 설치러스트 설치는 rustup이라는 러스트 버전 및 러스트 관련 도구를 관리하는 커맨드 라인 도구를 이용해 설치할 예정이다. 인터넷 연결이 되어있어야 하며, 쉘에서 아래의 명령어를 통해 rustup을 설치해주자. * 참고: https://rust-kr.org/pages/install/& curl https://sh.rustup.rs -sSf | sh -s 그럼 위와같이 rust가 설치될 것이다. rustc --version 명령어를 통해 나오는 결과를 통해 설치된 러스트의 버전과 hash, 커밋 날짜를 확인할 수 있다. 러스트가 컴파일 결과를 하나의 파일로 묶는데 사용하는 링커(linker)도 필요하므로, 함께 설치해준다. macOS에서는 아래의 커맨드로 C 컴파일러를 설치할 수 있다. 필..
TACACS+는 네트워크 장비에서 인증(Authentication), 권한 부여(Authorization), 계정 관리(Accounting)를 처리하는 프로토콜로 네트워크 운영 엔지니어라면 자주 접할 수 있는 프로토콜이다. 오늘은 Ubuntu에 TACACS+ 서버를 구축하고systemd 서비스 매니저 작성을 해보겠다. 1) TACACS+ 설치1. 먼저 github에서 tac_plus 를 설치한다.https://github.com/facebook/tac_plus.git 2. 아래 명령어를 통해 tacacs+ 를 설치한다.- configure가 실행되지 않는 경우 build-essential, libwrap0-dev, libpam0g-dev, libssl-dev 등과 같은 패키지가 필요할 수 있으니 필요하..
1. STP(Spanning Tree Protocol) 개념STP(Spanning Tree Protocol)이란?이더넷 프레임을 주고 받는 2계층 프로토콜로, *루프(Loop)*가 발생하는 구조에서 스위치의 특정 포트를 논리적으로 차단(Block)시켜 루프가 발생하지 않도록 한다. 동작 중인 스위치의 포트가 Down이 되면, 차단(Block) 상태였던 포트를 다시 전송 상태로 바꾸어 통신이 끊기지 않도록 한다.루프를 방지하기 위한 경로를 구성하는 프레임을 *BPDU(Bridge Protocol Data Unit)*라 한다.루프가 발생할 수 밖에 없는 구조에서는 반드시 STP를 활성화 시켜야 함 이렇게만 써놓으면 STP를 처음 접하는 사람들에겐 다소 어렵게 느껴지고 도대체 무슨말인지 전혀 와닿지 않을 것이..
1. Mac Adress TableMAC Adress Table(Mac 주소 테이블)은 목적지 MAC 주소와 Port(포트) 번호가 기록된 데이터베이스로 스위치는 이것을 참조하여 수신 프레임을 전송한다.MAC 주소 테이블은 CAM(Content Addressable Memory) 테이블이라고도 한다.아래는 Cisco 스위치 혹은 라우터에서 mac table을 조회하는 command이다.SW1# show mac addressMAC Address Table의 Port 번호가 CPU로 설정되어 있으면 해당 MAC 주소의 목적지는 스위치 자신이다. MAC Address Table의 Port 번호는 해당 MAC 주소를 가진 장비가 해당 포트로 전송하면 그쪽 어딘가에 있음을 의미한다. (예를 들어 show mac ..