Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Общий по FreeBSD (http://forum.oszone.net/forumdisplay.php?f=10)
-   -   Маршрутизатор (http://forum.oszone.net/showthread.php?t=15619)

B o s s 26-05-2004 19:04 84578

Не могу настроить роутер.
Имеется две сетевухи:
ed0 - (10.10.1.5) на ету подается инет
ed1 - (192.168.0.1) на ету надо подать инет
С сети под ed1 видно внешнюю сетевуху(10.10.1.5),
но пакеты не перенаправляются.
10.0.0.1 - мой шлюз
Пробовал такие команды:
fwd 10.0.0.1 ip from 10.10.1.5 to any out xmit ed1
или
fwd 10.0.0.1 ip from 192.168.0.1 to any out xmit ed1
менял местами ed0 и ed1 - все равно не канает.
Помогайте

ruslandh 26-05-2004 19:29 84579

Не знаю особенности FreeBSD, но задам один вопрос : А форвардинг включён ?

smooth 26-05-2004 19:37 84580

надо либо natd пускать, либо ipnat.
Читайте доки :)

Добавлено:

+ gateway_enable = "yes"

B o s s 26-05-2004 20:50 84581

Все ето я включил в rc.conf, но не канает.

smooth 26-05-2004 21:21 84582

"все это" - это что?
а natd еще необходимо и параметры предавать...

B o s s 26-05-2004 21:42 84583

Какие параметры? Об етом я не знаю. Подробнее...

mar 26-05-2004 21:54 84584

B o s s
а в ядре что-нибудь типа
options     IPFILTER
#и/или
options     IPFIREWALL

и тд включено? Ядро перекомпилячено и система перезагружена? (это к вопросу ruslandh)



B o s s 26-05-2004 22:25 84585

Вот недавно перекомпилил, буду пробовать.

smooth 27-05-2004 00:18 84586

доки читать надо! :)

http://dreamcatcher.ru/docs/nat.html

alexeyrostov 27-05-2004 16:47 84587

Доки читать обязательно!
http://www.bsdportal.ru/kb.php

socrat 01-06-2004 21:59 84588

Ну вообще маловато будет править только rc.conf , в ядро надо включить options IPDIVERT... При таком раскладе мне больше не понадобилось никаких настроек...
Вот минимальная конфа при которой все работает:
rc.conf
gateway_enable = "YES"
defaultrouter="xxx.xxx.xxx.xxx"
natd_program="/sbin/natd"    
natd_enable="YES"              
natd_interface="твой интерфейс в инет"          
natd_flags="-dynamic -u"

Ядро
options         MROUTING              
options         IPFIREWALL              
options         IPFIREWALL_VERBOSE    
options         IPFIREWALL_FORWARD    
options         IPFIREWALL_VERBOSE_LIMIT=100    
options         IPFIREWALL_DEFAULT_TO_ACCEPT    
option          IPDIVERT

Собственно этого должно хватить...        

mar 01-06-2004 22:11 84589

socrat
погоди, так ты хочешь сказать, что даже не прописываешь в /etc/rc.conf внутренний и наружный интерфейсы и не пишешь нат-правил типа map на наружный интерфейс проход из внутренней сетки наружу?

[s]Исправлено: mar, 22:12 1-06-2004[/s]

socrat 01-06-2004 23:45 84590

Почему нет... просто я думаю это само собой подразумевается...
rc.conf
network-interfaces=""интерфейс смотрящий в инет" lo0 "в сеть""
по типу network-interfaces="tun0 lo0 rl0"
Правил для nat действительно не писал... все работает по умолчанию...

mar 01-06-2004 23:48 84591

socrat
:)

Belansky 03-06-2004 11:28 84592

socrat
Нет,само собой это не подразумевается. Правила нужны для natd.

B o s s 03-06-2004 15:50 84593

Попробовал как пишете: ядро перекомпилил со всеми IPFIREWALL... , в rc.conf прописал все настройки, кроме правил для natd, но... : natd не запускается, network_interfaces="ed0 lo0 ed1" пишет not found, хотя сеть пашет нормально, но роутинг дальше не пашет. В чем проблема?

smooth 03-06-2004 16:22 84594

ну ссылку же уже нужную положили, искать ничего не надо, осталось взять и просто почитать и подставить свои значения - все. Так нет, люди не любят читать доки, faq'и  и прочее, им нужно готовое решение...

Guest 09-06-2004 13:27 84595

naskolko ponyal ed1 smotrit v vnutrenuyu setc,a chrez ed0 ti doljen vixoditc n inet esli da to pichesh v rc.conf

Ifconfig_ed0="inet 10.0.0.1 netmask 255.255.255.0"(naprimer)
Ifconfig_ed1="inet 192.168.0.1 netmask 255.255.255.0"
defaultrouter="10.10.1.5"

mar 09-06-2004 13:57 84596

привожу работающий пример целиком:
во-первых, вот ссылка на Кузмича Комментарии восновном оттуда
Код:


/usr/src/sys/i386/conf/router // файл конфига ядра
Сам конфиг:
# это куски моего, тут пока для роутинга непринципиально
cpu * * * * * * I586_CPU
cpu * * * * * * I686_CPU
ident * * * * * router # название файла конфига ядра
maxusers * * * *512 # тут завизит от задач
 
#options * * * *MATH_EMULATE * * * * * *#Support for x87 emulation
options * * * * INET * * * * * * * * * *#InterNETworking
options * * * * INET6 * * * * * * * * * #IPv6 communications protocols
## дальше добавляем:
options * * * * IPFIREWALL * * * * * *# Включение поддержки firewall в ядро.
 * * * * * * * * * * * * * * * * * * *# Если нужны только простейшие функции,
 * * *# вроде запрета или разрешения прохождения пакетов,
 * * *# то эту опцию можно не включать -
 * * *# FreeBSD загрузит соответствующий модуль автоматически,
 * * *# если в /etc/rc.conf разрешено использование firewall,
 * * *# но поддержка возможностей будет минимальной.
IPFIREWALL_VERBOSE * * * * *# При включении данной опции firewall может записывать
 * * *# все "происшествия" в лог-файл.
options * * * * IPFIREWALL_VERBOSE_LIMIT=10 #Ограничение числа попадающих в лог сообщений.
 * *# При отсутствии лимита хакер или просто сбойный компьютер в сети
 * *# способны в считанные минуты сгенерировать столько пакетов,
 * *# что лог-файл firewall'а займет все имеющееся дисковое пространство
option * * * * *IPDIVERT * * * *# Поддержка возможности передать пакет на обработку внешней программе.
# Примером такой программы служит natd - демон,
# маскирующий локальную сеть и переписывающий заголовки IP-пакетов.
# Программа обработки обязательно должна быть запущена на этой-же машине
 
ну и так далее, остальное в конфиге к делу не относится
сохраняем работающее ядро под каким-нибудь простым именем,
чтобы в случае чего с него загрузиться.
компилируем ядро:
# cd /usr/src/sys/i386/conf
config router
cd /usr/src/sys/compile/router
make depend
make all (идем обедать)
make install *(или make install clean)
 
файл /etc/rc.conf
defaultrouter="xxx.xxx.xxx.xxx" * #IP Адрес шлюза
hostname="router.some.net" * * * #имя хоста + доменное имя
ifconfig_rl0="inet xxx.xxx.xxx.xxx *netmask 255.255.255.0" * * *#Внешний интерфейс
ifconfig_rl1="inet 192.168.85.1 netmask 255.255.255.0" *#Внутренний интерфейс
inetd_enable="YES"
kern_securelevel_enable="NO"
linux_enable="YES"
nfs_reserved_port_only="YES"
sendmail_enable="YES"
sshd_enable="YES"
 
# ru
keymap="ru.koi8-r"
#keychange="61 ^[[K"
scrnmap="koi8-r2cp866"
 
font8x14="cp866-8x14"
font8x16="cp866b-8x16"
font8x8="cp866-8x8"
 
firewall_enable="YES" * * * * * * * * * * * *# Запускаем при старте работу ipfw
firewall_script="/etc/rc_my_router.firewall" * * # Скрипт с правилами ipfw
natd_enable="YES" * * # Разрешаем использовать natd
natd_interface="rl0" * * # Оъявляем интерфейс для трансляции
 * * # внутренних адресов во внешний
gateway_enable="YES" * * # эта машина - шлюз
 
 
######----------------------
дальше создаем и прааим файл /etc/rc_my_router.firewall * * #Скрипт с правилами ipfw
#открываем все для всех
#настоящие правила пишем,
#когда заработает
ipfw='/sbin/ipfw -q'
 
${ipfw} -f flush
${ipfw} add divert natd all from any to any via rl0
${ipfw} add allow all from any to any
 
######----------------------
 
chmod 0700 /etc/rc_my_router.firewall
 
su-2.05b# ls -l /etc/rc_my_router.firewall
-rwx------ *1 root *wheel *130 *8 июн 10:31 /etc/rc_my_router.firewall
 
reboot

Все! все должно работать
(те из машины внутренней сети
можно вылезти наружу,
не забыв установить ей в виде шлюза
ip внутренней карточки роутера)
После этого можно подумать о настоящих правилах для подсетки.

[s]Исправлено: mar, 19:53 9-06-2004[/s]

Belansky 12-06-2004 10:03 84597

B o s s
mar абсолютно рабочий пример конфига выложила, попробуйте.

B o s s 12-06-2004 13:09 84598

Спасибо, уже поканало, но до етого примера.
Только проблемка есть, чтобы роутер работал, и с внутренней и из внешней сети нужно прописывать, что мой комп - шлюз. Должно ли так быть?

##Кстати, первый раз виже человека женского пола, который что-то шарит (mar) ##

mar 12-06-2004 13:18 84599

B o s s
:)
Цитата:

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

Barracuda 12-06-2004 13:34 84600

B o s s
На http://www.opennet.ru была зачудительная статья - что куда строить и что где означает, при построение шлюза на Фре. Я её мельком робежал, но на превый взгляд - толково ...

B o s s 21-06-2004 19:45 84601

mar
Смотри:
есть главный шлюз в инет.
Мой комп на фре в внутреней сети, на нему висит две сетевухи, одна к главному шлюзу, вторая в подсеть. Шлюз (мой комп) работает только если: на компах в подсети шлюзом прописан мой комп (так и должно быть) и... : на компе в сети (не внутренней) тоже шлюзом прописан мой комп. Только тогда комп с подсети может коннектится с компом в сети.

mar 21-06-2004 19:57 84602

B o s s
что-то я запуталась :(
имеем:
1(шлюз)<---->2 твой_роутер<-----> 3 хаб и куча машин к нему.
по идее: (и не только по идее - у меня тоже так):
- на всех (3) - машинах внутренней подсетки прописан шлюзом 2
- на 2 (роутере) прописан шлюз 1 (шлюз для 2)
- на 1 прописан его шлюз, или чаще всего это машина/киска провайдера и нам дела нет до того, что на ней прописано.

Кто такой в этой схеме
Цитата:

комп в сети (не внутренней)
?
Что за соединение между 1 и 2? просто карточка? хаб? какие-то машины еще в этот хаб воткнуты?


Время: 00:37.

Время: 00:37.
© OSzone.net 2001-