задача такая, есть роутер на базе freebsd 6.1
на нем два интерфейса, rl0 - внешний и rl1 внутренний.
внутренняя сеть 192.168.0.0/24 - подключена к rl1
rl0 - реальный ip 80.80.80.80
локальная сеть работает в интернет через natd маскараднужно сделать так что бы rl0 имел два ip один реальны 80.80.80.80 второй серый 192.168.1.1 для доступа к роутеру из домашней сети 192.168.1.0/24.
локальная сеть работала с домашней без маскарада, а из домашней сети был доступ к внутреннему серверу 192.168.0.5 через port redirectкак это можно организовать, нужно ли запускать несколько natd?
ткните носом если есть статья с подобными настройками, я не нашел.
>rl0 - внешний и rl1 внутренний.
>внутренняя сеть 192.168.0.0/24 - подключена к rl1
>rl0 - реальный ip 80.80.80.80
>локальная сеть работает в интернет через natd маскарад
>
>нужно сделать так что бы rl0 имел два ip один реальны 80.80.80.80
>второй серый 192.168.1.1 для доступа к роутеру из домашней сети 192.168.1.0/24.
>
>локальная сеть работала с домашней без маскарада, а из домашней сети был
>доступ к внутреннему серверу 192.168.0.5 через port redirectКуда подключена "домашняя сеть"? Конкретно пожалуйста. А то создается впечатление, что она подключена вместе с Fbsd к внешнему каналу (иначе зачем хотеть клеить внутренний адрес к внешнему интерфейсу?).
>>rl0 - внешний и rl1 внутренний.
>>внутренняя сеть 192.168.0.0/24 - подключена к rl1
>>rl0 - реальный ip 80.80.80.80
>>локальная сеть работает в интернет через natd маскарад
>>
>>нужно сделать так что бы rl0 имел два ip один реальны 80.80.80.80
>>второй серый 192.168.1.1 для доступа к роутеру из домашней сети 192.168.1.0/24.
>>
>>локальная сеть работала с домашней без маскарада, а из домашней сети был
>>доступ к внутреннему серверу 192.168.0.5 через port redirect
>
>Куда подключена "домашняя сеть"? Конкретно пожалуйста. А то создается впечатление, что она
>подключена вместе с Fbsd к внешнему каналу (иначе зачем хотеть клеить
>внутренний адрес к внешнему интерфейсу?).internet
|
|
биллинг домашней сети
|
|
+-----------------+
| домашняя сеть |
| |
| |
+-----------------+
|
|
rl0
freebsd
rl1
|
|
+----------------------+
| внутренняя локальная |
| сеть |
+----------------------+
>
>нужно сделать так что бы rl0 имел два ip один реальны 80.80.80.80
>второй серый 192.168.1.1 для доступа к роутеру из домашней сети 192.168.1.0/24.
>
>как это можно организовать, нужно ли запускать несколько natd?
>ткните носом если есть статья с подобными настройками, я не нашел.
Тут надо ткнуть носом в ликбез по работе NAT и косвенной маршрутизации IP. Основы! :)Но тыкать носом, не наша задача.
Я не понимаю, зачем на rl0 внешний интерфейс, но раз такова задача:
# ifconfig rl0 inet 192.168.1.1 netmask 0xffffff00
# ifconfig rl0 inet 80.80.80.80 netmask 0xffff???? aliasВ этой части задачи я смысл уловить не могу, но предположения судя по схеме см. ниже:
>локальная сеть работала с домашней без маскарада, а из домашней сети был
>доступ к внутреннему серверу 192.168.0.5 через port redirect
Если локальная сеть (192.168.0.0/24) подключенная к rl1 должна работать с домашней (192.168.1.0/24) в обход nat, и при этом нужен доступ к серверу 192.168.0.5 из домашней сети - убери nat и разреши косвенную маршрутизацию из одной сети в другую. Нахера нужен redirect_port?В /etc/rc.conf:
gateway_enable=yesВ правилах ipfw:
allow ip from 192.168.1.0/24 to 192.168.0.5
allow ip from 192.168.0.5 to 192.168.1.0/24
Или ЧТО конкретно ты хочешь разрешить?
а можно как то сделать что бы нат для 192.168.0.0/24 срабатывал только когда пользователь обращается к адресам не относящимся к домашней сети, тоесть в интернет? в домашней сети несколько подсетей, допустим 192.168.1.0/24 и 192.168.2.0/24.
>а можно как то сделать что бы нат для 192.168.0.0/24 срабатывал только
>когда пользователь обращается к адресам не относящимся к домашней сети, тоесть
>в интернет? в домашней сети несколько подсетей, допустим 192.168.1.0/24 и 192.168.2.0/24.
>
Вместо
divert natd all from any to any via ${oif}
пиши
divert natd all from 192.168.0.0/16 to not 192.168.0.0/16 via ${oif}
divert natd all from not 192.168.0.0/16 to 192.168.0.0/16 via ${oif}