* two gateways with one NIC
@ 2007-04-08 3:35 W Agtail
2007-04-08 15:01 ` Lennart Sorensen
0 siblings, 1 reply; 21+ messages in thread
From: W Agtail @ 2007-04-08 3:35 UTC (permalink / raw)
To: netdev
Hope you can help.
I have the following setup using LVS (Linux Virtual Servers):
LAN--------------------192.168.0.0/24----------------- <= CLIENTS
| |
| |
LVS1 LVS2
vip1: 192.168.0.111 vip2: 192.168.0.121
eth0: 192.168.0.110 eth0: 192.168.0.120
eth1: 10.18.35.10 eth1: 10.18.35.20
gw1: 10.18.35.11 gw2: 10.18.35.21
| |
| |
LAN--------------------10.18.35.0/24-----------------
| |
| |
Apache> WEB1 10.18.35.51:8088 WEB2 10.18.35.52:8088
Apache> WEB1 10.18.35.51:8089 WEB2 10.18.35.52:8088
### LVS ###
The two LVS servers have a VIP and a GW.
LVS1 & LVS2 have ip_forward set to 1.
LVS1 has the following iptables:
iptables -t nat -A PREROUTING -i eth0 -j DNAT --to 192.168.0.111
iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to 192.168.0.111
with ipvsadm forwarding vip1:8088 to web1:8088 & web2:8088
LVS2 has the following iptables:
iptables -t nat -A PREROUTING -i eth0 -j DNAT --to 192.168.0.121
iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to 192.168.0.121
with ipvsadm forwarding vip1:8089 to web1:8089 & web2:8089
### WEB ###
The two Web servers have 2 virtual web servers listening on ports 8088 &
8089 and have the following iptables & iproute2 config:
iptables -t mangle -A PREROUTING -p tcp --dport 8088 -i eth0 -j MARK
--set-mark 1
iptables -t mangle -A PREROUTING -p tcp --dport 8089 -i eth0 -j MARK
--set-mark 2
ip route add table 1 default via 10.18.35.11 dev eth0
ip route add table 2 default via 10.18.35.21 dev eth0
ip rule add fwmark 1 table 1
ip rule add fwmark 2 table 2
WEB1's default GW is set to gw1.
WEB2's default GW is set to gw2.
CLIENTS should be able to connect to vip1:8088 and vip2:8089
### MY PROBLEM ###
If i set WEB2's default GW to gw1, everything works as expected (as I
now only have one GW).
But when trying to set WEB2's default GW to gw2, things don't work.
For example, if i was to run: curl vip1:8088 from a CLIENT, I would be
able to connect to web1:8088 via LVS OK, but unable to connect to
web2:8088 should LVS take me to web2.
Its as though the iptables/ip route settings are not working as they
should.
Any ideas what I'm doing wrong?
Many thanks, W Agtail.
^ permalink raw reply [flat|nested] 21+ messages in thread* Re: two gateways with one NIC 2007-04-08 3:35 two gateways with one NIC W Agtail @ 2007-04-08 15:01 ` Lennart Sorensen 2007-04-08 16:10 ` W Agtail 0 siblings, 1 reply; 21+ messages in thread From: Lennart Sorensen @ 2007-04-08 15:01 UTC (permalink / raw) To: W Agtail; +Cc: netdev On Sun, Apr 08, 2007 at 04:35:53AM +0100, W Agtail wrote: > Hope you can help. > > I have the following setup using LVS (Linux Virtual Servers): > > LAN--------------------192.168.0.0/24----------------- <= CLIENTS > | | > | | > LVS1 LVS2 > vip1: 192.168.0.111 vip2: 192.168.0.121 > eth0: 192.168.0.110 eth0: 192.168.0.120 > eth1: 10.18.35.10 eth1: 10.18.35.20 > gw1: 10.18.35.11 gw2: 10.18.35.21 > | | > | | > LAN--------------------10.18.35.0/24----------------- > | | > | | > Apache> WEB1 10.18.35.51:8088 WEB2 10.18.35.52:8088 > Apache> WEB1 10.18.35.51:8089 WEB2 10.18.35.52:8088 > > > ### LVS ### > The two LVS servers have a VIP and a GW. > LVS1 & LVS2 have ip_forward set to 1. > > LVS1 has the following iptables: > iptables -t nat -A PREROUTING -i eth0 -j DNAT --to 192.168.0.111 > iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to 192.168.0.111 > with ipvsadm forwarding vip1:8088 to web1:8088 & web2:8088 > > LVS2 has the following iptables: > iptables -t nat -A PREROUTING -i eth0 -j DNAT --to 192.168.0.121 > iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to 192.168.0.121 > with ipvsadm forwarding vip1:8089 to web1:8089 & web2:8089 > > ### WEB ### > The two Web servers have 2 virtual web servers listening on ports 8088 & > 8089 and have the following iptables & iproute2 config: > iptables -t mangle -A PREROUTING -p tcp --dport 8088 -i eth0 -j MARK > --set-mark 1 > iptables -t mangle -A PREROUTING -p tcp --dport 8089 -i eth0 -j MARK > --set-mark 2 > > ip route add table 1 default via 10.18.35.11 dev eth0 > ip route add table 2 default via 10.18.35.21 dev eth0 > > ip rule add fwmark 1 table 1 > ip rule add fwmark 2 table 2 > > WEB1's default GW is set to gw1. > WEB2's default GW is set to gw2. > > CLIENTS should be able to connect to vip1:8088 and vip2:8089 > > ### MY PROBLEM ### > > If i set WEB2's default GW to gw1, everything works as expected (as I > now only have one GW). > But when trying to set WEB2's default GW to gw2, things don't work. > For example, if i was to run: curl vip1:8088 from a CLIENT, I would be > able to connect to web1:8088 via LVS OK, but unable to connect to > web2:8088 should LVS take me to web2. > > Its as though the iptables/ip route settings are not working as they > should. > > Any ideas what I'm doing wrong? > Many thanks, W Agtail. Well give I am not sure what you are trying to do, I will take a guess. I think you are trying to have redundant load balancers and multiple web servers behind those two load balancers. Here is how I would do it: LAN--------------------192.168.0.0/24----------------- <= CLIENTS | | | | LVS1 LVS2 vrrp: 192.168.0.110 (linked) vrrp: 192.168.0.110 (linked) eth0: 192.168.0.111 eth0: 192.168.0.112 eth1: 10.18.35.11 eth1: 10.18.35.12 vrrp: 10.18.35.10 (master) vrrp: 10.18.35.10 (slave) | | | | LAN--------------------10.18.35.0/24----------------- | | | | Apache> WEB1 10.18.35.51:8088 WEB2 10.18.35.52:8088 Apache> WEB1 10.18.35.51:8089 WEB2 10.18.35.52:8088 So using VRRP to have a shared virtual IP between the two load balancers, any client can connect to 192.168.0.110 and be sent through to one of the web servers. The server side interface also has a VRRP virtual IP shared between the two load balancers, which is linked to the other virtual IP, so that if the link goes down on one side of the load balancer, it will automatically drop the virtual IP on both sides to let the slave machine take over control of the IP. To the clients this should be pretty transparent since they don't need to know the IP changed, other than the momentary change in mac address (letting vrrp play with the mac address just causes a terrible mess in my experience, and I have had much better luck by simply changing IPs and letting the clients relear the new mac). keepalived's vrrp works very well (Hmm, actually I think I made some fixes to it, which I don't remember if I sent back upstream yet. I should check that tomorrow). You could run multiple vrrps per interface if you want to somehow have one be the master of one IP and the other the master of another to allow different traffic to use each load balancer by default, but everything going through one in case of a failure. -- Len Sorensen ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: two gateways with one NIC 2007-04-08 15:01 ` Lennart Sorensen @ 2007-04-08 16:10 ` W Agtail 2007-04-08 18:22 ` Lennart Sorensen 0 siblings, 1 reply; 21+ messages in thread From: W Agtail @ 2007-04-08 16:10 UTC (permalink / raw) To: Lennart Sorensen; +Cc: netdev Hi, and thanks very much for your response. Your guess sounds spot on. As you've mentioned, using one sync group works quite well and gives you an active/passive LVS cluster (not sure of correct terminology here - sorry), thus all traffic goes via LVS1, leaving LVS2 not doing much unless LVS1 fails. I thought it would be a cool idea to setup two sync groups to ultimately handle several Apache instances on the two Apache servers. This way, both LVS servers would be used in a kind of active/active fashion and would be a master/slave to each other. For example, vip1 & gw1 could possibly end up on LVS2 with vip2 & gw2. The challenge though in having two sync groups, with two GWs. I would like all traffic coming through vip1 to be returned via gw1 and all traffic coming through vip2 to be returned via gw2. I am using keepalived (v1.1.13) with two sync groups. One with vip1 & gw1 and another with vip2 & gw2. Port 8088 will always comes through vip1/gw1, load balancing to web1:8088 and web2:8088. Port 8089 will always come through vip2/gw2, load balancing to web1:8089 and web2:8089. Web1's default gw is set to gw1 and web2's default gw is set to gw2. But this causing issues when say, vip1:8088 gets forwarded through gw1 to web2:8088 and doesn't get back back via gw2. To get round this, I need something like iproute2 on web2 to send all 8088 traffic back through gw1. Hope this makes a little more sense to what I'm trying to achieve? Thanks again. On Sun, 2007-04-08 at 11:01 -0400, Lennart Sorensen wrote: > On Sun, Apr 08, 2007 at 04:35:53AM +0100, W Agtail wrote: > > Hope you can help. > > > > I have the following setup using LVS (Linux Virtual Servers): > > > > LAN--------------------192.168.0.0/24----------------- <= CLIENTS > > | | > > | | > > LVS1 LVS2 > > vip1: 192.168.0.111 vip2: 192.168.0.121 > > eth0: 192.168.0.110 eth0: 192.168.0.120 > > eth1: 10.18.35.10 eth1: 10.18.35.20 > > gw1: 10.18.35.11 gw2: 10.18.35.21 > > | | > > | | > > LAN--------------------10.18.35.0/24----------------- > > | | > > | | > > Apache> WEB1 10.18.35.51:8088 WEB2 10.18.35.52:8088 > > Apache> WEB1 10.18.35.51:8089 WEB2 10.18.35.52:8088 > > > > > > ### LVS ### > > The two LVS servers have a VIP and a GW. > > LVS1 & LVS2 have ip_forward set to 1. > > > > LVS1 has the following iptables: > > iptables -t nat -A PREROUTING -i eth0 -j DNAT --to 192.168.0.111 > > iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to 192.168.0.111 > > with ipvsadm forwarding vip1:8088 to web1:8088 & web2:8088 > > > > LVS2 has the following iptables: > > iptables -t nat -A PREROUTING -i eth0 -j DNAT --to 192.168.0.121 > > iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to 192.168.0.121 > > with ipvsadm forwarding vip1:8089 to web1:8089 & web2:8089 > > > > ### WEB ### > > The two Web servers have 2 virtual web servers listening on ports 8088 & > > 8089 and have the following iptables & iproute2 config: > > iptables -t mangle -A PREROUTING -p tcp --dport 8088 -i eth0 -j MARK > > --set-mark 1 > > iptables -t mangle -A PREROUTING -p tcp --dport 8089 -i eth0 -j MARK > > --set-mark 2 > > > > ip route add table 1 default via 10.18.35.11 dev eth0 > > ip route add table 2 default via 10.18.35.21 dev eth0 > > > > ip rule add fwmark 1 table 1 > > ip rule add fwmark 2 table 2 > > > > WEB1's default GW is set to gw1. > > WEB2's default GW is set to gw2. > > > > CLIENTS should be able to connect to vip1:8088 and vip2:8089 > > > > ### MY PROBLEM ### > > > > If i set WEB2's default GW to gw1, everything works as expected (as I > > now only have one GW). > > But when trying to set WEB2's default GW to gw2, things don't work. > > For example, if i was to run: curl vip1:8088 from a CLIENT, I would be > > able to connect to web1:8088 via LVS OK, but unable to connect to > > web2:8088 should LVS take me to web2. > > > > Its as though the iptables/ip route settings are not working as they > > should. > > > > Any ideas what I'm doing wrong? > > Many thanks, W Agtail. > > Well give I am not sure what you are trying to do, I will take a guess. > I think you are trying to have redundant load balancers and multiple web > servers behind those two load balancers. Here is how I would do it: > > LAN--------------------192.168.0.0/24----------------- <= CLIENTS > | | > | | > LVS1 LVS2 > vrrp: 192.168.0.110 (linked) vrrp: 192.168.0.110 (linked) > eth0: 192.168.0.111 eth0: 192.168.0.112 > > eth1: 10.18.35.11 eth1: 10.18.35.12 > vrrp: 10.18.35.10 (master) vrrp: 10.18.35.10 (slave) > | | > | | > LAN--------------------10.18.35.0/24----------------- > | | > | | > Apache> WEB1 10.18.35.51:8088 WEB2 10.18.35.52:8088 > Apache> WEB1 10.18.35.51:8089 WEB2 10.18.35.52:8088 > > So using VRRP to have a shared virtual IP between the two load > balancers, any client can connect to 192.168.0.110 and be sent through > to one of the web servers. The server side interface also has a VRRP > virtual IP shared between the two load balancers, which is linked to the > other virtual IP, so that if the link goes down on one side of the load > balancer, it will automatically drop the virtual IP on both sides to let > the slave machine take over control of the IP. To the clients this > should be pretty transparent since they don't need to know the IP > changed, other than the momentary change in mac address (letting vrrp > play with the mac address just causes a terrible mess in my experience, > and I have had much better luck by simply changing IPs and letting the > clients relear the new mac). > > keepalived's vrrp works very well (Hmm, actually I think I made some > fixes to it, which I don't remember if I sent back upstream yet. I > should check that tomorrow). > > You could run multiple vrrps per interface if you want to somehow have > one be the master of one IP and the other the master of another to allow > different traffic to use each load balancer by default, but everything > going through one in case of a failure. > > -- > Len Sorensen ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: two gateways with one NIC 2007-04-08 16:10 ` W Agtail @ 2007-04-08 18:22 ` Lennart Sorensen 2007-04-08 19:29 ` W Agtail 0 siblings, 1 reply; 21+ messages in thread From: Lennart Sorensen @ 2007-04-08 18:22 UTC (permalink / raw) To: W Agtail; +Cc: netdev On Sun, Apr 08, 2007 at 05:10:15PM +0100, W Agtail wrote: > Hi, and thanks very much for your response. Your guess sounds spot on. > > As you've mentioned, using one sync group works quite well and gives you > an active/passive LVS cluster (not sure of correct terminology here - > sorry), thus all traffic goes via LVS1, leaving LVS2 not doing much > unless LVS1 fails. > > I thought it would be a cool idea to setup two sync groups to ultimately > handle several Apache instances on the two Apache servers. This way, > both LVS servers would be used in a kind of active/active fashion and > would be a master/slave to each other. For example, vip1 & gw1 could > possibly end up on LVS2 with vip2 & gw2. > > The challenge though in having two sync groups, with two GWs. I would > like all traffic coming through vip1 to be returned via gw1 and all > traffic coming through vip2 to be returned via gw2. > > I am using keepalived (v1.1.13) with two sync groups. One with vip1 & > gw1 and another with vip2 & gw2. Port 8088 will always comes through > vip1/gw1, load balancing to web1:8088 and web2:8088. Port 8089 will > always come through vip2/gw2, load balancing to web1:8089 and web2:8089. > > Web1's default gw is set to gw1 and web2's default gw is set to gw2. But > this causing issues when say, vip1:8088 gets forwarded through gw1 to > web2:8088 and doesn't get back back via gw2. To get round this, I need > something like iproute2 on web2 to send all 8088 traffic back through > gw1. You have to set up both web servers to use the same gateway. You can setup an alternate routing table and tag packets from the apache on port 8089 to use the other gateway IP instead, but any traffic handled by LVS1 _must_ be returned through LVS1. So both web servers have to have identical configuration (which is also much simpler to maintain). You can use iptables to tag packets matching the source port of 8089 and have ip route route all packets with that specific tag using an alternate routing table, which will then use the other LVS. So if you have two VRRP groups, you have port 8088 return by the regular default gateway going to the first group IP, and you have tagging flag all port 8089 packets to go through the second vrrp IP. If an LVS fails, both vrrp groups end up on the working LVS and everything still works, but while both works, one LVS handles one port, and the other the other port. Of course routing packets is hardly a lot of work, so it may not really be worth the bother to do anything extra with two groups. You really have to configure both web servers identically though in terms of routes. > Hope this makes a little more sense to what I'm trying to achieve? > Thanks again. -- Len Sorensen ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: two gateways with one NIC 2007-04-08 18:22 ` Lennart Sorensen @ 2007-04-08 19:29 ` W Agtail 2007-04-09 14:54 ` Lennart Sorensen 0 siblings, 1 reply; 21+ messages in thread From: W Agtail @ 2007-04-08 19:29 UTC (permalink / raw) To: Lennart Sorensen; +Cc: netdev Hi, please refer to comments below. On Sun, 2007-04-08 at 14:22 -0400, Lennart Sorensen wrote: > On Sun, Apr 08, 2007 at 05:10:15PM +0100, W Agtail wrote: > > Hi, and thanks very much for your response. Your guess sounds spot on. > > > > As you've mentioned, using one sync group works quite well and gives you > > an active/passive LVS cluster (not sure of correct terminology here - > > sorry), thus all traffic goes via LVS1, leaving LVS2 not doing much > > unless LVS1 fails. > > > > I thought it would be a cool idea to setup two sync groups to ultimately > > handle several Apache instances on the two Apache servers. This way, > > both LVS servers would be used in a kind of active/active fashion and > > would be a master/slave to each other. For example, vip1 & gw1 could > > possibly end up on LVS2 with vip2 & gw2. > > > > The challenge though in having two sync groups, with two GWs. I would > > like all traffic coming through vip1 to be returned via gw1 and all > > traffic coming through vip2 to be returned via gw2. > > > > I am using keepalived (v1.1.13) with two sync groups. One with vip1 & > > gw1 and another with vip2 & gw2. Port 8088 will always comes through > > vip1/gw1, load balancing to web1:8088 and web2:8088. Port 8089 will > > always come through vip2/gw2, load balancing to web1:8089 and web2:8089. > > > > Web1's default gw is set to gw1 and web2's default gw is set to gw2. But > > this causing issues when say, vip1:8088 gets forwarded through gw1 to > > web2:8088 and doesn't get back back via gw2. To get round this, I need > > something like iproute2 on web2 to send all 8088 traffic back through > > gw1. > > You have to set up both web servers to use the same gateway. You can > setup an alternate routing table and tag packets from the apache on port > 8089 to use the other gateway IP instead, but any traffic handled by > LVS1 _must_ be returned through LVS1. So both web servers have to have > identical configuration (which is also much simpler to maintain). > > You can use iptables to tag packets matching the source port of 8089 and > have ip route route all packets with that specific tag using an > alternate routing table, which will then use the other LVS. > > So if you have two VRRP groups, you have port 8088 return by the regular > default gateway going to the first group IP, and you have tagging flag > all port 8089 packets to go through the second vrrp IP. If an LVS > fails, both vrrp groups end up on the working LVS and everything still > works, but while both works, one LVS handles one port, and the other the > other port. Of course routing packets is hardly a lot of work, so it > may not really be worth the bother to do anything extra with two groups. > You really have to configure both web servers identically though in > terms of routes. This is what I'm trying to achieve with the following iptables/iproute2 configuration on both web servers: iptables -t mangle -A PREROUTING -p tcp --dport 8088 -i eth0 -j LOG --log-prefix "fwmark 1: " iptables -t mangle -A PREROUTING -p tcp --dport 8089 -i eth0 -j LOG --log-prefix "fwmark 2: " iptables -t mangle -A PREROUTING -p tcp --dport 8088 -i eth0 -j MARK --set-mark 1 iptables -t mangle -A PREROUTING -p tcp --dport 8089 -i eth0 -j MARK --set-mark 2 iptables -t mangle -A PREROUTING -m mark --mark 1 -j LOG --log-prefix "marked 1: " iptables -t mangle -A PREROUTING -m mark --mark 2 -j LOG --log-prefix "marked 2: " ip route add table 1 default via 10.18.35.11 dev eth0 # GW1 ip route add table 2 default via 10.18.35.21 dev eth0 # GW2 ip rule add fwmark 1 table 1 ip rule add fwmark 2 table 2 On web2, the default gw is set to gw2 and in /var/log/messages, I can see packets appear to be marked. However, for some reason, 8088 is still routing back via gw2 (default gw) rather than being routed via gw1, which I'm trying to do with the above ip rules etc. Is the above the correct syntax? or I guess I could totally be missing the plot? Many thanks for your time on this one. > > Hope this makes a little more sense to what I'm trying to achieve? > > Thanks again. > > -- > Len Sorensen ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: two gateways with one NIC 2007-04-08 19:29 ` W Agtail @ 2007-04-09 14:54 ` Lennart Sorensen 2007-04-09 15:56 ` W Agtail 0 siblings, 1 reply; 21+ messages in thread From: Lennart Sorensen @ 2007-04-09 14:54 UTC (permalink / raw) To: W Agtail; +Cc: netdev On Sun, Apr 08, 2007 at 08:29:07PM +0100, W Agtail wrote: > This is what I'm trying to achieve with the following iptables/iproute2 > configuration on both web servers: > > iptables -t mangle -A PREROUTING -p tcp --dport 8088 -i eth0 -j LOG > --log-prefix "fwmark 1: " > iptables -t mangle -A PREROUTING -p tcp --dport 8089 -i eth0 -j LOG > --log-prefix "fwmark 2: " > > iptables -t mangle -A PREROUTING -p tcp --dport 8088 -i eth0 -j MARK > --set-mark 1 > iptables -t mangle -A PREROUTING -p tcp --dport 8089 -i eth0 -j MARK > --set-mark 2 You are supposed to mangle things _coming_ from port 8088 and 8089. After all it is the replies you are trying to affect, not the requests. So it should be the --sport not --dport. And of course outbound not incoming on eth0. > iptables -t mangle -A PREROUTING -m mark --mark 1 -j LOG --log-prefix > "marked 1: " > iptables -t mangle -A PREROUTING -m mark --mark 2 -j LOG --log-prefix > "marked 2: " > > ip route add table 1 default via 10.18.35.11 dev eth0 # GW1 > ip route add table 2 default via 10.18.35.21 dev eth0 # GW2 > > ip rule add fwmark 1 table 1 > ip rule add fwmark 2 table 2 > > On web2, the default gw is set to gw2 and in /var/log/messages, I can > see packets appear to be marked. However, for some reason, 8088 is still > routing back via gw2 (default gw) rather than being routed via gw1, > which I'm trying to do with the above ip rules etc. > > Is the above the correct syntax? or I guess I could totally be missing > the plot? > > Many thanks for your time on this one. Hope that helps. -- Len Sorensen ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: two gateways with one NIC 2007-04-09 14:54 ` Lennart Sorensen @ 2007-04-09 15:56 ` W Agtail 2007-04-09 16:11 ` Lennart Sorensen 0 siblings, 1 reply; 21+ messages in thread From: W Agtail @ 2007-04-09 15:56 UTC (permalink / raw) To: Lennart Sorensen; +Cc: netdev On Mon, 2007-04-09 at 10:54 -0400, Lennart Sorensen wrote: > On Sun, Apr 08, 2007 at 08:29:07PM +0100, W Agtail wrote: > > This is what I'm trying to achieve with the following iptables/iproute2 > > configuration on both web servers: > > > > iptables -t mangle -A PREROUTING -p tcp --dport 8088 -i eth0 -j LOG > > --log-prefix "fwmark 1: " > > iptables -t mangle -A PREROUTING -p tcp --dport 8089 -i eth0 -j LOG > > --log-prefix "fwmark 2: " > > > > iptables -t mangle -A PREROUTING -p tcp --dport 8088 -i eth0 -j MARK > > --set-mark 1 > > iptables -t mangle -A PREROUTING -p tcp --dport 8089 -i eth0 -j MARK > > --set-mark 2 > > You are supposed to mangle things _coming_ from port 8088 and 8089. > After all it is the replies you are trying to affect, not the requests. > So it should be the --sport not --dport. And of course outbound not > incoming on eth0. > > > iptables -t mangle -A PREROUTING -m mark --mark 1 -j LOG --log-prefix > > "marked 1: " > > iptables -t mangle -A PREROUTING -m mark --mark 2 -j LOG --log-prefix > > "marked 2: " > > > > ip route add table 1 default via 10.18.35.11 dev eth0 # GW1 > > ip route add table 2 default via 10.18.35.21 dev eth0 # GW2 > > > > ip rule add fwmark 1 table 1 > > ip rule add fwmark 2 table 2 > > > > On web2, the default gw is set to gw2 and in /var/log/messages, I can > > see packets appear to be marked. However, for some reason, 8088 is still > > routing back via gw2 (default gw) rather than being routed via gw1, > > which I'm trying to do with the above ip rules etc. > > > > Is the above the correct syntax? or I guess I could totally be missing > > the plot? > > > > Many thanks for your time on this one. > > Hope that helps. > > -- > Len Sorensen Hi there, and thanks v. much for getting back to me on this one. I now have changed iptables on the web servers to the following: iptables -t mangle -A POSTROUTING -p tcp --sport 8088 -o eth0 -j MARK --set-mark 1 iptables -t mangle -A POSTROUTING -p tcp --sport 8089 -o eth0 -j MARK --set-mark 2 But I'm still seeing traffic being returned via gw2 for port 8088 :( Any ideas? Thanks. ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: two gateways with one NIC 2007-04-09 15:56 ` W Agtail @ 2007-04-09 16:11 ` Lennart Sorensen 2007-04-09 16:13 ` Patrick McHardy 0 siblings, 1 reply; 21+ messages in thread From: Lennart Sorensen @ 2007-04-09 16:11 UTC (permalink / raw) To: W Agtail; +Cc: netdev On Mon, Apr 09, 2007 at 04:56:20PM +0100, W Agtail wrote: > Hi there, and thanks v. much for getting back to me on this one. > I now have changed iptables on the web servers to the following: > > iptables -t mangle -A POSTROUTING -p tcp --sport 8088 -o eth0 -j MARK > --set-mark 1 > iptables -t mangle -A POSTROUTING -p tcp --sport 8089 -o eth0 -j MARK > --set-mark 2 > > But I'm still seeing traffic being returned via gw2 for port 8088 :( > Any ideas? Thanks. Hmm, I know I have done something like this before (I made all port 80 traffic return through another host rather than the default gateway, but it was about 3 years ago and I don't remember the exact syntax). Does your logs show both mark 1 and 2 being used? Are you sure that the syntax for the ip route rules is right? I don't remember if it was fwmark or something else. I also remember I was using a mark of 30000ish not, 1 or 2. No idea if low numbers are reserved or any such thing. -- Len Sorensen ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: two gateways with one NIC 2007-04-09 16:11 ` Lennart Sorensen @ 2007-04-09 16:13 ` Patrick McHardy 2007-04-09 16:19 ` Lennart Sorensen 0 siblings, 1 reply; 21+ messages in thread From: Patrick McHardy @ 2007-04-09 16:13 UTC (permalink / raw) To: Lennart Sorensen; +Cc: W Agtail, netdev Lennart Sorensen wrote: > On Mon, Apr 09, 2007 at 04:56:20PM +0100, W Agtail wrote: > >>Hi there, and thanks v. much for getting back to me on this one. >>I now have changed iptables on the web servers to the following: >> >>iptables -t mangle -A POSTROUTING -p tcp --sport 8088 -o eth0 -j MARK >>--set-mark 1 >>iptables -t mangle -A POSTROUTING -p tcp --sport 8089 -o eth0 -j MARK >>--set-mark 2 >> >>But I'm still seeing traffic being returned via gw2 for port 8088 :( >>Any ideas? Thanks. > > > Hmm, I know I have done something like this before (I made all port 80 > traffic return through another host rather than the default gateway, but > it was about 3 years ago and I don't remember the exact syntax). As the name suggests, POSTROUTING comes after routing, so marking packets there doesn't affect routing. Use PREROUTING for forwarded traffic and OUTPUT for locally generated traffic. ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: two gateways with one NIC 2007-04-09 16:13 ` Patrick McHardy @ 2007-04-09 16:19 ` Lennart Sorensen 2007-04-09 17:02 ` W Agtail 0 siblings, 1 reply; 21+ messages in thread From: Lennart Sorensen @ 2007-04-09 16:19 UTC (permalink / raw) To: Patrick McHardy; +Cc: W Agtail, netdev On Mon, Apr 09, 2007 at 06:13:50PM +0200, Patrick McHardy wrote: > As the name suggests, POSTROUTING comes after routing, so marking > packets there doesn't affect routing. Use PREROUTING for forwarded > traffic and OUTPUT for locally generated traffic. I didn't even notice that had been changed. It used to say PREROUTING when it was for --dport, and all I suggested changing was --dport to --sport and change the -o part (probably to nothing at all really since routing hasn't been decided yet). Yes it absolutely has to be done PREROUTING. -- Len Sorensen ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: two gateways with one NIC 2007-04-09 16:19 ` Lennart Sorensen @ 2007-04-09 17:02 ` W Agtail 2007-04-09 17:14 ` Patrick McHardy 2007-04-09 17:23 ` Lennart Sorensen 0 siblings, 2 replies; 21+ messages in thread From: W Agtail @ 2007-04-09 17:02 UTC (permalink / raw) To: Lennart Sorensen; +Cc: Patrick McHardy, netdev On Mon, 2007-04-09 at 12:19 -0400, Lennart Sorensen wrote: > On Mon, Apr 09, 2007 at 06:13:50PM +0200, Patrick McHardy wrote: > > As the name suggests, POSTROUTING comes after routing, so marking > > packets there doesn't affect routing. Use PREROUTING for forwarded > > traffic and OUTPUT for locally generated traffic. > > I didn't even notice that had been changed. It used to say PREROUTING > when it was for --dport, and all I suggested changing was --dport to > --sport and change the -o part (probably to nothing at all really since > routing hasn't been decided yet). > > Yes it absolutely has to be done PREROUTING. > > -- > Len Sorensen Thanks Patrick for your comments too. It seems that you can't mix PREROUTING with --sport or -o. I've also changed the ip rule tables to higher numbers, so I now have: iptables -t mangle -A PREROUTING -p tcp --dport 8088 -i eth0 -j LOG --log-prefix "fwmark 1: " iptables -t mangle -A PREROUTING -p tcp --dport 8089 -i eth0 -j LOG --log-prefix "fwmark 2: " iptables -t mangle -A PREROUTING -p tcp --dport 8088 -i eth0 -j MARK --set-mark 1 iptables -t mangle -A PREROUTING -p tcp --dport 8089 -i eth0 -j MARK --set-mark 2 iptables -t mangle -A PREROUTING -m mark --mark 1 -j LOG --log-prefix "marked 1: " iptables -t mangle -A PREROUTING -m mark --mark 2 -j LOG --log-prefix "marked 2: " ip route add table 8088 default via 10.18.35.11 dev eth0 ip route add table 8089 default via 10.18.35.21 dev eth0 ip rule add fwmark 1 table 8088 ip rule add fwmark 2 table 8089 # Confirmation of syntax: iptables -t mangle --list -v -n Chain PREROUTING (policy ACCEPT 5921 packets, 403K bytes) pkts bytes target prot opt in out source destination 18 984 LOG tcp -- eth0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:8088 LOG flags 0 level 4 prefix `fwmark 1: ' 0 0 LOG tcp -- eth0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:8089 LOG flags 0 level 4 prefix `fwmark 2: ' 18 984 MARK tcp -- eth0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:8088 MARK set 0x1 0 0 MARK tcp -- eth0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:8089 MARK set 0x2 18 984 LOG all -- * * 0.0.0.0/0 0.0.0.0/0 MARK match 0x1 LOG flags 0 level 4 prefix `marked 1: ' 0 0 LOG all -- * * 0.0.0.0/0 0.0.0.0/0 MARK match 0x2 LOG flags 0 level 4 prefix `marked 2: ' ip rule list 0: from all lookup local 32764: from all fwmark 0x2 lookup 8089 32765: from all fwmark 0x1 lookup 8088 32766: from all lookup main 32767: from all lookup default ip route list table 8088; ip route list table 8089 default via 10.18.35.11 dev eth0 default via 10.18.35.21 dev eth0 This is what I see in web2's /var/log/messages: Apr 9 06:46:58 web2-fc6 kernel: fwmark 1: IN=eth0 OUT= MAC=00:0c:29:d1:08:48:00:0c:29:49:04:9f:08:00 SRC=192.168.0.241 DST=10.18.35.52 LEN=60 TOS=0x00 PREC=0x00 TTL=64 ID=42359 DF PROTO=TCP SPT=33321 DPT=8088 WINDOW=5840 RES=0x00 SYN URGP=0 Apr 9 06:46:58 web2-fc6 kernel: marked 1: IN=eth0 OUT= MAC=00:0c:29:d1:08:48:00:0c:29:49:04:9f:08:00 SRC=192.168.0.241 DST=10.18.35.52 LEN=60 TOS=0x00 PREC=0x00 TTL=64 ID=42359 DF PROTO=TCP SPT=33321 DPT=8088 WINDOW=5840 RES=0x00 SYN URGP=0 As you can see, packets appear to be marked. But here's a tcpdump on gw2's eth1: 07:20:35.004205 192.168.0.241.59438 > 10.18.35.52.8088: S 221760494:221760494(0) win 5840 <mss 1460,sackOK,timestamp 1320423 0,nop,wscale 6> (DF) 07:20:35.013144 10.18.35.52.8088 > 192.168.0.241.59438: S 2705868365:2705868365(0) ack 221760495 win 5792 <mss 1460,sackOK,timestamp 2191014 1320423,nop,wscale 1> (DF) 07:20:35.021857 192.168.0.241.59438 > 10.18.35.52.8088: R 221760495:221760495(0) win 0 (DF) 07:20:38.069688 192.168.0.241.59438 > 10.18.35.52.8088: S 221760494:221760494(0) win 5840 <mss 1460,sackOK,timestamp 1321173 0,nop,wscale 6> (DF) 07:20:38.069695 10.18.35.52.8088 > 192.168.0.241.59438: S 2706988830:2706988830(0) ack 221760495 win 5792 <mss 1460,sackOK,timestamp 2192135 1321173,nop,wscale 1> (DF) 07:20:38.071232 192.168.0.241.59438 > 10.18.35.52.8088: R 221760495:221760495(0) win 0 (DF) So, traffic is being returned via gw2, rather than gw1 :( Thanks again for your time. ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: two gateways with one NIC 2007-04-09 17:02 ` W Agtail @ 2007-04-09 17:14 ` Patrick McHardy 2007-04-09 17:23 ` Lennart Sorensen 1 sibling, 0 replies; 21+ messages in thread From: Patrick McHardy @ 2007-04-09 17:14 UTC (permalink / raw) To: wagtail; +Cc: Lennart Sorensen, netdev W Agtail wrote: > Thanks Patrick for your comments too. > It seems that you can't mix PREROUTING with --sport or -o. -o only works after routing. > I've also changed the ip rule tables to higher numbers, so I now have: > iptables -t mangle -A PREROUTING -p tcp --dport 8088 -i eth0 -j MARK > --set-mark 1 > iptables -t mangle -A PREROUTING -p tcp --dport 8089 -i eth0 -j MARK > --set-mark 2 You should really read some iptables tutorial or at least the manpage. Its quite easy to set up what you want, but you're again not properly marking the return traffic. ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: two gateways with one NIC 2007-04-09 17:02 ` W Agtail 2007-04-09 17:14 ` Patrick McHardy @ 2007-04-09 17:23 ` Lennart Sorensen 2007-04-09 18:05 ` W Agtail 1 sibling, 1 reply; 21+ messages in thread From: Lennart Sorensen @ 2007-04-09 17:23 UTC (permalink / raw) To: W Agtail; +Cc: Patrick McHardy, netdev On Mon, Apr 09, 2007 at 06:02:23PM +0100, W Agtail wrote: > Thanks Patrick for your comments too. > It seems that you can't mix PREROUTING with --sport or -o. > I've also changed the ip rule tables to higher numbers, so I now have: I thought you could have --sport, but NOT -o. No need for -o of course. > iptables -t mangle -A PREROUTING -p tcp --dport 8088 -i eth0 -j LOG > --log-prefix "fwmark 1: " > iptables -t mangle -A PREROUTING -p tcp --dport 8089 -i eth0 -j LOG > --log-prefix "fwmark 2: " > > iptables -t mangle -A PREROUTING -p tcp --dport 8088 -i eth0 -j MARK > --set-mark 1 > iptables -t mangle -A PREROUTING -p tcp --dport 8089 -i eth0 -j MARK > --set-mark 2 > iptables -t mangle -A PREROUTING -m mark --mark 1 -j LOG --log-prefix > "marked 1: " > iptables -t mangle -A PREROUTING -m mark --mark 2 -j LOG --log-prefix > "marked 2: " The thing is that the destination port will NEVER be 8088 for the outgoing packets from apache. The source port will be. Try this: iptables -t mangle -A PREROUTING -p tcp --sport 8088 -j LOG --log-prefix "fwmark 1: " iptables -t mangle -A PREROUTING -p tcp --sport 8089 -j LOG --log-prefix "fwmark 2: " iptables -t mangle -A PREROUTING -p tcp --sport 8088 -j MARK --set-mark 1 iptables -t mangle -A PREROUTING -p tcp --sport 8089 -j MARK --set-mark 2 iptables -t mangle -A PREROUTING -m mark --mark 1 -j LOG --log-prefix "marked 1: " iptables -t mangle -A PREROUTING -m mark --mark 2 -j LOG --log-prefix "marked 2: " > ip route add table 8088 default via 10.18.35.11 dev eth0 > ip route add table 8089 default via 10.18.35.21 dev eth0 > > ip rule add fwmark 1 table 8088 > ip rule add fwmark 2 table 8089 > > > # Confirmation of syntax: > iptables -t mangle --list -v -n > Chain PREROUTING (policy ACCEPT 5921 packets, 403K bytes) > pkts bytes target prot opt in out source > destination > 18 984 LOG tcp -- eth0 * 0.0.0.0/0 > 0.0.0.0/0 tcp dpt:8088 LOG flags 0 level 4 prefix `fwmark 1: ' > 0 0 LOG tcp -- eth0 * 0.0.0.0/0 > 0.0.0.0/0 tcp dpt:8089 LOG flags 0 level 4 prefix `fwmark 2: ' > 18 984 MARK tcp -- eth0 * 0.0.0.0/0 > 0.0.0.0/0 tcp dpt:8088 MARK set 0x1 > 0 0 MARK tcp -- eth0 * 0.0.0.0/0 > 0.0.0.0/0 tcp dpt:8089 MARK set 0x2 > 18 984 LOG all -- * * 0.0.0.0/0 > 0.0.0.0/0 MARK match 0x1 LOG flags 0 level 4 prefix `marked 1: > ' > 0 0 LOG all -- * * 0.0.0.0/0 > 0.0.0.0/0 MARK match 0x2 LOG flags 0 level 4 prefix `marked 2: > ' > > > ip rule list > 0: from all lookup local > 32764: from all fwmark 0x2 lookup 8089 > 32765: from all fwmark 0x1 lookup 8088 > 32766: from all lookup main > 32767: from all lookup default > > ip route list table 8088; ip route list table 8089 > default via 10.18.35.11 dev eth0 > default via 10.18.35.21 dev eth0 > > This is what I see in web2's /var/log/messages: > Apr 9 06:46:58 web2-fc6 kernel: fwmark 1: IN=eth0 OUT= > MAC=00:0c:29:d1:08:48:00:0c:29:49:04:9f:08:00 SRC=192.168.0.241 > DST=10.18.35.52 LEN=60 TOS=0x00 PREC=0x00 TTL=64 ID=42359 DF PROTO=TCP > SPT=33321 DPT=8088 WINDOW=5840 RES=0x00 SYN URGP=0 > > Apr 9 06:46:58 web2-fc6 kernel: marked 1: IN=eth0 OUT= > MAC=00:0c:29:d1:08:48:00:0c:29:49:04:9f:08:00 SRC=192.168.0.241 > DST=10.18.35.52 LEN=60 TOS=0x00 PREC=0x00 TTL=64 ID=42359 DF PROTO=TCP > SPT=33321 DPT=8088 WINDOW=5840 RES=0x00 SYN URGP=0 > > As you can see, packets appear to be marked. > But here's a tcpdump on gw2's eth1: > > 07:20:35.004205 192.168.0.241.59438 > 10.18.35.52.8088: S > 221760494:221760494(0) win 5840 <mss 1460,sackOK,timestamp 1320423 > 0,nop,wscale 6> (DF) > 07:20:35.013144 10.18.35.52.8088 > 192.168.0.241.59438: S > 2705868365:2705868365(0) ack 221760495 win 5792 <mss > 1460,sackOK,timestamp 2191014 1320423,nop,wscale 1> (DF) > 07:20:35.021857 192.168.0.241.59438 > 10.18.35.52.8088: R > 221760495:221760495(0) win 0 (DF) > 07:20:38.069688 192.168.0.241.59438 > 10.18.35.52.8088: S > 221760494:221760494(0) win 5840 <mss 1460,sackOK,timestamp 1321173 > 0,nop,wscale 6> (DF) > 07:20:38.069695 10.18.35.52.8088 > 192.168.0.241.59438: S > 2706988830:2706988830(0) ack 221760495 win 5792 <mss > 1460,sackOK,timestamp 2192135 1321173,nop,wscale 1> (DF) > 07:20:38.071232 192.168.0.241.59438 > 10.18.35.52.8088: R > 221760495:221760495(0) win 0 (DF) > > So, traffic is being returned via gw2, rather than gw1 :( They are marked I guess, but much too late. -- Len Sorensen ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: two gateways with one NIC 2007-04-09 17:23 ` Lennart Sorensen @ 2007-04-09 18:05 ` W Agtail 2007-04-09 18:11 ` Ben Greear 2007-04-09 18:11 ` Lennart Sorensen 0 siblings, 2 replies; 21+ messages in thread From: W Agtail @ 2007-04-09 18:05 UTC (permalink / raw) To: Lennart Sorensen; +Cc: Patrick McHardy, netdev Nice one, but unfortunately still doesn't work. I'm now not seeing any marked messages in /var/log/messages and traffic still going via gw2 for port 8088. Thanks again. On Mon, 2007-04-09 at 13:23 -0400, Lennart Sorensen wrote: > On Mon, Apr 09, 2007 at 06:02:23PM +0100, W Agtail wrote: > > Thanks Patrick for your comments too. > > It seems that you can't mix PREROUTING with --sport or -o. > > I've also changed the ip rule tables to higher numbers, so I now have: > > I thought you could have --sport, but NOT -o. No need for -o of course. > > > iptables -t mangle -A PREROUTING -p tcp --dport 8088 -i eth0 -j LOG > > --log-prefix "fwmark 1: " > > iptables -t mangle -A PREROUTING -p tcp --dport 8089 -i eth0 -j LOG > > --log-prefix "fwmark 2: " > > > > iptables -t mangle -A PREROUTING -p tcp --dport 8088 -i eth0 -j MARK > > --set-mark 1 > > iptables -t mangle -A PREROUTING -p tcp --dport 8089 -i eth0 -j MARK > > --set-mark 2 > > iptables -t mangle -A PREROUTING -m mark --mark 1 -j LOG --log-prefix > > "marked 1: " > > iptables -t mangle -A PREROUTING -m mark --mark 2 -j LOG --log-prefix > > "marked 2: " > > The thing is that the destination port will NEVER be 8088 for the > outgoing packets from apache. The source port will be. > > Try this: > > iptables -t mangle -A PREROUTING -p tcp --sport 8088 -j LOG --log-prefix "fwmark 1: " > iptables -t mangle -A PREROUTING -p tcp --sport 8089 -j LOG --log-prefix "fwmark 2: " > iptables -t mangle -A PREROUTING -p tcp --sport 8088 -j MARK --set-mark 1 > iptables -t mangle -A PREROUTING -p tcp --sport 8089 -j MARK --set-mark 2 > iptables -t mangle -A PREROUTING -m mark --mark 1 -j LOG --log-prefix "marked 1: " > iptables -t mangle -A PREROUTING -m mark --mark 2 -j LOG --log-prefix "marked 2: " > > > ip route add table 8088 default via 10.18.35.11 dev eth0 > > ip route add table 8089 default via 10.18.35.21 dev eth0 > > > > ip rule add fwmark 1 table 8088 > > ip rule add fwmark 2 table 8089 > > > > > > # Confirmation of syntax: > > iptables -t mangle --list -v -n > > Chain PREROUTING (policy ACCEPT 5921 packets, 403K bytes) > > pkts bytes target prot opt in out source > > destination > > 18 984 LOG tcp -- eth0 * 0.0.0.0/0 > > 0.0.0.0/0 tcp dpt:8088 LOG flags 0 level 4 prefix `fwmark 1: ' > > 0 0 LOG tcp -- eth0 * 0.0.0.0/0 > > 0.0.0.0/0 tcp dpt:8089 LOG flags 0 level 4 prefix `fwmark 2: ' > > 18 984 MARK tcp -- eth0 * 0.0.0.0/0 > > 0.0.0.0/0 tcp dpt:8088 MARK set 0x1 > > 0 0 MARK tcp -- eth0 * 0.0.0.0/0 > > 0.0.0.0/0 tcp dpt:8089 MARK set 0x2 > > 18 984 LOG all -- * * 0.0.0.0/0 > > 0.0.0.0/0 MARK match 0x1 LOG flags 0 level 4 prefix `marked 1: > > ' > > 0 0 LOG all -- * * 0.0.0.0/0 > > 0.0.0.0/0 MARK match 0x2 LOG flags 0 level 4 prefix `marked 2: > > ' > > > > > > ip rule list > > 0: from all lookup local > > 32764: from all fwmark 0x2 lookup 8089 > > 32765: from all fwmark 0x1 lookup 8088 > > 32766: from all lookup main > > 32767: from all lookup default > > > > ip route list table 8088; ip route list table 8089 > > default via 10.18.35.11 dev eth0 > > default via 10.18.35.21 dev eth0 > > > > This is what I see in web2's /var/log/messages: > > Apr 9 06:46:58 web2-fc6 kernel: fwmark 1: IN=eth0 OUT= > > MAC=00:0c:29:d1:08:48:00:0c:29:49:04:9f:08:00 SRC=192.168.0.241 > > DST=10.18.35.52 LEN=60 TOS=0x00 PREC=0x00 TTL=64 ID=42359 DF PROTO=TCP > > SPT=33321 DPT=8088 WINDOW=5840 RES=0x00 SYN URGP=0 > > > > Apr 9 06:46:58 web2-fc6 kernel: marked 1: IN=eth0 OUT= > > MAC=00:0c:29:d1:08:48:00:0c:29:49:04:9f:08:00 SRC=192.168.0.241 > > DST=10.18.35.52 LEN=60 TOS=0x00 PREC=0x00 TTL=64 ID=42359 DF PROTO=TCP > > SPT=33321 DPT=8088 WINDOW=5840 RES=0x00 SYN URGP=0 > > > > As you can see, packets appear to be marked. > > But here's a tcpdump on gw2's eth1: > > > > 07:20:35.004205 192.168.0.241.59438 > 10.18.35.52.8088: S > > 221760494:221760494(0) win 5840 <mss 1460,sackOK,timestamp 1320423 > > 0,nop,wscale 6> (DF) > > 07:20:35.013144 10.18.35.52.8088 > 192.168.0.241.59438: S > > 2705868365:2705868365(0) ack 221760495 win 5792 <mss > > 1460,sackOK,timestamp 2191014 1320423,nop,wscale 1> (DF) > > 07:20:35.021857 192.168.0.241.59438 > 10.18.35.52.8088: R > > 221760495:221760495(0) win 0 (DF) > > 07:20:38.069688 192.168.0.241.59438 > 10.18.35.52.8088: S > > 221760494:221760494(0) win 5840 <mss 1460,sackOK,timestamp 1321173 > > 0,nop,wscale 6> (DF) > > 07:20:38.069695 10.18.35.52.8088 > 192.168.0.241.59438: S > > 2706988830:2706988830(0) ack 221760495 win 5792 <mss > > 1460,sackOK,timestamp 2192135 1321173,nop,wscale 1> (DF) > > 07:20:38.071232 192.168.0.241.59438 > 10.18.35.52.8088: R > > 221760495:221760495(0) win 0 (DF) > > > > So, traffic is being returned via gw2, rather than gw1 :( > > They are marked I guess, but much too late. > > -- > Len Sorensen ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: two gateways with one NIC 2007-04-09 18:05 ` W Agtail @ 2007-04-09 18:11 ` Ben Greear 2007-04-10 13:46 ` W Agtail 2007-04-09 18:11 ` Lennart Sorensen 1 sibling, 1 reply; 21+ messages in thread From: Ben Greear @ 2007-04-09 18:11 UTC (permalink / raw) To: wagtail; +Cc: Lennart Sorensen, Patrick McHardy, netdev W Agtail wrote: > Nice one, but unfortunately still doesn't work. > I'm now not seeing any marked messages in /var/log/messages and traffic > still going via gw2 for port 8088. Maybe you could use something like my mac-vlan virtual device to make your single NIC look like two NICs? You can find links to the patch and the macvlan-config tool on this page: http://www.candelatech.com/~greear/vlan.html Ben -- Ben Greear <greearb@candelatech.com> Candela Technologies Inc http://www.candelatech.com ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: two gateways with one NIC 2007-04-09 18:11 ` Ben Greear @ 2007-04-10 13:46 ` W Agtail 2007-04-10 15:32 ` Ben Greear 0 siblings, 1 reply; 21+ messages in thread From: W Agtail @ 2007-04-10 13:46 UTC (permalink / raw) To: Ben Greear; +Cc: Lennart Sorensen, Patrick McHardy, netdev On Mon, 2007-04-09 at 11:11 -0700, Ben Greear wrote: > W Agtail wrote: > > Nice one, but unfortunately still doesn't work. > > I'm now not seeing any marked messages in /var/log/messages and traffic > > still going via gw2 for port 8088. > > Maybe you could use something like my mac-vlan virtual device to make > your single NIC look like two NICs? You can find links to the patch and > the macvlan-config tool on this page: > > http://www.candelatech.com/~greear/vlan.html > > Ben > > Thanks Ben, this looks quite an interesting idea. Is it possible to create /etc/sysconfig/network-scripts/* in the same way as ethN:N scripts I wonder? ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: two gateways with one NIC 2007-04-10 13:46 ` W Agtail @ 2007-04-10 15:32 ` Ben Greear 2007-04-11 15:38 ` W Agtail 0 siblings, 1 reply; 21+ messages in thread From: Ben Greear @ 2007-04-10 15:32 UTC (permalink / raw) To: wagtail; +Cc: Lennart Sorensen, Patrick McHardy, netdev W Agtail wrote: > On Mon, 2007-04-09 at 11:11 -0700, Ben Greear wrote: > >> W Agtail wrote: >> >>> Nice one, but unfortunately still doesn't work. >>> I'm now not seeing any marked messages in /var/log/messages and traffic >>> still going via gw2 for port 8088. >>> >> Maybe you could use something like my mac-vlan virtual device to make >> your single NIC look like two NICs? You can find links to the patch and >> the macvlan-config tool on this page: >> >> http://www.candelatech.com/~greear/vlan.html >> >> Ben >> >> >> > > Thanks Ben, this looks quite an interesting idea. > Is it possible to create /etc/sysconfig/network-scripts/* in the same > way as ethN:N scripts I wonder? > No idea...I create these things using mvl_config tool. At the least, you could edit rc.local or similar. Thanks, Ben > - > To unsubscribe from this list: send the line "unsubscribe netdev" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html > -- Ben Greear <greearb@candelatech.com> Candela Technologies Inc http://www.candelatech.com ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: two gateways with one NIC 2007-04-10 15:32 ` Ben Greear @ 2007-04-11 15:38 ` W Agtail 0 siblings, 0 replies; 21+ messages in thread From: W Agtail @ 2007-04-11 15:38 UTC (permalink / raw) To: Ben Greear; +Cc: Lennart Sorensen, Patrick McHardy, netdev Well, I found that with CentOS/Fedora/RHEL, I could use their standard network-scripts to create VLAN devices. I got VLAN devices running OK, but then ended up in the same boat as before. Also, it might be nice if keepalived/LVS had the option of entering a VLAN device in keepalived.conf? (might come handy for someone one day?) I just did a bit of a fudge while testing. My only option, seems only to create a single sided 'active/passive' KeepAliveD/LVS cluster. Thanks all for your help :) On Tue, 2007-04-10 at 08:32 -0700, Ben Greear wrote: > W Agtail wrote: > > On Mon, 2007-04-09 at 11:11 -0700, Ben Greear wrote: > > > >> W Agtail wrote: > >> > >>> Nice one, but unfortunately still doesn't work. > >>> I'm now not seeing any marked messages in /var/log/messages and traffic > >>> still going via gw2 for port 8088. > >>> > >> Maybe you could use something like my mac-vlan virtual device to make > >> your single NIC look like two NICs? You can find links to the patch and > >> the macvlan-config tool on this page: > >> > >> http://www.candelatech.com/~greear/vlan.html > >> > >> Ben > >> > >> > >> > > > > Thanks Ben, this looks quite an interesting idea. > > Is it possible to create /etc/sysconfig/network-scripts/* in the same > > way as ethN:N scripts I wonder? > > > No idea...I create these things using mvl_config tool. At the least, > you could > edit rc.local or similar. > > Thanks, > Ben > > > - > > To unsubscribe from this list: send the line "unsubscribe netdev" in > > the body of a message to majordomo@vger.kernel.org > > More majordomo info at http://vger.kernel.org/majordomo-info.html > > > > ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: two gateways with one NIC 2007-04-09 18:05 ` W Agtail 2007-04-09 18:11 ` Ben Greear @ 2007-04-09 18:11 ` Lennart Sorensen 2007-04-09 18:24 ` W Agtail 1 sibling, 1 reply; 21+ messages in thread From: Lennart Sorensen @ 2007-04-09 18:11 UTC (permalink / raw) To: W Agtail; +Cc: Patrick McHardy, netdev On Mon, Apr 09, 2007 at 07:05:31PM +0100, W Agtail wrote: > Nice one, but unfortunately still doesn't work. > I'm now not seeing any marked messages in /var/log/messages and traffic > still going via gw2 for port 8088. What does 'iptables -v -t mangle -L' show at the moment? Have you been flushing it between attemps to make sure you don't have conflicting rules? -- Len Sorensen ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: two gateways with one NIC 2007-04-09 18:11 ` Lennart Sorensen @ 2007-04-09 18:24 ` W Agtail 2007-04-09 21:23 ` Lennart Sorensen 0 siblings, 1 reply; 21+ messages in thread From: W Agtail @ 2007-04-09 18:24 UTC (permalink / raw) To: Lennart Sorensen; +Cc: Patrick McHardy, netdev On Mon, 2007-04-09 at 14:11 -0400, Lennart Sorensen wrote: > On Mon, Apr 09, 2007 at 07:05:31PM +0100, W Agtail wrote: > > Nice one, but unfortunately still doesn't work. > > I'm now not seeing any marked messages in /var/log/messages and traffic > > still going via gw2 for port 8088. > > What does 'iptables -v -t mangle -L' show at the moment? Have you been > flushing it between attemps to make sure you don't have conflicting > rules? > > -- > Len Sorensen Yup, I've been flushing iptables each time. This is what we have atm: iptables -n -v -t mangle -L Chain PREROUTING (policy ACCEPT 12656 packets, 2518K bytes) pkts bytes target prot opt in out source destination 0 0 LOG tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp spt:8088 LOG flags 0 level 4 prefix `fwmark 1: ' 0 0 LOG tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp spt:8089 LOG flags 0 level 4 prefix `fwmark 2: ' 0 0 MARK tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp spt:8088 MARK set 0x1 0 0 MARK tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp spt:8089 MARK set 0x2 0 0 LOG all -- * * 0.0.0.0/0 0.0.0.0/0 MARK match 0x1 LOG flags 0 level 4 prefix `marked 1: ' 0 0 LOG all -- * * 0.0.0.0/0 0.0.0.0/0 MARK match 0x2 LOG flags 0 level 4 prefix `marked 2: ' Chain INPUT (policy ACCEPT 10664 packets, 2438K bytes) pkts bytes target prot opt in out source destination Chain FORWARD (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination Chain OUTPUT (policy ACCEPT 6311 packets, 896K bytes) pkts bytes target prot opt in out source destination Chain POSTROUTING (policy ACCEPT 6311 packets, 896K bytes) pkts bytes target prot opt in out source destination ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: two gateways with one NIC 2007-04-09 18:24 ` W Agtail @ 2007-04-09 21:23 ` Lennart Sorensen 0 siblings, 0 replies; 21+ messages in thread From: Lennart Sorensen @ 2007-04-09 21:23 UTC (permalink / raw) To: W Agtail; +Cc: Patrick McHardy, netdev On Mon, Apr 09, 2007 at 07:24:07PM +0100, W Agtail wrote: > Yup, I've been flushing iptables each time. This is what we have atm: > iptables -n -v -t mangle -L > > Chain PREROUTING (policy ACCEPT 12656 packets, 2518K bytes) > pkts bytes target prot opt in out source > destination > 0 0 LOG tcp -- * * 0.0.0.0/0 > 0.0.0.0/0 tcp spt:8088 LOG flags 0 level 4 prefix `fwmark 1: ' > 0 0 LOG tcp -- * * 0.0.0.0/0 > 0.0.0.0/0 tcp spt:8089 LOG flags 0 level 4 prefix `fwmark 2: ' > 0 0 MARK tcp -- * * 0.0.0.0/0 > 0.0.0.0/0 tcp spt:8088 MARK set 0x1 > 0 0 MARK tcp -- * * 0.0.0.0/0 > 0.0.0.0/0 tcp spt:8089 MARK set 0x2 > 0 0 LOG all -- * * 0.0.0.0/0 > 0.0.0.0/0 MARK match 0x1 LOG flags 0 level 4 prefix `marked 1: > ' > 0 0 LOG all -- * * 0.0.0.0/0 > 0.0.0.0/0 MARK match 0x2 LOG flags 0 level 4 prefix `marked 2: > ' > > Chain INPUT (policy ACCEPT 10664 packets, 2438K bytes) > pkts bytes target prot opt in out source > destination > > Chain FORWARD (policy ACCEPT 0 packets, 0 bytes) > pkts bytes target prot opt in out source > destination > > Chain OUTPUT (policy ACCEPT 6311 packets, 896K bytes) > pkts bytes target prot opt in out source > destination > > Chain POSTROUTING (policy ACCEPT 6311 packets, 896K bytes) > pkts bytes target prot opt in out source > destination Odd how the packet count on those mangle table entries is 0. It seems like it is never even getting to there. Do you need a rule in the output chain telling it to send some packets to the mangle table? That doesn't make sense either though. -- Len Sorensen ^ permalink raw reply [flat|nested] 21+ messages in thread
end of thread, other threads:[~2007-04-11 15:38 UTC | newest] Thread overview: 21+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2007-04-08 3:35 two gateways with one NIC W Agtail 2007-04-08 15:01 ` Lennart Sorensen 2007-04-08 16:10 ` W Agtail 2007-04-08 18:22 ` Lennart Sorensen 2007-04-08 19:29 ` W Agtail 2007-04-09 14:54 ` Lennart Sorensen 2007-04-09 15:56 ` W Agtail 2007-04-09 16:11 ` Lennart Sorensen 2007-04-09 16:13 ` Patrick McHardy 2007-04-09 16:19 ` Lennart Sorensen 2007-04-09 17:02 ` W Agtail 2007-04-09 17:14 ` Patrick McHardy 2007-04-09 17:23 ` Lennart Sorensen 2007-04-09 18:05 ` W Agtail 2007-04-09 18:11 ` Ben Greear 2007-04-10 13:46 ` W Agtail 2007-04-10 15:32 ` Ben Greear 2007-04-11 15:38 ` W Agtail 2007-04-09 18:11 ` Lennart Sorensen 2007-04-09 18:24 ` W Agtail 2007-04-09 21:23 ` Lennart Sorensen
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).