Я пытаюсь настроить туннель Wireguard, чтобы A использовал IP-адрес B для исходящего и входящего трафика (например, прокси, а не стандартного VPN config). Оба устройства - Ubuntu 16.04.
A - это eth0, за маршрутизатором с NAT и в DMZ, с IP A
B имеет два общедоступных IP-адреса: основной (Ens3, также известный как B1) и вторичный (ens3: 0) он же B2).
Адрес = 10.200.1.2/24
SaveConfig = true
ListenPort = 50614
FwMark = 0xca6c
PrivateKey = xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
[Peer]
PublicKey = yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy
AllowedIPs = 0.0.0.0/0
Конечная точка =
РГ по B:
[Интерфейс]
Адрес = 10.200.1.1/24
SaveConfig = true
ListenPort = 51820
PrivateKey = wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
[Peer]
PublicKey = zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
AllowedIPs = 10.200.1.0/24
Конечная точка = A: 50614
Маршрут на A:
Таблица IP-маршрутизации ядра
Шлюз назначения Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.1.1 0.0.0.0 UG 0 0 0 eth0
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
Маршрут на B:
Таблица IP-маршрутизации ядра.
Шлюз назначения Genmask Flags Metric Ref Use Iface
0.0.0.0 B1.B1.B1.1 0.0.0.0 UG 0 0 0 ens3
B2.B2.B2.0 0.0.0.0 255.255.255.0 U 0 0 0 ens3
B1.B1.B1.0 0.0.0.0 255.255.254.0 U 0 0 0 ens3
169.254.169.254 B1.B1.B1.1 255.255.255.255 UGH 0 0 0 ens3
Какой маршрут мне нужно добавить, чтобы каждый исходящий пакет из A отправлялся через B2, а каждый пакет, входящий в B2, отправлялся в A?
Мне очень помогло сообщество Wireguard, и вот что работает.
A (клиент)
[Interface]
Address = B2/32
PrivateKey = yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy
[Peer]
PublicKey = xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
AllowedIPs = 0.0.0.0/0
Endpoint = B2:51820
PersistentKeepalive = 10
B (сервер)
[Interface]
ListenPort = 51820
PrivateKey = yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy
[Peer]
PublicKey = xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
AllowedIPs = B2/32
Don ' Забудьте об обычных шагах (на B)
net.ipv4.ip_forward = 1
Если интерфейс wg0 на B показывает постоянно растущее количество ошибок, вы можете отключить DMZ для A или ограничить входящий трафик на портах, которые используются в B2, которые также могут иметь трафик через A к интерфейсу WG. Это может иметь место, если вы используете одноранговые службы.