Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

I've created a virtual interface in Ubuntu with the following:

sudo ifconfig eth0:0 192.168.1.99 netmask 255.255.255.0 up

Now I need to be able to ping from the new virtual interface.

ping -I 192.168.1.99 www.google.co.in

I am unable to do that. I have enabled IP forwarding.

share|improve this question

migrated from stackoverflow.com Apr 10 '12 at 18:16

This question came from our site for professional and enthusiast programmers.

    
definitely superuser –  KurzedMetal Apr 10 '12 at 12:10

1 Answer 1

The ping -I option should just work, I might be mistaken but it works out-of-the-box in the examples below, and ive not enabled forwarding. Can you provide your ifconfig and netstat -r output.

Normally the source IP would be set depending on the network interface for the appropriate route for the target address, so if eth0:0 was also an appropriate IP for the interface you end up with 1 of 2 possibilities like so;

  1. for example, if my ip address is 192.168.1.72 like so;

    # ifconfig
    eth0 Link encap:Ethernet HWaddr 00:04:4B:16:BA:41
    inet addr:192.168.1.72 Bcast:192.168.1.255 Mask:255.255.255.0

and I add another IP address, like your command;

 ifconfig eth0:0 192.168.1.99 netmask 255.255.255.0 up

then I would end up with the following

# ifconfig
eth0      Link encap:Ethernet  HWaddr 00:04:4B:16:BA:41  
          inet addr:192.168.1.72  Bcast:192.168.1.255  Mask:255.255.255.0

eth0:0    Link encap:Ethernet  HWaddr 00:04:4B:16:BA:41  
          inet addr:192.168.1.99  Bcast:192.168.1.255  Mask:255.255.255.0

so I can ping with either the default IP bound to the eth0 interface;

ping -I 192.168.1.72 myremote.host.com

echo request...  
echo reply....  

or the new one;

ping -I 192.168.1.99 myremote.host.com

echo request...  
echo reply....  

but because, 192.168.1.xx are all local addresses behind a NAT'ted connection, the remote host at myremote.host.com just sees your external IP and not 192.168.1.72

20:24:21.452732 IP 87.19.24.187 > 123.123.123.123: ICMP echo request, id 49711, seq 6, length 64
20:24:21.452757 IP 123.123.123.123 > 87.19.24.187: ICMP echo reply, id 49711, seq 6, length 64

where 87.19.24.187 is the public address

  1. However if I set some crazy IP address to the interface, like so;

    ifconfig eth0:2 192.192.7.99 netmask 255.255.255.0 up

my remote host sees the ping, but the client never gets the reply;

# tcpdump -nn icmp and host xxx
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
20:25:01.165321 IP xxx > yyy: ICMP echo request, id 49730, seq 1, length 64
20:25:01.165349 IP yyy > xxx: ICMP echo reply, id 49730, seq 1, length 64
share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.