Назад | Перейти на главную страницу

Шлюз по умолчанию находится в другой подсети. Как настроить в RHEL6.2

У меня есть две подсети, маршрутизированные на мой сервер от интернет-провайдера. У меня только один ip шлюза. Шлюз находится в той же VLAN, что и мой IP-адрес. Например, netowrk 1 - 1.0.0.0/24, а сеть 2 - 2.0.0.0/24. Оба маршрутизатора маршрутизируются на eth0 моим интернет-провайдером. Шлюз 1.0.0.1. Мой IP-адрес хоста - 2.0.0.1/24 (eth0), поэтому я могу настроить шлюз по умолчанию вручную с помощью

ip route add default dev eth0
ip route add default via 1.0.0.1

а затем подключение к Интернету работает правильно. Как мне настроить его в / etc / sysconfig / network-scripts / ifcfg-eth0?

Я попытался установить GATEWAY = 1.0.0.1, но это не сработало. Пытался установить GATEWAY и GATEWAYDEV в / etc / sysconfig / network, и он выполняет только то, что делает первая команда из листинга выше.

Вы действительно не найдете поддержки для чего-то подобного, поскольку это не то, что проходит какие-либо проверки.

Так что подумай немного об этом. Ваш компьютер должен знать адрес шлюза, чтобы подключиться к другим машинам за пределами его локальной подсети. Итак, если у вас есть подсеть 10.0.1.0/24 и ваш компьютер 10.0.1.12, он сможет подключиться к любой машине с 10.0.1.0-10.0.1.255 без использования шлюза.

Обычно требуется, чтобы шлюз находился в подсети машины, в противном случае машина не сможет связаться с ней (без некоторых уловок маршрутизации, как это делаете вы). Возвращаясь к приведенному выше примеру, если бы у шлюза был IP-адрес 10.0.2.10, у машин не было бы возможности связаться с ним (чтобы отправлять трафик за пределы своей подсети, им необходимо достичь шлюза, который находится за пределами их подсети) .

Ты абсолютно уверен что у вас правильная маска подсети? В качестве другого примера, если у вас есть IP-адрес в 10.0.1.0/16 со шлюзом 10.0.2.0, это совершенно верно. Если у вас 10.0.1.0/24 и шлюз 10.0.2.0, то это не так. Я подозреваю, что ваш интернет-провайдер дал вам неверную информацию о сетевой маске.

Я сам нашел ответ.

#cat /etc/sysconfig/network-scripts/route-eth0
1.0.0.0/24 dev eth0
default via 1.0.0.1 dev eth0

Это выглядит немного лучше, чем строки в rc.local По крайней мере, это связано с маршрутизацией в терминах RHEL-способа настройки сети.

Вы не можете добиться того же результата с помощью сценариев инициализации. Вот соответствующая часть / etc / sysconfig / network-scripts / network-functions:

if [ "$GATEWAY" = "0.0.0.0" ]; then
    /sbin/ip route add default dev ${GATEWAYDEV}
else
    /sbin/ip route add default via ${GATEWAY}
fi

Это означает, что будет выполняться только одна из двух перечисленных вами команд, но не обе.

Лучшим решением было бы взять другой IP-адрес от 1.0.0.0/24 и передать его eth0 на сервере вместо 2.0.0.1. Затем у вас есть обычная настройка, маршрутизирующая все через 1.0.0.0/24, и вы используете 2.0.0.0/24 с полностью легальными вещами, такими как прокси-ARP и iptables.

Если вы не можете этого сделать, просто вставьте два ip route команды в /etc/rc.local.

На прошлой неделе столкнулся с той же проблемой. Настройте маршруты вручную с помощью ip route add..., и чтобы это продолжалось, ip r l > /etc/sysconfig/network-scripts/route-em1 (потом немного отредактируйте) и вуаля