Cisco ASR1001 Tungsten Fabric OpenStack VM: различия между версиями
Sirmax (обсуждение | вклад) |
Sirmax (обсуждение | вклад) |
||
| Строка 621: | Строка 621: | ||
</PRE> |
</PRE> |
||
После того как порт "прикреплен" к серверу, можно изучить его свойства |
После того как порт "прикреплен" к серверу, можно изучить его свойства |
||
| + | ====Подробности порта==== |
||
<PRE> |
<PRE> |
||
openstack port show sriov-vlan101-subnet01-port01 -c binding_profile -c binding_vif_details -f json |
openstack port show sriov-vlan101-subnet01-port01 -c binding_profile -c binding_vif_details -f json |
||
| Строка 652: | Строка 653: | ||
</PRE> |
</PRE> |
||
* <code>vf_num</code>: 62, номер виртуальной функции |
* <code>vf_num</code>: 62, номер виртуальной функции |
||
| − | * <code>pf_mac_address</code>: <code>00:e0:ed:da:5c:8e</code> |
+ | * <code>pf_mac_address</code>: <code>00:e0:ed:da:5c:8e</code> - это мак адрес корневого устройства, а не виртуальной функции |
| + | <PRE> |
||
| + | 7: enp6s0f1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9000 qdisc mq state UP mode DEFAULT group default qlen 1000 |
||
| + | link/ether 00:e0:ed:da:5c:8e brd ff:ff:ff:ff:ff:ff |
||
| + | </PRE> |
||
* <code>physical_network</code>: <code>sriovnet0</code> - имя физической сети, описанной в конфигурации нейтрона, куда привязаны сетевые карты |
* <code>physical_network</code>: <code>sriovnet0</code> - имя физической сети, описанной в конфигурации нейтрона, куда привязаны сетевые карты |
||
* <code>pci_slot</code>: <code>"0000:06:1f.5"</code> - Адрес на шине PCI, что там "сидит" можно увидеть <code>lspci -s 06:1f.5 -vv</code> и извлечь имя устройства <code>ls -l /sys/bus/pci/devices/0000:06:1f.5/net</code> |
* <code>pci_slot</code>: <code>"0000:06:1f.5"</code> - Адрес на шине PCI, что там "сидит" можно увидеть <code>lspci -s 06:1f.5 -vv</code> и извлечь имя устройства <code>ls -l /sys/bus/pci/devices/0000:06:1f.5/net</code> |
||
| Строка 659: | Строка 664: | ||
* <code>vlan</code>: 101 Номер Vlan |
* <code>vlan</code>: 101 Номер Vlan |
||
| + | ====<code>lspci -s</code>==== |
||
Зная PCI ID можно получить информацию об устройстве |
Зная PCI ID можно получить информацию об устройстве |
||
<PRE> |
<PRE> |
||
| Строка 703: | Строка 709: | ||
</PRE> |
</PRE> |
||
| + | ====<code> ip link show</code>==== |
||
А так же он настройках виртуальной функции |
А так же он настройках виртуальной функции |
||
<PRE> |
<PRE> |
||
Версия 12:52, 23 августа 2025
Предварительная настройка
Openstack в этом сетапе использует Tungsten Fabric в качестве Core Network Plugin в Neutron.
Подробнее: Настройка Cisco ASR1001X как Edge Router для Tungsten Fabric
Создание ВМ по шагам
Дано: только что развернутый опенстек, в качестве внешнего роутреа используется ASR1001X
Требуется: Задеплоить 2 VM с Floating IP
openstack image create
Пример загрузки образа в OpenStack
openstack \
image create \
--container-format bare \
--disk-format qcow2 \
--file ~/Downloads/noble-server-cloudimg-amd64.img \
Ubuntu-24.04
keypair create
Создать пару ключей, если нужно, приватную часть сохранить так как она больше нигде не сохраняется.
openstack keypair create mmazur
-----BEGIN RSA PRIVATE KEY----- MIIEowIBAAKCAQEAp4Yv+iyTCrHSMwbPahlGRdSGuuMtG+JPMYdeIhi/QDA4Wvyh Af/TlBUNkdiYJfOJp8R6xFCOv9wREs5VHlHHk3b3xcl/w8Vtz53G3jYSu/cRV0VY <skipped> 4vyy0i8k2fkcZooAtU4I60g9GJEWhJLiLaytXcv0XXSralhV6hihICX4SxSL5HCP DroCuM9W/AI4rK7gyfsMdqhF6yHri8lvVAYiQMHqmvrrS85WenuY -----END RSA PRIVATE KEY-----
Публичная сеть
openstack network create
openstack network createopenstack network create --external public
--external public- сеть внешняя, использует для Floating IPs и будет маршрутизироваться наружу, за пределы OpenStack
openstack subnet create
openstack subnet createСабнет определяет диапазон адресов
openstack subnet create \
--network public \
--subnet-range 10.170.6.0/24 \
--allocation-pool start=10.170.6.201,end=10.170.6.249 \
--dns-nameserver 8.8.8.8 \
--gateway none \
public-subnet
Приватная сеть
openstack network create internal
openstack network create internalopenstack network create internal
openstack subnet create
openstack subnet create openstack subnet create \
--subnet-range 192.168.77.0/24 \
--network internal \
--dns-nameserver 8.8.8.8 \
internal-subnet
+----------------------+--------------------------------------+
| Field | Value |
+----------------------+--------------------------------------+
| allocation_pools | 192.168.77.2-192.168.77.254 |
| cidr | 192.168.77.0/24 |
| created_at | 2025-08-18T14:00:35.578348 |
| description | None |
| dns_nameservers | 8.8.8.8 |
| dns_publish_fixed_ip | None |
| enable_dhcp | True |
| gateway_ip | 192.168.77.1 |
| host_routes | |
| id | 06488205-7fa6-416c-accb-d6cdc514ae13 |
| ip_version | 4 |
| ipv6_address_mode | None |
| ipv6_ra_mode | None |
| name | internal-subnet |
| network_id | 8546fd5c-f9bc-4521-8f46-f54f42a5491d |
| project_id | f39e087061ea48378c9c68348eebbb59 |
| revision_number | None |
| segment_id | None |
| service_types | None |
| subnetpool_id | None |
| tags | |
| updated_at | 2025-08-18T14:00:35.578348 |
+----------------------+--------------------------------------+
router
openstack router create
openstack router create openstack router create rtr01
set external-gateway
openstack router set --external-gateway public rtr01 Вывод пустой
openstack router add subnet
openstack router add subnet rtr01 internal-subnet
openstack security group
openstack security group create
openstack security group create icmp_ssh
openstack security group rule create
openstack security group rule create \
--remote-ip 0.0.0.0/0 \
--protocol icmp \
icmp_ssh
openstack security group rule create \
--remote-ip 0.0.0.0/0 \
--protocol tcp \
--dst-port 22 \
icmp_ssh
openstack server create (Cirros)
openstack server create \
--flavor m1.small \
--image Cirros-6.0.raw \
--network internal \
--security-group icmp_ssh \
test-01
openstack server create \
--flavor m1.small \
--image Cirros-6.0.raw \
--network internal \
--security-group icmp_ssh \
test-02
openstack floating
openstack floating ip create public
openstack server add floating ip
openstack server add floating ip test-01 10.170.6.202
SR-IOV
Простой случай - Access в сторонй VM
SR-IOV openstack network create
openstack \ network create \ --enable-port-security \ --provider-network-type vlan \ --provider-physical-network sriovnet0 \ --provider-segment 101 \ sriov-vlan101
--provider-network-type vlan???--provider-physical-network sriovnet0???--provider-segment 100???
SR-IOV openstack subnet create
openstack \ subnet create \ --network sriov-vlan101 \ --no-dhcp \ --ip-version 4 \ --gateway none \ --subnet-range 172.16.64.0/24 \ sriov-vlan101-subnet01
SR-IOV openstack port create
openstack \
port create \
--network sriov-vlan101 \
--enable-port-security \
--fixed-ip subnet=sriov-vlan101-subnet01,ip-address=172.16.64.3 \
--vnic-type direct \
sriov-vlan101-subnet01-port01
openstack server add port
openstack server add port ubuntu-test-01 sriov-vlan101-subnet01-port01
После того как порт "прикреплен" к серверу, можно изучить его свойства
Подробности порта
openstack port show sriov-vlan101-subnet01-port01 -c binding_profile -c binding_vif_details -f json
Ниже видно следующее
{
"binding_profile": {
"vf_num": 62,
"capabilities": [
"rx",
"tx",
"sg",
"tso",
"gso",
"gro",
"rxvlan",
"txvlan",
"txudptnl"
],
"pf_mac_address": "00:e0:ed:da:5c:8e",
"physical_network": "sriovnet0",
"pci_slot": "0000:06:1f.5",
"pci_vendor_info": "8086:10ed"
},
"binding_vif_details": {
"port_filter": true,
"vlan": "101"
}
}
vf_num: 62, номер виртуальной функцииpf_mac_address:00:e0:ed:da:5c:8e- это мак адрес корневого устройства, а не виртуальной функции
7: enp6s0f1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9000 qdisc mq state UP mode DEFAULT group default qlen 1000
link/ether 00:e0:ed:da:5c:8e brd ff:ff:ff:ff:ff:ff
physical_network:sriovnet0- имя физической сети, описанной в конфигурации нейтрона, куда привязаны сетевые картыpci_slot:"0000:06:1f.5"- Адрес на шине PCI, что там "сидит" можно увидетьlspci -s 06:1f.5 -vvи извлечь имя устройстваls -l /sys/bus/pci/devices/0000:06:1f.5/netpci_vendor_info:8086:10edВедор (то же самое покажет напримерlspci -s 06:1f.5 -mm -nnport_filter: truevlan: 101 Номер Vlan
lspci -s
Зная PCI ID можно получить информацию об устройстве
lspci -s 06:1f.5 -vv
06:1f.5 Ethernet controller: Intel Corporation 82599 Ethernet Controller Virtual Function (rev 01) Subsystem: Intel Corporation 82599 Ethernet Controller Virtual Function Control: I/O- Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx- Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx- Latency: 0 IOMMU group: 159 Region 0: Memory at d02f8000 (64-bit, prefetchable) [virtual] [size=16K] Region 3: Memory at d03f8000 (64-bit, prefetchable) [virtual] [size=16K] Capabilities: [70] MSI-X: Enable+ Count=3 Masked- Vector table: BAR=3 offset=00000000 PBA: BAR=3 offset=00002000 Capabilities: [a0] Express (v0) Endpoint, MSI 00 DevCap: MaxPayload 128 bytes, PhantFunc 0, Latency L0s <64ns, L1 <1us ExtTag- AttnBtn- AttnInd- PwrInd- RBE- FLReset- SlotPowerLimit 0.000W DevCtl: CorrErr- NonFatalErr- FatalErr- UnsupReq- RlxdOrd- ExtTag- PhantFunc- AuxPwr- NoSnoop- MaxPayload 128 bytes, MaxReadReq 128 bytes DevSta: CorrErr- NonFatalErr- FatalErr- UnsupReq- AuxPwr- TransPend- LnkCap: Port #0, Speed unknown, Width x0, ASPM not supported ClockPM- Surprise- LLActRep- BwNot- ASPMOptComp- LnkCtl: ASPM Disabled; RCB 64 bytes, Disabled- CommClk- ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt- LnkSta: Speed unknown (ok), Width x0 (ok) TrErr- Train- SlotClk- DLActive- BWMgmt- ABWMgmt- Capabilities: [100 v1] Advanced Error Reporting UESta: DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol- UEMsk: DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol- UESvrt: DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol- CESta: RxErr- BadTLP- BadDLLP- Rollover- Timeout- AdvNonFatalErr- CEMsk: RxErr- BadTLP- BadDLLP- Rollover- Timeout- AdvNonFatalErr- AERCap: First Error Pointer: 00, ECRCGenCap- ECRCGenEn- ECRCChkCap- ECRCChkEn- MultHdrRecCap- MultHdrRecEn- TLPPfxPres- HdrLogCap- HeaderLog: 00000000 00000000 00000000 00000000 Capabilities: [150 v1] Alternative Routing-ID Interpretation (ARI) ARICap: MFVC- ACS-, Next Function: 0 ARICtl: MFVC- ACS-, Function Group: 0 Kernel driver in use: ixgbevf Kernel modules: ixgbevf
ip link show
А так же он настройках виртуальной функции
enp6s0f1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9000 qdisc mq state UP mode DEFAULT group default qlen 1000
link/ether 00:e0:ed:da:5c:8e brd ff:ff:ff:ff:ff:ff
vf 0 link/ether 36:b8:ac:28:5a:83 brd ff:ff:ff:ff:ff:ff, spoof checking on, link-state auto, trust off, query_rss off
<skipped>
vf 62 link/ether 02:70:9d:70:5c:7c brd ff:ff:ff:ff:ff:ff, vlan 101, spoof checking on, link-state auto, trust off, query_rss off
[Fri Aug 22 17:16:58 2025] pci 0000:00:08.0: [10ec:8139] type 00 class 0x020000 conventional PCI endpoint [Fri Aug 22 17:16:58 2025] pci 0000:00:08.0: BAR 0 [io 0x0000-0x00ff] [Fri Aug 22 17:16:58 2025] pci 0000:00:08.0: BAR 1 [mem 0x00000000-0x000000ff] [Fri Aug 22 17:16:58 2025] pci 0000:00:08.0: ROM [mem 0x00000000-0x0007ffff pref] [Fri Aug 22 17:16:58 2025] pci 0000:00:08.0: ROM [mem 0x80000000-0x8007ffff pref]: assigned [Fri Aug 22 17:16:58 2025] pci 0000:00:08.0: BAR 0 [io 0x1000-0x10ff]: assigned [Fri Aug 22 17:16:58 2025] pci 0000:00:08.0: BAR 1 [mem 0x80080000-0x800800ff]: assigned [Fri Aug 22 17:16:58 2025] 8139cp 0000:00:08.0: enabling device (0000 -> 0003) [Fri Aug 22 17:16:58 2025] 8139cp 0000:00:08.0 eth0: RTL-8139C+ at 0x000000007f98c756, 02:46:69:0b:0e:7c, IRQ 11 [Fri Aug 22 17:16:58 2025] 8139cp 0000:00:08.0 ens8: renamed from eth0
openstack port set --disable-port-security --binding-profile trusted=true test-sriov01-sriov_port_1-manual