Таблица маршрутизации в Ubuntu

Таблица маршрутизации в Ubuntu

Я новичок в сети и не знаю, как правильно настроить.

Я могу пинговать сервер

ping -I 192.168.42.1 42.112.178.185

но я не смог пинговать

ping 42.112.178.185

42.112.178.185 разрешен только для 192.168.42.0/24.

Как мне добавить таблицу маршрутизации? Я хотел бы использовать

ping 42.112.178.185 

Вместо

ping -I 192.168.42.1 42.112.178.185

Я пытаюсь позвонитьhttp://42.112.178.185с curl и нужно направить из 192.168.42.1.

решение1

ОБНОВЛЯТЬПо вашему желанию, вот решение конкретной проблемы: используйте curlправильный исходный IP-адрес при подключении, указав привязку к нему с помощью --interfaceопции перед подключением.

Изстраница руководства curl:

--интерфейс

Выполнить операцию с использованием указанного интерфейса. Вы можете ввести имя интерфейса, IP-адрес или имя хоста.

Итак, проблему можно решить, просто используя эту curlкоманду, чтобы добраться до 42.112.178.185 с правильным IP-адресом:

curl --interface 192.168.42.1 http://42.112.178.185/

Конечно, вы также можете указать интерфейс.


Я все же оставлю решение по маршрутизации ниже, возможно, оно кому-то поможет.


Действительно, можно добавить маршрут, который укажет использовать другой исходный IP-адрес, нежели IP-адрес по умолчанию (принадлежащий сети шлюза) при достижении цели.

примечание: поскольку некоторая необходимая информация не была предоставлена: IP шлюза по умолчанию и интерфейс для доступа к нему, требуется дополнительный скриптинг, чтобы узнать его значение. Также, поскольку может быть туннель, который, возможно, не заменил маршрут по умолчанию, но мог добавить два "полумаршрута по умолчанию" 0.0.0.0/1 и 128.0.0.0/1, я получу маршрут к 42.112.178.185, чтобы получить правильное значение.

Давайте назначим IP-адрес gw gw:

gw=$(ip -o route get 42.112.178.185 | sed -n 's/^.* via \([^ ][^ ]*\) *.*$/\1/p')

Вот простая команда маршрутизации:

ip route add 42.112.178.185 src 192.168.42.1 via $gw

Например, если шлюз был 10.0.8.1, а предполагаемый IP-адрес Ubuntu tun0 — 10.0.8.2, то до изменения запрос маршрута к 42.112.178.185 даст:

# ip route get 42.112.178.185
42.112.178.185 via 10.0.8.1 dev tun0 src 10.0.8.2 
    cache 

После внесения изменений это станет:

# ip route get 42.112.178.185
42.112.178.185 via 10.0.8.1 dev tun0 src 192.168.42.1
    cache

Команду ip routeможно изменить, чтобы она влияла не только на этот один IP-адрес, но то, что делать, зависит от других уже существующих маршрутов.

Связанный контент