Ethernet NIC 설정 변경하기
본 포스팅에서는 RHEL 6.7(및 CentOS 6.7)에서 네트워크 인터페이스 카드(NIC)의 이름을 변경하는 방법을 설명합니다. 이 방법은 5 버전과 6 버전에서도 동일하게 적용 가능합니다. 리눅스를 사용하여 네트워크를 설정할 때, NIC의 이름이 eth0부터 시작되기를 원하지만 그렇지 않은 경우가 종종 있습니다. 그러나 상황에 따라 eth0을 eth10으로 사용하고 싶을 수도 있고, eth0과 eth1의 순서를 변경해야 할 필요가 있는 경우도 있을 수 있습니다. 이번 포스팅에서는 NIC에 설정된 eth 번호를 변경하는 방법에 대해 알아보겠습니다. 이 과정을 통해 자신이 원하는 네트워크 인터페이스 이름으로 설정할 수 있으며, 네트워크 환경을 보다 효율적으로 관리할 수 있습니다.
상태 확인 및 문제점
현재 상황은 원래 eth0 인터페이스 하나만 사용하던 호스트에 NIC 3개를 추가한 것입니다. 이로 인해 MAC 주소가 변경되면서 eth0가 사라지고 대신 eth1, eth2, eth3, eth4로 이름이 바뀌었습니다. 이때, /etc/sysconfig/network-scripts/ 디렉터리에는 ifcfg-eth0 파일 하나만 존재합니다. 이렇게 되면 파일에 설정된 MAC 주소가 다른 NIC와 충돌하기 때문에 시스템은 매우 불안정한 상태가 됩니다.
IP 주소와 서브넷을 올바르게 입력하고 네트워크를 활성화해도, 이러한 불안정한 상태에서는 인터페이스의 IP 설정이 무효화될 수 있으며, 이로 인해 작업 중인 인터페이스와의 세션이 끊길 위험이 있습니다. 이러한 문제를 해결하기 위해서는 NIC 설정을 적절히 조정할 필요가 있습니다.
파일 복사 및 수정
현재 NIC가 4개이므로, 각 NIC에 대한 ifcfg-eth 파일이 4개 필요합니다.
그러나 현재 /etc/sysconfig/network-scripts/ 디렉터리에는 ifcfg-eth0 파일 하나만 존재하므로, 이 파일을 복사하여 ifcfg-eth1, ifcfg-eth2, ifcfg-eth3를 생성합니다. 각 파일의 이름은 0, 1, 2, 3으로 설정하였습니다.
이제 복사한 4개의 파일의 내용을 수정해야 합니다.
eth0 파일 수정
vi 에디터를 사용하여 각 파일을 열고, 다음과 같이 수정 과정을 거칩니다.
- HWADDR과 UUID 항목은 사용하지 않으므로 주석 처리합니다. (주석 처리란, 라인의 맨 앞에 # 문자를 추가하여 해당 라인을 무시하도록 하는 것입니다.)
:wn으로 저장하고 다음 파일을 수정합니다.
eth1 파일 수정
- eth1 파일을 열고, 동일하게 HWADDR과 UUID를 주석 처리합니다.
- 다음 사항들을 수정합니다
- DEVICE 이름을 적절히 설정합니다.
- BOOTPROTO: dhcp를 none으로 변경합니다.
- NM_CONTROLLED: yes를 no로 변경합니다.
- ONBOOT: no를 yes로 변경합니다.
- 수정이 완료되면 파일을 저장합니다.
eth2 및 eth3 파일 수정
이제 eth2 파일을 수정합니다.
eth2 파일도 앞서 설명한 방식과 동일하게 주석 처리와 설정 변경을 진행합니다. 모든 수정이 완료되면 :wq 명령어로 저장하고 나갑니다.
마지막으로 eth3 파일을 열어 같은 방식으로 수정한 후, 모든 수정이 완료되면 :wq 명령어로 저장하고 나갑니다. 이 과정을 통해 각 NIC에 대한 설정 파일을 완전히 준비할 수 있습니다. 현재까지 /etc/sysconfig/network-scripts/ 디렉터리에는 ifcfg-eth0, ifcfg-eth1, ifcfg-eth2, ifcfg-eth3의 4개 파일이 수정 완료되었습니다.
각 파일의 세부 옵션에 대한 설명은 추후 포스팅에서 다룰 예정입니다.
NIC 인식 방식 이해
이제 서버나 PC가 NIC를 인식하는 방법에 대해 설명하겠습니다. NIC를 인식시키는 방법은 주로 두 가지가 있습니다:
- MAC 주소 확인: 각 NIC는 고유한 MAC 주소를 가지고 있으며, 이를 통해 인식됩니다.
- 버스 주소 이용: 메인보드의 슬롯마다 고유한 버스 주소를 사용하여 NIC를 인식합니다.
버스 주소를 이용한 인식 방식은 MAC 주소 변경으로 인한 번거로움을 줄일 수 있습니다. NIC가 고장이 나서 교체하는 경우, MAC 주소 변경 작업이 필요하지만, 같은 슬롯에 NIC를 교체하더라도 메인보드의 버스 주소는 변하지 않기 때문에 eth 번호는 그대로 유지됩니다. 따라서 이 방식을 추천합니다.
드라이버 확인
버스 주소와 NIC가 사용하는 드라이버를 확인하기 위해 ethtool 명령어에 -i 옵션을 사용하여 현재 설정된 NIC 정보를 확인합니다. 여기서 driver는 현재 리눅스에서 사용 중인 모듈 이름이고, bus-info가 버스 주소입니다. 이 정보는 반드시 기록해 두어야 합니다. 예를 들어, 4개의 NIC의 드라이버가 모두 e1000일 수 있습니다. 이후에는 NIC 드라이버 모듈을 한 번 내렸다가 다시 올려야 합니다. NIC 드라이버를 확인했을 때 2개일 수도 있고 3개일 수도 있으며, 모든 드라이버 모듈을 내렸다가 다시 올려주면 됩니다.
udev 규칙 파일 수정
모듈을 내리기 전에 /etc/udev/rules.d/70-persistent-net.rules 파일을 수정할 예정입니다. vi 에디터를 사용하여 파일을 열고 필요한 설정을 진행하겠습니다. 이 과정을 통해 NIC의 설정을 안정적으로 관리할 수 있으며, 네트워크 환경을 최적화할 수 있습니다.
udev 파일 수정 및 주의사항
수정할 파일을 열어보면 복잡해 보일 수 있습니다.
잘못 수정하면 NIC 설정에 문제가 생길 수 있으니 주의가 필요합니다. 여기에서 중요한 항목은 KERNEL과 NAME입니다. 나머지 항목은 삭제하고, KERNEL과 NAME 사이에 ID 정보를 추가합니다.
ID 정보는 새로 입력하는 값이므로 주의 깊게 입력해야 합니다.
다음과 같은 형식으로 수정합니다.
- KERNEL 뒤에는
== - ID 뒤에도
== - NAME 뒤에는
=
모든 값은 큰따옴표(")로 감싸야합니다. ID에는 아까 적어둔 버스주소를 정확하게 입력하고, 콤마를 추가합니다. NAME에는 eth 뒤에 원하는 숫자를 입력하면 해당 이름으로 NIC이 설정됩니다. 만약 여기에서 숫자를 변경하고 싶다면, 이전에 수정한 /etc/sysconfig/network-scripts/ifcfg-ethX 파일의 이름과 내용을 같이 수정해야 합니다.
위 이미지를 보면 모두 주석처리되어 있지만, 이렇게 주석처리하면 안 됩니다.
네트워크 재시작 주의사항
모든 설정이 끝나면, 네트워크 데몬을 재시작해야 합니다. 현재 저는 PuTTY를 통해 접속 중이기 때문에 네트워크 데몬이 내려가면 연결이 끊기게 됩니다. 만약 작업 중인 세션과 관련된 인터페이스가 변하지 않는다면 연결이 유지될 수 있지만, 그에 대한 보장은 없습니다. 따라서 연결이 끊기더라도 작업이 실행되도록 하기 위해 다음 명령어를 한 줄로 모두 작성하였습니다.
- service network stop # 네트워크 서비스 중지
- modprobe -r e1000 # NIC 드라이버 모듈 내리기
- start_udev # udev 모듈 새로 불러오기
- modprobe e1000 # NIC 드라이버 모듈 다시 올리기
- service network start # 네트워크 서비스 시작
이 과정을 통해 NIC 설정을 안정적으로 변경하고, 네트워크 연결을 유지할 수 있도록 합니다. 제가 원하는 대로 바뀐 인터페이스 이름들을 확인하고 뿌듯해하는 모습입니다..
마무리 및 문의 사항
이 포스팅에서 설명한 내용 중 이해가 되지 않는 부분이 있다면, 추가적인 정보를 찾아보시길 권장합니다. 그래도 여전히 궁금한 점이나 이해가 안 되는 부분이 있다면, 댓글로 질문해 주시면 최선을 다해 도와드리겠습니다. 또한, 제가 설명한 내용 중에 잘못된 부분이나 오해의 소지가 있는 내용이 있다면, 꼭 댓글로 지적해 주시기 바랍니다. 여러분의 피드백은 매우 중요합니다. 이상으로 본 포스팅을 마치겠습니다. 감사합니다!