<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>http://neobiker.de/wiki/index.php?action=history&amp;feed=atom&amp;title=XEN_network_masqu%2Frouting</id>
	<title>XEN network masqu/routing - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="http://neobiker.de/wiki/index.php?action=history&amp;feed=atom&amp;title=XEN_network_masqu%2Frouting"/>
	<link rel="alternate" type="text/html" href="http://neobiker.de/wiki/index.php?title=XEN_network_masqu/routing&amp;action=history"/>
	<updated>2026-05-14T03:29:33Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Neobikers Wiki</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>http://neobiker.de/wiki/index.php?title=XEN_network_masqu/routing&amp;diff=737&amp;oldid=prev</id>
		<title>Neobiker am 12. September 2007 um 17:12 Uhr</title>
		<link rel="alternate" type="text/html" href="http://neobiker.de/wiki/index.php?title=XEN_network_masqu/routing&amp;diff=737&amp;oldid=prev"/>
		<updated>2007-09-12T17:12:01Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== XEN Netzwerk mit Masquerading/Routing auf SuSE 10.1 Notebook ==&lt;br /&gt;
Ich verwende folgendes Script unter &amp;#039;&amp;#039;&amp;#039;SuSE 10.1&amp;#039;&amp;#039;&amp;#039; auf einem Notebook und WLAN mittels ndiswrapper in einer sehr &amp;#039;&amp;#039;&amp;#039;speziellen Konfiguration&amp;#039;&amp;#039;&amp;#039;: Da ich mit dem WLAN-Device &amp;#039;&amp;#039;&amp;#039;wlan0&amp;#039;&amp;#039;&amp;#039; keine Standard-XEN-Bridge (peth0,eth0 -&amp;gt; xenbr0) zum laufen bekomme (evtl. wegen dem ndiswrapper?) muss ich &amp;#039;&amp;#039;&amp;#039;Routing und Masquerading auf dem WLAN-Device&amp;#039;&amp;#039;&amp;#039; verwenden. Dazu gebe ich den beiden XEN-Bridges (GREEN und RED) jeweils eine IP-Adresse und benutze die Firewall über normales Routing.&lt;br /&gt;
&lt;br /&gt;
Notebook mittels WLAN (ndiswrapper) und Routing/Masquerading (wlan0)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
route -n&lt;br /&gt;
Kernel IP Routentabelle&lt;br /&gt;
Ziel            Router          Genmask         Flags Metric Ref    Use Iface&lt;br /&gt;
10.0.0.0        0.0.0.0         255.255.255.0   U     0      0        0 xenbr0  # GREEN&lt;br /&gt;
10.0.1.0        0.0.0.0         255.255.255.0   U     0      0        0 xenbr1  # RED&lt;br /&gt;
10.0.2.0        10.0.0.1        255.255.255.0   UG    0      0        0 xenbr0  # ORANGE&lt;br /&gt;
192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 wlan0   # WLAN&lt;br /&gt;
169.254.0.0     0.0.0.0         255.255.0.0     U     0      0        0 wlan0   # not used&lt;br /&gt;
127.0.0.0       0.0.0.0         255.0.0.0       U     0      0        0 lo&lt;br /&gt;
0.0.0.0         192.168.1.254   0.0.0.0         UG    0      0        0 wlan0   # WLAN&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;SuSE 10.1&amp;#039;&amp;#039;&amp;#039;: Startup XEN-Network on Boot&lt;br /&gt;
&amp;lt;pre&amp;gt;/etc/init.d/after.local&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
&lt;br /&gt;
netdev=$(ip route list | awk &amp;#039;/^default / { print $NF }&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
if [ -n &amp;quot;${netdev}&amp;quot; ]; then&lt;br /&gt;
    echo &amp;quot;Starting EFW2 XEN Network Setup &amp;quot;&lt;br /&gt;
    /etc/xen/scripts/network-fw3wlan start&lt;br /&gt;
&lt;br /&gt;
    echo &amp;quot;Starting EFW2 (XEN) &amp;quot;&lt;br /&gt;
    xm create efw&lt;br /&gt;
&lt;br /&gt;
    echo &amp;quot;Starting DMZ (XEN) &amp;quot;&lt;br /&gt;
    xm create dmz&lt;br /&gt;
&lt;br /&gt;
    #echo &amp;quot;Starting DEVEL (XEN) &amp;quot;&lt;br /&gt;
    #xm create devel&lt;br /&gt;
&lt;br /&gt;
    /sbin/rcSuSEfirewall2 start&lt;br /&gt;
fi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3-Zonen Konfiguration mit Routing/Masquerading&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
#============================================================================&lt;br /&gt;
# Xen network start/stop script.&lt;br /&gt;
#&lt;br /&gt;
# Xend calls a network script when it starts.&lt;br /&gt;
# The script name to use is defined in /etc/xen/xend-config.sxp&lt;br /&gt;
# in the network-script field.&lt;br /&gt;
# ---------------------------------------------------------------------------&lt;br /&gt;
# It creates a XEN network setup with 3 bridges for a firewall in a domU&lt;br /&gt;
# like IPCop / Shorewall / Endian Firewall with GREEN, RED and ORANGE net.&lt;br /&gt;
#&lt;br /&gt;
# This script creates 3 bridges (default xenbr0-2), gives the first&lt;br /&gt;
# bridge (xenbr0 = GREEN) an IP address, and the 2.nd bridge (xenbr1 = RED)&lt;br /&gt;
# optional also.  It will set a route to the net&amp;#039;s definded for the bridges.&lt;br /&gt;
# ---------------------------------------------------------------------------&lt;br /&gt;
# If all goes well, this should ensure that networking stays up.&lt;br /&gt;
# However, some configurations are upset by this, especially&lt;br /&gt;
# NFS roots. If the bridged setup does not meet your needs,&lt;br /&gt;
# configure a different script, for example using routing instead.&lt;br /&gt;
#&lt;br /&gt;
# Usage: network-fw3wlan (start|stop|status) {VAR=VAL}*&lt;br /&gt;
#&lt;br /&gt;
# Vars (all optional):&lt;br /&gt;
#&lt;br /&gt;
# bridge[0-2]    The bridge to use (default xenbr${vifnum}).&lt;br /&gt;
#&lt;br /&gt;
# bridgeip[0-1]  Holds the ip address the bridge should have in the&lt;br /&gt;
#                the form ip/mask (10.0.0.1/24).&lt;br /&gt;
#&lt;br /&gt;
# brnet[0-2]     Holds the network of the bridge (10.0.0.1/24).&lt;br /&gt;
#&lt;br /&gt;
# netdev         The network device of dom0 (default from defaultroute)&lt;br /&gt;
#&lt;br /&gt;
# vifnum         Virtual device number to use (default 0). Numbers &amp;gt;=8&lt;br /&gt;
#                require the netback driver to have nloopbacks set to a&lt;br /&gt;
#                higher value than its default of 8.&lt;br /&gt;
#&lt;br /&gt;
# start:&lt;br /&gt;
# Create the bridges, set up IP addresses and routes&lt;br /&gt;
#&lt;br /&gt;
# stop:&lt;br /&gt;
# Removes all routes from the bridge&lt;br /&gt;
# Removes any devices on the bridge from it.&lt;br /&gt;
# Deletes bridge&lt;br /&gt;
#&lt;br /&gt;
# status:&lt;br /&gt;
# Print addresses, interfaces, routes&lt;br /&gt;
#&lt;br /&gt;
#============================================================================&lt;br /&gt;
&lt;br /&gt;
dir=$(dirname &amp;quot;$0&amp;quot;)&lt;br /&gt;
. &amp;quot;$dir/xen-script-common.sh&amp;quot;&lt;br /&gt;
. &amp;quot;$dir/xen-network-common.sh&amp;quot;&lt;br /&gt;
&lt;br /&gt;
findCommand &amp;quot;$@&amp;quot;&lt;br /&gt;
evalVariables &amp;quot;$@&amp;quot;&lt;br /&gt;
&lt;br /&gt;
vifnum=${vifnum:-$(ip route list | awk &amp;#039;/^default / { print $NF }&amp;#039; | sed &amp;#039;s/^[^0-9]*//&amp;#039;)}&lt;br /&gt;
vifnum=${vifnum:-0}&lt;br /&gt;
netdev=${netdev:-$(ip route list | awk &amp;#039;/^default / { print $NF }&amp;#039;)}&lt;br /&gt;
netdev=${netdev:-eth${vifnum}}&lt;br /&gt;
antispoof=${antispoof:-no}&lt;br /&gt;
&lt;br /&gt;
pdev=&amp;quot;p${netdev}&amp;quot;&lt;br /&gt;
vdev=&amp;quot;veth${vifnum}&amp;quot;&lt;br /&gt;
vif0=&amp;quot;vif0.${vifnum}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
link_exists () {&lt;br /&gt;
   if ip link show &amp;quot;$1&amp;quot; &amp;gt;/dev/null 2&amp;gt;/dev/null&lt;br /&gt;
   then&lt;br /&gt;
        return 0&lt;br /&gt;
    else&lt;br /&gt;
        return 1&lt;br /&gt;
    fi&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# Usage: show_status dev bridge&lt;br /&gt;
# Print ifconfig and routes.&lt;br /&gt;
show_status () {&lt;br /&gt;
    local dev=$1&lt;br /&gt;
    local bridge=$2&lt;br /&gt;
&lt;br /&gt;
    echo &amp;#039;============================================================&amp;#039;&lt;br /&gt;
    ip addr show ${dev}&lt;br /&gt;
    ip addr show ${bridge}&lt;br /&gt;
    echo &amp;#039; &amp;#039;&lt;br /&gt;
    brctl show ${bridge}&lt;br /&gt;
    echo &amp;#039; &amp;#039;&lt;br /&gt;
    ip route list&lt;br /&gt;
    echo &amp;#039; &amp;#039;&lt;br /&gt;
    route -n&lt;br /&gt;
    echo &amp;#039;============================================================&amp;#039;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# check for default XEN interfaces&lt;br /&gt;
check_xen_if () {&lt;br /&gt;
    if ! link_exists &amp;quot;$vdev&amp;quot;; then&lt;br /&gt;
        if link_exists &amp;quot;$pdev&amp;quot;; then&lt;br /&gt;
            # The device is already up.&lt;br /&gt;
            return&lt;br /&gt;
        else&lt;br /&gt;
            echo &amp;quot;&lt;br /&gt;
Link $vdev is missing.&lt;br /&gt;
This may be because you have reached the limit of the number of interfaces&lt;br /&gt;
that the loopback driver supports.  If the loopback driver is a module, you&lt;br /&gt;
may raise this limit by passing it as a parameter (nloopbacks=&amp;lt;N&amp;gt;); if the&lt;br /&gt;
driver is compiled statically into the kernel, then you may set the parameter&lt;br /&gt;
using loopback.nloopbacks=&amp;lt;N&amp;gt; on the domain 0 kernel command line.&lt;br /&gt;
&amp;quot; &amp;gt;&amp;amp;2&lt;br /&gt;
            exit 1&lt;br /&gt;
        fi&lt;br /&gt;
    fi&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
op_start () {&lt;br /&gt;
&lt;br /&gt;
    check_xen_if&lt;br /&gt;
&lt;br /&gt;
    ###&lt;br /&gt;
    # GREEN LAN:&lt;br /&gt;
    #  EFW (eth0: 10.0.0.1/24)&lt;br /&gt;
    #   |&lt;br /&gt;
    # xenbr0------- more XEN domU&amp;#039;s in LAN (10.0.0.x/24)&lt;br /&gt;
    #   |&lt;br /&gt;
    #   +--Dom0 (xenbr0: 10.0.0.254/24)&lt;br /&gt;
&lt;br /&gt;
    bridge=${bridge0:-xenbr0}&lt;br /&gt;
    bridgeip=${br0ip:-10.0.0.254}&lt;br /&gt;
    brnet=${br0net:-10.0.0.0/24}&lt;br /&gt;
    brcast=${br0cast:-10.0.0.255}&lt;br /&gt;
    br0gw=${br0gw:-$(echo $brnet | cut -d/ -f1 | cut -d. -f-3).1}&lt;br /&gt;
    brnm=&amp;quot;`echo $brnet | cut -d/ -f2`&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    create_bridge ${bridge}&lt;br /&gt;
&lt;br /&gt;
    if link_exists &amp;quot;${bridge}&amp;quot;; then&lt;br /&gt;
        ip link set ${bridge} up arp on&lt;br /&gt;
&lt;br /&gt;
        # Add IP-Address to Bridge if wlan is default-gateway&lt;br /&gt;
        if [ &amp;quot;${netdev}&amp;quot; = &amp;quot;wlan${vifnum}&amp;quot; ]; then&lt;br /&gt;
            if [ -n &amp;quot;${bridgeip}&amp;quot; ]; then&lt;br /&gt;
                ip address add ${bridgeip}/${brnm} broadcast ${brcast} dev ${bridge} || true&lt;br /&gt;
                #ip route add to ${brnet} dev ${bridge} || true&lt;br /&gt;
            fi&lt;br /&gt;
        fi&lt;br /&gt;
    fi&lt;br /&gt;
&lt;br /&gt;
    ###&lt;br /&gt;
    # RED INTERFACE:&lt;br /&gt;
    #  EFW (eth1: 10.0.1.1/24)&lt;br /&gt;
    #   |&lt;br /&gt;
    # xenbr1     $netdev (masquerade)&lt;br /&gt;
    #   |        |&lt;br /&gt;
    #   +--Dom0--+&lt;br /&gt;
    #   (routing via xenbr1: 10.0.1.254)&lt;br /&gt;
&lt;br /&gt;
    bridge=${bridge1:-xenbr1}&lt;br /&gt;
    bridgeip=${br1ip:-10.0.1.254}&lt;br /&gt;
    brnet=${br1net:-10.0.1.0/24}&lt;br /&gt;
    brcast=${br1cast:-10.0.1.255}&lt;br /&gt;
    brnm=&amp;quot;`echo $brnet | cut -d/ -f2`&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    create_bridge ${bridge}&lt;br /&gt;
&lt;br /&gt;
    if link_exists &amp;quot;$bridge&amp;quot;; then&lt;br /&gt;
        ip link set ${bridge} up arp on&lt;br /&gt;
&lt;br /&gt;
        # Add $netdev or IP-Address to Bridge&lt;br /&gt;
        if [ &amp;quot;${netdev}&amp;quot; != &amp;quot;wlan${vifnum}&amp;quot; ]; then&lt;br /&gt;
            if link_exists &amp;quot;${netdev}&amp;quot;; then&lt;br /&gt;
                if ! ifdown ${netdev}; then&lt;br /&gt;
                    ip link set ${netdev} down&lt;br /&gt;
                    ip addr flush ${netdev}&lt;br /&gt;
                fi&lt;br /&gt;
                setup_bridge_port ${netdev}&lt;br /&gt;
                add_to_bridge ${bridge} ${netdev}&lt;br /&gt;
            fi&lt;br /&gt;
        else&lt;br /&gt;
            if [ -n &amp;quot;${bridgeip}&amp;quot; ]; then&lt;br /&gt;
                ip address add ${bridgeip}/${brnm} broadcast ${brcast} dev ${bridge} || true&lt;br /&gt;
                #ip route add to ${brnet} dev ${bridge} || true&lt;br /&gt;
            fi&lt;br /&gt;
        fi&lt;br /&gt;
    fi&lt;br /&gt;
&lt;br /&gt;
    ###&lt;br /&gt;
    # ORANGE DMZ: setup route via EFW&lt;br /&gt;
    #  EFW (eth2: 10.0.2.1/24)&lt;br /&gt;
    #   |&lt;br /&gt;
    # xenbr2----- more XEN domU&amp;#039;s in DMZ (10.0.2.x/24)&lt;br /&gt;
    #   |&lt;br /&gt;
    #   +--DMZ1 (eth0: 10.0.2.x/24)&lt;br /&gt;
&lt;br /&gt;
    bridge=${bridge2:-xenbr2}&lt;br /&gt;
    brnet=${br2net:-10.0.2.0/24}&lt;br /&gt;
&lt;br /&gt;
    create_bridge ${bridge}&lt;br /&gt;
&lt;br /&gt;
    if link_exists ${bridge}; then&lt;br /&gt;
        ip link set ${bridge} up arp on&lt;br /&gt;
        if [ -n &amp;quot;${br0gw}&amp;quot; ]; then&lt;br /&gt;
            ip route add to ${brnet} via ${br0gw} || true&lt;br /&gt;
        fi&lt;br /&gt;
    fi&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
op_stop () {&lt;br /&gt;
&lt;br /&gt;
    ###&lt;br /&gt;
    # GREEN:&lt;br /&gt;
&lt;br /&gt;
    bridge=${bridge0:-xenbr0}&lt;br /&gt;
    bridgeip=${br0ip:-10.0.0.254}&lt;br /&gt;
    brnet=${br0net:-10.0.0.0/24}&lt;br /&gt;
    br0gw=${br0gw:-$(echo $brnet | cut -d/ -f1 | cut -d. -f-3).1}&lt;br /&gt;
&lt;br /&gt;
    if link_exists ${bridge}; then&lt;br /&gt;
        ip route del to ${brnet} dev ${bridge} || true&lt;br /&gt;
        ip address del dev ${bridge} ${bridgeip}/32 || true&lt;br /&gt;
        ip link set ${bridge} down arp off || true&lt;br /&gt;
&lt;br /&gt;
        ##FIXME: 1st disconnect the correct interfaces from the bridge&lt;br /&gt;
        brctl delif ${bridge} vif1.0 || true&lt;br /&gt;
        brctl delbr ${bridge}&lt;br /&gt;
    fi&lt;br /&gt;
&lt;br /&gt;
    ###&lt;br /&gt;
    # RED INTERFACE:&lt;br /&gt;
&lt;br /&gt;
    bridge=${bridge1:-xenbr1}&lt;br /&gt;
    bridgeip=${br1ip:-10.0.1.254}&lt;br /&gt;
    brnet=${br1net:-10.0.1.0/24}&lt;br /&gt;
&lt;br /&gt;
    if link_exists ${bridge}; then&lt;br /&gt;
        ip route del to ${brnet} dev ${bridge} || true&lt;br /&gt;
        ip address del dev ${bridge} ${bridgeip}/32 || true&lt;br /&gt;
        ip link set ${bridge} down arp off || true&lt;br /&gt;
&lt;br /&gt;
        ##FIXME: 1st disconnect the correct interfaces from the bridge&lt;br /&gt;
        brctl delif ${bridge} vif1.1 || true&lt;br /&gt;
        brctl delbr ${bridge}&lt;br /&gt;
    fi&lt;br /&gt;
&lt;br /&gt;
    ###&lt;br /&gt;
    # ORANGE DMZ:&lt;br /&gt;
    # Bridge has no IP&lt;br /&gt;
    bridge=${bridge2:-xenbr2}&lt;br /&gt;
    brnet=${br2net:-10.0.0.0/24}&lt;br /&gt;
&lt;br /&gt;
    if link_exists ${bridge}; then&lt;br /&gt;
        ip route del to ${brnet} via ${br0gw}/32 || true&lt;br /&gt;
        ip link set ${bridge} down arp off || true&lt;br /&gt;
&lt;br /&gt;
        ##FIXME: 1st disconnect the correct interfaces from the bridge&lt;br /&gt;
        brctl delif ${bridge} vif1.2 || true&lt;br /&gt;
        brctl delif ${bridge} vif2.0 || true&lt;br /&gt;
        brctl delbr ${bridge}&lt;br /&gt;
    fi&lt;br /&gt;
&lt;br /&gt;
    rcSuSEfirewall2 start&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
case &amp;quot;$command&amp;quot; in&lt;br /&gt;
    start)&lt;br /&gt;
        op_start&lt;br /&gt;
        ;;&lt;br /&gt;
&lt;br /&gt;
    stop)&lt;br /&gt;
        op_stop&lt;br /&gt;
        ;;&lt;br /&gt;
&lt;br /&gt;
    status)&lt;br /&gt;
        show_status ${netdev} ${bridge}&lt;br /&gt;
        ;;&lt;br /&gt;
&lt;br /&gt;
    *)&lt;br /&gt;
        echo &amp;quot;Unknown command: $command&amp;quot; &amp;gt;&amp;amp;2&lt;br /&gt;
        echo &amp;#039;Valid commands are: start, stop, status&amp;#039; &amp;gt;&amp;amp;2&lt;br /&gt;
        exit 1&lt;br /&gt;
esac&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Neobiker</name></author>
	</entry>
</feed>