Roy
Content Type
Profiles
Articles
Updates
Projects
Twitch
Website Bugs/Suggestions
Guides
Newsletters
About GFL
Knowledge Base
Expenses/Hardware
Server Comparisons
Routing
Form Bugs
Community Representative Applications
Development Request
Forums
Events
Posts posted by Roy
-
-
-
1 hour ago, positive said:
Keep it simple, keep it balanced. No need to pack the server with too many jobs.
- The ATM Interest is OP. 15% Positive Interest every 15 minutes is just insanely high and making $$$ is just too easy and too quick. Narrow it down, 2-5% every 20+ minutes should do (after an economic reset of course).
- Reemphasizing @TheJitFace - Keep the amount of useless addons to the absolute minimum. The first time server load for the new player is long enough as it is!
- There's no reason not to make it a Purge server. Purge is DarkRP just less boring and people naturally gravitate towards it as there are significantly less purge servers than darkrp.
- My first point leads me to this; make sure that all ways to make money are 100% working, 100% balanced, not too nerfed and too OP. People claim that bitminers are just not worth it, and that oil doesn't really work. Printers are cool.
- Most importantly once the server is all set - an ACTIVE admin team. Not just afk, but active. You NEED an effective population base and an admin team is specifically that. Especially in the short run after a server launch.
These are my two cents for now.
The only possible problem I see with making it a Purge server is I feel the name isn't as popular nowadays. We'd definitely want to keep it in the "DarkRP" category within the server browser since that's the #1 category in GMod though (at the very top). When we released the Purge server in 2014, I feel the movies were more new/popular/(hyped?) since the first and second ones were just released within that past year IIRC. I just want to ensure we're appealing to a majority of the player base at first because getting new players is super important to start off.
I don't think it'll hurt to try at this point though and who knows, maybe it'll grab a lot of player's attention.
-
- Fixed overflow in latest donations list on "GFLV3" theme.
-
There's a Source Engine bug where if a map doesn't get changed after a while, the server will eventually become laggy/glitchy/(jittery?). This happens in every Source Engine game I know of. I noticed DarkRP is having this issue right now when playing on the server.
I'd suggest making an addon that creates a timer that executes daily and restarts the map if the player count is less than one. Now, if this timer executes and the player count is less than one two - three times in a row (so it doesn't restart), I'd suggest forcing it to restart and giving warnings beforehand. This shouldn't be too hard to make and I may even be able to make it in the next couple of weeks when I have the time.
I haven't programmed in lua in a while, but something like the following should work excluding the warnings (I wrote it up pretty quickly and didn't test, so I apologize if it doesn't work right off the bat), but I'd suggest creating timers for warnings as well (e.g. 30 seconds before a forceful restart).
--[[ This should be placed inside of autorun/server since it's meant to be a server-side script. Please put it in addons/ as well for organization purposes. This was written real quick by Roy (Christian Deacon) and may contain errors and is not tested. But should work if no syntax errors. ]]-- -- Count that'll be incremented. local count = 0 -- Maximum count before forcefully restarting map local maxcount = 3 -- Create timer that executes every 86400 seconds (seconds in a day) repeatedly. timer.Create("MapRestart", 86400, 0, function() -- Get player count. local players -- Loop through all players and add onto player count. for _, v in ipairs(player.GetAll()) do -- Ensure player isn't bot, if so, continue. if v:IsBot() then goto ignore -- Apparently using "continue" doesn't work great according to -> https://wiki.facepunch.com/gmod/Specific_Operators end -- Increment player count. players = players + 1 ::ignore:: end -- Check if players is below 0 (server is empty) or if we've went above the maximum configured count. if players < 1 or count >= maxcount then -- Get map name. local map = game.GetMap() -- In case the script isn't reloaded on map change, set count to 0. I believe it should be reloaded on map change though. count = 0 -- Restart map. RunConsoleCommand("changelevel", map) else -- Increment count. count = count + 1 end end)
I hope the above helps!
-
Hey everyone,
I just wanted to spark some discussion on ideas for our DarkRP server. I noticed there weren't many suggestions. I'm hoping to gather as many responses from players who've played on other RP servers in the past (preferably under the DarkRP/general RP category since that's our server's game mode), but anybody is welcome to suggest ideas!
These ideas can come from things you've seen on other RP servers and new ideas are of course, always welcomed, but please do not attack any non-GFL RP servers in this post. What I'm looking for specifically with these suggestions are:
- Ideas you'd really like to see implemented on the server.
- Ideas you think many other players would enjoy which would result in more players staying on the server (if these ideas turn into features, they could be added to the host name as well to bring in new players who see it in the server browser).
With that said, if these ideas came from other servers, what could we potentially do better with the idea implementation that would put our server preference over other servers regarding this idea/feature?
I'm also a big supporter of our staff going onto other servers and seeing what they do and seeing if we could implement it in a way that's more attractive or the implementation can be better. In the end, we just need to stand out from other servers and offer things that other servers don't along with things other servers provide, but implemented in a better way. I'd like to find a balance in implementing features many other servers have (but perhaps try to implement them in ways that players would prefer us over other RP servers) and also having our own unique features.
If you have a lot to write, I'd highly recommend creating your own thread here!
I apologize if I didn't word things great in this post as well. I'm being less formal in this post because it's meant to spark discussion, but I do believe I got the point across.
Let me know what you think!
-
This is definitely one of the more popular tools I remember from RP servers back when I played more often a few years ago. This will definitely be a +1 from me as long as we can configure it so there aren't any exploits and it doesn't impact performance negatively.
-
I noticed the server has its maximum players set to 127. I believe it falling under an odd number is somewhat strange along with it being very close to the maximum player count (128) in GMod.
I believe it'd be better to start off with something smaller like 80 or 100 until the server started populating and going above 100 players.
What do you guys think about this?
-
Hey everyone,
I'm going to be posting individual suggestions for the DarkRP server in this section starting off by talking about the server's host name. I've noticed the DarkRP launch wasn't successful which is unfortunate because I feel the server has a lot of potential, but a lot more work needs to go into it and I still believe we can turn things around with the current management.
All of the disadvantages we had the last time we launched either a Purge or DarkRP server including mediocre hardware and A2S_INFO caching (since a majority of the top DarkRP servers use this method) are gone/irrelevant now. Therefore, I feel there aren't any more excuses besides the game play, dedication, and consistency themselves which are all manageable thankfully. I know this is a lot easier said than done, but given we did have a successful Purge server launch many years ago (in 2014) where we got to #4 in the world and also have a successful CWRP server now, I really feel we should be able to accomplish populating a standard DarkRP server one way or another. I also understand a lot of things are different compared to 2014 when I was working a lot on the Purge server itself along with others such as @X2D and @nick027nd. Things are a lot more competitive now which is truthfully why I believe we need a dedicated developer who can maintain the server's technical-aspect (I really wish I could do this, but there's just too much on my plate right now regarding the Anycast network, Squad/Europe expansions, and life beating me up right now). I don't believe we should have developers working on a per-project basis on this server and instead, we should have somebody that'll constantly work to implement new features (and improve existing), optimize code, and more. Hell, I believe we should have at least a couple developers, but finding these developers is difficult sadly (we can't even find one as of right now).
Anyways, I want to first start off with the host name since I feel that's the easiest to tackle right now and doesn't require going into major detail like some of my future suggestions will be. I feel the host name is way too bland. As of right now, it's just "[GFLClan.com] DarkRP". Instead, I feel like it should be something like "[GFLClan.com] DarkRP | Feature 1 | Feature 2 | Feature 3 ...". I believe each feature should be something that makes the server stand out from others and also something that catches player's attention separately. I wouldn't even mind moving the "[GFLClan.com]" part to the end if it doesn't work out just so we can try to give more attention to the server's features. We could also mess around with special characters and see if we can find something that can replace "|" that would be better on the eyes or grab the player's attention more.
The host name is pretty important in my opinion because this is going to be the first thing the player sees before joining the server from the server browser.
Do you guys agree with this suggestion and if so, do you have anything to add that may improve it?
-
We now have a Squad server license! @Jekyll will be working to setup the server itself and so on.
Thanks.
-
Just now, Aurora said:
While I concede that referring to it as Anycast is a bit of a misnomer, is much easier for others to understand that I'm bitching about the same old stuff (tm) if I just say anycast
Understandable haha
-
Just now, Aurora said:
I hate everything about Anycast.
Thanks.
Blame Linux network namespaces! It has nothing to do with the Anycast network itself
-
Hey everyone,
I just wanted to make a knowledge base article regarding an issue one of our game servers (GMod TTT #3) ran into last night. This is related to our Anycast setup and IPIP tunnels on our game server machine. I'm hoping this educates some people and perhaps I can refer back to it again if we run into the same issue.
How Our Setup Works
I'd like to briefly go through how our setup works at the moment. As some of you know, we operate an Anycast network. When a client sends traffic to our Anycast network, it routes them to the closest POP based off of the AS-PATH and/or BGP hop count. From here, Compressor (the packet processing software running on our current POPs created by @Dreae) forwards traffic to our game server machines via IPIP based off of the forwarding rule information for the specific IP address (e.g. Anycast IP). IPIP is a protocol in Linux networking that basically adds an outer IP header to a standard packet and encapsulates the standard packet. For more information on IPIP, please read here.
On our game server machines, we need to setup IPIP tunnels/endpoints that our game servers bind to. The IPIP tunnel has a remote IP which represents the Anycast IP address typically and also a single /32 assigned to the interface itself that represents the internal IP used for NAT. Since we utilize Docker containers for our game servers, we need to add the IPIP tunnel to the host and then set the link's network namespace to the Docker container's network namespace. We use Docker Gen to automatically do this when a Docker container (game server) starts up and our configuration can be found here.
Our Issue And Fix
Last night, each time GMod TTT #3 started up, no IPIP tunnel was attached. At first, I thought it was a standard bug we had where we just needed to restart the server a few times. However, after trying to a few minutes, it came pretty obvious there was another issue. From here, I tried adding the IPIP tunnel manually by doing ip tunnel add ipip01 mode ipip remote 92.119.148.99. This resulted in the following error:
add tunnel "tunl0" failed: File exists
This typically means a tunnel with the same remote IP exists already. However, there were no tunnels that we could see at the time. I tried a different remote IP and it worked as well which proves somewhere there was an existing tunnel with that remote IP.
At first, I thought maybe it was in another Docker container somehow (e.g. we configured another server on the same machine to use the same remote IP), so I outputted everything from the ip netns list command into a file (since each Docker container is in its own network namespace), performed a loop, and did ip netns exec <id> ip a and ip netns exec <id> ip tunnel list to see if I could find any. I had no luck with this unfortunately.
I then started reading the manual page for ip netns (e.g. man ip netns) and found the following information:
QuoteIt is possible to lose the physical device when it was moved to netns and then this netns was deleted with a running
process:$ ip netns add net0
$ ip link set dev eth0 netns net0
$ ip netns exec net0 SOME_PROCESS_IN_BACKGROUND
$ ip netns del net0and eth0 will appear in the default netns only after SOME_PROCESS_IN_BACKGROUND will exit or will be killed. To prevent
this the processes running in net0 should be killed before deleting the netns:$ ip netns pids net0 | xargs kill
$ ip netns del net0I've seen this before when we were running machines on mainline kernels. What would happen is, the network namespace would be removed while the game server was still attached to the IPIP tunnel within the network namespace. We'd simply just kill the game server process (which was usually done automatically by Docker) and then check the host machine for the IPIP tunnel via ip link list and then delete it via ip link del <name>. However, this was ALSO not the case (it was one of the first things I checked since it has happened before).
This had me really confused and I actually tried making a thread on ServerFault here. I wasn't expecting this thread to get any replies since IPIP tunnels and these kind of issues have little to no documentation (and as expected, it didn't receive any replies), so I continued investigating a bit later after doing some things.
I knew the tunnel was somewhere, but I didn't know where. I tried looking at the Linux kernel source code (specifically IPIP), but couldn't find anything relevant. I was beginning to think we'd have to restart the machine, but I didn't want to do that because GS14 (the machine) has an issue where if we reboot it via the standard reboot command on Linux, it won't come back up. This is due to a setting not properly configured in the BIOS and we still need to schedule a time to go in it and change it (this requires downtime). I really wanted to avoid this if possible because we'd have to restart all the game servers (plus additional downtime while waiting for the machine to come back online) and contact our hosting provider since I'm sure we'd need a hard reboot via KVM. However, I wasn't sure what else we could do, it seemed like it was a Linux bug (I still think it is as you'll see below).
After trying to search more, I found this thread. Now this was pretty overwhelming to me at first because I didn't understand how Linux network namespaces worked on a low-level (it's something I'm learning though!). So at first, I gathered Linux network namespaces are technically mounts on the file system. Now, I didn't go in-depth on this because I just wanted to find a solution as soon as possible, so I read everything fast (I still plan on reading everything in-depth later on because I'm interested in this) and I won't be going into the details here since that's out of this KB's scope.
Anyways, I ended up running the following Bash script:
find /proc/ -mindepth 1 -maxdepth 1 -name '[1-9]*' | while read -r procpid; do find $procpid/fd -mindepth 1 | while read -r procfd; do if [ "$(stat -f -c %T $procfd)" = nsfs ]; then stat -L -c '%20i %n' $procfd fi done done 2>/dev/null
This basically outputs all the network namespaces along with its inode ID and path on the file system (which is in /proc/x/fd/y). I put all the output from this command into a file called namespaces.txt. From here, I ran the following command:
while read -r inode reference; do if nsenter --net="$reference" ip -br address show 2>/dev/null; then printf 'end of network %d\n\n' $inode fi done < namespaces.txt
I didn't bother removing any duplicates by performing sort -k 1n | uniq -w 20 because I just wanted to search EVERYTHING. This outputted all the interfaces in each network namespace on the file system. From here, I was able to locate a tunnel inside a namespace with the GMod TTT #3 internal IP. Bingo! From here, I found the inode ID and looked it up in the namespaces.txt file which included the path on the file system.
I read the second reply which stated how to execute commands in a network namespace based off of the file system path. So I used the following command:
nsenter --net=/proc/x/fd/y ip link list
Where x and y were integers representing the process ID and file descriptor ID I got from the namespaces.txt file based off of the inode ID. From here, I saw the IP tunnel with GMod TTT #3's remote IP (92.119.148.99) and the interface name. I simply executed the same command, but ran ip link del <interface name> to remove the IPIP tunnel. So for example:
nsenter --net=/proc/x/fd/y ip link del <interface name>
This resolved the issue and the server was able to startup normally again
This was definitely one of the stranger issues I've seen with Linux networking namespaces so far and I believe it was some sort of Linux bug because it should have listed this namespace in the standard list obtained by the ip netns list command (in which, it didn't as that was one of the first things I tried).
To conclude, I hope this helps others resolve this issue in the future if I'm not available and we're having a very similar issue. I also hope others outside the community running into the same issue find this because like I said, there is little to no documentation on the Internet regarding these issues.
Thank you!
-
-
Hey everyone!
I just wanted to provide a small update on our Squad division. We're close to acquiring a server license that'll allow us to show up on the official server browser. We've gotten denied a couple times due to some small things not meeting minimum requirements, but I'm planning to apply again tonight and expecting it to succeed this time (they were also stating to reapply so we'll be fine once we alter this information).
With that said, I have applied an updated version of Compressor to our Sydney and Singapore POPs this weekend that allows Squad to work fine for clients routing through those. I just wanted to ensure things were running smoothly before pushing out the update to all POPs in Europe/Asia. Since it has been stable, I plan to update the rest of our Europe/Asia POPs early next week (probably tomorrow).
The server is technically up at 92.119.148.115:7787 (query port is 27165), but it isn't configured yet. I've given @Jekyll access and we'll be setting everything else up after applying the updates to the rest of our POP servers (players routing through these POPs won't be able to connect until I update Compressor as well).
I'm expecting things to be ready by mid-next week
Thank you!
-
Hey everyone,
I am creating this thread for documentation purposes.
Last night, we started seeing a lot of servers on our GS15 machine experiencing DNS-related issues. This resulted in many services such as connecting to Steam (and showing on the server browser) breaking since hostnames weren't resolving.
This included GMod Prop Hunt and GMod TTT Minecraft. It's still unknown whether this impacted all game servers on this machine (some servers appeared to be fine while using the same DNS servers).
It turns out most requests to CloudFlare's DNS servers weren't making it back since that's what we primarily use for DNS. I noticed I could cURL 1.1.1.1 (CF's IP) inside the Docker container (since we don't have a privileged user inside the container to use MTR or trace route, I had to use cURL instead, I could have used ip netns exec <netnsid> mtr 1.1.1.1> on the host though which I plan to do in the future).
After discovering this, @Aurora and I were trying to switch the DNS servers to Google (8.8.8.8). This was more difficult than I had thought (I tried creating a /etc/netns/<netnsid/resolv.conf file containing Google's DNS servers for specific network namespaces and /etc/docker/daemon.json including Google's DNS servers, but it still used CloudFlare for some reason). Aurora discovered our control panel actually sets DNS servers and we had to set it in that config instead. After we started using Google's DNS servers, everything started resolving again. A few minutes afterwards, I also noticed CF's DNS queries were making it back again.
I asked Renual (owner of GSK) about this and he stated they specifically whitelist CloudFlare's servers. However, they did start peering with them recently. Therefore, there's a possibility that had something to do with it. But it still didn't make sense that I could cURL the CF IP (if it was a routing issue, I wouldn't have been able to do that).
Anyways, we started using Google's DNS primarily and Renual also suggested using their DNS servers which basically uses both Google and CF's servers as forwarders, but has a larger cache which should technically be faster for us.
Thank you.
-
Let's make this happen again!
-
Hey everyone,
As some of you may already know, we're expanding into Squad and you can read more about this here.
I've chosen @Jekyll as Server Manager for our first Squad server with this expansion. He will be heavily involved with managing the server and its admins.
More details on the first server will be released soon!
Thank you.
-
- Popular Post
- Popular Post
-
Hey everyone,
I just wanted to share another C project I'm working on which takes my Packet Flooding program I made here to a new level and has the potential to become a network monitoring tool.
Video
I made a video showing what the tool is capable of and an explanation of it here:
Description
This tool allows you to create sequences and execute them in order for sending packets to hosts. It includes many features such as:
- Creating config files using the YAML syntax.
- Supports protocols UDP, TCP, and ICMP.
- Being able to spoof as random IP ranges in IP/CIDR format or set a static source IP.
- Being able to randomize the source or destination ports when using UDP/TCP.
- Specifying source and destination MAC addresses. If left un-touched, will retrieve the source MAC of the interface you specify in the config and the destination MAC of the host's default gateway (e.g. your router).
- Specifying specific payloads (in hexadecimal) or randomly generating payload between a minimum and maximum length.
- Create max limits per sequence using packet count, max data sent, or timing (in seconds).
- Able to block per sequence which means it won't move on to the next sequence until the current ends.
- Specifying how many threads (pthreads) to spawn per sequence (if left un-touched or set to 0, will use the host's CPU count).
- Enable or disable both layer 3 and layer 4 checksum calculations. If your NIC supports checksum offload (e.g. the NIC's hardware calculates the checksum), I'd recommend at least disabling the layer 3 checksum (IP header) calculation for increased performance.
With that said, I plan on implementing sequence types for receiving packets and hope to implement functionality that allows later sequences to use the response from the receive sequence. With that said, I'd like to implement functionality that allows you to send HTTP/HTTPS requests to a host if the receive sequence succeeds or fails x amount of times. This would allow the tool to operate as a network monitor to an extent.
This tool is not fully completed yet, but the basic functionality works as seen in the video above.
Test Configs
Here are some test configs I made when testing the tool:
Basic UDP:
# First basic config I'm making to show as an example on what the tool will be able to do. interface: "ens18" sequences: initial: # If we want to run other configs before this sequence (e.g. establishing a TCP handshake), use includes. includes: - /etc/sequencecfgs/tcp_handshake.yaml # If set to true, will send outgoing packets. Otherwise, will receive. send: True # Amount of times to generate the packet/sequence. count: 50 # How many threads to spawn to handle this sequence (use 0 for host's CPU count). threads: 4 # Ethernet header options. #eth: # Source MAC address (don't include to automatically retrieve the MAC address of 'interface'). #smac: "" # Destination MAC address (don't include to automatically retrieve the MAC address of the default gateway). #dmac: "" # Additional IP options. ip: # Source IP (Required). srcip: "192.168.90.3" # Destination IP (Required). dstip: "172.16.0.3" # Layer 4 protocol (e.g. UDP, TCP, ICMP, etc) (Required). protocol: udp #tos: 0 #ttl: #fixed: 64 #maxttl: 128 #minttl: 64 # Whether to calculate IP header's checksum (if disabled and you have checksum offload enabled on NIC, will result in higher performance). #csum: True # UDP specific options. udp: srcport: 27000 # Don't include this for randomized port. dstport: 27015 # Don't include this for randomized port. # Whether to calculate layer 4 header's checksum (e.g. UDP/TCP/ICMP). #l4csum: True # Payload options. payload: # Payload length options. length: fixed: 64 # 64 bytes in payload size. #max: 1500 #min: 1500 # The exact payload is hexadecimal. If this is specified, anything related to the payload length will be ignored. #exact: "FF FF FF FF 49" second: send: true count: 300 threads: 0 ip: ranges: - 192.168.90.0/24 dstip: "172.16.0.3" protocol: udp csum: True udp: srcport: 27000 dstport: 27015 l4csum: True payload: exact: "FF FF FF FF 49"Test:
# First basic config I'm making to show as an example on what the tool will be able to do. interface: "ens18" sequences: one: send: true time: 30 threads: 0 eth: smac: "1a:c4:df:70:d8:a6" dmac: "ae:21:14:4b:3a:6d" ip: srcip: "10.50.0.3" dstip: "10.50.0.4" protocol: udp csum: True udp: srcport: 27000 dstport: 27015 l4csum: True payload: exact: "FF FF FF FF 49" second: send: true count: 300 threads: 0 eth: smac: "1a:c4:df:70:d8:a6" dmac: "ae:21:14:4b:3a:6d" ip: ranges: - 192.168.90.0/24 dstip: "10.50.0.4" protocol: udp csum: True udp: srcport: 0 dstport: 8808 l4csum: True payload: length: max: 1400 min: 500Test #2:
# First basic config I'm making to show as an example on what the tool will be able to do. interface: "ens18" sequences: one: send: true block: true count: 1 threads: 1 eth: smac: "1a:c4:df:70:d8:a6" dmac: "ae:21:14:4b:3a:6d" ip: srcip: "10.50.0.3" dstip: "10.50.0.4" protocol: udp csum: True udp: srcport: 27000 dstport: 27015 l4csum: True payload: exact: "FF FF FF FF 49" two: send: true block: true count: 1 threads: 1 eth: smac: "1a:c4:df:70:d8:a6" dmac: "ae:21:14:4b:3a:6d" ip: srcip: "10.50.0.3" dstip: "10.50.0.4" protocol: udp csum: True udp: srcport: 27000 dstport: 27015 l4csum: True payload: exact: "FF FF FF FF 66" three: send: true block: true count: 1 threads: 1 eth: smac: "1a:c4:df:70:d8:a6" dmac: "ae:21:14:4b:3a:6d" ip: srcip: "10.50.0.3" dstip: "10.50.0.4" protocol: udp csum: True udp: srcport: 27000 dstport: 27015 l4csum: True payload: exact: "FF FF FF FF 80" four: send: true block: true count: 1 threads: 1 eth: smac: "1a:c4:df:70:d8:a6" dmac: "ae:21:14:4b:3a:6d" ip: srcip: "10.50.0.3" dstip: "10.50.0.4" protocol: udp csum: True udp: srcport: 27000 dstport: 27015 l4csum: True payload: exact: "FF FF FF FF 90" five: send: true block: true count: 1 threads: 1 eth: smac: "1a:c4:df:70:d8:a6" dmac: "ae:21:14:4b:3a:6d" ip: srcip: "10.50.0.3" dstip: "10.50.0.4" protocol: udp csum: True udp: srcport: 27000 dstport: 27015 l4csum: True payload: exact: "01 02 03 04 05" six: send: true count: 10 threads: 2 eth: smac: "1a:c4:df:70:d8:a6" dmac: "ae:21:14:4b:3a:6d" ip: ranges: - 192.168.90.0/24 - 10.30.0.0/24 - 172.16.0.0/16 dstip: "10.50.0.4" protocol: udp csum: True udp: srcport: 27000 dstport: 27016 l4csum: True payload: length: min: 300 max: 500You may see the results in the video of Test #2. Here is the TCPDump output on the machine running with 10.50.0.4:
18:33:05.061539 1a:c4:df:70:d8:a6 > ae:21:14:4b:3a:6d, ethertype IPv4 (0x0800), length 47: (tos 0x0, id 0, offset 0, flags [none], proto UDP (17), length 33) 10.50.0.3.27000 > 10.50.0.4.27015: [udp sum ok] UDP, length 5 0x0000: ae21 144b 3a6d 1ac4 df70 d8a6 0800 4500 .!.K:m...p....E. 0x0010: 0021 0000 0000 0011 a662 0a32 0003 0a32 .!.......b.2...2 0x0020: 0004 6978 6987 000d cf69 ffff ffff 49 ..ixi....i....I 18:33:06.049362 1a:c4:df:70:d8:a6 > ae:21:14:4b:3a:6d, ethertype IPv4 (0x0800), length 47: (tos 0x0, id 0, offset 0, flags [none], proto UDP (17), length 33) 10.50.0.3.27000 > 10.50.0.4.27015: [udp sum ok] UDP, length 5 0x0000: ae21 144b 3a6d 1ac4 df70 d8a6 0800 4500 .!.K:m...p....E. 0x0010: 0021 0000 0000 0011 a662 0a32 0003 0a32 .!.......b.2...2 0x0020: 0004 6978 6987 000d b269 ffff ffff 66 ..ixi....i....f 18:33:07.049344 1a:c4:df:70:d8:a6 > ae:21:14:4b:3a:6d, ethertype IPv4 (0x0800), length 47: (tos 0x0, id 0, offset 0, flags [none], proto UDP (17), length 33) 10.50.0.3.27000 > 10.50.0.4.27015: [udp sum ok] UDP, length 5 0x0000: ae21 144b 3a6d 1ac4 df70 d8a6 0800 4500 .!.K:m...p....E. 0x0010: 0021 0000 0000 0011 a662 0a32 0003 0a32 .!.......b.2...2 0x0020: 0004 6978 6987 000d 9869 ffff ffff 80 ..ixi....i..... 18:33:08.049363 1a:c4:df:70:d8:a6 > ae:21:14:4b:3a:6d, ethertype IPv4 (0x0800), length 47: (tos 0x0, id 0, offset 0, flags [none], proto UDP (17), length 33) 10.50.0.3.27000 > 10.50.0.4.27015: [udp sum ok] UDP, length 5 0x0000: ae21 144b 3a6d 1ac4 df70 d8a6 0800 4500 .!.K:m...p....E. 0x0010: 0021 0000 0000 0011 a662 0a32 0003 0a32 .!.......b.2...2 0x0020: 0004 6978 6987 000d 8869 ffff ffff 90 ..ixi....i..... 18:33:09.049335 1a:c4:df:70:d8:a6 > ae:21:14:4b:3a:6d, ethertype IPv4 (0x0800), length 47: (tos 0x0, id 0, offset 0, flags [none], proto UDP (17), length 33) 10.50.0.3.27000 > 10.50.0.4.27015: [udp sum ok] UDP, length 5 0x0000: ae21 144b 3a6d 1ac4 df70 d8a6 0800 4500 .!.K:m...p....E. 0x0010: 0021 0000 0000 0011 a662 0a32 0003 0a32 .!.......b.2...2 0x0020: 0004 6978 6987 000d 0f64 0102 0304 05 ..ixi....d..... 18:33:10.049428 1a:c4:df:70:d8:a6 > ae:21:14:4b:3a:6d, ethertype IPv4 (0x0800), length 522: (tos 0x0, id 0, offset 0, flags [none], proto UDP (17), length 508) 192.168.90.73.27000 > 10.50.0.4.27016: [udp sum ok] UDP, length 480 0x0000: ae21 144b 3a6d 1ac4 df70 d8a6 0800 4500 .!.K:m...p....E. 0x0010: 01fc 0000 0000 0011 93ca c0a8 5a49 0a32 ............ZI.2 0x0020: 0004 6978 6988 01e8 4af6 251b 01b9 4ee2 ..ixi...J.%...N. 0x0030: 9bf9 2c66 f389 c42c d636 52f3 7218 8680 ..,f...,.6R.r... 0x0040: e230 711e 8ad4 3de3 28ca 9fb3 a536 0c05 .0q...=.(....6.. 0x0050: af33 ad68 0742 12c3 9a66 a85e 510b eba4 .3.h.B...f.^Q... 0x0060: a7aa 5ba4 ff2d 2f5c b213 cbb4 e952 f14b ..[..-/\.....R.K 0x0070: 30ff b9f4 c5ae 41fe b499 2437 a382 abad 0.....A...$7.... 0x0080: 6d59 c539 709d b6bc a582 9126 74d6 663b mY.9p......&t.f; 0x0090: 44a2 3b14 d493 bb66 4b16 af84 1045 2f25 D.;....fK....E/% 0x00a0: 5a84 97e6 86e9 3b8d 2b5f da12 ed89 d35d Z.....;.+_.....] 0x00b0: 1467 18cf dbb9 e582 8926 304f 401b de93 .g.......&0O@... 0x00c0: 9774 bab1 e9dc 2556 6af4 8d7e fe34 9e39 .t....%Vj..~.4.9 0x00d0: c894 3a2d 84ea 29da 9411 8f9f dbcd 2180 ..:-..).......!. 0x00e0: 4c71 15a4 413c dd9f 8b87 9374 4d9f 3258 Lq..A<.....tM.2X 0x00f0: 8872 8936 75ec eef6 951e b57d 8923 5f72 .r.6u......}.#_r 0x0100: a1c2 91c6 35d2 caf0 b760 d3fb 8392 f440 ....5....`.....@ 0x0110: 7c49 ecf3 5788 9d5f b496 89ef f2e5 00f3 |I..W.._........ 0x0120: beb0 151f 6f66 55d2 14c9 351b 49d4 4f7b ....ofU...5.I.O{ 0x0130: cc60 4b6a d285 9d9b 1ac1 f4ff bdda 6d8a .`Kj..........m. 0x0140: cb83 8ab7 96bf e5cc cb08 a2dc 452e a890 ............E... 0x0150: a000 8fa5 8fac 5734 ede7 ddb4 94cb 0dbf ......W4........ 0x0160: f082 d796 52a6 e265 0466 0247 2068 6907 ....R..e.f.G.hi. 0x0170: 2071 9fab 34c5 32b1 564f 2d16 1e7f 491a .q..4.2.VO-...I. 0x0180: 55f6 e4c5 4ae3 b527 e72a 3c62 8249 fa69 U...J..'.*<b.I.i 0x0190: 74fa 6484 6a98 979a 7d41 cb2d 02bf 8824 t.d.j...}A.-...$ 0x01a0: 2127 9a4b 283d c59a 9c9d 3837 139a c23c !'.K(=....87...< 0x01b0: c3e4 c539 d9ec ed77 8a07 9f02 ea53 3363 ...9...w.....S3c 0x01c0: 7e5c e130 927d 7b44 4b07 dfcd 7b23 290a ~\.0.}{DK...{#). 0x01d0: 3777 abd0 298a 9cd1 a5e7 929b 7c03 b161 7w..).......|..a 0x01e0: 93de a07c 326b 3eaf 1cb0 182c 62ac 985a ...|2k>....,b..Z 0x01f0: f6fb fd53 023a 0d2f f52a 8c02 6196 6aa5 ...S.:./.*..a.j. 0x0200: 87f5 bf37 aecf 7762 37df ...7..wb7. 18:33:10.049428 1a:c4:df:70:d8:a6 > ae:21:14:4b:3a:6d, ethertype IPv4 (0x0800), length 439: (tos 0x0, id 0, offset 0, flags [none], proto UDP (17), length 425) 10.30.0.68.27000 > 10.50.0.4.27016: [udp sum ok] UDP, length 397 0x0000: ae21 144b 3a6d 1ac4 df70 d8a6 0800 4500 .!.K:m...p....E. 0x0010: 01a9 0000 0000 0011 a4ad 0a1e 0044 0a32 .............D.2 0x0020: 0004 6978 6988 0195 a6e9 2a63 0d53 4a55 ..ixi.....*c.SJU 0x0030: 0ec8 2792 ab06 4193 4415 ca80 6144 fa91 ..'...A.D...aD.. 0x0040: 5d6c 2031 e4f6 7be7 1d9c cdf4 a7f2 abbc ]l.1..{......... 0x0050: 44a3 95e5 567b c93f 0d29 d669 5cc0 f22f D...V{.?.).i\../ 0x0060: af00 0cb5 5e59 a054 dfaa 4c47 bdcd 2504 ....^Y.T..LG..%. 0x0070: 4bd3 c96a 180e 349f 21d2 52b7 c7fb 5814 K..j..4.!.R...X. 0x0080: 862d d28f 62dd 7b59 1f12 cfa2 38eb 60f6 .-..b.{Y....8.`. 0x0090: 8cdf eb6b d8c6 297b e89b 66b1 8bfd d306 ...k..){..f..... 0x00a0: 4a7a 9a08 d88a b5be 475c 7e4d ff54 045a Jz......G\~M.T.Z 0x00b0: 6e4f 232e 7fab 529b cb09 3aa0 90cf 0acd nO#...R...:..... 0x00c0: 646f 8c67 a969 f64b bf11 8092 fb10 b9f8 do.g.i.K........ 0x00d0: 5aab 99fc f4c5 56c6 31a5 f6cc bd78 a733 Z.....V.1....x.3 0x00e0: 3c94 d0f5 bc81 e6c7 eeb7 ffb7 1327 2797 <............''. 0x00f0: b77b 751c 1f1d dcc5 82f8 c17c fa00 50fe .{u........|..P. 0x0100: 3872 8efa fada 2dfa 3cd8 2205 30a2 f600 8r....-.<.".0... 0x0110: ed48 dfd7 e9b9 8d60 2789 c5f9 306f aff7 .H.....`'...0o.. 0x0120: c28f eebe 4a7c 73ae 12fb 10c3 3988 cefb ....J|s.....9... 0x0130: 6599 ff75 39a3 125e 88e0 288b 46cd 6ae5 e..u9..^..(.F.j. 0x0140: 4275 1888 9570 60a9 d7a8 f33a 16e1 574f Bu...p`....:..WO 0x0150: 86f5 fd3e f8e2 1188 0c85 147a 2523 2a91 ...>.......z%#*. 0x0160: 1fab 33a1 c2bc 9bb4 f467 f1b2 b0b5 39c5 ..3......g....9. 0x0170: b9e7 0079 0e7e 33a5 1b00 af0d b477 98c3 ...y.~3......w.. 0x0180: c2b9 6950 b96a ce96 d0c1 3473 ee0c 1c24 ..iP.j....4s...$ 0x0190: 65f4 326f 6180 217f 1eda 238d dcd3 5a42 e.2oa.!...#...ZB 0x01a0: 9128 e0df 6381 a018 d33d e2c4 b9ef a736 .(..c....=.....6 0x01b0: f3a5 b968 dbee 81 ...h... 18:33:10.049428 1a:c4:df:70:d8:a6 > ae:21:14:4b:3a:6d, ethertype IPv4 (0x0800), length 384: (tos 0x0, id 0, offset 0, flags [none], proto UDP (17), length 370) 192.168.90.64.27000 > 10.50.0.4.27016: [udp sum ok] UDP, length 342 0x0000: ae21 144b 3a6d 1ac4 df70 d8a6 0800 4500 .!.K:m...p....E. 0x0010: 0172 0000 0000 0011 945d c0a8 5a40 0a32 .r.......][email protected] 0x0020: 0004 6978 6988 015e 66e7 1c8d e986 56fc ..ixi..^f.....V. 0x0030: b45a 3710 838e c95d fb79 62d8 94c1 a05f .Z7....].yb...._ 0x0040: ebba 15f8 d790 c1db 3d26 4331 a3bc ce99 ........=&C1.... 0x0050: 8653 dc6e 6ad0 a4ca b5e2 4b48 3ba2 dd8c .S.nj.....KH;... 0x0060: 98ff f983 41d7 4e6a 58e4 c98f 415c 8ad9 ....A.NjX...A\.. 0x0070: f856 9a08 20ed 5dbc da26 c837 5a91 52e1 .V....]..&.7Z.R. 0x0080: 3ab1 ab8e 8c1c 2e81 b161 1630 ebac 72c4 :........a.0..r. 0x0090: b32a d966 cb2c dd3b 120d 402b 19d4 e865 .*.f.,.;..@+...e 0x00a0: 7999 92a2 e1a7 482a f165 939a c9f4 6f63 y.....H*.e....oc 0x00b0: 6097 0211 94d6 0b50 0561 1bae a0b4 8620 `......P.a...... 0x00c0: fd7f 1645 69c2 846c c1b9 a757 037e 68bc ...Ei..l...W.~h. 0x00d0: a567 7c8f a333 d001 5ae8 c247 1779 141a .g|..3..Z..G.y.. 0x00e0: 6d2a a001 4ab3 cb50 c725 baee c190 46d9 m*..J..P.%....F. 0x00f0: 2b60 b06a 218a 1358 bb6b 9c7e a66a 7b5b +`.j!..X.k.~.j{[ 0x0100: 7363 985d adc3 05dc ac71 35e7 2b72 f1c1 sc.].....q5.+r.. 0x0110: 9a4b 0529 3425 bd5c cfb1 12db 75d0 a3ec .K.)4%.\....u... 0x0120: b6f2 65e1 ba39 181a 1865 80cb 696e 4f7c ..e..9...e..inO| 0x0130: 9af0 e454 0549 b516 3d84 8be7 acf3 73d4 ...T.I..=.....s. 0x0140: dd9e 6f15 995e ef11 b3c8 0220 a3ca 4a13 ..o..^........J. 0x0150: d316 b474 bb41 e38c afaa 7028 721b d31b ...t.A....p(r... 0x0160: 9230 1f81 727a 6fc9 2562 2370 00cf ca8c .0..rzo.%b#p.... 0x0170: ed86 dd0f 8053 30c8 cbeb 2828 f18f acc9 .....S0...((.... 18:33:10.049428 1a:c4:df:70:d8:a6 > ae:21:14:4b:3a:6d, ethertype IPv4 (0x0800), length 433: (tos 0x0, id 0, offset 0, flags [none], proto UDP (17), length 419) 10.30.0.59.27000 > 10.50.0.4.27016: [udp sum ok] UDP, length 391 0x0000: ae21 144b 3a6d 1ac4 df70 d8a6 0800 4500 .!.K:m...p....E. 0x0010: 01a3 0000 0000 0011 a4bc 0a1e 003b 0a32 .............;.2 0x0020: 0004 6978 6988 018f c227 21d4 f51f 526f ..ixi....'!...Ro 0x0030: 272a 323b 3b0b 46c4 6958 da65 83ec 136f '*2;;.F.iX.e...o 0x0040: 67f5 c30b 31b2 ffdf 33f8 7172 a479 6d4f g...1...3.qr.ymO 0x0050: 1ac3 c4eb b909 5b46 28a4 7a53 4657 e418 ......[F(.zSFW.. 0x0060: a054 aa94 a002 be63 857b 4a22 15d7 bd92 .T.....c.{J".... 0x0070: 142a a97e 724d 4f5d 475f f6b7 7f0a ff47 .*.~rMO]G_.....G 0x0080: 5385 b8e4 7e5c f21f 2bf1 53ab b0c1 6c80 S...~\..+.S...l. 0x0090: fc66 8abd cf5f 4c51 ae92 f758 958d 8b45 .f..._LQ...X...E 0x00a0: 698e 95c4 3448 c15c 0e62 36d6 dbbf a160 i...4H.\.b6....` 0x00b0: ba7f 0d70 38c8 7869 4744 25ff f068 b25a ...p8.xiGD%..h.Z 0x00c0: ca79 e8fb 294f 5561 15d7 9a6b 0159 837b .y..)OUa...k.Y.{ 0x00d0: 377e db5e 130e fcee f77c 2973 f923 9acd 7~.^.....|)s.#.. 0x00e0: 5d4d 5b52 c5f8 d477 2956 2731 8718 3c18 ]M[R...w)V'1..<. 0x00f0: 5a69 9c50 cbbb 0127 a845 a97d 1847 6de7 Zi.P...'.E.}.Gm. 0x0100: 0a12 9491 71ca 67e6 31e9 84f1 d782 f381 ....q.g.1....... 0x0110: 0b4a f80e c556 ad5d 42a4 4ee5 b35b 51ef .J...V.]B.N..[Q. 0x0120: bad1 3d80 954f 37f6 1697 5b73 5921 cffc ..=..O7...[sY!.. 0x0130: 3328 975f 6c67 29d8 aba2 c073 35e7 702f 3(._lg)....s5.p/ 0x0140: 5490 fce6 970f 6aee bf68 527e 747c f9d2 T.....j..hR~t|.. 0x0150: ba0b 210c 2577 9de0 ce48 a7ee 0373 f0ed ..!.%w...H...s.. 0x0160: c159 7b8c e290 2917 1564 12db 901b 9a4a .Y{...)..d.....J 0x0170: 87fb 3edd 5a0c 31bc 909d aa1f 8787 fa72 ..>.Z.1........r 0x0180: e833 603a db5c 9cb9 fe94 4452 1687 d8ad .3`:.\....DR.... 0x0190: 8201 969a 73b0 0db5 dca9 73ce 29ac b705 ....s.....s.)... 0x01a0: b126 54b7 edfa eb1b 65fe 8eab 6d46 dc43 .&T.....e...mF.C 0x01b0: 94 . 18:33:10.049428 1a:c4:df:70:d8:a6 > ae:21:14:4b:3a:6d, ethertype IPv4 (0x0800), length 414: (tos 0x0, id 0, offset 0, flags [none], proto UDP (17), length 400) 192.168.90.55.27000 > 10.50.0.4.27016: [udp sum ok] UDP, length 372 0x0000: ae21 144b 3a6d 1ac4 df70 d8a6 0800 4500 .!.K:m...p....E. 0x0010: 0190 0000 0000 0011 9448 c0a8 5a37 0a32 .........H..Z7.2 0x0020: 0004 6978 6988 017c d444 3739 3020 3dae ..ixi..|.D790.=. 0x0030: 6835 1613 d27e bac9 8db1 3328 2dc7 53c3 h5...~....3(-.S. 0x0040: d01d 2a6a f15b 36f3 fe12 57b8 aa28 88de ..*j.[6...W..(.. 0x0050: 02f4 4e5b 4227 eeb5 6470 628a 7cdd 08d2 ..N[B'..dpb.|... 0x0060: c602 1fe6 7adb f13f 6671 cffe 393e c12f ....z..?fq..9>./ 0x0070: 9f50 f9cc 102f 0a83 677f dd37 3465 5e46 .P.../..g..74e^F 0x0080: d2a9 f98f 379e c831 8dc4 8814 842a 4e28 ....7..1.....*N( 0x0090: 6594 fe6f e560 76bb be28 8d37 fd26 bea7 e..o.`v..(.7.&.. 0x00a0: 1c5b a26d cf6d 2252 9d54 6901 35b3 9a52 .[.m.m"R.Ti.5..R 0x00b0: 7c06 454b 6980 99e6 90b1 5992 7fe9 8f7b |.EKi.....Y....{ 0x00c0: cc5f 0289 e910 6829 bd68 5acd f2a2 0a33 ._....h).hZ....3 0x00d0: 0eef b768 4458 db8b 0763 2951 6276 394b ...hDX...c)Qbv9K 0x00e0: 0afe 00ea 2e4f 013d 1449 4480 65bf 0955 .....O.=.ID.e..U 0x00f0: 4296 3bce 1eaf a532 4a85 e67b 4e95 25a0 B.;....2J..{N.%. 0x0100: fd80 8497 47f1 5518 cc3f 0e22 34d1 fc3f ....G.U..?."4..? 0x0110: 4045 b986 9f4e 5e63 8060 7818 eb0d bb01 @E...N^c.`x..... 0x0120: cf2d 779a dabf cd42 0b91 a1bc 08a1 4d79 .-w....B......My 0x0130: 3042 1a96 6efd 6fa6 d33c c630 e1a7 61f6 0B..n.o..<.0..a. 0x0140: a74c c0fb 9081 d041 fb89 e455 8af7 648b .L.....A...U..d. 0x0150: 39d5 4608 3584 3f84 6961 b8cb d72b 8207 9.F.5.?.ia...+.. 0x0160: ac26 48c0 11fe c79f c26d bff4 609b a8fd .&H......m..`... 0x0170: 8547 24e3 9baa 3683 6b16 37f2 7760 83bd .G$...6.k.7.w`.. 0x0180: 0803 f6f2 06ff 19e2 8985 1ba4 3354 8158 ............3T.X 0x0190: 3ae0 9c2f 4738 bd2d 02a4 2aab 680f :../G8.-..*.h.Other Notes
- This project uses libyaml.
- Here's the code I made to parse the YAML files using libyaml.
-
Here's a function to select a random IP based off of a network IP/CIDR (e.g. 192.168.90.0/24). Requested help on Stack Overflow thread here which was successful
Compiling
You may simply use make to compile the program. Here's an example:
# Receive repo and libyaml via --recursive git clone --recursive https://github.com/gamemann/Packet-Sequence.git # Make libyaml and the packet sequence program. make sudo ./pcktseq -c /path/to/config.yaml
Credits go to me (Christian Deacon) for this program.
Thank you!
Edit
Video was just uploaded. Also, as always, I do not support this tool for malicious use. This will be used as a monitoring or pen-testing tool.
-
We're looking for Squad admins! If you're interested or know somebody that would be, please fill out this form or have the individual do so.
Thank you!
-
I've sent the two LOAs I compiled for our new IPv4 block to Vultr and GSK. Once the BGP session is completed, I'll need to reconfigure all of our POP servers to announce the new IP block.
With that said, I've implemented functionality into Compressor with filters that allows Squad servers to run without any issues and I've been testing this most of tonight. This was more difficult than I expected because of how Squad/Unreal Engine does handshakes between the client and server.
I may be able to get the Squad server up by tomorrow to at least begin testing. I've also sent an email to the Squad Developer team regarding a server license since it appears the old one we have is invalid. I'm hoping to get a response on that in the next few days.
Thank you!
-
I've received the following reply from IP2Location regarding getting the new IPv4 block geo-located to London, UK
QuoteHI Christian,
Thank you. We will review and update the range in the future release.
Regards,Kim Loong
IP2Location Customer Success Team -
3 minutes ago, Joshy said:
think EU servers are a good move. Something I didn't like about those is that the admins and server managers were often totally separated. I think something that helps is just if it's the same game mode / same rules it would help if they had their permissions on both (US and EU) servers even though odds are they'll primarily play on one; also a good way to train new server managers if they have a successful counterpart.
I definitely agree with this. If we have two servers in different locations running the same game mode/configuration, I believe the admin teams should be shared. I've always felt that way but don't remember why some people had an issue with that.
-
Also, here are some success images from our Europe expansion in 2014 - 2016





We Need Ideas From (Dark)RP Players!
in Suggestions
Posted
I definitely agree the game mode itself is better and more entertaining. I just want to make sure we're appealing to a majority of the player base to start since new players are important and if "Purge" isn't as known nowadays, it's going to be a lot harder starting the server off (which is the stage we normally fail at). I'm all for changing the game mode to Purge as well because I mean, it can't hurt at this point. We can always change it to something else if it doesn't work out in my opinion.