Мне подключили мой ноутбук к сети Wi-Fi, которая является 192.168.1.0/24
. Мне затем соединили тот адаптер Wi-Fi мостом к br0
. Я затем соединяю туннель от касания к касанию tap1
на сеть, которая является 10.40.0.0/14
.
Моя сеть Wi-Fi имеет сервер DNS в 192.168.1.254
в то время как удаленная сеть имеет сервер DNS в 10.40.0.2
. Когда туннель от касания к касанию подходит, я удаляю его маршрут по умолчанию так, чтобы только трафик к той сети пробежался через туннель, и общий Интернет-трафик пробегается через обычную ссылку Wi-Fi. Но я хочу использовать сервер DNS удаленной сети так, чтобы я мог все еще искать локальные имена в удаленной сети.
nmcli device show wlan0
говорит это (я удалил различные несоответствующие биты для краткости, главным образом ip6 и маршрутная информация):
GENERAL.DEVICE: wlan0
GENERAL.TYPE: wifi
GENERAL.STATE: 100 (connected)
GENERAL.CONNECTION: channel-six
IP4.ADDRESS[1]: 192.168.1.82/24
IP4.GATEWAY: 192.168.1.254
IP4.DNS[1]: 192.168.1.254
IP4.DNS[2]: 10.40.0.2
IP4.DOMAIN[1]: lan
Это говорит, что это устройство имеет оба сервера DNS, присвоенные ему. Но nmcli con show channel-six
говорит это:
connection.id: channel-six
connection.uuid: 34402de9-ec2d-4a4e-a223-9bea7fc5b517
...
ipv4.dns: 10.40.0.2
ipv4.dns-search: --
ipv4.dns-options: ""
ipv4.dns-priority: 0
Итак, почему NetworkManager использует локальный сервер DNS? Как я могу изменить его?
Локальный DNS поднимается с DHCP. Это может быть зафиксировано как это:
$ nmcli con modify channel-six +ipv4.ignore-auto-dns yes
$ nmcli con up channel-six
modify
команда может также иметь --temporary
добавленный для создания этого временным изменением. con up
необходимо для применения изменения.