Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Общий по FreeBSD (http://forum.oszone.net/forumdisplay.php?f=10)
-   -   Перенаправление портов в локальной сети (http://forum.oszone.net/showthread.php?t=156670)

nghst 11-11-2009 10:25 1267314

Перенаправление портов в локальной сети
 
Добрый день.
Можно ли как нибудь сделать следующее:
Есть машина с 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 1267358

Код:

ipfw add fwd 10.64.1.100 ip from any to 10.64.1.135 dst-port 3128

nghst 12-11-2009 09:03 1268181

Не работает так(
Код:

[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 1268264

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 1268286

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

Keitaro 12-11-2009 12:23 1268294

nghst,
Цитата:

Цитата 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 1268527

Цитата:

Цитата nghst
что если ipfw fwd не работает для адресов в той же сети нужно в конфиг ядра добавить строку
Код:

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

начиная с 7й ветки поправили.

Цитата:

Цитата Keitaro
у вас вполне сработает
Код:

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 1268566

Да поправили options IPFIREWALL_FORWARD_EXTENDED - нема такой опции:) Осталось IPFIREWALL_FORWARD :)

nghst 13-11-2009 06:52 1269003

Это не помогает:
Код:

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 1272711

nghst,
К сожалению давно не ковырялся с Фрей.
Опишите ситуацию подробнее, вполне может быть дело еще в чем-то.
В чем выражается
Цитата:

Цитата nghst
Редирект не работает и с 10.64.1.249 »

? Ваше ПО выдает ошибку?

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

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

Цитата:

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

Не, вы же на прямую обращаетесь к нему.

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

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


Время: 00:10.

Время: 00:10.
© OSzone.net 2001-