RHEL 5에서 DHCP 서버에 연결돼 IP를 받을때까지 Retry하는 방법?

lee3390의 이미지

RHEL5를 사용하고 있는데..

IP를 DHCP로 받는데 DHCP 서버가 늦게 부팅이 됐을때 IP할당 받을때까지 Retry 시키는 방법을 알고 싶습니다.

전체 시스템 재가동시 DHCP서버를 제가동 하고 부팅 완료 하면 그때서야 부팅을 하게되서 전체 부팅시간이

상당히 지연이 되는 문제가 있어 저렇게 설정을 해야 되는데... 리눅스 초보티를 아직 못벗어 난지라...

방법을 못찾겠습니다. 부탁드립니다.

moonhyunjin의 이미지

질문이 앞뒤가 안 맞습니다.

DHCP로 IP 받을 때 바로 안 받아지면 다음 rc번호로 넘어가게 하자는 뜻 아닌가요?

<- 이거면 안되는 게 없어~
정품 소프트웨어 사용 캠패인

<- 이거면 안 되는 게 없어~
정품 소프트웨어 사용 캠패인

keizie의 이미지

dhcp 서버가 있고, 거기서 리스 받는 호스트들이 있습니다.

이때 서버와 호스트를 다 다시 시작하려면 일단 dhcp 서버를 껐다 켜서 dhcp 서비스가 중단되지 않게 하고, 그 다음에 호스트들을 껐다 켜게 되는데, 이렇게 순서를 지키는 게 번거롭다는 것 같습니다.

동시에 재부팅 명령을 내리면, dhcp 서버는 알아서 자기 부팅 절차를 밟고, 다른 호스트들은 dhcp 서버가 준비가 되어서 리스를 해줄 때까지 대기 및 재시도하도록 만들고 싶다는 것 같습니다.

moonhyunjin의 이미지

KZ님 말씀대로라면

1. DHCPserver에서 부팅 완료 후 다른 컴들에게 리부팅하라고 알려주는 방법
2. 시간 지연 주는 방법

이 두개가 머리에 떠오르네요.

<- 이거면 안되는 게 없어~
정품 소프트웨어 사용 캠패인

<- 이거면 안 되는 게 없어~
정품 소프트웨어 사용 캠패인

wariua의 이미지

http://kldp.org/node/61627 이거랑 관련이 있을까요?

dhclient 프로그램의 경우 기본적으로 1분 동안 서버의 응답을 기다린다고 합니다. 1분이 지나도록 서버의 응답이 없으면 다시 재시도, 또 1분 기다리고, 다시 재시도... 그 "1분"을 "5초" 정도로 바꾸면 IP를 빨리 받지 않을까 싶습니다. 우분투의 경우 /etc/dhcp3/dhclient.conf 파일에서 timeout 항목을 통해 조정합니다. FC의 경우도 파일 경로가 같거나 비슷하지 싶습니다.
----
$PWD `date`

$PWD `date`

lee3390의 이미지

dhcp 서버가 있고 dhcp서버에서 ip를 할당을 받아야하는데..

이 전체 시스템 재가동 시간을 줄여야 합니다. 헌데.. dhcp 서버 부팅시간이 대략 4분 정도 걸립니다. 그 서버 부팅하고나서 ip를 할당 받아야하는 시스템을 부팅하면 부팅시간이 너무 지연되서 곤란해져서 계속 dhcp req를 ip할당 받을때까지 Retry시키려 합니다. 그러면 dhcp서버와 동시에 부팅 시켜도 dhcp서버가 부팅 완료되면 ip를 자동으로 받을 수 있게요
일단 dhclient.conf파일의 timeout 값을 바꿔보고 테스트를 해보아야 겠네요..
근데 부팅시 network 스크립트가 실패시에 dhclient데몬이 안떠있던데.. 그래도 받아올 수 있을지.. 아니면 dhclient를 부팅시 실행시키게 넣어줘야하나요?

wariua의 이미지

제가 man페이지를 좀 대강 읽고서 답변을 드린 것 같습니다. "man dhclient.conf"를 보니 다음 항목들이 재시도와 관련이 있네요.

1. timeout

클라이언트가 접속 시도를 시작하고서 완전히 포기할 때까지의 시간이라고 합니다. 접속 시도를 시작하고서 이 시간이 지날 때까지 주소를 받아오지 못하면 설정 파일(dhclient.conf)에서 정적 설정을 찾아보거나 이전에 할당받았던 주소 가운데 아직 유효한 주소를 사용한다고 합니다. 그런 설정 내지 주소가 없으면 아래에 있는 retry 항목에서 지정한 시간이 지난 후 재시도를 합니다. 기본값은 1분입니다.

2. retry

앞서의 timeout 만큼의 시간이 지났는데도 응답이 없고, 딱히 다른 방법(설정 파일 내지 이전에 받았던 주소)이 없으면 이 시간만큼 지난 후에 할당 시도 과정을 반복합니다. 기본값은 5분입니다.

3. reboot

기본적으로 부팅시에 클라이언트는 이전에 받았던 주소를 가지고서 이전에 주소를 할당해 줬던 DHCP 서버에게 주소 할당 요청을 보낸다고 합니다. 부팅 전후에 네트워크가 달라지지 않은 경우, 그렇게 하는 것이 좀 더 빨리 주소를 할당받을 수 있기 때문입니다. 하지만 네트워크가 바뀐 경우에는 이전에 할당받았던 주소는 잊어버리고서, 새로운 마음으로 주소 할당을 요청해야 합니다. 이전 주소로 할당 요청을 했다가 이 시간 만큼 응답이 없으면 '새로운 마음'으로 할당을 요청하게 됩니다. 기본값은 10초입니다.

4. initial-interval

첫 번째 접속 시도와 두 번째 접속 시도 사이의 간격입니다. 그 시간이 지나도록 응답이 없으면 다시 요청 메시지를 보내고, 나름의 방법(이전 간격을 N이라 할 때, "N + (2 * N * (0에서 1 사이의 난수))")으로 새로운 재시도 간격을 정합니다. 기본값은 10초입니다.

5. backoff-cutoff

위에서 말한 것처럼 재시도 간격은 점점 길어집니다. 길어지는 재시도 간격의 상한값을 지정합니다. 기본값은 2분입니다.

----

에... 요약하자면... 일단 할당 요청 과정을 시작하면 initial-interval에서 지정된 간격으로 요청 시도를 합니다. 그 간격은 점점 늘어나며, 상한값은 backoff-cutoff로 제한할 수 있습니다. 그렇게 재시도를 하다가 timeout에서 지정된 시간이 지나도록 주소를 받아오지 못하면 설정 파일에 지정되어 있는 주소 내지 이전에 받았던 아직 유효한 주소를 사용합니다. 그 방법이 불가능하면 retry에서 정한 시간 만큼 지난 다음에 과정을 처음부터 반복합니다.

그리하여... initial-interval과 backoff-cutoff를 짧게 잡으면 요청 패킷을 보내는 간격이 짧아집니다. 그리고 DHCP 서버가 부팅하는 데 3분 정도 걸린다면 timeout을 4분 정도 잡아 주시면 됩니다. 혹은, retry를 짧게 잡아주실 수도 있습니다.

----

더불어, 부팅 스크립트에서 dhclient 프로그램을 실행할 때 "-d" 옵션을 주면 즉시 데몬 모드로 전환하는 듯 합니다 (man dhclient 참고). 그러면 일단 나머지 부팅 과정이 중단 없이 진행되고, 이후 적절한 시점에 dhclient가 IP를 받아오는 것 같은데... 그 옵션을 어디서 지정해 줄 수 있는지는 배포판마다 다를 것 같아서 패스~입니다;;
----
$PWD `date`

$PWD `date`

lee3390의 이미지

너무나 자세한 답변 감사합니다~

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.