시스템에 설정된 네트워크 인터페이스의 상태를 확인 및 변경할 수
[ens5, docker0, ens3 : 랜 카드 라고 불리는 유선 네트워크 인터페이스(이름)]
[lo : 루프 백 인터페이스로 자기자신과 통신하는데 사용하는 가상 장치 ip 127.0.0.1.
ip주소는 서버에 하나씩 부여되는 것이 아니라 네트워크 인터페이스에 할당되기 떄문에
각 네트워크 인터페이스 마다 다른 ip주소를 가지고 있습니다]
[ether : 네트워크 인터페이스의 하드웨어 주소(MAC Address)]
[inet : 네트워크 인터페이스에 할당된 ip주소]
[broadcast : 브로드캐스트 주소]
[netmask : 넷마스크]
[mtu : 네트워크 최대 전송 단위(Maxium Transfer Unit)]
[RX packets : 받은 패킷 정보]
[TX packets : 보낸 패킷 정보]
[collisions : 충돌된 패킷 수]
브로드 캐스트 주소 : 특정 네트워크에 속하는 모든 호스트들이 듣게되는 주소를 의미합니다.
: 네트워크 주소와는 반대로 특정 네트워크의 맨 마지막 주소를 브로드캐스트
넷마스크 : 네트워크 주소 부분의 비트를 1로 치환한 것이 넷마스크
: ip주소와 넷마스크를 and 연산 -> 네트워크 주소!
현재 시스템에 연결된 네트워크 상태, 라우팅 테이블, 인터페이스 상태 등을 볼 수 있습니다
2개의 영역으로 나누어져 보여진다.
[Active Internet connections] : TCP, UDP, raw로 연결된 목록만 보여진다.
[Active UNIX domain sockets] : 도메인 소켓으로 연결된 목록만 보여진다.
옵션
[-n] : 호스트명, 포트명을 lookup(도메인으로 보이지 x), IP,PORT로 보여진다.
[-a] : 모든 네트워크상태를 보여준다.
[-t] : tcp 프로토콜만 보여준다.
[-u] : udp 프로토콜만 보여준다.
[-p] : 해당 포트를 사용하는 프로그램과 프로세스ID(PID)를 보여준다.
[-r] : 라우팅 테이블 출력
[-s] : 프로토콜 별(IP, ICMP, TCP, UDP)로 통계를 보여준다.
[-c] : 연속적으로 상태를 보여준다.
[-l] : 대기중인 소켓 목록을 보여준다.
State
공백 : 연결되어 있지 않음
Free : socket은 존재하지만 할당되어 있지 않다.
LISTENING : 연결요청에 대한 응답준비가 되어 있는 상태
CONNECTING : 연결이 막 이루어진 상태
DISCONNECTING : 연결해제 되고 있는 상태
UNKNOWN : 알 수 없는 연결, 알려지지 않은 연결 상태
LISTEN : 연결 가능하도록 daemon이 떠있으며 연결이 가능한 상태
SYS-SENT : 연결을 요청한 상태
SYN_RECEIVED : 연결요구에 응답 후 확인 메시지 대기중인 상태
ESTABLISHED : 연결이 완료된 상태
FIN-WAIT1 : 소켓이 닫히고 연결이 종료되고 있는 상태
FIN-WAIT2 : 로컬이 원격으로부터 연결 종료 요구를 기다리는 상태
CLOE-WAIT : 종료 대기중
CLOSING : 전송된 메세지가 유실되었음
TIME-WAIT : 연결종료 후 한동안 유지되어 있음
CLOSED : 연결이 완전히 종료
옵션에 따라 다른 정보를 확인
-r : 서버의 라우팅 테이블 출력
-na --ip : tcp/udp의 세션 목록 표시
-na | grep ESTABLISHED | wc -l 활성화된 세션 수
-nap | grep :80 | grep ESTABLISHED | wc -l : 80포트 동시 접속자 수
-nltp 리슨중인 포트정보 표시
라우팅 테이블 해석 (route -n 으로도 확인 가능)
Destination : 목적지 네트워크
Gateway : 목적지로 가기위한 게이트웨이 주소
Genmask : 목적지 네트워크의 넷마스크 주소
Flags : 해당 경로에 대한 정보를 알려주는 기호/U -up H -목적지, G -게이트웨이
Metric : 목적지 네트워크까지의 거리
Ref : 경로 참조수
Use : 경로를 탐색한 횟수
IFace : 네트워크 인터페이스
Destination : 목적지
Gateway : 외부 네트워크와 연결학 위한 게이트웨이 주소
Genmask : 목적지 네트워크의 넷마스크 주소.
"255.255.255.255"로 지정되어 있으면 목적지 호스트의 주소
"0.0.0.0"으로 지정되어 있으면 기본 게이트웨이 주소
Flags: 해당 경로에 대한 정보를 알려주는 기호
U : 이 경로가 살아있다
H : 목적지가 호스트 주소
G : 게이트웨이를 향하는 경로
Metric : 목적지 네트워크까지의 거리
Ref : 경로를 참조한 횟수
Use : 경로를 탐색한 횟수
Iface : 패킷이 오가는 데 사용할 네트워크 인터페이스
라우팅 설정 예제curl ifconfig.me
ifconfig
nslookup : 도메인네임, ip주소, 기타 DNS레코드 알 수 있다
A레코드
특정도메인에 매핑되는 ipv4
"lifeoncloud.kr"의 ip주소가 183.111.199.159이다 라고 말하는 중
Server, Address는 제 컴퓨터에 연결된 DNS 서버의 주소
아래의 Name, Address는 lifeoncloud.kr의 ip를 보여준다
nslookup -type=a {domain} 으로 도메인의 A레코드를 바로 확인 가능
일대다, 다대일도 가능 도메인 하나에 ip주소 여러개 할당 가능
반대로 도메인 여러개에 ip주소 할당가능
이때 http헤더의 host필드에 도메인을 명시하여 웹서버를 구분하여 서비스 할 수!
'lifeoncloud.kr' 도메인을 관리하는 네임서버는 'ns2.cafe24.co.kr'이다 라고 말하는 역할을 한다.
네임서버란 도메인 이름과 ip주소를 서로 상호전환 시켜주는 서버
lifeoncloud.kr의 ip를 해당 네임서버에 직접 물어보자
Non-authoritative answer 없이 바로 a레코드가 나오는 것을 확인할 수 있다.
현재 도메인이 실제로 사용하고 있는 dns서버가 아닌, 다른 dns서버에서 저장한 캐시를 보여주었다.
실제로 사용하고 있는 네임서버를 지정해서 보여주니 신뢰할 수 없는 답변이 나올 수 밖에
A레코드와 같은 역할 ipv6에서 쓰인다는 점!
'test.lifeoncloud.kr'는 'lifeoncloud.kr'를 바라보고 있습니다의 의미
cname에 의해 test.lifeoncloud.kr > lifeoncloud를 가리키고
a레코드에 의해 lifeoncloud.kr > 183.111.199.159 를 가리킨다
test.lifeoncloud.kr > lifeoncloud > 183.111.199.159
lifeonclod.kr의 ip주소인 183.111.199.159가 서버이동으로 변경되었다
test, mail도 각각 a레코드를 지정해 주었다면 세개의 레코드를 변경해주었어야 함
CNAME을 이용하여 test, mail이 lifecloud.kr을 가리키게만 한다면
lifecloud.kr의 A레코드만 변경하면 된다.
해당 도메인을 메일 주소로 갖는 메일 서버
Start of Authority의 약어
네임서버가 해당 도메인에 관하여 인증된 데이터를 가지고 있다.
SOA가 없는 도메인은 네임서버에서 정상적으로 동작하지 X
Pointer 레코드
A레코드의 반대 방향인 레코드 ip >> 도메인 네임으로
TeXT 레코드
DKIM, DMARC, SPF레코드를 설정하거나 사이트 확인용, 여러목적
도메인의 이메일을 보내도록 승인된 메일 서버를 명시하는 이메일 인증 방법
SPF레코드를 사전에 설정하여 메일 서버 정보를 공개하면, 스푸핑 방지, 수신자 측에서 스팸메일로 분류 방지
SPF는 중단 > TXT에서 설정
dig 간단한 사용법 1
dig 간단한 사용법 2
dig command 간단 응용
dig [@네임서버] 도메인 [쿼리타입]
> dig naver.com
# [명령어] [조회하려는 도메인 이름]
; <<>> DiG 9.10.6 <<>> naver.com
# dig version
;; global options: +cmd
# dns 결과를 표시하도록 설정됨
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 35602
# opcode : 이 요청이 DNS 서버에 대한 쿼리
# status : 도메인 "naver.com"의 조회 결과에 오류가 없다는 뜻, "NOERROR"은 해당 도메인이 존재하고 ipv4주소를 가지고 있다
# id : 요청의 고유 식별자
;; flags: qr rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 0, ADDITIONAL: 1
# flags : 요청의 상태와 특성. qr은 응답. rd는 재귀적 조회
# QUERY : 총 1개의 질문이 있다. 여기서 질문은 "naver.com"의 A 레코드를 조회하고 있다는 것!
# ANSWER : 답변이 4개이다. "naver.com"의 ipv4 주소에 대한 4개의 답변이 포함
# AUTHORITY : 권한이 있는 서버가 없다
# ADDITIONAL : 추가정보가 1개 있다.
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
# DNS의 확장 옵션
;; QUESTION SECTION:
;naver.com. IN A
# DNS 쿼리의 질문 섹션
;; ANSWER SECTION:
# naver.com의 A레코드에 대한 답변 ipv4주소가 4개
naver.com. 262 IN A 223.130.195.95
naver.com. 262 IN A 223.130.195.200
naver.com. 262 IN A 223.130.200.104
naver.com. 262 IN A 223.130.200.107
;; Query time: 76 msec
;; SERVER: 208.67.222.222#53(208.67.222.222)
# DNS 서버의 IP 주소와 포트 번호
;; WHEN: Thu Nov 02 14:54:18 KST 2023
;; MSG SIZE rcvd: 102
dig 8.8.8.8 naver.com
# [] [dns 서버주소][]
# 어떻게 naver.com 으로 넘어가지 생각했었는데
# 요청을 잘 못 날려서 dns로 보낸게 아님!
; <<>> DiG 9.10.6 <<>> 8.8.8.8 naver.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 13759
# status : NXDOMAIN은 해당 도메인이 존재하지 않는다
;; flags: qr rd ra ad; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 1
# ANSWER : 답변이 0개
# AUTHORITY : 권한이 있는 서버가 1개
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;8.8.8.8. IN A
;; AUTHORITY SECTION:
. 1855 IN SOA a.root-servers.net. nstld.verisign-grs.com. 2023110100 1800 900 604800 86400
;; Query time: 79 msec
;; SERVER: 208.67.222.222#53(208.67.222.222)
;; WHEN: Thu Nov 02 14:54:56 KST 2023
;; MSG SIZE rcvd: 111
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 14319
;; flags: qr rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 0, ADDITIONAL: 1
# 이어서 naver.com의 ip주소를 찾는 두 번째 쿼리 결과 표시
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;naver.com. IN A
# QUESTION SECTION : 질문 부분에서 naver.com의 A 레코드를 조회하고 있다는 것! A레코드는 도메인의 ipv4 주소
;; ANSWER SECTION:
# naver.com의 A레코드에 대한 답변 부분. ipv4주소가 4개 제공
naver.com. 4 IN A 223.130.195.95
naver.com. 4 IN A 223.130.195.200
naver.com. 4 IN A 223.130.200.104
naver.com. 4 IN A 223.130.200.107
;; Query time: 74 msec
# 마지막 부분에서는 요청을 처리한 DNS 서버의 정보와 시간 정보가 표시
;; SERVER: 208.67.222.222#53(208.67.222.222)
;; WHEN: Thu Nov 02 14:54:56 KST 2023
;; MSG SIZE rcvd: 102
# naver.com 의 ipv4주소를 google public dns 서버를 통해 조회하려고 시도한 것으로 해석! x -> 2개 검색한 것
dig naver.com NS +short
ns1.naver.com.
ns2.naver.com.
# naver.com 도메인에 대한 네임 서버의 이름을 나타낸다.
# 이 네임 서버들은 naver.com 도메인의 dns 관리를 담당한다.
# DNS 네임 서버는 도메인 이름을 ip주소로 해석하는 역할을 수행
# 이 경우에는 "ns1.naver.com" "ns2.naver.com" 두개의 네임 서버가 관련되어 있다.
> dig ns1.naver.com naver.com
; <<>> DiG 9.10.6 <<>> ns1.naver.com naver.com
;; global options: +cmd
# 여기에 ns1.naver.com 하나
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 4741
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;ns1.naver.com. IN A
;; ANSWER SECTION:
ns1.naver.com. 64333 IN A 125.209.248.6
;; Query time: 77 msec
;; SERVER: 208.67.222.222#53(208.67.222.222)
;; WHEN: Thu Nov 02 14:55:38 KST 2023
;; MSG SIZE rcvd: 58
# 여기에 naver.com
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 49696
;; flags: qr rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;naver.com. IN A
;; ANSWER SECTION:
naver.com. 26 IN A 223.130.200.107
naver.com. 26 IN A 223.130.195.95
naver.com. 26 IN A 223.130.195.200
naver.com. 26 IN A 223.130.200.104
;; Query time: 71 msec
;; SERVER: 208.67.222.222#53(208.67.222.222)
;; WHEN: Thu Nov 02 14:55:38 KST 2023
;; MSG SIZE rcvd: 102
> dig @1.1.1.1 naver.com
; <<>> DiG 9.10.6 <<>> @1.1.1.1 naver.com
; (1 server found)
;; global options: +cmd
# 여기에 naver.com 하나에 대한 결과
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 5566
;; flags: qr rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
;; QUESTION SECTION:
;naver.com. IN A
;; ANSWER SECTION:
naver.com. 52 IN A 223.130.200.107
naver.com. 52 IN A 223.130.195.95
naver.com. 52 IN A 223.130.200.104
naver.com. 52 IN A 223.130.195.200
;; Query time: 11 msec
;; SERVER: 1.1.1.1#53(1.1.1.1)
;; WHEN: Thu Nov 02 15:31:58 KST 2023
;; MSG SIZE rcvd: 102
http, https를 이용할 수 있다.