diff --git a/DHCP/vrf-relay/README.md b/DHCP/vrf-relay/README.md index 9633a46..d0c0ef2 100644 --- a/DHCP/vrf-relay/README.md +++ b/DHCP/vrf-relay/README.md @@ -2,7 +2,7 @@ This directory contains *netlab* topology file for a simple VRF-aware DHCP relaying scenario. -![DHCP relaying topology](dhcp-relay.png) +![DHCP relaying topology](vrf-dhcp-relay.png) After starting the lab, the *user* device should get DHCP-assigned IP address on its lab-facing interface. diff --git a/DHCP/vrf-relay/config/relay.cfg b/DHCP/vrf-relay/config/relay.cfg new file mode 100644 index 0000000..e0b143e --- /dev/null +++ b/DHCP/vrf-relay/config/relay.cfg @@ -0,0 +1,160 @@ +! +! Last configuration change at 11:15:29 UTC Sat Mar 11 2023 by vagrant +! +version 15.6 +service timestamps debug datetime msec +service timestamps log datetime msec +no service password-encryption +! +hostname relay +! +boot-start-marker +boot-end-marker +! +! +vrf definition MGMT + description Management interface + ! + address-family ipv4 + exit-address-family +! +vrf definition client + rd 65000:1 + route-target export 65000:1 + route-target import 65000:1 + ! + address-family ipv4 + exit-address-family +! +! +aaa new-model +! +! +aaa authentication login default local +aaa authorization exec default local +! +! +! +! +! +aaa session-id common +ethernet lmi ce +! +! +! +mmi polling-interval 60 +no mmi auto-configure +no mmi pvc +mmi snmp-timeout 180 +! +! +! +! +! +! +! +! +ip dhcp relay information option vpn +! +! +! +no ip domain lookup +ip domain name lab.local +ip host srv 10.0.0.1 10.1.0.2 +ip host user 10.0.0.3 172.16.0.3 +ip cef +no ipv6 cef +! +multilink bundle-name authenticated +! +! +! +! +username vagrant privilege 15 secret 5 $1$2Z2t$pXLik1OzWFWpn6CGRMkhS0 +! +redundancy +! +lldp run +! +! +! +! +! +! +! +! +! +! +! +! +! +! +interface Loopback0 + ip address 10.0.0.2 255.255.255.255 + ip ospf 1 area 0.0.0.0 +! +interface GigabitEthernet0/0 + description vagrant-management + vrf forwarding MGMT + ip address dhcp + duplex auto + speed auto + media-type rj45 + no lldp transmit + no lldp receive +! +interface GigabitEthernet0/1 + description relay -> srv + ip address 10.1.0.1 255.255.255.252 + ip ospf network point-to-point + ip ospf 1 area 0.0.0.0 + duplex auto + speed auto + media-type rj45 +! +interface GigabitEthernet0/2 + description relay -> user + vrf forwarding client + ip address 172.16.0.2 255.255.255.0 + ip helper-address global 10.0.0.1 + duplex auto + speed auto + media-type rj45 +! +router ospf 1 + router-id 10.0.0.2 +! +ip forward-protocol nd +! +! +no ip http server +no ip http secure-server +ip ssh version 2 +ip ssh pubkey-chain + username vagrant + key-hash ssh-rsa DD3BB82E850406E9ABFFA80AC0046ED6 +! +! +! +! +! +! +control-plane +! +! +line con 0 +line aux 0 +line vty 0 4 + transport input ssh +! +no scheduler allocate +event manager applet ENABLE-MGMT + event syslog pattern "SYS-5-RESTART" + action 0 cli command "enable" + action 1 cli command "conf t" + action 2 cli command "crypto key generate rsa modulus 2048" + action 3 cli command "interface GigabitEthernet0/0" + action 4 cli command "no shutdown" + action 5 cli command "exit" +! +end \ No newline at end of file diff --git a/DHCP/vrf-relay/config/srv.cfg b/DHCP/vrf-relay/config/srv.cfg new file mode 100644 index 0000000..d664309 --- /dev/null +++ b/DHCP/vrf-relay/config/srv.cfg @@ -0,0 +1,262 @@ +! +! Last configuration change at 11:15:35 UTC Sat Mar 11 2023 by vagrant +! +version 17.3 +no service timestamps debug uptime +service timestamps log datetime msec +service call-home +platform qfp utilization monitor load 80 +platform punt-keepalive disable-kernel-core +platform console serial +! +hostname srv +! +boot-start-marker +boot-end-marker +! +! +vrf definition MGMT + description Management interface + ! + address-family ipv4 + exit-address-family +! +! +aaa new-model +! +! +aaa authentication login default local +aaa authorization exec default local +! +! +! +! +! +! +aaa session-id common +! +! +! +! +! +! +! +ip host relay 10.0.0.2 10.1.0.1 172.16.0.2 +ip host user 10.0.0.3 172.16.0.3 +no ip domain lookup +ip domain name lab.local +ip dhcp excluded-address vrf client 172.16.0.2 +! +ip dhcp pool p_172.16.0.0 + vrf client + network 172.16.0.0 255.255.255.0 + default-router 172.16.0.2 +! +! +! +login on-success log +! +! +! +! +! +! +! +subscriber templating +! +! +! +! +! +! +multilink bundle-name authenticated +! +! +! +! +! +! +! +! +! +! +! +! +! +! +! +crypto pki trustpoint TP-self-signed-2388332298 + enrollment selfsigned + subject-name cn=IOS-Self-Signed-Certificate-2388332298 + revocation-check none + rsakeypair TP-self-signed-2388332298 +! +crypto pki trustpoint SLA-TrustPoint + enrollment pkcs12 + revocation-check crl +! +! +crypto pki certificate chain TP-self-signed-2388332298 + certificate self-signed 01 + 30820330 30820218 A0030201 02020101 300D0609 2A864886 F70D0101 05050030 + 31312F30 2D060355 04031326 494F532D 53656C66 2D536967 6E65642D 43657274 + 69666963 6174652D 32333838 33333232 3938301E 170D3232 31323131 31383131 + 32395A17 0D333231 32313031 38313132 395A3031 312F302D 06035504 03132649 + 4F532D53 656C662D 5369676E 65642D43 65727469 66696361 74652D32 33383833 + 33323239 38308201 22300D06 092A8648 86F70D01 01010500 0382010F 00308201 + 0A028201 0100980D 43644CA6 358F3C22 74120E8F B18ECCCD 9E87148B 22C0994F + 2FFBDE07 AC0B825D 83DDF117 2283FAAE 5E6FB62F ACEA99FF E9853778 59BC9350 + A1A2B51B B0C44E30 5535566C 93730F56 656C1321 AA3CC451 86803369 4225185B + F9EFB0E2 34D1BC17 3D739395 2B217ABB 8772E3BE 81F44773 62824F54 A4C5BE22 + 5EA1704E 824899FA C1C28872 B8D57F60 C4A6DB8D FFBCF90F A0212258 009D7F26 + F9AB96BE 3594E8DC 8232056C 51F9E9CE D91B5702 2E4C8004 B24D5230 EBC5EE01 + 3825A89A BC53C1A2 A11B7309 F0D53A6F FE3A43D3 A730CD1F 94C808E5 BB5F29C9 + A55E065C F622300B A0DBD9D2 C92D9CE7 C42F8D9A 1741587A 9F0BA761 9E7E6D1C + BE180A12 84870203 010001A3 53305130 0F060355 1D130101 FF040530 030101FF + 301F0603 551D2304 18301680 147D5FAC 2834A851 3507196D C37AF027 737D9678 + F6301D06 03551D0E 04160414 7D5FAC28 34A85135 07196DC3 7AF02773 7D9678F6 + 300D0609 2A864886 F70D0101 05050003 82010100 65163C5D 0C598A24 4051A80D + 306A71AB 5D45CF87 F50EEA97 77A2DD36 89A5A512 206B841C 4E2CB2DA 2DDB7658 + 8D05B68E FBCC498C 990A23EC 62BD3E5A D1E0DC7D 3347B22E 6D727B40 60BD74B3 + 4459F360 05063AAA 142F8BEA 6943B5B8 E46A0A0F F7502040 1B8D5435 F0BFC699 + 1F440D32 0F0973D4 D991673B 8BA34840 DA390170 3B52F51C DE1B0C48 09403D6B + 83CCE99A 0E1ADA52 12311FEF 712EE786 73FF5794 3490DC33 20ECFB6D 813E4858 + 33710382 495272FF 645AEA27 41B4EB7C 33FFF9A4 C85F1493 A0F8274F 9D52342B + 58607B84 1198D42D 3B2BD521 746885D1 5F9B4027 75080728 5EB65F3F FE013640 + 6E83210E D4622F26 635FF2CF 8B2D3F2D 214B2C27 + quit +crypto pki certificate chain SLA-TrustPoint + certificate ca 01 + 30820321 30820209 A0030201 02020101 300D0609 2A864886 F70D0101 0B050030 + 32310E30 0C060355 040A1305 43697363 6F312030 1E060355 04031317 43697363 + 6F204C69 63656E73 696E6720 526F6F74 20434130 1E170D31 33303533 30313934 + 3834375A 170D3338 30353330 31393438 34375A30 32310E30 0C060355 040A1305 + 43697363 6F312030 1E060355 04031317 43697363 6F204C69 63656E73 696E6720 + 526F6F74 20434130 82012230 0D06092A 864886F7 0D010101 05000382 010F0030 + 82010A02 82010100 A6BCBD96 131E05F7 145EA72C 2CD686E6 17222EA1 F1EFF64D + CBB4C798 212AA147 C655D8D7 9471380D 8711441E 1AAF071A 9CAE6388 8A38E520 + 1C394D78 462EF239 C659F715 B98C0A59 5BBB5CBD 0CFEBEA3 700A8BF7 D8F256EE + 4AA4E80D DB6FD1C9 60B1FD18 FFC69C96 6FA68957 A2617DE7 104FDC5F EA2956AC + 7390A3EB 2B5436AD C847A2C5 DAB553EB 69A9A535 58E9F3E3 C0BD23CF 58BD7188 + 68E69491 20F320E7 948E71D7 AE3BCC84 F10684C7 4BC8E00F 539BA42B 42C68BB7 + C7479096 B4CB2D62 EA2F505D C7B062A4 6811D95B E8250FC4 5D5D5FB8 8F27D191 + C55F0D76 61F9A4CD 3D992327 A8BB03BD 4E6D7069 7CBADF8B DF5F4368 95135E44 + DFC7C6CF 04DD7FD1 02030100 01A34230 40300E06 03551D0F 0101FF04 04030201 + 06300F06 03551D13 0101FF04 05300301 01FF301D 0603551D 0E041604 1449DC85 + 4B3D31E5 1B3E6A17 606AF333 3D3B4C73 E8300D06 092A8648 86F70D01 010B0500 + 03820101 00507F24 D3932A66 86025D9F E838AE5C 6D4DF6B0 49631C78 240DA905 + 604EDCDE FF4FED2B 77FC460E CD636FDB DD44681E 3A5673AB 9093D3B1 6C9E3D8B + D98987BF E40CBD9E 1AECA0C2 2189BB5C 8FA85686 CD98B646 5575B146 8DFC66A8 + 467A3DF4 4D565700 6ADF0F0D CF835015 3C04FF7C 21E878AC 11BA9CD2 55A9232C + 7CA7B7E6 C1AF74F6 152E99B7 B1FCF9BB E973DE7F 5BDDEB86 C71E3B49 1765308B + 5FB0DA06 B92AFE7F 494E8A9E 07B85737 F3A58BE1 1A48A229 C37C1E69 39F08678 + 80DDCD16 D6BACECA EEBC7CF9 8428787B 35202CDC 60E4616A B623CDBD 230E3AFB + 418616A9 4093E049 4D10AB75 27E86F73 932E35B5 8862FDAE 0275156F 719BB2F0 + D697DF7F 28 + quit +! +license udi pid CSR1000V sn 9VMY867693Z +diagnostic bootup level minimal +memory free low-watermark processor 71489 +! +! +spanning-tree extend system-id +! +username vagrant privilege 15 secret 9 $9$gc.VZxlGm7Tjqk$LSpooIf1rIVaxnEB5afqJ4ycc0jVnQ2fKhh9vGFdyBE +! +redundancy +! +! +! +! +! +! +lldp run +! +! +! +! +! +! +! +! +! +! +! +! +! +! +! +! +! +! +! +interface Loopback0 + ip address 10.0.0.1 255.255.255.255 + ip ospf 1 area 0.0.0.0 +! +interface GigabitEthernet1 + description vagrant-management + vrf forwarding MGMT + ip address dhcp client-id GigabitEthernet1 + negotiation auto + no lldp transmit + no lldp receive + no mop enabled + no mop sysid +! +interface GigabitEthernet2 + description srv -> relay + ip address 10.1.0.2 255.255.255.252 + ip ospf network point-to-point + ip ospf 1 area 0.0.0.0 + negotiation auto + no mop enabled + no mop sysid +! +router ospf 1 + router-id 10.0.0.1 +! +ip forward-protocol nd +ip http server +ip http authentication local +ip http secure-server +! +ip ssh version 2 +ip ssh pubkey-chain + username vagrant + key-hash ssh-rsa DD3BB82E850406E9ABFFA80AC0046ED6 +! +! +! +! +! +! +! +! +! +control-plane +! +! +! +! +! +! +line con 0 + stopbits 1 +line vty 0 4 + transport input ssh +! +call-home + ! If contact email address in call-home is configured as sch-smart-licensing@cisco.com + ! the email address configured in Cisco Smart License Portal will be used as contact email address to send SCH notifications. + contact-email-addr sch-smart-licensing@cisco.com + profile "CiscoTAC-1" + active + destination transport-method http +! +! +! +! +! +end \ No newline at end of file diff --git a/DHCP/vrf-relay/config/user.cfg b/DHCP/vrf-relay/config/user.cfg new file mode 100644 index 0000000..d88c205 --- /dev/null +++ b/DHCP/vrf-relay/config/user.cfg @@ -0,0 +1,136 @@ +! +! Last configuration change at 11:15:37 UTC Sat Mar 11 2023 by vagrant +! +version 15.6 +service timestamps debug datetime msec +service timestamps log datetime msec +no service password-encryption +! +hostname user +! +boot-start-marker +boot-end-marker +! +! +vrf definition MGMT + description Management interface + ! + address-family ipv4 + exit-address-family +! +! +aaa new-model +! +! +aaa authentication login default local +aaa authorization exec default local +! +! +! +! +! +aaa session-id common +ethernet lmi ce +! +! +! +mmi polling-interval 60 +no mmi auto-configure +no mmi pvc +mmi snmp-timeout 180 +! +! +! +! +! +! +! +! +! +! +! +no ip domain lookup +ip domain name lab.local +ip host srv 10.0.0.1 10.1.0.2 +ip host relay 10.0.0.2 10.1.0.1 172.16.0.2 +ip cef +no ipv6 cef +! +multilink bundle-name authenticated +! +! +! +! +username vagrant privilege 15 secret 5 $1$2Z2t$pXLik1OzWFWpn6CGRMkhS0 +! +redundancy +! +lldp run +! +! +! +! +! +! +! +! +! +! +! +! +! +! +interface Loopback0 + ip address 10.0.0.3 255.255.255.255 +! +interface GigabitEthernet0/0 + description vagrant-management + vrf forwarding MGMT + ip address dhcp + duplex auto + speed auto + media-type rj45 + no lldp transmit + no lldp receive +! +interface GigabitEthernet0/1 + description user -> relay + ip address dhcp + duplex auto + speed auto + media-type rj45 +! +ip forward-protocol nd +! +! +no ip http server +no ip http secure-server +ip ssh version 2 +ip ssh pubkey-chain + username vagrant + key-hash ssh-rsa DD3BB82E850406E9ABFFA80AC0046ED6 +! +! +! +! +! +! +control-plane +! +! +line con 0 +line aux 0 +line vty 0 4 + transport input ssh +! +no scheduler allocate +event manager applet ENABLE-MGMT + event syslog pattern "SYS-5-RESTART" + action 0 cli command "enable" + action 1 cli command "conf t" + action 2 cli command "crypto key generate rsa modulus 2048" + action 3 cli command "interface GigabitEthernet0/0" + action 4 cli command "no shutdown" + action 5 cli command "exit" +! +end \ No newline at end of file diff --git a/DHCP/vrf-relay/dhcp-relay.png b/DHCP/vrf-relay/dhcp-relay.png deleted file mode 100644 index be4afd0..0000000 Binary files a/DHCP/vrf-relay/dhcp-relay.png and /dev/null differ diff --git a/DHCP/vrf-relay/graph.dot b/DHCP/vrf-relay/graph.dot deleted file mode 100644 index 0271fb0..0000000 --- a/DHCP/vrf-relay/graph.dot +++ /dev/null @@ -1,21 +0,0 @@ -graph { - bgcolor="transparent" - node [shape=box, style="rounded,filled" fontname=Verdana] - edge [fontname=Verdana labelfontsize=10 labeldistance=1.5] - "srv" [ - label=10.0.0.1/32> - fillcolor="#ff9f01" - ] - "relay" [ - label=10.0.0.2/32> - fillcolor="#ff9f01" - ] - "user" [ - label=10.0.0.3/32> - fillcolor="#ff9f01" - ] - "relay" -- "srv" [ width=5 ] - "relay_2" [style=filled fillcolor="#ff8080" fontsize=11 label=<172.16.0.0/24
VRF client>] - "user" -- "relay_2" [ color="#800000" width=5 ] - "relay" -- "relay_2" [ color="#800000" width=5 ] -} diff --git a/DHCP/vrf-relay/outputs/format.yml b/DHCP/vrf-relay/outputs/format.yml new file mode 100644 index 0000000..8cb5416 --- /dev/null +++ b/DHCP/vrf-relay/outputs/format.yml @@ -0,0 +1,14 @@ +--- +addr: | + {{ " {0:20} {1:>18} {2}".format("Interface","IPv4 address","Description") }} + {{ "=" * 80 }} + {% for n,d in nodes.items() %} + {% if not loop.first %} + + {% endif %} + {{ n }} ({{ d.loopback.ipv4 }}) + {% for intf in d.interfaces %} + {{ "{0:20} {1:>18} {2}".format(intf.ifname,intf.ipv4,intf.name) }}{% if 'vrf' in intf + %} (VRF: {{ intf.vrf }}){% endif +%} + {% endfor %} + {% endfor %} diff --git a/DHCP/vrf-relay/topology.yml b/DHCP/vrf-relay/topology.yml index ac6ad35..6137616 100644 --- a/DHCP/vrf-relay/topology.yml +++ b/DHCP/vrf-relay/topology.yml @@ -1,8 +1,7 @@ message: | This topology sets up a simple network using VRF-aware DHCP relay - functionality. It includes a DHCP server (running on Cisco - IOSv), DHCP client (also on Cisco IOSv) and an intermediate - node. + functionality. It includes a DHCP server (running on Cisco IOSv), + DHCP client (also on Cisco IOSv) and an intermediate node. defaults.attributes: link.dhcp: @@ -39,3 +38,6 @@ links: dhcp.server: srv type: lan vrf: client + +defaults.outputs: + _include: [ outputs/format.yml ] diff --git a/DHCP/vrf-relay/vrf-dhcp-relay.png b/DHCP/vrf-relay/vrf-dhcp-relay.png index 326f91c..1d7ecc0 100644 Binary files a/DHCP/vrf-relay/vrf-dhcp-relay.png and b/DHCP/vrf-relay/vrf-dhcp-relay.png differ