Яка різниця між ланцюгами OUTPUT і FORWARD в iptables?


22

CentOS 6.0

Я вивчаю iptables і заплутаюся в різниці між ланцюгами FORWARD та OUTPUT. У моїй навчальній документації зазначено:

Якщо ви додаєте до (-A) або видаляєте з (-D) ланцюга, вам потрібно застосувати його до мережевих даних, що подорожують в одному з трьох напрямків:

  • ВХОД - Всі вхідні пакети перевіряються відповідно до правил цього ланцюга.
  • ВИХІД - Усі вихідні пакети перевіряються відповідно до правил цього ланцюга.
  • НАПЕРЕД - Всі пакети, що надсилаються на інший комп'ютер, перевіряються відповідно до правил цього ланцюга.

Це мене бентежить, бо, на мій погляд, пакети, що виходять для хоста, БУДУТЬ вихідними. Тож існують сценарії, коли пакет збирається на інший комп'ютер, але НЕ буде "вихідним"? Як би iptables розрізняв це два?

Відповіді:


26

OUTPUT призначений для пакетів, які випускає хост. Зазвичай їх призначення - це інший хост, але він може бути тим самим хостом через інтерфейс зворотного зв'язку, тому не всі пакети, які проходять через вихідний сигнал, насправді є вихідними.

FORWARD призначений для пакетів, які хост не випускає і не спрямовує на хост. Вони є пакетами, які хост просто маршрутизує.

Коли ви почнете копатись в обробці пакетів та NAT, повна історія є досить складною .


Цікаво ... тож з метою мого розуміння, чи справедливо сказати, що OUTPUT призначений для пакетів, які "походять" із системи ... а FORWARD - для пакетів, які не походять із системи або призначені для це і натомість переходить "через" систему?
Майк Б

1
Не зовсім, пакети, які "пересилаються", також "виводяться" через мережевий інтерфейс. Так само, як пакети "вводяться" перед тим, як їх "переслати". Пакет входить, призначений для іноземної системи, пакет входить в ланцюг "вперед" , iptables вирішує все гаразд переслати, пакет входить у "ланцюг виводу", iptables перевіряє, бачте його "нормально" для виведення, пакет залишає .. симпли!
Grizly

2
@Grizly Ні, з пам'яті (я визнаю, що я не перевіряв спеціально, коли писав цю відповідь), і відповідно до діаграми, на яку я посилаюсь, пакет завжди проходить саме через одну з трьох filterланцюгів ( INPUTабо OUTPUTабо FORWARD). (Передбачається , що деякі інші ланцюга не впустити його до того ) . В mangleі natланцюгах різні, може бути , ви думали про mangleланцюга?
Жил "ТАК - перестань бути злим"

0

Наскільки я розумію:

ВХОД: dst IP знаходиться на хості, навіть у нього є кілька портів з декількома підмережами

ВИХІД: src IP знаходиться від хоста, або будь-якого порту

Вперед: Ні dst IP на хості, ні src IP від ​​хоста

введіть тут опис зображення

Наприклад, для маршрутизатора A

INPUT - це:

192.168.10.1 -> 192.168.10.199

192.168.10.1 -> 192.168.2.1

ВИХІД:

192.168.10.199 -> ххх

192.168.2.1 -> ххх

НАПЕРЕД:

192.168.10.1 -> 192.168.2.199

192.168.10.1 -> 192.168.8.1

192.168.10.1 -> 192.168.8.199

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.