10 분 소요

[공지사항] 민혁 블로그 신규 포스팅 안내 드립니다.

1. 네트워크의 기초

TCP/IP 프로토콜

  • 프로토콜: 컴퓨터간에 데이터를 주고 받기 위하여 정의된 통신 규약
  • 현재 인터넷(네트워크)는 TCP/IP 프로토콜에 따라 데이터를 주고받음
  • TCP/IP 프로토콜은 확대하면 크게 5개의 계층으로 구분할 수 있음
  • 전송 계층의 TCP와 네트워크 계층의 IP를 이용하여 전체 프로토콜을 대표한 TCP/IP 프로토콜이라고 함
계층 기능 프로토콜 전송 단위
응용 계층 서비스 제공 응용 프로그램 DNS,FTP,SSH,HTTP,TELNET 메시지
전송 계층 응용 프로그램으로 데이터 전달, 데이터 흐름 제어 및 전송 신뢰성 담당 TCP,UDP 세그먼트
네트워크 계층 주소 관리 및 경로 탐색 IP,ICMP 패킷
데이터(링크) 계층 네트워크 장치 드라이버 ARP 프레임
물리 계층 케이블 등 전송 매체 구리선,광케이블,무선 비트

주소

  • 컴퓨터 주소는 MAC 주소, IP 주소, 호스트 이름(Hostname)이 있음

MAC(Media Access Control) 주소

  • MAC 주소는 하드웨어에 대한 주소로 하드웨어 주소, 물리 주소라고 함
  • MAC 주소는 네트워크 인터페이스 카드(LAN)에 저장된 주소를 의미
  • MAC 주소는 여섯 개의 16진수로 구성됨 (6x8bit = 48bit)
    • 00:50:56:3e:3c:fe
    • 앞의 세자리는 제조사 번호, 뒤 세자리는 제품 일련번호

IP(Internet Protocol) 주소

  • 일반적으로 인터넷 주소라고 부르는 것이 IP 주소
  • IP 주소는 인터넷에서 각 컴퓨터를 구분하기 위해 사용
  • IP 주소는 총 4바이트로 구성 (ex. 192.168.100.5)
  • IP 주소는 네트워크를 구분하는 네트워크 주소와 해당 네트워크 안에서 특정 컴퓨터를 식별하는 호스트 주소로 구분
  • 네트워크 주소와 호스트 주소 부분을 나누는 기준에 따라 A 클래스, B 클래스, C 클래스로 구분하여 사용
  • 일반적으로 C 클래스를 가장 많이 사용 (ex. 192.168.100.5)
    • 앞 3바이트가 네트워크 주소, 뒤 1바이트는 호스트주소로 사용
    • 호스트 부분으로 사용할 수 있는 숫자 범위 (1바이트: 1~254, 0, 255는 다른 용도)

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

  • 넷마스크(서브넷마스크)는 IP 주소에 서 네트워크 주소 부분을 알려주는 역할을 수행
    • 넷마스크와 IP 주소를 AND 연산을 수행하면 네트워크 주소만 남게 됨 (ex. 255.255.255.0)
  • 브로드캐스트 주소: 호스트 주소 부분 1바이트(8비트)를 모두 1로 설정 (ex. 192.168.100.255)

호스트 이름

  • 숫자 주소보다는 이름으로 된 것을 잘 기억함 -> 호스트 이름 등장
  • 호스트 이름도 네트워크 주소와 호스트 주소 두 부분으로 구성
    • 예: 다음은 daum.net이 네트워크 주소 부분, www가 호스트 주소 부분에 해당)

포트 번호

  • 호스트 이름(IP 주소)를 이용하여 서버를 찾은 데이터가 그 서버의 어떤 네트워크 응용 서비스에 제공되어야 하는지 구분해야 할 때 포트번호가 사용
  • 포트번호는 TCP/IP 프로토콜의 전송 계층(4계층)에서 사용
  • /etc/services 파일에 서비스별 또는 포트 번호가 저장되어 있음 (국제표준지정)
  • 사용자가 개발한 네트워크 응용 프로그램은 /etc/services 파일에 지정되어 있지 않은 포트 번호를 주어야 됨

2. 네트워크 설정

네트워크 설정

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

네트워크 관리자(Network Manager) 프로세스

  • 네트워크의 제어와 설정을 관리하는 데몬 프로세스 (NetworkManager.service)
  • 네트워크 관리자 프로세스를 통하여 IP 주소, 라우터 주소, DNS 주소 등을 설정
  • nmcli 명령, ip 명령, ifconfig 명령, route 명령, 그놈 UI의 [설정]-[네트워크](GUI)를 이용하여 네트워크 관리를 수행

네트워크 관리 도구

도구 기능
네트워크 관리자 기본 네트워킹 데몬
nmcli 명령 네트워크 관리자를 사용하는 명령 기반 도구
[설정]-[네트워크] 그놈에서 제공하는 GUI 기반 도구
nm-connection-editor 네트워크 관리자를 사용하는 GUI 기반 도구로, [제어판]-[네트워크]에서 설정할 수 없는 부분도 설정
ip 명령 네트워크를 설정하는 명령을 제공

네트워크 관리자 패키지 설치하기

  • 우분투 설치 시에 기본적으로 설치됨
  • 설치되지 않는 경우, 개별적으로 네트워크 관리자를 설치할 수 있음
  • $ sudo apt install network-manager

데몬(백그라운드 프로그램) 서비스 관리 명령어 systemctl를 이용하여 NetworkManager.services 데몬 관리

네트워크 관리자(NetworkManager.services)의 상태 확인, 시작, 중지, 재시작, 부팅 시 자동 실행하기, 부팅 시 자동 실행하지 않기 방법

  • systemctl 옵션 서비스 이름
    $ systemctl status NetworkManager.services
    $ systemctl start NetworkManager.services
    $ systemctl stop NetworkManager.services
    $ systemctl restart NetworkManager.services
    $ systemctl enable NetworkManager.services
    $ systemctl disable NetworkManager.services
    

그놈의 [설정]-[네트워크]로 설정하기

  • 설정 화면에서 네트워크를 선택하면 네트워크 설정 창이 실행
  • IPv4 설정에서 IP 주소, 넷마스크, 게이트웨이, DNS, 라우팅을 설정함

nmcli 명령으로 네트워크 설정

  • nmcli (network manager command line interface
  • 네트워크를 설정하는 명령은 네트워크 관리자와 함께 설치되는 nmcli 명령과 ip 명령을 사용할 수 있음
  • nmcli 명령으로 유선 네트워크, 무선 네트워크, 보안 등 네트워크 관련 거의 모든 설정을 수행할 수 있음

nmcli 명령으로 네트워크 설정

nmcli [옵션] {명령} [서브명령]

  • 명령 (general, networking, connection, device)
nmcli  
기능 명령 기반으로 네트워크 관리자를 설정한다
형식 nmcli [옵션] (명령} [서브 명령]
옵션 -t: 실행 결과를 간단하게 출력, -p:사용자가 읽기 좋게 출력, -v: nmcli의 버전을 출력, -h: 도움말을 출력
서브 명령 general {status / hostname}: 네트워크 관리자의 전체적인 상태를 출력하고, 호스트명을 읽거나 변경할 수 있다, networking {on / off / connectivity} : 네트워크를 시작,종료하고 연결 상태를 출력한다, connection {show / up / down / modify / add / delete / reload / load} : 네트워크를 설정한다, device {status / show}: 네트워크 장치의 상태를 출력한다
사용 예 numcli general, numcli networking on, nmcli con add type ethernet con-name test-net ifname ens33 ip4 192.168.1.10/24 gw4 192.168.1.254

1. general(gen): 네트워크의 전체 상태 살펴보기 명령

네트워크의 전체적인 상태 확인

numcli general status (또는 nmcli gen status, nmcli general, nmcli gen)

2. networking(net): 네트워크 활성화, 비활성화, 연결상태 확인 명령

on -네트워크 활성화 또는 off -비활성화

nmcli networking on (또는 nmcli net on) nmcli networking off (또는 nmcli net off)

connectivity(con) -네트워크의 연결 상태 확인

$ nmcli networking connectivity (또는 ncmli net con)

connectivity(con) 명령이 출력하는 네트워크 상태 종류

  • none(없음): 호스트가 아직 네트워크에 연결되어 있지 않음
  • limited(제한적): 호스트가 네트워크에 연결되어 있지만 인터넷과 연결되지는 안흥ㅁ
  • full(전체): 호스트가 네트워크에 연결되어 있고 인터넷도 사용할 수 있음
  • unknown(알수없음): 네트워크 연결 상태를 알 수 없음
$ nmcli net on
$ nmcli net con
$ nmcli net off
$ nmcli net con

3. connection(con): 네트워크 설정 명령

connection(con)의 서브명령 (show, up, down, modify, add, delete)

서브명령 기능
show 메모리와 디스크에 저장된 네트워크 연결 프로파일을 출력한다. 서브 명령을 지정하지 않을 경우 기본적으로 show를 실행 시킨다
up 네트워크 연결을 시작한다
down 네트워크 연결을 중지한다
modify 연결 프로파일에서 속서응ㄹ 추가/수정/삭제한다
add 새로운 연결을 생성한다
delete 연결의 설정을 삭제한다
reload 연결과 관련된 파일을 디스크에서 다시 읽어온다
load 디스크에서 하나 이상의 연결 파일을 읽어온다

show -모든 네트워크 연결에 대한 프로파일 출력

nmcli connection show (또는 nmcli con show)

  • 네트워크 연결 프로파일 이름, UUID, 네트워크 유형, 연결된 장치명 출력

down -네트워크 연결 중지

nmcli connection down 프로파일 이름 nmcli connection down '유선 연결1'

up -네트워크 연결 시작

nmcli connection up 프로파일 이름 nmcli connection up '유선 연결1'

$ nmcli con show
$ nmcli con down '유선 연결1'
$ nmcli con up '유선 연결1'

add -네트워크 연결 추가하기

nmcli connection add type 네트워크 유형 con-name 연결 프로파일 이름 ifname 장치이름 ip4 ip 주소/넷마스크 gw4 게이트웨이 주소

(a) 고정 IP 방식으로 IPv4 이더넷 연결 추가
nmcli connection add type ethernet con-name testcon1 ifname ens33 ip4 192.168.1.10/24 gw4 192.168.1.1
- 여기서 192.168.1.10/24 에서는 24는 넷마스크 255.255.255.0을 의미

(b) 동적 IP 방식으로 IPv4 이더넷 연결 추가
nmcli connection add type ethernet con-name testcon2 ifname ens33
  • 네트워크 연결 추가(add) 하고 시작(up) 하기

modify(mod) -네트워크 연결 수정하기

nmcli connection modify 연결 프로파일 이름 setting.property 설정값

설정(setting) 속성(property) 값의 유형 기능
connection autoconnection boolean(TRUE/FALSE) 자원이 사용 가능해지면 관리자가 자동으로 연결할지를 지정
connection id 문자열 사용자가 읽을 수 있는 연결의 이름
connection interface-name 문자열 네트워크 장치의 이름
connection type 문자열 연결의 유형
ipv4 addresses 주소 IP 주소
ipv4 dns 주소 DNS 서버의 IP 주소
ipv4 gateway 주소 게이트웨이 주소
ipv4 method 문자열 IP 구성 방법으로 manual은 고정 IP사용, auto는 동적 IP 사용을 의미
ipv4 routes 주소 네트워크의 경로를 설정(ex: ipv4.routes “192.168.1.0/24 192.168.1.1”)
(a) testcon1 연결의 IPv4 주소 변경 명령
nmcli con mod testcon1 ipv4.address 192.168.1.12

(b) testcon1 연결의 gateway 주소 변경 명령
nmcli con mod testcon1 ipv4.gateway 192.168.1.254

(c) testcon1 연결의 DNS 주소 변경 명령 (8.8.8.8과 8.8.4.4의 2개로 변경)
nmcli con mod testcon1 ipv4.dns "8.8.8.8 8.8.4.4"
  • modify 이후에는 up 명령어로 연결을 다시해야 modify 된 명령이 반영
$ nmcli con mod testcon1
$ nmcli con mod testcon1 ipv4.gateway 192.168.1.254
$ nmcli con up testcon1

delete(del) -네트워크 연결 삭제하기

nmcli connection delete 연결 프로파일 이름 (a) testcon1 연결 삭제 명령 nmcli con del testcon1

4. device(dev) : 네트워크 장치의 상태 보기 명령

status, show -device(dev)의 서브 명령

nmcli device status nmcli device show 장치이름

(a) 모든 네트워크 장치의 상태 표시
nmcli dev status

(b) 네트워크 장치의 상세정보 보기
nmcli dev show ens33

DNS(Domain Name Services) 설정

  • 호스트명을 IP 주소로 바꾸는 역할을 수행
  • 만약 DNS가 설정되어 있지 않으면 호스트명으로 서버에 접속할 수 없으며 직접 IP 주소를 사용해서 접속

nslookup -DNS 서버에 호스트명으로 ip주소 질의하기

nslookup  
기능 DNS 서버와 대화식으로 질의하고 응답을 받는다
형식 nslookup [도메인명]
사용 예 nslookup , nslookup www.daum.net
  • $ nslookup [호스트명]

systemd-resloved -DNS 서버에 호스트명(도메인명)으로 ip주소 질의하기

  • systemd-resolve [도메인명]
  • $ systemd-resolve www.daum.net

3. 호스트 이름 설정

호스트 이름 확인하기

  • 해당 기관의 도메인 이름에다가 서버에서 제공하는 대표적인 네트워크 서비스 이름을 붙이는 것이 편리함
  • 도메인 이름이 han.server인 경우, 주로 메일을 서비스하는 서버는 mail.han.server로 이름을 붙임
  • 호스트 이름은 설정 파일에 저장하고 DNS에 등록해야 서비스 제공이 가능함

호스트 이름 확인하는 방법

  1. uname -n

  2. hostname

  3. hostnamectl status (또는 hostnamectl)

(참고) uname [옵션] : 시스템 관련 정보를 출력하는 명령어

  • uname -m (하드웨어 종류 출력)
  • uname -n (호스트 이름 출력)
  • uname -r (리눅스 커널의 릴리스 정보 출력)
  • uname -s (운영체제 이름 출력)
  • uname -v (운영체제 버전 출력)
  • uname -a (위의 모든 정보 출력)

호스트 이름 설정하기

  1. hostaname han.server (han.server로 호스트 이름 설정)

  2. hostnamectl set-hostname myubuntu (myubuntu로 호스트 이름 설정)

  • hostname 명령으로 바뀐 호스트 이름은 시스템이 재시작되면서 원래의 이름으로 돌아감
  • 재시작해도 바뀐 호스트 이름이 유지되게 하려면 호스트 이름을 설정하는 파일 자체를 수정해야 함
  • 우분투의 호스트 이름을 저장하는 파일: /etc/hostname

4. 네트워크 상태 확인

ping -네트워크 연결 여부 확인 명령

ping  
기능 네트워크 장비에 신호(EHCO_REQUEST)를 보낸다
형식 ping [옵션] 목적지 주소
옵션 -a : 통신이 되면 소리를 낸다 , -q : 테스트 결과를 지속적으로 보여주지 않고 종합 결과만 출력한다 , -c 개수 : 보낼 패킷 수를 지정한다
사용 예 ping 192.168.0.1 , ping -a www.naver.com
  • 64바이트의 패킷을 해당 주소에 지속적으로 전송하고 받는 것을 테스트 함 (56바이트의 크기 + 8바이트의 헤더)
  • ping ip 주소 (또는 ping 도메인 이름)
    • ping 192.168.1.1 (또는 ping www.hanbit.co.kr)
  • ctrl-cping 명령을 종료하면, ping 관련 통계정보가 출력

traceroute -통신 경로 확인 명령

traceroute  
기능 목적지까지 패킷이 거치는 경로를 출력한다
형식 traceroute 목적지 주소
사용 예 traceroute 192.168.0.1 , traceroute www.naver.com
  • traceroute ip 주소 (또는 traceroute 도메인 이름)
  • traceroute 192.168.1.1 (또는 traceroute www.hanbit.co.kr)
    • 만약 traceroute 가 설치되어 있지 않다면 apt 명령으로 설치
    • $ sudo apt install traceroute
  • 중간 게이트웨이 보유 기관 확인 명령 (whois ip주소)
    • whois 192.168.1.1
    • $ sudo apt install whois (whois 명령이 없는 경우, 설치)

1) 정상적으로 경로가 확인되는 경우

$ traceroute www.hanbit.co.kr
traceroute to www.hanbit.co.kr (218.38.58.195), 30 hops max, 60 byte packets
 1  _gateway (192.168.64.1)  0.625 ms  0.606 ms  0.601 ms
 2  10.224.100.254 (10.224.100.254)  8.634 ms  8.629 ms  8.624 ms
 3  192.168.10.3 (192.168.10.3)  6.123 ms  6.118 ms  6.114 ms
 4  * * *
 5  10.21.102.181 (10.21.102.181)  8.233 ms 10.21.102.53 (10.21.102.53)  8.220 ms  8.215 ms
 6  1.213.57.181 (1.213.57.181)  8.199 ms 1.208.57.181 (1.208.57.181)  6.237 ms  6.218 ms
 7  1.209.58.133 (1.209.58.133)  6.213 ms 1.214.58.137 (1.214.58.137)  7.515 ms 1.214.59.237 (1.214.59.237)  7.497 ms
 8  1.208.113.69 (1.208.113.69)  12.407 ms 1.213.114.69 (1.213.114.69)  7.704 ms 1.208.148.225 (1.208.148.225)  12.397 ms
 9  1.208.178.238 (1.208.178.238)  11.050 ms 1.208.179.158 (1.208.179.158)  11.046 ms 1.213.147.34 (1.213.147.34)  12.382 ms
10  211.58.252.241 (211.58.252.241)  12.378 ms 211.58.252.213 (211.58.252.213)  11.032 ms 211.44.125.21 (211.44.125.21)  11.014 ms
11  10.222.31.54 (10.222.31.54)  11.010 ms 10.222.10.178 (10.222.10.178)  12.346 ms 10.222.31.52 (10.222.31.52)  10.381 ms

2) 정상적으로 경로가 확인되지 않는 경우: * 출력

  • 해당 게이트웨이에 통신 장애가 있거나 traceroute 명령을 거부한다는 의미
$ traceroute www.naver.com
traceroute to www.naver.com (223.130.195.95), 30 hops max, 60 byte packets
 1  _gateway (192.168.64.1)  0.346 ms  0.314 ms  0.362 ms
 2  * * *
 3  192.168.10.3 (192.168.10.3)  4.995 ms  4.985 ms  5.133 ms
 4  * * *
 5  10.21.102.181 (10.21.102.181)  7.468 ms 10.21.102.53 (10.21.102.53)  7.457 ms 10.21.102.181 (10.21.102.181)  7.436 ms
 6  1.208.57.181 (1.208.57.181)  7.353 ms 1.213.57.157 (1.213.57.157)  4.650 ms 1.208.57.181 (1.208.57.181)  5.562 ms
 7  1.209.58.141 (1.209.58.141)  6.537 ms 1.214.58.133 (1.214.58.133)  7.488 ms 1.214.59.217 (1.214.59.217)  4.453 ms
 8  1.208.151.101 (1.208.151.101)  6.989 ms 1.208.150.45 (1.208.150.45)  10.714 ms 1.208.149.53 (1.208.149.53)  8.540 ms
 9  1.213.150.226 (1.213.150.226)  7.254 ms 1.213.148.218 (1.213.148.218)  9.358 ms 1.208.172.10 (1.208.172.10)  8.526 ms
10  182.162.33.94 (182.162.33.94)  8.434 ms 182.162.36.222 (182.162.36.222)  9.301 ms 182.162.33.142 (182.162.33.142)  8.707 ms
11  117.52.248.226 (117.52.248.226)  8.897 ms 117.52.223.150 (117.52.223.150)  8.543 ms 117.52.248.222 (117.52.248.222)  7.958 ms
12  117.52.1.166 (117.52.1.166)  49.469 ms  49.447 ms  48.664 ms
13  10.22.80.210 (10.22.80.210)  48.613 ms 10.22.80.214 (10.22.80.214)  47.333 ms 10.22.80.206 (10.22.80.206)  47.315 ms
14  * * *
15  * * *
16  * * *
17  * * *
18  * * *


whois -중간 노드(게이트웨이) 확인 명령

whois 112.189.128.53

$ whois 112.189.128.53
query : 112.189.128.53


# KOREAN(UTF8)

\uc870\ud68c\ud558\uc2e0 IPv4\uc8fc\uc18c\ub294 \ud55c\uad6d\uc778\ud130\ub137\uc9c4\ud765\uc6d0\uc73c\ub85c\ubd80\ud130 \uc544\ub798\uc758 \uad00\ub9ac\ub300\ud589\uc790\uc5d0\uac8c \ud560\ub2f9\ub418\uc5c8\uc73c\uba70, \ud560\ub2f9 \uc815\ubcf4\ub294 \ub2e4\uc74c\uacfc \uac19\uc2b5\ub2c8\ub2e4.

[ \ub124\ud2b8\uc6cc\ud06c \ud560\ub2f9 \uc815\ubcf4 ]
IPv4\uc8fc\uc18c           : 112.160.0.0 - 112.191.255.255 (/11)
\uae30\uad00\uba85             : \uc8fc\uc2dd\ud68c\uc0ac \ucf00\uc774\ud2f0
\uc11c\ube44\uc2a4\uba85           : KORNET
\uc8fc\uc18c               : \uacbd\uae30\ub3c4 \uc131\ub0a8\uc2dc \ubd84\ub2f9\uad6c \ubd88\uc815\ub85c 90
\uc6b0\ud3b8\ubc88\ud638           : 13606
\ud560\ub2f9\uc77c\uc790           : 20090210

\uc774\ub984               : IP\uc8fc\uc18c \ub2f4\ub2f9\uc790
\uc804\ud654\ubc88\ud638           : +82-2-500-6630
\uc804\uc790\uc6b0\ud3b8           : kornet_ip@kt.com


요약

  • 네트워크 기초(TCP/IP, MAC 주소, IP 주소, 넷마스크, 호스트 이름)
  • 네트워크 설정 (nmcli general, nmcli networking, ncmli connection, nmcli device)
  • 호스트 이름 확인 및 설정 (hostname, hostnamectl, uname -n)
  • 네트워크 상태 확인 (ping, traceroute, whois)

태그: ,

카테고리:

업데이트:

댓글남기기