텔넷을 사용하여 Cisco 라우터에 연결합니다.
3분마다 연결 시간이 초과됩니다.
텔넷 세션 시간 초과 및 라우터 연결 끊김을 어떻게 중지합니까?
내가 아는 한, putty와 SecureCRT는 주기적으로 null 또는 이스케이프 문자를 보내 세션(telnet 또는 SSH)이 시간 초과되는 것을 방지할 수 있습니다.
타사 프로그램 없이 Linux에서 이 작업을 어떻게 수행합니까? 터미널을 시작할 때 다음 스크립트를 시작 스크립트로 사용합니다.
#!/usr/bin/expect -f
spawn telnet <Router IP Address>
expect -re "ogin: "
send "*******\n"
expect -re "assword:"
send "***********\n"
sleep 2
expect "Router>"
interact
답변1
interact
의 문은 이 문과 유사한 쌍을 이루는 패턴과 작업을 expect
취할 수 있습니다. expect
특히 시간 초과 모드를 추가하고 작업을 보낼 수 있습니다. 예를 들어,
interact timeout 10 { send "date\r" }
입력한 내용은 평소대로 전송되지만 10초 동안 입력하지 않으면 문자열 date
과 캐리지 리턴이 전송됩니다. 문자 모드에서 텔넷을 사용하는 경우 공백과 백스페이스를 차례로 보내 연결을 활성 상태로 유지할 수 있습니다. 이렇게 하면 입력한 줄의 어떤 부분도 중단되지 않습니다.
interact timeout 150 { send " \b" }
답변2
telnet
보안 조치로 Cisco 측 세션에는 기본 시간 초과가 있지만 Linux 측에서는 그렇지 않습니다.
timeouts
TCP keepalive와 혼동 하지 않는 것이 좋습니다 . 이는 콘솔/운영자 비활성에 대한 레이어 7 시간 초과입니다.
ssh
보안상의 이유로 Cisco 라우터 대신 세션을 설정해야 한다고 말하고 싶습니다 .telnet
필요한 경우 Cisco 측에서 수행할 수 있는 구성 중 하나는 ssh
다음과 같습니다.
ip ssh timeout 300
의 경우 telnet
기본 시간 초과를 다음과 같이 변경할 수 있습니다.
r1# configure terminal
r1(config)# line vty
r1(config-line)# exec-timeout 300
또는 에서 시간 초과를 방지하기 위해 exec-timeout 0
또는 를 사용할 수도 있지만 이는 좋은 보안 방법으로 간주되지 않습니다. .ip ssh timeout 0
telnet
ssh
또한 라우터의 다른 기본 구성(기본값)을 변경하는 것이 좋습니다 hostname
.