PDA

Показать полную графическую версию : Перенаправление портов в локальной сети


nghst
11-11-2009, 10:25
Добрый день.
Можно ли как нибудь сделать следующее:
Есть машина с FreeBSD 6.4
ИП адрес интерфейса 10.64.1.249/24
ИП адрес алиаса интерфейса 10.64.1.135/24
Нужно чтобы при обращении к 10.64.1.135:3128 трафик перенаправлялся на 10.64.1.100:3128

WhitePangolin
11-11-2009, 11:46
ipfw add fwd 10.64.1.100 ip from any to 10.64.1.135 dst-port 3128

nghst
12-11-2009, 09:03
Не работает так(

[root@nsk-FBSD /usr/src]# ipfw flush
Are you sure? [yn] y

Flushed all rules.
[root@FBSD /usr/src]# ipfw add 10 fwd 10.64.1.130,80 tcp from any to 10.64.1.248 dst-port 80
00010 fwd 10.64.1.130,80 tcp from any to 10.64.1.248 dst-port 80
[root@FBSD /usr/src]# ipfw show
00010 0 0 fwd 10.64.1.130,80 tcp from any to 10.64.1.248 dst-port 80
65535 9701 976408 allow ip from any to any
[root@FBSD /usr/src]# ipfw show
00010 6 288 fwd 10.64.1.130,80 tcp from any to 10.64.1.248 dst-port 80
65535 9825 992773 allow ip from any to any

На 80 порт 10.64.1.248 не заходит, на 10.64.1.130 по 80 порту зайти можно.
Настройки из rc.conf

# added by xorg-libraries port
defaultrouter="10.64.1.1"
gateway_enable="YES"
hostname="FBSD"
ifconfig_em0="inet 10.64.1.249 netmask 255.255.255.0"
ifconfig_em0_alias0="inet 10.64.1.248 netmask 255.255.255.255"
inetd_enable="YES"
keymap="ru.koi8-r"
linux_enable="YES"
local_startup="/usr/local/etc/rc.d"
nfs_client_enable="YES"
nfs_server_enable="YES"
rpcbind_enable="YES"
sshd_enable="YES"
usbd_enable="YES"

######
firewall_enable="YES"
natd_enable="YES"
natd_interface="em0"
gateway_enable="YES"

Здесь http://www.unixfaq.ru/index.pl?req=qs&id=507 нашел информацию, возможно устаревшую для 6.4 версии, что если ipfw fwd не работает для адресов в той же сети нужно в конфиг ядра добавить строку
options IPFIREWALL_FORWARD_EXTENDED
Но ядро компилиться с такой строчкой отказывается

[root@FBSD /usr/src]# make kernel KERNCONF=FBSD

--------------------------------------------------------------
>>> Kernel build for FBSD started on Thu Nov 12 18:36:54 NOVT 2009
--------------------------------------------------------------
===> FBSD
mkdir -p /usr/obj/usr/src/sys

--------------------------------------------------------------
>>> stage 1: configuring the kernel
--------------------------------------------------------------
cd /usr/src/sys/i386/conf; PATH=/usr/obj/usr/src/tmp/legacy/usr/sbin:/usr/obj/usr/src/tmp/legacy/usr/bin:/usr/obj/usr/src/tmp/legacy/usr/games:/usr/obj/usr/src/tmp/usr/sbin:/usr/obj/usr/src/tmp/usr/bin:/usr/obj/usr/src/tmp/usr/games:/sbin:/bin:/usr/sbin:/usr/bin config -d /usr/obj/usr/src/sys/FBSD /usr/src/sys/i386/conf/FBSD
/usr/src/sys/i386/conf/FBSD: unknown option "IPFIREWALL_FORWARD_EXTENDED"
*** Error code 1

Stop in /usr/src.
*** Error code 1

Stop in /usr/src.


Что я упускаю?(

Keitaro
12-11-2009, 11:20
nghst,
У вас путаница в сообщениях с IP адресами, 10.64.1.249, 10.64.1.135, 10.64.1.248, 10.64.1.130

А вообще ошибка в маске.

ИП адрес интерфейса 10.64.1.249/24
ИП адрес алиаса интерфейса 10.64.1.135/24


ifconfig_em0="inet 10.64.1.249 netmask 255.255.255.0"
ifconfig_em0_alias0="inet 10.64.1.248 netmask 255.255.255.255"

nghst
12-11-2009, 12:09
У алиаса вроде маска /32 должна быть, если и интерфейс и алиас из одной подсети.
В любом случае, я пробывал форвардить и с 10.64.1.249, результат такой же.

Keitaro
12-11-2009, 12:23
nghst,
У алиаса вроде маска /32 должна быть, если и интерфейс и алиас из одной подсети.
нет
у вас вполне сработает

ifconfig_em0="inet 10.64.1.249 netmask 255.255.255.0"
ifconfig_em0_alias0="inet 10.64.1.248 netmask 255.255.255.0"

WhitePangolin
12-11-2009, 17:06
что если ipfw fwd не работает для адресов в той же сети нужно в конфиг ядра добавить строку

options IPFIREWALL_FORWARD_EXTENDED

Но ядро компилиться с такой строчкой отказывается »
начиная с 7й ветки поправили.

у вас вполне сработает

ifconfig_em0="inet 10.64.1.249 netmask 255.255.255.0"
ifconfig_em0_alias0="inet 10.64.1.248 netmask 255.255.255.0" »
+1

sergey1234567
12-11-2009, 17:33
Да поправили options IPFIREWALL_FORWARD_EXTENDED - нема такой опции:) Осталось IPFIREWALL_FORWARD :)

nghst
13-11-2009, 06:52
Это не помогает:
ifconfig_em0="inet 10.64.1.249 netmask 255.255.255.0"
ifconfig_em0_alias0="inet 10.64.1.248 netmask 255.255.255.0"
Редирект не работает и с 10.64.1.249, алиас тут не причем(
Комп с FreeBSD нигде не указан как шлюз, может быть в этом дело?

Keitaro
17-11-2009, 16:46
nghst,
К сожалению давно не ковырялся с Фрей.
Опишите ситуацию подробнее, вполне может быть дело еще в чем-то.
В чем выражается Редирект не работает и с 10.64.1.249 » ? Ваше ПО выдает ошибку?

Какая программа у вас слушает 10.64.1.249:80 (если апач, то проверте настройки апача)?

Включите лог фаервола и посмотрите проходит ли запрос через фаервол.
Если обращение к апачу - посмотрите логи апача.

Комп с FreeBSD нигде не указан как шлюз, может быть в этом дело? »
Не, вы же на прямую обращаетесь к нему.

Если у вас получается зайти на один ИП адрес, а форвард не срабатывает, при заходе на другой, то имхо стоит глянуть конфиг апача.

Возможно апач у вас считает что 10.64.1.248 - это один сайт (соответсвенно он у вас прописан в конфиге), а 10.64.1.249 - другой (описания которого в конфиге апача нет). Сейчас точно не вспомню, но кажется конфиг апача такое предусматривает. Также в конфиге апача была строка на каком интерфейсе, какой ип и порт слушать. В любом случае, проверте конфиги программы, которая у вас должна слушать 10.64.1.249:80




© OSzone.net 2001-2012