반응형
About Me

안녕하세요, cool & soft한 백엔드 개발자가 되고싶은 토니입니다.

Notice
Recent Posts
Recent Comments
«   2025/09   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
Archives
Today
Total
관리 메뉴

Code Art Online

[Linux] NIC가 어디에 (route, traceroute, ifconfig) 본문

Server

[Linux] NIC가 어디에 (route, traceroute, ifconfig)

kiritoni 2025. 3. 13. 20:49
반응형

 

NIC는 네트워크 인터페이스 카드(Network Interface Card)이며, 컴퓨터를 네트워크에 연결하여 통신할수 있도록 하는 하드웨어이다.

NIC에는 일반적으로 포트 또는 커넥터를사용하여 컴퓨터 네트워크를 연결해준다. 디지털 형식의 데이터를 네트워크에 전송하기 적합한 형식으로 변환해주는데, 이때 작은 데이터 단위인 패킷으로 변환하는 작업이 이루어진다. 2계층 장비에 속하며, 물리 계층과 데이터 링크 계층 서비스를 제공한다. 그러면 NIC는 어디에 붙어있을까? 

 

 

* 보안을 위해 일부 주소를 가려놓았다. 

`route`

현재 시스템의 라우팅 테이블을 확인해서, 네트워크 패킷이 특정 목적지로 가는 경로가 어떤지 살펴보았다.

`-n`옵션을 붙이면, DNS 조회없이 라우팅 정보를 숫자로만 출력할 수 있다.

toni@LAB1:~$ route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         A.B.1.1     	0.0.0.0         UG    102    0        0 eno2
0.0.0.0         A.A.A.1   	0.0.0.0         UG    20101  0        0 enp28s0f1
A.A.A.0   	0.0.0.0        255.255.255.0   	U     101    0        0 enp28s0f1
169.254.0.0     0.0.0.0         255.255.0.0     U     1000   0        0 enp28s0f1
172.17.0.0      0.0.0.0         255.255.0.0     U     0      0        0 docker0
172.18.0.0      0.0.0.0         255.255.0.0     U     0      0        0 br-a119b9d48899
A.B.1.0     	0.0.0.0         255.255.255.0   U     102    0        0 eno2
toni@LAB1:~$

 

 

라우팅 테이블을 확인해보니 다음과 같은 사실을 알 수 있었다. 

 

1. Destination이 0.0.0.0(모든 IP 주소)로 향하는 연결은, A.B.1.1밖에 없었다. mask가 없고, U(활성화)G(게이트웨이 필요) 상태, 그리고 interface는 eno2에 해당한다. 

2. detination이 A.A.A.0으로 향하는 연결은 게이트웨이가 없고, subnetmask는 24, U(활성화)상태였다. 

3. 아래의 172 ~부터는 도커 네트워크에 해당한다. 

 

1번의 경우, 서버와 연결된 스위치의 방화벽에 해당하는데, 여기를 통해서 나간다는 것을 알 수 있었다. 

2번의 경우, 데이터 저장소 용도로 사용하는 다른 서버와 연결되어있어서 게이트웨이가 없는 것이 당연했다. 

 

 

`traceroute`

`traceroute`는 네트워크에서 패킷이 목적지까지 가는 경로를 추적하는 데 사용하는 명령어이다. 

이를 통해 네트워크 문제를 진단하거나, 패킷의 경로를 파악할 수 있다. 

구글까지 패킷이 어떻게 이동하는지 확인해보자. 

toni@LAB1:~$ traceroute google.com
traceroute to google.com (142.251.222.14), 30 hops max, 60 byte packets
 1  _gateway (A.B.1.1)  0.432 ms  0.399 ms  0.381 ms
 2  B (B)  0.650 ms  0.718 ms  0.692 ms
 3  C (C)  0.417 ms  36.961 ms  0.370 ms
 4  D (D)  0.692 ms  0.811 ms  0.549 ms
 5  1.232.249.81 (1.232.249.81)  0.622 ms  0.741 ms  0.718 ms
 6  10.47.254.36 (10.47.254.36)  0.805 ms  0.912 ms  0.867 ms
 7  10.222.20.108 (10.222.20.108)  2.708 ms 10.222.24.216 (10.222.24.216)  2.216 ms 10.222.24.222 (10.222.24.222)  2.760 ms
 8  10.222.9.117 (10.222.9.117)  1.359 ms 10.222.9.89 (10.222.9.89)  1.413 ms 10.222.9.33 (10.222.9.33)  1.451 ms
 9  10.222.25.241 (10.222.25.241)  1.291 ms 10.222.23.151 (10.222.23.151)  1.602 ms  1.647 ms
10  142.250.162.140 (142.250.162.140)  35.358 ms 209.85.149.106 (209.85.149.106)  32.332 ms 142.250.162.182 (142.250.162.182)  32.750 ms
11  * * 192.178.108.209 (192.178.108.209)  30.058 ms
12  108.170.236.126 (108.170.236.126)  35.094 ms  36.142 ms  33.790 ms
13  216.239.58.207 (216.239.58.207)  33.094 ms 142.250.58.93 (142.250.58.93)  34.535 ms 108.170.252.14 (108.170.252.14)  32.139 ms
14  nrt13s71-in-f14.1e100.net (142.251.222.14)  32.977 ms 209.85.249.19 (209.85.249.19)  34.636 ms nrt13s71-in-f14.1e100.net (142.251.222.14)  34.943 ms
toni@LAB1:~$

 

여기서는 A.B.1.1가 게이트웨이 역할을 수행하고, 외부로 나가는 라우팅이 이루어짐을 알 수 있었다. 

 

`ifconfig`

`ifconfig`(interface configuration)는 네트워크 인터페이스 정보를 확인하고 설정하는 명령어이다. 

최신 리눅스에서는 `ip`(`ip addr show`)가 더 많이 사용된다. 

toni@LAB1:~$ ifconfig
(생략)

eno2: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet A  netmask 255.255.255.0  broadcast B
        (생략)
        ether 50:eb:f6:51:e6:9d  txqueuelen 1000  (Ethernet)
        RX packets 14164854  bytes 12266125969 (12.2 GB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 14687637  bytes 15882216555 (15.8 GB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
        device memory 0xd3600000-d361ffff

enp28s0f1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet C  netmask 255.255.255.0  broadcast D
		(생략)
        ether 24:1c:04:f3:8a:b2  txqueuelen 1000  (Ethernet)
        RX packets 106162588  bytes 112817977663 (112.8 GB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 56187062  bytes 28351535206 (28.3 GB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
        
        
 (생략)

 

이전에 보았던 eno2 는 inet A, netmask 255.255.255.0, broadcast B이다. 

그런데 이전에 게이트웨이 역할을 수행하던 IP는 보이지 않았다. 

 

따라서 게이트웨이 역할을 수행하던 IP는 물리적 NIC가 아니라, 서버의 스위치의 가상 인터페이스(SVI)에 설정된 것일 가능성이 높아보였다. L3기능을 지원하는 스위치의 경우, SVI(Switch Virtual Interface)를 사용할 수 있다.

반응형