2019-05-25 19:24:49 wjw7869 阅读数 278

1. linux 系统中pmtu 缓存在路由表中,默认缓存时间是600s。见文件 /proc/sys/net/ipv4/route/mtu_expires 

 可以通过echo 命令 更改为2s

echo "2" > /proc/sys/net/ipv4/route/mtu_expires 

这样的话,系统会每隔两s去更新pmtu,上联设备的 mtu更改了系统会立刻生效。

 /proc/sys/net/ipv4/route/mtu_expires
该文件表示PMTU信息缓存多长时间(秒)。
 

2017-07-28 09:19:56 hhhlizhao 阅读数 2760

用ifconfig命令可查看Linux系统下MTU值,一般默认为1500字节,如下所示



MTU的设置一般有两种方法:

(1)、如下,即时生效,重启后失效
# sudo ifconfig eth0 mtu 9000

(2)、永久生效的修改方法,缺点是需要重启网卡

# vim  /etc/sysconfig/network-scripts/ifcfg-eth0   增加如下内容

MTU = "9000"

# sudo service network-manager restart


但一般我们用 sudo ifconfig eth0 mtu命令修改mtu,当mtu值大于1500时常常会遇到“SIOCSIFMTU: 无效的参数”的错误,其原因有可能是网卡驱动版本过低导致,网卡驱动可用如下命令查看:

#ethtool -i eth0

driver: pcnet32
version: 1.35
firmware-version: 
bus-info: 0000:02:01.0
supports-statistics: no
supports-test: yes
supports-eeprom-access: no
supports-register-dump: yes
supports-priv-flags: no

此处网卡驱动为pcnet32 1.35版,解决方法为

(1)可从网上下载最新驱动安装包更换此驱动。

(2)还有一种方法是更改虚拟机虚拟网卡类型为VMXNET3,具体操作为修改虚拟机.vmx文件(在虚拟机->选项->工作目录所指文件夹下 ),将ethernet0.virtualDev = "vmxnet3"加入到文件中,见下图:


之后保存修改,此时再用上述命令修改mtu不会再出现SIOCSIFMTU: 无效的参数”的错误,可修改的最大mtu为9000.


参考:http://support.huawei.com/enterprise/KnowledgebaseReadAction.action?contentId=KB1000079224

http://blog.chinaunix.net/uid-21795529-id-1815186.html



 9000






2015-11-17 07:12:33 Quyuan2009 阅读数 8453

1. 先查看网络接口配置

# ifconfig
lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:30 errors:0 dropped:0 overruns:0 frame:0
          TX packets:30 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:1872 (1.8 Kb)  TX bytes:1872 (1.8 Kb)

2.问题出现,只有本地环回口打开

发现只有本地换回口开着,eth0之类的网口没开。
好,有时该使用下暴力手段了。

#ifconfig eth0 up
eth0: unknown interface: 没有那个设备

。。。。。。居然提示没有设备,好吧,看看其他的网口

#ifconfig eth1 up

看看情况,总算起来了。

# ifconfig
eth1      Link encap:Ethernet  HWaddr 00:0C:29:F6:2F:B1  
          inet6 addr: fe80::20c:29ff:fef6:2fb1/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:77 errors:0 dropped:0 overruns:0 frame:0
          TX packets:59 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:7038 (6.8 Kb)  TX bytes:5801 (5.6 Kb)
          Interrupt:19 Base address:0x2024 

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:30 errors:0 dropped:0 overruns:0 frame:0
          TX packets:30 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:1872 (1.8 Kb)  TX bytes:1872 (1.8 Kb)

3. 重启network,让dhcp给eth1自动分配地址

# /etc/init.d/network restart
Shutting down network interfaces:
    eth1      device: Advanced Micro Devices 
              No configuration found for eth1 
              Nevertheless the interface will be shut down.                                              done
Shutting down service network  .  .  .  .  .  .  .  .  .                                                 done
Hint: you may set mandatory devices in /etc/sysconfig/network/config
Setting up network interfaces:
    eth1      device: Advanced Micro Devices 
              No configuration found for eth1                                                            unused
Setting up service network  .  .  .  .  .  .  .  .  .  .                                                 done
SuSEfirewall2: Setting up rules from /etc/sysconfig/SuSEfirewall2 ...
SuSEfirewall2: using default zone 'ext' for interface eth1
SuSEfirewall2: batch committing...
SuSEfirewall2: Firewall rules successfully set

No configuration found for eth1 unused说明系统没有针对eth1的配置
先看看eth1有没有配上ip
好吧,端口都关闭了

 # ifconfig
lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:30 errors:0 dropped:0 overruns:0 frame:0
          TX packets:30 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:1872 (1.8 Kb)  TX bytes:1872 (1.8 Kb)

既然提示针对eth1的配置文件没有找到,那么就需要到配置目录看看喽。

4. 配置eth1

suse linux的网络配置文件的存放目录是在/etc/sysconfig/network/下面,瞧瞧去

/etc/sysconfig/network # ls -l
总用量 88
-rw-r--r-- 1 root root 13895 11月 19 2014 config
-rw-r--r-- 1 root root  9956 11月 19 2014 dhcp
-rw-r--r-- 1 root root   169 11月 17 06:37 ifcfg-eth0
-rw------- 1 root root   172  2月  1 2012 ifcfg-lo
-rw-r--r-- 1 root root 29333  2月  1 2012 ifcfg.template
drwxr-xr-x 2 root root  4096 11月 19 2014 if-down.d
-rw-r--r-- 1 root root   239  2月  1 2012 ifroute-lo
drwxr-xr-x 2 root root  4096 11月 19 2014 if-up.d
drwx------ 2 root root  4096  5月  5 2010 providers
drwxr-xr-x 2 root root  4096 11月 19 2014 scripts

果然没有ifcfg-eth1的配置文件,咋办呢?不是还有ifcfg-eth0的嘛,参考一下。

/etc/sysconfig/network # cat ifcfg-eth0
BOOTPROTO='dhcp'
BROADCAST=''
ETHTOOL_OPTIONS=''
IPADDR=''
MTU=''
NAME='79c970 [PCnet32 LANCE]'
NETMASK=''
NETWORK=''
REMOTE_IPADDR=''
STARTMODE='auto'
USERCONTROL='no'

明显这就是我们想要的用dhcp动态分配ip的配置文件,拷贝成ifcfg-eth1看看。

/etc/sysconfig/network # cp ifcfg-eth0 ifcfg-eth1

重新启动网络配置,成功了,哈哈

 # /etc/init.d/network restart
Shutting down network interfaces:
    eth1      device: Advanced Micro Devices                                                             done
Shutting down service network  .  .  .  .  .  .  .  .  .                                                 done
Hint: you may set mandatory devices in /etc/sysconfig/network/config
Setting up network interfaces:
    eth1      device: Advanced Micro Devices 
    eth1      Starting DHCP4+DHCP6 client. . . . . . . .  
    eth1      IP address: 192.168.27.125/24
    eth1      DHCP6 continues in background                                                              done
Setting up service network  .  .  .  .  .  .  .  .  .  .                                                 done
SuSEfirewall2: Setting up rules from /etc/sysconfig/SuSEfirewall2 ...
SuSEfirewall2: using default zone 'ext' for interface eth1
SuSEfirewall2: batch committing...
SuSEfirewall2: Firewall rules successfully set
2018-11-29 10:56:13 Beer_Do 阅读数 1603

最近我在尝试从一台linux服务器SSH登录到另一台服务器时发现链接错误。通过加入-vvv参数后,发现卡在debug1: SSH2_MSG_KEXINIT sent

通过搜索,发现可能是网络接口MTU设置的问题。我尝试在/etc/sysconfig/network-scripts/ifcfg-eth0中添加MTU=1500,在重启网络服务后,发现并没有生效。由于我是通过DHCP获取IP地址的,那么MTU也被DHCP设置。

以下这篇文章详细介绍了在CentOS 6和CentOS 7中如何覆盖通过DHCP获取的MTU
(https://devops.profitbricks.com/tutorials/override-dhcp-settings-on-centos/)

没有更多推荐了,返回首页