LINUX
2019.07.16 / 18:40

Linux - 시스템 관리 : 네트워크 연결 확인

탁돌이개발자
추천 수 31

http://develop.sunshiny.co.kr/953


# 네트워크 연결 확인

ethtool 프로그램을 이용해 네트워크 연결이 활성화돼 있는지 확인할 수 있다.
Link detected 가 yes로 설정돼 있으면 물리적으로 네트워크에 연결돼 있음.

> 물리적(랜 케이블)으로 연결돼 있는가?

[root@master ~]# ethtool em1
Settings for em1:
        Supported ports: [ TP ]
        Supported link modes:   10baseT/Half 10baseT/Full 
                                100baseT/Half 100baseT/Full 
                                1000baseT/Full 
        Supports auto-negotiation: Yes
        Advertised link modes:  10baseT/Half 10baseT/Full 
                                100baseT/Half 100baseT/Full 
                                1000baseT/Full 
        Advertised pause frame use: No
        Advertised auto-negotiation: Yes
        Speed: 100Mb/s
        Duplex: Full
        Port: Twisted Pair
        PHYAD: 1
        Transceiver: internal
        Auto-negotiation: on
        MDI-X: Unknown
        Supports Wake-on: g
        Wake-on: d
        Link detected: yes -- 네트워크 인터페이스가 활성화 되어 있고, 랜 케이블이 연결된 상태

[root@master ~]# ethtool em2
Settings for em2:
        Supported ports: [ TP ]
        Supported link modes:   10baseT/Half 10baseT/Full 
                                100baseT/Half 100baseT/Full 
                                1000baseT/Full 
        Supports auto-negotiation: Yes
        Advertised link modes:  10baseT/Half 10baseT/Full 
                                100baseT/Half 100baseT/Full 
                                1000baseT/Full 
        Advertised pause frame use: No
        Advertised auto-negotiation: Yes
        Speed: Unknown!
        Duplex: Unknown! (255)
        Port: Twisted Pair
        PHYAD: 1
        Transceiver: internal
        Auto-negotiation: on
        MDI-X: Unknown
        Supports Wake-on: g
        Wake-on: d
        Link detected: no -- 네트워크 인터페이스가 활성화 되어 있고, 랜 케이블이 연결되지 않은 상태


> 네트워크 인터페이스가 살아 있는가?

[root@master ~]# ifconfig em1
em1       Link encap:Ethernet  HWaddr D0:67:E5:E9:B0:A7  
          inet addr:192.168.1.19  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::d267:e5ff:fee9:b0a7/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:1709265 errors:0 dropped:0 overruns:0 frame:0
          TX packets:18969 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:186713337 (178.0 MiB)  TX bytes:11149025 (10.6 MiB) -- 활성 상태
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b) -- 인터페이스는 존재하지만, 비활성 상태
          Interrupt:16 Memory:c0000000-c0012800


> 로컬 네트워크에 있는가?
인터페이스가 활성화돼 있으면, 기본 게이트웨이가 설정돼 있고 해당 게이트웨이에 접근할 수 있는지 확인.

[root@master ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.1.0     0.0.0.0         255.255.255.0   U     1      0        0 em1
192.168.1.0     0.0.0.0         255.255.255.0   U     1      0        0 em2
0.0.0.0         192.168.1.1     0.0.0.0         UG    0      0        0 em1


관심 있게 봐야할 내용은 default로 시작하는 마지막 줄이다.
여기서 호스트가 192.168.1.1의 게이트웨이를 가지고 있음을 확인할 수 있다.
route 명령어를 -n 옵션과 함께 사용하면 IP 주소를 호스트명으로 변환하지 않는다는 것을 주목.

> DNS가 동작 중인가?

[root@master ~]# nslookup daum.net
Server:         164.124.101.2
Address:        164.124.101.2#53

Non-authoritative answer:
Name:   daum.net
Address: 61.111.62.173
Name:   daum.net
Address: 110.45.215.23
Name:   daum.net
Address: 114.108.157.19
Name:   daum.net
Address: 114.108.157.50


> 원격 호스트로 찾아갈 수 있는가?
 - traceroute 패키지 설치
  # apt-get install tcptracroute
  traceroute만 tcptraceroute로 대체해서 traceroute에서 했던 것과 같은 명령어를 실행

  

[root@master ~]# traceroute daum.net
traceroute to daum.net (61.111.62.173), 30 hops max, 60 byte packets
 1  192.168.1.1 (192.168.1.1)  0.669 ms  1.125 ms  1.563 ms
 2  1.234.179.1 (1.234.179.1)  10.478 ms  10.552 ms  10.672 ms
 3  211.202.29.249 (211.202.29.249)  9.969 ms  10.077 ms  10.195 ms
 4  58.229.39.49 (58.229.39.49)  10.833 ms  10.954 ms  11.075 ms
 5  118.221.6.21 (118.221.6.21)  11.308 ms 58.229.10.253 (58.229.10.253)  13.016 ms 118.221.6.21 (118.221.6.21)  11.451 ms
 6  118.221.4.6 (118.221.4.6)  11.617 ms  2.504 ms 118.221.5.206 (118.221.5.206)  9.463 ms
 7  211.44.125.82 (211.44.125.82)  10.144 ms  10.275 ms  10.395 ms
 8  210.120.102.193 (210.120.102.193)  9.630 ms  9.753 ms  9.896 ms
 9  211.233.55.86 (211.233.55.86)  10.551 ms  10.686 ms 182.162.1.10 (182.162.1.10)  10.873 ms
10  * * *
11  * * *
12  * * *


> 원격 포트가 열려 있는가?
telnet 명령을 이용한 포트 확인

# telnet 192.168.1.19 22
Trying 192.168.1.19...
Connected to 192.168.1.19.
Escape character is '^]'.
SSH-2.0-OpenSSH_5.3


nmap 명령을 이용한 포트 확인
 포트를 테스트하기 위해 텔넷 대신 nmap를 사용하는 방법을 더 선호한다.
 nmap은 종종 방화벽을 발견해 낼 수 있기 때문이다.
 일반적으로 방화벽 차단이 없고, 포트가 실제 다운됐을 때는 포트가 닫혀(closed)있다고 알려준다.

 filtered 상태는 해당 서비스가 실행중이든, 아니든 1차적으로 방화벽에서 차단 하고 있는 상황.
  (서비스의 실행, 중지 여부 확인 어려움)

nmap 설치
 # yum install nmap

[root@master ~]# nmap -p 80 daum.net

Starting Nmap 5.51 ( http://nmap.org ) at 2013-09-03 09:36 KST
Nmap scan report for daum.net (61.111.62.173)
Host is up (0.0036s latency).
Other addresses for daum.net (not scanned): 110.45.215.23 114.108.157.19 114.108.157.50
rDNS record for 61.111.62.173: 61-111-62-173.kidc.net
PORT   STATE SERVICE
80/tcp open  http

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


> oracle 기본 포트 1521이 필터링 됨(filtered)

[root@master ~]# nmap -p 1521 daum.net

Starting Nmap 5.51 ( http://nmap.org ) at 2013-09-03 09:36 KST
Nmap scan report for daum.net (114.108.157.19)
Host is up (0.0034s latency).
Other addresses for daum.net (not scanned): 114.108.157.50 61.111.62.173 110.45.215.23
PORT     STATE    SERVICE
1521/tcp filtered oracle

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


> 80 포트가 닫혀(closed)있다고 알려줌 : closed 는 서비스가 실행되지 않는 상태라는 의미

[root@master ~]# nmap -p 80 192.168.1.190

Starting Nmap 5.51 ( http://nmap.org ) at 2013-09-03 09:39 KST
Nmap scan report for 192.168.1.190
Host is up (0.00043s latency).
PORT   STATE  SERVICE
80/tcp closed http
MAC Address: 00:13:20:81:BA:BF (Intel Corporate)

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


> 리스닝 포트 조회
 - netstat 옵션
 -l : --listening            display listening server sockets
 -n : --numeric              don't resolve names
 -p : --programs             display PID/Program name for sockets


[root@master ~]# netstat -lnp | grep 80
tcp 0 0  0.0.0.0:80 0.0.0.0:* LISTEN 919/apache    


첫 번째 칼럼은 포트가 사용 중인 프로토콜을 알려준다.
두 번째와 세 번째 칼럼은 수신과 송신 큐(여기서는 둘다 0으로 설정돼 있음)
관심을 둬야 하는 칼럼은 해당 호스트가 리스닝하는 로컬 주소가 나열된 네 번째 칼럼이다.
여기서 0.0.0.0:80 은 호스트가 모든 IP에 대해 80번 포트 트래픽을 리스닝하고 있음을 의미한다.
아파치가 웹서버의 이더넷 주소에서만 리스닝하고 있다면 네 번째 칼럼에 로컬아이피:80 으로 표시될 것이다.

> 연결 포트 조회

[root@master ~]# netstat -np | grep 80
tcp 0 0  192.168.1.199:80 123.11.23.21:57552 ESTABLISHED -



참고 도서 : 데브옵스