Вот моя краткая настройка:
- Xbox 360
- Raspberry PI 2 работает под управлением ArchLinuxARM (сигнализация)
- Основной порт Ethernet Rasberry Pi имеет кабель, соединяющий непосредственно с моим основным маршрутизатором
- Xbox имеет перекрестный кабель, подключенный к ethernet-to-usb на Raspberry Pi
- Я использую сервис openvpn systemd (который создает устройство
tun0
)
Я купил учетную запись VPN и хотел направить свой трафик xbox 360 через нее. После того, как делать исследование, я был в состоянии получить мой Xbox , используя мое малиновое пи как маршрутизатор. Мой raspberry pi подключается к сети / интернету через eth0
, и к нему подключается перекрестный кабель к xbox через eth1
.
eth0
статический ip до 10.0.0.31
, у eth1
статический ip 10.0.1.100
, а у xbox статический ip 10.0.1.101
.
Вот мой конфиг iptables:
# Generated by iptables-save v1.4.21 on Mon Apr 6 00:37:36 2015
*filter
:INPUT ACCEPT [91:6512]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [45:4220]
-A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i eth1 -o eth0 -j ACCEPT
-A FORWARD -d 10.0.1.101/32 -i eth0 -p tcp -m tcp --dport 3074 -j ACCEPT
-A FORWARD -d 10.0.1.101/32 -i eth0 -p udp -m multiport --dports 88,3074 -j ACCEPT
COMMIT
# Completed on Mon Apr 6 00:37:36 2015
# Generated by iptables-save v1.4.21 on Mon Apr 6 00:37:36 2015
*nat
:PREROUTING ACCEPT [8:3607]
:INPUT ACCEPT [2:144]
:OUTPUT ACCEPT [1:86]
:POSTROUTING ACCEPT [2:146]
-A PREROUTING -i eth0 -p tcp -m tcp --dport 3074 -j DNAT --to-destination 10.0.1.101
-A PREROUTING -i eth0 -p udp -m multiport --ports 88,3074 -j DNAT --to-destination 10.0.1.101
-A POSTROUTING -o eth0 -j MASQUERADE
COMMIT
# Completed on Mon Apr 6 00:37:36 2015
Моя конфигурация xbox (с помощью Google DNS, кстати):
- Настройки IP: Ручной
- IP-адрес:
10.0.1.101
- Маска подсети:
255.255.255.0
- Шлюз:
10.0.1.100
- Настройки DNS: вручную
- Первичная:
8.8.8.8
- Вторичный:
8.8.4.4
Это прекрасно работает, когда мое VPN-соединение отключено.
Когда я включаю свою службу openvpn, xbox больше не будет подключаться к Интернету (сообщая об ошибке DNS), однако raspberry pi все еще может выходить в Интернет, и я могу подтвердить, что меня успешно маршрутизируют через VPN ,
Когда VPN отключен, xbox нормально подключается к Интернету и работает как положено.
Я недостаточно знаком с таблицами ip и этой общей маршрутизацией, чтобы знать, генерируются ли журналы, является ли проблема моей конфигурацией iptables, xbox или чем-то еще.
Есть идеи, как решить эту проблему?
Обновить:
Я подключил другой ноутбук Linux (который использует NetworkManager, если это имеет значение) к eth1
со следующей конфигурацией:
- Метод IPv4: ручной
- DNS-серверы:
10.0.0.1
- IP-адрес:
10.0.1.101
- Маска сети:
255.255.255.0
- Шлюз:
10.0.1.100
Когда соединение VPN отключено, я могу нормально пользоваться Интернетом. Когда vpn включен, я могу получить доступ к локальной сети (и даже могу подключиться по ssh к raspberry pi, используя IP-адрес 10.0.0.31
), однако DNS не работает, и я также не могу пропинговать внешние адреса.
Есть ли какой-нибудь набор журналов, на которые я должен поставить хвост, чтобы точно увидеть, что происходит?
Обновление № 2:
Я использую этот пакет arch linux для профилей OpenVPN, и у меня есть файл, настроенный для автоматического входа в систему. Я заметил, что он запускает скрипт, который каким-то образом изменяет resolv.conf, который может что-то делать.