今天遇到个问题,netapp上的node1的autosupport 发送邮件失败了,而相同配置的node2成功。防火墙上也没发现特别的该节点阻塞的包,因为发送邮件服务器是外部ip,随意测了一下一个可以ping的外部ip,node2 ping通了,node1 , error ,no route to destination ..
后来一查原来默认的网关丢失了。
回头又看了一下netapp网络管理手册上的route部分:
Data ONTAP routing
虽然netapp提供了多个网络接口,但是并不能作为一个路由器。netapp不能代表其他的网络主机在内部的多个接口间路由转发包。然后,netapp可以路由其自己的向外发送的包(outbound packages).
Data ONTAP使用了两种路由机制:
fast path:快速路径。路由NFS包在UDP底层协议,还有路由所有的TCP包,都使用fast path.
routing table:路由其他的网络协议包,ONTAP使用可用的本地路由表(local route table)
FAST PATH
不用路由表,而采用:
。使用进来包的源的MAC 地址 作为 出去包的目的MAC 地址。包括NFS-over UDP,和所有的TCP。
。使用相同接口-即入包和出包使用同一个接口
这样做提供的好处:
。可以让load balance在相同子网内分布到多个网络接口上
。增加存储性能:因为跳过路由表的查询
NFS-over-UDP
。使用fast path只是在发送一个回复给一个请求的时候。
TCP
。因为tcp是面向连接的而且数据也是作为协议的一部分,所以,可以使用fast path在每一个tcp包上。除了一个最初的SYN 包(初始化连接)。使用相同的接口回送返回包或者传输包。
对于tcp连接,如果其发现更好的路径会自动关闭fast path.其内部会自动优化。
当然,fast path也可以手工禁止(disable)
例子:
1)fast path激活后:telnet工作,但是ping失败
如果fast path enable,但是default router不工作。 telnet session可以创建,但是不能ping。因为ping会使用默认路由表,而telnet是基于tcp的。
在非对称路由中激活fast path
(no)
关于路由表
路由表包含当前已经建立而且正在使用的路由列表。当然也包括默认的路由设定。(不但但只是外部路由信息)
ONTAP上默认的路由设置:
ONTAP使用默认的路由项来路由一些目标地址-在它已知的从路由中不能明确查出的地址。
ONTAP新版中使用/etc/rc取代过去的路由文件
route add default xxxx 1
routed on
管理路由表:
自动使用routed,手工使用route命令。
路由表在下面的情况下可能被修改:
。ifconfig配置了一个新的接口,而现有的路由表中没有该接口。
。netapp接到一个新的ICMP重定向包,指出饿了更好的first-hop到一个特殊目的地址的路由。(option ip.icmp_ignore_redirect.enable)
。rc修改后重新启动了netapp
routed作用:
。删除重定向路由在一段时间周期后(expire)
。使用RDP发现新路由(router discovery with Internet Router Discovery Protocol(IRDP)),只在没有静态默认路由的情况下使用。
。监听RIP包。(route information protocol)
。当在相同网段内有多个可用接口的时候迁移路由到替换的接口。
....
何时禁止routed:
在一些特殊场合,比如多个接口在一个网段内,但你想指定使用其中一个接口,有routd则没办法,它认为大家一样。
... 建议还是使用吧.
启用和禁止路由机制
fast path和routed都可以启用和停止,默认是启用的。
fast path:options ip.fastpath.enable on|off
检查:用netstat -x来查看是否启用。
routed: routed on|off
/etc/rc-->修改routed
显示路由表和默认的路由信息
netstat -rn
routed status
例子:
netstat -rn
Internet:
Destination Gateway Flags Refs Use Interface
default 172.28.50.1 UGS 5 5860 e0
127.0.0.1 127.0.0.1 UH 1 262 lo
172.28.100/24 link#1 UC 0 0 e0
172.28.50.1 0:e0:52:1:dd:66 UHL 1 0 e0
172.28.50.3 8:0:20:9b:37:e6 UHL 0 4 e0
172.28.50.18 8:0:20:94:1c:ce UHL 0 0 e0
172.28.50.255 ff:ff:ff:ff:ff:ff UHL 0 3903 e0
172.28.255.255 ff:ff:ff:ff:ff:ff UHL 1 1733 e0
目的可以是一台机器,比如172.28.50.1,也可以是一个网络,比如172.28.100/24,或者默认的路由,default。
如果是网络 172.28.100/24,24代表mask。(个人)24=8*3,意味着掩码就是255.255.255.0,如果是27,则24+3,255.255.255.xxx,xx的二进制是11100000,换算成十进制是128+64+32=224. 255.255.255.224。掩码就是屏蔽一些可用的ip资源,因为ip or 操作掩码。
Flag说明:
(个人)对于netapp来说,通常
1,至少要有一个defaut route,否则除了接口内的其他网段都不可以通讯。
UGS-gateway代表不直接连接的其他网络路由,S静态,route命令加入的。
default 172.28.50.1 UGS 5 5860 e0a
127 127.0.0.1 UGS 0 2775 lo
2,每个interface都有一个目标地址是网络,gateway是link,flag是UC,interface或者网卡或者VIF的记录。
172.28.100/24 link#1 UC 0 0 e0a
3,UHL-host连接到主机的,L-link连接层面的信息。
每个interface都应该有一个interface是lo的记录,代表本接口自身的ip。
10.37.5.30 2:a0:98:f:6:92 UHL 0 340 lo
127.0.0.1 127.0.0.1 UH 1 721 lo
另外,子网掩码部分每个interface都有一个
10.37.5.255 ff:ff:ff:ff:ff:ff UHL 0 1812 e0a
其他的UHL都是现有的连接
其中有一个是网关的
还有一个带掩码的ip地址
修改路由表
route -s 和netstat -rn相同
route [add|delete] [inet|inet6 prefixlen length] [host|net] destination [gateway metric]
诊断ping的问题
可以控制ping包的发送和接受频率以防止某些恶意攻击.
ip.ping_throttle.drop_level 默认150,每秒150个包.
diable可以设置该数值为0.
netstat -p icmp可以监控运行情况
0 pings dropped due to throttling
0 ping replies dropped due to throttling