Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
Dimasm
Зарегистрирован: 25.04.2005 Сообщения: 454
|
Добавлено: Пн Окт 24 2005 15:26 Заголовок сообщения: роутинг |
|
|
Есть две подсети(192.168.0.0 и *.*.1.0) и роутер с двумя сетевайками
192.168.0.254 и 192.168.1.254
Мучаюсь с заданием маршрутов, надоело ручками выставлять,
доками зачитался
как я понял, есть такой файлик
\etc\sysconfig\network-scripts\ifup-routes
судя по всему, это скрипт, который выполняется при загрузке системы и задаёт маршруты, открываем
Код: | #! /bin/bash
#
# adds static routes which go through device $1
if [ -z "$1" ]; then
echo $"usage: ifup-routes <net-device>"
exit 1
fi
# Older format
if [ -f "/etc/sysconfig/network-scripts/route-$1" ]; then
while read line; do
/sbin/ip route add $line
done < "/etc/sysconfig/network-scripts/route-$1"
fi
if [ -n "$2" -a "$2" != "$1" ]; then
if [ -f "/etc/sysconfig/network-scripts/route-$2" ]; then
while read line; do
/sbin/ip route add $line
done < "/etc/sysconfig/network-scripts/route-$2"
fi
fi
# Red Hat network configuration format
CONFIG="/etc/sysconfig/networking/devices/$1.route"
[ -f $CONFIG ] || CONFIG="/etc/sysconfig/networking/devices/$2.route"
[ -f $CONFIG ] || exit 0
. $CONFIG
routenum=0
while [ "x$(eval echo '$'ADDRESS$routenum)x" != "xx" ]; do
eval `ipcalc -p $(eval echo '$'ADDRESS$routenum) $(eval echo '$'NETMASK$routenum)`
line="$(eval echo '$'ADDRESS$routenum)/$PREFIX"
if [ "x$(eval echo '$'GATEWAY$routenum)x" != "xx" ]; then
line="$line via $(eval echo '$'GATEWAY$routenum)"
fi
line="$line dev $1"
/sbin/ip route add $line
routenum=$(($routenum+1))
done |
зачем нам старый формат
Код: | CONFIG="/etc/sysconfig/networking/devices/$1.route"
[ -f $CONFIG ] || CONFIG="/etc/sysconfig/networking/devices/$2.route"
[ -f $CONFIG ] || exit 0 |
судя по всему, $1 - это парамет передаваемый в скрипт
тут открываются файлы eth0.route и eth1.route в дирректории
/etc/sysconfig/networking/devices/
Код: | while [ "x$(eval echo '$'ADDRESS$routenum)x" != "xx" ]; do
eval `ipcalc -p $(eval echo '$'ADDRESS$routenum) $(eval echo '$'NETMASK$routenum)`
line="$(eval echo '$'ADDRESS$routenum)/$PREFIX"
if [ "x$(eval echo '$'GATEWAY$routenum)x" != "xx" ]; then
line="$line via $(eval echo '$'GATEWAY$routenum)"
fi |
а здесть кажется ищются строки
ADDRESS
NETMASK
GETWAY
я предположил, что нужно создать файлики eth0.route и eth1.route в дирректории /etc/sysconfig/networking/devices/
с сожержанием типа
eth0.route
ADDRESS=192.168.0.0
NETMASK=255.255.255.0
GETWAY=192.168.0.254
и аналогичный
eth1.route
Создал, перезагрузил
Код: | [root@dimasm-getway root]# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.1.0 * 255.255.255.0 U 0 0 0 eth1
192.168.0.0 * 255.255.255.0 U 0 0 0 eth0
169.254.0.0 * 255.255.0.0 U 0 0 0 eth1
127.0.0.0 * 255.0.0.0 U 0 0 0 lo
[root@dimasm-getway root]#
|
блин, ладно, воспользуемя "старым форматом
Код: | if [ -n "$2" -a "$2" != "$1" ]; then
if [ -f "/etc/sysconfig/network-scripts/route-$2" ]; then
while read line; do
/sbin/ip route add $line
done < "/etc/sysconfig/network-scripts/route-$2"
fi
fi |
тут файлики другие route-eth0, route-eth1
и строка как параметр для ip route add
у меня получалось добавлять маршруты такой командой
ip route add 192.168.0.0/24 via 192.168.0.254 dev eth0
делаю файлы с таким содержанием
192.168.0.0/24 via 192.168.0.254 dev eth0
для eth1 аналогично.
перезагружаю - никаких изменений
Код: | [root@dimasm-getway root]# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.1.0 * 255.255.255.0 U 0 0 0 eth1
192.168.0.0 * 255.255.255.0 U 0 0 0 eth0
169.254.0.0 * 255.255.0.0 U 0 0 0 eth1
127.0.0.0 * 255.0.0.0 U 0 0 0 lo
[root@dimasm-getway root]#
|
Что я делаю не так? |
|
Вернуться к началу |
|
|
and3008
Зарегистрирован: 12.10.2001 Сообщения: 14893 Откуда: Н.Новгород
|
Добавлено: Пн Окт 24 2005 20:29 Заголовок сообщения: |
|
|
Версия дистрибутива какая?
Если это военная тайна, то пропиши команды в /etc/rc.d/rc.local
Последними строчками. |
|
Вернуться к началу |
|
|
Dimasm
Зарегистрирован: 25.04.2005 Сообщения: 454
|
Добавлено: Пн Окт 24 2005 21:21 Заголовок сообщения: |
|
|
and3008 писал(а): | Версия дистрибутива какая? |
извиняюсь, вылетело из головы. RH Linux 9.0 |
|
Вернуться к началу |
|
|
and3008
Зарегистрирован: 12.10.2001 Сообщения: 14893 Откуда: Н.Новгород
|
Добавлено: Пн Окт 24 2005 22:04 Заголовок сообщения: |
|
|
/usr/share/doc/initscripts
Там 3 файла. Поищи в них static-routes
Узнаешь на фига он нужен и где должен лежать
/etc/rc.d/init.d/network опять поищи static-routes.
Узнаешь как он работает.
Не поймешь - расскажу по пунктам.
Да, еще. Не знаю, починили ли это в RH 9.0, а в 7.3 была небольшая лажа с этим static-routes. Либо сам разберешься, либо опять спроси.
Вижу, что в скриптах ты разбираешься, можешь сам дойти.
Ну не дойдешь - помогу. |
|
Вернуться к началу |
|
|
Dimasm
Зарегистрирован: 25.04.2005 Сообщения: 454
|
Добавлено: Вт Окт 25 2005 21:48 Заголовок сообщения: |
|
|
блин, полтергейст какой-то
в /etc/rc.d/init.d/network нашёл третий вариант установки маршрутов по дефолту
Код: | # Add non interface-specific static-routes.
if [ -f /etc/sysconfig/static-routes ]; then
grep "^any" /etc/sysconfig/static-routes | while read ignore args ; do
/sbin/route add -$args
done
fi
|
создал файл
/etc/sysconfig/static-routes
net 192.168.0.0 netmask 255.255.255.0 gw 192.168.0.254 dev eth0
net 192.168.1.0 netmask 255.255.255.0 gw 192.168.1.254 dev eth1
всё по прожнему
Код: | [root@dimasm-getway root]# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.1.0 * 255.255.255.0 U 0 0 0 eth1
192.168.0.0 * 255.255.255.0 U 0 0 0 eth0
169.254.0.0 * 255.255.0.0 U 0 0 0 eth1
127.0.0.0 * 255.0.0.0 U 0 0 0 lo |
уже есть
/etc/sysconfig/networking/devices/eth0.route
/etc/sysconfig/networking/devices/eth1.route
также есть
/etc/sysconfig/network-scripts/route-eth0
/etc/sysconfig/network-scripts/route-eth1
и
/etc/sysconfig/static-routes
ничего не изменяется
что я делаю не так? |
|
Вернуться к началу |
|
|
gooamoko
Зарегистрирован: 26.12.2003 Сообщения: 98
|
Добавлено: Ср Окт 26 2005 09:12 Заголовок сообщения: |
|
|
Что-то я не понял суть конфигурации маршрутизатора...
Насколько известно из условия, есть маршрутизатор, который соединяет две вети. Так?
eth1 - интерфейс, который смотрит в 1-ю сеть
eth0 - интерфейс, который смотрит в 0-ю. Так?
Оба интерфейса имеют адрес 254 в своей подсети.
По умолчанию, имеется именно такая настройка таблиц, которую вы указали:
Цитата: |
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.1.0 * 255.255.255.0 U 0 0 0 eth1
192.168.0.0 * 255.255.255.0 U 0 0 0 eth0
169.254.0.0 * 255.255.0.0 U 0 0 0 eth1
127.0.0.0 * 255.0.0.0 U 0 0 0 lo
|
Теперь вопрос: Зачем прописывать маршруты, которые уже есть по умолчанию?
Цитата: |
net 192.168.0.0 netmask 255.255.255.0 gw 192.168.0.254 dev eth0
net 192.168.1.0 netmask 255.255.255.0 gw 192.168.1.254 dev eth1
|
Ведь они есть же стандартно? Или я что-то не понимаю?
В таблице маршрутизации, которая была приведена выше - подозрительной является, на мой взгляд, только строка
Цитата: |
169.254.0.0 * 255.255.0.0 U 0 0 0 eth1
|
Которая вполне могла появиться по вине сетевой карты интерфейса eth1. У меня было такое с одной карточкой AT2500.
Насколько я понимаю, если требуется сделать доступным обмен данными между 1-й и 0-й подсетями - надо в клиентские машины вписать адрес основного шлюза 192.168.1.254 и 192.168.0.254 соответственно.[/quote] _________________ Что один сделал, другой завсегда сломать сможет |
|
Вернуться к началу |
|
|
Dimasm
Зарегистрирован: 25.04.2005 Сообщения: 454
|
Добавлено: Ср Окт 26 2005 10:44 Заголовок сообщения: |
|
|
gooamoko писал(а): | Теперь вопрос: Зачем прописывать маршруты, которые уже есть по умолчанию?
|
как я понимаю, для каждой подсети должны быть указанны getway,
по умолчанию их нет
смысл был втом, чтобы разобраться, как правильно настроить маршруты по умолчанию такие как нужно и с getway, а не как решит система.
пока решаю этот вопрос дополнительным скриптом
кстати, а какой аргумент надо для "route" или "ip route" чтобы удалить все маршруты, разом? |
|
Вернуться к началу |
|
|
gooamoko
Зарегистрирован: 26.12.2003 Сообщения: 98
|
Добавлено: Вт Ноя 01 2005 04:30 Заголовок сообщения: |
|
|
Цитата: | смысл был втом, чтобы разобраться, как правильно настроить маршруты по умолчанию такие как нужно и с getway, а не как решит система. |
Это понятно. Но когда все сетки сосредоточены вокруг одного маршрутизатора - шлюзы прописывать надо только у клиентов.
У нас на предприятии - структура посложнее, потому на каждом маршрутизаторе окромя "своих" подсетей есть записи о других подсетях. Например, у тебя если есть в 0-й подсети компьютер с IP 192.168.0.100, который имеет два интерфейса и второй его интерфейс смотрит в 5-ю подсеть, то тогда надо на клиентах 0-й сети явно указывать через какой маршрутизатор в какую сеть направляется траффик.
На клиентах 1-й надо указать только шлюз по умолчанию, а на самом шлюзе - добавить запись для маршрутизатора 5-й сети. _________________ Что один сделал, другой завсегда сломать сможет |
|
Вернуться к началу |
|
|
|