
В чем разница между этими двумя инструментами?
Может ли кто-нибудь рассказать, каков основной рабочий процесс сети в Linux (в отношении фильтрации пакетов IPv4, NAT и таблицы маршрутизации IP)?
решение1
route
— это команда, которая отображает, добавляет и удаляет записи из таблицы маршрутизации TCP/IP ядра (также известной как «База информации о пересылке»).
iptables
это команда, которая отображает, добавляет и удаляет записи из Netfilter, подсистемы фильтрации и управления пакетами ядра Linux. Она обрабатывает NAT.
Поскольку IP-пересылка, т. е. маршрутизация, по сути, представляет собой перезапись пакета с другим адресом источника и отправку его через другой сетевой интерфейс, я считаю, что технически можно реализовать статическую маршрутизацию с помощью соответствующих iptables
правил в mangle
таблице, но я считаю, что, как правило, быстрее всего доверить это части ядра, отвечающей за маршрутизацию.
Существует множество диаграмм, которые точно иллюстрируют, как пакет TCP/IP проходит через ядро (включая Netfilter и средство маршрутизации), вот пример:http://www.adminsehow.com/2011/09/iptables-packet-traverse-map/