일일 정리

이더넷의 확장 - 브릿지(Bridge), 브릿지의 작동 방식, 리눅스 명령어(리다이렉트, cat, echo, $, $(), cp, mv, rm, ln)

mysecurity 2025. 1. 7. 17:49
브릿지 (Bridge)

 

브릿지는 맥주소를 기반으로 네트워크의 패킷을 필터링한다.

브릿지는 다음의 5가지 기능을 가지고 있다.

 

- Learning

패킷의 이동이 있으면 소스 맥주소를 살펴보고, 브릿지 테이블에 저장되지 않은 주소라면 테이블에 저장한다.

 

- Filtering

패킷의 목적지 맥주소가 자신의 브릿지 테이블에 저장되어있을 때, 목적지가 위치하지 않은 포트로는 패킷의 흐름을 막는다.

 

- Forwarding

패킷의 목적지 맥주소가 자신의 브릿지 테이블에 저장되어있을 때, 목적지로 패킷을 전송한다.

 

- Flooding

패킷의 목적지 맥주소가 자신의 브릿지 테이블에 저장되지 않은 주소일 때, 패킷이 들어온 포트를 제외한 나머지 연결된 포트로 패킷을 흘려보낸다.

 

- Aging

오래되어 불필요한 데이터는 폐기한다.

 

브릿지의 작동 방식

 

브릿지는 패킷의 이동이 있을 때 출발지의 맥주소를 브릿지 테이블에 저장해 놓는다. 이 테이블의 정보를 바탕으로 목적지 맥주소를 알고 있다면 아는대로 처리하고, 모른다면 모든 포트로 패킷을 흘려 보낸다.

세 개의 포트가 연결된 브릿지

 

초기 브릿지 테이블

 

위의 그림과 같이 네트워크와 브릿지 테이블이 구성되어있을 때, 브릿지의 작동 방식은 다음과 같이 예를 들 수 있다.  

 

A에서 B로 패킷을 보낼 경우

A와 같은 네트워크에 연결된 컴퓨터에는 모두 A가 보낸 패킷이 전송되고, 본래 목적지였던 B만이 이 패킷에 응답하고, 다른 컴퓨터는 이 패킷을 폐기한다. 이때 A가 보낸 패킷은 브릿지로도 전송된다. 브릿지는 출발지 A의 맥주소를 브릿지 테이블에 저장하고(learning), B에 대한 정보는 없으므로 패킷이 들어온 1번 포트를 제외한 2, 3번 포트에 모두 패킷을 뿌린다(flooding).

 

G에서 E로 패킷을 보낼 경우

G와 같은 네트워크에 연결된 컴퓨터에는 모두 G가 보낸 패킷이 전송되고, 브릿지에게도 마찬가지로 전송된다. 브릿지는 출발지 G의 맥주소를 브릿지 테이블에 저장하고, 목적지 E에 대한 정보는 없으므로 자신의 1,2번 포트에 모두 패킷을 뿌린다. 본래 목적지였던 E만이 이 패킷에 응답하고, 다른 컴퓨터는 이 패킷을 폐기한다.

 

C에서 G로 패킷을 보낼 경우

C와 같은 네트워크에 연결된 컴퓨터에는 모두 C가 보낸 패킷이 전송되고, 브릿지에게도 마찬가지로 전송된다. 브릿지는 출발지 C의 맥주소를 브릿지 테이블에 저장한다. 이때 목적지 G의 맥주소를 테이블에 이미 저장하고 있으므로 2번 포트로는 패킷을 보내지 않고(filtering), 3번 포트에 패킷을 전송한다(forwarding).

 

리눅스 명령어

 

※ 리다이렉트

>   : 표준 출력 지시자

# command  >  파일 : 명령 결과를 파일로 저장한다.

 

>> : 추가 표준 출력 지시자

# command  >>  파일 : 명령 결과를 파일에 추가한다.

 

<   : 표준 입력 지시자

# command  <  파일 : 파일의 내용을 명령의 입력 값으로 사용한다.

 

  cat

파일의 입출력을 제어한다.

# cat  [옵션]  [출력 대상 파일]

-n 옵션: 행 단위 번호를 출력한다.

-b 옵션: 공백 라인을 제외하고 행 단위 번호를 출력한다.

 

# cat  a.txt                      : a.txt 파일의 내용을 출력한다.

# cat < a.txt > b.txt         : a.txt 파일의 내용을 b.txt 파일에 입력한다.

# cat < /dev/null > a.txt  : /dev/null 의 내용을 a.txt 파일에 입력한다.

# cat > b.txt                    : b.txt 파일에 내용을 입력할 수 있다. b.txt파일이 없다면 생성한다. ^c 혹은 ^d를 통해 입력을 종                                            료할 수 있다.

^c, ^d의 차이점

^c는 입력중인 행의 입력을 취소한 채로 저장된다.

^d는 입력중인 행의 내용도 그대로 저장된다.

 

  echo

환경변수나 입력 내용을 출력한다.

# echo [환경변수 | 문자열]

리다이렉트를 이용한 파일 생성도 가능하다.

 

# echo $HOME   : 환경변수 HOME에 들어있는 값을 출력한다.

# echo '$HOME'  : 단일 인용 부호(이스케이프코드)안에 있는 글자는 그냥 문자로 해석해 '  ' 안의 문자를 그대로 출력한다.

 

  env

모든 환경 변수를 출력한다.

 

  $, $()

변수연산자를 나타내는 것으로 $PATH, $CLASS_PATH 등의 환경 변수를 표현한다.

export명령어를 이용해 환경변수를 생성할 수 있다.

 

[root@linux~]# export TEST="AA"

[root@linux~]# echo $TEST

AA

 

$(command)는 명령의 실행 결과를 출력한다.

 

[root@linux~]# echo 현재 디렉토리는 $(pwd)입니다.

현재 디렉토리는 /root입니다.

[root@linux~]# echo "현재 디렉토리는 $(pwd)입니다."

현재 디렉토리는 /root입니다.

[root@linux~]# echo '현재 디렉토리는 $(pwd)입니다.'

현재 디렉토리는 $(pwd)입니다.

 

  cp

파일이나 디렉토리를 복사한다.

# cp [옵션]  원본파일 복사파일명

‐a 옵션  :  원본의 속성유지

‐r 옵션   : 하위 디렉토리나 파일모두 복사

‐f 옵션   : 강제 실행

‐p 옵션  :  파일의 소유와 권한등을 보존한채 복사

‐u 옵션  : 새파일 덮어쓰기 금지

 

처음부터 그냥 복사할때 -arpf 를 붙여버리면 편하다.

 

윈도우에서 모든 파일을 나타내는 표현 :  *.*
유닉스에서 모든 파일을 나타내는 표현 :  *

 

cp -arpf * /test/ 
위와 같이 치면 모든 파일을 test 디렉토리로 복사한다.

마지막에 /를 치면 디렉토리라는 뜻으로, 꼭 /를 치는 습관이 필요하다.

 

  mv

파일이나 디렉토리를 이동한다. 또한 이름을 바꿀 때도 사용한다.

# mv [옵션]  원본파일 이동파일명

 

mv a.txt b.txt : a.txt가 b.txt로 이름이 바뀐다.

‐f 옵션           : 강제 실행한다.

 

  rm

파일이나 디렉토리를 삭제한다.

# rm [옵션]  대상파일

‐f 옵션: 강제로 실행한다.

‐r 옵션: 대상 중에 디렉토리가 있는 경우 디렉토리도 삭제한다.

 

  ln

링크파일 생성 (소프트, 하드)

# ln  [옵션]  원본파일 링크파일

 

소프트 링크 : 원본 파일의 위치정보를 가지는 단축 아이콘으로 특정 파일을 가리키고 있는 파일로 별도의 inode를 가진다. 때문에 원본 파일이 삭제되면 쓰레기 파일이 된다.

 

하드 링크 : 원본 파일과 동일한 inode를 가진다. 때문에 원본이었던 파일이 삭제 되더라도 동일 inode를 갖고 있는 링크 파일은 여전히 사용 가능하다.

 

‐s 옵션: 소프트 링크를 생성한다. (디렉토리의 경우 소프트 링크만 가능하다.)