Commit Graph

174 Commits

Author SHA1 Message Date
Jayapal 6a7ae637dd CLOUDSTACK-1578 Egress default policy configurable using network offering in xenserver with VR as firewall provider 2013-06-24 13:37:00 +05:30
Bharat Kumar d92a01336b Cloudstack-2938 [Multiple_IP_Ranges] Password Service does not work in case of multiple subnets in a vlan
Signed-off-by: Abhinandan Prateek <aprateek@apache.org>
2013-06-20 10:37:24 +05:30
Alena Prokharchyk d66e9c7b51 CLOUDSTACK-2843: Provideded an ability to turn off the synchronization being done on the CS agent side,
for number of commands participating in Vm deployment process, as parallel deployment is supported on the hypervisor side.
The behavior is controlled by global config varirables:

"execute.in.sequence.hypervisor.commands" (false by default) sets/resets the synchronization for commands:
=========================
StartCommand
StopCommand
CreateCommand
CopyVolumeCommand

"execute.in.sequence.network.element.commands" (false by default) sets/resets the synchronization for commands:
==========================
DhcpEntryCommand
SavePasswordCommand
UserDataCommand
VmDataCommand

As a part of the fix, increased the global lock timeout to 30 mins in several VR scripts:
===========================
edithosts.sh
savepassword.sh
userdata.sh

to support situations when multiple concurrent calls to the script are being made.
2013-06-19 10:12:13 -07:00
Bharat Kumar 48913679e8 CLOUDSTACK-2648 [Multiple_IP_Ranges] Reboot or start/stop router vm deletes the ip alises created on VR in case of multiple subnets
Signed-off-by: Abhinandan Prateek <aprateek@apache.org>
2013-06-03 19:22:27 +05:30
Sheng Yang a21a4e5ac4 CLOUDSTACK-2682: Sleep 1 second before switch to BACKUP
To prevent backup.sh preempt master.sh when keepalived switch to MASTER then
back to BACKUP immediately.

Since it would take at least 3 seconds for BACKUP to switch to MASTER(vrrp
timeout), the fix won't cause chaos when keepalive try to switch to MASTER.
2013-05-24 17:10:55 -07:00
Bharat Kumar 052c24c4d1 CLOUDSTACK-702: Multiple ip ranges in different subnets.
This feature enables adding of guest ip ranges (public ips)  form different subnets.

In order to provide the dhcp service to a different subnet we create an ipalias on the router. This allows the router to listen to the dhcp request from the guest vms and respond accordingly. Every time a vm is deployed in the new subnet we configure an ip alias on the router. Cloudstack uses dnsmasq to provide dhcp service. We need to configure the dnsmasq to issue ips on the new subnets. Added a new class dnsmasqconfigurator which generates the dnsmasq confg file, this file replaces the old config in the router.

The details of the alias ips are stored in db in the nic_ip_alias table. Every time a new subnet is added one of the ip from the subnet is used to configure the ip alias.

I have pushed the code to  https://github.com/bvbharatk/cloud-stack/tree/Cloudstack-702 , also rebased the code with master.
I need to test the code for advanced sg enabled network using kvm.

I have added the unit test
Marvin tests are at https://git-wip-us.apache.org/repos/asf?p=cloudstack.git;h=53e4965

Also accomodated some of the changes suggested by koushik.
corrected the import statements. renamed the IpAlias command to createIpAlias command.

This feature supports only ipv4
2013-05-13 17:06:44 +05:30
Marcus Sorensen 870d21c436 Summary: Release old DHCP entries
Detail: Refresh dnsmasq with updated entries live, no outage

BUG-ID: CLOUDSTACK-2299
Submitted-by: Dennis Lawler <dlawler@gmail.com>
Signed-off-by: Marcus Sorensen <marcus@betterservers.com> 1367611792 -0600
2013-05-03 14:09:52 -06:00
Marcus Sorensen 71a17e4c13 CLOUDSTACK-2110 : allow vm to have multiple dhcp entries on same router
Signed-off-by: Marcus Sorensen <marcus@betterservers.com> 1367439056 -0600
2013-05-01 14:10:56 -06:00
Hugo Trippaers c9c68e1928 Replace restart with SIGHUP
This signal will force the dnsmasq daemon to reload the configuration directly. This is much faster than restarting the daemon, which result in a much smaller window during which no dns server is available.

Tested by using the replaced version of edithosts.sh on a running vrouter causing dns problems.
2013-04-07 21:46:38 +02:00
Sheng Yang 630e75596e CLOUDSTACK-1653: Redundant router: Fix check_heartbeat.sh malfunctional due to delayed cron job
The interval between keepalived.ts and keepalived.ts2 should be >= 60 seconds in
normal condition, because every 10 seconds keepalived.ts would be updated, and
at least every 60 seconds, keepalived.ts would be copy to keepalived.ts2.

If the interval is less than 60 seconds, then keepalived process failed to
update keepalived.ts every 10 seconds.

Take some delay of updating into consideration, check_heartbeat.sh would use 30
seconds as a way to tell keepalived process is alive or not.
2013-03-12 18:31:31 -07:00
Sheng Yang e35ce6587a CLOUDSTACK-1461: Don't set dns server for non-default ipv6 network
The non-default parameter can be used by ipv4 as well in the future.
2013-03-08 17:43:23 -08:00
Sheng Yang 7602997b90 CLOUDSTACK-1521: Stop services after switch to BACKUP 2013-03-05 15:58:57 -08:00
Sheng Yang dd721a832a CLOUDSTACK-1522: Add timestamp to lock
Use higher precision timestamp rather than file timestamp to find out the order
of lock requester
2013-03-05 15:58:57 -08:00
Sheng Yang 89dee27503 CLOUDSTACK-1414: Reduce arping time to nearly 0
In the previous version it would take at least 1 seconds for arping, and it
would be big if the VR has more than 30 IPs - our biglock default timeout is 30
seconds.

Fix it by send out two arping immediately, and then sleep 1 second for router to
update arp cache.
2013-02-26 12:39:15 -08:00
Wei Zhou 1e24892dfe If filesystem in virtual router is in read-only state, reports error to
commands send to virtual router, instead of keeping silence.

Test:

Before change:
(1) Acquire IP. always in "Allocating" state.
(2) EnableStaticNat, the result is success(it is incorrect).
(3) DisableStaticNat, will get error message.. This is correct.
(4) Add Firewalls. always in "Adding" state.
(5) The AgentManager report statistics every 60 minutes(normally it
should be router.stats.interval=5 minutes).

After change:
(1) Acquire IP, will get error message.
(2) EnableStaticNat, will get error message.
(3) DisableStaticNat, will get error message.
(4) Add Firewalls, will get error message. But the firewall rules are
saved in database.
(5) The AgentManager report statistics every 5 minutes, except the
network with read-only FS virtual router.
2013-02-12 09:22:04 -08:00
anthony e936257674 CLOUDSTACK-1199: add external DNS to dnsmasq configuration file 2013-02-08 16:30:32 -08:00
Sheng Yang 5cb9df91a1 Merge branch 'ipv6'
Conflicts:
	api/src/com/cloud/network/NetworkProfile.java
2013-01-31 15:07:33 -08:00
Jayapal 48fdc25daa CLOUDSTACK-299: Egress firewall rules feature for guest network on VR 2013-01-31 10:57:30 +05:30
Sheng Yang 8f66d266b3 IPv6: Enable VR's ability to provide DHCPv6 service 2013-01-26 23:14:42 -08:00
Sheng Yang 9300a02ba4 IPv6: Update edithosts.sh accept parameters 2013-01-26 23:14:27 -08:00
Sheng Yang 0b60dda1e6 Correct the license information of services.sh 2012-12-21 15:32:36 -08:00
Sheng Yang 5eba489198 Redundant Router: Restart vpn related services when redundant router fail-over 2012-12-21 15:22:03 -08:00
Sheng Yang 7926e66afa Redundant router: Fix wrong log attend to keepalived.log
If something got wrong with passwd_server_ip script, it would output to
keepalived.log, thus cause other scripts malfunctional.

Also make savepassword.sh using the same lock as serve_password.sh.
2012-12-21 15:21:49 -08:00
Atsushi Midorikawa 15704cfa6c virtual router: edithosts.sh cleanup fails on existing hosts
The already deleted same hostname  is not deleted from /etc/hosts of
vRouter.

vRouter's /etc/hosts format:
$ip $host

This patch fixes deletion logic below.
sed -i /"$host "/d $HOSTS

Signed-off-by: Prasanna Santhanam <tsp@apache.org>
2012-12-13 23:02:14 -08:00
Chip Childers f212177146 CLOUDSTACK-159 - Added license header 2012-10-01 12:23:57 -04:00
Chip Childers 5f7a8a0436 CLOUDSTACK-162 - Added license header 2012-10-01 12:21:41 -04:00
Sheng Yang 0c6dcb4772 CS-15094: Fix multiply vlan of redundang router
This fix would work because:
1. When booting up the router, there is possible that no ip information have
been set for the interface(CS would do it after confirm router is up), so the
interface isn't associate with any ip, then ifconfig cannot work. We have to use
ifup, this is especially true for the first router become master.

2. After booting up phase, the ip would be associated with interfaces, then we
can use ifconfig to bring them up.
2012-09-26 16:28:33 -07:00
Sheng Yang 435e4f6868 CS-16400: Fix LB service using port 8080
Also added license header for passwd_server_ip

Ported from:

commit 1072ec7ae3
Author: Sheng Yang <sheng.yang@citrix.com>
Date:   Wed Sep 12 11:15:33 2012 -0700

    CS-16318: Update the fix with some tweak

    1. The old fix run cloud-passwd-srvr twice because cloud-passwd-srvr is
still in the list of enabled_svcs

    2. The lock should be applied on serve_password.sh, which controlled the
accessing to the password. Applied on the MASTER/BACKUP switch is useless, two
instance of serve_password.sh would still able to access the password file at
the same time.

    3. Password service is a part of redundant router state transition process
now, so if the service failed to start, then the transition failed.

    4. Restart password service should be put before restart dnsmasq, which
would sent out DHCP offer to the user vms. If user VMs got the DHCP offer first
but failed to get password, there would be an issue.

    Reviewed-by: Anthony Xu

commit fa94da1140
Author: Jayapal Reddy <jayapalreddy.uradi@citrix.com>
Date:   Wed Sep 12 17:57:03 2012 +0530

    Bug:CS-16318 Starting password server on the both IPs in RRVM
    Reviewed-by: Abhi

Conflicts:

	patches/systemvm/debian/config/opt/cloud/bin/passwd_server
2012-09-26 16:28:33 -07:00
Chip Childers e2730c91d9 Adding license headers and licensing details for patches folder. 2012-09-25 14:26:52 -04:00
Sheng Yang bbc78bab5d CLOUDSTACK-159: Clean the configuration file
Now it's all written by myself.
2012-09-21 11:47:58 -07:00
Gavin Lee 39a676c496 Correct license header mainly for patches folder
Signed-off-by: Chip Childers <chip.childers@gmail.com>
I've assumed that Gavin's commit is appropriate, based
on an assumption that we will keep these files in the source
tree.  If https://issues.apache.org/jira/browse/LEGAL-146
results in a different opionion from the members, then we
will end up having to do something more drastic anyway.
2012-08-31 10:50:46 -04:00
Rohit Yadav 2296dc4acc bug CS-15942: Fixes port forwarding issue for redundant routers 2012-08-28 12:11:55 +05:30
Sheng Yang dd50bdf38e CS-15731: Make S2S VPN no-nat rule the top of POSTROUTING 2012-07-27 18:49:25 -07:00
bfederle c8f72c9198 Merge branch 'master' into vpc
Conflicts:
	ui/scripts/network.js
2012-07-23 10:36:25 -07:00
David Nalley 67bc9c819a fixing some more license headers 2012-07-20 15:59:31 -04:00
anthony c75fe80125 VPC : use routerProxy to call networkUsage.sh
Conflicts:

	core/src/com/cloud/hypervisor/vmware/resource/VmwareResource.java
2012-06-15 14:25:21 -07:00
anthony a08c9e7890 VPC : move acl.sh ipassoc.sh to /opt/cloud/bin/ 2012-06-15 14:24:09 -07:00
anthony 1a621a01f5 typo fix 2012-06-15 14:19:02 -07:00
anthony c442d6d7ab add guestnw.sh
add acl.sh
merge setup_dhcpsvr and setup_route
2012-06-15 14:18:47 -07:00
Sheng Yang 96e7e3d1ca CS-15175: Fix public interfaces of redundant router
We need to use ifup/ifdown to bring up the interfaces, because ifconfig don't
know the ip of the interface after we modify cloud-early-config to avoid
first start up of public interface.

Reviewed-by: Edison
2012-05-31 17:58:02 -07:00
anthony 3d74115769 CS-14784, CS-15065 , after release IP, reapply other IPs in the same eth device, to prevent secondary IPs are removed when primary IP is removed 2012-05-23 18:42:53 -07:00
Jayapal 5485faae3a CS-13500 Added hairpin NAT fix for static NAT 2012-05-23 12:15:33 +05:30
anthony 297996e907 CS-14784 support multiple subnets
resolved fixed
2012-05-16 16:26:00 -07:00
Naredula Janardhana Reddy d0a09732d2 Bug 14120: Enabling SNAT for all the public NICs.
Summary of changes:
    - snat flag is set to true if it is first ip of the NIC.

reviewed-by: Abhi
2012-05-07 10:08:51 +05:30
frank 2f634c0913 Switch to Apache license 2012-04-03 04:50:05 -07:00
Sheng Yang 1ca493e4fa bug 14042: Don't set dhcp:router option on DHCP server for non-default network on CentOS/RHEL
The routing table with two nics may be messed up, due to we sent same
router(gateway) information from different DHCP server, in order to specify
default gateway. E.g.

Network A: 192.168.1.0/24, gw 192.168.1.1
Network B: 192.168.2.0/24, gw 192.168.2.1

User VM: Nic 1 connect to network A, get ip 192.168.1.10; nic 2 connect to
network B, get ip 192.168.2.10.

Set network A as the default network of user VM.

Currently we would send this information to user VM through DHCP offer:
In network A: dhcp-option:router 192.168.1.1
In network B: dhcp-option:router 192.168.1.1

So both NIC in the guest VM would receive 192.168.1.1 as router(gateway).

But, in CentOS 5.6, dhclient-scripts try to tell if the gateway is reachable
for current subnet.

So when we try to enable nic 2(eth1) of user VM, dhclient would receive:
IP: 192.168.2.10
Mask: 255.255.255.0
Router: 192.168.1.1

Then it would found that the specified gateway(router) is not within its own
subnet(192.168.2.0/24). But since we send out this ip(192.168.1.1) as the
gateway for it, dhclient thought that it should got someway to access the
network through this IP. So it would execute:

ip route add 192.168.1.1 dev eth1
ip route replace default via 192.168.1.1 dev eth1

But it can never reach 192.168.1.1(which is in the eth0's subnet and the
gateway of eth0) by go through eth1 interface. So it is messed up.

We've tested Windows 2008 R2, CentOS 5.3, CentOS 5.6 and Ubuntu 10.04. Windows
and Ubuntu are fine with above policy.

To solve this, we send different dhcp:router option according to the guest OS
type now.

We may need expand this list later, but for now we only know that CentOS and
RHEL would behavior in this way.

status 14042: resolved fixed
2012-03-21 10:38:18 -07:00
Sheng Yang 02595f1b33 bug 12706: Add broadcast address for the network interface
status 12706: resolved fixed
2012-02-23 15:50:50 -08:00
Naredula Janardhana Reddy 5af6fbef83 Bug 13375:
Summary of changes:
  - Fix the order of source nat ip's : Static Nat IP's will be on top of Router source nat IP's. means Static NAT ip will take higher preference when compare to router ip while picking ip for source nat.

Reviewed-by: Abhi
2012-02-20 16:22:44 +05:30
Naredula Janardhana Reddy 623e7d93a8 Bug 13964:
Summary of changes: Added Hairpin Nat.
  - defined Harpin NAT function.
  - Called Hairpin NAT while adding/deleting port forwading and Static NAT rules.
  - added rules in IPtables config file, this will be iniated during bootup to forward New/established connectons from eth0 to eth0.
2012-02-20 16:16:53 +05:30
Naredula Janardhana Reddy 94e016b0c3 Bug 12808: ignoring errors on delete. 2012-02-14 11:58:27 +05:30