전공/리눅스시스템관리

[Linux] 리눅스 네트워크

Campus Coder 2023. 6. 12. 22:34
728x90
반응형

네트워크 기초

TCP/IP 프로토콜

프로토콜: 컴퓨터와 컴퓨터 사이에 데이터를 어떻게 주고받을 것인지를 정의한 통신규약

인터넷은 TCP/IP라는 프로토콜에 따라 통신

주소

컴퓨터의 주소: MAC 주소, IP 주소, 호스트명

MAC주소

  • 하드웨어를 위한 주소
  • MAC 주소는 네트워크 인터페이스 카드(랜 카드)에 저장된 주소로 기본적으로 네트워크 인터페이스 카드가 만들어질 때 부여
  • MAC 주소는 각 하드웨어를 구별하는 역할을 수행
  • MAC 주소는 : 이나 - 으로 구분되는 여섯 개의 16진수로 구성되며 총 48bit
    앞의 세 자리는 제조사 번호, 뒤의 세 자리는 일련변호
    제조사 번호는 국제 표준 기구 중 하나의 IEEE에서 지정

 

IP 주소

  • IP 주소는 1바이트 크기의 숫자 네 개로 구성되므로 총 4바이트
  • TCP/IP 프로토콜의 3~5 계층은 IP 주소를 사용
  • IP주소는 네트워크를 구분하는 네트워크 주소 부분과, 해당 네트워크 안에서 특정 컴퓨터를 식별하는 호스트 주소 부분
  • IP 주소는 총 32bit(4B) 중 몇 비트를 네트워크 부분으로 사용하고 나머지 몇 비트를 호스트 부분으로 사용하는지에 따라 A 클래스, B 클래스, C 클래스로 구분
  • C 클래스는 앞의 3바이트가 네트워크 부분이고 뒤의 1바이트만 호스트 부분
    - 호스트 부분으로 사용할 수 있는 숫자는 0~255인데, 0은 네트워크 주소를 나타내는 데 사용하고 255는 브로드캐스트 주소로 사용하므로 1~254를 호스트 주소로 할당
  •  IPv6(IP 버전 6)는 fe80::250:56ff:fe3e:3cfe와 같이 16진수로 표기하며 128bit 크기

 

넷마스크와 브로드캐스트 주소

  • 넷마스크: IP 주소에서 네트워크 부분을 알려주는 역할
  • 브로드 캐스트 주소: 같은 네트워크에 있는 모든 컴퓨터에 메세지를 보낼 때 사용
    - 호스트 부분을 모두 1로 설정
    - 예: IP 주소에서 네트워크 부분이 192.168.100.0이면 브로드캐스트 주소는 192.168.100.255

 

호스트 이름

  • 컴퓨터에 붙이는 이름
  • 호스트 이름도 IP 주소처럼 네트워크 부분과 호스트 이름 두 부분으로 구성
  • 예: www.naver.com, 호스트 부분(www), 네트워크 부분(naver.con)

 

포트 번호

  • 서버에서 제공하는 각 서비스를 구분하는 번호
  • /etc/services 파일에 서비스 포트번호 저장

 

 

네트워크 설정

네트워크 설정에 필요한 정보

  • IP 주소
  • 넷마스크와 브로드캐스트 주소
  • 게이트웨이(라우터) 주소
  • DNS 주소

 

네트워크 관리자

네트워크의 제어와 설정을 관리하는 데몬

 

네트워크 관리자 설치하기

sudo apt install network-manager

 

GUI로 네트워크 설정

GNOME의 [설정]-[네트워크]

$ nm-connection-editor

 

nmcli

기능 - 명령 기반으로 네트워크 관리자를 설정

형식 - nmcli [옵션] 명령 {서브 명령}

옵션

-t: 실행 결과를 간단하게 출력

-p: 사용자가 읽기 좋게 출력

-v: nmlic의 버전을 출력

-h: 도움말 출력

명령 {서브 명령}

  • general(gen) {status | hostname}: 네트워크 관리자의 전체적인 상태 출력, 호스트 명을 읽거나 변경 가능
  • networking(net) {on | off | connectivity}: 네트워크를 시작, 종료하고 연결 상태를 출력
  • connection(con) {show | up | down | modify | add | delete | reload | load}: 네트워크를 설정
  • device {status | show}: 네트워크 장치의 상태 출력

 

ip

기능 - IP 주소, 게이트웨이, 네트워크 장치의 상태 등을 출력, 관리

형식 - ip [옵션] 객체 [서브 명령]

옵션

-V: 버전을 출력

-s: 자세한 정보를 출력

객체[서브명령]

  • adress [add|del|show|help]: 장치의 IP 주소를 관리
  • route [add|del|help]: 라우팅 테이블을 관리
  • link [set]: 네트워크 인터페이스를 활성화/비활성화
ip addr show
ip addr add 192.168.1.20/24 dev ens33
ip route show
ip route add 192.168.2.0/24 via 192.168.1.1 dev ens33

게이트웨이: 네트워크를 다른 네트워크와 연결할 때 연결점이 되는 장치

게이트웨이도 하나의 컴퓨터로 보통 라우터라고 함

게이트웨이 주소가 설정되어 있지 않으면 같은 네트워크가 아닌 컴퓨터와는 접속할 수 없음

 

ifconfig

기능 - 네트워크 인터페이스의 IP 주소를 설정한다

형식 - ifconfig [인터페이스명] [옵션] [값]

옵션

-a: 시스템의 전체 인터페이스에 대한 정보 출력

up/down: 인터페이스를 활성화, 비활성화

netmask 주소: 넷마스크 주소를 설정

broadcast 주소: 브로드캐스트 주소를 설정

ifconfig ens33
ifconfig ens33 192.168.1.2 netmask 255.255.255.0. broadcast 192.168.1.255

우분투에서 ifconfig 명령을 사용하려면 net-tools 패키지를 설치

sudo apt install net-tools

현재 설치된 인터페이스 설정 보기 ifconfig

 

route

기능 - 라우팅 테이블을 편집하고 출력

형식 - route [명령]

명령

add: 라우팅 경로나 기본 게이트웨이를 추가

del: 라우팅 경로나 기본 게이트웨이를 삭제

route
route add default gw 192.168.1.1 dev ens33

 

DNS 설정

DNS: 호스트명을 IP 주소로 바꾸는 역할을 수행

DNS 서버 지정하기

우분투는 17.04 버전부터 DNS를 관리하는 systemd-resolved 서비스를 도입

DNS 서버의 주소를 /etc/resolv.conf 파일에 저장

 

systemd-resolve

기능 - 서버에 질의하고 응답을 받음

형식 - systemd-resolve [옵션] [호스트명|IP 주소]

옵션 - --status: DNS 서버 정보를 출력

systemd-resolve www.daum.net
systemd-resolve --status

 

nslookup

기능 - DNS 서버와 대화식으로 질의하고 응답을 받음

형식 - nslookup [도메인명]

nslookup
nslookup www.daum.net

 

 

호스트 이름 설정

umane

기능 - 시스템 정보를 출력

형식 - uname [옵션]

옵션

-m: 하드웨어 종류를 출력

-n: 호스트 이름을 출력

-r: 운영체제의 릴리즈 정보를 출력

-s: 운영체제의 이름을 출력

-v: 운영체제의 버전을 출력

-a: 위의 모든 정보를 출력

uname -n
uname -a

 

hostname

기능 - 호스트 이름을 출력하거나 설정

형식 - hostname [호스트 이름]

hostname
hostname mail.han.server

 

hostnamectl

기능 - 호스트 이름을 검색하거나 설정

형식 - hostnamectl [옵션] [명령]

옵션

-h: 도움말을 출력

--version: 버전을 출력

명령

  • status: 현재 호스트 이름과 관련 정보를 출력
  • set-hostname 호스트명: 호스트명을 호스트 이름으로 설정
hostnamectl
hostnamectl status
hostnamectl set-hostname mail.han.server

리눅스에서 호스트 이름을 저장하는 파일은 /etc/hostname

 

 

네트워크 상태 확인

ping

기능 - 네트워크 장비에 신호를 보냄

형식 - ping [옵션] [목적지 주소]

옵션

-a: 통신이 되면 소리를 냄

-q: 테스트 결과를 지속적으로 보여주지 않고 종합 결과만 출력

-c 개수: 보낼 패킷 수를 지정

ping 192.168.1.1
ping -a www.naver.com

 

traceroute

기능 - 목적지까지 패킷이 거치는 경로를 출력

형식 - traceroute 목적지 주소

traceroute 192.168.0.1
traceroute www.naver.com

traceroute 명령 사용

sudo apt install inetutils-traceroute

 

중간 노드의 기관 확인: whois

정상으로 경로가 확인되지 않는 경우

네트워크가 연결되지 않는 구간은 *가 출력: 통신에 장애가 있거나 traceroute 명령을 거부 의미

 

netstat

기능 - 네트워크의 상태 정보를 출력

형식 - netstat [옵션]

옵션

-a: 모든 소켓 정보를 출력

-r: 라우팅 정보를 출력

-n: 호스트명 대신 IP 주소로 출력

-i: 모든 네트워크 인터페이스 정보 출력

-s: 프로토콜별로 네트워크 통계 정보 출력

-p: 해당 소켓과 관련된 프로세스의 이름과 PID 출력

netstat -rn
netstat -s

 

arp

기능 - ARP 캐시 정보를 관리

형식 - arp [IP 주소]

arp
arp 192.168.1.1

옵션 없이 사용할 경우: 현재 같은 네트워크에 연결되어 있는 시스템의 MAC 주소와 IP 주소를 출력

 

tcpdump

기능 - 네트워크 상의 트래픽을 덤프

형식 - tcpdump [옵션]

옵션

-c 패킷 수 지정한 패킷 수만큼 덤프 받고 종료 -i 인터페이스명 특정 인터페이스를 지정
-n IP 주소를 호스트명으로 바꾸지 않음 -q 정보를 간단한 형태로 출력
-X 패킷의 내용을 16진수와 ASCII로 출력 -w 파일명 덤프한 내용을 지정한 파일에 저장
-r 파일명 덤파를 저장한 파일에서 읽어옴 host 호스트명 또는 주소 지정한 호스트가 받거나 보낸 패킷만 덤프
tcp port 번호 지정한 포트 번호 패킷만 덤프 ip IP 패킷만 덤프
tcpdump
tcpdump -i eth0
tcpdump -i eth0 -w DUMP .out
tcpdump tcp port 22 and host 192.168.0.7

옵션 없이 사용하기: 현재 시스템에서 주고받는 모든 패킷을 캡처하여 패킷의 헤더 부분 정보를 출력

728x90
반응형