Комментарии 11
НЛО прилетело и опубликовало эту надпись здесь
Хорошая статья) Спасибо) Я в свое время задачу «дополнительной обработки/изменения» сетевого трафика решил с помощью своего target-модуля iptables. Хотя, слово «решил» тут приведено с преувеличением — скорее «смакетировал», не понравилось мне мое решение (ваше лучше), не люблю писать «срочно» и «результат нужен вчера». Остались нерешенными вопросы корректной и красивой пристыковки «оверхеда» к пакету…
Я Вас правильно понял, что Вы намерены продолжение статьи писать? Жду))
Я Вас правильно понял, что Вы намерены продолжение статьи писать? Жду))
намерены продолжение статьи писать?
Не то, чтобы продолжение, но то же самое можно сделать другим, альтернативным способом на уровне L3 стека. По свободе опишу…
То, что нечто подобное можно сделать и с помощью iptables, интуитивно понятно… и ещё и другими средствами. Интересно было бы посмотреть как… в деталях.
Что же так много ошибок в статьях делаете.
__dev_get_by_name ничего не лочит, её нельзя использовать вот просто так. Как результат — получите кучу проблем. Рядом же есть функция dev_get_by_name, которая и по списку аккуратно ходит и на выходе dev_hold над найденным устройством делает. Пионэры.
__dev_get_by_name ничего не лочит, её нельзя использовать вот просто так. Как результат — получите кучу проблем. Рядом же есть функция dev_get_by_name, которая и по списку аккуратно ходит и на выходе dev_hold над найденным устройством делает. Пионэры.
Что?… опять будем подбрасывать говно не вентилятор?… в ожидании «эффекта»…
Нет… я слышал про дикие племена, у которых система счисления: один, два, много… но чтобы один — это и было «много»?… это уже что-то из области психиатрии…
А что?… прям так совсем и нельзя?
1. во-первых, там эта функция нужна только для чтения… не обязательно там что-то «лочить»…
2. во-вторых,… такой вот пыанэр как Jerry Cooperstein, давний участник команды разработчиков ядра… из числа основных, он вот использует… и не подозревает, сердешный, о куче поджидающих его проблем… — в примерах кодов вот к этой своей книжке и использует:
Что же так много ошибок в статьях делаете.
Нет… я слышал про дикие племена, у которых система счисления: один, два, много… но чтобы один — это и было «много»?… это уже что-то из области психиатрии…
__dev_get_by_name ничего не лочит, её нельзя использовать вот просто так. Как результат — получите кучу проблем.
А что?… прям так совсем и нельзя?
1. во-первых, там эта функция нужна только для чтения… не обязательно там что-то «лочить»…
2. во-вторых,… такой вот пыанэр как Jerry Cooperstein, давний участник команды разработчиков ядра… из числа основных, он вот использует… и не подозревает, сердешный, о куче поджидающих его проблем… — в примерах кодов вот к этой своей книжке и использует:
Олег, мне понятна ваша страсть к прекрасному, а также стремление поучать и наставлять. Это либо проходит в определённом возрасте, либо приобретает забавные весьма формы. Ваша стилистика, она «как бэ намекаэ», да.
Что касается г-на Jerry Cooperstein, то похоже он внёс весь свой вклад в развитие ядра Linux в эпоху доисторического материализма, т.е. когда git'а ещё не было. Я что-то не нашёл ни одного его коммита и упоминания его персоны в исходниках ядра. Подскажите, где посмотреть чем он так знаменит, кроме посредственной и давно утратившей актуальности книги, а также должности Training Program Director в Linux Fondation? Кажется, у вас много общего — оба два любите чему-то поучать :-)
Далее, относительно вашего опуса:
Снимаю шляпу, оригинально. Именно потому что что-то там читаем и не нужно лочить. Браво.
Отсюда вывод напрашивается сам собой — «бумажный» тренер тренирует бумажное стадо. Ну понятно же, что вы в принципе не в теме ядерной разработки. Не практик ни разу. Так и пишите в начале статьи, — «я, автор, не разбираюсь в предмете, но мне интересно и я хочу услышать ваши комментарии по поводу ...».
Ну и напоследок вам с г-ном Jerry Cooperstein'ом пару вопросов:
1. Что будет если в момент поиска устройства с использованием __dev_get_by_name кто-то выгрузит драйвер сетевой карты?
2. Что будет если в ходе работы вашего модуля кто-то выгрузит модуль сетевой карты родительского устройства?
3. Почему RTNL-lock захватывается только на момент установки/снятия обработчика?
Подскажу ответ на 3-й вопрос: кто-то словил ассерт от ядра, тогда как в аналогичной ситуации при вызове __dev_get_by_name без лока ядро варнинг не кидает. Отсюда, собственно, выводы. Пионэры :-)
Что касается г-на Jerry Cooperstein, то похоже он внёс весь свой вклад в развитие ядра Linux в эпоху доисторического материализма, т.е. когда git'а ещё не было. Я что-то не нашёл ни одного его коммита и упоминания его персоны в исходниках ядра. Подскажите, где посмотреть чем он так знаменит, кроме посредственной и давно утратившей актуальности книги, а также должности Training Program Director в Linux Fondation? Кажется, у вас много общего — оба два любите чему-то поучать :-)
Далее, относительно вашего опуса:
во-первых, там эта функция нужна только для чтения… не обязательно там что-то «лочить»…
Снимаю шляпу, оригинально. Именно потому что что-то там читаем и не нужно лочить. Браво.
Отсюда вывод напрашивается сам собой — «бумажный» тренер тренирует бумажное стадо. Ну понятно же, что вы в принципе не в теме ядерной разработки. Не практик ни разу. Так и пишите в начале статьи, — «я, автор, не разбираюсь в предмете, но мне интересно и я хочу услышать ваши комментарии по поводу ...».
Ну и напоследок вам с г-ном Jerry Cooperstein'ом пару вопросов:
1. Что будет если в момент поиска устройства с использованием __dev_get_by_name кто-то выгрузит драйвер сетевой карты?
2. Что будет если в ходе работы вашего модуля кто-то выгрузит модуль сетевой карты родительского устройства?
3. Почему RTNL-lock захватывается только на момент установки/снятия обработчика?
Подскажу ответ на 3-й вопрос: кто-то словил ассерт от ядра, тогда как в аналогичной ситуации при вызове __dev_get_by_name без лока ядро варнинг не кидает. Отсюда, собственно, выводы. Пионэры :-)
создать алиасный IP для сетевого интерфейса этого удалённого хоста
vboxnet0:1Выкиньте уже вы ifconfig, зачем вы его используете?
Выкиньте уже вы ifconfig, зачем вы его используете?
…
Изобразив снега, и лёд,
И Нил, и дуб, и огород,
И даже — мёд!
(На случай, если вдруг Медведь
Придёт картину посмотреть…)
(с) Сергей Михалков
Except for the patch mass that Debian accumulated, the net-tools package has not seen any upstream development after version 1.60, released sometime about April 15 2001.
Ifconfig uses the ioctl access method to get the full address
information, which limits hardware addresses to 8 bytes.
Because Infiniband address has 20 bytes, only the first 8 bytes
are displayed correctly.
Ifconfig is obsolete! For replacement check ip.
ifconfig makes secondary addresses look like separate interfaces
People often get the impression that labeled secondary addresses are a separate interface (thanks to the dumb output of ifconfig, as a result of ioctl limitations), which in fact is not the case. You cannot use eth0:1 in iptables nor iproute2, so do not even think of eth0:1 being an interface on its own.
Similarly, you cannot set flags on these “interfaces”.
И еще несколько причин, по которым его использовать не стоит. В некоторых дистрибутивах net-tools (ifconfig, route, arp, netstat) уже не поставляется.
Вам шашечки или ехать?
Утилита ifconfig используется во всех UNIX-like OS… и я привык её в них использовать на протяжении многих лет. Можно, я буду использовать то, что мне, любимому, ближе?
Мы обсуждать станем в комментариях предмет того, о чём пишется в статье… или о том, что вы хорошо знаете утилиту ip из iproute2?
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Виртуальный сетевой интерфейс