У меня две подсети и RedHat 5.3 с двумя сетевыми адаптерами, каждая с IP-адресом в одной подсети:
eth1 172.16.0.4, 255.255.255.0
eth0 194.20.23.183, 255.255.255.0
В каждой подсети у меня есть шлюз / брандмауэр, и я хотел бы перенаправить каждую сетевую карту на свой собственный GW. Это текущая таблица маршрутизации:
Destination Gateway Genmask Flags Metric Ref Use Iface
172.16.0.0 * 255.255.255.0 U 0 0 0 eth1
194.20.23.0 * 255.255.255.0 U 0 0 0 eth0
default 172.16.0.1 0.0.0.0 UG 0 0 0 eth1
Если я сначала попытаюсь удалить уже существующее правило в сети 194.20.23.0, а затем использую следующую команду
route add -net 194.20.23.0 netmask 255.255.255.0 gw 194.20.23.181 dev eth0
Он возвращается
SIOCADDRT: Network is unreachable
Может ли кто-нибудь объяснить мне простыми словами причину этого сообщения и, возможно, как я могу достичь цели?
Заранее спасибо С уважением
Алессандро Илардо
Я думаю, вам нужно поменять местами устройства. попробуй это:
route add -net 194.20.23.0 netmask 255.255.255.0 gw 194.20.23.181 dev eth1
это должно быть соответствующее правило вашей установки:
eth0 172.16.0.4, 255.255.255.0
eth1 194.20.23.183, 255.255.255.0
Во-первых, добавляемый маршрут находится в том же сегменте сети, что и сам интерфейс. Это означает, что при отправке этих пакетов нет необходимости использовать маршрутизатор / шлюз. Интерфейс может напрямую обращаться к хосту. Локальный коммутатор получит это без использования маршрутизатора в качестве посредника.
Вы получаете сообщение об ошибке при добавлении правила, потому что это правило определяет, как отправлять пакеты во всю сеть, давая указания для отправки на определенный хост в этой сети. Это уловка-22. Чтобы отправить пакет на этот шлюз, вам нужно знать, как добраться до его IP-адреса. Чтобы отправить на его IP-адрес, вы должны пройти через этот шлюз. Это как сказать кому-то In order to get to Main Street, go to 1512 Main Street, and ask the guy who lives there.
Что касается правильного шлюза, то это то, что делает последняя строка в вашей таблице маршрутизации. Он направляет весь трафик на 172.16.0.1, который не соответствует правилам, указанным выше. ЭТО ваш шлюз по умолчанию. Вам не нужен GW для вашего второго сетевого адаптера, потому что ВЕСЬ нелокальный трафик проходит через этот шлюз.
Если вы хотите разделить половину своего трафика через другие сетевые адаптеры / GW, вам нужно будет определить, в каких сетях это сделать. например: route add -net 10.0.0.0 netmask 255.0.0.0 gw 194.20.23.181 dev eth1
получит ТОЛЬКО сеть 10.x.x.x, маршрутизируемую через вторую сетевую карту.
Вы также можете сделать несколько маршрутизация на основе политик