URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 17596
[ Назад ]

Исходное сообщение
"ПОМОГИТЕ настроить NAT"

Отправлено rex , 06-Июн-02 10:39 
ПОМОГИТЕ НАСТРОИТЬ NAT на FreeBSD!!!!!!!

Ситуация следующая:

193.168.8.1-[193.168.8.231-172.16.10.1]-172.16.10.2

В [ ] - адреса моей машины
192.168.8.1 - интернетный шлюз
193.168.8.231 - реальный адрес (смотрит с моей машины в инет), интерфейс xl0
172.16.10.1 - смотрит с моей машины в сеть, интерфейс rl0
172.16.10.2 - пользовательская машина (со шлюзом соответственно 172.16.10.1)

Что было сделано:
1. В стандартное я дро я добавил следующие опции:
   options IPFIREWALL
   options IPFIREWALL_VERBOSE
   options IPFIREWALL_VERBOSE_LIMIT=10
   options TCP_DROP_SYNFIN
   options IPDIVERT
Отключил опцию IPv6.
Пересобрал ядро и начал настройку.

2. В файле /etc/rc.firewall создал свой скрипт и записал в него следующее
   ${fwcmd} add divert natd ip from 172.16.10.1/10 to any out via xl0
   ${fwcmd} add divert natd ip from any to 193.168.8.231 in via xl0
   ${fwcmd} add pass all from any to any via rl0
   (скрипт работает, ipfw l выдаёт желаемый разультат)
3. Создал файл /usr/local/etc/rc.d/natd.sh, сделал его загрузочным (755).
Содержание файла:
    #!/bin/sh
    /sbin/natd -f /etc/natd.conf -n xl0
(знаю что можно и через флаги, но пока сделал так)

4. Создал файл /etc/natd.conf
Содержание файла:
    use_sockets yes same_ports yes
5. И наконец поправил /etc/rc.conf
Настройки следующие:
    ifconfig_xl0="inet 193.168.8.231 netmask 255.255.255.0"
    ifconfig_rl0="inet 172.16.10.1 netmask 255.255.255.0"
    inetd_enable="YES"
    kern_securelevel_enable="NO"
    firewall_enable="YES"
    firewall_script="/etc/rc.firewall"
    firewall_type="mytype"
    firewall_quiet="no"
    firewall_flags=""
    natd_program="/sbin/natd"
    natd_enable="YES" (ставил и NO)
    tcp_extension="NO"
    tcp_drop_synfin="YES"
    icmp_drop_redirect="NO"
    icmp_log_redirect="YES"
    defaultrouter="193.168.8.1"
Вроде все касаемые настройки.

6. По идее после перезагрузки всё должно заработать, но ничего не работает.
   ping со 172.16.10.2 доходит до 172.16.0.1 и до 193.168.8.231, но дальше не идёт,
   т.е. я не могу пингануть шлюз 192.168.8.1 (по моему он туда уходит, но обратно никак).

   С BSD машины всё пингуется (и шлюз, и DNS сервера) и прекрасно работает.
   Итог - не работает NAT.

   P.S. пытался делать всё настройками man nat, безрезультатно (всё тоже самое).
Создаётся впечатление что нат кто-то глушит, хотя свою криворукость не исключаю, я
только начинаю изучать BSD (хотя и ковырялся с линюхом).

Очень прошу поделиться Вашими идеями по этому поводу! Заранее спасибо!



Содержание

Сообщения в этом обсуждении
"RE: ПОМОГИТЕ настроить NAT"
Отправлено Nightman , 06-Июн-02 10:53 
>ПОМОГИТЕ НАСТРОИТЬ NAT на FreeBSD!!!!!!!
>
>Ситуация следующая:
>
>193.168.8.1-[193.168.8.231-172.16.10.1]-172.16.10.2
>
>В [ ] - адреса моей машины
>192.168.8.1 - интернетный шлюз
>193.168.8.231 - реальный адрес (смотрит с моей машины в инет), интерфейс xl0
>
>172.16.10.1 - смотрит с моей машины в сеть, интерфейс rl0
>172.16.10.2 - пользовательская машина (со шлюзом соответственно 172.16.10.1)
>
>Что было сделано:
>1. В стандартное я дро я добавил следующие опции:
>   options IPFIREWALL
>   options IPFIREWALL_VERBOSE
>   options IPFIREWALL_VERBOSE_LIMIT=10
>   options TCP_DROP_SYNFIN
>   options IPDIVERT
> Отключил опцию IPv6.
> Пересобрал ядро и начал настройку.
>
>2. В файле /etc/rc.firewall создал свой скрипт и записал в него следующее
>
>   ${fwcmd} add divert natd ip from 172.16.10.1/10 to any
>out via xl0
>   ${fwcmd} add divert natd ip from any to 193.168.8.231
>in via xl0
>   ${fwcmd} add pass all from any to any via
>rl0
>   (скрипт работает, ipfw l выдаёт желаемый разультат)
>3. Создал файл /usr/local/etc/rc.d/natd.sh, сделал его загрузочным (755).
> Содержание файла:
>    #!/bin/sh
>    /sbin/natd -f /etc/natd.conf -n xl0
> (знаю что можно и через флаги, но пока сделал так)
>
>4. Создал файл /etc/natd.conf
> Содержание файла:
>    use_sockets yes same_ports yes
>5. И наконец поправил /etc/rc.conf
> Настройки следующие:
>    ifconfig_xl0="inet 193.168.8.231 netmask 255.255.255.0"
>    ifconfig_rl0="inet 172.16.10.1 netmask 255.255.255.0"
>    inetd_enable="YES"
>    kern_securelevel_enable="NO"
>    firewall_enable="YES"
>    firewall_script="/etc/rc.firewall"
>    firewall_type="mytype"
>    firewall_quiet="no"
>    firewall_flags=""
>    natd_program="/sbin/natd"
>    natd_enable="YES" (ставил и NO)
>    tcp_extension="NO"
>    tcp_drop_synfin="YES"
>    icmp_drop_redirect="NO"
>    icmp_log_redirect="YES"
>    defaultrouter="193.168.8.1"
> Вроде все касаемые настройки.
>
>6. По идее после перезагрузки всё должно заработать, но ничего не работает.
>
>   ping со 172.16.10.2 доходит до 172.16.0.1 и до 193.168.8.231,
>но дальше не идёт,
>   т.е. я не могу пингануть шлюз 192.168.8.1 (по моему
>он туда уходит, но обратно никак).
>
>   С BSD машины всё пингуется (и шлюз, и DNS
>сервера) и прекрасно работает.
>   Итог - не работает NAT.
>
>   P.S. пытался делать всё настройками man nat, безрезультатно (всё
>тоже самое).
>Создаётся впечатление что нат кто-то глушит, хотя свою криворукость не исключаю, я
>
>только начинаю изучать BSD (хотя и ковырялся с линюхом).
>
>Очень прошу поделиться Вашими идеями по этому поводу! Заранее спасибо!

gateway_enable=yes


"RE: ПОМОГИТЕ настроить NAT"
Отправлено rex , 06-Июн-02 13:20 
Было установленно, только забыл прописать в вопросе :-(

"RE: ПОМОГИТЕ настроить NAT"
Отправлено antonkbd , 11-Окт-02 01:39 
>Было установленно, только забыл прописать в вопросе :-(

знаю по какой доке вы это ставили =)
но там строчка с дивертами не верна - нужно вот так:

/sbin/ipfw add divert natd ip from any to any out via tun0
/sbin/ipfw add divert natd ip from any to any in via tun0

и все запахало..
сам с этим мучался 30 минут =(


"RE: ПОМОГИТЕ настроить NAT"
Отправлено shpion , 01-Апр-10 18:12 
>[оверквотинг удален]
>знаю по какой доке вы это ставили =)
>но там строчка с дивертами не верна - нужно вот так:
>
>/sbin/ipfw add divert natd ip from any to any out via tun0
>
>/sbin/ipfw add divert natd ip from any to any in via tun0
>
>
>и все запахало..
>сам с этим мучался 30 минут =(

помоему дело не в этом, просто при зборке ядра надо было включить options IPFIREWALL_FORWARD, вот и все, у меня все пашет и даже с этими правилами.

Еще одно, там походу должно в правиле быть не 172.16.10.1/10 а 172.16.10.0/10 если дело йдет о всей локальной сети и префикс маски походу не правильный. Эсли маска 255.255.255.0 то префикс должен быть /24.