Как я могу заставить эти статические маршруты IPv4 работать?
Я очень новичок в сети linux и пытаюсь настроить следующую топологию для некоторых виртуальных машин на тестовом стенде. (Обратите внимание: я должен настроить виртуальные машины именно таким образом для моих целей тестирования. Я не могу обманывать и помещать их в переключатели. Все они должны быть в разных сетях).
Node1 Node2 Node3 Node4
eth[x]<-->eth[x] eth[x]<-->eth[x]
eth[y]<-->eth[y]
В настоящее время я пытаюсь заставить Node4 поговорить с Node2 через Node3, но неудачно. Может кто-нибудь сказать мне, что я ошибаюсь и как его исправить?
IP-адрес Node1:
eth2 - 10.1.3.2/24
IP-адреса Node2
eth3 - 10.1.1.2/24
eth4 - 10.1.3.3/24
IP-адреса узла Node3
eth1 - 10.1.2.2/24
eth3 - 10.1.1.3/24
IP-адрес узла Node4
eth4 - 10.1.2.3/24
(Маршруты, от «ip route») Маршрут для Node1:
10.1.3.0/24 dev eth2 proto kernel scope link src 10.1.3.2
Маршрут для узла 2:
10.1.1.0/24 dev eth3 proto kernel scope link src 10.1.1.2
10.1.3.0/24 dev eth4 proto kernel scope link src 10.1.3.3
Маршрут для Node3, после добавления через:
10.1.1.0/24 dev eth3 scope link src 10.1.1.3
10.1.2.0/24 dev eth1 scope link src 10.1.2.2
10.1.3.0/24 via 10.1.1.2 dev eth3
Маршрут для узла 4:
10.1.2.0/24 dev eth4 proto kernel scope link src 10.1.2.3
При этой настройке узел Node3 может пинговать адрес узла Node2 в 10.1.3.3, но Node4 не может выполнить пинг по этому адресу. Что мне нужно сделать, чтобы Node4 мог выполнить ping 10.1.3.3? Кроме того, как я могу получить Node4, чтобы иметь возможность общаться до Node1?
2 ответа
Шаг первый, включите IP Forwarding на узле2 и узле3 (или узлы будут «хостами», а не «маршрутизаторами»)
Все узлы должны знать, что не связано с :
Node1
ip route add 10.1.1.0/24 via 10.1.3.3
ip route add 10.1.2.0/24 via 10.1.3.3
Node2
ip route add 10.1.2.0/24 via 10.1.1.3
node3
ip route add 10.1.3.0/24 via 10.1.1.2
Node4
ip route add 10.1.3.0/24 via 10.1.2.2
ip route add 10.1.1.0/24 via 10.1.2.2
(Это было бы намного проще, если бы все было на одном снимке.)
Node4 не имеет маршрутов к префиксам, отличным от своих. Как Node4 знает, куда отправлять трафик для Node2 10.1.3.3
адрес?
Протоколы маршрутизации позволят маршрутизаторам сообщать каждому маршруту, о котором они знают, так что каждый маршрутизатор знает, как отправлять трафик для префикса в определенном направлении. Вы можете сделать это со статическими маршрутами, но он не масштабируемый или динамический.
То, что должны иметь конечные узлы, - это маршрут по умолчанию 0.0.0.0/0
, указывающий на их единственный интерфейс. Это разваливается, если у них более одного интерфейса. Два средних узла будут нуждаться в маршрутах к префиксам, к которым у них нет прямого контакта, и это не должно выполняться с помощью маршрутов по умолчанию.
Представьте себе сеть со многими маршрутизаторами, где вы пытаетесь идти в ногу с такими вещами. Вы можете понять, почему были созданы протоколы маршрутизации. Статическая маршрутизация имеет свои применения, но попытка полностью запустить сеть, используя, является рецептом для безумного.