В настоящее время я изучаю маршрутизацию Linux. Я использую CentOS 7.

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

Как мне настроить маршруты в таком случае?

VM1

  • В.М.

    enp0s3 - inet 10.0.2.15  netmask 255.255.255.0 - NAT
    enp0s8 - inet 198.162.0.1  netmask 255.255.255.0 - internal network
    
  • МАРШРУТЫ

    default via 10.0.2.2 dev enp0s3 proto static metric 100
    10.0.2.0/24 dev enp0s3 proto kernel scope link src 10.0.2.15 metric 100
    198.162.0.0/24 dev enp0s8 proto kernel scope link src 198.162.0.1 metric 100
    

VM2

  • ВМ только внутренняя сеть

    inet 198.162.0.2 netmask 255.255.255.0 - internal network
    
  • МАРШРУТЫ: пункт назначения 198.162.0.0 шлюз. 0.0.0.0;

пинг с ВМ1 до ВМ2 работает; пинг от VM1 до 8.8.8.8 (внешний мир) также работает;

Я не могу добавить шлюз по умолчанию через 198.162.0.1, он всегда показывает ошибку (Ошибка: либо "to" является дубликатом, либо "gw" является мусором)

Мне также пришло в голову, возможно ли это сделать так, потому что это только внутренняя сеть

1 ответ1

0

Хорошо выглядит до сих пор, но 2. Виртуальная машина (только внутренняя сеть) также нуждается в маршруте 192.168.0.0/24 (который обычно добавляется автоматически при добавлении IP-адреса) и маршрут по default via 192.168.0.1/24 для 1. ВМ (почти всегда добавляется автоматически). В противном случае 2. ВМ не будет знать, куда отправлять пакеты, предназначенные для "интернета".

Поиск проблемы:

Используйте ping чтобы увидеть, могут ли виртуальные машины взаимодействовать друг с другом, если 1. ВМ может общаться с Интернетом (например, ping 8.8.8.8 с сервером DNS Google), и, наконец, если 2. ВМ может общаться с интернетом (через 1. VM).

Используйте ip route get <ip_addr> чтобы проверить, соответствует ли ваша идея разрешения маршрутов таблицам маршрутизации.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .