1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277
|
# $XORP$
XORP/Win32 Release Process
--------------------------
1. Check out a fresh XORP tree, with the BGP test data.
# xcvs co xorp data
This may take around 5 minutes dependent on latency and congestion.
2. Ensure configure step completes OK.
# cd xorp && ./configure
This takes around 3 minutes.
3. Perform the build. If OK proceed to next step.
Most likely problems: You don't have MinGW installed correctly
and/or patched for building XORP.
# gmake
This may take 45 minutes or more.
4. Perform regression tests. If OK proceed to next step.
Most likely problems: bash not present in hardcoded path in
RunShellCommand class (C:\MSYS\bin\sh.exe).
# gmake check
This may take 2 hours or more.
5. Perform basic application tests on local host.
Bring up a basic router. Steps:
1. Open three cmd.exe windows.
2. set XORP_ROOT=c:\path\to\xorp\build\directory
3. cd into XORP_ROOT
4. Run rtrmgr\xorp_rtrmgr.exe in one window.
5. Run rtrmgr\xorpsh.exe in another.
6. Keep the other cmd.exe window handy for running Windows
administration commands.
* ENSURE THAT THE ROUTING AND REMOTE ACCESS SERVICE IS NOT RUNNING BEFORE
STARTING ANY TEST SCENARIO.
U:\XORP> net stop remoteaccess
The Routing and Remote Access service is not started.
More help is available by typing NET HELPMSG 3521.
Scenario 1: Test basic XORP behaviour on Windows.
* Create a C:\config.boot file with an interface configuration matching
the interfaces present in the 'Network Connections' folder.
* Add two static route entries; one candidate default, and one /32 prefix
to a remote host with the next-hop as a host (not router) on your network.
* Start the router manager.
C:\Documents and Settings\Administrator>cd u:\xorp
C:\Documents and Settings\Administrator>u:
U:\xorp>set XORP_ROOT=U:\XORP
U:\xorp>rtrmgr\xorp_rtrmgr -b c:\config.boot
* Verify that fea, policy, rib, static_routes modules start up.
If RRAS is disabled you should see these messages:
[ 2006/07/15 15:03:14 WARNING U:\XORP\fea\xorp_fea.exe FEA ] RRAS is not running
; disabling FtiConfigEntrySetRtmV2.
[ 2006/07/15 15:03:14 WARNING U:\XORP\fea\xorp_fea.exe FEA ] RRAS is not running
; disabling FtiConfigTableObserverRtmV2.
* Verify that xorpsh can connect to the running router manager locally.
U:\xorp>set XORP_ROOT=U:\XORP
U:\xorp>rtrmgr\xorpsh
[ 2006/07/15 15:10:35 WARNING rtrmgr\xorpsh RTRMGR ] [Operational Command File:
U:\XORP/etc/templates/misc.cmds line 19]: Executable file not found: ping6
[ 2006/07/15 15:10:35 WARNING rtrmgr\xorpsh RTRMGR ] [Operational Command File:
U:\XORP/etc/templates/misc.cmds line 29]: Executable file not found: traceroute
[ 2006/07/15 15:10:35 WARNING rtrmgr\xorpsh RTRMGR ] [Operational Command File:
U:\XORP/etc/templates/misc.cmds line 39]: Executable file not found: traceroute6
Welcome to XORP on empiric
@empiric>
* Verify that XORP's idea of the network interfaces configured on the
system matches that in the Windows networking stack.
@empiric> show interfaces
bge0/bge0: Flags:<ENABLED,BROADCAST,MULTICAST> mtu 1500
inet 192.168.123.199 subnet 192.168.123.0/24 broadcast 192.168.123.255
physical index 2
ether 0:10:c6:dd:6:f3
And in the administration shell:
U:\XORP> ipconfig
Windows IP Configuration
Ethernet adapter bge0:
Connection-specific DNS Suffix . : lon.incunabulum.net
IP Address. . . . . . . . . . . . : 192.168.123.199
Subnet Mask . . . . . . . . . . . : 255.255.255.0
IP Address. . . . . . . . . . . . : 2001:618:400:1041:210:c6ff:fedd:6f3
IP Address. . . . . . . . . . . . : fe80::210:c6ff:fedd:6f3%6
Default Gateway . . . . . . . . . : 192.168.123.1
fe80::206:2bff:fe03:5c31%6
Ethernet adapter {53741D39-FF7A-4083-A5B4-9D1634535E56}:
Media State . . . . . . . . . . . : Media disconnected
XXX
Scenario 2: Introduce static routes to local FIB via XORP.
* Verify that the static routes appear in the Windows FIB.
U:\XORP> route print
IPv4 Route Table
===========================================================================
Interface List
0x1 ........................... MS TCP Loopback interface
0x2 ...00 10 c6 dd 06 f3 ...... Broadcom NetXtreme Gigabit Ethernet - Packet Sch
eduler Miniport
0x4 ...00 ff 53 74 1d 39 ...... TAP-Win32 Adapter V8 - Packet Scheduler Miniport
===========================================================================
===========================================================================
Active Routes:
Network Destination Netmask Gateway Interface Metric
0.0.0.0 0.0.0.0 192.168.123.1 192.168.123.199 20
1.2.3.4 255.255.255.255 192.168.123.6 192.168.123.199 20
...
* When finished, CTRL-C in the CMD.EXE window containing xorp_rtrmgr.exe.
This should terminate XORP and all sub-processes cleanly. If not performed
from within a CMD.EXE window then inheritance of signal handlers won't
happen correctly.
* Use 'Process Explorer' from Sysinternals.com to kill the entire
xorp_rtrmgr.exe process tree, to ensure XORP is fully terminated
before running another test scenario.
6. Perform typical peer scenario tests.
Scenario 1: Local RIP.
Unusual behaviour to look for: Traffic not being sent or received.
Routes not being plumbed into IP helper.
* Before starting, ensure that the second interface is up and configured
in Network Connections.
* Start rtrmgr with RIP configured on two interfaces in config.boot.
* Use xorpsh to check both interfaces are present and correctly addressed.
xorpsh> show interfaces
* Check routes are in FINAL table.
xorpsh> show route table ipv4 unicast final
* Check RIP is running.
@empiric> show rip status all
* RIP on bge0 bge0 192.168.123.199
Status: enabled
* RIP on iwi0 iwi0 192.168.124.190
Status: enabled
* Run ethereal and dump on both interfaces; check that you see RIP
and IGMP membership traffic for 224.0.0.9.
Restart XORP if necessary to capture the IGMP joins.
* On a peer connected to the same network, tcpdump for RIP traffic:
montagne:~ % s tcpdump -i em0 -n -vvvv -e udp port router
11:20:39.375098 00:10:c6:dd:06:f3 > 01:00:5e:00:00:09, ethertype IPv4 (0x0800), length 66: (tos 0x0, ttl 1, id 50313, offset 0, flags [none], proto: UDP (17), length: 52) 192.168.123.199.520 > 224.0.0.9.520: [udp sum ok]
RIPv2, Request, length: 24
0x0000: 0102 0000 0000 0000 0000 0000 0000 0000
0x0010: 0000 0000 0000 0010
* Now configure RIP to redistribute static routes, and perform the above
packet inspections again.
* Check that static host route 1.2.3.4/32 is sent OK on secondary interface.
Scenario 2: Local OSPF.
Unusual behaviour to look for: Traffic not being sent or received when
using raw socket IPv4 multicast.
* Redistribute static routes into ospf.
* Start XORP.
* Check ospf is running on both primary and secondary interface.
* Check IPv4 IGMP join to OSPF group on secondary interface.
Locally; use Ethereal, look for IGMP on 224.0.0.6.
* Check IGMP join and OSPF traffic seen by peer on primary subnetwork.
On peer; use tcpdump or Ethereal, look for IGMP on 224.0.0.6 and proto ospf.
* Start OSPF peer on primary subnetwork.
* Leave protocol analyzers running and check for successful exchange
of initial LSAs.
* Verify peers see each other:
xorp> show ospf4 neighbor
* Verify LSAs are as you'd expect.
@empiric> show ospf4 database
OSPF link state database, Area 0.0.0.0
Type ID Adv Rtr Seq Age Opt Cksum Len
Router *192.168.123.199 192.168.123.199 0x80000001 108 0x2 0x3c6b 48
ASExt-2 *0.0.0.0 192.168.123.199 0x80000001 739 0x2 0x55e9 36
ASExt-2 *1.2.3.4 192.168.123.199 0x80000001 739 0x2 0x2d03 36
Network *192.168.123.199 192.168.123.199 0x80000001 108 0x2 0x1950 32
Router 192.168.123.6 192.168.123.6 0x80000002 104 0x2 0x786c 36
----
Scenario 3: Local BGP.
Unusual behaviour to look for: Hold timer timing out, timer problems.
* Configure both peers as before to enable BGP and redistribute static
routes into BGP.
* Bring up the peering on both sides by starting XORP.
* Watch for the hold timer.
@empiric> show bgp peers detail
Peer 1: local 192.168.123.199/179 remote 192.168.123.6/179
Peer ID: 192.168.123.6
Peer State: ESTABLISHED
Admin State: START
Negotiated BGP Version: 4
Peer AS Number: 65024
Updates Received: 1, Updates Sent: 2
Messages Received: 3, Messages Sent: 4
Time since last received update: 12 seconds
Number of transitions to ESTABLISHED: 1
Time since last entering ESTABLISHED state: 16 seconds
Retry Interval: 120 seconds
Hold Time: 90 seconds, Keep Alive Time: 30 seconds
Configured Hold Time: 90 seconds, Configured Keep Alive Time: 30 seconds
Minimum AS Origination Interval: 0 seconds
Minimum Route Advertisement Interval: 0 seconds
* Keep your eye on the keepalive timer.
* Verify that the Windows peer learned a route from the test partner.
@empiric> show route table ipv4 unicast ebgp detail
Network 10.0.0.0/8
Nexthop := 192.168.123.1
Interface := bge0
Vif := bge0
Metric := 0
Protocol := ebgp
Admin distance := 20
Once satisfied that everything is in order proceed to the next stage.
7. Cut the release.
Use the Nullsoft Installer script in xorp/contrib/win32/installer.
See README in this directory for more detailed instructions.
You may need to edit the SRCDIR variable in the xorp.nsi file to point
to where you've built XORP, as well as the DLLDIR variable if you've
installed MSYS and MinGW separately or elsewhere.
* makensis xorp.nsi
This will take around 3 minutes depending on how busy your disk is --
everything gets compressed into one big SETUP.EXE.
Note that the installer does *not* strip symbols from the binaries.
* Test the installer by running it.
* Test the uninstaller from Windows' 'Add/Remove Programs' Control Panel
applet.
|