У меня есть виртуальная машина поверх VMware, на которой я запускаю Ubuntu Server 12.04. У меня есть два сетевых адаптера, настроенных для виртуальной машины, и моя конфигурация / etc / network / interfaces выглядит так:
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
auto eth0
iface eth0 inet static
address 10.226.83.2
netmask 255.255.255.248
gateway 10.226.83.1
# Management Interface
auto eth1
iface eth1 inet static
address 10.20.9.200
netmask 255.255.240.0
up ip route add 10.20.0.0/20 via 10.20.0.1 dev eth1 || true
up ip route add 10.21.120.0/22 via 10.20.0.1 dev eth1 || true
up ip route add 10.13.122.0/22 via 10.20.0.1 dev eth1 || true
Моя проблема в том, что с этой конкретной конфигурацией я не могу увидеть маршрут к 10.13.122.0/22 при вызове маршрута:
$ route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default 10.226.83.1 0.0.0.0 UG 100 0 0 eth0
10.20.0.0 * 255.255.240.0 U 0 0 0 eth1
10.21.120.0 10.20.0.1 255.255.252.0 UG 0 0 0 eth1
10.118.233.0 10.118.233.2 255.255.255.0 UG 0 0 0 tun10000
10.118.233.2 * 255.255.255.255 UH 0 0 0 tun10000
10.226.83.0 * 255.255.255.248 U 0 0 0 eth0
Я пытаюсь достичь того, что трафик в и из сетей 10.20.0.0/20 , 10.21.120.0/22 и 10.13.122.0/22 будут проходить через eth1 к 10.20.0.1, в противном случае трафик будет проходить через eth0 и через 10.226.83.1. tun10000 - это адаптер, созданный нашей конфигурацией OpenVPN, и в этом случае его можно игнорировать.
В настоящее время все, кроме 10.13.122.0/22, работает нормально, что отражено в таблице маршрутизации; Я не вижу 10.13.122.0/22 в таблице, хотя маршрут для него был добавлен с использованием того же синтаксиса, что и для двух других сетей.
Кроме того, когда я выполняю sudo /etc/init.d/networking restart, я получаю последующий:
$ sudo /etc/init.d/networking restart
* Running /etc/init.d/networking restart is deprecated because it may not enable again some interfaces
* Reconfiguring network interfaces...
ssh stop/waiting
ssh start/running, process 21240
RTNETLINK answers: File exists
RTNETLINK answers: Invalid argument
ssh stop/waiting
ssh start/running, process 21306
Даже с двумя ответами RTNETLINK я получаю функциональный интерфейс, за исключением маршрута к 10.13.122.0/22. Как я могу заставить этот маршрут работать и есть ли способ избавиться от сообщений «Файл существует» и «Недопустимый аргумент»?
У меня в конфигурации была неправильная маска; при замене 10.13.122.0/22 на 10.13.122.0/23 все заработало.
10.21.120.0/22
- это 10.21.120.0-10.21.123.255, следовательно, идентично 10.13.122.0/22
. Таким образом, установка маршрута для 10.13.122.0/22
выдаст ошибку «Файл существует» (или, точнее, «запись уже существует»).
Вам нужно определить топологию вашей сети немного лучше.