Я наблюдал разное поведение netcat и telnet при подключении к общедоступному серверу маршрутизации. bgp-view.tvnetwork.hu и отдав команду show ip bgp
.
При использовании Telnet вывод (который обычно составляет несколько десятков тысяч строк) усекается, и для просмотра всего этого вам нужно нажать пробел или ввести для продолжения (как на страницах руководства). Когда я подключаюсь к netcat, он просто начинает сбрасывать весь вывод и после первых нескольких сотен строк зависает. Даже если я прямо заявляю, что хочу сделать паузу после первых 100 строк, используя команду terminal length 100
netcat не меняет поведения.
Вы хоть представляете, почему это происходит и как это можно решить? Моя ОС - ubuntu 10.4, а сервер маршрутов работает под управлением Quagga (версия 0.99.5). Такое же поведение наблюдается и с другим сервером маршрутов quagga (). С другими типами маршрутизаторов (cisco или juniper) такой проблемы не возникает.
Спасибо.
пс. Я также разместил этот вопрос в stackoverflow, но ошибка сервера кажется более относительной.
РЕДАКТИРОВАТЬ:
Wireshark помог мне обнаружить, что проблема в том, что netcat отказывается согласовывать параметр размера окна, хотя сервер запрашивает «согласовать размер окна». Netcat имеет параметр -t для согласования параметров telnet, но его поведение заключается в том, чтобы не принимать никаких параметров (по умолчанию используется DON'T или WON'T). Итак, вопрос теперь в том, как заставить netcat согласовывать размер окна и отправлять ширину 80 и высоту 25, которые являются значениями, которые отправляет telnet.
Если вы подключаетесь с помощью telnet и начинаете с подачи команды term len 0
, похоже, нумерация страниц не используется.
Предположительно, причина, по которой он не выполняет разбиение на страницы при использовании netcat, заключается в том, что он, вероятно, не выполняет ожидаемые согласования протокола TELNET для основных характеристик терминала.
Редактировать: Кажется, основная проблема заключается в том, что отображение полной таблицы маршрутизации занимает слишком много времени. После выхода из сеанса Telnet с term len 0
и sh ip bgp
бегом я получил:
Vty connection is timed out.
Connection closed by foreign host.
МОЖЕТ быть, что периодической отправки данных на сервер маршрутизации (возможно, пробела каждые 45 секунд) может быть достаточно, чтобы не вызвать тайм-аут VTY, но мне нужно проверить исходный код, чтобы быть уверенным.