提交 753d76e0 编写于 作者: S Stefan Berger

nwfilter: Discard class D,E IP addresses when sniffing pkts

When sniffing the network traffic, discard class D and E IP addresses when sniffing traffic. This was a reason why filters were not correctly rebuilt on VMs on the local 192.* network when libvirt was restarted and those VMs did not use a DHCP request to get its IP address.
上级 bed3a217
......@@ -546,9 +546,11 @@ learnIPAddressThread(void *arg)
struct iphdr *iphdr = (struct iphdr*)(packet +
ethHdrSize);
vmaddr = iphdr->saddr;
// skip eth. bcast and mcast addresses,
// and zero address in DHCP Requests
if ((ntohl(vmaddr) & 0xc0000000) || vmaddr == 0) {
// skip mcast addresses (224.0.0.0 - 239.255.255.255),
// class E (240.0.0.0 - 255.255.255.255, includes eth.
// bcast) and zero address in DHCP Requests
if ( (ntohl(vmaddr) & 0xe0000000) == 0xe0000000 ||
vmaddr == 0) {
vmaddr = 0;
continue;
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册