mweisel / cisco-nexus-ospf-p2p

This Vagrant project demonstrates a single area OSPF point-to-point network topology with three Cisco Nexus 9000v nodes.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Cisco Nexus 9000v OSPF p2p topology

This Vagrant project demonstrates a single area OSPF point-to-point network topology with three Cisco Nexus 9000v nodes.

Ingredients

Prerequisites

01. Add a DHCP reservation for each Cisco Nexus 9000v management interface.

Refer to Controlling Vagrant Box Management IP for more information.

$ virsh net-dumpxml vagrant-libvirt
<network ipv6='yes'>
  <name>vagrant-libvirt</name>
  <uuid>e9d9b270-22b2-46d9-a397-91ca3117430b</uuid>
  <forward mode='nat'>
    <nat>
      <port start='1024' end='65535'/>
    </nat>
  </forward>
  <bridge name='virbr1' stp='on' delay='0'/>
  <mac address='52:54:00:d9:f5:84'/>
  <ip address='192.168.121.1' netmask='255.255.255.0'>
    <dhcp>
      <range start='192.168.121.1' end='192.168.121.254'/>
      <host mac='52:54:00:4f:ae:45' ip='192.168.121.31'/>
      <host mac='52:54:00:4a:f1:ca' ip='192.168.121.32'/>
      <host mac='52:54:00:38:33:22' ip='192.168.121.33'/>
    </dhcp>
  </ip>
</network>

02. Set the SSH client configuration for the Cisco Nexus 9000v nodes.

Refer to Vagrant SSH Config Trick for more information.

$ tail -n +1 $HOME/.ssh/config $HOME/.ssh/vagrant.d/sshconfig
==> /home/marc/.ssh/config <==
Include vagrant.d/sshconfig

==> /home/marc/.ssh/vagrant.d/sshconfig <==
### Cisco Nexus 9000v

Host nx01
  HostName 192.168.121.31
  User vagrant
  Port 22
  UserKnownHostsFile /dev/null
  StrictHostKeyChecking no
  PasswordAuthentication no
  IdentityFile ~/.vagrant.d/insecure_private_key
  IdentitiesOnly yes
  LogLevel FATAL

Host nx02
  HostName 192.168.121.32
  User vagrant
  Port 22
  UserKnownHostsFile /dev/null
  StrictHostKeyChecking no
  PasswordAuthentication no
  IdentityFile ~/.vagrant.d/insecure_private_key
  IdentitiesOnly yes
  LogLevel FATAL

Host nx03
  HostName 192.168.121.33
  User vagrant
  Port 22
  UserKnownHostsFile /dev/null
  StrictHostKeyChecking no
  PasswordAuthentication no
  IdentityFile ~/.vagrant.d/insecure_private_key
  IdentitiesOnly yes
  LogLevel FATAL

Steps

01. Clone this GitHub repo and cd into the ansible subdirectory.

$ git clone https://github.com/mweisel/cisco-nexus-ospf-p2p
$ cd cisco-nexus-ospf-p2p/ansible

02. Create a Python virtual environment.

$ python3 -m venv .venv

03. Activate the Python virtual environment.

$ source .venv/bin/activate

04. Update the pip and setuptools Python packages.

$ pip install -U pip setuptools

05. Reactivate the Python virtual environment.

$ deactivate && source .venv/bin/activate

06. Install the ansible and paramiko Python packages.

$ pip install -r requirements.txt

07. Reactivate the Python virtual environment.

$ deactivate && source .venv/bin/activate

08. Instantiate the Cisco Nexus 9000v nodes.

$ vagrant up --no-parallel

09. Run the Ansible playbook to configure the Cisco Nexus 9000v nodes.

$ ansible-playbook set-config.yml

10. Verify the configuration.

$ ssh nx02
nx02# show ip ospf neighbors
nx02# show ip ospf route
nx02# run bash for lo in 1 3; do ping -c5 192.0.2.${lo}; done

License

This project is licensed under the MIT License - see the LICENSE file for details

About

This Vagrant project demonstrates a single area OSPF point-to-point network topology with three Cisco Nexus 9000v nodes.

License:MIT License