Не вдається використовувати два мережевих інтерфейси одночасно


9

У мене є проблема. Перш за все, я хочу налаштувати сервер на Ubuntu 14.04. У мене є 2 інтерфейси: eth0 для dhcp-сервера та eth1 для підключення до Інтернету. Але якщо я підключаюся до двох мереж одночасно, на ПК немає Інтернету. Тому я повинен вибирати між сервером та Інтернетом. Це жахливо, хтось може мені сказати, як закрити це питання?

/ і т.д. / мережа / інтерфейси:

auto lo eth0 eth1

iface lo inet loopback

iface eth0 inet static
address 172.16.1.100
netmask 255.255.255.0
broadcast 172.16.1.255
gateway 172.16.1.254

вихідні маршрути sudo:

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         192.168.0.1     0.0.0.0         UG    0      0        0 eth1
192.168.0.0     *               255.255.255.0   U     1      0        0 eth1

UPD: ifconfig виводить:

eth0      Link encap:Ethernet  HWaddr 90:e6:ba:46:1d:50  
          inet6 addr: fe80::92e6:baff:fe46:1d50/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1110 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:0 (0.0 B)  TX bytes:184287 (184.2 KB)

eth1      Link encap:Ethernet  HWaddr 00:04:75:98:5f:da  
          inet addr:192.168.0.101  Bcast:192.168.0.255  Mask:255.255.255.0
          inet6 addr: fe80::204:75ff:fe98:5fda/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:14498 errors:0 dropped:0 overruns:2 frame:0
          TX packets:13096 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:9710708 (9.7 MB)  TX bytes:1840400 (1.8 MB)
          Interrupt:18 Base address:0x4c00 

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:65536  Metric:1
          RX packets:4398 errors:0 dropped:0 overruns:0 frame:0
          TX packets:4398 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:527890 (527.8 KB)  TX bytes:527890 (527.8 KB)

Чи налаштовує мережевий менеджер ваші пристрої? Показати вихід nmcli dev statusтакож можна ping 192.168.0.1?
meccooll

Відповіді:


4

Конфігуруючи результати ifconfigта коментарі, надані до моєї першої відповіді, я думаю, що проблема пов'язана з тим, як ви налаштовуєте свої NIC /etc/network/interfaces.

Оскільки у вас немає конкретної конфігурації для eth1 в /etc/network/interfaces, я вважаю, що ваш модем надає вашому серверу IP-інформацію через DHCP. Відповідно до виходу route, ви отримуєте шлюз за замовчуванням, що вказує на модем, так що в Інтернет.

Але у вашому /etc/network/interfacesфайлі для eth0 у вас також налаштований шлюз за замовчуванням (оператор gateway 172.16.1.254).

У вас не може бути двох шлюзів за замовчуванням у системі. Призначення шлюзу за замовчуванням на eth1 відключає статичну конфігурацію eth0 , причину, чому немає IP для eth0 на ifconfigвиході, і чому Інтернет більше не працює, а внутрішня мережа.

Вам доведеться видалити рядок gateway 172.16.1.254і спробувати ще раз.

Зрозуміло, якщо у вас є більше однієї підмережі у внутрішній локальній мережі, ви більше не зможете їх дістати. Якщо ви не налаштуєте статичний маршрут на всі ці підмережі на своєму сервері:

sudo route add -net ABCD gw 172.16.1.254

Ви можете додати routeкоманду в скрипт, збережений під, /etc/network/if-up.dякий слід запускати кожного разу, коли інтерфейс піднімається.


Насправді у вас може бути два маршрути за замовчуванням для даної системи (не в його системі, оскільки сервер не має доступу до Інтернету), але вони мають різні пріоритети або конфігурацію, щоб збалансувати обидва.
JrBenito

3

З того, що я розумію у вашій публікації, ви підключаєтесь до Інтернету через eth1 та до своєї внутрішньої мережі через eth0 . Потім ваш сервер відіграє роль сервера DHCP і шлюзу за замовчуванням, щоб ваш ПК перейшов в Інтернет.

Спочатку на ПК перевірте, чи правильно вони отримали всі налаштування DHCP, включаючи шлюз. З вашого запитання я припускаю, що це повинно бути 172.16.1.100

По-друге, будьте впевнені, що ваш eth1 добре підключений до Інтернету та добре налаштований; це, очевидно, залежить від вашого провайдера.

Нарешті, найважливіша операція, вам доведеться включити переадресацію IP між вашими двома інтерфейсами на сервері. Без цього пакет не буде маршрутизований між ПК та Інтернетом:

Ручне налаштування:

sudo echo 1> / proc / sys / net / ipv4 / ip_forward

Щоб автоматично встановити прапор IP-адреси в момент завантаження, відменте рядок #net.ipv4.ip_forward=1у/etc/sysctl.conf

Вам також доведеться переконатися у відсутності правил брандмауера IPtables, які блокують трафік. Зробіть:

iptables -L -n

щоб отримати список правил, якщо такі є. Я спершу спробую виконати цю установку, якщо всі правила брандмауера відключені:

iptables -F


Ні, я намагаюся налаштувати PXE-сервер. Комп'ютери в моїй локальній мережі отримують IP-адреси правильно (вони завантажуються). Але Інтернету немає ні на сервері, ні (звичайно) у клієнтів.
Андрейккаа

Отже, поки що мені залишається лише виправити підключення до Інтернету на сервері.
Андрейкаа

@ user3452627: Чи можете ви, будь ласка, додати висновок ifconfigдо свого питання. А також вкажіть, як ви підключені до Інтернету.
Бенуа

Звичайно. Мене підключено через модем.
Andreikkaa

@ user3452627: чи дає цей модем IP-адресу вашому серверу через DHCP?
Бенуа

2

У мене була схожа проблема, але мій файл інтерфейсів був порожнім так:

# The loopback network interface
auto lo
iface lo inet loopback

Проблему вдалося виправити, перемістивши / видаливши знайдений файл провідного з'єднання: /etc/NetworkManager/system-connections/Wired connection 1

Після перезавантаження вдалося підключитися до обох мереж.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.