FreeBSD 10.0 RELEASE и проблемы с ip forwarding

    В механизмах работы с IP стеком v4 в новом релизе FreeBSD 10.0 было внесено много изменений.
    В том числе был изменен механизм ip fordwarding. В частности была убрана опция ядра options IPFIREWALL_FORWARD о чем написано в updates к релизу. Теперь этот функционал включен постоянно и надобность такой опции просто отпала. Но есть маленький нюанс.

    Суть его заключена в следующем — если используются ipfw правила то все работает кроме одного но часто используемого случая.
    ipfw fwd X.X.X.X all from A.A.A.A to B.B.B.B. Условие проявления ошибки — исходный пакет по правилам роутинга должен уйти на интерфейс int_1 а адрес X.X.X.X находиться за другим интерфейсом int_2.


    Правило ipfw fwd X.X.X.X отправляет пакеты в /dev/null в ситуации когда Х.Х.Х.Х находиться на другом интерфейсе, чем исходный пакет
    Подобные правила часто используются для организации параллельных физических каналов для дублирования или для организации разных маршрутов на основании адреса-источника пакетов.
    В лог пакет попадает но на выходном интерфейсе его нет.
    Как выяснилось эта проблема проявлялась и у других людей. Тут приведен и способ решения проблемы. Добавление одной пропущенной строки решает вопрос в текущем релизе. После пересборки ядра правила ведут себя предсказуемо и работают, хотя в промышленном варианте пока это запускать рано — проверку на корректность в других местах я еще не завершил.
    Достаточно интересно что материала про эту проблему очень мало и когда я наткнулся на такое поведение ipfw даже не сразу понял что происходит.

    PS. В некоторых случаях я наблюдаю задвоение исходящих пакетов, прошедших через правило ipfw fwd, что в общем то не приносит вреда — но все равно поведение странное. Особенно из-за того что задвоение именно иногда. Пока логики не обнаружил.

    PPS. Встретил также рекомендацию обновиться до 10.0.Stable где эта ошибка стека IP исправлена. Но релиз — все таки релиз. А динамичная версия «в разработке» — явно не то что годиться для работы. Ну и вывод — к сожалению 10-ка пока не рекомендуется к промышленной эксплуатации… Что очень жаль.
    • +11
    • 18.2k
    • 6
    Share post
    AdBlock has stolen the banner, but banners are not teeth — they will be back

    More
    Ads

    Comments 6

      0
      До чего ж я в такие моменты люблю RHEL. Динозавр динозавром, но работает. Почти всегда.
        +2
        Не путайте stable с snapshot. Вам правильно советуют — stable как раз является тем, что правильно и нужно использовать в работе. А не застывать на релизе и держаться за него до следующего релиза.

        Но к релизам x.0 всегда нужно относиться с осторожностью, все верно.
          0
          возможно я что-то не правильно понимаю но всегда считал STABLE — это последняя из стабильных версий «в разработке». т.е грубо говоря это самый последний вариант который считается работающим. но в него постоянно вносят изменения не только по найденным ошибкам но и вносимым обновлениям\фичам. а перекомпиливать ядро раз в неделю — это мазохизм. к тому же это значит что внесение изменений в ядро в любой момент может задеть что то еще — от пересборки мира до отключения\изменения смысла некоторых опция ядра\компиляции\чего то еще.
          RELEASE это нечто уже отсеченное от изменений где допускаются только патчи для удаления багов. Исправьте меня если я неправ
            +1
            В разработке — CURRENT
            STABLE — это версия, которой можно пользоваться (грубо говоря — промежуточные x.y.z для LTS-релизов той же бубунты)
            RELEASE — это, собственно, релиз
          0
          Можете попробовать обойти вогнав сеть в netmap VALE и запустив userspace ipfw.
          Бонус — скорость намного выше и пропускная способность тоже.
          Минус — возможен паник.
            0
            никогда не пробовал этой технологии… если Вы можете поделиться опытом запуска \ експлуатации \ настройки netmap VALE очень бы
            хотел выслушать — в личной почте, в отдельной статье, или даже в комментах здесь если это не очень объемный материал.
            Ну или по результатам личной переписки поставлю опыты на «специально выделенных кошках» и сделаем адекватную статью по использованию.

          Only users with full accounts can post comments. Log in, please.