저는 이더넷을 통해 pppd를 사용하여 FreeBsd 상자를 실행하고 있습니다. 한 가지 예외를 제외하면 모든 것이 잘 작동합니다. 때때로 연결이 오래될 수 있지만 이는 드문 일입니다. 모든 것이 괜찮은 것처럼 보입니다. ifconfig에서는 작동이 되었다고 말하고 ppp에서는 링크는 괜찮지만 트래픽이 통과하지 못한다고 말합니다. 내가 한 일은 killall pppd
ppp를 실행한 다음 수동으로 다시 시작하는 것이었습니다. 다시 연결되었고 모든 것이 정상으로 돌아왔습니다.
내 질문은: pppd(또는 mpd5 또는 다른 곳)에 설정되어 있으면 ppp가 링크가 오래되었음을 감지하고 자동으로 다시 연결하도록 하는 설정이 있습니까?
그런 설정이 없다면 다른 해결 방법이 있을까요?
답변1
다음 pppd를 구성했습니까?링크 제어 프로토콜옵션? pppd가 링크가 여전히 유효한지 확인하기 위해 LCP 에코를 보내는지 여부와 빈도, 그리고 그렇지 않은 경우 응답하는 방법을 제어합니다.
lcp-echo-failure n
lcp-echo-interval n
lcp-echo-adaptive
pppd가 종료 후 연결을 다시 시작할지 여부, 다시 연결하기 전에 지연할 시간, 실패 후 다시 시작할 횟수를 제어하는 다음 옵션과 잘 결합됩니다.
persist
holdoff n
maxfail n
maxfail이 0이 아니면 pppd가 완전히 종료된 경우(즉, failed > maxfail이 설정됨) 다시 시작하기 위해 래퍼 스크립트나 cron 작업이 필요할 수도 있습니다. maxfail > 0인 일반적인 이유는 장기 중단과 같은 상황에 더 지능적으로 대응하도록 래퍼 스크립트를 작성할 수 있기 때문입니다(계속해서 다시 시도하는 대신).
이러한 구성 옵션과 기타 구성 옵션에 대한 자세한 내용은 pppd 매뉴얼 페이지를 참조하십시오.
답변2
알려진 호스트를 주기적으로 핑하고 호스트에 연결할 수 없는 경우 서비스를 다시 시작하는 간단한 셸 스크립트를 crontab에 추가하겠습니다.
이 같은:
#!/bin/sh
ping -q -c3 google.com &> /dev/null
if [[ $? != "0" ]]
then
ppp_restart_command
fi
예를 들어 이름을 conn_check.sh
crontab에 추가하고 60초마다 실행되도록 합니다.
답변3
그래서 저는 이 해결책을 생각해냈습니다.
enable lqr
set lqrperiod 5