Как правильно настроить 2 сетевых интерфейса в CentOS (работает в VirtualBox)?

13

У меня есть машина VirtualBox под управлением CentOS 6.5. Я создал 2 сетевых адаптера для него в сетевых настройках VirtualBox для машины. Первый - это NAT, который я хочу, чтобы гость использовал для подключения к Интернету, а второй - «Только для хоста», который я буду использовать для SSH и доступа к веб-серверу с главного компьютера. Это руководство на форумах VirtualBox - это то, чего я хочу достичь, но я не могу найти /etc/network/interfacesфайл в CentOS 6.5, поэтому я предполагаю, что конфигурация выполняется по-другому.

Настроив адаптеры NAT и Host-only, я запустил виртуальную машину и сделал, ip addr showи у меня есть 2 интерфейса, eth0и eth2(я не знаю, почему eth1был как-то пропущен). Поэтому я настраиваю оба ifcfg-ethXфайла /etc/sysconfig/network-scripts, устанавливая eth0DHCP (для NAT) и eth2статический IP (только для хоста). Для eth0, в ONBOOT=yesто время как для eth2, ONBOOT=no. С помощью этой настройки я могу подключиться к pingИнтернету, т.е. ping -c 3 www.google.comон получает ответ, поэтому я знаю, что могу подключиться к Интернету (пока eth2не работает).

Далее я ifup eth2. С хост-компьютера я использую SSH, используя заданный статический IP-адрес, и могу подключиться без проблем. Но когда я делаю ping -c www.google.comэто время, это терпит неудачу, и я знаю, что потерял свое соединение с Интернетом, даже если eth0все еще работает. Выполнение a route -nпоказывает мне табличный вывод с eth2занятием первой и последней строк, в то время eth0как между ними (извините, я не могу опубликовать фактический вывод, потому что я удалил виртуальную машину из-за разочарования ...).

Я создал новую виртуальную машину CentOS и хотел бы продолжить ту же настройку. Мое сетевое фу почти не существует, так что я в ноте. Я хотел бы получить несколько советов о том, как это сделать правильно (например, как настроить использование адаптера NAT eth0и настроить использование адаптера только для хоста, eth1а не eth2как, как сделать его eth0еще пригодным для использования, даже если eth1/ eth2работает и работает).

Обновить

Итак, я установил и запустил новую виртуальную машину, и теперь она работает, если у меня первый адаптер настроен только на хост, а второй - на NAT. Это настроено так:

Настройки сети VirtualBox

  • Сетевой адаптер 1: только для хоста ( vboxnet0IP-адрес установлен 10.3.0.1, маска сети 255.255.255.0и DHCP отключены)
  • Сетевой адаптер 2: NAT (DHCP)

/etc/sysconfig/network-scripts/ifcfg-ethXНастройки CentOS VM

# ifcfg-eth0
DEVICE=eth0
HWADDR=08:00:27:EC:6C:B9
TYPE=Ethernet
UUID=1339bc30-...
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=static
DHCPCLASS=
IPADDR=10.3.0.100
NETMASK=255.255.255.0
GATEWAY=10.3.0.1

# ifcfg-eth2
DEVICE=eth2
HWADDR=08:00:27:EB:73:BA
TYPE=Ethernet
UUID=1339bc30-...
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=dhcp

Результат ip route

10.0.3.0/24  dev  eth2  proto  kernel  scope  link  src  10.0.3.15
10.3.0.0/24  dev  eth0  proto  kernel  scope  link  src  10.3.0.100
169.254.0.0/16  dev  eth0  scope  link  metric  1002
169.254.0.0/16  dev  eth2  scope  link  metric  1003
default via 10.0.3.2 dev eth2

Результат ip addr

1:  lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
     link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00:00
     inet 127.0.0.1/8 scope host lo
     inet6 ::1/128 scope host
        valid_lft forever preferred_lft forever
2:  eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
     link/ether 08:00:27:ec:6c:b9 brd ff:ff:ff:ff:ff:ff
     inet 10.3.0.100/24 brd 10.3.0.255 scope global eth0
     inet6 fe80::a00:27ff:feec:6cb9/64 scope link
        valid_lft forever preferred_lft forever
3:  eth2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
     link/ether 08:00:27:eb:73:ba brd ff:ff:ff:ff:ff:ff
     inet 10.0.0.15/24 brd 10.0.3.255 scope global eth2
     inet6 fe80::a00:27ff:feeb:73ba/64 scope link
        valid_lft forever preferred_lft forever
baktin
источник
Какой у вас шлюз по умолчанию?
spuder
@spuder Для интерфейса только для хоста? Если я правильно помню, было установлено vboxnet0(только для хоста, если), 192.168.56.1так что я думаю, что это был шлюз по умолчанию. Я не могу вспомнить для интерфейса NAT.
Бактин
Если проблема все еще существует, почему бы вам не дать нам вывод ip routeна новой виртуальной машине ...? И это из ip addr.
Хауке Лагинг
@HaukeLaging Я обновил вопрос с запрошенными вами результатами. Кажется, теперь работает, имея первый адаптер для хоста и второй для NAT. Но я чувствую, что это обходной путь ... и я хотел бы знать, как лучше всего это сделать, если я установил первый адаптер для NAT, а второй - только для хоста.
Бактин
Если вы попытаетесь повторить это, используйте «ifconfig -a», чтобы получить MAC для eth2, который должен использоваться в строке HWADDR. И вы, вероятно, хотите заменить eth2 на eth1. Как вы, вероятно, будете иметь eth1, а не eth2
Мангирдас Скрипка

Ответы:

9

Я предполагаю, что проблема (или: была) в том, что определение шлюза конфликтует с DHCP. Каким-то образом порядок интерфейса, кажется, влияет на это.

Основная проблема: как сделать маршрутизацию с двумя сетевыми картами? Как я понимаю, карта только для хоста должна использоваться только для подключения к хосту. Таким образом, вы вообще не должны определять какой-либо шлюз для этого интерфейса. Но, возможно, это работает, только если первый интерфейс использует DHCP.

Кроме того, вы можете полностью отказаться от DHCP. Интерфейс NAT работает и со статической конфигурацией.

Хауке Лагинг
источник
2
Удаление шлюза для интерфейса только для хоста работало для меня. Благодарю.
Бактин
-1

У меня есть набор

Adapter 1 = NAT = eth0
Adapter 2 = Bridged Adapter = eth1

В Oracle Linux (RHEL / CentOS) я запускаю приложение «Сетевые подключения»
и задаю для eth0 фиксированный IP-адрес,
а для eth1 - автоматический DHCP

Когда вы делаете ifconfig, я вижу, что и eth0, и eth1 имеют настроенные адреса inet и связь между HOST и GUEST, а также из GUEST в Internet - все работает.

Были времена, когда я некоторое время не запускал VBOX и обнаружил, что связь не работает. Без понятия.

Сегодня я запустил GUEST и без сетевого подключения (в обе стороны) я перезапустил и все работает.

Может быть, делать обновления VBXO, я просто не знаю.

Кстати: для связи с БД Oracle установите Переадресацию портов на NAT (eth0) с 127.0.0.1 на гостевой IP-порт 1521. Сделайте это из VBOX.

У меня также отключен брандмауэр.

al881
источник