LINUX.ORG.RU

История изменений

Исправление kostik87, (текущая версия) :

Таких интерфейсов в локальной системе может быть много. Шлюзов, соответственно, тоже.

Если ты говоришь именно о шлюзе, т.е. gateway, он же default route, то в основной таблице маршрутизации (main) может быть только один маршрут по умолчанию (gateway).

Синтаксис добавления маршрута по умолчанию:

ip route add default via 172.17.0.1
route add default gw 172.17.0.1

Маршрут по умолчанию (gateway) добавляется в таблицу маршрутизации main, что бы увидеть её содержимое воспользуйся iproute2:

ip route show table main
Если тебе нужно, что бы пакеты, пришедший из одной сети маршрутизировались через один шлюз, а из другой сети через другой или то же самое с интерфейсами, то тебе нужно создать свою таблицу маршрутизации, привязать к ней интерфейсы или нужные сети и в каждой из таблиц указать свой шлюз.

В Centos если этой самой локальной системе не показать в явном виде, какой или какие из этих адресов использовать в качестве шлюза по умолчанию, то система не будет знать, куда отправлять пакеты к адресам, которых нет в ее локальной таблице маршрутизации.

Ты, скорее всего, имеешь ввиду просто маршрут до некоторой сети, которая недоступна напрямую, а лишь через определённый host, который будет являться шлюзом для доступа к нужной сети. В этом случае тебе использовать директиву gateway нельзя, она используется для указания именно маршрута по умолчанию. Тебе нужно добавить маршрут посредством iproute2 или просто route:

ip route add 192.168.0.0/24 via 172.17.0.1
route add -net 192.168.0.0 netmask 255.255.255.0 gw 172.17.0.1
Как минимум в Debian нужно для этого использовать функцию postup и просто указать в ней указанные выше команды.

Подытожу:
директива gateway используется для указания маршрута по умолчанию, в общем случае он может быть только один в одной таблице маршрутизации; для указания маршрутов до сетей или хостов используй iptoute2 или просто route, смотри выше.

Исходная версия kostik87, :

Таких интерфейсов в локальной системе может быть много. Шлюзов, соответственно, тоже.

Если ты говоришь именно о шлюзе, т.е. gateway, он default route, то в основной таблице маршрутизации (main) может быть только один маршрут по умолчанию (gateway).

Маршрут по умолчанию (gateway) добавляется в таблицу маршрутизации main, что бы увидеть её содержимое воспользуйся iproute2:

ip route show table main
Если тебе нужно, что бы пакеты, пришедший из одной сети маршрутизировались через один шлюз, а из другой сети через другой или то же самое с интерфейсами, то тебе нужно создать свою таблицу маршрутизации, привязать к ней интерфейсы или нужные сети и в каждой из таблиц указать свой шлюз.

В Centos если этой самой локальной системе не показать в явном виде, какой или какие из этих адресов использовать в качестве шлюза по умолчанию, то система не будет знать, куда отправлять пакеты к адресам, которых нет в ее локальной таблице маршрутизации.

Ты, скорее всего, имеешь ввиду просто маршрут до некоторой сети, которая недоступна напрямую, а лишь через определённый host, который будет являться шлюзом для доступа к нужной сети. В этом случае тебе использовать директиву gateway нельзя, она используется для указания именно маршрута по умолчанию. Тебе нужно добавить маршрут посредством iproute2 или просто route:

ip route add 192.168.0.0/24 via 172.17.0.1
route add -net 192.168.0.0 netmask 255.255.255.0 gw 172.17.0.1
Как минимум в Debian нужно для этого использовать функцию postup и просто указать в ней указанные выше команды.

Подытожу:
директива gateway используется для указания маршрута по умолчанию, в общем случае он может быть только один в одной таблице маршрутизации; для указания маршрутов до сетей или хостов используй iptoute2 или просто route, смотри выше.