[Ovirt-devel] [PATCH node] Enabled automated network configuration via kernel arguments.
Daniel P. Berrange
berrange at redhat.com
Tue Nov 18 18:48:02 UTC 2008
On Tue, Nov 18, 2008 at 01:02:20PM -0500, Darryl L. Pierce wrote:
> This patch removes unnecessary kernel argument dependencies and adds support for IPv6.
>
> If supplied, the user can set the IP address, netmask and gateway for
> this interface using the OVIRT_IP_ADDRESS, OVIRT_IP_NETMASK and
> OVIRT_IP_GATEWAY respectively. If all of these options are not provided
> then DHCP is assumed.
>
> Signed-off-by: Darryl L. Pierce <dpierce at redhat.com>
> ---
> scripts/ovirt-config-networking | 94 ++++++++++++++++++++++++++++++++-------
> scripts/ovirt-firstboot | 11 +----
> 2 files changed, 79 insertions(+), 26 deletions(-)
>
> diff --git a/scripts/ovirt-config-networking b/scripts/ovirt-config-networking
> index 4ad8af0..15c09de 100755
> --- a/scripts/ovirt-config-networking
> +++ b/scripts/ovirt-config-networking
> @@ -3,6 +3,10 @@
> # Iterates over the list of network devices on the node and prompts the user
> # to configure each.
>
> +ME=$(basename "$0")
> +warn() { printf '%s: %s\n' "$ME" "$*" >&2; }
> +die() { warn "$*"; exit 1; }
> +
> WORKDIR=$(mktemp -d) || exit 1
>
> # Remove $WORKDIR upon interrupt (and HUP, PIPE, TERM) and upon normal
> @@ -17,11 +21,15 @@ function configure_interface
> {
> NIC=$1
> AUTO=$2
> - IPADDR=$OVIRT_IP_ADDRESS
> - NETMASK=$OVIRT_IP_NETMASK
> - GATEWAY=$OVIRT_IP_GATEWAY
> -
> - BRIDGE=ovirtbr`echo $NIC | cut -b4-`
> + if [[ "$AUTO" == "AUTO" &&
> + -n "$OVIRT_IP_ADDRESS" ]]; then
> + IPADDR=$OVIRT_IP_ADDRESS
> + NETMASK=$OVIRT_IP_NETMASK
> + GATEWAY=$OVIRT_IP_GATEWAY
> + PREFIX=$OVIRT_IP_PREFIX
> + fi
> +
> + BRIDGE=ovirtbr$NIC
> IF_FILENAME="$WORKDIR/augtool-$NIC"
> BR_FILENAME="$WORKDIR/augtool-$BRIDGE"
>
> @@ -40,6 +48,21 @@ function configure_interface
> # how do you want to configure this device? (dhcp, static IP)
> while true; do
> if [ -z "$AUTO" ]; then
> + IPADDR=
> + NETMASK=
> + GATEWAY=
> + IPTYPE=
> +
> + IPTYPES="IPv4 IPv6 Abort"
> + PS3="What type of network will be used? "
> + select TYPE in $IPTYPES
> + do
> + case "$TYPE" in
> + "Abort") return ;;
> + *) IPTYPE=$TYPE; break ;;
> + esac
> + done
This is wrong. You can have IPv4 only, IPv6 only (unlikely) or IPv4+IPv6
co-existing (likely). So you have to be able to setup IP details for
each.
Also, this is using inconsistent/mixed concepts. You're asking for
netmask with IPv4 and prefix with IPv6.
> +
> read -p "Will $BRIDGE use dynamic addressing? (Y/N) "
This is insufficient for IPv6.
With IPv4 you have a choice of
- Static config
- Stateful autoconfig (ie DHCP)
With IPv6 you have a choice of
- Static config
- Stateful autoconf (ie DHCPv6)
- Stateless autoconf (fully automatic)
I think you're better off combining the questions into one, so
- Do you want to enable IPv4 ? no/static/dhcp
If static
=> Prompt for IPv4 address, prefix or netmask (allow them to
enter either and figure out which they provided yourself),
and gateway
- Do you want to enable IPv6 ? no/static/dhcp6/autoconf
If static
=> Prompt for IPv6 address and prefix.
Daniel
--
|: Red Hat, Engineering, London -o- http://people.redhat.com/berrange/ :|
|: http://libvirt.org -o- http://virt-manager.org -o- http://ovirt.org :|
|: http://autobuild.org -o- http://search.cpan.org/~danberr/ :|
|: GnuPG: 7D3B9505 -o- F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505 :|
More information about the ovirt-devel
mailing list