WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-users

Re: [Xen-users] network (NAT?) problem

It works great. Thanks a lot.

Regards,
Markus

On Sun, Jun 26, 2005 at 01:14:27PM +0100, James Bulpin wrote:
> Marcus
> 
> OK, I think I know what's happening here. Only the first packet from a 
> stream ("connection") traverses the PRE- and POSTROUTING chains. 
> Subsequent packets will be processed according to the connection 
> tracking data.
> 
> In your case (which I've replicated and observed the same behaviour) the 
> first packet from a connection initiated by dom2 enters dom0 for 
> bridging back to dom1 via xen-br1. This packet traverses the PREROUTING, 
> FORWARD and POSTROUTING chains and gets connection-tracked (yes, packets 
> that are only bridged do traverse these chains). When dom1 routes that 
> packet to dom0, dom0 finds that the packet matches a tracked connection 
> so does not pass it over the PRE- or POSTROUTING chains and therefore 
> doesn't hit the MASQUERADE rule.
> 
> A possible workaround is to use the NOTRACK target (does what it says on 
> the tin, doesn't track that packet - I'm assuming this does not affect 
> the second traversal which we do want to track) for packets that are 
> just coming in to dom0 for bridging on xen-br1. This target can only be 
> used on the 'raw' table. This requires CONFIG_IP_NF_RAW which I don't 
> have in the kernel on the machine I'm using for testing, and it's a 
> production machine that I can't reboot right now. Something like the 
> following should work:
> 
> iptables -t raw -A PREROUTING -i xen-br1 -J NOTRACK
> 
> Please try this and let me know if it works.
> 
> Regards,
> 
> James
> 
> Markus Lude wrote:
> >On Thu, Jun 23, 2005 at 10:55:11AM +0100, James Bulpin wrote:
> >
> >>Markus,
> >>
> >>You say the routing of packets between dom2 and dom0 doesn't work as 
> >>intended - can you elaborate on this, i.e. where do packets get to, do 
> >>you see them if you tcpdump eth1 and eth0 in dom1?
> >
> >
> >Ehm, the routing between dom2 and dom0 _does_ work, but something with NAT
> >in dom0 seems to go wrong for packets from dom2. I see the traffic between
> >dom0 and dom2 on the interfaces in dom1.
> >
> >
> >>Do you have any IP tables rules in dom0 that would affect packets on 
> >>xen-br1?
> >>
> >>Can you post the following for all domains:
> >>- iptables details (both nat and filter tables)
> >>- routing tables
> >>- ifconfig
> >>- cat /proc/sys/net/ipv4/ip_forward
> >
> >
> >dom2
> >
> >xsarge2:~# iptables -nvL -t filter
> >modprobe: QM_MODULES: Function not implemented
> >
> >modprobe: QM_MODULES: Function not implemented
> >
> >modprobe: Can't locate module ip_tables
> >iptables v1.2.11: can't initialize iptables table `filter': iptables who? 
> >(do you need to insmod?)
> >Perhaps iptables or your kernel needs to be upgraded.
> >
> >xsarge2:~# route -n
> >Kernel IP routing table
> >Destination     Gateway         Genmask         Flags Metric Ref    Use 
> >Iface
> >172.30.1.0      0.0.0.0         255.255.255.0   U     0      0        0 
> >eth0
> >0.0.0.0         172.30.1.21     0.0.0.0         UG    0      0        0 
> >eth0
> >
> >xsarge2:~# ifconfig
> >eth0      Link encap:Ethernet  HWaddr 0A:00:00:00:01:20  
> >          inet addr:172.30.1.22  Bcast:172.30.255.255  Mask:255.255.255.0
> >          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
> >          RX packets:61 errors:0 dropped:0 overruns:0 frame:0
> >          TX packets:79 errors:0 dropped:0 overruns:0 carrier:0
> >          collisions:0 txqueuelen:1000 
> >          RX bytes:5866 (5.7 KiB)  TX bytes:6622 (6.4 KiB)
> >
> >lo        Link encap:Local Loopback  
> >          inet addr:127.0.0.1  Mask:255.0.0.0
> >          UP LOOPBACK RUNNING  MTU:16436  Metric:1
> >          RX packets:22 errors:0 dropped:0 overruns:0 frame:0
> >          TX packets:22 errors:0 dropped:0 overruns:0 carrier:0
> >          collisions:0 txqueuelen:0 
> >          RX bytes:2328 (2.2 KiB)  TX bytes:2328 (2.2 KiB)
> >
> >xsarge2:~# cat /proc/sys/net/ipv4/ip_forward
> >1
> >
> >---------------------------------------
> >dom1
> >
> >xsarge1:~# iptables -nvL -t filter
> >modprobe: QM_MODULES: Function not implemented
> >
> >modprobe: QM_MODULES: Function not implemented
> >
> >modprobe: Can't locate module ip_tables
> >iptables v1.2.11: can't initialize iptables table `filter': iptables who? 
> >(do you need to insmod?)
> >Perhaps iptables or your kernel needs to be upgraded.
> >
> >xsarge1:~# route -n
> >Kernel IP routing table
> >Destination     Gateway         Genmask         Flags Metric Ref    Use 
> >Iface
> >172.30.1.0      0.0.0.0         255.255.255.0   U     0      0        0 
> >eth0
> >172.30.0.0      0.0.0.0         255.255.255.0   U     0      0        0 
> >eth1
> >0.0.0.0         172.30.0.1      0.0.0.0         UG    0      0        0 
> >eth1
> >
> >xsarge1:~# ifconfig
> >eth0      Link encap:Ethernet  HWaddr 0A:00:00:00:01:10  
> >          inet addr:172.30.1.21  Bcast:172.30.255.255  Mask:255.255.255.0
> >          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
> >          RX packets:61 errors:0 dropped:0 overruns:0 frame:0
> >          TX packets:72 errors:0 dropped:0 overruns:0 carrier:0
> >          collisions:0 txqueuelen:1000 
> >          RX bytes:5866 (5.7 KiB)  TX bytes:6328 (6.1 KiB)
> >
> >eth1      Link encap:Ethernet  HWaddr 0A:00:00:00:10:11  
> >          inet addr:172.30.0.21  Bcast:172.30.255.255  Mask:255.255.255.0
> >          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
> >          RX packets:17 errors:0 dropped:0 overruns:0 frame:0
> >          TX packets:22 errors:0 dropped:0 overruns:0 carrier:0
> >          collisions:0 txqueuelen:1000 
> >          RX bytes:1330 (1.2 KiB)  TX bytes:1820 (1.7 KiB)
> >
> >lo        Link encap:Local Loopback  
> >          inet addr:127.0.0.1  Mask:255.0.0.0
> >          UP LOOPBACK RUNNING  MTU:16436  Metric:1
> >          RX packets:30 errors:0 dropped:0 overruns:0 frame:0
> >          TX packets:30 errors:0 dropped:0 overruns:0 carrier:0
> >          collisions:0 txqueuelen:0 
> >          RX bytes:2996 (2.9 KiB)  TX bytes:2996 (2.9 KiB)
> >
> >xsarge1:~# cat /proc/sys/net/ipv4/ip_forward
> >1
> >
> >---------------------------------------
> >dom0: arras
> >
> >arras:~# iptables -nvL -t filter
> >Chain INPUT (policy ACCEPT 6004 packets, 450K bytes)
> > pkts bytes target     prot opt in     out     source               
> > destination         
> >Chain FORWARD (policy ACCEPT 123 packets, 10332 bytes)
> > pkts bytes target     prot opt in     out     source               
> > destination         
> >Chain OUTPUT (policy ACCEPT 5312 packets, 338K bytes)
> > pkts bytes target     prot opt in     out     source               
> > destination         arras:~# iptables -nvL -t nat   
> >Chain PREROUTING (policy ACCEPT 1866 packets, 401K bytes)
> > pkts bytes target     prot opt in     out     source               
> > destination         
> >Chain POSTROUTING (policy ACCEPT 82 packets, 6653 bytes)
> > pkts bytes target     prot opt in     out     source               
> > destination         0     0 MASQUERADE  all  --  *      xen-br0  
> >    172.30.0.0/16        0.0.0.0/0           
> >Chain OUTPUT (policy ACCEPT 22 packets, 1613 bytes)
> > pkts bytes target     prot opt in     out     source               
> > destination         arras:~# route -n
> >Kernel IP routing table
> >Destination     Gateway         Genmask         Flags Metric Ref    Use 
> >Iface
> >172.30.1.0      172.30.0.21     255.255.255.0   UG    0      0        0 
> >xen-br10
> >172.30.0.0      0.0.0.0         255.255.255.0   U     0      0        0 
> >xen-br10
> >134.2.8.0       0.0.0.0         255.255.248.0   U     0      0        0 
> >xen-br0
> >0.0.0.0         134.2.15.254    0.0.0.0         UG    0      0        0 
> >xen-br0
> >
> >arras:~# ifconfig
> >eth0      Link encap:Ethernet  HWaddr 00:0D:56:83:0C:A9  
> >          inet addr:134.2.11.153  Bcast:134.2.15.255  Mask:255.255.248.0
> >          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
> >          RX packets:49972 errors:0 dropped:0 overruns:0 frame:0
> >          TX packets:1000 errors:0 dropped:0 overruns:0 carrier:0
> >          collisions:0 txqueuelen:1000 
> >          RX bytes:4690589 (4.4 MiB)  TX bytes:95473 (93.2 KiB)
> >          Base address:0xdf40 Memory:feae0000-feb00000 
> >
> >lo        Link encap:Local Loopback  
> >          inet addr:127.0.0.1  Mask:255.0.0.0
> >          UP LOOPBACK RUNNING  MTU:16436  Metric:1
> >          RX packets:4937 errors:0 dropped:0 overruns:0 frame:0
> >          TX packets:4937 errors:0 dropped:0 overruns:0 carrier:0
> >          collisions:0 txqueuelen:0 
> >          RX bytes:308890 (301.6 KiB)  TX bytes:308890 (301.6 KiB)
> >
> >vif1.0    Link encap:Ethernet  HWaddr FE:FF:FF:FF:FF:FF  
> >          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
> >          RX packets:116 errors:0 dropped:0 overruns:0 frame:0
> >          TX packets:61 errors:0 dropped:0 overruns:0 carrier:0
> >          collisions:0 txqueuelen:0 
> >          RX bytes:8176 (7.9 KiB)  TX bytes:5866 (5.7 KiB)
> >
> >vif1.1    Link encap:Ethernet  HWaddr FE:FF:FF:FF:FF:FF  
> >          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
> >          RX packets:93 errors:0 dropped:0 overruns:0 frame:0
> >          TX packets:65 errors:0 dropped:0 overruns:0 carrier:0
> >          collisions:0 txqueuelen:0 
> >          RX bytes:8050 (7.8 KiB)  TX bytes:5866 (5.7 KiB)
> >
> >vif2.0    Link encap:Ethernet  HWaddr FE:FF:FF:FF:FF:FF  
> >          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
> >          RX packets:105 errors:0 dropped:0 overruns:0 frame:0
> >          TX packets:61 errors:0 dropped:0 overruns:0 carrier:0
> >          collisions:0 txqueuelen:0 
> >          RX bytes:7714 (7.5 KiB)  TX bytes:5866 (5.7 KiB)
> >
> >xen-br0   Link encap:Ethernet  HWaddr 00:0D:56:83:0C:A9  
> >          inet addr:134.2.11.153  Bcast:134.2.15.255  Mask:255.255.255.255
> >          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
> >          RX packets:46551 errors:0 dropped:0 overruns:0 frame:0
> >          TX packets:989 errors:0 dropped:0 overruns:0 carrier:0
> >          collisions:0 txqueuelen:0 
> >          RX bytes:2681480 (2.5 MiB)  TX bytes:89935 (87.8 KiB)
> >
> >xen-br1   Link encap:Ethernet  HWaddr FE:FF:FF:FF:FF:FF  
> >          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
> >          RX packets:1 errors:0 dropped:0 overruns:0 frame:0
> >          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
> >          collisions:0 txqueuelen:0 
> >          RX bytes:28 (28.0 b)  TX bytes:0 (0.0 b)
> >
> >xen-br10  Link encap:Ethernet  HWaddr FE:FF:FF:FF:FF:FF  
> >          inet addr:172.30.0.1  Bcast:172.30.255.255  Mask:255.255.255.0
> >          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
> >          RX packets:65 errors:0 dropped:0 overruns:0 frame:0
> >          TX packets:65 errors:0 dropped:0 overruns:0 carrier:0
> >          collisions:0 txqueuelen:0 
> >          RX bytes:5964 (5.8 KiB)  TX bytes:5866 (5.7 KiB)
> >
> >arras:~# cat /proc/sys/net/ipv4/ip_forward
> >1
> >
> >
> >>And brctl show for dom0.
> >
> >
> >arras:~# brctl show
> >bridge name     bridge id               STP enabled     interfaces
> >xen-br0         8000.000d56830ca9       no              eth0
> >xen-br10                8000.feffffffffff       no              vif1.1
> >xen-br1         8000.feffffffffff       no              vif1.0
> >                                                        vif2.0
> >
> >hmm, is it normal, that xen-br1 and xen-br10 have the same bridge id?
> >If not, any hints were to change them?
> >
> >
> >>Thanks,
> >>
> >>James
> >
> >
> >Regards,
> >Markus
> > 
> >
> >>Markus Lude wrote:
> >>
> >>>Hello,
> >>>
> >>>my current network setup looks like the following:
> >>>
> >>>  dom2-eth0 (172.30.1.22) netmask /24
> >>>      |
> >>>      | xen-br1 (no ip)
> >>>      |
> >>>  dom1-eth0 (172.30.1.21) netmask /24
> >>>  dom1-eth1 (172.30.0.21) netmask /24
> >>>      |
> >>>      | xen-br10 (172.30.0.1) netmask /24
> >>>      |
> >>>    dom0
> >>>      |
> >>>      | xen-br0 (normal IP)
> >>>      |
> >>>     eth0 (same IP as xen-br0)
> >>>      |
> >>>      |
> >>>     LAN
> >>>
> >>>Basically I want to route all traffic between dom0 and dom2 through dom1.
> >>>This does work as intended.
> >>>I further would like to have access to the LAN from dom1 and dom2 through
> >>>NAT in dom0. It works for dom1, but not for dom2. The addresses of 
> >>>packets
> >>
> >>>from dom2 were not changed (noticed with tcpdump -n -i eth0 in dom0).
> >>
> >>>In dom0 NAT is set up with:
> >>>iptables -t nat -A POSTROUTING -s 172.30.0.0/16 -o xen-br0 -j MASQUERADE
> >>>
> >>>If I leave out the -s parameter nothing changes.
> >>>
> >>>I'm running debian sarge in all doms and xen-2.0.6.
> >>>
> >>>Any suggestions? What am I missing?
> >>>
> >>>Regards,
> >>>Markus Lude
> >
> >
> >
> >_______________________________________________
> >Xen-users mailing list
> >Xen-users@xxxxxxxxxxxxxxxxxxx
> >http://lists.xensource.com/xen-users

_______________________________________________
Xen-users mailing list
Xen-users@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-users

<Prev in Thread] Current Thread [Next in Thread>