![](/images/content/meetup.nhncloud.com/38/banner.jpg)
em1, p2p1 같은 이더넷 이름을 변경하기
em1, p2p1 같은 이더넷 이름을 변경하기 관련
![](/images/content/meetup.nhncloud.com/38/banner.jpg)
안녕하세요. NHN엔터테인먼트 장재완입니다.
기본적으로 리눅스의 이더넷 이름은 eth0
, eth1
과 같이 eth
를 prefix로 사용했었습니다. 그런데 몇 해 전부터 리눅스 배포판들이 eth0 과 같은 전통적인 ethernet naming을 버리고 em1
이니, p2p1
이니 같은 해괴한(?) 이름을 쓰기 시작하더군요.
이더넷이 하나 뿐인 일반적인 PC 환경에서야 eth0
이든, em1
이든, p2p1
이든 네트워크를 쓸 수 있는 포트가 하나 밖에 없으니 신경 쓸 일이 없습니다.
하지만 서버 환경에서는 상당히 도움이 되었던 모양입니다. 라우터가 되었든지, 아니면 조금만 큰 서버 같은 경우에도 HA 용으로나 network bonding 등의 용도로 이더넷 포트가 몇 개씩 되니까요. 이런 상황이라면 어떤 포트가 eth0
인지, 어떤 포트가 eth1 인지 구분하기가 엄청 곤란해집니다.
심지어 더 옛날에는 커널이 PCI bus를 읽는 순서에 따라 eth0
이 다음번 부팅 때에는 eth1
이 되기도 하는 등 문제가 많았습니다. 그래서 udev
가 도입되자
./etc/udev/rules.d/
70-persistent-net.rules
같은 파일을 이용해서 MAC 주소를 특정 이더넷 이름으로 강제로 매핑하는 방법이 많이 사용되었습니다.
그러다가 몇 해 전부터는 아예 이더넷 이름에 물리적인 순서를 박아 넣는 방식이 사용되기 시작합니다. 그게 바로 em1
이니 p2p1
같은 녀석들이죠. em1
은 온보드 이더넷 포트이고, p
로 시작하는 건 PCI NIC 입니다.
p
다음의 첫번째 숫자는 PCI 슬롯의 이름이고, 두번째 p의 다음번 숫자는 그 NIC가 여러 포트를 가지고 있을 때 첫번째 포트를 의미하죠.
이렇게 해 놓으니 편하긴 하지만...
예전에 eth
를 기준으로 하드코딩 했던 몇몇 application 들이 동작하지 않는 경우도 있습니다. 특히 제가 자주 썼던 iptraf
는 eth
만 인식합니다.
그 외에도 상황에 따라 이더넷 이름을 바꾸어야 하는 경우가 있는데. 이 때는 다음 방법을 쓰면 됩니다.
여기에서 가져왔습니다.
요약하자면, 역시나 /etc/udev/rules.d/
70-persistent-net.rules
를 이용하는 방법입니다.
vi /etc/udev/rules.d/70-persistent-net.rules
#
# SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="88:51:fb:64:40:14", ATTR{dev_id}=="0x0",
# ATTR{type}=="1", KERNELS=="0000:00:19.0", NAME="eth0"
와 같이 한 줄로 죽 써 주면 됩니다.
address
는 MAC 주소이고,
KERNELS
는 lspci -D
애서 나오는 PCI 버스의 아이디입니다.
lspci -D
#
# 0000:00:00.0 Host bridge: Intel Corporation Xeon E3-1200 v2/3rd Gen Core processor DRAM Controller (rev 09)
# ....
# 0000:00:19.0 Ethernet controller: Intel Corporation 82579LM Gigabit Network Connection (rev 04)
# ....
#
# 0000:03:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 06)
그리고 NAME에 원하는 이름을 써 주면 됩니다. 리부팅하면 eth0
, eth1
로 이름이 나옵니다.
이상입니다.
아참. 제가 테스트한 환경은 우분투 14.04 입니다. CentOS 에서도 아마 비슷하게 되지 싶습니다.
참고 부탁드립니다. 감사합니다.