Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add information about talks, firewall, DHCP, DNS, and add Tiamat to IP allocations #27

Merged
merged 14 commits into from
Dec 17, 2023

Conversation

lavajuno
Copy link
Contributor

@lavajuno lavajuno commented Dec 1, 2023

  • Talks page is no longer empty
  • A bit more information about the firewall and nftables
  • DHCP server is now EOL :(
  • Trimmed unnecessary comments from DHCP server config
  • Tiamat is now on the 145 subnet listing
  • Updated unbound info and config

@lavajuno lavajuno changed the title Add information about talks, firewall, dhcp, DNS, and add Tiamat to IP allocations Add information about talks, firewall, DHCP, DNS, and add Tiamat to IP allocations Dec 1, 2023
@Alextopher
Copy link
Member

@lavajuno you might want to add this link to the tiamat docs https://terminator.cosi.clarkson.edu/

@lavajuno
Copy link
Contributor Author

lavajuno commented Dec 6, 2023

@lavajuno you might want to add this link to the tiamat docs https://terminator.cosi.clarkson.edu/

Definitely, I was just a bit hesitant to put it there because a lot of our network security documentation is private. I'm totally fine personally with Terminator being on there though. I'll poke around to see if it's an issue and if not I will commit it

@Alextopher
Copy link
Member

Alextopher commented Dec 6, 2023

It's listed in the zones repo, so the existence is at least partially public knowledge. It's not a bad idea to make it only accessible from COSI subnets.

Checking if the project is still active and receiving updates is always a good idea too.

There's no reason that service is insecure, unless if there's a security flaw. 😃

@Alextopher
Copy link
Member

Alextopher commented Dec 15, 2023

I'm in the (slow) process of writing a blog post / article about the append only log database paradigm I used for go-talks and some other projects. Here is what some of that could look like as part of the book.

Architecture

Instead of using a typical SQL database (like SQLite) talks uses an unconventional append-only log backed database. All events (creating talks, hiding talks, deleting talks) are timestamped and appended to the "database" as JSON.

{"time":"2022-09-22 00:07:36.748669812+00:00","type":"create","create":{"id":245,"name":"Chris","type":"lightning talk","description":"chris tries his best to explain why rust is awesome","week":"20220928"}}
{"time":"2022-09-22 00:25:59.471196491+00:00","type":"hide","hide":{"id":246}}
...
{"time":"2023-08-28 18:06:43.998097+00:00","type":"delete","delete":{"id":465}}

On program start this log file is read in and simulated, creating an in-memory representation (vaguely a Map id -> Talk). At this point almost any operation is fast.

Some advantage of the append-only log databases are:

  • Backups become trivial, copy the file.
  • Rollbacks are amazing, delete the last N lines.
  • This database is extensible. New event types can be added arbitrarily in a backwards compatible way.
  • If needed you can easily rewrite history (table changes, name changes, etc).
  • Human "readable", self documenting format.
  • There is no ORM and no need to write SQL.

The biggest cons to the paradigm:

  • There is no SQL. Queries must be programmed in the native language. This is probably a net-negative on overall accessibility.
  • go-talk's database state must be completely stored in memory (unlikely for us to ever exceeded 1 MB).
  • It's not particularly nice to store data other than plain text.
  • Unconventional. There is often criticism that this kind of approach is "not proven". Although go-talks has stored >1000 events without issue.

@lavajuno
Copy link
Contributor Author

Might be good to open a separate PR to add that on the Talks page, I'll probably be merging this one soon once I add more info about our current network setup.

@lavajuno
Copy link
Contributor Author

Switch info and topology is now up to date. It's not perfect but this PR is getting giant and it's better to have up-to-date information on Book. Merging it soon.

@lavajuno lavajuno merged commit a44918c into main Dec 17, 2023
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants