Talk:Network Environment
From BCCD 3.0
(Difference between revisions)
(→Getting a previous IP address) |
(→mdns notes) |
||
Line 136: | Line 136: | ||
= mdns notes = | = mdns notes = | ||
- | + | * Subscribers use multicast address 224.0.0.251, port 5353 (not 53) | |
- | + | ** Uses <code>.local</code> domain | |
- | + | * Hostnames | |
- | + | ** BCCD node could see if anyone else has registered bccd0.local and become head node if not | |
- | + | ** _bccd.local service could be registered with a list of all active BCCD clients ([http://www.dns-sd.org/ServiceTypes.html registration link]) | |
- | + | * Uses back-off protocol for conflict resolution |
Revision as of 02:40, 15 November 2019
Contents |
Stages
Stage descriptions
BCCD goes through the following network configuration stages:
- Live mode
- Initial boot:
- Try to obtain an IP address from a BCCD DHCP server
- If no BCCD DHCP servers are available, obtain an IP address from any DHCP server
- Head node: Upon user request, start DHCP server that will answer requests only from other BCCD systems
- Initial boot:
- Liberated mode
- Initial boot:
- Try to obtain an IP address from a BCCD DHCP server
- If no BCCD DHCP servers are available, obtain an IP address from any DHCP server
- Diskless boot: Upon user request, start DHCP server that will answer requests from diskless BCCD systems on only a given interface
- Initial boot:
Open questions:
- Can
bccd-reset-network
be rewritten to producesystemd.network
configuration files via templates for each stage? - How do we detect that a BCCD DHCP server has not responded to a client, and obtain an address from any DHCP server?
Answered questions:
- Should we continue using
bccd-identifier
or switch to using the standardvendor-class-identifier
that can be provided viasystemd.network
?vendor-class-identifier
confirmed to work.dhcpd.conf
snippet:
# dhclient on live BCCD systems will set this identifier class "bccd-nodes" { match if option vendor-class-identifier = "bccd-client"; } # Anything else, including PXE boot, will not class "pxelinux-nodes" { match if option vendor-class-identifier != "bccd-client"; }
- How do we have both a static (i.e. 192.168.3.1/24) and DHCP address on one interface, with a DHCP server listening on the static (192.168.3.1/24) address? Supply an
Address
stanza in addition to aNetwork
stanza with DHCP set
Stage configuration
Current testing files:
- Head node
- eth0
-
/etc/systemd/network/10-dhcp-eth0.network
-
- eth0
[Match] Name=eth0 [Network] DHCP=yes
- or having a DHCP and static address:
[Match] Name=eth0 [Network] DHCP=yes [Address] Address=192.168.3.1/24
-
/etc/systemd/network/20-static-eth1.network
-
[Match] Name=eth1 [Network] Address=192.168.3.1/24 DHCP=no
- Client node
-
/etc/systemd/network/10-dhcp-eth0.network
-
[Match] Name=eth0 [Network] DHCP=yes [DHCP] VendorClassIdentifier=bccd-client
DHCP configs:
- Head node should use
vendor-class-identifier
to identify clients but should still sendbccd-identifier = "bccd-server"
to clients - Head node can also match both
vendor-class-identifier
andbccd-identifier
:
class "bccd-nodes" { match if (option vendor-class-identifier = "bccd-client") or (option bccd-identifier = "bccd-client"); }
- BCCD clients should require
bccd-identifier
(from server) but sendvendor-class-identifier = "bccd-client"
, set indhclient.conf
(for stage detection) and systemd config file for actual network configuration
systemd notes
systemd commands
- Restart networking
-
systemctl restart systemd-networkd
- Networking status
-
networkctl
systemd tricks
- Move
/etc/network/interfaces
out of the way to ensure that regular network setup doesn't occur - Interface files need to have a numeric prefix and a
.network
suffix (i.e./etc/systemd/network/10-static-eth0.network
Troubleshooting
RTNETLINK answers: File exists
If you get an error like this:
RTNETLINK answers: File exists Failed to bring up eth1.
Try flushing that interface and replumbing it:
$ sudo ip addr flush dev eth1
Getting a previous IP address
If you run dhclient
and it just decides to pick a previous IP address (it might even do a DHCPREQUEST, but not a DHCPDISCOVER):
- Release the IP address:
dhclient -r
- Shutdown the interface:
ifconfig nic down
- Try doing DHCP again
mdns notes
- Subscribers use multicast address 224.0.0.251, port 5353 (not 53)
- Uses
.local
domain
- Uses
- Hostnames
- BCCD node could see if anyone else has registered bccd0.local and become head node if not
- _bccd.local service could be registered with a list of all active BCCD clients (registration link)
- Uses back-off protocol for conflict resolution