meta data for this page
Különbségek
A kiválasztott változat és az aktuális verzió közötti különbségek a következők.
| Előző változat mindkét oldalonElőző változatKövetkező változat | Előző változat | ||
| linux:network [2021/12/01 14:01] – [Port tesztelés BASH-sel] admin | linux:network [2026/05/18 18:02] (aktuális) – [Port tesztelés BASH-sel] admin | ||
|---|---|---|---|
| Sor 1: | Sor 1: | ||
| ====== Hálózati okosságok ====== | ====== Hálózati okosságok ====== | ||
| + | |||
| + | ==== File letöltő BASH-sel ==== | ||
| + | |||
| + | < | ||
| + | #!/bin/bash | ||
| + | # Usage: ./ | ||
| + | raw_download() { | ||
| + | wPROTO=" | ||
| + | af=" | ||
| + | wBASE=" | ||
| + | wSUB=" | ||
| + | |||
| + | HTTP_REQUEST=" | ||
| + | echo -en 'GET /'" | ||
| + | echo -en 'Host: '" | ||
| + | echo -en ' | ||
| + | })" | ||
| + | |||
| + | if [[ " | ||
| + | echo " | ||
| + | else | ||
| + | exec {NFD}<>"/ | ||
| + | echo " | ||
| + | while read -u " | ||
| + | echo " | ||
| + | done | ||
| + | exec {wFD}>& | ||
| + | fi | ||
| + | } | ||
| + | |||
| + | main() { | ||
| + | raw=" | ||
| + | echo " | ||
| + | } | ||
| + | |||
| + | main " | ||
| + | </ | ||
| ==== Rsync ==== | ==== Rsync ==== | ||
| Sor 27: | Sor 64: | ||
| (echo > / | (echo > / | ||
| + | timeout 1s bash -c "true <>/ | ||
| while [[ -n $((echo > / | while [[ -n $((echo > / | ||
| + | |||
| + | nc-vel: | ||
| + | |||
| + | nc -zv hoszt port | ||
| + | |||
| + | python-nal: | ||
| + | |||
| + | python3 -c " | ||
| | | ||
| + | curl-lel: | ||
| + | |||
| + | curl -v http:// | ||
| + | |||
| Windows PowerShell: | Windows PowerShell: | ||
| Sor 39: | Sor 89: | ||
| [[linux: | [[linux: | ||
| + | |||
| + | === SSH tunnelling === | ||
| + | |||
| + | HosztA:123 -> HosztB:22 -> HosztC:443 | ||
| + | |||
| + | ssh -L 123: | ||
| + | links https:// | ||
| === SSH-n másolás köztes állomáson át === | === SSH-n másolás köztes állomáson át === | ||
| Sor 117: | Sor 174: | ||
| [node1]# cat /dev/zero | ssh node2 "cat > / | [node1]# cat /dev/zero | ssh node2 "cat > / | ||
| + | [node1]# dd if=/ | ||
| FTP-vel (Unix/ | FTP-vel (Unix/ | ||
| Sor 133: | Sor 191: | ||
| === Ethernet és FC portok lekérdezése === | === Ethernet és FC portok lekérdezése === | ||
| + | |||
| + | < | ||
| + | #!/bin/bash | ||
| + | |||
| + | echo "HBA portok és látott eszközök:" | ||
| + | echo " | ||
| + | echo -e " | ||
| + | |||
| + | for host in / | ||
| + | port_wwn=$(cat " | ||
| + | port_state=$(cat " | ||
| + | hostnum=$(basename " | ||
| + | echo -e " | ||
| + | done | ||
| + | |||
| + | echo | ||
| + | echo " | ||
| + | echo " | ||
| + | echo -e " | ||
| + | |||
| + | for d in / | ||
| + | device=$(basename " | ||
| + | host=$(echo $device | cut -d: -f1) | ||
| + | target=$(echo $device | cut -d: -f2) | ||
| + | lun=$(echo $device | cut -d: -f3) | ||
| + | |||
| + | type=$(cat " | ||
| + | vendor=$(cat " | ||
| + | model=$(cat " | ||
| + | |||
| + | # SCSI type számból szöveges fordítás | ||
| + | case " | ||
| + | 0) type_str=" | ||
| + | 1) type_str=" | ||
| + | 3) type_str=" | ||
| + | 5) type_str=" | ||
| + | 8) type_str=" | ||
| + | 0x1f) type_str=" | ||
| + | *) type_str=" | ||
| + | esac | ||
| + | |||
| + | echo -e " | ||
| + | done | ||
| + | </ | ||
| < | < | ||
| Sor 180: | Sor 282: | ||
| tcpdump -c 1000 -nni bond0 -e vlan | grep -o 'vlan [0-9]*' | tcpdump -c 1000 -nni bond0 -e vlan | grep -o 'vlan [0-9]*' | ||
| + | |||
| + | ==== NPIV létrehozása Emulex FC kártyán RHEL 8.1-en ==== | ||
| + | |||
| + | === Emulex kártya azonosítása === | ||
| + | |||
| + | Először nézzük meg mi van a gépben: | ||
| + | |||
| + | # PCI eszközök listázása - Emulex kártyák | ||
| + | lspci | grep -i emulex | ||
| + | lspci | grep -i "fibre channel" | ||
| + | | ||
| + | # Részletesebb info | ||
| + | lspci -v | grep -A 10 -i "fibre channel" | ||
| + | |||
| + | A driver és modul azonosítása: | ||
| + | |||
| + | # lpfc driver = Emulex (LightPulse Fibre Channel) | ||
| + | lsmod | grep lpfc | ||
| + | | ||
| + | # Kártya adatai sysfs-ből | ||
| + | ls / | ||
| + | cat / | ||
| + | cat / | ||
| + | |||
| + | |||
| + | A tényleges FC portok és WWN-ek: | ||
| + | |||
| + | # Melyik host melyik port | ||
| + | cat / | ||
| + | cat / | ||
| + | cat / | ||
| + | cat / | ||
| + | cat / | ||
| + | |||
| + | |||
| + | === NPIV támogatás ellenőrzése === | ||
| + | |||
| + | |||
| + | # Megmutatja hány vport hozható létre | ||
| + | cat / | ||
| + | cat / | ||
| + | | ||
| + | # Ha 0-t vagy hibát ad, a kártya/ | ||
| + | |||
| + | === NPIV vport létrehozása === | ||
| + | |||
| + | |||
| + | == Egyszer (nem perzisztens, | ||
| + | |||
| + | # Manuálisan - a kernel generál WWN-t | ||
| + | echo " | ||
| + | / | ||
| + | | ||
| + | # Vagy egyszerűbben, | ||
| + | echo " | ||
| + | | ||
| + | #### Ajánlott: `lpfc` driver + `systool` / `udevadm` helyett → **`udev` rule + script** | ||
| + | |||
| + | == Perzisztens megoldás – systemd service == | ||
| + | |||
| + | Mivel az RHEL 8 nem tartalmaz beépített vport manager-t, a legtisztább megoldás egy systemd service: | ||
| + | |||
| + | **/ | ||
| + | < | ||
| + | # itt definiálod a vportokat: | ||
| + | # format: fizikai_host | ||
| + | host0 0x10000090fae12345 | ||
| + | host1 0x10000090fae16789 | ||
| + | </ | ||
| + | |||
| + | **/ | ||
| + | < | ||
| + | #!/bin/bash | ||
| + | CONF="/ | ||
| + | |||
| + | while read -r host wwpn wwnn; do | ||
| + | [[ " | ||
| + | [[ -z " | ||
| + | |||
| + | VPORT_PATH="/ | ||
| + | |||
| + | if [ ! -f " | ||
| + | echo "WARN: ${host} nem létezik, kihagyva" | ||
| + | continue | ||
| + | fi | ||
| + | |||
| + | # Ellenőrzés: | ||
| + | EXISTING=$(ls / | ||
| + | / | ||
| + | |||
| + | if [ " | ||
| + | echo "INFO: ${wwpn} már létezik, kihagyva" | ||
| + | continue | ||
| + | fi | ||
| + | |||
| + | echo " | ||
| + | echo "OK: vport létrehozva ${host} -> ${wwpn}" | ||
| + | |||
| + | done < " | ||
| + | </ | ||
| + | |||
| + | chmod +x / | ||
| + | |||
| + | **/ | ||
| + | < | ||
| + | [Unit] | ||
| + | Description=FC NPIV vport creation | ||
| + | After=network.target | ||
| + | # Fontos: a storage stack indulása után fusson | ||
| + | After=multipathd.service | ||
| + | Wants=multipathd.service | ||
| + | |||
| + | [Service] | ||
| + | Type=oneshot | ||
| + | ExecStart=/ | ||
| + | RemainAfterExit=yes | ||
| + | |||
| + | [Install] | ||
| + | WantedBy=multi-user.target | ||
| + | </ | ||
| + | |||
| + | systemctl daemon-reload | ||
| + | systemctl enable fc-vports.service | ||
| + | systemctl start fc-vports.service | ||
| + | systemctl status fc-vports.service | ||
| + | |||
| + | === Ellenőrzés === | ||
| + | |||
| + | |||
| + | # Létrejöttek-e a vportok? | ||
| + | ls / | ||
| + | | ||
| + | # Vport részletek | ||
| + | cat / | ||
| + | cat / | ||
| + | |||
| + | # Vagy összefoglalóan | ||
| + | for v in / | ||
| + | echo "=== $(basename $v) ===" | ||
| + | echo "WWPN: $(cat $v/ | ||
| + | echo " | ||
| + | done | ||
| + | |||
| + | === WWN-ek kitalálása (ha nem adták meg) === | ||
| + | |||
| + | |||
| + | Ha a storage adminok még nem adtak WWPN-eket, generálhatsz érvényes értéket: | ||
| + | |||
| + | # Emulex OUI: 0010:9B (lpfc driver convention) | ||
| + | # Egyszerű megközelítés: | ||
| + | BASE=$(cat / | ||
| + | echo "Alap WWPN: $BASE" | ||
| + | # pl. ha 0x10000090fae00001 -> vport lehet 0x10000090fae00002 | ||
| + | |||
| + | De ezt egyeztesd a **storage adminokkal / SAN zoning** felelőssel, | ||
| + | |||
| + | **Összefoglalva a sorrend:** | ||
| + | - `lspci` + `cat / | ||
| + | - `max_npiv_vports` ellenőrzés → támogatja-e | ||
| + | - WWN-ek egyeztetése storage adminnal | ||
| + | - Script + systemd service → perzisztens vportok | ||
| + | - Storage oldalon zoning + host mapping beállítás | ||
| + | |||
| [[http:// | [[http:// | ||
| [[https:// | [[https:// | ||