ПОМОГИТЕ НАСТРОИТЬ 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 (хотя и ковырялся с линюхом).Очень прошу поделиться Вашими идеями по этому поводу! Заранее спасибо!
>ПОМОГИТЕ НАСТРОИТЬ 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
Было установленно, только забыл прописать в вопросе :-(
>Было установленно, только забыл прописать в вопросе :-(знаю по какой доке вы это ставили =)
но там строчка с дивертами не верна - нужно вот так:/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 минут =(
>[оверквотинг удален]
>знаю по какой доке вы это ставили =)
>но там строчка с дивертами не верна - нужно вот так:
>
>/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.