Много воды и непонимание сути:никакой метаинформации в пакетах нет,- все эти in_recv, src-ip 10.10.10.1 и т.д.,- это скорее условие, указывающее ipfw к каким пакетам данное правило применяется. Т.е, Вы создаёте набор правил для пакетов, наложив условие на каждый пакет. Правило будет применяться только к тем пакетам, которые удовлетворяют условию. Если пакет не удовлетворяет условию,- он попросту проходит в следующее правило. Если удовлетворяет,- применяется действие (allow, deny) и обработка пакета прекращается. Но, после natd пакет попадает в следующее правило.
Таким образом пакет проходит весь список правил до первого "сработавшего" и попадает на обработку на более высокий уровень, в приложение, работающее на этом компьютере.
Приложением может быть как непосредственно запущенная пользовательская программа, работающая с сетью, так и демон маршрутизации, например, если он запущен. Во стором случае, пакет будет передан на другой интерфейс, где на выходе из ${external_interface} ещё раз пройдёт по всем правилам, условиям которых будет удовлетворять.
Собственно, всё это написано в man ipfw