Difference between revisions of "Cisco ACI"
Helikopter (talk | contribs) |
Helikopter (talk | contribs) |
||
Line 100: | Line 100: | ||
SSH: '''apic#fallback\\username'''<br/> | SSH: '''apic#fallback\\username'''<br/> | ||
GUI: '''apic:fallback\\username'''<br/> | GUI: '''apic:fallback\\username'''<br/> | ||
+ | |||
+ | == Collecting Metrics - Example == | ||
+ | |||
+ | [[File:Cisco_ACI_Metrics.PNG|800px]] | ||
[[Category:Cisco]] | [[Category:Cisco]] |
Revision as of 14:34, 28 March 2022
Cisco aci är en av Ciscos senaste innovationer inom hur man bygger datacenter och är egentligen ett orkestreringsverktyg för Nexus serien men inte med IOS utan APIC mjukvara i grunden på switcharna. Det är ett software defined network där man från en kontroller kan man då styra sitt fabric och integrera andra system med det för att göra automation mot sitt datacenter nedan är några exempel på hur ACI fungerar. ACI står för Application Centric Infrastructure men man är inte tvingad att köra just applikationer utan det kan vara annat som exempel l2 eller l3 integrationer internt i fabricen eller göra integrationer externa också mot både nät och applikationsresurser.
Contents
Datacenter Design
Det finns garanterat annan dokumentation på design av hur man bör bygga datacenter baserat på olika leverantörer eller preferenser men här beskriver vi grundläggande hur designen ser ut med spine och leaf uppsättning och vad som är viktigt att tänka på när man bygger och integrerar sina system.
Spine
Spine kallas de Nexus switchar som sitter på toppen av de andra fabric switcharna för att tänket man skall ha är att alla Leaf switchar skall alltid kopplas till alla spines för att få redundans och funktion genom hela fabricen.
Leaf
Leaf är de switcharna som kopplas in till faktiska resurser så som upklinks till spines och downlinks mot antingen UCS enheter "bare metal" servrar alternativt annan nätverksutrustning om peering sker utanför ditt fabric eller om man kör med en annan leverantör för brandväggs leverans.
Apic
Stretch Fabric
Multi-POD
Mjukvara
Mjukvaran i aci är ett eget typ av operativ för just Apicen som har möjlighet att styra de olika fabric enheterna.
APIC
Nexus
Hårdvara
Hårvaran har utvecklats med tiden för att ha stöd för tyngre och större fabrics med mer resurser.
Generationer
Asic
Begränsningar
Integration
UCS
Vmware
Troubleshooting
On apic:
#apic acidiag verifyapic cat /data/data_admin/sam_exported.config cat /proc/net/bonding/bond0 #fabric show versions show switch show endpoints vlan 100 show vpc map show oob-mgmt show firmware upgrade status show stats granularity 15min leaf 101 interface ethernet 1/5 show epg EPG1 detail show interface bridge-domain BD1 detail show acllog permit l3 flow tenant Tenant1 vrf vrf1
On leaf:
show vlan extended iping -V Tenant1:vrf1 20.0.0.1 -S 10.0.0.1 show system internal epm vlan 100 show port-channel extended show endpoint vrf Tenant1:vrf1 show bgp vpnv4 unicast vrf TEST:L3VRF show bgp vpnv4 unicast 10.0.101.1/32 vrf TEST:L3VRF show interface | grep -E "Ethernet1|MTU" show isis dteps vrf overlay-1
APIC API
python
import requests
import os
username = os.environ.get('USERNAME')
password = os.environ.get('PASSWORD')
hostname = 'apic1.hackernet.se'
# Build payload with userid/password and create a session object
payload = {"aaaUser": {"attributes": {"name": username, "pwd" : password }}}
session = requests.session()
# Issue the login request. The cookie will be stored in session.cookies.
login_url = f'https://{hostname}/api/aaaLogin.json'
response = session.post(login_url, json=payload, verify=False)
# Use the session object to get ACI objects
if response.ok:
response = session.get(f'https://{hostname}/api/node/class/fvTenant.json', verify=False)
else:
print(f"HTTP Error {response.status_code}:{response.reason} occurred.")
curl
Login and save to COOKIE
curl -s -k -d "<aaaUser name=admin pwd=password/>" -c COOKIE -X POST https://10.0.0.11/api/mo/aaaLogin.xml
Get tenants xml
curl -s -k -X GET https://10.0.0.11/api/node/class/fvTenant.xml -b COOKIE | xmllint --format -
Post xml from file
curl -s -k -X POST -d @xml2aci.xml https://10.0.0.11/api/mo/uni.xml -b COOKIE
Default Authentication Domain != Local
Om man har t.ex. radius eller tacacs som default authentication realm men vill ändå kunna logga in med lokala konton så måste man ange det mha sitt username vid login.
API: apic#fallback\\username
SSH: apic#fallback\\username
GUI: apic:fallback\\username