3. 8 (목) Linux 정리 - 네트워크 설정

Linux - 06 네트워크 설정

커널 - 하드웨어를 관리
user는 디바이스 파일을 통해 h/w를 제어 (직접 접근할 수 없다)

◎ Network Interface Card
  - 유닉스 시스템들은 각 시스템마다 NIC를 지칭하는 디바이스 파일명이 고유
  - 리눅스의 경우, eth0, eth1.. 등의 이름으로 명명
  - (en0, en1.... tu0, tu1...등 유닉스마다 다 다른 이름)장치의 설정은 커널 부트업시
   자동으로 수행
  - 지원되지 않는 NIC는 직접 컴파일 후 디바이스를 적재해야 함.

  +) 리눅스에서 램카드를 이용하려면 오랜 시간 사용하여 검증된 마더보드를
   구입하는 것이 좋다.

◎ 디바이스 파일
 - /lib/modules/2.6.18-274.el5/kernel/drivers/net 경로에 리눅스에서 지원하는
  모든 네트워크 디바이스 파일이 존재

+) 실습 PC의 경로
  - /lib/modules/2.6.18-398.el5/kernel/drivers/net

◎ ifconfig 명령어

 네트워크 인터페이스 상태를 확인하거나 설정을 변경
  - 변경 내용은 영구적이지 않음
    -> 시스템이 변경 내용을 읽어야하는데, 부트 시에만 한번 읽기 때문에 서비스를
       죽였다 살리거나 시스템을 리부트해야 변경 가능.
    -> 환경설정 파일을 아무리 변경해도 즉시 변경이 적용되지 않음.
 
  - 인터페이스를 변경하더라도 재부팅하면 원상 복귀.
  - IDC : 매우 빠른 네트워크, 제공자의 Server를 관리 (비싼 임대료)
          서버 1대 한 달에 70정도?
# ifconfig
# ifconfig [NIC명]
# ifconfig [NIC명] [IP] netmask [mask명] [up|down]

  - 인터넷을 쓰기 위해 설정해야 하는 것 3가지
IP / Netmask / Gateway
  - 이 명령어로 IP와 NetMask는 수정 가능
  - Gateway는 유닉스 설정 단에서 제공

  - 파일에 저장하지 않았으면, 유닉스는 모두 초기화 된다. (윈도우와 다름)

  파일 이름을 몰랐을 때
  -> 부트 시 마다 ip주소 변경하게 설정하는 방법도 있다

  - up / down 명령은 전원을 살리고 죽이는 명령어, but 일반적 마더보드에서는 죽여두면
   다시 살리지 못한다

  - ifconfig 명령어를 단일로 사용하면, 다른 유닉스에서는 먹히지 않으나
   리눅스는 정보를 출력

  - lo : local loopback 인터페이스 카드 / 실제로 존재하는 랜카드가 아닌 메모리 상에서
        존재하는 가상 랜카드 / 이곳에 데이터를 던지면 / 메모리 안에서 돌다가 끝남 /
        127.0.0.1 (Local Loopback Interface 주소) /
    -> lo가 아직도 존재하는 이유는? : eth0가 없는 환경에서는 phys,Link Layer가 없었기
       때문에 네트워크 접속이 불가했었음. / lo가 가짜 랜카드 역할을 해주기 때문에
       네트워크를 이용할 수 있음. 모든 운영체제에서 제공


  - Link encap(encapsulation) : 데이터 전송 방식 - 랜카드 종류
     (보통 이더넷, 나머진 비싸서;)
  - HWaddr : H/W 주소 (앞에 3자리 - 제조사 주소) (뒤에 3자리 - 밴드 주소)
  - inet addr : ipv4 주소
  - Bcat, Mask : 브로드 캐스트 주소, 넷 마스크
  - inet6 addr : ipv6 주소
  - UP BROADCAST RUNNING MULTICAST : UP이면 정상 작동중
랜카드의 역할 : 자신의 주소로 들어오는 메시지를 수신하고 나머지는 거름
랜카드 몇놈은 자신의 주소가 아닌 메시지도 다 받는다. ( 스니핑 - 메시지 도청 )
  - MTU : 최대 전송 단위 (바이트 단위)



 TCP/IP 설정

+) 가짜 랜카드 사용 (eth0..1, eth0..2 ... ) / 네트워크 인터페이스가 여러개면 ip도 여러개,
but 디폴트 게이트웨이는 항상 1개



◎ 네트워크 설정 파일

- 리눅스의 경우

/etc/sysconfig/network-scripts/ifcfg-NIC명(eth0)
  -> IP, subnetmask, gateway …

/etc/sysconfig/network
  -> 호스트명, (gateway)
- 원래 gateway는 이 파일에만 저장되어 있었는데, 윈도우 사용자들의 편의를 위해
위의 경로에도 옮기는 경우도 있다.(이것이 추세)
- 시스템마다 다르기 때문에 여기에 gateway가 없을 수 있다.

/etc/resolv.conf
  -> DNS Server
- DNS, 왜 설정하는가? : 접근할 서버의 ip를 알아야하지만 패킷에선 ip 정보를 담지
못함!(모르니까!), Local 네임서버에 주소를 요청함. /
본인이 만든 NS(네임서버)를 확인하고 싶으면, Local NS를
자신의 주소로 바꿔야 함. (숙지)
- Name Server를 우리가 못만드는 이유? : NS가 무슨 일을 하는지 모르기 때문!
/ 서버가 무슨 역할을 하는지 안다면 만들 수 있다. but 리눅스를 이용할지 모른다면
만들기가 역시 불가능.

/etc/sysconfig/network-scripts/ifcfg-eth0 (경로 꼭 외우기)
DEVICE=nic명
BOOTPROTO=[static/dhcp/bootp/none] 
( 고정 / 동적(안씀) / mac은 아는데 ip를 몰라서(RARP) / default)
BROADCAST=브로드캐스팅주소
HWADDR=MAC 주소
IPADDR=IP
NETMASK=Subnet Mask
NETWORK=Network 주소
ONBOOT=[yes/no]
TYPE=Ethernet
GATEWAY=gateway 주소

  -> 파란색은 건드리면 안 됨! / 빨간 내용만 접근


/etc/sysconfig/network

NETWORKING=[yes/no]
HOSTNAME=호스트명
GATEWAY=gateway 주소

/etc/resolv.conf
search [default 도메인명]
nameserver [DNS 서버 IP]
- 여기에 설정하고 확인
- 여러 도메인네임서버 ip를 만들수 있음
- 첫번째 ip가 대답 안하면 두번째 ip에게 묻지 않음
(첫번째가 죽었다 해야 두번째)

 서버 설정 시에 [NetworkManager]를 삭제한다.
- 설정값이 환원된다.
- #yum remove NetworkManager (Cent는 있고 / SU는 없음)

※ yum? 온라인에서 유틸리티 파일을 삭제시켜주는 명령어



◎ 네트워크 재시작

# /etc/rc.d/init.d/network [stop | start | restart]
  -> 웬만하면 위의 방법을 사용 (경로를 외우기 위해)
  -> 익숙해졌다면 service를 사용해도 좋다

# service network [stop | start | restart]
  - 파일을 수정한 이후에는 반드시 네트워크를 재 시작 해야 한다.
  - ‘/etc/rc.d/init.d/스크립트_파일’ 을 재 시작하는 방법보다는 service 명령을 이용하는
    방법을 권한다.
  - CentOS7 부터는 service 명령이 systemctl 명령으로 통합되었다.


+실습)









◎ setup (netconfig)
  - 콘솔기반 네트워크 설정 툴
  - 네트워크 이외 다양한 설정을 메뉴방식으로 진행 할수 있다.
  - 각 설정내용을 앞 슬라이드에 설명한 설정파일에 저장된다. 즉, 설정파일을 직접
    수정하는 것과 동일하다.
  - netconfig 명령이 수행되지 않는 경우도 있다.
    (최근 배포본들은 지원하지 않는 경우가 많다.)
  - 설정 이후에 반드시 네트워크를 재시작한다.


+실습)


















◎ system-config-network (netcfg)
  - Xwindows 기반의 네트워크 설정 프로그램
  - [시스템]-[관리]-[네트워크] 메뉴를 선택하거나
  - Xwindows 터미널에서 system-config-network 명령을 수행한다.
  - netcfg 명령이 수행되지 않는 경우도 있다.
     • 최근 배포본들은 지원하지 않는 경우가 많다.
     • 래드햇 계열의 리눅스들은 system-config-*로 설정 명령어들을 통일 시켰기 때문에
      거의 지원되지 않는다.
  - 프로그램 내에서 직접 네트워크를 재시작 할수 있다.

---------------------------------------------------------------------------------------------------
다양한 네트워크 명령어

◎ ping 명령어 (빈도 높음)

  특정 호스트까지의 연결과 대상 시스템의 작동여부를 확인

  #ping [ip]

  리눅스에선 윈도우와 달리 핑을 무제한으로 보내 ^c를 이용해 강제 중단한다.




◎ netstat 명령어 (빈도 높음)

  - 리눅스가 아닌 다른 시스템을 사용하여 네트워크 인터페이스를 모르는 경우 참조가능
  - 시스템의 연결상태, 포트, 인터페이스등의 상태와 통계정보를 확인해서 네트워크 상태를
    진단하는 프로그램

# netstat [옵션]

  - 옵션
-i : 인터페이스 상태 확인
-s : IP, ICMP, TCP, UDP 에 대한 패킷 통계정보
-nr : 라우팅테이블 확인



◎ arp

  패킷을 송수신한 대상의 MAC 주소를 확인한다.

  * arp 스푸핑 - MAC 주소가 같은데 ip 주소가 다름, 그런데 ip주소가 라우터의 주소와
   같다?
-> 스푸핑 의심.




◎ 네트워크 명령어

host, nslookup, dig
  : 도메인 명에서 ip를 확인하거나 ip를 이용 도메인 명을 확인
  : ip로 도메인을 확인하는 것은 rev zone(리버스 존)을 확인하는 것이므로 도메인
설정을 확인하는 것으로는 큰 의미가 없다.


 -> 첫줄 : www.daum.net 의 실제 주소는 www.g.daum.net
 -> www.g.daum.net의 ip 주소는 두 개다 = 서버가 최소 2대 (분산 처리 - 클러스터링)




◎ Traceroute(tracert)
  출발지 시스템에서 목적지 시스템까지의 데이터 전송 경로를 추적하는 명령어.




---------------------------------------------------------------------------------------------------
Aliases


◎ IP aliases

  하나의 물리적인 인터페이스를 여러 개의 논리적인 인터페이스로,
  구현 IP를 여럿 설정하는 방식

- 순서
  1. ifcfg-eth0를 ifcfg-eth0:1, ifcfg-eth0:2 등으로 복사한 이후
    각각 다른 device와 IP를 설정
⇒ subnet은 동일하거나 달라도 상관없다.
⇒ 설정후 nic를 reset한다.
  2. ifconfig 명령을 이용한다.
⇒ ifconfig eth0:1 192.168.0.1 …


◎ 추가적인 네트워크 설정 파일

   /etc/hosts : 호스트명과 IP를 저장하는 파일
 - 각 레코드는 [ip 호스트명(도메인명) 별명] 형태로 정의
   -> 이 파일에 저장해두면, 네임서버에게 묻지 않고 파일만 참조
   -> 127.0.0.1로 설정하면 인증되지 않음


   /etc/host.conf -> 이런 파일이 있다는 정도만 알고있으면 된다.
 - name resolution 순서를 지정하는 파일
 - order : resolution 순서를 정의하는 항목
 - host : /etc/hosts 파일 검사
 - bind : /etc/resolv.conf 파일에 지정된 name 서버에 질의

댓글

이 블로그의 인기 게시물

Linux Server - FTP 실습 (2 / 2) : 사용자 제한 ( ftpuser / user_list )

전자서명 개념

3.27 (화) - Network (패킷 통신 - 4가지 지연)