Jump to content
  • 0

Проблем с WireGuard


DuMbh3aD

Въпрос

Здравейте,

Ще започна с конфигурациите ми и после ще продължа с проблемите и въпросите.

RB3011 - WireGuard сървър ROSv7.2.3:

/interface wireguard
add listen-port=13100 mtu=1420 name=wireguard20

/interface wireguard peers
add allowed-address=172.16.20.1/32 comment="WGPeer Varna" endpoint-port=13001 interface=wireguard20 public-key="**********="
add allowed-address=172.16.20.20/32 comment="WGPeer Sofia" endpoint-port=13020 interface=wireguard20 public-key="**********="
add allowed-address=172.16.20.2/32 comment="WGPeer Aytos" endpoint-port=13002 interface=wireguard20 public-key="**********="
add allowed-address=172.16.20.4/32 comment="WGPeer Gabrovo" endpoint-port=13004 interface=wireguard20 public-key="**********="
add allowed-address=172.16.20.5/32 comment="WGPeer Gorna" endpoint-port=13005 interface=wireguard20 public-key="**********="
add allowed-address=172.16.20.6/32 comment="WGPeer Svishtov" endpoint-port=13006 interface=wireguard20 public-key="**********="
add allowed-address=172.16.20.8/32 comment="WGPeer Dobrich" endpoint-port=13008 interface=wireguard20 public-key="**********="
add allowed-address=172.16.20.9/32 comment="WGPeer Pavlikeni" endpoint-port=13009 interface=wireguard20 public-key="**********="
add allowed-address=172.16.20.10/32 comment="WGPeer Sliven" endpoint-port=13010 interface=wireguard20 public-key="**********="
add allowed-address=172.16.20.12/32 comment="WGPeer Razgrad" endpoint-port=13012 interface=wireguard20 public-key="**********="
add allowed-address=172.16.20.13/32 comment="WGPeer Ruse" endpoint-port=13013 interface=wireguard20 public-key="**********="
add allowed-address=172.16.20.16/32 comment="WGPeer St.Zagora" endpoint-port=13016 interface=wireguard20 public-key="**********="
add allowed-address=172.16.20.17/32 comment="WGPeer Burgas" endpoint-port=13017 interface=wireguard20 public-key="**********="
add allowed-address=172.16.20.18/32 comment="WGPeer Plovdiv" endpoint-port=13018 interface=wireguard20 public-key="**********="
add allowed-address=172.16.20.19/32 comment="WGPeer Yambol" endpoint-port=13019 interface=wireguard20 public-key="**********="
add allowed-address=172.16.20.21/32 comment="WGPeer Lyaskovets" endpoint-port=13021 interface=wireguard20 public-key="**********="
add allowed-address=172.16.20.15/32 comment="WGPeer Silistra" endpoint-port=13015 interface=wireguard20 public-key="**********="

/ip address
add address=172.16.20.100/24 interface=wireguard20 network=172.16.20.0

/interface list
add name=WANs
add name=LANs
add name=WireGuards

/interface list member
add interface=ether1 list=WANs
add interface=Bridge list=LANs
add interface=wireguard20 list=WireGuards

/ip dns
set allow-remote-requests=yes servers=208.67.222.222,208.67.220.220
/ip dns static
add address=192.168.1.2 name=ftp.domain.name

/ip firewall filter
add action=add-src-to-address-list address-list="WireGuard Clients" address-list-timeout=25s chain=input comment=WireGuard dst-port=13100 protocol=udp
add action=add-dst-to-address-list address-list=ALLOW_IP address-list-timeout=25s chain=output dst-address-list="WireGuard Clients" dst-port=13000-13255 protocol=udp
add action=accept chain=input dst-port=13100 protocol=udp
add action=accept chain=input comment="ACCEPT ALLOW" src-address-list=ALLOW_IP
add action=drop chain=input comment="Drop anythin else!"

/ip firewall nat
add action=masquerade chain=srcnat out-interface-list=WANs
add action=masquerade chain=srcnat out-interface-list=WireGuards

/tool netwatch
add down-script=":log info \"WireGuard connection with WGPeer Varna is failed\"\r\
    \n/interface/wireguard/peers disable [find allowed-address=172.16.20.1/32];\r\
    \n:log info \"WireGuard peer WGPeer Varna is disabled\"\r\
    \n:delay 1000ms;\r\
    \n/interface/wireguard/peers enable [find allowed-address=172.16.20.1/32];\r\
    \n:log info \"WireGuard peer WGPeer Varna is enabled\"\r\
    \n:delay 1000ms;" host=172.16.20.1 interval=20s up-script=":log info \"WireGuard connection with WGPeer Varna is started\""
add down-script=":log info \"WireGuard connection with WGPeer Pavlikeni is failed\"\r\
    \n/interface/wireguard/peers disable [find allowed-address=172.16.20.9/32];\r\
    \n:log info \"WireGuard peer WGPeer Pavlikeni is disabled\"\r\
    \n:delay 1000ms;\r\
    \n/interface/wireguard/peers enable [find allowed-address=172.16.20.9/32];\r\
    \n:log info \"WireGuard peer WGPeer Pavlikeni is enabled\"\r\
    \n:delay 1000ms;" host=172.16.20.9 interval=20s up-script=":log info \"WireGuard connection with WGPeer Pavlikeni is started\""

Netwatch-а е идентичен за всички пиъри (клиенти). С него си реших два от проблемите, а именно, че не виждах кога е прекъснала връзката между даден клиент и сървъра. И също така установих, че след изключване и включване на "изгубения" пиър в повечето случаи връзката се възтановява, а и играе ролята на keepalive.

RB951 - WireGuard клиент/peer RSOv7.2.3

/interface wireguard
add listen-port=12009 mtu=1420 name=wireguard10
add listen-port=13009 mtu=1420 name=wireguard20
/interface wireguard peers
add allowed-address=0.0.0.0/0 endpoint-address=XX.XX.XX.XX endpoint-port=13100 interface=wireguard20 persistent-keepalive=25s public-key="**********="
add allowed-address=0.0.0.0/0 endpoint-address=YY.YY.YY.YY endpoint-port=12001 interface=wireguard10 persistent-keepalive=25s public-key="**********="
/ip address
add address=172.16.20.9/24 interface=wireguard20 network=172.16.20.0
add address=172.16.10.9/24 interface=wireguard10 network=172.16.10.0
/interface list
add name=WANs
add name=LANs
/interface list member
add interface=WAN list=WANs
add interface=3G list=WANs
add interface=Bridge list=LANs
add interface=wireguard10 list=WANs
add interface=wireguard20 list=WANs
/ip firewall nat
add action=masquerade chain=srcnat out-interface-list=WANs
/ip dns
set allow-remote-requests=no cache-max-ttl=1d servers=XX.XX.XX.XX,YY.YY.YY.YY

1-Каква може да е причината за да се разпада връзката между сървъра и пиъра? В настройките или в нещо друго? Има случаи, където с изключване и включване на пиърите, рестарт на устройствате връзката не се възтановява и след няколко стотин "майни" всичко си тръгва само след няколко часа.

2-Използвам XX.XX.XX.XX и YY.YY.YY.YY и за DNS сървъри. Ня някои пиъри не работят на други няма проблеми. Има пинг има връзка има всичко, но DNS-ите не работят. Кога сетна 172.16.20.100 за DNS всичко работи

3-Зад XX.XX.XX.XX имам FTP сървър (FileZilla) с адрес 192.168.1.2. Някои от пиърите го достъпват без проблем през външното IP, но други не искат. Трябва да сетна в статични записи (/ip dns static add address=192.168.1.2 name=ftp.domain.name) и да опиша /ip route add disabled=no dst-address=192.168.1.0/24 gateway=172.16.20.100

Преди използвах PPTP и нямаше ядове, но някои от доставиците започнаха да режат gre-то и предупредиха да сменям VPN-a

WG log.txt

Адрес на коментара
Сподели в други сайтове

5 отговори на този въпрос

Recommended Posts

  • 0
  • Администратор

Има го този проблем , който и за мен не е обясним към днешна дата! Когато се форсне enable/disable пиъра и не се вдигне, трябва да се въведе на ново ключа и тръгва. Аз за това основно го ползвам , като RW VPN за клиенти с Андроид и МакОС , а между рутери според необходимият трафик ползвам с дублиран OpenVPN udp, SSTP !

Адрес на коментара
Сподели в други сайтове

  • 0

Този проблем в WireGuard ли е като цяло или само в интеграцията му в Mikrotik? 

Странно е на едни и същи бордове с абсолютно едни и същи конфигурации да се държи по различни начини, на едни не достъпвам DNS-и, на други не достъпвам FTP, сигурно има и още нещо, което съм пропуснал и/или не ползвам.

Възможно ли е някой доставчици да филтрират udp трафика, да редиректват към техни DNS-и, NTP-та и т.н.

Адрес на коментара
Сподели в други сайтове

  • 0

Някои особенности на WireGuard:

1. Тунела работи със статични IP адреси. Mikrotik са имплементилрали възможността да се работи с DDNS. Тук проблема е, че резолването се осъществява след вдигането на тунела. Моя опит сочи, че поне WAN адреса на рутера в централният офис е добре да е статичен.

2. Тунела не следи състоянието на връзката. Аз лично препоръчвам това да се прави със скрипт и scedule, защото 1 секунда изчакване се оказва малко. Това трябва да се прави на рутерите в отдалечените офиси, а не в централния.

3. За всеки клиент рутер трябва да се описват рутове.

4. Management мрежата с Winbox е добре да е отделна и също да се опише в пиърите.

5. IP адреса за проверка на връзката препоръчвам да е Gateway на централният офис (ЦО) - в случая 172.16.20.100

6. Някой доставчици режат всичко освен порт 80 и 443. По тази причина, ЦО може да слуша порт 13100 (4443) а отдалечените офиси - порт 443.

7. DNS - Външни DNS сървъри 8.8.8.8  и 1.1.1.1 а вътрешни - вътрешния DNS  на ЦО, който трябва да е на първо място. Ако имате вътрешни сайтове - трябва да изключите Secure DNS на броузерите на клиентите.

За скрипта който работи при мен и повече информация - на лично съобщение.

Адрес на коментара
Сподели в други сайтове

  • 0

Здравей elsinor,

Благодаря за предложението за скрипра, може би ще се възползвам на по-късен етап.

ЦО си е със статичен адрес, както и някой от обектите/клиентите. Като техните адреса са описани като endpoint.

Каква е причината състоянието на връзката да се следи от страна на клиента, а не от ЦО. Netwatch-а съм го пуснал и от двете страни. Като от централното гледа за 172.16.20.1, 172.16.20.2 .., а клиентите гледат за 172.16.20.100 и рестартирам пиъра от 2-те страни.

Wireguard ползва само UDP. Ако са оставени само 80 и 443 (по TCP) варианта е само с SSTP, както спомена JohnTRIVOLTA.

Използвам OpenDNS за да спирам достъпа на потребителите до торенти, бет-ове, уебспам и т.н. Ако сетна вътрешните DNS-и, при разпадане на wireguard-а клиентите няма да имат достъп до сайтове (разрешените).

И все пак не виждам каква може да е причината 3 100% идентични конфигурации да се държат по 3 коренно различни начини. Гледам, че от MT са пипали разни работи по wireguard-а и се надявам скоро да пуснат новата версия и доста от проблемите ми да се окажат просто бъгове (отстранени).

Редактирано от DuMbh3aD
Адрес на коментара
Сподели в други сайтове

  • 0

1. Netwatch реагира много бързо и не работи правилно за този тунел.

2. Админите оставят обикновенно tcp и udp на 443.

3. Какво спира OpenDNS, ако броузерите ползват Secure DNS включен?

4. Идентичните конфигурации при мой клиент са повече и скрипта ми помогна. Доработвам го с малки промени цяла седмица.

Споделям по молба на Иво.

Адрес на коментара
Сподели в други сайтове

Създайте нов акаунт или се впишете, за да коментирате

За да коментирате, трябва да имате регистрация

Създайте акаунт

Присъединете се към нашата общност. Регистрацията става бързо!

Регистрация на нов акаунт

Вход

Имате акаунт? Впишете се оттук.

Вписване
  • Потребители разглеждащи страницата   0 потребители

    • No registered users viewing this page.
×
×
  • Създай нов...

Important Information

By using this site, you agree to our Terms of Use.