mirror of
https://github.com/weyne85/Proxmox-Docs.git
synced 2025-10-29 16:57:00 +00:00
Create Thunderbolt_Networking.md
This commit is contained in:
parent
b462b4286f
commit
8ccadea842
103
Thunderbolt_Networking.md
Normal file
103
Thunderbolt_Networking.md
Normal file
@ -0,0 +1,103 @@
|
||||
# Thunderbolt Networking
|
||||
|
||||
[this gist is part of this series](/76e94832927a89d977ea989da157e9dc)
|
||||
|
||||
#### NOTE FOR THIS TO BE RELIABLE ON NODE RESTARTS YOU WILL NEED PROXMOX KERNEL 6.2.16-14-pve OR HIGER
|
||||
This fixes issues i bugged with the thunderbolt / thunderbolt-net maintainers (i will take everyones thanks now, lol)
|
||||
|
||||
## Install LLDP - this is great to see what nodes can see which.
|
||||
- install lldpctl with `apt install lldpd`
|
||||
|
||||
## Load Kernel Modules
|
||||
- add `thunderbolt` and `thunderbolt-net` kernel modules (this must be done all nodes - yes i know it can sometimes work withoutm but the thuderbolt-net one has interesting behaviou' so do as i say - add both ;-)
|
||||
1. `nano /etc/modules` add modules at bottom of file, one on each line
|
||||
2. save using `x` then `y` then `enter`
|
||||
|
||||
## Prepare /etc/network/interfaces
|
||||
doing this means we don't have to give each thunderbolt a manual IPv6 addrees and that these addresses stay constant no matter what
|
||||
Add the following to each node using `nano /etc/network/interfaces`
|
||||
|
||||
If you see any sections called thunderbolt0 or thunderbol1 delete them at this point.
|
||||
|
||||
Now add the following (note we will set IP addresses in the UI):
|
||||
|
||||
```
|
||||
allow-hotplug en05
|
||||
iface en05 inet manual
|
||||
mtu 65520
|
||||
|
||||
iface en05 inet6 manual
|
||||
mtu 65520
|
||||
|
||||
allow-hotplug en06
|
||||
iface en06 inet manual
|
||||
mtu 65520
|
||||
|
||||
iface en06 inet6 manual
|
||||
mtu 65520
|
||||
|
||||
```
|
||||
|
||||
If you see any thunderbol sections delete them from the file before you save it.
|
||||
|
||||
## Rename Thunderbolt Connections
|
||||
This is needed as proxmox doesn't recognize the thunderbolt interface name. There are various methods to do this. This method was selected after trial and error because:
|
||||
- the thunderboltX naming is not fixed to a port (it seems to be based on sequence you plug the cables in)
|
||||
- the MAC address of the interfaces changes with most cable insertion and removale events
|
||||
|
||||
|
||||
1. use `udevadm monitor` command to find your device IDs when you insert and remove each TB4 cable. Yes you can use other ways to do this, i recommend this one as it is great way to understand what udev does - the command proved more useful to me than `the syslog` or `lspci command` for troublehsooting thunderbolt issues and behavious. In my case my two pci paths are `0000:00:0d.2`and `0000:00:0d.3` if you bought the same hardware this will be the same on all 3 units. Don't assume your PCI device paths will be the same as mine.
|
||||
|
||||
3. create a link file using `nano /etc/systemd/network/00-thunderbolt0.link` and enter the following content:
|
||||
|
||||
```
|
||||
[Match]
|
||||
Path=pci-0000:00:0d.2
|
||||
Driver=thunderbolt-net
|
||||
[Link]
|
||||
MACAddressPolicy=none
|
||||
Name=en05
|
||||
```
|
||||
3. create a second link file using `nano /etc/systemd/network/00-thunderbolt1.link` and enter the following content:
|
||||
```
|
||||
[Match]
|
||||
Path=pci-0000:00:0d.3
|
||||
Driver=thunderbolt-net
|
||||
[Link]
|
||||
MACAddressPolicy=none
|
||||
Name=en06
|
||||
```
|
||||
|
||||
## Set Interfaces to UP on reboots and cable insertions
|
||||
This section en sure that the interfaces will be brought up at boot or cable insertion with whatever settings are in /etc/network/interfaces - this shouldn't need to be done, it seems like a bug in the way thunderbolt networking is handled (i assume this is debian wide but haven't checked).
|
||||
|
||||
1. create a udev rule to detect for cable insertion using `nano /etc/udev/rules.d/10-tb-en.rules` with the following content:
|
||||
```
|
||||
ACTION=="move", SUBSYSTEM=="net", KERNEL=="en05", RUN+="/usr/local/bin/pve-en05.sh"
|
||||
ACTION=="move", SUBSYSTEM=="net", KERNEL=="en06", RUN+="/usr/local/bin/pve-en06.sh"
|
||||
```
|
||||
2. save the file
|
||||
|
||||
3. create the first script referenced above using `nano /usr/local/bin/pve-en05.sh` and with the follwing content:
|
||||
```
|
||||
#!/bin/bash
|
||||
|
||||
# this brings the renamed interface up and reprocesses any settings in /etc/network/interfaces for the renamed interface
|
||||
/usr/sbin/ifup en05
|
||||
```
|
||||
save the file and then
|
||||
|
||||
3. create the second script referenced above using `nano /usr/local/bin/pve-en06.sh` and with the follwing content:
|
||||
```
|
||||
#!/bin/bash
|
||||
|
||||
# this brings the renamed interface up and reprocesses any settings in /etc/network/interfaces for the renamed interface
|
||||
/usr/sbin/ifup en06
|
||||
```
|
||||
and save the file
|
||||
|
||||
4. make both scripts executable with `chmod +x /usr/local/bin/*.sh`
|
||||
5. Reboot (restarting networking, init 1 and init 3 are not good enough, so reboot)
|
||||
|
||||
## Enabling IP Connectivity
|
||||
[proceed to the next gist](/4c664734535da122f4ab2951b22b2085)
|
||||
Loading…
x
Reference in New Issue
Block a user