Страница 1 из 1

FreeBSD 7.2 + kernel nat

Добавлено: 2009-10-07 13:39:56
Biggless
Вышестоящий пров выдал приблизительно следующую следующую информацию:

1.2.3.4 - шлюз
1.2.3.5 - наш роутер

6.7.8.9, 6.7.8.10 - наши внешние айпишники.
Пров пропускает только трафик, занатенный на один из внешних айпишников.

Есть:
для выхода в инет из нашей подсети 10.10.1.1/24 трафик завернут натом на 6.7.8.9, все работает.

Хочется:
при обращении к tcp 6.7.8.10:22 трафик попадал на роутер 1.2.3.5:22 (10.10.1.1:22)
при обращении к tcp 6.7.8.10:23 трафик попадал на хост 10.10.1.17:22
при обращении к tcp 6.7.8.10:80 трафик попадал на хост 10.10.1.3:80
при обращении к udp 6.7.8.10:21000 трафик попадал на хост 10.10.1.17:21000
(по аналогии список продолжается)
чтобы роутер (1.2.3.5, 10.10.1.1) ходил в инет

Кто что подскажет?

Re: FreeBSD 7.2 + kernel nat

Добавлено: 2009-10-07 14:04:23
skeletor
Читай про redirect_port вот здесь http://www.lissyara.su/?id=1967

Re: FreeBSD 7.2 + kernel nat

Добавлено: 2009-10-07 15:39:59
Biggless
а как роутер в инет выпустить при таких условиях?

Re: FreeBSD 7.2 + kernel nat

Добавлено: 2009-10-07 16:48:28
skeletor
Не понял вопрос :cz2:

Re: FreeBSD 7.2 + kernel nat

Добавлено: 2009-10-08 10:33:28
Biggless
Вышестоящий провайдер пропускает только занатенные пакеты.
Как завернуть трафик от самого сервера в нат?

Re: FreeBSD 7.2 + kernel nat

Добавлено: 2009-10-09 11:27:26
skeletor
Biggless писал(а):Вышестоящий провайдер пропускает только занатенные пакеты.
Как завернуть трафик от самого сервера в нат?
Поднять на сервере NAT.

Re: FreeBSD 7.2 + kernel nat

Добавлено: 2009-10-13 18:05:22
Fioktist
собири ядро с #обязательно для ядерного нат

Код: Выделить всё

####    main rule
options         IPFIREWALL
options         IPFIREWALL_VERBOSE
options         IPFIREWALL_VERBOSE_LIMIT=150
options         IPFIREWALL_NAT #обязательно для ядерного нат
options         LIBALIAS #обязательно для ядерного нат
options         IPFIREWALL_FORWARD
options         IPDIVERT
options         DUMMYNET
options         HZ=1000
####    end main rule

Код: Выделить всё

#cat /root/ipfw.sh
#!/bin/sh

ipfw="/sbin/ipfw -q"

ethHome="xl2"
ethGT="xl1"
ethMA="xl0"

ipHOME="192.168.255.1"
ipGT="10.104.4.14"
ipMA="10.11.36.1"

DomNet="192.168.255.0/28"
GtNet="10.104.4.0/24"
MaNet="10.11.0.0/16"

# сбрасываем все правила
${ipfw} -f flush
# сбрасываем все pipe
${ipfw} -f pipe flush
# сбрасываем очереди
${ipfw} -f queue flush

${ipfw} add 200 allow all from any to any via lo0
${ipfw} add 210 deny ip from any to 127.0.0.0/8
${ipfw} add 220 deny ip from 127.0.0.0/8 to any

# Делаем NAT (трансляцию сетевых адресов)
${ipfw} nat 8 config ip ${ipGT}
${ipfw} nat 9 config ip ${ipMA}
${ipfw} add 1020 nat 8 ip from ${DomNet} to any out via ${ethGT}
${ipfw} add 1030 nat 8 ip from any to ${ipGT} in via ${ethGT}
${ipfw} add 1040 nat 9 ip from ${DomNet} to any out via ${ethMA}
${ipfw} add 1050 nat 9 ip from any to ${ipMA} in via ${ethMA}

# запрещаем всё и всем.
${ipfw} add 4000 deny ip from any to any
это обрезанный лист на домашнем gw через который выхожу в две разные деревенские локалки, на форуме полно примеров с мульти натингом...
хотябы тут почитай

да вот еще gw по умолчанию в /etc/rc.conf стоит в ту локалку куда я чаще забредаю да и где публики побольше, а на менее юзаемую локалку написал в /usr/local/etc/rc.d/add_route.sh статические роуты, чтото около 20 строк