728x90
네트워크의 기초
TCP/IP 프로토콜
- 프로토콜이란 컴퓨터와 컴퓨터 사이에서 데이터를 어떻게 주고받을 것인지를 정의한 통신 규약
- 인터넷이라고 부르는 네트워크는 TCP/IP 라는 프로토콜에 따라 데이터를 주고받음
- TCP/IP 프로토콜은 5계층으로 구성
- 전송 계층의 TCP와 네트워크 계층의 IP로 전체 프로토콜을 대표하여 TCP/IP 프로토콜 이라고 한다.
계층 | 기능 | 프로토콜 | 전송 단위 |
응용 계층 | 서비스 제공 응용 프로그램 | DNS, FTP, SSH, HTTP, Teinet | 메시지 |
전송 계층 | 응용 프로그램으로 데이터를 전달, 데이터흐름 제어 및 전송 신뢰성 담당 | TCP, UDP | 세그먼트 |
네트워크 계층 | 주소 관리 및 경로 탐색 | IP, ICMP | 패킷 |
링크 계층 | 네트워크 장치 드라이버 | ARP | 프레임 |
물리 계층 | 케이블 등 전송 메체 | 구리선 광케이블, 무선 | 비트 |
주소
일반적으로 네트워크 인터페이스는 거의 대부분 이더넷 방식을 사용한다.
컴퓨터의 주소는 MAC 주소, IP 주소, 호스트 명이 있다.
MAC 주소
- MAC는 'media access control' 의 약자이다.
- MAC 주소는 하드웨어를 위한 주소이며 다른 말로 이더넷 주소, 하드웨어 주소, 물리 주소 라고도 한다.
- MAC 주소는 네트워크 인터페이스 카드 에서 저장된 주소라고 생각하면 된다.
- MAC 주소는 쌍점: 이나 붙임표로 구분되는 여섯 개의 16진수로 구성되며, 총 48비트이다.
- 앞의 세 자리는 제조사 번호, 뒤의 세 자리는 일련번호
00:50:56:3e:3c:fe 00:50:56 = 제조사 번호 ( IEEE에서 지정 ) 3e:3c:fe = 일련 번호( 제조사에서 지정 ) |
IP주소
- 우리가 보통 인터넷 주소라고 부르는 것이 IP주소 이다.
- IP 주소는 인터넷으로 연결된 네트워크에서 각 컴퓨터를 구분하기 위해 사용된다.
- IP 주소는 1바이트의 크기를 가진 네 자리 숫자로 구성되므로 총 4바이트 이다.
- 예를들어 192.198.100.5 와 같이 네 가지의 숫자와 마침표로 구성됨
- IP 주소는 네트워크를 구분하는 네트워크 주소 부분과, 해당 네트워크 안에서 특정 컴퓨터를 식별하는 호스트 주소로 구분된다.
- IP 주소는 총 32비트 중 몇 비트를 네트워크로 사용하고 나머지 몇 비트를 호스트 부분으로 사용하는지 에 따라 A클래스, B클래스, C 클래스 로 구분된다.
- C 클래스의 구조
- 앞의 3바이트가 네트워크 부분이다.
- 뒤의 1바이트만 호스트 부분으로 사용된다.
- 호스트 부분으로 사용할 수 있는 숫자 1~254
- 예 : 192.168.100.5는 C클래스 이므로 네트워크 부분은 앞의 세 자리인 192.168.100 이고 뒤의 5는 호스트 부분이다.
IP 주소 | |
네트워크 부분 | 호스트 부분 |
넷 마스크와 브로드캐스트 주소
- 넷 마스크 : IP 주소에서 네트워크 부분을 알려주는 역할
- 넷 마스크는 하나의 네트워크를 다시 작은 네트워크로 분리할 떄도 사용 서브넷 마스크라고 부르기도함.
넷 마스크 예
- IP 주소와 넷 마스크를 10진수에서 2진수로 바꾼 다음, 두 값을 가지고 AND 연산을 수행한다.
- AND 연산을 하면 네트워크 부분만 남고 호스트 부분은 0이 된다.
- 넷 마스크는 IP 주소와 AND 연산을 수행하여 네트워크 부분만 남기는 역할을 한다.
브로드 캐스트 주소 : 같은 네트워크에 있는 모든 컴퓨터에 메시지를 보낼 때 사용하는것이다.
- 호스트 부분을 모두 1로 설정한다.
- 예 : IP 주소에서 네트워크 부분이 192.169.100.0 이면 브로드캐스트 주소는 192.168.100.255 이다.
호스트 이름
- 사람은 숫자보다 이름으로 된 것을 더 잘 생각해낸다. 그래서 나온것이 호스트 이름이다.
- 호스트 이름처럼 IP 주소처럼 두 부분으로 구성된다.
포트 번호
- 각 서비스를 구분하는 번호
- 포트 번호는 TCP/IP 프로토콜의 4계층인 전송 계층에서 사용하는 번호 이다.
- /etc/services 파일에 포트 번호를 저장한다.
네트워크 설정
네트워크를 설정 하려면
- IP주소, 넷 마스크와 브로드 캐스트 주소, 게이트웨이 주소, DNS 주소
호스트 이름 설정하기
- 호스트 이름 확인하기 : hostname, uname -n
uname | |
기능 | 시스템 정보를 출력한다. |
형식 | uname [ 옵션 ] |
옵션 | -m : 하드웨어 종류를 출력한다. -n : 호스트 이름을 출력한다. -r : 운영체제의 릴리즈 정보를 출력한다. -s : 운영체제의 이름을 출력한다. -v : 운영체제의 버전을 출력한다. -a : 위의 모든 정보를 출력한다. |
사용 예 | uname -n uname -a |
호스트 이름 설정 파일
- 재시작해도 호스트 이름이 바뀐 상태를 유지하려면 호스트 일므을 설정하는 파일 자체를 수정해야 함
- 우분투에서 호스트 이름을 저장하는 파일은 /etc/hostname
네트워크 인터페이스 설정하기
ifconfig | |
기능 | 네트워크 인터페이스의 IP 주소를 설정한다. |
형식 | ifconfig [ 인터페이스 명 ] [ 옵션 ] [ 값 ] |
옵션 | -a : 시스템의 전체 인터페이스에 대한 정보를 출력한다. up/down : 인터페이스를 활성화 , 비활성화 한다. netmask 주소 : 넷 마스크 주소를 설정한다. broadcast 주소 : 브로드캐스트 주소를 설정한다. |
현재 설치된 네트워크 인터페이스 설정 확인하기.
현재 설치된 네트워크 인터페이스 설정 확인하기 : ifconfig
eth0 의 설정 내용
- MAC 주소 (ehter) : 00:0c:29:1c:e8:62
- IP 주소 (inet) : 192.168.0.2
- 넷마스크(netmask) : 255.255.255.0
- 브로드캐스트 주소 (broadcast) : 192.168.0.255
- IPv6 주소 (inet6) : fe40::20d:26ef:fe2c:d422
특정 네트워크 인터페이스 설정 확인하기
네트워크 인터페이스 사용 해제하기 : down 옵션
인터페이스가 다운되었을 때 flags를 보면 UP과 Running이 없어지고,
둘째 줄과 셋째 줄에 있던 IP 주소 관련 부분인 inet과 inet6이 출력되지 않음.
네트워크 인터페이스 활성화하기 : up 옵션
네트워크 인터페이스 수동으로 설정하기
게이트웨이 설정하기
인터넷은 네트워크와 네트워크를 연결한 것
네트워크를 다른 네트워크와 연결할 때 연결점이 되는 장치가 게이트웨이
게이트웨이의 설정과 확인은 route 명령으로 수행한다.
route | |
기능 | 라우팅 테이블을 편집하고 출력한다. |
형식 | route 명령 |
명령 | add : 라우팅 경로나 기본 게이트웨이를 추가한다. del : 라우팅 경로나 기본 게이트웨이를 삭제한다. |
사용 예 | route route add defalut gw 192.168.0.1 dev eth0 |
라우팅 테이블 보기 : route
route 명령으로 라우팅 테이블 편집하기
기능 | 명령 형식과 사용 예 |
라우팅 경로 추가(네트워크) | route add -net 네트워크 주소 netmask 넷마스크 dev 인터페이스 명 route add -net 192.168.1.0 netmask 255.255.255.0 dev eth0 |
라우팅 경로 추가(호스트) | route add -host 호스트 주소 dev 인터페이스 명 route add -host 192.168.1.5 dev eth0 |
라우팅 경로 제거(네트워크) | route del -net 네트워크 주소 netmask 넷마스크[dev 인터페이스 명] route del -net 192.168.1.0 netmask 255.255.255.0 |
라우팅 경로 제거(호스트) | route del -host 호스트 주소 route del -host 192.168.1.5 |
기본 게이트웨이 추가 | route add defalut gw 게이트웨이 주소 dev 인터페이스명 route add defalute gw 192.168.1.1 dev eht0 |
기본 게이트웨이 제거 | route del defalut gw 게이트웨이 주소 route del default gw 192.168.1.1 |
루프백(lo) 추가 | route add -net 127.0.0.0 netmask 255.0.0.0 dev lo |
라우팅 테이블의 출력 항목
항목 | 기능 |
Destination | 라우팅 대상 네트워크나 호스트의 주소 |
Gateway | 게이트웨이 주소 또는 설정되어 있지 않으면 *를 출력 |
Genmask | 대상 네트워크의 넷마스크 255.255.255.255 : 대상이 호스트인 경우 0.0.0.0 : 기본(default) 경로 |
Flags | U : 경로 활성화(UP) H : 대상이 호스트 G : 게이트웨이로 사용 R : 동적 라우팅을 위한 경로 재생성 D : 데몬 또는 리다이렉트에 의해 동적으로 재설치 M : 라우팅 데몬 또는 리다이렉트에 의해 경로 수정 A : addrconf 에 의해 설치 C : 캐시 항목 ! : 경로 거부 |
Metric | 대상까지의 거리로 최근 커널에서는 사용되지 않지만, 라우팅 데몬에서 사용할 수도 있다. |
Ref | 해당 경로에 대한 참조 수이지만 리눅스 커널에서는 사용하지 않는다. |
Use | 경로를 탐색한 수 |
lfcae | 패킷이 전달되는 인터페이스 이름 |
DNS 설정하기
- 호스트명을 IP 주소로 바꾸는 역할을 수행
- 만약 DNS가 설정되어 있지 않으면 이름으로 서버에 접속할 수 없으며 직접 IP 주소를 사용하여 접속 가능
DNS 서버 지정하기
- DNS 서버의 주소를 /etc/resolv.conf 파일에 저장
DNS 서버에 질의하기 : nslookup
nslookup | |
기능 | DNS 서버와 대화식으로 지르이하고 응답을 받는다. |
형식 | nslookup [ 도메인 명 ] |
사용 예 | nslookup nslookup www.daum.net |
네트워크 상태 확인
통신 확인하기 : PING
ping | |
기능 | 네트워크 장비에 신호(ECHO_REQUEST)를 보낸다. |
형식 | ping [ 옵션 ] 목적지 주소 |
옵션 | -a : 통신이 되면 소리를 낸다. -q : 테스트 결과를 지속적으로 보여주지 않고 종합 결과만 출력한다. -c 개수 : 보낼 패킷 수를 지정한다. |
사용 예 | ping 192.168.0.1 ping -a www.naver.com |
옵션 없이 사용하는 경우 : 패킷은 기본적으로 56바이트의 크기 + 8바이트 헤더 정보
-q 옵션 사용하기
-q 옵션을 사용하면 아무 메세지도 출력되지 않다가 +C로 종료하면 통계 정보만 출력
-C 옵션 사용하기
-C 옵션을 사용하면 보낼 패킷 수를 지정한다.
도메인 이름을 사용하는 경우
시스템에 따라서 보안을 강화하기 위해 ping 패킷이 왔을 떄 응답하지 않도록 설정하는 경우도 있으므로 ping으로 연결되지 않는다고 해서 무조건 해당 시스템이 동작하지 않는다는 것은 아니다.
통신 경로 확인하기
traceroute | |
기능 | 목적지까지 패킷이 거치는 경로를 출력한다. |
형식 | traceroute 목적지 주소 |
사용 예 | traceroute 192.168.0. traceroute www.naver.com |
정상으로 경로가 확인되는 경우
정상적으로 경로가 확인되지 않는 경우
- 네트워크가 연결되지 않는 구간은 *가 출력 : 통신에 장애가 있거나 traceroute 명령을 거부를 뜻함.
중간 노드의 기관 확인 : whois 명령 사용
예 5번에 출려고딘 58.239.255.255 가 어느 기관의 것인가?
네트워크 상태정보 출력하기
netstat | |
기능 | 네트워크의 상태 정보를 출력한다. |
형식 | netstat [ 옵션 ] |
옵션 | -a : 모든 소켓 정보를 출력한다. -r : 라우팅 정보를 출력한다. -n : 호스트 명 대신에 IP 주소를 출력한다. -i : 모든 네트워크 인터페이스 정보를 출력한다. -s : 프로토콜 별로 네트워크 통계 정보를 출력한다. -p : 해당 소켓과 관련된 프로세스의 이름과 PID를 출력한다. |
사용 예 | netstat -rn netstat -s |
라우팅 테이블 확인하기 : -r 옵션
현재 열려있는 포트 확인하기
- 현재 통신이 진행 중인 서비스는 해당 서비스 포트가 LISTEN 상태
인터페이스별 네트워크 통계 정보 확인하기 : -i 옵션
- RX-OK, TX-OK는 정상적으로 주고받은 패킷의 개수
- RX-ERR, RX-DRP, RX-OVR, TX-ERR, TX-DRP, TX-OVR는 송수신중에 오류가 발생한 패킷의 개수 이다.
프로토콜 별 네트워크 통계정보 확인하기 : -s 옵션
- IP 프로토콜, ICMP 프로토콜, TCP 프로토콜 별로 통계 정보를 출력한다.
MAC 주소와 IP 주소 확인하기 : arp 명령
arp | |
기능 | ARP 캐시 정보를 관리한다. |
형식 | arp [ IP 주소 ] |
사용 예 | arp arp 192.168.0.1 |
패킷 캡처하기 : tcpdump
tcpdump | |
기능 | 네트워크상의 트래픽을 덤프한다. |
형식 | tcpdump [ 옵션 ] |
옵션 | -c 패킷 수 : 지정한 패킷 수 만큼 덤프 받고 종료한다. -i 인터페이스 명 : 특정 인터페이스를 지정한다. -n : IP주소를 호스트명으로 바꾸지 않는다. -q : 정보를 간단한 형태로 보여준다. -X : 패킷의 내용을 16진수와 ASCII로 출력한다. -w 파일명 : 덤프한 내용을 지정한 파일에 저장한다. -r 파일명 : 덤프를 저장한 파일에서 읽어온다. host 호스트명 또는 주소 : 해당 호스트가 받거나 보낸 패킷만 덤프한다. tcp prot 번호 : 지정한 번호 패킷만 덤프한다. ip : IP 패킷만 덤프한다. arp 192.168.0.1 |
사용 예 | tcpdump tcpdump -i eth0 tcpdump -i eth0 -w DUMP.out tcpdump tcp port 22 and host 192.168.0.7 |
옵션 없이 사용하는 경우
- 현재 시스템에서 주고받는 모든 패킷을 캡처하여 패킷의 헤더 부분 정보를 출력한다.
캡처한 패킷 개수 지정하기 : -c 옵션
캡처한 패킷 정보를 파일로 저장하기 : -w 옵션
캡처한 패킷 파일 읽기 : -r 옵션
특정 포트로 송수신되는 패킷 캡처 : tcp port 옵션
캡처 한 내용을 ASCII로 보기 : -X 옵션
728x90
'대학교 코딩공부 > 운영체제 실습' 카테고리의 다른 글
운영체제실습 기말고사 준비 (0) | 2022.12.01 |
---|---|
13주차 패키지 관리 (0) | 2022.11.23 |
12주차 파일시스템과 디스크관리 (0) | 2022.11.17 |
운영체제 실습 11주차 리눅스 시스템, 데몬 프로세스 (0) | 2022.11.11 |
운영체제 실습 프로세스 ( fork, exc 함수 ) (0) | 2022.11.05 |