Во-первых, извиняюсь, если моё объяснение непонятно. Я совсем новичок в сетях и пытаюсь учиться на практике. Эти термины и концепции для меня пока незнакомы. Моя ситуация такова: у меня есть удалённый WireGuard сервер. Я могу успешно подключаться к нему с отдельных устройств (например, iPhone) и маршрутизировать интернет-трафик через сервер. Я только что купил свой первый роутер Mikrotik. Я успешно настроил его так, что все устройства в моём доме подключены и могут выходить в интернет. Теперь я пытаюсь настроить WireGuard на Mikrotik. Я хочу иметь возможность включать и выключать соединение между Mikrotik и WireGuard сервером, чтобы интернет-трафик из дома шел через WireGuard. Я многому научился из информации на этом сайте, особенно и Но всё равно путаюсь в новых терминах и понятиях. Постоянно неправильно настраиваю роутер, не могу получить доступ к его IP, и приходится делать сброс к заводским настройкам и начинать заново. Буду благодарен, если кто-то посмотрит мой подход и скажет, на правильном ли я пути. Буду признателен за любые советы и рекомендации.
# создать WireGuard интерфейс, используя ключи, предоставленные сервером WireGuard
/interface/wireguard
add listen-port=13231 name=WGinterface private-key="client-private-key"
# добавить peer WireGuard, используя адрес и порт endpoint, предоставленные сервером WireGuard. Разрешить запросы на любой IP/в интернет, указав 0.0.0.0/0
/interface/wireguard/peers
add allowed-address=0.0.0.0/0 endpoint-address=server.public.ip.address endpoint-port=51820 interface=WGinterface public-key="server-public-key"
# назначить IP-адрес интерфейсу WireGuard
# Сейчас указан адрес, который предоставил WG сервер, но я не уверен, что это правильно.
/ip address
add address=10.1.1.2/24 interface=WGinterface
# добавить таблицу маршрутизации, чтобы направлять интернет-трафик через сервер WireGuard
/routing table
add name=useWG fib
# добавить правило, чтобы направлять трафик через эту таблицу. Если WireGuard недоступен, пользователи смогут выходить в интернет локально (то есть action=lookup вместо action=lookup-in-table).
# Для теста src-address = все устройства в моей локальной сети. Вероятно, потом сузю это до одного-двух конкретных устройств, когда всё заработает.
# После прочтения гайдов, не уверен, нужен ли маршрут для обратного трафика (ответов), или это необходимо только в определённых случаях (например, если есть ещё один туннель WG к удалённым пользователям).
/routing rule
add src-address=192.168.1.0/24 action=lookup table=useWG
# добавить маршрут в таблицу useWG, чтобы заставить все запросы в интернет (0.0.0.0/0) идти через интерфейс WG
/ip route
add dst-address=0.0.0.0/0 gateway=WGinterface routing-table=useWG
# Сервер WireGuard дал адрес интерфейса 10.1.1.2/24. Поскольку сервер ожидает трафик с 10.1.1.2/24, думаю, мне нужно настроить source NAT, правильно? Нужно ли это указывать в таблице useWG?
/ip firewall nat
add action=masquerade chain=srcnat out-interface=WGinterface
Очень признателен за любую помощь, чтобы это заработало. Или хотя бы за помощь понять, что я делаю не так, из-за чего теряю доступ к локальному IP и приходится сбрасывать Mikrotik к заводским настройкам. Пожалуйста, скажите, если нужна дополнительная информация.
# создать WireGuard интерфейс, используя ключи, предоставленные сервером WireGuard
/interface/wireguard
add listen-port=13231 name=WGinterface private-key="client-private-key"
# добавить peer WireGuard, используя адрес и порт endpoint, предоставленные сервером WireGuard. Разрешить запросы на любой IP/в интернет, указав 0.0.0.0/0
/interface/wireguard/peers
add allowed-address=0.0.0.0/0 endpoint-address=server.public.ip.address endpoint-port=51820 interface=WGinterface public-key="server-public-key"
# назначить IP-адрес интерфейсу WireGuard
# Сейчас указан адрес, который предоставил WG сервер, но я не уверен, что это правильно.
/ip address
add address=10.1.1.2/24 interface=WGinterface
# добавить таблицу маршрутизации, чтобы направлять интернет-трафик через сервер WireGuard
/routing table
add name=useWG fib
# добавить правило, чтобы направлять трафик через эту таблицу. Если WireGuard недоступен, пользователи смогут выходить в интернет локально (то есть action=lookup вместо action=lookup-in-table).
# Для теста src-address = все устройства в моей локальной сети. Вероятно, потом сузю это до одного-двух конкретных устройств, когда всё заработает.
# После прочтения гайдов, не уверен, нужен ли маршрут для обратного трафика (ответов), или это необходимо только в определённых случаях (например, если есть ещё один туннель WG к удалённым пользователям).
/routing rule
add src-address=192.168.1.0/24 action=lookup table=useWG
# добавить маршрут в таблицу useWG, чтобы заставить все запросы в интернет (0.0.0.0/0) идти через интерфейс WG
/ip route
add dst-address=0.0.0.0/0 gateway=WGinterface routing-table=useWG
# Сервер WireGuard дал адрес интерфейса 10.1.1.2/24. Поскольку сервер ожидает трафик с 10.1.1.2/24, думаю, мне нужно настроить source NAT, правильно? Нужно ли это указывать в таблице useWG?
/ip firewall nat
add action=masquerade chain=srcnat out-interface=WGinterface
Очень признателен за любую помощь, чтобы это заработало. Или хотя бы за помощь понять, что я делаю не так, из-за чего теряю доступ к локальному IP и приходится сбрасывать Mikrotik к заводским настройкам. Пожалуйста, скажите, если нужна дополнительная информация.
