1. 용어

용어설명
hostnameprimary hostname, FQDN
TCP/IPIP address(IPv4, IPv6), subnet mask, gateway
NICNetwork Interface Card == 랜카드
Wired Network(Wired Connection)유선 네트워크(유선 연결)
Wireless Network(Wireless Connection)무선 네트워크(무선 연결)
LANLocal Area Network
WANWide Area Network

1.1. hostname

  • 컴퓨터의 이름: access.redhat.com
    • access: 사람으로 치면 given name
    • redhat.com: family name == 도메인 주소
  • 중의적 의미
    • 도메인을 제외한 호스트 이름
    • 도메인을 포함한 FQDN
  • FQDN(Fully Qualified Domain Name)
    • 도메인 내에서 유일하게 구별 가능한 이름
    • DNS(Domain Name Service) 서버에서 제공하는 이름
  • localhost: 항상 자기 자신을 의미하는 주소와 맵핑됨
    • IPv4: 127.0.0.1
    • IPv6: ::1

1.2. IP 주소

  • IPv4

    • 32bit 주소 체계
    • 8bit씩 끊어서 xxx.xxx.xxx.xxx로 표기
  • IPv6

    • 128bit 주소 체계
    • IPv4-mapped IPv6: ::ffff:IPv4_addr로 표기
      • e.g. 58.232.1.100 = ::ffff:58.232.1.100
  • dual stack: 시스템이 IPv4와 IPv6를 모두 지원

  • CIDR(Classless Inter-Domain Routing): IP 클래스와 상관없이 서브넷을 지정하여 자르는 것

    • xxx.xxx.xxx.xxx/##로 표기
    • ##에 서브넷 마스크의 on 비트 개수를 표기
    • e.g. 192.168.100.0/24 → 192.168.100.0/255.255.255.0
    • e.g. 192.168.100.0/25 → 192.168.100.0/255.255.255.128
    • e.g. 192.168.100.128/26 → 192.168.100.128/255.255.255.192
  • public IP/private IP

    • public IP: 공인 주소(인터넷에서 유일한 주소)
    • private IP: 사설 주소(인터넷에 직접 연결되지 않는, 유일하지 않은 주소)

1.3. SELinux

  • Security Enhanced Linux: 커널 레벨에서의 중앙 집중식 보안 기능
  • 보안 레벨
    • enforcing(강제): 보안 설정에 걸리면 강제로 막음
    • permissive(허가): 보안 설정에 걸리면 허용하되 로그를 출력함
    • disabled(비활성): SELinux를 사용하지 않음

2. Network Configuration

2.1. Legacy 방식

  • '/etc/network/interfaces'에서 설정

2.2. NetworkManager

  • legacy commands: ifconfig, route, ip, nmcli, ethtool
  • # nmcli: Network Manager CLI tool
    • 네트워크 관련 대부분의 기능을 가지고 있음
    • 조회 및 설정 가능
    • # nmcli g[eneral]: STATE, CONNECTIVITY 등 확인
    • # nmcli n[etworking] [on/off]: 시스템이 networking 가능한 상태인지 확인, 설정 가능
    • # nmcli r[adio]: 무선 설정 여부 확인
    • # nmcli d[evice]: device 확인
    • # nmcli c[onnection]: 연결된 device 확인
      • # nmcli c s[how]: 출력 소문자는 설정된 값, 대문자는 할당된 값
      • # nmcli c s <connection name>
      • connection 설정, nmcli 속성 변경, IP 주소 변경, 설정 삭제 후 추가

2.3. Network Device Naming

  • eth#[:n]: old style(e.g. eth0:0)

  • Consistent Network Device Naming(2009)

    • prefix: en(ethernet), wl(wireless lan), ww(wireless wan)

    • following device name: e.g. enp5s0

      o<index>on-board device index number
      s<slot>[f<function>][d<dev_id>]hotplug slot index number
      x<MAC>MAC address
      p<bus>s<slot>[f<function>][d<dev_id>]PCI geographical location
      p<bus>s<slot>[f<function>][u<port>][..][c<config>][i<interface>]USB port number chain

3. Network Tools

3.1. ss

socket status 또는 socket statistics

  • $ ss [options] [FILTER]

  • options

    options
    -n--numeric
    -a--all
    -l--listening
    -e--extended
    -o--options
    -m--memory
    -p--processes
    -i--info
    -s--summary
    -4--ipv4
    -6--ipv6
    -t--tcp
    -u--udp
    -x--unix
    -f FAMILY--family=FAMILY
  • FILTER := [state TCP-STATE] [EXPRESSION]

  • TCP-STATE: Server side, Packet flow, Client side로 생각해보기

    • Client side: active open, active close(일반적으로)
    • Server side: passive open, passive close(일반적으로)
    • Three-way handshaking: TCP 접속을 만드는 과정
    • Four-way handshaking: TCP 접속을 해제하는 과정

3.2. querying

  • $ ping [-c count] [-o interval] [-s size] [-t ttl] target
  • $ traceroute: 패킷의 도달 경로를 확인
  • $ arp: IP와 MAC 주소를 매칭하는 ARP 테이블 확인
  • $ resorver: IP 주소 또는 hostname을 해석
  • $ dig [@server] <target>: nameserver에 질의하는 유틸리티

3.3. net. dev. utils

  • $ ethtool
    • $ ethtool <device>: 장치 설정 확인

3.4. ssh server

ssh(secure shell): 통신 구간을 암호화

  • $ systemctl status sshd: sshd(daemon) 서비스가 실행 중인지 확인
  • $ systemctl start sshd: sshd 서비스 실행

3.5. ssh client

  • $ ssh [-p port] [username@]<host addr>

3.6. HTTP/others utils

  • curl: url을 기반으로 통신하는 기능
    • CLI tool과 library 제공
    • URL 기반 다양한 프로토콜 지원: HTTP, HTTPS 등
    • libcurl 라이브러리 제공: 다양한 프로그래밍 언어에서 프로그래밍 가능
    • $ curl [options] <URL>
    • $ curl -C - -O <URL>: 파일 다운로드
    • $ curl <API URL>: API 서버에서 정보 받아오기
  • wget: 파일 다운로드에 특화되어 있음. curl이 더 많은 기능을 가짐
  • nc(netcat): 간단한 간이 서버, 클라이언트로 사용 가능
    • terminal #1: $ nc -k -l 5000
    • terminal #2: $ nc 127.0.0.1 5000

4. Wireless Network

  • $ nmcli r[adio]: 무선 네트워크 활성화 여부 확인. on/off 가능
    • $ nmcli r wifi
    • $ nmcli dev wifi: 접속 가능한 wifi 리스트
    • $ nmcli dev wifi connect <SSID|BSSID> [password <pass>]: wifi 연결

📙강의 - 코인즈월렛 기술이사 김선영

profile
JUST DO IT.

0개의 댓글

Powered by GraphCDN, the GraphQL CDN