|
|
ru.unix- RU.UNIX ---------------------------------------------------------------------- From : Aleksey Kotov 2:5020/1042.32 15 Jun 2005 02:29:18 To : Eugeny Dzhurinsky Subject : natd? -------------------------------------------------------------------------------- ED> есть компьютер с FreeBSD 4.11 ED> на нем стоит две карточки с интерфейсами соответственно rl0 и rl1 ED> на rl0 висит 10.0.1.1 и к нему подключены две машины 10.0.1.2 и ED> 10.0.1.3 на внешнем интерфейсе белый адрес ED> делаю ipfw add 10 divert 8668 ip from 10.0.1.0/24 to any via rl1 (1) ED> стартую /sbin/natd -n rl1 ED> не работает ED> делаю ipfw add 10 divert 8668 ip from any to any via rl1 (2) ED> работает ED> оно как бы и хорошо, что работает, но хотелось бы завернуть только ED> 10-ю сетку, а не все сразу. Ответ для самых внимательных сусликов... Hа самом деле это все работает немножко иначе, но чтобы представлять этот процесс образно - лучше думать о нем таким образом: Когда пакет из подсетки 10.0.1.0/24 идет на улицу -он идет туда будучи переслан ядром по таблице роутинга, и на пролете от ядра к внешней сетевой карте перехватывается файрволом, который по правилу (1) пихает его в нат. Hат создает для этого пакета таблицу соответствия в которой запоминает параметры исходящего пакета и параметры пакета который пойдет на улицу. И отдает этот новый пакет сетевой карте. Когда с улицы приходит пакет, сетевушка шлет его в ядро которое должно проверить его по таблице роутинга и решить что с ним делать дальше, пихать в сокет к серверу или форвардить дальше...но на пролете от сетевушки к ядру пакет перехватывается файрволом и тот видит что по правилу (1) - обрабатываеть его не нужно. Hе подходит этот пакет под это правило. Соответственно пакет в нат - не попадает и убивается ядром. Hе ответил за наколочку - был похоронен.. :) Пакет этот - имел исходящим - какой-то произвольный адрес в инете, адресом назначения - адрес твоей белой сетевушки. И этот пакет нужно поймать и пихануть в нат где ему есть соответствующая строка с таблице соответствия. Поэтому строка (2) - правильная. В конфиге ната есть опция, описание которой тебе нужно внимательно прочитать: "убивать пакеты для которых нет соответсвия в таблице". --- -=*=-_______________________________________________Aleksey Kotov * Origin: (2:5020/1042.32) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.unix/1775542af5f22.html, оценка из 5, голосов 10
|