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 [2020/01/14 16:17] – 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 ==== | ||
| + | |||
| + | To create a new directory at the destination and back up your files there, add a trailing slash (/) at the end of the destination path. If you add the trailing slash to the source, then the source directory will not be created at the destination. Rsync only transfers its content in that case. | ||
| + | Kulcs használat: | ||
| + | |||
| + | rsync e "ssh -i $HOME/ | ||
| + | |||
| + | ==== Firewalld ==== | ||
| + | |||
| + | [[https:// | ||
| + | |||
| + | ==== Port tesztelés BASH-sel ==== | ||
| + | |||
| + | / | ||
| + | |||
| + | / | ||
| + | |||
| + | So you could use something like this: | ||
| + | |||
| + | xenon-lornix: | ||
| + | SSH-2.0-OpenSSH_6.2p2 Debian-6 | ||
| + | ^C pressed here | ||
| + | |||
| + | Szkriptbe: | ||
| + | |||
| + | (echo > / | ||
| + | timeout 1s bash -c "true <>/ | ||
| + | while [[ -n $((echo > / | ||
| + | |||
| + | nc-vel: | ||
| + | |||
| + | nc -zv hoszt port | ||
| + | |||
| + | python-nal: | ||
| + | |||
| + | python3 -c " | ||
| + | | ||
| + | curl-lel: | ||
| + | |||
| + | curl -v http:// | ||
| + | |||
| + | Windows PowerShell: | ||
| + | |||
| + | Test-NetConnection -ComputerName myserver.com -Port 443 | ||
| + | ==== NFS okosságok ==== | ||
| + | |||
| + | Portcheck ([[http:// | ||
| ==== SSH okosságok ==== | ==== SSH okosságok ==== | ||
| + | |||
| + | [[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 56: | Sor 150: | ||
| expect eof" | expect eof" | ||
| </ | </ | ||
| + | |||
| + | Az ssh parancs ne hajtsa végre a hibás RC kódú parancs utáni többi parancsot: set -e | ||
| === SFTP leírások === | === SFTP leírások === | ||
| Sor 78: | 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 84: | Sor 181: | ||
| ftp> bin | ftp> bin | ||
| ftp> put "| dd if=/ | ftp> put "| dd if=/ | ||
| + | |||
| + | === Hálózat felderítés === | ||
| + | |||
| + | nmap -sP hoszt/ | ||
| + | |||
| === Port scanning === | === Port scanning === | ||
| Sor 92: | Sor 194: | ||
| < | < | ||
| #!/bin/bash | #!/bin/bash | ||
| - | VLAN_SNIFF_TIME=5 | + | |
| + | 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=" | ||
| + | | ||
| + | 8) type_str=" | ||
| + | 0x1f) type_str=" | ||
| + | *) type_str=" | ||
| + | esac | ||
| + | |||
| + | echo -e " | ||
| + | done | ||
| + | </ | ||
| + | |||
| + | < | ||
| + | #!/bin/bash | ||
| SEARCH=${1-.} | SEARCH=${1-.} | ||
| + | VLAN_SNIFF_TIME=10 | ||
| #ETH | #ETH | ||
| echo " | echo " | ||
| Sor 101: | Sor 247: | ||
| SPEED=$(ethtool $ETH 2>/ | SPEED=$(ethtool $ETH 2>/ | ||
| MAC=$(ip addr | grep -A1 " | MAC=$(ip addr | grep -A1 " | ||
| - | VLANS=$(timeout $VLAN_SNIFF_TIME tcpdump -c 1000 -nni $ETH -e vlan 2>/ | + | VLANS=$(timeout ${VLAN_SNIFF_TIME} tcpdump -c 1000 -nni $ETH -e vlan 2>/ |
| SLAVES="" | SLAVES="" | ||
| - | if [[ $(grep -c " | + | |
| - | MAC=$(grep -A5 " | + | |
| - | fi | + | MAC=$(grep -A5 " |
| + | fi | ||
| + | done | ||
| if [[ $ETH =~ ^bond ]]; then | if [[ $ETH =~ ^bond ]]; then | ||
| - | SLAVES=$(awk '/ | + | SLAVES=$(awk '/ |
| fi | fi | ||
| echo " | echo " | ||
| Sor 133: | Sor 281: | ||
| === VLAN tag-ek az interfész csomagjain === | === VLAN tag-ek az interfész csomagjain === | ||
| - | tcpdump -c 1000 -nni bond0 -e vlan | grep -o 'vlan [0-9]*' | + | tcpdump -c 1000 -nni bond0 -e vlan | grep -o 'vlan [0-9]*' | sed ' |
| + | |||
| + | ==== 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 | ||
| + | </ | ||
| + | |||
| + | **/ | ||
| + | < | ||
| + | # | ||
| + | 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:// | ||