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

Сервер Ubuntu, 2 устройства Ethernet, один и тот же шлюз - хотите, чтобы интернет-трафик проходил через 1 устройство (или, по крайней мере, позволить ему работать!)

У меня есть сервер Ubuntu 10.04 с двумя устройствами Ethernet, eth0 и eth1.

Сервер DHCP (который также служит интернет-шлюзом) находится по адресу 192.168.1.1.

Проблема, с которой я столкнулся прямо сейчас, заключается в том, что когда я подключил оба IP-адреса, я могу подключиться к обоим IP-адресам через SSH изнутри, но я не могу подключиться к Интернету с сервера. Если я отключу одно из устройств (например, eth1), оно заработает, никаких проблем. (Кроме того, я получаю тот же результат, когда запускаю sudo ifconfig eth1 down).

Вопрос, как я могу настроить его так, чтобы оба устройства eth0 и eth1 работали нормально в одной сети, но также разрешали доступ в Интернет? (Я открыт для принудительного прохождения всего интернет-трафика через одно устройство или через оба, я гибкий).

Судя по поиску в Google, у меня может быть уникальная (или непопулярная) проблема, поэтому я не смог найти решения. Люди этого обычно не делают? Причина, по которой я хочу использовать оба устройства Ethernet, заключается в том, что я хочу запускать разные службы локального трафика на обоих, чтобы разделить нагрузку, так сказать ...

Заранее спасибо.

ОБНОВИТЬ

Содержимое / etc / network / interfaces:

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth0
iface eth0 inet dhcp

# The secondary network interface
#auto eth1
#iface eth1 inet dhcp

(Примечание: выше я закомментировал последние 2 строки, потому что думал, что это вызывает проблемы ... но это не помогло)

netstat -rn

Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
192.168.1.0     192.168.1.1     255.255.255.0   UG        0 0          0 eth0
192.168.1.0     0.0.0.0         255.255.255.0   U         0 0          0 eth0
0.0.0.0         192.168.1.1     0.0.0.0         UG        0 0          0 eth0

ОБНОВЛЕНИЕ 2

Я внес изменения в файл / etc / network / interfaces, как предложил Кевин. Прежде чем отобразить содержимое файла и таблицу маршрутов, когда я вхожу на сервер (через SSH), я не могу проверить связь с внешним сервером, поэтому это та же проблема, с которой я столкнулся, что привело к публикации этого вопроса.

Я выполнил перезапуск /etc/init.d/networking после внесения изменений в файл.

Содержимое / etc / network / interfaces:

# The loopback network interface auto lo iface lo inet loopback

# The primary network interface 
auto eth0 iface eth0 inet dhcp
    address 192.168.1.210
    netmask 255.255.255.0
    gateway 192.168.1.1

# The secondary network interface 
auto eth1 iface eth1 inet dhcp
    address 192.168.1.211
    netmask 255.255.255.0

вывод ifconfig

eth0      Link encap:Ethernet  HWaddr 78:2b:cb:4c:02:7f
          inet addr:192.168.1.210  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::7a2b:cbff:fe4c:27f/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:6397 errors:0 dropped:0 overruns:0 frame:0
          TX packets:683 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:538881 (538.8 KB)  TX bytes:85597 (85.5 KB)
          Interrupt:36 Memory:da000000-da012800

eth1      Link encap:Ethernet  HWaddr 78:2b:cb:4c:02:80
          inet addr:192.168.1.211  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::7a2b:cbff:fe4c:280/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:5799 errors:0 dropped:0 overruns:0 frame:0
          TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:484436 (484.4 KB)  TX bytes:1184 (1.1 KB)
          Interrupt:48 Memory:dc000000-dc012800

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:635 errors:0 dropped:0 overruns:0 frame:0
          TX packets:635 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:38154 (38.1 KB)  TX bytes:38154 (38.1 KB)

netstat -rn

Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
192.168.1.0     0.0.0.0         255.255.255.0   U         0 0          0 eth0
192.168.1.0     0.0.0.0         255.255.255.0   U         0 0          0 eth1
0.0.0.0         192.168.1.1     0.0.0.0         UG        0 0          0 eth1
0.0.0.0         192.168.1.1     0.0.0.0         UG        0 0          0 eth0

Если вам не нужно рассматривать оба интерфейса как разные, лучшим решением было бы связать оба интерфейса вместе и разделить нагрузку между ними: https://help.ubuntu.com/community/UbuntuBonding

Если вам нужно сохранить текущий сценарий, взгляните на эту старую статью - http://www.linuxjournal.com/article/7291 -

В настоящее время команды могут быть разными, но идея та же: маршрутизация на основе политик на основе IP-адреса источника.

Я пока не могу комментировать, но я считаю, что предложение Кевина должно работать, но в соответствии с вашей таблицей маршрутизации у вас все еще есть две записи, поэтому кажется, что вы не перезапустили сеть после изменения.

Возможно, это проблема со шлюзом. Попробуйте добавить новый шлюз:

маршрут добавить по умолчанию gw 192.168.x.x

и комментируя «шлюз» в статических сетях.

Эта проблема не уникальна, это проблема маршрутизации.

Бегать : route -n чтобы показать вашу таблицу маршрутизации.

Моя таблица маршрутизации выглядит так:

Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
10.0.2.0        0.0.0.0         255.255.255.0   U         0 0          0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U         0 0          0 eth0
0.0.0.0         10.0.2.2        0.0.0.0         UG        0 0          0 eth0

Это нормально, потому что у меня только 1 шлюз по умолчанию (это последняя строка), но в вашей таблице маршрутизации есть 2 шлюза по умолчанию, например:

Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
10.0.2.0        0.0.0.0         255.255.255.0   U         0 0          0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U         0 0          0 eth0
0.0.0.0         10.0.2.2        0.0.0.0         UG        0 0          0 eth0
0.0.0.0         10.0.2.1        0.0.0.0         UG        0 0          0 eth1

Итак, когда ваш сервер подключается к Интернету, он поочередно использует эти два шлюза (две линии Интернета). Это привело к тому, что сервер SSH вызвал исключение, подобное этому, в / var / log / secure

ssh_exchange_identification: read: Connection reset by peer

Решение: удалить 1 шлюз по умолчанию.

/sbin/route del default
/sbin/route add default gw 192.168.1.1 dev eth0 

(Измените IP, соответствующий вашей системе) Удачи

Если у вас все в порядке со всем трафиком, проходящим только через один интерфейс, вы можете просто установить настройки шлюза по умолчанию только для одного интерфейса ... Например:

Предположим, вы хотите, чтобы трафик проходил только через "eth0":

auto eth0
iface eth0 inet static
    address 192.168.1.210
    netmask 255.255.255.0
    gateway 192.168.1.1

auto eth1
iface eth1 inet static
    address 192.168.1.211
    netmask 255.255.255.0

Заметили отсутствие поля «шлюз» на втором интерфейсе?