>Пингуются обе сетки!
>После двух часовых морок, пришла идея (шлюз 192.168.1.254
>является также марщрутизатором на другой сервер (это xDSL модем))
>Может на нем прописать статистический маршрут на
>192.168.0.0 через 192.168.1.1
>Вот сижу и думаю а пожет ли енто???
Да что вы мутите ?
Так делаем
eth0 - 192.168.0.1 net 192.168.0.0/24
eth1 - 192.168.1.1 net 192.168.1.0/24 и Internet со шлюзом 192.168.1.254.
Есть RedHat любой 7.х, 8.0, 9.0. И netfilter типа iptables, можно и ipchains.
1. Должно быть собрано ядро с поддержкой НАТа. Это опции в Конфигурации сети, статей много на ОпенНет об этом.
Допустим это мы сделали.
2. Подняли интерфейсы
ifconfig eth0 192.168.0.1 netmask 255.255.255.0 up
ifconfig eth1 192.168.1.1 netmask 255.255.255.0 up
3. Настраиваем маршрутизацию.
После выполнения пункта 2 мы имеем сл. таблицу:
192.168.0.0/24 eth0
192.168.1.0/24 eth1
127.0.0.0/16 lo
Теперь надо установить default gateway, он в нашем примере 192.168.1.254
строчку типа route add 192.168.1.254 eth1 писать не надо так как вторая строка уже ее включает в себя. Надо только написать роутинг всех пакетов которые мы не знаем куда слать на 192.168.1.254.
route add default gw 192.168.1.254
после этого появится строчка
default(0.0.0.0) gw 192.168.1.254 eth1
После этого мы имеем таблицу роутинга которая без загрузки фильтра уже должна заставить сервер видеть все подсети и даже пинговать все внешние адреса(при условии правильной настройки 192.168.1.254.
4. Настраиваем Iptables(Ipchains):
Разница в них для нашего случая только в том что Iptables имеет 3 таблицы
Nat, Mangle, Filter), а ipchains имеет только таблицу Filter.
Так вот нас интересует правило -j MASQ
Выставляем политики Iptables:
iptables -t nat -P PREROUTING ACCEPT ; Это мы делаем на всякий случай
iptables -t nat -P OUTPUT ACCEPT
iptables -t nat -P POSTROUTING ACCEPT
iptables -t mangle -P PREROUTING ACCEPT
iptables -t mangle -P OUTPUT ACCEPT
iptables -t mangle -P POSTROUTING ACCEPT
iptables "-t filter" -P INPUT ACCEPT
iptables "-t filter" -P FORWARD ACCEPT
iptables "-t filter" -P OUTPUT ACCEPT
" " - это можно не писать так как она считается по дефалту
Теперь у нас разрешено все. Можно пускать
service iptables(ipchains) start ; Ну или другой командой которую вы хотите ... & :)
5. Далее мы должны разрешить маршрутизацию между интерфейсами:
echo "1" > /proc/sys/net/ipv4/ip_forward ; " " - Если в скрипте будете писать ковычки обязательны, иначе не понимает в некоторых версиях.
Что получили.
С локальной машины пинг:
ping 195.34.32.11 ; Это DNS MTU
пинг прошел через сервер но не вернулся так как в netfiltre не хватает одного правила.
У нас сервер должен подставлять свой адрес(НАТ) для покетов посланных во вне, иначе не понятно куцда их слать обратно.
Для Iptables это делается в таблице Nat
iptables -t nat -A POSTROUTING -i eth0 (внутр. интерфейс) -s 192.168.0.0/24 (внутр. сеть) -j SNAT --to-source (сделайте man iptables, точно нее помню правильно ли я написал) 192.168.1.1 (внешний интерфейс сервера)
для ipchains:
ipchains -A FORWARD -i eth0 -s 192.168.0.0/24 -j MASQ
После этого все у нас настроено.
P.S. Описан самай просто пример настройки роутера, для дополнительнйо настройки прочитайте статью на netfilter.org об iptables. Но имейте ввиду что в дополнительных настройках 1.2.9(1.2.7 стандартная поставка RH 9.0) уже функций намного больше.
P.S.S. Разница между маскарадингом и снатом в том что в маскарадинге берется адрес с интерфейса, а в снате он подставляется фильтром на тот который указан в правиле без обращения к сетевухе. Это полезно когда провайдер Вам отдает адрес по DHCP.
P.S.S.S. Про настройки DHCPD на сервере коллега сказал правильно, если адреса получаются по DHCP то надо обязательно указать опцию option routers 192.168.0.1 ; {} в зависимости от версии.
Вроде все, если что пишите.
С уважением, Михаил Стаханов.