본문 바로가기
네이버클라우드/Linux

Linux 6일차 (2023-05-01) Linux Network - Network의 이해

by prometedor 2023. 5. 1.

 

Network 용어 정리

용어 설명
network
LAN (Local Area Network) 지역 Network 
internet LAN 과 LAN 의 통신
protocol 이기종간의 통신을 위한 약속
tcp / ip protocol 의 한 종류로서 telnet, ftp, mail 등 가장 많이 사용
gateway 다른 network 와 통신을 위한 관문 -> 장비 : router
ip 통신을 하기 위해 각각 컴퓨터에 부여된 주소
Domain LAN 의 이름
Hostname LAN 에서 다른 host 들과 구분하기 위한 이름
network 주소 LAN 의 대표 ip (어떤 LAN 을 통칭할 때 대표 IP)
ㄴ 가장 작은 번호
BroadCast LAN 내의 모든 host 들이 듣는 특별한 주소 
ㄴ 가장 큰 번호
DNS (Domain Name system) Domain -> ip 로 변경해주는 시스템
netmask 내부망과 외부망을 구분하는 값. LAN 의 크기를 결정하는 값
ICMP (Internet Control Message Protocol) host 서버와 Internet GateWay 사이에서 메시지를 제어하고 에러를 알려주는 protocol
RFC792 에 의해 정의됨
pint 명령이 사용함
설정 명령어 nmtui

 

Network관련 파일(반드시 알아야 하는 파일)

root@ysy:~# cd /etc/netplan
root@ysy:/etc/netplan# nl 00-installer-config.yaml
     1  # This is the network config written by 'subiquity'
     2  network:
     3    ethernets:
     4      enp0s3:
     5        dhcp4: true
     6    version: 2

 

Network 장비

NIC(Network Interface Card). Ethernet Card 랜카드
--> 다른 컴퓨터와읭 통신을 위한 필수 장비

전송매체(Cable) : UTP cable 
--> 양쪽 끝에 RJ45 커넥터가 달려있음

Router --> GateWay 역할을 하는 장비

HUB --> 여러 대의 컴퓨터를 연결시켜주는 장비

SWITCH --> 지능을 가진 HUB

 

network 관련 명령어

ifconfig

ㄴ 현재 시스템에서 사용 가능한 네트워크 인터페이스의 목록과 해당 인터페이스의 IP 주소, 맥(MAC) 주소, 넷마스크, 브로드캐스트 주소 등을 확인할 수 있음

root@ysy:~# ai net-tools  --> net-tools 설치

root@ysy:~# ifconfig  --> 현재 활성화 된 상태 보기
enp0s3: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500  --> 랜카드(파일이름) (물리적 장치 있어야됨)
        inet 10.0.2.15 (아이피) netmask 255.255.255.0 (서브넷) broadcast 10.0.2.255
        inet6 fe80::a00:27ff:fe10:e4cd  prefixlen 64  scopeid 0x20<link>
        ether 08:00:27:10:e4:cd (맥주소) txqueuelen 1000  (Ethernet)
        RX(receive) packets 2064  bytes 407547 (407.5 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX(transfer) packets 1290  bytes 447162 (447.1 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536 --> loopback(물리적장치x -> 소프트웨어적)
        inet 127.0.0.1 (localhost : 자기자신) netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 98  bytes 7963 (7.9 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 98  bytes 7963 (7.9 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
        
root@ysy:~# ip addr  --> 현재는 ip addr 명령어를 사용함
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 08:00:27:10:e4:cd brd ff:ff:ff:ff:ff:ff
    inet 10.0.2.15/24 metric 100 brd 10.0.2.255 scope global dynamic enp0s3
       valid_lft 59999sec preferred_lft 59999sec
    inet6 fe80::a00:27ff:fe10:e4cd/64 scope link
       valid_lft forever preferred_lft forever

 

route 명령어 사용법

root@ysy:~# route  --> 현재 설정된 routing table 을 봄
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         _gateway        0.0.0.0         UG    100    0        0 enp0s3
10.0.2.0        0.0.0.0         255.255.255.0   U     100    0        0 enp0s3
_gateway        0.0.0.0         255.255.255.255 UH    100    0        0 enp0s3
kns.kornet.net  _gateway        255.255.255.255 UGH   100    0        0 enp0s3
kns2.kornet.net _gateway        255.255.255.255 UGH   100    0        0 enp0s3

 

ping 명령어 사용법

#ping [Domain|Hostname|ip]

root@ysy:~# ping -c3 yahoo.com  --> 보내는 갯수를 3개로 함
PING yahoo.com (74.6.143.26) 56(84) bytes of data.
64 bytes from media-router-fp74.prod.media.vip.bf1.yahoo.com (74.6.143.26): icmp_seq=1 ttl=45 time=205 ms
64 bytes from media-router-fp74.prod.media.vip.bf1.yahoo.com (74.6.143.26): icmp_seq=2 ttl=45 time=205 ms
64 bytes from media-router-fp74.prod.media.vip.bf1.yahoo.com (74.6.143.26): icmp_seq=3 ttl=45 time=205 ms

--- yahoo.com ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2027ms
rtt min/avg/max/mdev = 204.859/205.007/205.231/0.161 ms

 

traceroute

traceroute

 

열린 port 확인하기

root@ysy:~# ai nmap  --> nmap 설치

root@ysy:~# nmap localhost  --> 몇 번 포트가 열려있는지 보여줌
Starting Nmap 7.80 ( https://nmap.org ) at 2023-05-01 21:24 KST
Nmap scan report for localhost (127.0.0.1)
Host is up (0.0000020s latency).
Not shown: 996 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh		--> ssh(22) 포트
80/tcp   open  http		--> http(80) 포트
3306/tcp open  mysql		--> mysql(3306) 포트
8080/tcp open  http-proxy

Nmap done: 1 IP address (1 host up) scanned in 0.08 seconds

 
** 기본 포트 번호

 

/etc/services

ㄴ 표준 포트 번호를 저장하고 있는 파일

root@ysy:~# grep http /etc/services
# Updated from https://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.xhtml .
http            80/tcp          www             # WorldWideWeb HTTP
https           443/tcp                         # http protocol over TLS/SSL
https           443/udp                         # HTTP/3
http-alt        8080/tcp        webcache        # WWW caching service

--> http : 80

root@ysy:~# grep ftp /etc/services
ftp-data        20/tcp
ftp             21/tcp
tftp            69/udp
ftps-data       989/tcp                         # FTP over SSL (data)
ftps            990/tcp
venus-se        2431/udp                        # udp sftp side effect
codasrv-se      2433/udp                        # udp sftp side effect
gsiftp          2811/tcp
zope-ftp        8021/tcp                        # zope management by ftp

--> ftp : 21

root@ysy:~# grep https /etc/services
# Updated from https://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.xhtml .
https           443/tcp                         # http protocol over TLS/SSL
https           443/udp                         # HTTP/3

--> https : 443

root@ysy:~# grep imap /etc/services
imap2           143/tcp         imap            # Interim Mail Access P 2 and 4
imaps           993/tcp                         # IMAP over SSL

--> IMAP4 : 143 (일반적으로 암호화되지 않은 연결에 사용)
--> IMAP4 over SSL : 993 (SSL / TLS 암호화된 연결에 사용)

root@ysy:~# grep pop3 /etc/services
pop3            110/tcp         pop-3           # POP version 3
pop3s           995/tcp                         # POP-3 over SSL

--> pop3 : 110

root@ysy:~# grep domain /etc/services
domain          53/tcp                          # Domain Name Server
domain          53/udp
domain-s        853/tcp                         # DNS over TLS [RFC7858]
domain-s        853/udp                         # DNS over DTLS [RFC8094]

--> domain : 53

root@ysy:~# grep mysql /etc/services
mysql           3306/tcp
mysql-proxy     6446/tcp                        # MySQL Proxy

--> mysql : 3306

 
 

ip_class 구분방법

Class 첫 필드 범위 실제 예
A 0 ~ 127 63 129 32 150
B 128 ~ 191 153 65 210 33
C 192 ~223 211 238 142 110
D 실제 사용하는 범위가 아님
사설 ip  --> 동네에서만 사용 가능
어느 기관에서도 공식적으로 부여되지 않은 ip
어떤 곳에서도 내부망으로 이용 가능

--> 실제 서비스 하려면 공인 ip 필요

A class 10.0.0.0 ~ 10.255.255.255
B class 172.16.0.0 ~ 172.32.255.255
C class 192.168.0.0 ~ 192.168.255.255

A class 2^7 개 생성가능
B class 2^14 개 생성가능 (2^6 X 2^8)
C class 2^21 개 생성가능 (2^5 X 2^8 X 2^8)

 



2진법, 10진법, 16진법의 이해

 

내부망과 외부망을 구분하는 방법

목적지 주소와 netmask 값을 AND 연산 함

결과값과 Network 주소값을 비교하여 동일하면 내부망, 다르면 외부망



Netmask

Netmask 를 이용하여 상대가 외부 network 인지 구분할 수 있음

class Netmask
A class 255   .     0     .    0    .     0       -->  11111111    00000000   00000000   00000000
B class 255   .   255   .    0    .     0       -->  11111111     11111111      00000000   00000000
C class 255   .   255   .  255  .     0       -->  11111111     11111111      11111111        00000000

=>  255   .   255   .  255  .     0            -->     11111111     11111111      11111111        00000000
       ㄴ network                     ㄴ host             ㄴ network                                                       ㄴ host

network IP 내부 네트워크의 시작이 되는 IP (0 으로 끝나는 ip)
Boradcast 내부에서 네트워크의 끝이 되는 IP (255 가 끝인 ip)

ex) 127.0.0.1 / 8  --> 11111111 00000000 00000000 00000000      =>  8 = netmask
ex) 10.0.2.15 / 24  --> 11111111 11111111 11111111 00000000      =>  24 = netmask
 
 


 

내 Netmask 계산 방법

Netmask 를 이용하여 상대가 외부 network 인지 구분할 수 있음

상대방 ip 와 umask 를 AND 연산 시 200.190.42.00 이 나옴

결국 대표 네트워크 3번째 자리 46과 계산 결과 3 번째 자리 42가 다르므로 상대방은 외부 네트워크임

 
C class 를 예로 들면

자신의 ip 200 . 190 . 46 . 55
대표 네트워크 200 . 190 . 46 . 0
상대방 ip 200 . 190 . 42 . 12

 

Netmask 255 . 255 . 255 . 0 11111111 . 11111111 . 11111111 . 00000000
연산 AND
상대 ip 200 . 190 . 42 . 12 xxxxxxxx . xxxxxxxx . 00101010 . 00000110
결과 200 . 190 . 42 . 00 xxxxxxxx . xxxxxxxx . 00101010 . 00000000

ㄴ 대표 네트워크 3번째 자리 46과 계산 결과 3 번째 자리 42가 다르므로 상대방은 외부 네트워크임