Маршрутизация (решено) (вышла на 50%)

FreeBSD, NetBSD, OpenBSD, DragonFly и т. д.

Модератор: arachnid

Аватара пользователя
LZOmgi
Сообщения: 67
ОС: FreeBSD Current

Маршрутизация (решено)

Сообщение LZOmgi »

Настраиваю маршрутизатор под FreeBSD 7.0.

внешний IP 1.1.1.2, роутер 1.1.1.1
внутренний 192.168.0.1/24
хочу всю сеть (аж 2 компа) заставить ходить через меня

Вроде бы как все настроил что в книжках пишут, но что-то не то:
TCPDUMP на внешнем интерфейсе показывает: (#tcpdump -i re0 host 192.168.0.2)

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

пингую (маршрутизатор 1.1.1.1):
[i]$time[/i] IP 192.168.0.2 > 1.1.1.1 ICMP echo request ..
[i]$time[/i] IP 192.168.0.2 > 1.1.1.1 ICMP echo request ..
[i]$time[/i] IP 192.168.0.2 > 1.1.1.1 ICMP echo request ..
обратных нету
пингую google.com:
[i]$time[/i] IP 192.168.0.2.blackjack > 1.1.1.3.domain 17690+ A? google.com . (28)
[i]$time[/i] IP 192.168.0.2.blackjack > 1.1.1.3.domain 17690+ A? google.com . (28)
[i]$time[/i] IP 192.168.0.2.blackjack > 1.1.1.3.domain 17690+ A? google.com . (28)
опять тишина
[right]//что такое blackjack? 1025 - черт с ним, но все только спрашивают.[/right]

на внутренней сети #tcpdump -i re1
отличается только чуть более ранним времением приема.

Мне не нравится что на внешнем tcpdump присутвует внутренний IP - оно его не меняет?
Что я пропустил?

Вот конфиги:
ядро
+

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

options IPFIREWALL
options IPFIREWALL_VERBOSE
options IPFIREWALL_VERBOSE_LIMIT=5
options IPFIREWALL_DEFAULT_TO_ACCEPT
options IPDIVERT
options IPFIREWALL_FORWARD (включил уже все что можно)
/etc/rc.conf

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

geteway_enable="YES"
...
defaultrouter="1.1.1.1"
firewall_enable="YES"
firewall_quiet="YES"
natd_enable="YES"
natd_interface="re0"
natd_flags="-f /etc/natd.conf"
/etc/natd.conf

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

redirect_port tcp 192.168.0.2:1-65535 1-65535[right]//Я так понял что это не обязательная опция, многие вообще упускают, но поставил пусть перенаправляет все порты[/right]
/etc/rc.firewall

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

#!/bin/sh
f="/sbin/ipfw -q add"
$f 002 allow from any to any via rl1
$f 003 allow from any to any via lo0
//эти две кажется можно удалить, но оставил из примеров
$f 100 divert natd ip rom any to me in via re0
$f 101 check-state //это что такое, ну да ладно
$f 500 divert natd ip from any to any out via re0
$f 510 allow ip from any to any

# Copyright (c) 1996....
.... стандартный файл, скрипты какие-то.. : )



Т.к. ответ не приходит подозреваю мой NAT просто копирует пакеты не меняя IP
З.Ы. Делал как в книжках по сто раз - кошмар - каждый что-то свое пишет, сильно отличаяюсь от другого, команды natd... не работают, хотя написано что они появились именно в 7.0 версии,
Спасибо сказали:
Аватара пользователя
arachnid
Модератор
Сообщения: 1100
ОС: freeBSD

Re: Маршрутизация (решено)

Сообщение arachnid »

есть предложение - сделайте, как в man natd - а то у вас чересчур сложно - и два раза заворачиваете в нат, причем только на внешнем интерфейсе (поэтому у вас пакеты и выходят неизменными), и порты прописываете...

настройте все по минимуму - усложнять будете потом, когда заработает
-= freeBSD stable, fluxbox =-
"если ты будешь со мной спорить, я тебя запишу в книжечку!" (с) Ежик
Спасибо сказали:
Аватара пользователя
LZOmgi
Сообщения: 67
ОС: FreeBSD Current

Re: Маршрутизация (решено)

Сообщение LZOmgi »

arachnid писал(а):
29.07.2008 09:02
есть предложение - сделайте, как в man natd - а то у вас чересчур сложно - и два раза заворачиваете в нат, причем только на внешнем интерфейсе (поэтому у вас пакеты и выходят неизменными), и порты прописываете...

настройте все по минимуму - усложнять будете потом, когда заработает

Спасибо, вышло, но с одним огромным НО.
Проблема была в том что natd стартовал при загрузке системы, а настройки IP/MAC после отдельным скриптом - забил все в rc.conf, а natd запускаю вручную (#natd -interface re0). (В man natd написано что natd должен стартовать после всех настроек)
Само НО:
FreeBSD примерно пол часа после включения не может определить скорость подключения.
Пишу вручную - ifconfig media XXX (уже не помню что.. ~100BASE-TX), применяет но эффекта ноль. На сетевухе время от времени мигают все индикаторы, а ifconfig -a постоянно показывает то кабель отключен то подключен.

Такое пропадает в двух случаях:
1. через длительное время 30-60 минут (серверу то ничего, не собираюсь выключать, но еще много чего настраивать и не раз перезагружать)
2. если написать shutdown XXX на несколько секунд все начинает работать.

Я так подозреваю что это какой-то процесс (демон) который при выключении убивается перед natd и др...
Что это может быть и как найти?

Из трех сетевых таким образом колбасит две (внешние). Можно было еще попробовать переставить lan<->wan но уже сегодня нет времени, и думаю дело не в железе, но попробовать можно.

Возникла еще одна проблема как запустить два внешних, в firewall.rc нормально прописал, (#/sbin/ipfw add divert natd from any to any via wan1)ничего не жалуется, но при запуске второй командой (#natd -interface wan1) nat матюкается. В эту сторону пока не копал, хотя бы разобраться с одним натом.
Спасибо сказали:
Аватара пользователя
arachnid
Модератор
Сообщения: 1100
ОС: freeBSD

Re: Маршрутизация (решено)

Сообщение arachnid »

LZOmgi писал(а):
29.07.2008 18:55
arachnid писал(а):
29.07.2008 09:02
есть предложение - сделайте, как в man natd - а то у вас чересчур сложно - и два раза заворачиваете в нат, причем только на внешнем интерфейсе (поэтому у вас пакеты и выходят неизменными), и порты прописываете...

настройте все по минимуму - усложнять будете потом, когда заработает

Спасибо, вышло, но с одним огромным НО.
Проблема была в том что natd стартовал при загрузке системы, а настройки IP/MAC после отдельным скриптом - забил все в rc.conf, а natd запускаю вручную (#natd -interface re0). (В man natd написано что natd должен стартовать после всех настроек)
Само НО:
FreeBSD примерно пол часа после включения не может определить скорость подключения.
Пишу вручную - ifconfig media XXX (уже не помню что.. ~100BASE-TX), применяет но эффекта ноль. На сетевухе время от времени мигают все индикаторы, а ifconfig -a постоянно показывает то кабель отключен то подключен.

Такое пропадает в двух случаях:
1. через длительное время 30-60 минут (серверу то ничего, не собираюсь выключать, но еще много чего настраивать и не раз перезагружать)
2. если написать shutdown XXX на несколько секунд все начинает работать.

Я так подозреваю что это какой-то процесс (демон) который при выключении убивается перед natd и др...
Что это может быть и как найти?

Из трех сетевых таким образом колбасит две (внешние). Можно было еще попробовать переставить lan<->wan но уже сегодня нет времени, и думаю дело не в железе, но попробовать можно.

Возникла еще одна проблема как запустить два внешних, в firewall.rc нормально прописал, (#/sbin/ipfw add divert natd from any to any via wan1)ничего не жалуется, но при запуске второй командой (#natd -interface wan1) nat матюкается. В эту сторону пока не копал, хотя бы разобраться с одним натом.

по поводу НО - скорее всего сетевухи не могут договариться со свичем о типе канала. тут либо сетевухи менять, либо с провом договариваться (я правильно понял, что это внешние - в смысле к провайдеру?)

для двух natd у вас должно быть два файла конфигурации, иначе они у вас будут по умолчанию пытаться работать на одном порту. что невозможно - соотвественно и параметры запуска двух натов должны различаться
-= freeBSD stable, fluxbox =-
"если ты будешь со мной спорить, я тебя запишу в книжечку!" (с) Ежик
Спасибо сказали:
Аватара пользователя
LZOmgi
Сообщения: 67
ОС: FreeBSD Current

Re: Маршрутизация (решено)

Сообщение LZOmgi »

Сегодня не удалось что-либо попробовать.
Три сетевухи - каждая к свитчу. Две из них (внешние) не могут выбрать скорость. Попробую завтра изменить настройки и поменять местами кабеля, но мне кажется что не работают из-за этих строк:
natd_interface="re0"
т.к. только я добавил вторую - вторая карточка тоже стала "не работать".
В других ОС и в FreeBSD без этих настроек все нормально.



для двух natd у вас должно быть два файла конфигурации, иначе они у вас будут по умолчанию пытаться работать на одном порту. что невозможно - соотвественно и параметры запуска двух натов должны различаться
??? Вот что я менял:
/etc/rc.firewall:
#!/bin/sh
/sbin/ipfw -f flush
/sbin/ipfw add divert natd all from any to any via re0
/sbin/ipfw add divert natd all from any to any via re1
/sbin/ipfw add pass all from any to any via
после загрузки пишу:
natd -interface re0
natd -interface re1
почитал лит-ру, надо так:
/etc/rc.firewall:
#!/bin/sh
/sbin/ipfw -f flush
/sbin/ipfw add divert 1111 all from any to any via re0
/sbin/ipfw add divert 1112 all from any to any via re1
/sbin/ipfw add pass all from any to any via
после загрузки пишу:
natd -interface re0 -p 1111
natd -interface re1 -p 1112


Но меня больше волнует о том чего эти сетевухи не договариваются о сокростях.
Спасибо сказали:
Аватара пользователя
LZOmgi
Сообщения: 67
ОС: FreeBSD Current

Re: Маршрутизация (решено)

Сообщение LZOmgi »

Та что ж им надо? :diablo:

Только пишу Shutdown стразу же
interface re0 change to up
interface re1 change to up
и на несколько секунд внутрення сеть видит интернет!
За 60 минут в этот раз так и недоговорились. Пришлось перезагрузить в винду.
Это уже другую тему создавать в железе? :dry:
Спасибо сказали:
Аватара пользователя
LZOmgi
Сообщения: 67
ОС: FreeBSD Current

Re: Маршрутизация (решено)

Сообщение LZOmgi »

Вот в чем был прикол:
в rc.conf:
строка ifcofig re0 ether XXX
видимо в 7-й версии так нельзя, хотя именно так кто-то делал и советовал (найдено через гугл)

Все, всем спасибо за внимание.
Спасибо сказали: