• 0 Posts
  • 72 Comments
Joined 1 year ago
cake
Cake day: April 13th, 2024

help-circle


  • that’s just how they are made.

    Can confirm, even the little training compiler we made at Uni for a subset of Java (Javali) had a backend and frontend.

    I can’t imagine trying to spit out machine code while parsing the input without an intermediary AST stage. It was complicated enough with the proper split.






  • As @shane@feddit.nl says, you can use the same public port for many different destination address, vendors may call it something like “port overloading”.

    I just responded to him on that point, while you were typing to me. I didn’t know this existed, thanks for pointing it out!

    More importantly, you can install a large pool of public address on your CGNAT. For instance if you install a /20 pool, work with a 100 users / public address multiplexing, you can have 400,000 users on that CGNAT. 100 users / address is a comfortable ratio that will not affect most users. 1000 users / address would be pushing it, but I’m sure some ISP will try it.

    Sure, yeah, I have seen a few threads on NANOG about the NAT address ratios people are using. I also think I remember someone saying he was forced to use 1000 and it kind of worked as long as he pulled the heaviest users out of the pool. But if I recall correctly he was also saying he made IPv6 available in parallel to reduce the CGNAT load.

    But the point that made this post ridiculous and an obvious joke is that it said “one address” :-)


  • A TCP session is a unique combination of client IP, client port, server IP, and server port. So you can use the same IP and port as long as the destination is a different IP or port.

    Fair point! I wasn’t aware of any NAT working that way, but they could exist, I agree. It does blow up the session table a bit, but we are taking about a hell of a large theoretical system here anyway, so it’s not impossible.

    This wouldn’t help going to popular destinations, since they have a lot of people going to the same IP address and port, but for many (most?) of them you probably have some sort of CDN servers in your data centers anyway.

    Actually we have recently seen a few content providers not upgrading their cache servers and instead preferring to fall back to our PNIs (which to be fair are plenty fast and have good enough latencies). On the other hand others made new ones available recently. Seems there isn’t a universal best strategy the industry is converging on at the moment.





  • This week I heard from a network group lead of a university hospital, that they have a similar issue. Some medical devices that come with control computers can’t be upgraded, because they were only certified for medical use with the specific software they came with.

    They just isolate those devices as much as possible on the network, not much else to do, when there is no official support and recertification for upgrading. And of course nobody wants to spend half a million on a new imaging device when the old one is still fine except for the OS of the control computer.

    Sounds like a shitty place to be, I pity those guys.

    That said, if you were talking about normal client computers then it’s inexcusable.


  • Pre-UEFI they were fighting over the boot sector, sure, but now that everything is more well defined, and every OS can read the FAT32 ESP? Never seen it…

    At worst the UEFI boot entry is replaced. There are some really shitty UEFI implementations out there which only want to load \efi\microsoft\boot\bootx64.efi or \efi\boot\bootx64.efi, or keep resetting you back to those.

    Assuming you were dumped into Windows suddenly, you can check if you have the necessary boot entries still with bcdedit and its firmware option

    bcdedit /enum firmware
    

    If you just have a broken order you can fix it with

    bcdedit /set {fwbootmgr} displayorder {<GUID>} /addfirst
    

    If you actually need a new entry for Linux it’s a bit more annyoing, you need to copy one of the windows entries, and then modify it.

    bcdedit /copy {<GUID1>} /d "Fedora"
    bcdedit /set {<GUID2>} path \EFI\FEDORA\SHIM.EFI
    bcdedit /set {fwbootmgr} displayorder {<GUID2>} /addfirst
    

    Where GUID1 is a suitable entry from windows, and GUID2 is the one you get back from the copy command as the identifier of the new entry. Of course you will have to adjust the description and the path according to your distro and where it puts its shim, or the grub efi, depending on which you’d like to start.

    Edit: Using DiskGenius might be a little more comfortable.