Debian & Ubuntu ifup/down 활용하기 (ethtool link speed 설정)
제가 잘못 아는것인지는 모르겠지만, 문서화 되지 않은 기능이 있어서 소개해 드립니다.
man interfaces에 없으며, google에서 단한건도 나오지 않는... -_-?
Debian계열은 아래의 파일을 통해서 네트워크 설정을 합니다.
/etc/network/interfaces
interfaces 파일에 대한 간략한 내용은 KLDP WIKI를 참고 하십시오.
/etc/network 디렉토리는 다음의 파일 및 디렉토리를 가지고 있습니다.
if-down.d if-post-down.d if-pre-up.d if-up.d interfaces
각각의 디렉토리는 ifup/down이 실행될때 자동으로 실행됩니다.
예를 들어 ifup eth0를 실행하면 다음의 코드가 자동으로 실행됩니다.
export IFACE=eth0 run-parts /etc/network/if-up.d
여기 까지는 알려져 있습니다. (문서화는 되어 있지 않읂것 같습니다.
/etc/network/interfaces파일에 알려지지 않은 옵션을 사용하게 되면 해당 옵션은 환경 변수로 설정되어서 하부 스크립트를 실행합니다.
예... 한마디로 왓더... -_-
/etc/netwrok/interfaces를 아래와 같이 설정합니다.
iface eth0 inet static address 192.168.1.1 network 192.168.1.0 netmask 255.255.255.0 broadcast 192.168.1.255 message THIS_IS_SPARTA
그러면 ifup/down을 실행할때, IF_MESSAGE라는 환경 변수가 추가 셋팅되고, 이것을 이용해서 추가적인 작업을 할 수 있습니다.
/etc/network/if-up.d/message 라는 파일을 생성하고 아래의 내용을 추가 합니다.
#!/bin/sh [ 'x' = "x$IF_MESSAGE" ] || echo $IF_MESSAGE
이렇게 하고 인터페이스를 UP하면
$ ifup eth0 THIS_IS_SPARTA
이걸 이용하는 몇가지 재미난 스크립트기 기본으로 포함되어 있습니다.
/etc/network/if-up.d/ethtool 이 그것입니다. 내부를 살펴보면 이런 저런 설정을 interfaces파일에서 바로 할 수 있습니다.
예를 들어서 link speed를 직접 할당하고 싶을 경우
link_speed라는 환경 변수를 이용해서 설정하도록 되어 있습니다.
iface eth0 inet static address 192.168.1.1 network 192.168.1.0 netmask 255.255.255.0 broadcast 192.168.1.255 link_speed 1000
ethtool에 관련된 작업을 자동으로 하고 싶을경우 번들된 /etc/network/if-*.d/ethtool 을 확인해보고 해당 옵션만 설정해주면 자동으로 설정됩니다.
물론 원하는 기능이 없으면 추가하면 되겠죠 ^^
PS. 구글링 해보면 ethtool를 이용해서 link speed를 직접 적용하고 싶을 경우 /etc/init.d 를 이용하라는 답 밖에 없습니다. link_speed라는 옵션 자체가 구글에서 검색이 않됩니다.
PS2. 저 기능이 도입된건 2000년 이던데 왜 아직까지 알려지지 않았는지 모르겠습니다. -_-
PS3. 참고로 소스 파일을 받아서 읽어보고 알아낸 내용입니다. OTL ㅠ_
감사합니다.
너무나 감사합니다. 마침 찾고 있던 자료였네요..
지금 만들고 있는 서버(우분투10.04)가 대략 열번에 한번 정도는 네트워크에 자동연결이 안되는 현상이 있어서 이리저리 검색하다가 오게 되었습니다.
랜포트가 두개가 달린 메인보드(K8N-Ultra9/DUAL LAN)라서 원인을 분석하는데 어려움이 많네요.
다시한번 감사드립니다. 이렇게 잘 정리해 놓으셨다니,영문 HOWTO문서 부럽지가 않습니다.
Overclocking My Head.
고맙습니다.
열심히 구글을 찾아봐도 나오는 자료는 없고, 도데체 이게 뭔가 싶었는데
이렇게 친절히 설명해주시다니^^
복 받으세요
댓글 달기