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

debian: стандартный исходящий IP / маршрут

На сервере debian squeeze я получил 2 IP-адреса на eth0 (eth0 и eth0: 1). При открытии TCP-соединений сервер по умолчанию использует IP-адрес eth0: 1. Однако я хочу, чтобы он использовал основной (eth0) IP, потому что я хочу, чтобы другой использовался только для (прослушивания) демонов.

#/etc/network/interfaces
    auto eth0
    iface eth0 inet static
            address 92.xxx.xxx.92
            netmask 255.255.255.192
            network 92.xxx.xxx.64
            broadcast 93.xxx.xxx.127
            gateway 92.xxx.xxx.65

    auto eth0:1
    iface eth0:1 inet static
            address 108.xxx.xxx.146
            netmask 255.255.255.192
            gateway 108.xxx.xxx.129

#ip route show
    108.xxx.xxx.128/26 dev eth0  proto kernel  scope link  src 108.xxx.xxx.146
    92.xxx.xxx.64/26 dev eth0  proto kernel  scope link  src 92.xxx.xxx.92
    default via 108.xxx.xxx.129 dev eth0  src 108.xxx.xxx.146
    default via 92.xxx.xxx.65 dev eth0

Что я могу сделать, чтобы debian использовал 92. IP для исходящих соединений? Другой, конечно, должен работать.

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

Если по каким-либо причинам вам действительно нужно, чтобы 2 разные IP-сети работали одновременно, вам следует использовать ip rule в Linux.

Скажем, две IP-сети «A» и «B» находятся на одной сетевой карте. «А» - первичный, т.е. е., при пинге некоторых хостов из коробки, вы хотите, чтобы использовались параметры IP «A», поэтому вы помещаете только шлюз по умолчанию «A» в (основную) таблицу маршрутизации. И если вам нужны ответы, приходящие от «B», чтобы использовать шлюз по умолчанию «B», вы можете управлять этим с помощью:

  • ip rule add from B_Network/Mask lookup table B_table pref 20000
  • ip route add default via B_gw table B_table

B_table должна быть определена в /etc/iproute2/rt_tables первый. Видеть LARTC для подробностей.