从网卡收到一个目的IP为本地loopback IP的UDP包, 协议栈是否会转发给本机应用层?
A上有两个IP:eth0 (192.168.67.63) lo:0 (192.168.67.181)B上也配了一个192.168.67.181的IP(与设备A的lo:0 IP相同),现在设备B通过192.168.67.181向设备A的192.168.67.63地址发UDP包
在A上通过tcpdump等能抓到该包, 但应用层无法收到。
想知道协议栈对这种包是否如何处理的? 如果被丢弃, 是在哪一流程里丢弃的?
看了下代码 ip_rcv、ip_local_deliver等都没发现线索, 求大侠指点! 回复 1# morris2600
这个的应用场景是?
是某服务的一台集群设备上同时安装了另一服务, 此服务要和集群中另一设备通讯 回复 2# 瀚海书香
1. loopback接口还能设置地址吗?不是127.0.0.1吗?
2. 能收到包是因为,2层不关心Ip的啊,源MAC地址是B机器的地址,当然认为这个是来自别的机器的包。
再说,理论上自己发给自己的包是不会进入网络上的。
【Another implication of Figure 2.4 is that IP datagrams sent to the one of the host's own IP addresses normally do not appear on the corresponding network. 】
TCP/IP详解1 2.7节 lo的路由项是发不出去包的 妳的lo是另一张网卡喔?
我建议一先关掉lo试试吧…..
不是额外的网卡, 配置如下:
ifconfig结果如下:
lo Link encap:Local Loopback
inet addr:127.0.0.1Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNINGMTU:16436Metric:1
RX packets:1176240 errors:0 dropped:0 overruns:0 frame:0
TX packets:1176240 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:202914326 (193.5 Mb)TX bytes:202914326 (193.5 Mb)
lo:0 Link encap:Local Loopback
inet addr:10.137.13.28Mask:255.255.255.255
UP LOOPBACK RUNNINGMTU:16436Metric:1
/etc/sysconfig/network # cat ifcfg-lo
# Loopback (lo) configuration
IPADDR=127.0.0.1
NETMASK=255.0.0.0
NETWORK=127.0.0.0
BROADCAST=127.255.255.255
STARTMODE=onboot
USERCONTROL=no
IPADDR_0='10.137.13.28'
NETMASK_0='255.255.255.255'
LABEL_0='0'
最近也遇到类似案例,应该是由于发送过来的包的MAC地址不是你接口网卡地址造成的实际上没有被本机收下来。请检查LVS上配置负载均衡的替换MAC地址。
页:
[1]