Kerberos - TCP-клиент хочет 1195725856 байт, ограничение - 1048572
У меня возникли некоторые трудности при отладке этой ошибки. Я запускаю nginx в качестве шлюза API, созданного для выполнения подзапроса к Kerberos всякий раз, когда конечная точка вызывается с использованием метода SPNEGO. Но всякий раз, когда я пытаюсь сделать запрос с билетом TGS в заголовке, я получаю ошибку TCP client 192.168.112.4.51658 wants 1195725856 bytes, cap is 1048572
тогда соединение закрывается.
я пробовал printf "\xff\xff\xff\xff" | netcat krb_address 88
и это вызывает вышеупомянутую ошибку, и если экземпляр \xff удален, то нет ошибки.
Что я пытаюсь выяснить, так это:
- Что именно отправляется в Kerberos сообщение, которое нарушает ограничение cap?
- Какие изменения конфигурации необходимо внести, чтобы удовлетворить требованиям ограничения?
Я никогда раньше не работал с nginx и kerberos, поэтому не уверен, что смогу задать более качественные вопросы, кроме основ.
Было бы очень полезно получить некоторое представление о предыдущем опыте с этой ошибкой или, возможно, о некоторых дополнительных методах, которые я мог бы использовать, чтобы раскрыть еще несколько идей о том, что является причиной ошибки!
1 ответ
Это несоответствие протокола; в какой-то момент вы отправляете HTTP-запрос, когда сервер Kerberos ожидает чего-то другого.
Дешевой раздачей здесь является число, показанное в ошибке, 1195725856. Преобразовано в шестнадцатеричное, это 47 45 54 20. Преобразовано в ASCII, это G
, E
, T
, пробел или первые четыре символа запроса HTTP GET. Это вряд ли совпадение.
Я не очень знаком с Kerberos, но небольшое исследование показывает, что одной из возможных причин является то, что вы, возможно, не учли --enable-http
вариант к kdc
оказание услуг?