Summary: | Неправильное определение MTU | ||||||
---|---|---|---|---|---|---|---|
Product: | Sisyphus | Reporter: | Michael A. Kangin <prividen> | ||||
Component: | vpnc-script | Assignee: | Alexey Shabalin <shaba> | ||||
Status: | CLOSED FIXED | QA Contact: | qa-sisyphus | ||||
Severity: | normal | ||||||
Priority: | P3 | CC: | cas, gns, shaba | ||||
Version: | unstable | ||||||
Hardware: | all | ||||||
OS: | Linux | ||||||
Attachments: |
|
Description
Michael A. Kangin
2013-09-11 15:32:37 MSK
Может, надо на iproute2 перевешать? > Потому что на центоси какой-нибудь:
> # ip route get 8.8.8.8
> 8.8.8.8 via 7.7.7.7 dev eth0 src 7.7.7.6
> cache mtu 1500 advmss 1460 hoplimit 64
Что за центось?
[root@SZKX001 ~]# ip ro get 8.8.8.8
8.8.8.8 via 85.17.225.126 dev eth0 src 85.17.225.98
cache mtu 1500 advmss 1460 hoplimit 64
[root@SZKX001 ~]# rpm -qf /sbin/ip; uname -r
iproute-2.6.32-20.el6.i686
2.6.32-279.11.1.el6.i686
----
[ec2-user@cygnus ~]$ sudo ip ro get 8.8.8.8
8.8.8.8 via 10.58.197.1 dev eth0 src 10.58.197.183
cache
[ec2-user@cygnus ~]$ rpm -qf /sbin/ip; uname -r
iproute-3.6.0-8.16.amzn1.i686
3.4.48-45.46.amzn1.i686
----
[altlinux@eeelive ~]$ sudo ip ro get 8.8.8.8
8.8.8.8 via 10.12.30.254 dev wlan0 src 10.12.30.102
cache
[altlinux@eeelive ~]$ rpm -qf /sbin/ip ; uname -r
iproute2-3.2.0-alt1
3.6.0-pure-emerald-alt1
(В ответ на комментарий №2) > > Потому что на центоси какой-нибудь: > > # ip route get 8.8.8.8 > > 8.8.8.8 via 7.7.7.7 dev eth0 src 7.7.7.6 > > cache mtu 1500 advmss 1460 hoplimit 64 > > Что за центось? # rpm -qf /sbin/ip; uname -r; cat /etc/redhat-release iproute-2.6.18-11.el5 2.6.18-238.12.1.el5.centos.plus CentOS release 5.6 (Final) # rpm -qf /sbin/ip; uname -r; cat /etc/redhat-release iproute-2.6.32-20.el6.x86_64 2.6.32-279.19.1.el6.x86_64 CentOS release 6.3 (Final) На ядре >2.6.32 уже другое. Но mtu - свойство интерфейса. Нужно заменить на двухступенчатый подход: по ip r get <gateway> определяем интерфейс, а по ip link - MTU на нём. > 2.6.18-238.12.1.el5.centos.plus
> 2.6.32-279.19.1.el6.x86_64
Вот и я о чём.
На ядре >2.6.32 уже другое. Но mtu - свойство интерфейса. Нужно заменить на двухступенчатый подход: по ip r get <gateway> определяем интерфейс, а по ip link - MTU на нём. Задублировалось. Вот исправление: MTU=$(($($IPROUTE link show `$IPROUTE route get "$VPNGATEWAY"|sed -ne 's/^.* dev \([[:alnum:]]\+\) .*$/\1/p'`|sed -ne 's/^.*mtu \([[:digit:]]\+\).*$/\1/p')-88)) (В ответ на комментарий №7) > Задублировалось. Вот исправление: > > MTU=$(($($IPROUTE link show `$IPROUTE route get "$VPNGATEWAY"|sed -ne 's/^.* > dev \([[:alnum:]]\+\) .*$/\1/p'`|sed -ne 's/^.*mtu > \([[:digit:]]\+\).*$/\1/p')-88)) лучше не :alnum: а :graph: например. а то интефейс br-inet в пичали. (В ответ на комментарий №7) > Задублировалось. Вот исправление: > > MTU=$(($($IPROUTE link show `$IPROUTE route get "$VPNGATEWAY"|sed -ne 's/^.* > dev \([[:alnum:]]\+\) .*$/\1/p'`|sed -ne 's/^.*mtu > \([[:digit:]]\+\).*$/\1/p')-88)) и -o лучше для ip а то многострочный вывод и не работает Created attachment 5935 [details]
у меня нарисовалось
исправлено в 0.5.3-alt5 |