Redhat style dhclient script

Centos/RHEL 급의 dhclient script를 또 간만에 삽질하게되었다.

파워콤은 희안하게 5시간 간격으로 dhcp 를 lease 하고서는 행업을 해버린다.

즉 디바이스 커넥션이 끊기고 링크다운이 일어난 후 다시 릴리즈하는식을 반복한다.

아마 인증을 하지 않아서일수도 있지만.. 자세한 원인은 알기싫다. 하지만 그리 나쁘지 않은 기회로 생각하고

전체적인 안정화작업을 위해 스크립트를 귀찮지만 뜯어보게되었다.


첫째로 iproute2 커멘트 체제로 스크립트가 넘어왔다. 편리하다.. 좀더 직관적이고 오류가 적어졌다.

둘째로 후킹스크립트를 지원한다.. 별거아니지만 그래도 있으면 편리하다.
/etc/dhclient-eth0-up-hooks 형식으로 인터페이스의 업이 됨과 동시에 설정할 수 있는 스크립트 로딩을 지원한다.

이곳에 명령어를 추가하여 추가적인 설정이 가능하다.


셋째로 /etc/sysconfig/network 에 DHCLIENT_USE_GATEWAY=yes 형식의 선언이 가능하다
dhcp를 통해 받은 게이트 설정을 라우팅에 반영할수있게 하는 옵션이다. 이녀석이 없으면 귀찮을뻔했다.

GATEWAYDEV 라는 명령이 함께 쓰인다.
GATEWAYDEV 는 ifcfg-ethx 나 상기 network 에 선언할수있다.

GATEWAYDEV=eth1 등으로, dhcp 를 통해 ip를 받아오는 디바이스가 두군데가 있다면 그중 어느것을 주 게이트로 설정할지를 입력할 수 있다.


또한 dhcp를 통해 받아오는 디바이스를 게이트로 삼고싶지 않을때에는 다른 디바이스를 넣어버리면된다.


GATEWAYDEV 는 별도의 ifcfg 컨피그를 통해 실제 디바이스일 경우 디폴트 라우팅을 이에 맞추게 만드는 기능또한 가지고 있다. (이 옵션은 DHCP에만 국한된 옵션이 아니다)

/etc/dhclient.conf 에 아래와 같은 설정으로 라우팅 게이트웨이를 받지않는 방법을 곁들이는것을 필요로 한다.
request subnet-mask, broadcast-address, host-name;

크리에이티브 커먼즈 라이센스
Creative Commons License
이올린에 북마크하기(0) 이올린에 추천하기(0)

Posted by LeCieL

2007/03/13 02:19 2007/03/13 02:19
, , , , ,
Response
No Trackback , No Comment
RSS :
http://cl.dgtalx.net/rss/response/101

DHCP 상태에서의 안정적 2중 네트워크 이용

하나로 E-Valley, KT의 엔토피아, 파워콤 XPeed
전부 100Mbps의 회선들이다.
실제로 내가 관리하던 어떤 사이트는 트래픽 비용을 줄이기 위해, 3회선을 안정적으로 업믹스하여 사용했다.
이를 위해서는 많은 준비와 작업이 필요로 한다.
다만 그 기술을 모두 공개할수는 없으나 일부 라우팅관련 정보들만 제공한다.

첫째로는 network-script의 ifcfg 들을 dhcp로 설정한다.
회선이 3개니 eth0, eth1, eth2 를 dhcp로 맞추어야 한다.

둘째로는 ip route를 이용하여 인입된 회선자체를 개별적으로 이용하도록 만들어야 한다.

세번째는 dhcp를 받았을떄 이 IP에 대한 정보를 어딘가로 전송하거나, DNS에 매핑하여야 한다.
DNS에 매핑하는 이유는 LVS가 이를 이용할 수 있도록 하는것에 목적이 있다.
위 단계는 매우 복잡하며 일반적으로 진행하기가 매우 힘들다.

그러므로 로드밸런싱은 포기하더라도 RR DNS만으로도 운영할 수 있는 방법중 핵심적인 부분만 설명한다.
IP가 1.2.3.4 와 3.4.5.6 과 6.7.8.9 3개가 있다고 가정하자. 그중에 리눅스 머신이 기본적으로 사용할 IP는
1.2.3.4 고 나머지는 업밴드에 대한 라우팅을 지정해야한다.
etc/iproute2 의 routing table에 미리 테이블을 만들어야한다.

퀵리퍼런스다. 하지만 모든정보를 퀵리퍼런스로 만들지 않는다. 삽질없이 얻을 수 있는 댓가는 없다.

테이블명은 주회선을 real1, 보조회선을 real2 로 명명한다.
물론 주회선은 dhcp가 up되면서 게이트웨이가 잡히므로 별다른 설정이 필요없다
2,3번회선에 대한 설정이다.


ip rule del from 3.4.5.6 table real1
ip rule add from 3.4.5.6 table real1
ip route add 3.4.5.0/24 dev eth1 src 3.4.5.6 table real1     #이 회선을 통한 데이터를 eth1로 라우팅설정
ip route add 127.0.0.0/8 dev lo table real1  #로컬디버이스
ip route add default via 3.4.5.1 dev eth1 table real1  #이 회선이 나갈떄의 게이트웨이 IP

ip rule del from 6.7.8.9 table real2
ip rule add from 6.7.8.9 table real2
ip route add 6.7.8.0/24 dev eth2 src 6.7.8.9 table real2
ip route add 127.0.0.0/8 dev lo table real2
ip route add default via 6.7.8.1 dev eth2 table real2 #위와 동일하다

ip route flush cache #캐시를 날린다.

자 문제는 여기서 이 명령을 실행하기에 앞서 IP가 DHCP로 랜덤하게 들어온다는 사실을 알아야한다.
따라서 필요한 정보는 내가 받은 IP와 게이트웨이정도다.
이를 해결하려면? dhclient-script 를 뜯어고쳐야 한다는 말이된다.
dhclient가 dhcp를 통해 ip를 받을때 해당 IP에 정보를 덧씌워 고정시켜야 한다.
스크립 삽질이 필요한 시점이나 스크립트 공개는 애석하게도 하지 않는다.
$router 와 $new_subnet_mask $new_ip_address 등을 적절히 이용하라
쉘스크립조차 손을 못대겠다면 안정적인 회선은 꿈꾸지 못한다.

둘째로 제작하여야 하는 스크립트들이 있다.
바로 DNS를 자동으로 업데이트 시키기 위해 NSUPDATE 사용법 을 참조해서 ip를 라우팅 테이블에 고정하면서
해당 IP를 머신에 알려야 한다.
그다지 어려운 부분은 아니다 다만 최근에는 dns업데이트를 위해 보안키를 생성하고 이를 이용하여야 한다.
설명서를 잘 읽어보고 설정하면된다.
** DNS를 자동으로 업데이트 해주는 시스템, 웹상에서 DNS를 관리하는 솔루션등이 이미 제작되어 실서비스에 이용되고 있다. 가격은 매우 비싸다. 업데이트와 롤백등을 지원하고 있다. 구매문의는 메일로

net.ipv4.ip_forward 를 on으로 해야하는것을 잊으면 안된다.


셋째로는 이상태에서 LVS를 구축해야한다.
왜냐? DNS RR로 신나게 운영중인데 네트웍이 단절되거나 하면 사용자에게는 페이지가 뜨지 않는다는 사실이다.
RR은 fail over에 대한 수단이 전혀 없다.

서로 다른 네트워크 어드레스에 있는것을 어떻게 로드밸런싱을 해야하는가?
Direct Routing 기법을 이용하면된다. 이를 위한 네트워크 설정과 라우팅 테이블 설정을 조금 해야한다.
하지만 안정적으로 동.작.한다
그리고 로드밸런싱을 이용할 경우 굳이 80번 포트가 아니어도 데이터의 송수신이 가능하다.
로드밸런서는 단지 접속만 처리해줄뿐이므로 포트변경등은 간단히 가능하다.
또한 이를 위한 편법으로 SSH 터널링의 방법을 애용하라. 데이터 송수신 포트를 터널링하란 소리는 아니다.
잘생각해보면 뭘 의미하는지 알게될것이다.
그러기 위해 위의 DNS 업데이트 시스템을 필수로 설정하여야 한다.
DNS업데이트는 단순히 rr만을 목적으로 한것이 아닌 로드밸런서의 real server를 도메인으로 설정하여 갱신되도록 함에 있다.

위의 과정을 모두 끝냈다면, 300Mbps의 회선이 10만원도 안되는 가격에 내손안에 들어오게 된다.
이에 대한 질문은 사절이다. 위의 설명은 실제 구축에 있어 많이 부족하다. 하지만 실서비스 구축에 있어
이것 이상의 설명은 필요 없다. 부딪혀라. 그리고 다시 읽어보고 또다시 읽어봐라
이 작업은 매우 힘들고, 많은 시행착오를 격게 만든다.

기억할것은 이러한 서버 운영으로 인해 주변에 피해가 된다는 사실을 잊지마라.
내가 모든 상세정보를 여기 안적는 이유는 그것이다.

실제로 이러한 설정으로 약 2년이란 기간동안 어떤 사이트는 운영되어 왔다.
그 이전 dgtalx는 02년도부터 이러한 설정으로 지금까지 운영되어오고 있다.
(파워서플라이가 꼴아서 자주 죽기는 하지만 네트웍과 관련한 문제는 발생한적이 없다)

스크랩, 퍼가기 금지다 -_-


2006 made by C.L All right Reserved.
크리에이티브 커먼즈 라이센스
Creative Commons License
이올린에 북마크하기(0) 이올린에 추천하기(0)

Posted by LeCieL

2006/10/16 04:05 2006/10/16 04:05
, , ,
Response
No Trackback , 2 Comments
RSS :
http://cl.dgtalx.net/rss/response/25


Archives

Calendar

«   2010/08   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31