Solaris Virtual Interface Problem in DHCP

Hi all,

I am experiencing a problem with dhcp broadcast packages. these broadcast packages are seen on bge1 and bge1:1 interfaces but somehow they are not seen at bge771001 interface which is second virtual interface on the bge1 interface.

I have a server on which I configured it as working also a dhcp server. this server has two virual interfaces on bge1 interface and I configured the dhcp server to reply for requests coming on the second virtual interface.

the ifconfig -a is like below for bge1 and it's virtual intervaces:

bge1: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 3
inet 192.168.100.140 netmask ffffe000 broadcast 192.168.127.255
groupname MNIC_LAN_A
ether 0:3:ba:1c:ab:64
bge1:1: flags=9040843<UP,BROADCAST,RUNNING,MULTICAST,DEPRECATED,IPv4,NOFAILOVER> mtu 1500 index 3
inet 192.168.101.140 netmask ffffe000 broadcast 192.168.127.255
bge771001: flags=201000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4,CoS> mtu 1500 index 4
inet 192.168.64.140 netmask ffffe000 broadcast 192.168.95.255
ether 0:3:ba:1c:ab:64

here, the dhcp server has a dhcp-network table for 192.168.64.0 network so it is supposed to reply to requests on this interface (bge771001).

On the client side I have a dummy server which has nothing in it. It only broadcasts its MAC whenever it is restarted, so nothing can be done on client side like snoop, tcpdump etc... This client is going to get an IP from 192.168.64.0 network.

I run the in.dhcp command in debug mode for toubleshooting and I get the below output.It is only getting broadcast for bge1 and bge1:1 virtual interface. What I don't understand is why it is not getting broadcast packages at the bge771001 virtual interface while it can get these at bge1 and bge1:1 interfaces? :confused:

/usr/lib/inet/in.dhcpd -dv -i bge1,bge1:1,bge771001
[root@om-00 /]>> /usr/lib/inet/in.dhcpd -dv -i bge1,bge1:1,bge771001

WARNING: Disabling duplicate IP address detection!

49646945: Daemon Version: 3.5
49646945: Maximum relay hops: 4
49646945: Run mode is: DHCP Server Mode.
49646945: Datastore resource: SUNWfiles
49646945: Location: /var/dhcp
49646945: DHCP offer TTL: 300
49646945: BOOTP compatibility enabled.
49646945: ICMP validation timeout: 1000 milliseconds, Attempts: 1.
49646945: Maximum concurrent clients: 2048
49646945: Maximum threads: 512
49646945: Read 5 entries from DHCP macro database on Wed Jan 7 10:35:17 2009
49646945: Monitor (0003/bge1) started...
49646945: Thread Id: 0003 - Monitoring Interface: bge1 *****
49646945: MTU: 1500 Type: SOCKET
49646945: Broadcast: 192.168.127.255
49646945: Netmask: 255.255.224.0
49646945: Address: 192.168.100.140
49646945: Monitor (0004/bge1:1) started...
49646945: Thread Id: 0004 - Monitoring Interface: bge1:1 *****
49646945: MTU: 1500 Type: SOCKET
49646945: Monitor (0005/bge771001) started...
49646945: Broadcast: 192.168.127.255
49646945: Thread Id: 0005 - Monitoring Interface: bge771001 *****
49646945: Netmask: 255.255.224.0
49646945: MTU: 1500 Type: SOCKET
49646945: Address: 192.168.101.140
49646945: Broadcast: 192.168.95.255
49646945: Netmask: 255.255.224.0
49646945: Address: 192.168.64.140
49646bfd: Datagram received on network device: bge1:1(limited broadcast)
49646bfd: Datagram received on network device: bge1(limited broadcast)
49646bfd: bge1(limited broadcast): There is no 192.168.96.0 dhcp-network table for DHCP client's network.
49646bfd: bge1:1(limited broadcast): There is no 192.168.96.0 dhcp-network table for DHCP client's network.
49646bff: Datagram received on network device: bge1:1(limited broadcast)
49646bff: Datagram received on network device: bge1(limited broadcast)
49646bff: bge1(limited broadcast): There is no 192.168.96.0 dhcp-network table for DHCP client's network.
49646bff: bge1:1(limited broadcast): There is no 192.168.96.0 dhcp-network table for DHCP client's network.

and moreover I snooped the bge1 interface and always I got the following output. there are always dhcp discover packages and dhcp never responces to these since It doesn't see any broadcast at the bge771001 interface.

[root@om-00 /]>> snoop -d bge1 dhcp
Using device /dev/bge1 (promiscuous mode)
OLD-BROADCAST -> BROADCAST DHCP/BOOTP DHCPDISCOVER
OLD-BROADCAST -> BROADCAST DHCP/BOOTP DHCPDISCOVER
OLD-BROADCAST -> BROADCAST DHCP/BOOTP DHCPDISCOVER
OLD-BROADCAST -> BROADCAST DHCP/BOOTP DHCPDISCOVER
OLD-BROADCAST -> BROADCAST DHCP/BOOTP DHCPDISCOVER

I was suspicious about the /var/dhcp anf /tftpboot and already did doublecheck them but since the dhcp server doesn't reply with dhcp offer to dhcp discover requests, these are not in use yet.

I already tried to some troubleshooting steps like changing the cable between the client and the server, reconfiguring the dhcp server... but none of them helped :frowning:

Do anyone know what causes the broadcast packages to be distributed between the physical interface and the virtual interfaces on the same physical interface?

I really appreciate for any comments or ideas.

best regards
//ironoxide

your interface bge771001 is not a virtual interface like bge1:1. bge771001 is a vlan and only vlan tagged packages (in the same vlan) are seen from your vlan interface...

Hi DukeNuke2,

thank you very much for your comment which let me see what is wrong in network :))

I changed the ports on the switch which is between the dhcp server and client from tagged to untagged, and it somehow worked.

btw I had already this tagged/untagged change but It hadn't worked that time. Also I had used direct cable between the dhcp server and client before and this direct cable even hadn't worked.

it is now working which is good enough :))

thank you again
br
//ironoxide