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

natd не выполняет divert

Добавлено: 2009-08-11 21:33:59
taaraora
Ситуация такова, стоит FreeBSD 7.2.
пересобрал ядро с поддржкой ipfw и nat
но нат не работает
при загрузке ОС говорит

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

natd unable to bind divert socket. address already in use
вот конфиги
/usr/local/etc/rc.d/firewall.sh

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

#!/bin/sh
/sbin/ipfw  -f flush
/sbin/ipfw add divert all from any to any via vr0
/sbin/ipfw add allow all from any to any
/usr/local/etc/rc.d/natd.sh

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

#!/bin/sh
/sbin/natd  -n vr0
/etc/rc.conf

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

# -- sysinstall generated deltas -- # Sun Aug  9 23:54:56 2009
# Created: Sun Aug  9 23:54:56 2009
# Enable network daemons for user convenience.
# Please make all changes to this file, not to /etc/defaults/rc.conf.
# This file now contains just the overrides from /etc/defaults/rc.conf.
keymap="ru.koi8-r"
#этот интерфейс смотрит в инет, adsl модем в режиме нат
ifconfig_vr0="inet 192.168.1.2 netmask 255.255.255.0"
#этот интерфейс смотрит в локалку
ifconfig_rl0="inet 192.168.10.1 netmask 255.255.255.0"
defaultrouter="192.168.1.1"
sshd_enable="YES"
dhcpd_enable="YES"
dhcpd_ifaces="rl0"
getway_enable="YES"
firewall_enable="YES"
firewall_type="OPEN"
natd_enable="YES"
natd_interface="vr0"
sendmail_enable="NONE"
samba_enable="YES"
inetd_enable="YES" 
/etc/natd.conf

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

same_ports yes
use_sockets yes
При этом natd висит в процессах, и использует именно 8668 порт. а ipfw show показывает что по обеим правилам юыло какоето количество пакетов..... ( но в инет не достучатся, на виндовых машинах в сети установлены настройки:

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

шлюз: 192.168.10.1
маска: 255.255.255.0
DNS: 123.123.132.132

Re: natd не выполняет divert

Добавлено: 2009-08-11 21:37:05
paradox
а зачем вы natd два раза запускаете?

Re: natd не выполняет divert

Добавлено: 2009-08-11 21:45:37
taaraora
Два раза? ммм первый:
natd_enable="YES".

А где втрой раз?
второй раз это /usr/local/etc/rc.d/natd.sh???? или как? тоесть мне просто удалить файл natd.sh?

Re: natd не выполняет divert

Добавлено: 2009-08-11 21:51:24
paradox
/usr/local/etc/rc.d/natd.sh

Re: natd не выполняет divert

Добавлено: 2009-08-11 21:57:06
taaraora
тоесть мне просто удалить файл natd.sh? а в rc.conf строку natd_enable="YES" оставить?
мммммм буду завтра пробывать, неужели всё так просто.....=))))))

Re: natd не выполняет divert

Добавлено: 2009-08-11 21:59:39
paradox
ну то что у вас в инет машины не выходят это гдето в другом месте косяк

Re: natd не выполняет divert

Добавлено: 2009-08-11 22:27:03
proxyd
У Вас в строке:

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

/sbin/ipfw add divert all from any to any via vr0
допущена ошибка. Вы забыли указать порт.
Попробуйте исправит следующим образом:

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

/sbin/ipfw add divert natd all from any to any via vr0
и незабудьте проверить что natd висит на нужном интерфейсе.

Re: natd не выполняет divert

Добавлено: 2009-08-11 22:45:23
proxyd
И еще для полного отключения sendmail, включая сервис исходящей почты, вы используйте:

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

sendmail_enable="NONE"
Данная запись является неверной, так как начиная с FreeBSD 5.0-STABLE для полного отключения sendmail, включая сервис исходящей почты, нужно использовать:

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

sendmail_enable="NO"
sendmail_submit_enable="NO"
sendmail_outbound_enable="NO"
sendmail_msp_queue_enable="NO"

Re: natd не выполняет divert

Добавлено: 2009-08-11 22:49:48
paradox
посмотри в нутрь старта сендмеила
оно поглощает опции
так то там все верно

Re: natd не выполняет divert

Добавлено: 2009-08-11 23:01:10
proxyd
Посмотрел так и есть, только непонятно зачем в Хендбуке http://www.freebsd.org/doc/ru_RU.KOI8-R ... ngmta.html утверждать что с пятой ветки именно такая запись является верной.

Re: natd не выполняет divert

Добавлено: 2009-08-11 23:06:17
paradox
может не с а до

Re: natd не выполняет divert

Добавлено: 2009-08-12 18:45:20
taaraora
Ошибка пропала, но нат не работает. Может дело в том что у меня 2 ната? смотрите
от провайдера пришел кабель, он подключён к ADSL модему, внешний IP модема ххх.ххх.ххх.ххх, внутренный 192.168.1.1 (модем работает как NAT). Далее модем подключённ к Фришному серваку, внешний IP 192.168.1.254, Интерфейс сервака который смотрит в сеть имеет IP 192.168.10.1.
Это ничего что так? я просто не ашел как в модеме переключится в режим моста.(D'link 2500u)

Re: natd не выполняет divert

Добавлено: 2009-08-12 18:59:42
paradox
proxyd писал(а):У Вас в строке:

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

/sbin/ipfw add divert all from any to any via vr0
допущена ошибка. Вы забыли указать порт.
Попробуйте исправит следующим образом:

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

/sbin/ipfw add divert natd all from any to any via vr0
и незабудьте проверить что natd висит на нужном интерфейсе.
это проверил?

Re: natd не выполняет divert

Добавлено: 2009-08-12 20:10:52
proxyd
Дурацки конечно вопрос, но как Вы определяете к какой сетевой карте подключили кабель от модема?

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

1)                                       2)

            +--------------------+                   +--------------------+      
ADSL >----> | vr0 : 192.168.1.2  |       LAN  >----> | vr0 : 192.168.1.2  |
            +--------------------+                   +--------------------+

            +--------------------+                   +--------------------+
LAN  >----> | rl0 : 192.168.10.1 |       ADSL >----> | rl0 : 192.168.10.1 |
            +--------------------+                   +--------------------+
Был случай, когда я в тупую перепутал кабели правда у меня были две одинаковые сетевухи.

Re: natd не выполняет divert

Добавлено: 2009-08-13 2:13:12
taaraora
paradox писал(а):
proxyd писал(а):У Вас в строке:

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

/sbin/ipfw add divert all from any to any via vr0
допущена ошибка. Вы забыли указать порт.
Попробуйте исправит следующим образом:

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

/sbin/ipfw add divert natd all from any to any via vr0
и незабудьте проверить что natd висит на нужном интерфейсе.
это проверил?
да. исправил. инрефейс вешний
Попытаюсь нарисовать структуру поключений. Смотрите вложенный файл.

Re: natd не выполняет divert

Добавлено: 2009-08-13 2:16:46
taaraora
proxyd писал(а):Дурацки конечно вопрос, но как Вы определяете к какой сетевой карте подключили кабель от модема?

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

1)                                       2)

            +--------------------+                   +--------------------+      
ADSL >----> | vr0 : 192.168.1.2  |       LAN  >----> | vr0 : 192.168.1.2  |
            +--------------------+                   +--------------------+

            +--------------------+                   +--------------------+
LAN  >----> | rl0 : 192.168.10.1 |       ADSL >----> | rl0 : 192.168.10.1 |
            +--------------------+                   +--------------------+
Был случай, когда я в тупую перепутал кабели правда у меня были две одинаковые сетевухи.
Я сначало подключаю в одну из сетевух кабель от свитча и выполняю ifconfig, он при выводе инфы, к тому интерфейсу к которому кабель подключён пишет

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

state: active
а к тому где кабель не подключён пишет

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

state: not carrier
Воть:

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

/>ifconfig
rl0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=8<VLAN_MTU>
        ether 00:30:4f:34:f0:fb
        inet 192.168.10.1 netmask 0xffffff00 broadcast 192.168.10.255
        media: Ethernet autoselect (none)
        status: no carrier
vr0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=2808<VLAN_MTU,WOL_UCAST,WOL_MAGIC>
        ether 00:22:b0:de:6a:67
        inet 192.168.1.2 netmask 0xffffff00 broadcast 192.168.1.255
        media: Ethernet autoselect (100baseTX <full-duplex>)
        status: active
plip0: flags=108810<POINTOPOINT,SIMPLEX,MULTICAST,NEEDSGIANT> metric 0 mtu 1500
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384
        inet6 fe80::1%lo0 prefixlen 64 scopeid 0x4
        inet6 ::1 prefixlen 128
        inet 127.0.0.1 netmask 0xff000000


Re: natd не выполняет divert

Добавлено: 2009-08-13 14:56:24
proxyd
Есть еще одна мыслишка на счет /etc/natd.conf

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

dynamic         yes
use_sockets     yes
same_ports      yes

Последняя строка в файле обязательно должна быть пустой, и еще в /etc/rc.conf
попробуй добавить:

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

natd_flags="-f /etc/natd.conf"


Re: natd не выполняет divert

Добавлено: 2009-08-13 17:55:12
taaraora
Спасибо всем, проблему не решил. Изменил просто конфигурацию сети. Теперь у меня ADSL модем NATит все компы в сети :cz2: .........