Bug 27492 - Can't connect to the ISP when I got 2 LAN interface
Summary: Can't connect to the ISP when I got 2 LAN interface
Status: CLOSED DUPLICATE of bug 23052
Alias: None
Product: Red Hat Linux
Classification: Retired
Component: pump   
(Show other bugs)
Version: 6.2
Hardware: i386 Linux
Target Milestone: ---
Assignee: Elliot Lee
QA Contact: David Lawrence
Depends On:
TreeView+ depends on / blocked
Reported: 2001-02-14 03:00 UTC by Bill Gates
Modified: 2007-04-18 16:31 UTC (History)
1 user (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Last Closed: 2001-07-16 13:41:49 UTC
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---

Attachments (Terms of Use)

Description Bill Gates 2001-02-14 03:00:02 UTC
From Bugzilla Helper:
User-Agent: Mozilla/4.0 (compatible; MSIE 5.0; Windows 98; DigExt)

My environment is:
	Red Hat 6.2, pump 0.7.8, 0.8.3 and 0.8.8. (I read  and test the 
3 version code.)
	The Linux system got 2 LAN interface. One used Fix IP address. 
(ex., the other used Dynamic. (DHCP client)
	First of all, I brought up the "eth1" interface with Fix IP.    -
->    OK
	Secondary, I run "ifup eth0" to trigger the "pump" program. But 
it couldn't get an IP address from the DHCP Server. ( the ISP)
	I capture the packets and found that the program will send "from to" IP/UDP/DHCP packet. It's a broadcast 
packet, the server should receive it. But the ISP won't response any 
packet. Other Router or PC will send "from to" 
packet to get a legal IP address from this ISP.
	I read the source of pump. It use "socket(AF_PACKET, 
SOCKET_DGRAM, ntohs(ETH_P_IP))" and "sendto(....serverAddr..)".  
The "sendto" function doesn't contain any source address field. I tried 
several ways to change the source address. (bind, setsockopt, ...) But I 
didn't succeed. It seems the low level code filled in the source IP 
	But as my opinion, the "eth0" didn't up or get any valid IP 
address. It shouldn't send with the IP of eth1.( If the 
interface hasn't been ready. It should use as its source.
	If I couldn't solve this problem, the customers of my company 
would have no chance to connect the that ISP. (It's a big ISP in local.) 
After several days trial, I still fail to change the field of source IP 

Reproducible: Always
Steps to Reproduce:
1. Set up your first LAN interface with Fix IP. Active it. run "ifup 
eth1". (set /etc/sysconfig/network-scripts/ifcfg-eth1 with fix ip)
2. Active the second interface with DHCP cleint. run "ifup eth0". 
(set /etc/sysconfig/network-scripts/ifcfg-eth0 with dhcp client, ONBOOT=no)
3. Couldn't get an IP from eth0. The ISP doesn't reply.

Actual Results:  The ISP doesn't reply any packet to us.
The Linux couln't get an IP address from the ISP.

Expected Results:  The eth0 should get a legal IP address from the ISP.
We set DHCP client and pump could get an IP address from other DHCP server.
We could get the IP address from most ISP. And if we got 1 LAN interface, 
we could get the IP without problem.

I capture the LAN packets and compare it with other machine. (Other router 
and PC)
The only different is in the IP layer.
On Linux:   Source:  Destination:
On Router:  Source:      Destination:
Because the DHCP request packet should use " ->" 
when the interface hasn't up and without any IP address. It shouldn't use 
the IP address on another LAN interface as its source IP. (

Comment 1 Bill Gates 2001-02-15 02:36:24 UTC
The ISP is "@home" in the U.S..
The pump-0.8.8-1 RPM is ported from Red Hat 7.0 version to Red Hat 6.2 version 
by me. It works well but still couldn't fix this problem.

Comment 2 Elliot Lee 2001-08-08 05:04:20 UTC

*** This bug has been marked as a duplicate of 23052 ***

Note You need to log in before you can comment on or make changes to this bug.