I. 네트워크 환경설정 - (매년 출제)
1) 이더넷 설정
장치 드라이버
-자동으로 이더넷 카드에 대한 커널의 장치 모듈이 실행되지 않는 경우에는 먼저 네트워크 카드를 위한 커널 모듈을 실행해야한다.
-네트워크 카드의 모듈 위치: /lib/modules/<kernel-version>/kernel/drivers/net
-네트워크 카드 모듈이 있을 시, modprobe 또는 insmod 명령으로 해당 모듈을 커널이 인식 할 수 있도록 활성화 시킬 수 있다.
*리눅스가 지원하는 네트워크 인터페이스 종류
lo |
루프 백 인터페이스 (127.0.0.1) |
eth[number] |
이더넷 인터페이스 |
ppp[number] |
PPP 인터페이스 (모뎀에 이용) |
dl[number] |
D-Link DE-600 포켓 어댑터 시리즈 인터페이스 |
plip[number] |
패럴렐(Parallel) 라인 인터페이스 |
sl[number] |
SLIP 인터페이스 |
커널에 모듈로 랜 카드 인식
1.수동으로 모듈 적재: 네트워크 관련 모듈 위치(/lib/modules/<kernel-version>/kernel/drivers/net)
커널에 모듈을 다루는 명령어 |
|
/sbin/modprobe |
모듈을 검색하여 적재한다. |
/sbin/modprobe -r(= -remove) |
모듈을 제거한다. |
/sbin/lsmod |
적재되어 있는 모듈의 정보를 보여준다. |
/sbin/insmod | 모듈을 커널에 인식시킨다. |
/sbin/rmmod | 적재되어 있는 모듈을 제거한다. |
3com 3c509계열의 랜카드를 직접 모듈로 올리는 예 |
# modprobe 3c59x 또는 # insmod /lib/modules/<kernel-version>/kernel/drivers/net/3c59x.ko // 모듈 적재 |
# lsmod // 모듈 적재 확인 Module Size Used by 3c59x 79989 1 .... |
# modprobe -r 3c59x 또는 # rmmod 3c59x // 적재된 모듈 제거 |
2.부팅 시 자동으로 모듈 적재: /etc/modprobe.conf(다른 버전: /etc/modprobe.d/<모듈명>)에 설정 해두어 모듈을 자동으로 RAM에 적재
[옵션: alias, options, install, remove, include, blacklist]
2) 네트워크 환경 설정
1.ifconfig
1] 네트워크 카드 활성화 |
# ifconfig eth0 192.168.1.2 netmask 255.255.255.0 broadcast 192.168.1.255 up |
2] 설정 내용 확인 - (MAC, IP, 브로드캐스트, 서브넷 마스크, MTU, RX packets, TC packets, Collisions, Interrupt, 현재 UP여부) |
# ifconfig |
3] 기존 설정 내용 해체 |
# ifconfig eth0 down |
라우팅 테이블에 엔트리 추가 (route, 게이트웨이, DNS 서버 설정) |
1] 192.168.1.x로 route 활성화 |
# route add -net 192.168.1.0 netmask 255.255.255.0 dev eth0 |
2] 디폴트 게이트웨이 설정 |
# route add default gw 192.168.1.1 dev eth0 |
3] /etc/resolv.conf에 DNS 서버 설정 |
nameserver 168.126.63.1 nameserver 168.126.63.2 search cblaw.net |
2.netconfig: 콘솔용 프로그램으로 네트워크 터미널 상에서도 실행이 가능하며 간단하게 네트워크 설정을 할 수 있는 툴이다.
콘솔에서 명령어를 통해 실행 |
# setup 또는 #netconfig(안되는 버전도 있음) |
3.네트워크 설정 프로그램: GUI환경에서 네트워크 설정
4.설정 파일 편집을 통한 네트워크 설정: /etc/sysconfig/network-scripts/ifcfg-eth0 (데비안: /etc/network/interfaces) [제일 자주 씀]
▲모든 설정을 마친 후에는 네트워크 재시작을 해줘야 한다. [ # service network restart, # /etc/init.d/network restart ]
네트워크 관련 명령어
1) ifconfig
네트워크 설정 확인 |
# ifconfig |
MAC주소=00:0C:29:6B:5E:ED IP주소=192.168.1.10 브로드캐스트=192.168.1.255 서브넷마스크=255.255.255.0 MTU(최대 전송 단위)=1500 RX packets(부팅 후 받은 패킷 수)=26786979 TX packets(부팅 후 보낸 패킷 수)=776573 collisions(충돌된 데이터 수)=0 현재 UP(사용가능)된 상태 |
|
특정 네트워크 확인 |
# ifconfig eth0(특정네트워크이름) |
네트워크 활성/비활성 |
# ifconfig eth0 up / # ifconfig eth0 down |
네트워크 명령어 설정 |
# ifconfig eth1 192.168.0.150 netmask 255.255.255.0 broadcast 192.168.0.255 up |
2) netstat: 현재 연결된 네트워크 연결과 라우팅 테이블, 인터페이스에 대한 통계, 마스커레이딩 연결, 멀티캐스팅 정보 등을 보여준다.
*주요옵션
옵션 |
설명 |
-a |
--all과 같으며, listen되는 소켓정보와 listen되지 않는 소켓정보를 모두 보여준다. |
-n |
--numeric과 같으며, 10진수의 수치정보로 결과를 출력해준다. |
-r |
--route와 같으며, 설정된 라우팅 정보를 출력해준다. |
-p |
--program과 같으며, 실행되고있는 각 프로그램과 PID정보를 출력한다. |
-i |
--interface(=iface)와 같으며, 모든 네트워크 인터페이스 정보를 출력한다. |
-c |
--continuous와 같으며, netstat결과를 연속적으로 출력한다. |
-l |
--listening과 같으며, listen되고 있는 소켓 정보를 출력한다. |
-s |
--statistics와 같으며, 각 프로토콜에 대한 통계정보를 출력한다. |
인터페이스의 표시 |
# netstat -i |
라우팅 정보 출력 |
# netstat -rn |
|
|
패킷 통계 보기 | # netstat -s // IP, ICMP, TCP, UDP 등의 프로토콜에 대해 들어오고 나간 패킷, 에러난 패키 등을 보고 |
열려진 소켓들 출력하기 | # netstat |
-State 상태 출력에 대한 설명
|
3) route: 라우팅 경로를 보거나 변경할 수 있도록 해주는 명령어
*주요옵션
옵션 | 설명 |
-F | 커널의 FIB 라우팅 테이블에 기초하여 작동 (기본값) |
-C | 커널의 라우팅 캐시에 기초하여 작동 |
-n | 심볼릭 호스트 이름이 아닌 IP로 나온 주소를 보여줌 |
-e | 라우팅 테이블을 출력하기 위해 netstat 포맷을 사용 |
-net | 목적지 네트워크 |
-host | 목적지 호스트 |
del | route를 삭제 |
add | 새로운 route를 추가 |
netmask | 네트워크 route를 추가할 때 사용 |
gw | 게이트웨이를 통해 패킷을 route |
metric | 라우팅 테이블 안에 있는 metric 필드를 metric 뒤의 숫자로 세팅 |
irtt | 해당 route에 걸친 TCP 연결에 대한 Initial Round Robin Trip 시간 (기본값=300ms) |
# route |
|
Destination |
목적지 네트워크나 호스트의 주소이다. |
Gateway | 게이트웨이의 주소이다. (미설정 시 (*)로 표시) |
Genmask | 목적지 네트워크에 대한 넷마스크값이다. 255.255.255.255일 경우 호스트이고 0.0.0.0일 경우 default 경로이다. |
Flags | 호스트들에 대한 플래그이다. [U-해당 경로가 동작중임, H-목적기가 호스트임, G-게이트웨이를 사용함 (이외에도 R,D,M,A,C,! 가 있음)] |
Metric | 목적지까지의 거리(단위:hop)이다. |
Ref | 리눅스에서는 쓰이지 않지만 해당 경로에대한 참조의 숫자를 나타낸다. |
Use | 해당 경로를 사용한 숫자이다. |
Iface | 해당 경로로 패킷을 보낼때 사용하는 인터페이스의 이름이다. |
*route 명령 활용 예
라우팅테이블 확인 작업 |
# route 또는 # route -n |
새로운 라우팅테이블 추가 |
# route add -net <네트워크 주소> netmask <넷마스크값> dev <인터페이스명> |
기존 라우팅테이블 제거 작업 |
# route del -net <네트워크 주소> netmask <넷마스크값> [dev <인터페이스명>] |
기본 게이트웨이 추가 작업 |
# route add default gw <기본 게이트웨이 주소> dev <인터페이스명> |
기본 게이트웨이 제거 작업 |
# route del default gw <기본 게이트웨이 주소> dev [<인터페이스명>] |
루프백 인터페이스 추가 작업 |
# ifconfig lo 127.0.0.1 ▶ # route add -net 127.0.0.1 |
4) traceroute: 내부 네트워크가 정상 작동 중이지만, 외부로 연결이 안될 경우 확인하는 프로그램이다.
사용법: # traceroute destination [port] |
5) tracepath: 패스를 가지고있는 MTU를 통해서 목적시스템까지의 경로를 알아내는 프로그램이다.
사용법: # tracepath destination [port] |
6) ping: 컴퓨터의 네트워크가 정상적으로 동작중인지 확인해볼 때 사용하는 도구이다.
# ping |
|
위 그림 처럼 ping은 인터럽트신호(^c)를 보내기 전까지 계속 보내기 때문에 보낼 패킷 수 지정을 다음 옵션을 추가해 지정한다. |
# ping -c 5 www.naver.com // 5번만 보낸다. |
7) arp(Address Resolution Protocol): 동일한 네트워크 내에 존재하는 호스트들의 IP 주소와 ethernet 주소를 확인하는 명령어이다.
*주요옵션
옵션 | 설명 |
-a | ARP 캐쉬 테이블에 저장되어있는 모든 호스트 정보를 출력한다. |
-s | ARP 캐쉬 테이블에 저장된 특정 IP에 대한 MAC주소를 변경한다. |
-d | ARP 캐쉬 테이블에 저장된 특정 MAC주소를 삭제한다. |
-i | eth0과 같은 네트워크 인터페이스를 지정한다. |
-n | Resolving을 하지 않은 IP주소를 출력한다. |
-v | 자세한 모드(verbose)로 결과를 출력한다. |
8) nslookup: 인터넷 도메인 네임 서버에 사용자가 직접 도메인 이름을 질의할 수 있도록 해주는 프로그램이다.
비대화형(non-interactive) 모드 - (질의 후 결과를 받음) |
|
대화형(interactive) 모드 - (대화를 지속하면서 다양한 호스트나 도메인 네임들에 대해 질의 후 결과를 받음) |
|
Non-authoritative answer와 Authoritative answer:
nslookup에 도메인 네임을 질의하면 보통 "Non-author.."라고 붙어있는데, 이는 현재 사용하고 있는 네임서버에는 해당 도메인에 대한 캐시(Cache)가 저장되있고, 도메인 정보가 갱신 됬을수도 있기 때문에, 잘못된 답이라고 알려주는 것이다. 그래서 믿을한한(Authoritative) 대답을 얻으려면 도메인 관리하는 서버에 직접 질의해야 한다.
> server 도메인명 // 해당 서버로 변경 후 질의하기 |
|
검색하고자하는 레코드 고르기
MX 값 검색 설정 |
특정 도메인의 메일서버가 어느 곳에 지정되어 있는지 알기 위해서 검색한다. |
|
|
NS 값 검색 설정 |
네임서버를 검색하기 위한 값이다. 이 값으로 특정도메인이 어디에 등록되어 있는지 알수있다. |
|
|
SOA(Start Of Authority) 레코드 |
영역의 시작을 나타내며, 보통 영역 파일 내의 첫번째 레코드이다. 이 레코드는 보관하고 있는 해당 도메인에 대해 네임서버가 인증된 자료를 갖고 있음을 의미한다. |
|
|
origin: 해당 도메인을 위한 주 마스터 네임서버(Primary Name Server)의 호스트 네임 mail addr: 해당 도메인을 관리하는 관리자의 Email주소(@는 '.'으로 대체 되어 있음) serial: 영역 파일의 버전 번호로써 간단한 숫자로 구성된 필드(번호 수정 시 마다, 숫자는 증가) refersh: 주 서버의 영역이 업데이트 되었는지 확인하기 전에 부 서버(Secondary Name Server)가 대기하는 시간 (초단위) expire: 부 서버가 영역 데이터를 보존하는 기간 (초단위) minimum: 영역 데이터가 캐시에 얼마나 오래 남아있어야 할지 명시(초단위) |
|
NS(Name Server) 레코드 | 기본적으로 해당 도메인에 대한 네임서버를 가리킨다. 부가적인 기능으로는 "도메인 위임"을 가능하게 한다. |
A(Address) 레코드 | 리소스 레코드(RR)의 대부분을 차지하고있는 도메인 네임을 IP주소로 변환하는데 사용한다. |
(기본적으로 설정된 값) | |
PTR(Domain Name Pointer) 레코드 | A레코드와는 반대로 IP주소에 대하여 해당 도메인 네임을 돌려준다. |
> set type=PTR > <IP주소> | |
ANY 값 검색 설정 | 특정 도메인 네임에 대한 모든 사용 가능한 리소스 레코드들을 검색하기 위해 사용되는 값이다. |
(MX값과 NS값 전체 다 볼 수 있음) | |
이외의 레코드 | CNAME(Canonical Name) 레코드: 도메인의 별칭에 대해 원래의 명칭을 보여준다. HINFO(Host Information) 레코드: 특정 호스트에 의해 사용되는 HW와 O/S의 설명을 제공한다. WKS(Well-Known Services) 레코드: 특정 호스트에 의해 제공되는 네트워크 서비스들의 정보이다. TXT(Text) 레코드: 특정 호스트에 의해 제공되는 텍스트에 의한 자유 형식의 정보를 제공한다. |
9) dig: 지정한 DNS서버의 설정 내용과 특정 도메인의 네임서버 설정 내용을 확인하는 명령어이다. nslookup과 거의 같은 역할을 한다.
# dig [@네임서버] 도메인 [쿼리타입] [+쿼리옵션] |
쿼리타입에 올수있는 옵션들
|
10) host: 도메인 네임 서버에서 도메인의 설정 정보를 찾기 위한 간단한 유틸리티이다. nslookup과 dig와 마찬가지로 /etc/resolv.conf에 설정된 도메인 네임서버를 기본 네임서버로 인식한다.
사용법: # host <도메인명> |
'자격증 > 리눅스 마스터 1급' 카테고리의 다른 글
Part2) 리눅스 시스템 관리 - 일반 운영 관리(2) | 파일 시스템 관리 (0) | 2018.02.21 |
---|---|
Part2) 리눅스 시스템 관리 - 일반 운영 관리(1) | 사용자 관리 (0) | 2018.02.20 |
Part1) 리눅스의 실무의 이해 - 네트워크의 이해(1) | 네트워크 기초 (0) | 2018.02.13 |
Part1) 리눅스의 실무의 이해 - 리눅스 시스템의 이해(4) | 프로세스 (0) | 2018.02.08 |
Part1) 리눅스의 실무의 이해 - 리눅스 시스템의 이해(3) | X 윈도우, 쉘(Shell) (0) | 2018.01.29 |