# OpenVPN и локальный Dnsmasq
## Dnsmasq
Устанавливаем:
`sudo apt install dnsmasq`
В конфиге (`/etc/dnsmasq.conf`) пишем:
```
domain-needed # чтоб не пересылал дальше имена вида "server123"
bogus-priv # чтоб не пересылал выше запросы обратного резолвинга локальных адресов типо 10.0.0.123
no-resolv # чтоб не читал /etc/resolv.conf, а юзал то что мы ему сами скажем
local=/office/ # указываем локлаьный домен - он будет резолвиться ТОЛЬКО из /etc/hosts
domain=octo # таком наш домен
server=8.8.8.8 # имена, которых нет в /etc/hosts, он будет пересылать сюда
no-poll # не подписываться на изменнеия resolv.conf
cache-size=2000 # почему бы и нет ;) (дефолтно всего лишь 150)
local-ttl=10800 # время жизни кэша в секундах - 10800 это три часа
alias=1.2.3.4,5.6.7.8 # позволяет подменять ответы "вышестоящих" DNS-сервером, заменяя 1.2.3.4 на 5.6.7.8 B-) так можно внешний айпишник превращать в локальный
```
Где `server` это адрес глобального DNS, который будет резолвить глобальные имена вроде `google.ru` (эту строчку можно писать несколько раз, указав несколько разных DNS-серверов)
Перезапускаем сервис, чтоб подтащил новые настройки:
`sudo service dnsmasq restart`
Локальные имена пишем в `/etc/hosts` - после внесения изменнеий в этот файлик сервис нужно перезапускать, чтобы он их подтащил.
Можно прописывать локлаьные имена и в конфиг, вот так:
```
address=/double-click.net/127.0.0.1
```
Убираем самопрописывание dnsmasq'а в `/etc/resolv.conf` (оно не нужно - у нас и так все имена в `hosts` прописаны):
`sudo chmod -x /etc/resolvconf/update.d/dnsmasq`
## OpenVPN
Он умеет работать в двух режимах:
1. Роутинг: канал делается посредством ==TUN==, для клиентов поднимается собственный DHCP и трафик маршрузируется
2. Мост: канал - ==TAP== и клиенты полностью попадают в сеть сервера (полностью проходит широковещательный трафик, например DHCP от роутера в сети сервера, работает mDNS и прочие современные плюшки)
Мы будем юзать первый вариант - TUN работает быстрее и нам его вполне хватит :smirk: