Overview
Having set up the file system and directories for XEN on VICTORIA , I now need to set up the networking.
References
- Xen Project Wiki
- Create sub interfaces on CentOS and Redhat
- networking/ip-sysctl.txt
- Michael Kerrisk - man7.org
Design
In my design for the REDFERN cluster, I had four (4) networks set up:
- Public
- Management
- ASM
- Interconnect
I plan to configure four (4) corresponding bridges as described in Victoria VM Resources .
Bridge | Interface | Network | IPV4 Address | MTU |
---|---|---|---|---|
xenbr0 | bond0 | 192.168.1.0/24 | 192.168.1.100 | 9000 |
xenbr1 | eth1:1 | 192.168.2.0/24 | 192.168.2.100 | |
xenbr2 | eth1:2 | 192.168.3.0/24 | 192.168.3.100 | |
xenbr3 | eth1:3 | 192.168.4.0/24 | 192.168.4.100 |
Procedure
Create Bridges
Following the examples given in 2.1 Bridging , I used the following script to create all four (4) bridges:
cd /etc/sysconfig/network-scripts for bridge in 0 1 2 3 do nw=$(((bridge + 1))) bridgename="xenbr${bridge}" # ==== Create bridge cat <<DONE >ifcfg-${bridgename} # ----------------------------------------------------------------------------- # Bridge ${bridgename} # Generated $(date +"%F %T") # ----------------------------------------------------------------------------- # Device identification DEVICE="${bridgename}" UUID="$(uuidgen)" # Device options BOOTPROTO="static" TYPE="Bridge" ONBOOT="yes" DELAY="0" NM_CONTROLLED="no" # IPV4 Networking IPADDR="192.168.${nw}.100" NETMASK="255.255.255.0" GATEWAY="192.168.1.1" # DNS DNS1="192.168.1.252" DNS2="192.168.1.1" PEERDNS="yes" DOMAIN="yaocm.id.au" DONE done
The uuidgen command is used to generate a random UUID for this bridge.
Create Sub-Interfaces
Following the advice in Create sub interfaces on CentOS and Redhat , I used the following script to create sub-interfaces on eth1 to support three (3) bridges (except for xenbr0 ):
cd /etc/sysconfig/network-scripts for subif in 1 2 3 do bridge=${subif} ifname="eth1:${subif}" bridgename="xenbr${bridge}" # ==== Create subinterface cat <<DONE >ifcfg-${ifname} # ----------------------------------------------------------------------------- # Sub-interface #${subif} on eth1 to support bridge ${bridgename} # Generated $(date +"%F %T") # ----------------------------------------------------------------------------- # Device identification DEVICE="${ifname}" UUID="$(uuidgen)" $(grep HWADDR ifcfg-eth1) # Device options ONPARENT="yes" TYPE="Ethernet" MTU="9000" ONBOOT="yes" NM_CONTROLLED="no" # Bridge BRIDGE="${bridgename}" DONE done
The uuidgen command is used to generate a random UUID for this sub-interface. The grep command is used to copy the MAC address from the parent device ( eth1 ).
Put xenbr0 onto bond0
I used the following command to put xenbr0 onto the bond0 interface:
cd /etc/sysconfig/network-scripts cat >>ifcfg-bond0 <<DONE # Bridge BRIDGE="xenbr0" DONE
Enable Routing
Following the advice in 2.3.1 Enabling Routing (All Distributions) , and the documentation in networking/ip-sysctl.txt , I updated /etc/ sysctl.conf with the following lines:
net.ipv4.ip_forward = 1 net.ipv4.conf.all.proxy_arp = 1
Then, I ran the following command to update the system configuration:
sysctl -p /etc/sysctl.conf
Restart Network
I used the following command to implement the new network configuration:
service network restart
The result is:
Shutting down interface bond0: bridge xenbr0 does not exist! [ OK ] Shutting down loopback interface: [ OK ] Bringing up loopback interface: [ OK ] Bringing up interface bond0: [ OK ] Bringing up interface xenbr0: [ OK ] Bringing up interface xenbr1: [ OK ] Bringing up interface xenbr2: [ OK ] Bringing up interface xenbr3: [ OK ]