В продолжение темы:
Мост и шлюз одновременно, на FreeBSD natd+bridge+ipfw
http://www.opennet.dev/openforum/vsluhforumID1/24573.htmlРылся поиском, но простого решения не нашел.
Предлагаю свой вариант. В данный момент работает.
провайдер выделил подсеть xxx.xxx.xxx.33:255.255.255.224
Есть локалка с "серыми адресами" 192.168.210.1/24
Нужно иметь реальные ip в локальной сети за шлюзом.
При этом полностью контролировать трафик.
Выделеная подсеть разбита на две.
с масками xxx.xxx.xxx.33:255.255.255.252 и xxx.xxx.xxx.49:255.255.255.240
стоит комп с 3 сетевухами и FreeBSD 6.0
eth0 - xxx.xxx.xxx.34:255.255.255.252 из первой подсети - подключен к провайдеру (как опция: подключаю через хаб доверенные компы с онлайн сервисами xxx.xxx.xxx.35-47 с маской 255.255.255.240 для них контроль трафика мне не нужен)
eth1 - xxx.xxx.xxx.49:255.255.255.240 из второй подсети - Смотрит в локалку, является шлюзом для реальных ip в локалке
eth2 - 192.168.210.1:255.255.255.0 - Смотрит в локалку, является шлюзом для всех серых ip
eth1 и eth2 включены в один свич.
Кернел скомпилен с опциями:
options TCP_DROP_SYNFIN
options IPFIREWALL
options IPFIREWALL_VERBOSE
options IPFIREWALL_FORWARD
options DUMMYNET
options IPFIREWALL_VERBOSE_LIMIT=10
options IPDIVERT
Запущен NAT c ключами
-n eth0 -p natd -unregistered_only -redirect_address 192.168.210.1 xxx.xxx.xxx.34"
Ну и естественно, IPFW
правила приводить не буду он у меня хитро....ый
Кроме этого в rc.conf
defaultrouter="xxx.xxx.xxx.33" - шлюз к провайдеру.
gateway_enable="YES"
router_enable="YES"
router_flags="-q"
arpproxy_all="YES"
forward_sourceroute="YES"
accept_sourceroute="YES"
Вот в принципе и все.
Может я чего и лишнего понавключал, но это РАБОТАЕТ!
трафик идет из локалки на сервак через два разных интерфейса.
На серваке трафик обрабатывается биллингом, антивирусом, режется фаерволом, фиксится статическим arpом
И все это общается с провайдером через один интерфейс eth0.