더북(TheBook)

네트워크 인터페이스 다루기

네트워크 인터페이스를 관리하는 ifconfig에 대해 살펴봅시다. ifconfig는 시스템에 설치된 네트워크 인터페이스 정보를 확인하거나 수정하는 명령입니다.

ifconfig [인터페이스] [옵션] 형식으로 입력하며 아무 옵션 없이 ifconfig를 입력하면 현재 설정된 네트워크 인터페이스 상태를 보여줍니다. lo는 루프백 인터페이스로 자기 자신과 통신하는 데 사용하는 가상 장치이며, 흔히 랜카드라고 불리는 유선 네트워크 인터페이스는 eth0, 무선 네트워크 인터페이스는 wlan0이라고 이름이 붙습니다.

IP 주소는 호스트에 하나씩 부여되는 것이 아니라 네트워크 인터페이스에 할당되기 때문에 각 네트워크 인터페이스마다 다른 IP 주소를 할당할 수 있습니다.

shinjaehun@losttemple:~$ ifconfig
eth0      Link encap:Ethernet HWaddr 08:9e:01:d3:f9:dc
          inet addr:192.168.0.254 Bcast:192.168.0.255 Mask:255.255.255.0
          inet6 addr: fe80::a9e:1ff:fed3:f9dc/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
          RX packets:32902 errors:0 dropped:0 overruns:0 frame:0
          TX packets:27546 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:31336462 (31.3 MB) TX bytes:9546945 (9.5 MB)
          Interrupt:17

lo        Link encap:Local Loopback
          inet addr:127.0.0.1 Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING MTU:65536 Metric:1
          RX packets:153586 errors:0 dropped:0 overruns:0 frame:0
          TX packets:153586 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:17198171 (17.1 MB) TX bytes:17198171 (17.1 MB)

각 네트워크 인터페이스의 필드는 다음을 의미합니다.

HWaddr: 네트워크 인터페이스의 하드웨어 주소(MAC Address)

inetaddr: 네트워크 인터페이스에 할당된 IP 주소

Bcast: 브로드캐스트 주소

Mask: 넷마스크

MTU: 네트워크 최대 전송 단위(Maxium Transfer Unit)

RXpackets: 받은 패킷 정보

TXpackets: 보낸 패킷 정보

collisions: 충돌된 패킷 수

Interrupt: 네트워크 인터페이스가 사용하는 인터럽트 번호

필요하다면 ifconfig 명령으로 네트워크 인터페이스를 작동시키거나 중지시킬 수 있습니다. 하위 명령 up, down을 추가하여 네트워크 인터페이스를 작동/중지합니다. 네트워크 인터페이스를 작동시키는데 루트 권한이 필요하므로 sudo를 함께 써야 합니다. 예를 들어 eth0을 중지하려면 다음과 같이 입력합니다.

shinjaehun@losttemple:~$ sudo ifconfig eth0 down

명령을 실행하면 그래픽 환경에서 ‘연결 끊김 ? 이제 오프라인 상태임’이라는 경고 메시지가 나타날 것입니다. ifconfig로 확인해보면 eth0이 사라진 것을 확인할 수 있습니다.

shinjaehun@losttemple:~$ ifconfig
lo        Link encap:Local Loopback
          inet addr:127.0.0.1 Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING MTU:65536 Metric:1
          RX packets:2409 errors:0 dropped:0 overruns:0 frame:0
          TX packets:2409 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:370307 (370.3 KB) TX bytes:370307 (370.3 KB)

ifconfig를 이용하면 일시적으로 네트워크 인터페이스의 설정을 변경할 수 있습니다. 다시 네트워크 인터페이스 eth0을 작동시키려면 하위 명령 up을 사용하는데, 옵션으로 IP 주소를 직접 입력해서 IP 주소를 변경할 수 있습니다.

shinjaehun@losttemple:~$ sudo ifconfig eth0 192.168.0.254 up

ifconfig로 확인하면 IP 주소가 변경된 것을 확인할 수 있습니다. 이렇게 변경된 내용은 다시 ifconfig로 네트워크 인터페이스 설정을 수정하거나 시스템이 다시 부팅될 때까지 임시로 유지됩니다.

shinjaehun@losttemple:~$ ifconfig
eth0      Link encap:Ethernet HWaddr 08:9e:01:d3:f9:dc
          inet addr:192.168.0.254 Bcast:192.168.0.255 Mask:255.255.255.0
          inet6 addr: fe80::a9e:1ff:fed3:f9dc/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
          RX packets:32902 errors:0 dropped:0 overruns:0 frame:0
          TX packets:27546 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:31336462 (31.3 MB) TX bytes:9546945 (9.5 MB)
          Interrupt:17
...
Tip

ifconfig나 route를 이용해서 네트워크 정보를 수정해도 시스템을 재부팅하면 모든 정보가 원래대로 돌아갑니다. 네트워크 설정 파일에 정의된 내용이 반영되기 때문입니다. 따라서 ifconfig나 route는 관리 목적으로 잠시 네트워크 주소 정보를 변경할 때 사용합니다. 네트워크 설정을 변경하려면 2장의 ‘네트워크 설정하기’에 설명한대로 네트워크 인터페이스 설정 파일을 수정해야 합니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.