Changing the IP Address on a Cisco Router With an IP Conflict

Monday, April 13, 2009

If you wish to bring up a Cisco router that has an IP address that conflicts with existing hosts on your network, there are a variety of ways to change it. We just happened to have a crossover network cable sitting on our work bench, and a GNU/Linux host on the LAN with an extra unused NIC in it. We didn't happen to have a convenient console cable, and thought, hey, why not? There are some examples of various GNU/Linux networking tweaks, as well as the mundane changing the IP address in IOS, so some part of this might help you.

The first step is to bind an address that doesn't conflict with the Cisco to the extra interface:

[root@sv-51 sysconfig]# cd network-scripts
[root@sv-51 network-scripts]# ls
ifcfg-eth0 ifdown-ipv6 ifup-ippp ifup-ppp
ifcfg-eth1 ifdown-isdn ifup-ipsec ifup-routes
ifcfg-lo ifdown-post ifup-ipv6 ifup-sit
ifcfg-lo.rpmsave ifdown-ppp ifup-ipx ifup-sl
ifdown ifdown-sit ifup-isdn ifup-wireless
ifdown-aliases ifdown-sl ifup-plip init.ipv6-global
ifdown-ippp ifup ifup-plusb network-functions
ifdown-ipsec ifup-aliases ifup-post network-functions-ipv6
[root@sv-51 network-scripts]# vi ifcfg-eth1
[root@sv-51 network-scripts]# cat ifcfg-eth1
DEVICE=eth1
ONBOOT=yes
BOOTPROTO=static
IPADDR=10.50.100.201
[root@sv-51 network-scripts]#
[root@sv-51 network-scripts]# /etc/init.d/network restart
Shutting down interface eth0: [ OK ]
Shutting down interface eth1: [ OK ]
Shutting down loopback interface: [ OK ]
Setting network parameters: [ OK ]
Bringing up loopback interface: [ OK ]
Bringing up interface eth0: [ OK ]
Bringing up interface eth1: [ OK ]
[root@sv-51 network-scripts]#
[root@sv-51 root]# ifconfig
eth0 Link encap:Ethernet HWaddr 00:60:08:11:BD:4A
inet addr:10.50.100.51 Bcast:10.50.100.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:13453 errors:0 dropped:0 overruns:0 frame:0
TX packets:6694 errors:0 dropped:0 overruns:0 carrier:0
collisions:354 txqueuelen:100
RX bytes:876741 (856.1 Kb) TX bytes:471045 (460.0 Kb)
Interrupt:12 Base address:0xe000
eth1 Link encap:Ethernet HWaddr 00:60:97:09:70:EF
inet addr:10.50.100.201 Bcast:10.255.255.255 Mask:255.0.0.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:79 errors:0 dropped:0 overruns:0 frame:0
TX packets:105 errors:0 dropped:0 overruns:0 carrier:4
collisions:0 txqueuelen:100
RX bytes:8864 (8.6 Kb) TX bytes:6343 (6.1 Kb)
Interrupt:11 Base address:0xd000
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:10 errors:0 dropped:0 overruns:0 frame:0
TX packets:10 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:660 (660.0 b) TX bytes:660 (660.0 b)
[root@sv-51 root]#

Add a route for both the existing conflicting address and the new address:

[root@sv-51 network-scripts]# route add 10.50.100.202 gw 10.50.100.201
[root@sv-51 network-scripts]# route add 10.50.100.200 gw 10.50.100.201
[root@sv-51 network-scripts]# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
10.50.100.200 10.50.100.201 255.255.255.255 UGH 0 0 0 eth1
10.50.100.202 10.50.100.201 255.255.255.255 UGH 0 0 0 eth1
10.50.100.0 * 255.255.255.0 U 0 0 0 eth0
10.0.0.0 * 255.0.0.0 U 0 0 0 eth1
127.0.0.0 * 255.0.0.0 U 0 0 0 lo
default 10.50.100.82 0.0.0.0 UG 0 0 0 eth0
[root@sv-51 network-scripts]#

Now, let's change the address on the Cisco Router:

[root@sv-51 network-scripts]# telnet 10.50.100.200
Trying 10.50.100.200...
Connected to 10.50.100.200.
Escape character is '^]'.
User Access Verification
Password:
router>en
Password:
router#show run
Building configuration...
Current configuration:
version 12.0
.
.
.
!
interface FastEthernet0
ip address 10.50.100.200 255.255.255.0
ip access-group 100 in
ip access-group 100 out
no ip directed-broadcast
!
.
.
.
router#
router#conf term
Enter configuration commands, one per line. End with CNTL/Z.
router(config)#int FastEthernet0
router(config-if)#ip address 10.50.100.202 255.255.255.0

The connection will lock up here, just reconnect to copy the running config to start and reload the router:

[root@sv-51 root]# telnet 10.50.100.202
Trying 10.50.100.202...
Connected to 10.50.100.202.
Escape character is '^]'.
User Access Verification
Password:
router>en
Password:
router#copy run start
Destination filename [startup-config]?
Building configuration...
router#
router#reload
Proceed with reload? [confirm]
Connection closed by foreign host.
[root@sv-51 root]#

Let's remove the Cisco from the extra NIC, plug it in to the LAN, remove the extra routes, and try to telnet in to the Cisco:

[root@sv-51 root]# /etc/init.d/network restart
Shutting down interface eth0: [ OK ]
Shutting down interface eth1: [ OK ]
Shutting down loopback interface: [ OK ]
Setting network parameters: [ OK ]
Bringing up loopback interface: [ OK ]
Bringing up interface eth0: [ OK ]
Bringing up interface eth1: [ OK ]
[root@sv-51 root]# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
10.50.100.0 * 255.255.255.0 U 0 0 0 eth0
10.0.0.0 * 255.0.0.0 U 0 0 0 eth1
127.0.0.0 * 255.0.0.0 U 0 0 0 lo
default 10.50.100.82 0.0.0.0 UG 0 0 0 eth0
[root@sv-51 root]# telnet 10.50.100.202
Trying 10.50.100.202...
Connected to 10.50.100.202.
Escape character is '^]'.
User Access Verification
Password:

Looks good.

Labels:

0 comments: