OpenVPN, 패킷을 매우 느리게 전달


10

서버를 재부팅했는데 이상한 문제가 발생했습니다. ArchLinux에서 실행 중이며 클라이언트는 Ubuntu, Android 및 Mac입니다.

문제는 클라이언트를 통해 인터넷에 액세스하는 것이 느리고 약 2ko / s이며 천천히 중지한다는 것입니다.

그러나 서버에서 클라이언트로 직접 다운로드하는 것은 최고 속도로 이루어집니다. 그리고 서버의 인터넷 속도는 최고 속도 (40mo / s)입니다.

재부팅으로 인해 어떤 일이 발생했는지 모르지만이 문제는 모든 클라이언트에서 발생하며 인터넷으로 openvpn 전달하는 트래픽과 관련이 있습니다.

편집 : tcp로 시도했지만 해결되지 않았습니다. 편집 : 다양한 조각 / mtu 설정을 테스트했지만 변경 사항은 없습니다.

여기 내 모든 단점이 있습니다.

╭─<root@Alduin>-</etc/openvpn>-<1:45:07>-◇
╰─➤ cat Alduin.conf ccd/Thunderaan
local 212.83.129.104
port 1194
proto udp
dev tun
ca keys/ca.crt
cert keys/Alduin.crt
key keys/Alduin.key
dh keys/dh1024.pem
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
push "dhcp-option DNS 10.8.0.1"
client-to-client
keepalive 5 60
ping-timer-rem
comp-lzo
persist-key
persist-tun
status openvpn-status.log
verb 3
client-config-dir ccd
topology subnet

ccd from here +++++++++++++++


ifconfig-push 10.8.0.2 255.255.255.0
push "redirect-gateway def1"

클라이언트 conf :

client
dev tun
proto udp
remote 212.83.129.104 1194
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert name.crt
key name.key
ns-cert-type server
comp-lzo
verb 3

그리고 당신을 도울 수있는 일부 출력 :

╭─<cubox@Alduin>-<~>-<1:49:43>-◇
╰─➤ ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eno1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP qlen 1000
    link/ether b8:ac:6f:94:e2:4e brd ff:ff:ff:ff:ff:ff
    inet 88.190.15.135/24 scope global eno1
       valid_lft forever preferred_lft forever
    inet 212.83.129.104/32 scope global eno1
       valid_lft forever preferred_lft forever
    inet6 2001:bc8:300a:dead::b12d/64 scope global
       valid_lft forever preferred_lft forever
    inet6 2a01:e0b:1000:15:baac:6fff:fe94:e24e/64 scope global dynamic
       valid_lft 2592000sec preferred_lft 604800sec
    inet6 fe80::baac:6fff:fe94:e24e/64 scope link
       valid_lft forever preferred_lft forever
3: eno2: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN qlen 1000
    link/ether b8:ac:6f:94:e2:4f brd ff:ff:ff:ff:ff:ff
6: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 100
    link/none
    inet 10.8.0.1/24 brd 10.8.0.255 scope global tun0
       valid_lft forever preferred_lft forever
╭─<cubox@Alduin>-<~>-<1:49:47>-◇
╰─➤ route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         88-190-15-1.rev 0.0.0.0         UG    0      0        0 eno1
10.8.0.0        *               255.255.255.0   U     0      0        0 tun0
88.190.15.0     *               255.255.255.0   U     0      0        0 eno1
╭─<cubox@Alduin>-<~>-<1:49:51>-◇
╰─➤ route -6
Kernel IPv6 routing table
Destination                    Next Hop                   Flag Met Ref Use If
::1/128                        ::                         U    256 0     0 lo
2001:bc8:300a:dead::/64        ::                         U    256 0     0 eno1
2a01:e0b:1000:15::/64          ::                         UAe  256 0     0 eno1
fe80::/64                      ::                         U    256 0     0 eno1
::/0                           fe80::225:45ff:fef6:947f   UGDAe 1024 2     0 eno1
::/0                           ::                         !n   -1  1  1891 lo
::1/128                        ::                         Un   0   2  5227 lo
2001:bc8:300a:dead::/128       ::                         Un   0   1     0 lo
2001:bc8:300a:dead::b12d/128   ::                         Un   0   1   131 lo
2a01:e0b:1000:15::/128         ::                         Un   0   1     0 lo
2a01:e0b:1000:15:baac:6fff:fe94:e24e/128 ::                         Un   0   3 29356 lo
fe80::/128                     ::                         Un   0   1     0 lo
fe80::baac:6fff:fe94:e24e/128  ::                         Un   0   1   311 lo
ff00::/8                       ::                         U    256 0     0 eno1
::/0                           ::                         !n   -1  1  1891 lo



-A POSTROUTING -s 10.8.0.0/24 -o eno1 -j MASQUERADE # The iptables rule

여기서 iptables 규칙은 서버에서 활성화 된 유일한 규칙입니다.

╰─➤ tc qd
qdisc mq 0: dev eno1 root
qdisc pfifo_fast 0: dev tun0 root refcnt 2 bands 3 priomap  1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1

편집 : 다음은 Archlinux 클라이언트 연결 로그입니다.

Oct  2 16:54:17 Groat ovpn-openvpn[9216]: OpenVPN 2.2.1 x86_64-linux-gnu [SSL] [LZO2] [EPOLL] [PKCS11] [eurephia] [MH] [PF_INET6] [IPv6 payload 20110424-2 (2.2RC2)] built on Feb 13 2013
Oct  2 16:54:17 Groat ovpn-openvpn[9216]: NOTE: the current --script-security setting may allow this configuration to call user-defined scripts
Oct  2 16:54:17 Groat ovpn-openvpn[9216]: LZO compression initialized
Oct  2 16:54:17 Groat ovpn-openvpn[9216]: Control Channel MTU parms [ L:1542 D:138 EF:38 EB:0 ET:0 EL:0 ]
Oct  2 16:54:17 Groat ovpn-openvpn[9216]: Socket Buffers: R=[212992->131072] S=[212992->131072]
Oct  2 16:54:17 Groat ovpn-openvpn[9216]: Data Channel MTU parms [ L:1542 D:1450 EF:42 EB:135 ET:0 EL:0 AF:3/1 ]
Oct  2 16:54:17 Groat ovpn-openvpn[9216]: Local Options hash (VER=V4): '41690919'
Oct  2 16:54:17 Groat ovpn-openvpn[9216]: Expected Remote Options hash (VER=V4): '530fdded'
Oct  2 16:54:17 Groat ovpn-openvpn[9217]: UDPv4 link local: [undef]
Oct  2 16:54:17 Groat ovpn-openvpn[9217]: UDPv4 link remote: [AF_INET]212.83.129.104:1194
Oct  2 16:54:17 Groat ovpn-openvpn[9217]: TLS: Initial packet from [AF_INET]212.83.129.104:1194, sid=edfcb034 3452d72c
Oct  2 16:54:17 Groat ovpn-openvpn[9217]: VERIFY OK: depth=1, /C=FR/ST=FR/L=Paris/O=Dragonborn/CN=Dragonborn_CA/emailAddress=cubox@cubox.me
Oct  2 16:54:17 Groat ovpn-openvpn[9217]: VERIFY OK: nsCertType=SERVER
Oct  2 16:54:17 Groat ovpn-openvpn[9217]: VERIFY OK: depth=0, /C=FR/ST=FR/L=Paris/O=Dragonborn/CN=Dragonborn/emailAddress=cubox@cubox.me
Oct  2 16:54:17 Groat ovpn-openvpn[9217]: Data Channel Encrypt: Cipher 'BF-CBC' initialized with 128 bit key
Oct  2 16:54:17 Groat ovpn-openvpn[9217]: Data Channel Encrypt: Using 160 bit message hash 'SHA1' for HMAC authentication
Oct  2 16:54:17 Groat ovpn-openvpn[9217]: Data Channel Decrypt: Cipher 'BF-CBC' initialized with 128 bit key
Oct  2 16:54:17 Groat ovpn-openvpn[9217]: Data Channel Decrypt: Using 160 bit message hash 'SHA1' for HMAC authentication
Oct  2 16:54:17 Groat ovpn-openvpn[9217]: Control Channel: TLSv1, cipher TLSv1/SSLv3 DHE-RSA-AES256-SHA, 1024 bit RSA
Oct  2 16:54:17 Groat ovpn-openvpn[9217]: [Dragonborn] Peer Connection Initiated with [AF_INET]212.83.129.104:1194
Oct  2 16:54:20 Groat ovpn-openvpn[9217]: SENT CONTROL [Dragonborn]: 'PUSH_REQUEST' (status=1)
Oct  2 16:54:20 Groat ovpn-openvpn[9217]: PUSH: Received control message: 'PUSH_REPLY,dhcp-option DNS 10.8.0.1,route 212.83.129.0 255.255.255.0,route-gateway 10.8.0.1,topology subnet,ping 5,ping-restart 60,redirect-gateway def1,ifconfig 10.8.0.3 255.255.255.0'
Oct  2 16:54:20 Groat ovpn-openvpn[9217]: OPTIONS IMPORT: timers and/or timeouts modified
Oct  2 16:54:20 Groat ovpn-openvpn[9217]: OPTIONS IMPORT: --ifconfig/up options modified
Oct  2 16:54:20 Groat ovpn-openvpn[9217]: OPTIONS IMPORT: route options modified
Oct  2 16:54:20 Groat ovpn-openvpn[9217]: OPTIONS IMPORT: route-related options modified
Oct  2 16:54:20 Groat ovpn-openvpn[9217]: OPTIONS IMPORT: --ip-win32 and/or --dhcp-option options modified
Oct  2 16:54:20 Groat ovpn-openvpn[9217]: ROUTE default_gateway=192.168.1.254
Oct  2 16:54:20 Groat ovpn-openvpn[9217]: TUN/TAP device tun0 opened
Oct  2 16:54:20 Groat ovpn-openvpn[9217]: TUN/TAP TX queue length set to 100
Oct  2 16:54:20 Groat ovpn-openvpn[9217]: do_ifconfig, tt->ipv6=0, tt->did_ifconfig_ipv6_setup=0
Oct  2 16:54:20 Groat ovpn-openvpn[9217]: /sbin/ifconfig tun0 10.8.0.3 netmask 255.255.255.0 mtu 1500 broadcast 10.8.0.255
Oct  2 16:54:20 Groat ovpn-openvpn[9217]: /sbin/route add -net 212.83.129.104 netmask 255.255.255.255 gw 192.168.1.254
Oct  2 16:54:20 Groat ovpn-openvpn[9217]: /sbin/route add -net 0.0.0.0 netmask 128.0.0.0 gw 10.8.0.1
Oct  2 16:54:20 Groat ovpn-openvpn[9217]: /sbin/route add -net 128.0.0.0 netmask 128.0.0.0 gw 10.8.0.1
Oct  2 16:54:20 Groat ovpn-openvpn[9217]: /sbin/route add -net 212.83.129.0 netmask 255.255.255.0 gw 10.8.0.1
Oct  2 16:54:20 Groat ovpn-openvpn[9217]: Initialization Sequence Completed

편집 : 여기에 직접 파일을 다운로드 서버의 tcpdump와는 다음과 같습니다 http://sprunge.us/aaJX는 여기이 ressource 다운로드 클라이언트입니다 : http://sprunge.us/WUCC을 여기에 (다른 OpenVPN을에서 일반 클라이언트입니다 작동) 서버 : http://www4.slashusr.com/57552.tcpdump

편집 : 의견에 따르면, 여기 원시 tcpdump 캡처가 있습니다. 서버에서 tun0 캡처에 실패했습니다. 이유를 모르겠습니다. 서버는 여기 밖에 , 클라이언트는 tun0 여기에 , 클라이언트는 여기 밖에 , 서버는 여기 파일을 직접 다운로드합니다 .

편집 : 서버가 i3을 실행 중이며 언제든지 사용되지 않습니다 (openvpn 사용 중에도). 클라이언트와 동일하며 i7 완전히 유휴 상태입니다.

편집 : 문제는 여전히 여기 있습니다. 도와주세요 :(


wireshark / tcpdump로 캡처 한 것을 본 적이 있다고 가정합니까? 적절한 장소에서 캡처하면 캡처에서 거의 확실하게 답을 찾을 수 있습니다.
Zoredache

클라이언트에서 다운로드하고 서버에서 (동일한 파일로) eno1 인터페이스의 tcpdump를 가지고 있습니다. 그리고 하나는 openvpn 클라이언트에서 작동합니다. 질문을 편집하겠습니다.
Cubox

트래픽이 전송되는 동안 클라이언트 및 서버에서 CPU 정보를 추가 할 수 있습니까?
Jed Daniels

귀하의 tcpdump에서 트래픽이 느리지 않습니다 (너무 짧습니다). 모든 고객에게 동일한 IP 주소 10.8.0.2가 제공됩니까? 당신은 그것을 생략하고 오히려 당신의 네트워크 212.83.129.0에 경로를 밀어 넣을 수 있습니까?
ott--

각 클라이언트는 자신의 IP 주소를 가진 자신의 ccd를 가지고 있습니다. 네트워크로가는 경로가 무엇을 의미하는지 이해하지 못합니다.
Cubox

답변:


1

그것이 같은 원인인지 확실하지 않지만 openvpn-on-android-tcp-retransmissions-after-openvpn-server-reboot 에서 언급 한대로 tun-mtu 및 mssfix에 대해 조정할 가치가 있다고 생각합니다.

편집 : 이것도 도움이 될 것입니다 [해결됨] 허용되지 않는 openVPN 성능 커널 매개 변수 변경 : net.inet.ip.fastforwarding = 1 (리눅스 서버의 /etc/sysctl.conf에 추가)


답변 해주셔서 감사합니다. tun-mtu 및 mssfix 옵션을 변경해도 도움이되지 않았습니다. Fastworwarding 설정은 Linux에 존재하지 않습니다. BSD 커널 만.
Cubox

0

VPN 서버도 게이트웨이 서버입니까? 푸시 게이트웨이를 제거하려고하면 클라이언트에 추가 경로 만 있으면됩니다.


푸시 게이트웨이 옵션은 어디에 있습니까?
Cubox

CCD 옵션에는 리디렉션 게이트웨이가 있습니다. 클라이언트에 실제 GW 로의 고정 경로가 있는지 확인해야합니다.
MealstroM

있습니다. 고객은 인터넷에서 무엇이든 대화 할 수 있으며 천천히 진행합니다.
Cubox

0

postrouting iptables 규칙이 이상하게 보입니다.

-포스트 라우팅 -s 10.8.0.0/24 -o eno1 -j MASQUERADE

SNAT 대신 eno1에서 IP 중 하나를 삭제하십시오 (둘 다 필요하지 않은 경우). 이더넷 인터페이스로 보이는 두 개의 공용 IP 주소는 이상하게 보입니다. 왜 그 설정입니까?

내 생각에 당신의 openvpn 서버가 루핑하고 패킷을 앞뒤로 떨어 뜨려서이 문제가 발생합니다.


가장 무도회 규칙이 있는데 문제가 해결되지 않았습니다. 내 서버에는 두 개가 있으며 그중 하나는 장애 조치이고 다른 하나는 주 서버입니다. 1 년 넘게 eth0 인터페이스 (다른 Archlinux 서버)에 4 개의 ip를 가진 서버가있는 경우, 여기서는 여러 개의
ip

0

내부적으로 자체 DNS 서버를 실행합니까? 내부 DNS에 대해 powerdns 설정을 실행할 때 네트워크에 문제가 있었지만 리버스 영역이 올바르게 구성되지 않았습니다. 이 경우 Wireshark가 답변을 제공했습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.