Мне нужно добавить статический маршрут на сервере Windows к веб-серверу со службой; Мне нужно добавить статический маршрут с помощью этой команды в командной строке Windows:
ROUTE ADD -p IPADREESS GATEWAYIP
Есть ли способ сделать статический маршрут к DNS-адресу вместо IP-адреса? Как ?
Например:
ROUTE ADD -p DNSServer GATEWAYIP
Синтаксис route add
команда
добавить маршрут место назначения маска шлюз с маской подсети метрика стоимостной если интерфейс
Где пункт назначения айпи адрес или имя хоста для сети или хоста.
Пример:
route add webservices.example.com mask 255.255.255.255 10.11.12.13
См. Эту статью Microsoft: Чтобы добавить статический IP-маршрут
Вы должны иметь в виду, что запись будет преобразована в IP-адрес, поэтому, если DNS для имени хоста изменится, в таблице маршрутизации все равно останется исходный IP-адрес.
Это скорее обходной путь, который я использую. Вы можете использовать этот пакетный сценарий. Просто добавьте его в планировщик задач, чтобы запускать его каждый раз при запуске компьютера. Это получит IP вашего доменного имени и добавит маршрут.
:: Get IP of Domain name
setlocal EnableDelayedExpansion
set myServer=your.server.com
for /f "tokens=1,2 delims=[]" %%a IN ('ping -n 1 !myServer!') DO (
if "%%b" NEQ "" set myServerIP=%%b
)
echo ip is %myServerIP%
route add %myServerIP% mask 255.255.255.255 <gateway ip address>
EXIT
Не используйте опцию -p, иначе маршрут будет постоянным. Если IP-адрес вашего домена постоянно меняется, используйте планировщик задач для запуска этого скрипта через эти промежутки времени. Надеюсь это поможет!
Нет, не на сетевом уровне. Возможно, вы могли бы достичь своей цели, используя что-то вроде прокси. Вы также можете эмулировать поведение с помощью сценария, но это, скорее всего, приведет к ошибкам.
Чтобы быть яснымЯ хотел сказать, что вы не можете динамически маршрутизировать на основе имени хоста. Я не оспариваю то, что сказал Сплаттне.
Есть ли способ сделать статический маршрут к DNS-адресу вместо IP-адреса? Как ?
Нет, но, возможно, то, что вы хотите, может быть достигнуто с помощью локального переопределения в / etc / hosts.
Один из примеров, когда это было полезно из моего опыта:
У меня загруженный обратный прокси (в «новой» сети), который работает с несколькими источниками. Чтобы добраться до одного из этих источников, трафик должен пройти через старую сеть, чего желательно избегать. Однако, если мы добавим другой интерфейс (в новой сети) к этому внутреннему узлу, мы сможем заставить трафик проходить через новую сеть. Поэтому в этом конкретном случае я просто переопределил обратные прокси-серверы / etc / hosts, которые указывали на новый IP-адрес на внутреннем сервере.
(Для Windows просто измените C: \ Windows \ System32 \ drivers \ etc \ hosts)
Другой пример, на этот раз с прокси-сервером браузера.
Недавно я развернул крупное обновление на нашем веб-сайте и хотел, чтобы люди тестировали вещи в точности так, как они будут (то есть те же URL-адреса, которые будут использоваться после запуска).
Итак, в этом случае я настроил прокси-сервер браузера / пересылки (squid) на новом компьютере и изменил его / etc / hosts так, чтобы он указывал на IP-адреса нового мира, оставив DNS, чтобы он оставался с IP-адресами старого мира (до запуска жить). Эффект заключался в том, что если они настроили свой браузер для использования этого прокси, он перешел бы на веб-сайт нового мира, в противном случае они перешли на веб-сайт старого мира. Я также настроил файл PAC (Proxy Auto Configuration), в котором был набор правил, указывающих, какие URL-адреса должны использовать прокси, а все остальное должно идти напрямую. Работал достаточно хорошо.