LINUX.ORG.RU

Сообщения swelf

 

Выключить спящий режим/гибернацию kde из консоли.

Форум — Desktop

Доброго всем дня. Имеется компьютер с установленной кубунтой 22.04. Сейчас к компьютеру есть доступ только по сети через ssh. Как выключить спящий/ждущий режим на нем, чтобы он не пропадал из сети. Кто за это отвечает. Сейчас чтобы разбудить компьютер, дергаю питание на умной розетке к которой он подключен.

 ,

swelf
()

The authenticity of host '* *' can't be established

Форум — Admin

Из под обычного юзера у меня постоянно есть ssh соединение к паре северов. И по какой-то причине, в консоли под рутом, выскакивает сообещние

The authenticity of host '*' can't be established.
ECDSA key fingerprint is SHA256:*.
Are you sure you want to continue connecting (yes/no)?

root то тут причем, я не пытаюсь от него подключиться. Причем обычно это вроде про 1 или 2 сервера, хотя подключаюсь переодически к 10ти.

Кто виноват и что делать

 

swelf
()

как делать ci/cd нескольких сервисов(docker swarm, gitlab ci cd)

Форум — Development

Приветствую, не уверен разаботка это или администрирование, но пусть будет так. В интернете полно статей как настроить ci cd на примере одного сервиса. Но не совсем понятно как это сделать с группой сервисов.

Вопросы следующие

  1. Где и в каком виде хранится конфиг кластера
  2. Монорепа/мультирепа
  3. Версионирование артифактов
  4. Как происходит откат
  5. Как обновить 2+ сервиса одновременно.

Какие мысли

Сервисов у меня не много, основной и 3 сателита, пока все в разных репах.

1) Конфиг

Если это монорепа, то и конфиг хранится в ней же. Но, в каком виде в нем прописаны версии docker образов.

CI/CD записывает туда последнюю собранную версию 1.1.111, после чего конфиг посылается на кластер
Плюсы:
  • прям из конфига видно какая версия образа должна быть задеплоена(но нужно ли это)
Минусы:
  • сложно заморозить версию пакета, ci/cd все время жаждет ее обновить
конфиг статичный, руками задаем номер версии, типа: latest
Плюсы:
  • Легко заморозить версию пакета, для продакшена конфиг с тегами latest, для тестов в ветке feat-25 у нас версии feat-25
  • Для отката с 1.1.111 до 1.1.107 удалем из хранилища докера образ 1.1.111 и вешаем тег latest на 1.1.107
Минусы: из конфига может быть не понятно, какая версия должна быть в работе(нужно ли?)

Есть ощущение что держать статичный конфиг и управлять версиями сервисов через теги образов удобней и правильней.

2) Монорепа/мультирепа

Монорепа

Обычно в минус монорепе записывают огромный репозиторий в котором работает тысяча человек, клонируется он пол дня

Это не мой случай, репы маленькие, работаю с ними я один

Плюсы что я вижу, все в одном месте, обновил общий код, обновились все сервисы от него зависящие. gitlab cicd позволят в пайплайнах определять какие файлы в каких директориях поменялись и на основе этого пересобирать только нужные пакеты. Конфиг кластера тоже лежит здесь же.

Мультирепа
  • Кажется сложней в управлении при связывании в кластер.
  • Конфиг кластера будет лежать в отдельной репе deploy_cluster

3) Версионирование.

Версионировать каждую версию руками грустно, надо чтоб это делала ci/cd. Пока мысль такая, вешать git tag major.minor изредка руками а патч вычислять на ci/cd.

tag=$(git describe --tags --abbrev=0)
patch$(git rev-list ${tag}..HEAD --count)

Нужно ли его средствами ci/cd вешать на гит репу(надо немного поправить алгоритм вычисления патча), или использовать только для версионирования образов

В случае с монорепой, нужно ли тегировать новой версией образы которые не пересобирались, например с целью простоты отката всего кластера на версию 1.1.107, у некоторых образов может просто не быть настоящей версии 1.1.107

4) Откат

Вроде бы частично рассмотрен в пункте про конфиг

5) Как обновить 2+ сервиса одновременно.

Это необходимо для того чтобы не выкатить сервис A который хочет новую фичу от сервиса B, а сервис B еще не выкачен.

Ну тут магии вроде бы нет, просто надо выкатить сначала B, а потом A. А даже если A выкатится раньше, он просто не должен подниматься, сответственно кластер не переключит на него трафик.

Бонусный вопрос, где хранить env variables в docker stack/swarm. У него есть такие понятия как конфиг и секрет, но они монтируются в образ как файлы, что не всегда удобно.

Что могут рассказать взрослые devops?

 , ,

swelf
()

локализация приложения на go

Форум — Development

Добрый день. Хочется поинтересоваться, какие ппакеты сейчас принято использовать для локализации приложения на go. в частности вэб сайтов. На глаза попались следующие проэкты

  1. официальные xtext golang.org/x/text/language golang.org/x/text/message
  2. go-i18n https://github.com/nicksnyder/go-i18n/
  3. gotext https://github.com/leonelquinteros/gotext

Первый я потыкал, остальные 2 только доки посмотрел. Что я хочу от пакета для локализации

  1. не сильно монструозный синтаксис

  2. Автоматическое выдерание строк для перевода из исходников go, и из шаблонов html. По большому счету все.

Начнем по порядку

официальные xtext синтаксис вполне себе ок, заменяете

fmt.Printf(«hello world»)

на

p := message.NewPrinter(language.Greek) 
p.Printf(«Hello world!»)

при помощи команды go generate и коментария в файле

//go:generate gotext -srclang=en update -out=catalog.go -lang=en,el

генерирует вам json файлы в которых можно осуществлять перевод, а так же генерирует файл catalog.py в котором хранит этот перевод в своем формате. Есть пара НО

  1. Не выдерает строки для перевода из шаблонов go

  2. Не понял как переводить например даты time.Now().Weekday()

  3. Иногда странно себя ведет.

    1. Например метод p.Printf(«Hello world!») выдает перевод на нужный язык, а метод p.Println(«Hello world!») (выдает оригинал), хотя по идеи должен.

    2. Если вызвать метод p.Printf(«Hello world!») для строки которая не зарегестрирована в файле переводов соответствующего языка, то на печать выйдет перевод самой первой строки в словаре. Я б ожидал что на печать выйдет оригинал без перевода.

Например: Файл переводов

{
    "language": "el",
    "messages": [
        {
            "id": "Hello world!",
            "message": "Hello world!",
            "translation": "Γειά σου Κόσμε"
        }
    ]
}

наш текст программы

func main() {
	p := message.NewPrinter(language.Greek)
	p.Printf("Hello world!")
	p.Println()

        p.Println("Hello world!")

	p.Printf("buy world!")
	p.Println()

}

я бы ожидал на выходе

Γειά σου Κόσμε
Γειά σου Κόσμε
buy world!

но нет, у нас будет

Γειά σου Κόσμε
Hello world!
Γειά σου Κόσμε

go-i18n Монструозный синтаксис. Даже копировать сюда не буду, что необходимо для «регистрации» строки для перевода. Не умеет выдергивать текст из шаблонов, судя по коду https://github.com/nicksnyder/go-i18n/blob/master/v2/goi18n/extract_command.go

gotext https://github.com/leonelquinteros/gotext Использует как хранилище переводов po/mo файлы. Синтаксис вроде компактненький. Но насколько я понимаю весь po файл вобще придется формировать руками либо сторонними утилитами, в описании пакета не нашел упоминаний о том, что он сам генерирует словари на основе исходников.

Вобщем кто как решает вопросы локализации.

 

swelf
()

kde цвета панели задач.

Форум — Desktop

Приветствую. Перелопатил настройки, не нашел где в kde5 настроить цвета активного окна на панели задач. И активное и неактивное окно имеют одинаковый цвет. Хотелось бы активное окно выделить из списка.

 

swelf
()

python, NameError: global name NAME is not defined

Форум — Development

Есть небольшое недопонимание

Есть код

$ cat test.py
#!/usr/bin/python


class A:
    def test(self):
        print urllib


if __name__ == '__main__':
    import urllib
    a=A()
    a.test()

при запуске файла все работает
$ python test.py
<module 'urllib' from '/usr/lib/python2.7/urllib.pyc'>
Если импортировать класс в консоли и импортировать модуль - ловим исключение
$ python
Python 2.7.12 (default, Dec  4 2017, 14:50:18) 
[GCC 5.4.0 20160609] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import urllib
>>> from test import A
>>> a=A()
>>> a.test()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "test.py", line 6, in test
    print urllib
NameError: global name 'urllib' is not defined
Почему так происходит и возможно ли провести манипуляции в консоли для починки, не меняя файл(не вынося импорт) из под условия

 

swelf
()

Разыскивается идеальный tabbed window manager

Форум — Desktop

Добрый день. После нескольких лет перерыва решил вернуться в тайлинг(динамический). Сейчас у меня синнамон в качестве de. Чего хочется от нового окружения.

1)Тайлинг

2)Табы.

3)Иконки в табах.

4)трей.

так как табы хочу использовать как таск бар, в отдельном таск баре нет смысла, если есть табы и тайлинг и все окна всегда на виду. Но удобней ориентироваться, если разные программы в одном «контейнере», допустим браузеры(фф,хром, опера), по иконкам.

Какой wm посмотреть ради первых 3х пунктов? Что сейчас используются в качестве статусбара/систем трея? Чем сейчас реализуются меню приложений?

 , ,

swelf
()

vue js, передать параметр в компонент.

Форум — Development

суть вопроса, для сборки проекта использую webpack+vue-loader

проект выглядит так, main.js

import Vue from 'vue'
import App from './App.vue'
var app = new Vue({
  el: '#vue_test_id',
  data: {
        test:'ffff',
        test1:'dddd'
        },
  render: h => h(App)
})
файл App.vue
<template v-bind:test="test">
<div>
{{test}}
{{test1}}
</div>
</template>

<script>
export default {
  name: 'component1',
  props:['test'],
  data: function(){
    return {
        test1: this.$parent.test1
        }
    },
}
</script>

суть в том, что мне надо передавать состояние приложения во все компоненты вниз к «детям» и изменять его, в документации написано что можно передавать параметры детям через props, но как-то не работает, либо в случае когда каждый компонент отдельный файл надо делать это как-то по другому либо одно из двух. зато инициализация компонента через this.$parent прекрасно работает и реагирует не изменения.

Вообщем я вроде добился цели, но при помощи гугла, а не при помощи документации, и не совсем понимаю, зачем эти props, если всегда можно обратиться к this.$parent.

Правильно ли таким образом передавать параметры вниз, какие подводные камни.

А вот передать параметры из App.vue в его дочерние компоненты при помощи props уже получается.

 

swelf
()

куки стаффинг и воровство кэшбэка lor'ом.

Форум — Linux-org-ru

Это щас тренд такой, что кукистаффингом начали заниматься такие крупные ресурсы? на главной странице lor висит банер рекламирующий xiaomi на aliexpress. выше банера подгрузка js script'а

https://aliexpress-internet.ru/js/lb6ht9io.js
если посмотреть внутрь, то там
var url = 'https://s.click.aliexpress.com/e/yjq3vrZ?dp=linuxorgru';
var period = 300000;
banners = [];
banners.push(['https://aliexpress-internet.ru/banners/690x90/1.jpg', 'https://s.click.aliexpress.com/e/jiMbAMvfY?dp=linuxorgru']);
banners.push(['https://aliexpress-internet.ru/banners/690x90/2.jpg', 'https://s.click.aliexpress.com/e/jiMbAMvfY?dp=linuxorgru']);
banners.push(['https://aliexpress-internet.ru/banners/690x90/3.jpg', 'https://s.click.aliexpress.com/e/jiMbAMvfY?dp=linuxorgru']);
banners.push(['https://aliexpress-internet.ru/banners/690x90/4.jpg', 'https://s.click.aliexpress.com/e/jiMbAMvfY?dp=linuxorgru']);
var id = 0;
var maxid = banners.length;

function setuser() {
    id = getrandom(0, maxid - 1);
    document.getElementById('ali').src = url;
    document.getElementById('banner34er45tg56').src = banners[id][0];
    document.getElementById('banner34er45tg56link').href = banners[id][1];
    window.setTimeout('setuser();', period)
}

function getrandom(min, max) {
    var res = Math.floor(Math.random() * (max - min + 1)) + min;
    return res
}

function ready() {
    id = getrandom(0, maxid - 1);
    document.getElementById('banner34er45tg56block').innerHTML = '<a id="banner34er45tg56link" target="_blank"><img id="banner34er45tg56" style="max-width:90%;"></a>';
    document.getElementById('banner34er45tg56').src = banners[id][0];
    document.getElementById('banner34er45tg56link').href = banners[id][1];
    window.setTimeout('setuser();', period)
}
var ifr = document.createElement('iframe');
ifr.src = url;
ifr.id = 'ali';
ifr.height = '0';
ifr.width = '0';
ifr.scrolling = 'no';
ifr.style = 'display: none;';
document.body.appendChild(ifr);
document.addEventListener('DOMContentLoaded', ready);

как видно каждые 300 сек обновляется урл iframe'а -> происходит обращение по этому урлу -> вешаются реферальные куки aliexpress.

В итоге «кто-то» ворует кэшбэк и обогащается за чужой счет. Вопрос - доколе.

 

swelf
()

Властелин колец, мотивация саурона и сила кольца.

Форум — Talks

Смотрю тут на праздниках в очередной раз ВК, и все мучаюсь вопросами. Какова вобще мотивация саурона к захвату средиземья? Зачем оно ему, что он с ним хочет делать, он же полубог, для меня это выглядит так, как если бы директор зоопарка разделся, залез в клетку с мартышками и начал бы захватывать власть в стае кидаясь гавном и кусаясь.

Второй вопрос о кольце, в чем его изначальный смысл? В чем его власть? Я много слышал, что оно повелевает другими кольцами, но в чем власть других колец. Люди носившие кольца стали назгулами, гномам они помогали находить золото, эльфы вобще втихаря свои выковали и к сауроновскому они привязаны не были. Так собственно зачем такими кольцами управлять извне? В войне, когда саурону отрубили палец, ни его супер кольцо, ни «кольца-слуги» ему особо не помогли. Далее, по сюжету боромир да и куча народу все время говорит «не уничтожайте кольцо, давайте с его помощью выиграем войну», как они хотели ее выиграть? Если власть кольца - управлять другими кольцами, т.е. людьми гномами и эльфами, то толку им от такой власти? они и сами могут объедениться. Люди разве не помнят что саурон в свое время проиграл войну с кольцом, оно ему не помогло.

 ,

swelf
()

django admin своя форма для каждого inline объекта

Форум — Development

Приветствую, задача такова, есть

#models.py
class Parent(models.Model):
    name = models.CharField()

class Children(models.Model):
    parent = models.ForeignKey(Parent)
    f_int =  models.IntegerField()
    f_float = models.FloatField()
Вся работа ведется в админке. Объекты Children создаются в нужном кол-ве(пускай 2 штуки) при создании Parent. Таким образом при редактировании Parent у нас уже есть 2 штуки Children, добавлять, удалять нельзя.

Задача, иметь для этих Children свои наборы полей для формы. Допустим для четных id: fields = ('f_int',), для нечечетных id: fields = ('f_float',).

ПС. Сейчас у меня есть третье «виртуальное поле» которое я вывожу в форму и после сохранения уже валидирую и переношу в соответствующее f_int, f_float. Есть только один недостаток, если допустим у каждого сотого id я захочу выводить 2 поля и f_int и f_float, то тут виртуальное поле мне не помошник.

 , ,

swelf
()

chrome и человеческие(широкие и с прокруткой) табы.

Форум — Desktop

Приветствую, пользуюсь в качестве браузера ФФ, никаких специфичных плагинов не стоит. Но на домашнем компе на ФФ сильно текет память, как мне кажется, иногда даже oom killer приходит. Вобщем решился попробовать я chrome или яндекс браузер. Внутренний голос почему-то говорит «используй хром, используй хром» и я как бы начал это делать. Но что мне сильно не понравилось, что когда я открываю много, 30+ вкладок, они сжимаются до расмеров, что там нет ни единой буквы на вкладке, никаких опозновательных знаков. Раньше я так понял в chrome был экспериментальный режим stacked tabs, который представлял собой что-то похожее на работу со вкладками ФФ, в яндексе он есть и сейчас. Можно ли как-то включить норм вкладки на хроме, можно попробовать вертикальные, но все дополнения что я нашел, вызывают вкладки по комбинации клавиш.

В чем отличия хрома, яндекса и хромиума, может можно и яндекс использовать?

 , ,

swelf
()

что за файлы goog-badbinurl-shavar.cache goog-phish-shavar.pset

Форум — Admin

Исторяи такова. пропали js и css одного проектика. Свежих бекапов нету(я так думал), запускаю testdisk и лезу в папку с поуктом, и замечаю что в общей папке исходников лежат удаленные файлы

# ls
goog-badbinurl-shavar.cache  goog-phish-shavar.pset     goog-unwanted-shavar.sbstore  test-phish-simple.cache    test-unwanted-simple.cache
goog-badbinurl-shavar.pset   goog-phish-shavar.sbstore  test-malware-simple.cache     test-phish-simple.pset     test-unwanted-simple.pset
goog-malware-shavar.cache    goog-unwanted-shavar.pset  test-malware-simple.sbstore   test-phish-simple.sbstore  test-unwanted-simple.sbstore
заглянул в часть файлов, среди них есть конфиг screen'а, ключи ssh, pre post хуки git'а, ест ькакаято картиночка(не стал выкачивать по ссш и смотреть что там).

Вопрос, что за хрень. По идеи это все файлы мозилы для какогото safe browsing. Но какого фига они делают(делали) в директории моих исходников. Меня наталкивает на мысль, то что глюканула фс(питание пропадало пару дней назад). js которые я восстановил при помощи testdisk оказались поломанными. так что в конце концов восстановил все с бекапа.

глюк фс(ext4 на ssd) это как-то неприятно.

UPD. проверил фс

fsck -n -f /

/dev/sdb1: ********** WARNING: Filesystem still has errors **********

/dev/sdb1: 1040822/7331840 files (0.9% non-contiguous), 22479924/29304832 blocks

 ,

swelf
()

linux arp reply padding

Форум — Admin

Добрый день. Подскажите как в линуксе задать мимнимальный размер пакета. Дело в том, что у меня через некоторое оборудование похоже(думаю медики) не пролетают мелкие пакеты.

<Ether  dst=00:0e:5e:26:84:5f src=00:00:00:ab:cd:ef type=0x806 |<ARP  hwtype=0x1 ptype=0x800 hwlen=6 plen=4 op=is-at hwsrc=00:00:00:ab:cd:ef psrc=172.19.19.9 hwdst=00:0e:5e:26:84:5f pdst=172.19.19.11 |>>
вот такие 28 байт не долетают до адресата. а вот такие 86
<Ether  dst=00:0e:5e:26:84:5f src=00:00:00:ab:cd:ef type=0x806 |<ARP  hwtype=0x1 ptype=0x800 hwlen=6 plen=4 op=is-at hwsrc=00:00:00:ab:cd:ef psrc=172.19.19.9 hwdst=00:0e:5e:26:84:5f pdst=172.19.19.11 |<Padding  load='ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff' |>>>
долетают. линукс по умолчанию отвечает пакетами без padding, соответственно на удаленном узле не заполняется arp таблица. Прописывать какие-то arp статически на удаленной стороне не вариант. Сейчас буду выяснять кто не пропускает такие пакеты и почему, после - сменю оборудование.

 

swelf
()

MySQL server has gone away

Форум — Admin

Приветсвую, в админке джанги, при сохранении модели возникает ошибка MySQL server has gone away. Погуглил по-поводу ошибки и часто она возникает либо из-за таймаута подключения к базе, либо из-за слишком длинного запроса. Но wait_timeout у меня стоит 28800, а ошибка вылетает почти моментально. В сторону max_allowed_packet даже не думал, ибо у меня вся база весит мегабайт 200-300, а эта переменная стояла в 16М. Но решил поднять до 64М. Перезагрузил сервер и ошибка ушла. И вот понять не могу, там текста на несколько килобайт, много конечно связанных элементов, но не на 16 метров. Как такое дебажить. Хотел бы узнать причину. Несмотря на то что увеличение переменной помогло, как-то я сомневаюсь.

 

swelf
()

Объясните про биткойн.

Форум — Talks

Эта штука для меня большая загадка:

1)почему он вобще должен стоить реальных денег? О чем думал человек заплативший за самый первый биткойн?

2)Зачем их генерировать. Ну т.е. взять к примеру нефть, ее добыть надо, хранить, транспортировать. Т.е. затраты как бы есть и никуда не деться, но ведь добывающие компании только рады будут снизить эти издержки. Биткой напротив искусственно увеличивает сложность добычи, жжем больше электричества в никуда, зачем?

2а)Вычитал тут, что после того, как будет сгенерирован 21млн биткойнов, генерация прекратится.

 

swelf
()

приходит oom-killer, хотя памяти дуром.

Форум — Admin

Давече пришел oom-killer и убил сквид. Хотя памяти было дуром.

$ free -m
             total       used       free     shared    buffers     cached
Mem:          8112       1715       6396          0        160       1095
-/+ buffers/cache:        460       7651
Swap:        16371          0      16371

в логах фигурирую следующие строки

DMA free:5660kB min:2496kB low:3120kB high:3744kB active_anon:0kB inactive_anon:0kB active_file:0kB inactive_file:0kB unevictable:0kB isolated(anon):0kB isolated(file):0kB present:15996kB managed:15912kB mlocked:0kB dirty:0kB writeback:0kB mapped:0kB shmem:0kB slab_reclaimable:100kB slab_unreclaimable:7128kB kernel_stack:0kB pagetables:0kB unstable:0kB bounce:0kB free_cma:0kB writeback_tmp:0kB pages_scanned:0 all_unreclaimable? yes

Normal free:80812kB min:128572kB low:160712kB high:192856kB active_anon:0kB inactive_anon:0kB active_file:152kB inactive_file:100kB unevictable:0kB isolated(anon):0kB isolated(file):0kB present:894968kB managed:818540kB mlocked:0kB dirty:0kB writeback:0kB mapped:4kB shmem:0kB slab_reclaimable:9764kB slab_unreclaimable:383492kB kernel_stack:1688kB pagetables:24kB unstable:0kB bounce:0kB free_cma:0kB writeback_tmp:0kB pages_scanned:280 all_unreclaimable? no

HighMem free:6413656kB min:512kB low:293944kB high:587380kB active_anon:860752kB inactive_anon:107940kB active_file:58344kB inactive_file:11924kB unevictable:0kB isolated(anon):0kB isolated(file):0kB present:7472456kB managed:7472456kB mlocked:4kB dirty:0kB writeback:0kB mapped:28724kB shmem:15180kB slab_reclaimable:0kB slab_unreclaimable:0kB kernel_stack:0kB pagetables:3984kB unstable:0kB bounce:0kB free_cma:0kB writeback_tmp:0kB pages_scanned:0 all_unreclaimable? no

насколько я могу понять, проблема с зоной normal, там осталось памяти меньше параметра low(min?). Тут два вопроса, почему память выделялась из этой зоны, а не из HighMem, и почему ядро не сбросило в своп некоторые страницы памяти.

ядро самосбор 3.19.5

 ,

swelf
()

Не работает ACL myport в squid

Форум — Admin

Есть сквид

# /usr/local/squid/sbin/squid -v
Squid Cache: Version 3.4.6
configure options:  '--enable-ecap' --enable-ltdl-convenience

слушает 2 порта

http_port 3128 intercept
http_port 3129 intercept
кусочек конфига
acl blocknet localport 3128
acl blocknet_test src 192.168.4.242/32
http_access deny blocknet
перенаправляю свой ноут на порт 3128, правило blocknet, которое вроде как должно матчить все запросы приходящие на порт 3128 не работает, куда смотреть не знаю, разрешеающих правил раньше нету, как только меняю

http_access deny blocknet

на

http_access deny blocknet_test

сквид начинает отрабатывать и блокировать весь контент.

 ,

swelf
()

dnsmaq игнорирует dhcp запрос.

Форум — Admin

Некоторые нехорошие винды посылают вот такие запросы(не с 0.0.0.0:68)

10:57:06.523641 IP 169.254.246.102.61596 > 255.255.255.255.67: BOOTP/DHCP, Request from 20:89:84:78:e0:d3, length 300

Которые dnsmasq игнориует, в логах никакой инфы от него нету. Почему винда посылает такие запросы, и как заставить dnsmasq на них отвечать.

внутренности запроса

    169.254.246.102.61606 > 255.255.255.255.67: [udp sum ok] BOOTP/DHCP, Request from 20:89:84:78:e0:d3, length 300, xid 0x8799f6f, secs 3328, Flags [Broadcast] (0x8000)
          Client-Ethernet-Address 20:89:84:78:e0:d3
          Vendor-rfc1048 Extensions
            Magic Cookie 0x63825363
            DHCP-Message Option 53, length 1: Discover
            Client-ID Option 61, length 7: ether 20:89:84:78:e0:d3
            Hostname Option 12, length 4: "Yana"
            Vendor-Class Option 60, length 8: "MSFT 5.0"
            Parameter-Request Option 55, length 12:
              Subnet-Mask, Domain-Name, Default-Gateway, Domain-Name-Server
              Netbios-Name-Server, Netbios-Node, Netbios-Scope, Router-Discovery
              Static-Route, Classless-Static-Route, Classless-Static-Route-Microsoft, Vendor-Option
            END Option 255, length 0
            PAD Option 0, length 0, occurs 17

 , ,

swelf
()

Не доступны часть хостов за openvpn сервером.

Форум — Admin

Собственно действующие лица.

C(10.9.1.6) - openvpn клиент, он же мой домашний комп.

H1 - гипервизор 1

H2 - гипервизор 2

S - Openvpn сервер.

A(1.1.1.1) - Хост за openvpn к которому не могу получить доступ

B(10.9.4.6) - Хост за openvpn к которому получаю доступ.

Ниже небольшой дамп трафика. Возможно немного изыбточен.

No.     Time           Source                Destination           Protocol Length Info
      3 9.559971000    10.9.1.6              10.9.4.6              TCP      60     52592 > ssh [SYN] Seq=0 Win=29200 Len=0 MSS=1460 SACK_PERM=1 TSval=160332589 TSecr=0 WS=128
      4 9.563355000    10.9.4.6              10.9.1.6              TCP      60     ssh > 52592 [SYN, ACK] Seq=0 Ack=1 Win=17896 Len=0 MSS=1350 SACK_PERM=1 TSval=2551354587 TSecr=160332589 WS=16
      5 9.563390000    10.9.1.6              10.9.4.6              TCP      52     52592 > ssh [ACK] Seq=1 Ack=1 Win=29312 Len=0 TSval=160332590 TSecr=2551354587
      6 9.564074000    10.9.1.6              10.9.4.6              SSHv2    93     Encrypted request packet len=41
      7 9.575086000    10.9.4.6              10.9.1.6              SSHv2    91     Encrypted response packet len=39
      8 9.575138000    10.9.1.6              10.9.4.6              TCP      52     52592 > ssh [ACK] Seq=42 Ack=40 Win=29312 Len=0 TSval=160332593 TSecr=2551354590
      9 9.577299000    10.9.4.6              10.9.1.6              TCP      52     ssh > 52592 [ACK] Seq=40 Ack=42 Win=17904 Len=0 TSval=2551354591 TSecr=160332591
     10 9.577457000    10.9.1.6              10.9.4.6              SSHv2    1390   Encrypted request packet len=1338
     11 9.577470000    10.9.1.6              10.9.4.6              SSHv2    682    Encrypted request packet len=630
     12 9.579814000    10.9.4.6              10.9.1.6              SSHv2    1036   Server: Key Exchange Init
     13 9.584270000    10.9.4.6              10.9.1.6              TCP      52     ssh > 52592 [ACK] Seq=1024 Ack=2010 Win=23248 Len=0 TSval=2551354592 TSecr=160332594
     14 9.584309000    10.9.1.6              10.9.4.6              SSHv2    132    Client: Diffie-Hellman Key Exchange Init
     15 9.592395000    10.9.4.6              10.9.1.6              SSHv2    364    Server: New Keys
     16 9.600723000    10.9.1.6              10.9.4.6              SSHv2    68     Client: New Keys
     17 9.652438000    10.9.4.6              10.9.1.6              TCP      52     ssh > 52592 [ACK] Seq=1336 Ack=2106 Win=23248 Len=0 TSval=2551354610 TSecr=160332600
     18 9.652460000    10.9.1.6              10.9.4.6              SSHv2    100    Encrypted request packet len=48
     19 9.654897000    10.9.4.6              10.9.1.6              TCP      52     ssh > 52592 [ACK] Seq=1336 Ack=2154 Win=23248 Len=0 TSval=2551354610 TSecr=160332613
     20 9.693788000    10.9.4.6              10.9.1.6              SSHv2    100    Encrypted response packet len=48
     21 9.695094000    10.9.1.6              10.9.4.6              SSHv2    116    Encrypted request packet len=64
     22 9.723264000    10.9.4.6              10.9.1.6              SSHv2    116    Encrypted response packet len=64
     23 9.723384000    10.9.1.6              10.9.4.6              SSHv2    420    Encrypted request packet len=368
     24 9.726646000    10.9.4.6              10.9.1.6              SSHv2    116    Encrypted response packet len=64
     25 9.764015000    10.9.1.6              10.9.4.6              TCP      52     52592 > ssh [ACK] Seq=2586 Ack=1512 Win=33152 Len=0 TSval=160332641 TSecr=2551354628
     27 17.995759000   10.9.1.6              10.9.4.6              SSHv2    196    Encrypted request packet len=144
     28 17.998470000   10.9.4.6              10.9.1.6              SSHv2    116    Encrypted response packet len=64
     29 17.998494000   10.9.1.6              10.9.4.6              TCP      52     52592 > ssh [ACK] Seq=2730 Ack=1576 Win=33152 Len=0 TSval=160334699 TSecr=2551356696
     30 18.615094000   10.9.1.6              10.9.4.6              TCP      52     52592 > ssh [FIN, ACK] Seq=2730 Ack=1576 Win=33152 Len=0 TSval=160334853 TSecr=2551356696
     31 18.621556000   10.9.4.6              10.9.1.6              TCP      52     ssh > 52592 [FIN, ACK] Seq=1576 Ack=2731 Win=25936 Len=0 TSval=2551356851 TSecr=160334853
     32 18.621580000   10.9.1.6              10.9.4.6              TCP      52     52592 > ssh [ACK] Seq=2731 Ack=1577 Win=33152 Len=0 TSval=160334855 TSecr=2551356851
     33 25.050726000   10.9.1.6              1.1.1.1         TCP      60     53546 > ssh [SYN] Seq=0 Win=29200 Len=0 MSS=1460 SACK_PERM=1 TSval=160336462 TSecr=0 WS=128
     34 25.053453000   1.1.1.1         10.9.1.6              TCP      60     ssh > 53546 [SYN, ACK] Seq=0 Ack=1 Win=5792 Len=0 MSS=1350 SACK_PERM=1 TSval=826064470 TSecr=160336462 WS=128
     35 25.053479000   10.9.1.6              1.1.1.1         TCP      52     53546 > ssh [ACK] Seq=1 Ack=1 Win=29312 Len=0 TSval=160336463 TSecr=826064470
     36 25.053843000   10.9.1.6              1.1.1.1         SSHv2    93     Client: Unknown (46)
     37 25.097466000   1.1.1.1         10.9.1.6              TCP      52     ssh > 53546 [ACK] Seq=1 Ack=42 Win=5888 Len=0 TSval=826064514 TSecr=160336463
     38 25.137494000   1.1.1.1         10.9.1.6              SSHv2    72     Server: Unknown (46)
     39 25.315694000   1.1.1.1         10.9.1.6              SSHv2    72     [TCP Retransmission] Server: Unknown (46)
     40 25.720827000   1.1.1.1         10.9.1.6              SSHv2    72     [TCP Retransmission] Server: Unknown (46)
     41 26.529580000   1.1.1.1         10.9.1.6              SSHv2    72     [TCP Retransmission] Server: Unknown (46)
     42 28.146574000   1.1.1.1         10.9.1.6              SSHv2    72     [TCP Retransmission] Server: Unknown (46)
     43 31.378740000   1.1.1.1         10.9.1.6              SSHv2    72     [TCP Retransmission] Server: Unknown (46)

Интерес вызывают пакеты 3-6 и 33-36, и в том и в другом случае первые 3 пакета это обычное установление tcp соединения. А вот дальше немного странная вещь получается, wire shark не может разобрать содержимое пакета 36(openvpn client), хотя содержимое tcp пакета совпадает с содержимым пакета под номером 6, который wireshark разбирает. Как видим пакет 37 от хоста A это подтвеждение, о том что 36 пакет получен. Пакет 38, хост посылает информацию о своей версии openvpn, которую wireshark опять разобрать не может. Сессия зависает. Так с любым tcp/ip соединением.

Небольшая предыстрия.

Openvpn сервер и хост к которому я хочу подключиться работали как машины kvm на гипервизоре H1, потом были перенесены на H2. Доступ получают через один и тот же bridge, на предыдущем гипервизоре все работало. Хост B это реальная машина. Так же есть нормальный доступ через openvpn сервер к виртуальным машинам которые находятся в другом bridge.

Между самим openvpn сервером и проблемным хостом номально устанавливаются соединения и бегает трафик, а вот с клиентов за openvpn сервером проблемы.

 , , ,

swelf
()

RSS подписка на новые темы