У меня есть сервер 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
Заметили отсутствие поля «шлюз» на втором интерфейсе?