Это требует предшествующей установки, но если Вы привыкли разрушать машину (например, потому что Вы делаете разработку низкого уровня на ней), можно хотеть настроить сторожевой таймер, т.е. ядро или пользовательские задачи, который перезагружает ее автоматически, когда это становится безразличным. Linux может использовать аппаратный сторожевой таймер, если Ваша материнская плата имеет один, или сторожевой таймер программного обеспечения иначе.
Это не точно nslookup
конкретный, но должен работать в общем случае (если у Вас есть корневой доступ на Вашей машине). Это использует сетевой стек IP, чтобы удостовериться, что Вы используете интерфейс вместо другого. Прежде, чем назвать nslookup, просто добавьте маршрут к своим IP-адресам сервера DNS через определенный сетевой интерфейс.
Если у Вас есть 2 интерфейса (eth0
и eth1
), то, что Ваш шлюз по умолчанию через eth0
(192.168.0.1), и что Вы хотите запросить Google DNS (8.8.8.8) через eth1
где Ваш путь к Интернету 192.168.1.1, Вы могли сделать:
ip route add 8.8.8.8/32 via 192.168.1.1
Добавление dev eth1
к команде не полезно, поскольку должен быть только один путь к 192.168.1.1.
При выполнении необходимо удалить маршрут для восстановления маршрутизации по умолчанию:
ip route del 8.8.8.8/32
в завихрении существует опция для того же. просто сообщите нам то, чего Вы хотите достигнуть?
также можно использовать dig @ipaddress yourquery
--interface <name>
Perform an operation using a specified interface. You can enter interface name, IP address or host name. An example
could look like:
Объедините два ответа от jfgagne и Rhaul Patil
Маршрутизация происходит в двух направлениях. Ваш маршрут месту назначения и местам назначения направляет Вам.
Если Ваши поиски прибывают из IP реального мира, или локальная маршрутизация - то, что Вы тестируете Вас, должны были установить Ваши локальные маршруты и выполнить запрос, прибывший от корректного IP-адреса
Например, Если Вы выполняете поиск на сервере имен на ISP2 от исходного адреса IP1, принадлежавшего ISP1. ISP2 будет обычно направлять данные к IP1 через каналы WAN к ISP1, кто направит данные Вам (если Вам не добавили ручные маршруты в каждом ISP или делаете что-то усовершенствованное как рекламные объявления BGP),
isp1 - isp2
| |
ip1 ip2
\ /
box
У Вас должны уже быть более общие маршруты как предложенный набор @jfgagne для сетевых диапазонов каждого ISP, таким образом, данные для ISP идут через самый быстрый маршрут, если не более определенные для сервера имен могут быть добавлены
ip route add ns.ip.isp.1/32 via gw.ip.isp.1
ip route add ns.ip.isp.2/32 via gw.ip.isp.2
Затем можно добраться dig
использовать исходный адрес с -b
dig @ns.ip.isp.1 -b ur.ip.isp.1 whatever.com
dig @ns.ip.isp.2 -b ur.ip.isp.2 whatever.com
При выполнении поиска из двух шлюзов NAT, исходный IP будет заботиться о на шлюзе, и Вы не должны волноваться об установке исходного адреса запроса. Просто установите маршрутизацию на шлюз, который Вы хотите.
Если Вы хотите влиять на маршрутизацию специально для этих серверов имен, но не изменение, направляющее обычно, Вы направляетесь в iptables
и маршрутизация политики, которая является целым другим вопросом.
Это не то, как nslookup работает или должен использоваться.
Отредактируйте свой/etc/resolv.conf или подобный так, чтобы Ваши серверы DNS были в порядке предпочтения.
От CLI можно использовать следующий оператор "сервера" для запросов двух различных серверов DNS (Откройте DNS и Google DNS в этом примере);
user@machine ~ $ nslookup
> server 208.67.222.222
Default server: 208.67.222.222
Address: 208.67.222.222#53
> set type=a
> www.google.com
Server: 208.67.222.222
Address: 208.67.222.222#53
Non-authoritative answer:
Name: www.google.com
Address: 74.125.132.99
Name: www.google.com
Address: 74.125.132.105
Name: www.google.com
Address: 74.125.132.106
Name: www.google.com
Address: 74.125.132.147
Name: www.google.com
Address: 74.125.132.104
Name: www.google.com
Address: 74.125.132.103
> server 8.8.4.4
Default server: 8.8.4.4
Address: 8.8.4.4#53
> www.google.com
Server: 8.8.4.4
Address: 8.8.4.4#53
Non-authoritative answer:
Name: www.google.com
Address: 74.125.132.147
Name: www.google.com
Address: 74.125.132.105
Name: www.google.com
Address: 74.125.132.104
Name: www.google.com
Address: 74.125.132.106
Name: www.google.com
Address: 74.125.132.99
Name: www.google.com
Address: 74.125.132.103
> exit
Самый простой способ сделать это - заблокировать IP-адрес, назначенный интерфейсу, из которого нужно запрашивать.
Если у вас несколько интерфейсов, вы можете использовать dig -b z.b.c.d
, и он будет использовать этот интерфейс для выполнения запроса.
man dig:
The -b option sets the source IP address of the query to address.
This must be a valid address on one of the host's network interfaces
or "0.0.0.0" or "::".