У нас есть 2 разных интернет-провайдера. Наш предыдущий «айтишник» настроил наш брандмауэр следующим образом:
когда /etc/rc.local
был выполнен при запуске, он сделал кучу ip rule add
и ip route add
команды для маршрутизации определенных внутренних хостов для использования определенных соединений ISP.
Тогда в конце /etc/rc.local
, он выполнил наши iptables
правила брандмауэра, которые были созданы Firewall Builder
. Эти iptables
В правилах установлены правила политики и NAT.
Я не понимаю, почему он использовал iproute2
для указания правил и маршрутов, но также для указания правил NAT для iptables
? Почему он просто не сделал все в одном или другом вместо того, чтобы использовать их обоих? Мог ли он избавиться от iproute2
правила и маршруты и просто поместите все те же правила в iptables
Настройки NAT?
Хотя функциональность этих двух инструментов частично совпадает, многое можно сделать только с помощью одного из них. iproute2
не может ничего сделать с правилами брандмауэра netfilter. iptables
не может делать такие вещи, как назначение IP-адресов.
Даже в тех местах, где функциональность кажется частично совпадающей, она не перекрывается. Например, вы можете выполнить перевод адресов с помощью обоих iproute2
и iptables
. Но преобразование адресов, которое вы можете сделать с помощью iproute, не принимает во внимание какое-либо состояние и абсолютно не перезаписывает пакет. Существует несколько сетевых протоколов, таких как FTP, SIP, H.323 и т. Д., Где IP-адреса включены в пакет, а не только в заголовки. Если вы используете метод iproute для трансляции адресов, эти типы протоколов будут нарушены. Netfilter намного лучше справляется с преобразованием адресов.
В большинстве случаев, когда функциональные возможности частично совпадают, они обрабатываются по-разному. Возможно с помощью модуля сделать маршрутизацию с iptables
, но в прошлый раз я проверил, что в большинстве дистрибутивов модуля нет, чтобы не было netfilter /iptables
пропатчен МАРШРУТ цель. Если эта цель недоступна, вы не можете использовать netfilter для маршрутизации, если только вы не настроены компилировать свои собственные ядра. Ваше решение о том, какой инструмент использовать, будет принято просто потому, что эта функция недоступна в версии инструментов, которые вы используете. Даже если у вас есть цель ROUTE, насколько я понимаю, использовать netfilter для принятия решений о маршрутизации не так эффективно, как выполнять маршрутизацию со стандартными таблицами маршрутизации с iproute2
манипулирует.
Многие из них также используют правильный инструмент для правильной работы. iproute2
в первую очередь предназначен для управления маршрутизацией и адресами на вашем компьютере. iptables
/ Netfilter создан для брандмауэра.
Я думаю, что там, где человек может использовать любой из инструментов, он обычно использует тот инструмент, с которым он наиболее знаком. Я знаю, что использую цель MARK iptables
чтобы пометить некоторые пакеты для того или иного маршрута, хотя я мог бы написать то же правило с iproute2
.