본문 바로가기
STORY/My Stroy

[펌] 리눅스 IP 주소 변경 및 확인

by KANG Stroy 2014. 9. 17.
728x90
728x90

[펌] https://www.linux.co.kr/home/lecture/index.php?cateNo=&secNo=&theNo=&leccode=282


 1. IP변경개론

서버를 운영하다보면 불가피하게 IP Address를 변경해야하는 경우가 있다.

네트웍의 확장이나 서버이전등으로 인하여 서버관리자라면 한번쯤은 IP를 변경했던 경험이 있을 것이다.

win95/98/NT/2000의 경우에는 네트웍설정의 등록정보를 통해서 간단해 해결할 수 있지만, 리눅스의 경우에는 윈도우쪽 보다는 좀 까다로운 것이 사실이다.

먼저, IP Address를 변경하는 방법은 다음과 같이 몇가지가 있다.

  • 방법1 : netcfg 유틸리티를 이용하는 방법
  • 방법2 : netconfig 유틸리티를 이용하는 방법
  • 방법3 : setup 유틸리티를 이용하는 방법
  • 방법4 : 직접 명령어로 수작업하는 방법

위의 4가지 방법중 방법1, 방법2, 방법3은 각각 netcfg, netconfig, setup파트에서 설명이 되어있으므로 해당파트에서 사용법을 확인하기 바라며, 여기에서는 방법4번으로 IP Address를 변경하는 방법에 대해서 설명할 것이다.

어떤방법이 가장 올바른 방법이라는 것을 판단한다는 것은 매우 어리석은 것이라 생각되며, 단지 서버관리자로서 일을하다보면 유틸리티보다는 직접 명령어를 통해서 작업하는 경우가 많으며 가장 빠른 방법이라고 할 수 있다.

필자또한 IP Address변경하는 작업뿐 아니라 거의 모든 작업을 직접 command를 수행하여 직접하고 있다.

 

작업에 들어가기전에 한가지 더 알아야하는 것이있다 .

IP Address 변경시에 수정해주어야하는 작업관 확인하는 명령어를 먼저 소개하고 넘어가겠다.

  • IP Address 대상파일
    • /etc/sysconfig/network
    • /etc/sysconfig/network-scripts/ifcfg-etho (해당 ethernet inferface)
  • IP Address변경전후 확인하는 명령어
    • ifconfig
    • netstat 또는 route

자, 그럼 서론은 이쯤에서 끝내고 명령어를 통한 수작업으로 IP Address를 변경하는 작업을 해보도록 하자.

 

 2. 변경전 네트웍설정 확인

먼저 아래예와 같이 ifconfig 명령어를 통하여 현재의 네트웍설정을 확인토록하자.

보는 바와같이 현재의 네트웍설정은 다음과 같다.

  • IP Address(host ip address) : 211.220.193.158
  • Broadcast : 211.220.193.159
  • Subnet Mask : 255.255.255.240

현재 IP Address를 211.220.193.158에서 211.220.193.149로 변경하려한다.


 

참고로 ifconfig 명령어와 함께 네트웍관련 설정을 확인할 때에 자주사용하는 명령어가 netstat 이라는 명령어이다.

netstat은 서버의 라우팅(routing)경로를 확인할 때에 자주 사용된다.  

참고로 알아두면 좋을 것이며, 자세한 설명은 수퍼유저코리아의 해당파트를 참조바란다.


 3. /etc/sysconfig/network 파일수정

현재의 IP Address를 수정하였으므로 이제 본격적으로 IP Address를 변경토록 해보자.

먼저, 앞서 설명드린 바와 같이 /etc/sysconfig/network 파일을 열어서 수정하도록 한다.  

 

수정할 때에는 주로 vi 명령어로 해당파일(/etc/sysconfig/network)을 열어서 확인한다.


/etc/sysconfig/network 파일에는 위의 예를 보는 바와 같이 다음과 같은 설정을 할 수 있다. 

  • NETWORKING   : 네트웍여부
  • HOSTNAME : 호스트네임
  • GATEWAYDEV : 게이트웨이 장치명
  • GATEWAY : 게이트웨이 IP Address

여기서는 동일네트웍에서 IP Address만 변경하는 경우이므로 /etc/sysconfig/network 파일에서 변경할 것은 없다.

하지만, 만약 서버이전등으로 인해 네트웍자체가 변경될 경우에는 GATEWAY정보도 수정해 줘야한다.

또한 서버용도변경등으로 인한 호스트네임이 변경될 경우에도 이 파일의 HOSTNAME을 수정해 줘야한다.



 4. inferface 장치파일변경(/etc/sysconfig/network-scripts/ifcfg-eth0)

 

다음으로 변경해줘야하는 것은 해당 ethernet interface의 장치파일이다 .

이들 ethernet inferface 장치파일들이 존재하는 위치는 /etc/sysconfig/network-scripts/ 디렉토리이며, 이 디렉토리내에서 변경코자하는 ethernet에 해당하는 장치파일을 수정해주면 된다.

 

앞에서 살펴본대로 현재 IP Address의 변경예로든 리눅스서버는 한 개의 ethernet을 가지고 있으며 당연히 장치명이 eth0가 된다.

따라서 여기서 변경해줘야하는 파일또한 ifcfg-eth0가 된다.

이제 이 파일을 열어서 수정해준후에 뒤에서 설명될 /etc/rc.d/init.d/network restart를 해주거나 시스템을 리부팅하면 된다.

 

아래의 예는 직접 ifcfg-eth0 파일을 열어서 수정해준 예이다.

자세히 살펴보면 IP Address가 211.220.193.158에서 211.220.193.149로 변경해둔 것을 볼 수 있다.


앞서 설명드린 바와같이 만약 서버이전드으로 인해 네트웍전체가 변경될 경우에는 BROADCAST, NETWORK, NETMASK등이 변경될 수 있으므로 유의하기 바란다.

어쨌든 현재 예로든 경우는 동일 네트웍에서 IP Address만 변경되는 경우이므로 단지 호스트(서버)의 IP Address만을 변경하면 그뿐이다.



 5. 설정변경 적용

자, 이제 변경된 네트웍설정을 적용하기 위해서 아래 예와 같이 "/etc/rc.d/init.d/network restart"를 수행하여 새로운 IP Address로 사용토록해보자.

이 방법이 싫은 분들이라면 다음과 같은 명령어로 시스템 자체를 리부팅해도 무방하다.

  • reboot
  • shutdown -r now
  • init 5

단지 시스템을 리부팅하기전에 "sync"를통해서 디스크동기화를 시켜주는 것이 안전할 것이다.



참고로, IP Address가 변경이 되면 현재 접속되거나 서비스되던 것들은 모두 중단이 된다는 것쯤은 상식으로 알고 있을 것이다.



 6. 변경된 IP Address 확인

 

앞서 했던 방법대로 변경된 정보를 확인해보자.

ifconfig 명령을 통해서 변경된 IP Address를 확인한 것이다.

변경되기 전에는 eth0의 IP Address가 211.220.193.158 이였던 것이 변경후에는 211.220.193.149가 되었음을 확인할 수 있다.

 

라우팅에 관한 정보는 변경하질 않았지만, 습관적으로 네트웍정보를 변경후에는 netstat을 통해서 라우팅정보를 확인하는 것이 좋다.




 7. 네트웍테스트

자, 이제 마지막으로 변경된 IP Address가 다른 네트웍으로 패킷을 잘 주고받는지를 테스트 해보도록 하자.

아래의 예는 먼저 gateway까지 네트웍이 되는가를 테스트 한후에 다른 네트웍에 IP Address가 아닌 도메인으로 ping 테스트를 한 것이다.


변경된 IP Address로 통신이 잘 이루어짐을 확인하였으므로 이 강좌를 마무리 한다.

관련 질문은 해당 게시판을 통해서 받을 것이며,,이만,..


728x90

댓글