Jump to content
  • 0

Проблем с WireGuard


DuMbh3aD

Question

Здравейте,

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

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

Link to comment
Share on other sites

5 answers to this question

Recommended Posts

  • 0
  • Administrator

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

Link to comment
Share on other sites

  • 0

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

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

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

Link to comment
Share on other sites

  • 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 на броузерите на клиентите.

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

Link to comment
Share on other sites

  • 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-а и се надявам скоро да пуснат новата версия и доста от проблемите ми да се окажат просто бъгове (отстранени).

Edited by DuMbh3aD
Link to comment
Share on other sites

  • 0

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

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

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

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

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

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...

Important Information

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