├── .editorconfig ├── .github └── workflows │ ├── roa.yml │ └── test-your-pr.yml ├── .gitignore ├── .vscode ├── extensions.json └── settings.json ├── LICENSE ├── README.md ├── asn ├── AS134098.toml ├── AS140913.toml ├── AS141706.toml ├── AS141776.toml ├── AS142280.toml ├── AS17830.toml ├── AS207268.toml ├── AS209557.toml ├── AS211390.toml ├── AS211876.toml ├── AS213262.toml ├── AS4201270000.toml ├── AS4201270001.toml ├── AS4201270002.toml ├── AS4201270003.toml ├── AS4201270004.toml ├── AS4201270005.toml ├── AS4201270006.toml ├── AS4201270007.toml ├── AS4201270008.toml ├── AS4201270010.toml ├── AS4201270011.toml ├── AS4201270012.toml ├── AS4201270013.toml ├── AS4201270014.toml ├── AS4201270015.toml ├── AS4201270016.toml ├── AS4201270017.toml ├── AS4201270018.toml ├── AS4201270019.toml ├── AS4201270020.toml ├── AS4201270021.toml ├── AS4201270022.toml ├── AS4201270030.toml ├── AS4201270036.toml ├── AS4201270037.toml ├── AS4201270039.toml ├── AS4201270080.toml ├── AS4201270099.toml ├── AS4201270100.toml ├── AS4201270101.toml ├── AS4201270186.toml ├── AS4201270233.toml ├── AS4201270456.toml ├── AS4201270566.toml ├── AS4201271111.toml ├── AS4201271234.toml ├── AS4201271480.toml ├── AS4201271488.toml ├── AS4201271877.toml ├── AS4201272032.toml ├── AS4201272923.toml ├── AS4201273722.toml ├── AS4201273947.toml ├── AS4201279999.toml ├── AS4242420140.toml ├── AS4242420247.toml ├── AS4242420275.toml ├── AS4242420288.toml ├── AS4242420308.toml ├── AS4242420458.toml ├── AS4242420624.toml ├── AS4242420803.toml ├── AS4242420916.toml ├── AS4242421025.toml ├── AS4242421037.toml ├── AS4242421181.toml ├── AS4242421214.toml ├── AS4242421331.toml ├── AS4242421332.toml ├── AS4242421876.toml ├── AS4242422189.toml ├── AS4242422439.toml ├── AS4242422458.toml ├── AS4242422464.toml ├── AS4242422923.toml ├── AS4242423618.toml ├── AS4242423699.toml └── AS4242423947.toml ├── ca └── neonetwork.crt ├── dns ├── db.10.127 ├── db.fd10.127 ├── dnssec │ ├── 10.127.keys │ ├── fd10.127.keys │ └── neo.keys ├── neonetwork └── rfc2317.toml ├── docs ├── CNAME ├── footer.html ├── header.html ├── icon.png ├── index.html └── neostyle.css ├── document ├── asn.toml ├── entity.toml ├── recommended_setup.md └── route.toml ├── entity ├── 186526.toml ├── A1ca7raz.toml ├── AndyZhou.toml ├── CDUBS.toml ├── Cupkappu.toml ├── DannyAAM.toml ├── David Liu.toml ├── Edward_P.toml ├── Hanako.toml ├── HawkinsSherpherd.toml ├── Iu-yang1.toml ├── James58899.toml ├── JerryXiao.toml ├── Junde Yhi.toml ├── KusakabeSi.toml ├── LINE-NZ.toml ├── Lan Tian.toml ├── LibreHouse.toml ├── Lily.toml ├── Moe.toml ├── Ndoskrnl.toml ├── Neo_Chen.toml ├── Razuritta.toml ├── Ren Baoshuo.toml ├── Rosmontic.toml ├── SUNNET.toml ├── Staph.toml ├── SteveYi.toml ├── SyllaBear.toml ├── TsingYao.toml ├── VILLISEK.toml ├── Yangfl.toml ├── Yitong-Dang.toml ├── Yukari.toml ├── Yura.toml ├── Yux.toml ├── YuzhenQin.toml ├── alanyhq.toml ├── caxap.toml ├── chanceyan.toml ├── frank.toml ├── fthasdd.toml ├── funnysyc.toml ├── huajitech.toml ├── iEdon.toml ├── icecat.toml ├── leedagee.toml ├── liangjw.toml ├── licson.toml ├── lilydjwg.toml ├── magicneko.toml ├── mark22k.toml ├── nekoid.toml ├── nevlezay80.toml ├── ricky8955555.toml ├── septs.toml ├── starstorm42.toml ├── stone.toml └── undefined-moe.toml ├── logo.png ├── pyproject.toml ├── route ├── AS134098.toml ├── AS140913.toml ├── AS141706.toml ├── AS141776.toml ├── AS142280.toml ├── AS17830.toml ├── AS211390.conf ├── AS211876.toml ├── AS213262.toml ├── AS4201270000.toml ├── AS4201270001.toml ├── AS4201270003.toml ├── AS4201270004.toml ├── AS4201270005.toml ├── AS4201270006.toml ├── AS4201270007.toml ├── AS4201270008.toml ├── AS4201270010.toml ├── AS4201270011.toml ├── AS4201270012.toml ├── AS4201270013.toml ├── AS4201270014.toml ├── AS4201270016.toml ├── AS4201270017.toml ├── AS4201270018.toml ├── AS4201270019.toml ├── AS4201270020.toml ├── AS4201270021.toml ├── AS4201270022.toml ├── AS4201270030.toml ├── AS4201270036.toml ├── AS4201270037.toml ├── AS4201270039.toml ├── AS4201270080.toml ├── AS4201270099.toml ├── AS4201270100.toml ├── AS4201270101.toml ├── AS4201270186.toml ├── AS4201270233.toml ├── AS4201270456.toml ├── AS4201270566.toml ├── AS4201271111.toml ├── AS4201271234.toml ├── AS4201271480.toml ├── AS4201271488.toml ├── AS4201271877.toml ├── AS4201272032.toml ├── AS4201272923.toml ├── AS4201273722.toml ├── AS4201273947.toml ├── AS4201279999.toml ├── AS4242420140.toml ├── AS4242420247.toml ├── AS4242420275.toml ├── AS4242420288.toml ├── AS4242420308.toml ├── AS4242420458.toml ├── AS4242420624.toml ├── AS4242420803.toml ├── AS4242421025.toml ├── AS4242421037.toml ├── AS4242421181.toml ├── AS4242421214.toml ├── AS4242421332.toml ├── AS4242421876.toml ├── AS4242422189.toml ├── AS4242422439.toml ├── AS4242422458.toml ├── AS4242422464.toml ├── AS4242422923.toml ├── AS4242423618.toml ├── AS4242423699.toml └── AS4242423947.toml ├── scripts ├── check-named-zones.sh ├── dns-generator.py ├── generate-roa.sh ├── homepage-update.sh ├── named-formatzone.py ├── push-to-roa.sh ├── requirements.txt ├── rfc2317.py ├── roa.py └── update-zone-serial.py └── vpn ├── tinc ├── tinc-down ├── tinc-up └── tinc.conf ├── wg-postup.sh └── wireguard.conf /.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*.toml] 4 | indent_style = space 5 | indent_size = 2 6 | charset = utf-8 7 | trim_trailing_whitespace = false 8 | insert_final_newline = false -------------------------------------------------------------------------------- /.github/workflows/roa.yml: -------------------------------------------------------------------------------- 1 | name: Generator ROA 2 | 3 | on: 4 | push: 5 | branches: [master] 6 | schedule: 7 | - cron: "0 6 * * 1" 8 | 9 | jobs: 10 | build: 11 | name: Generate ROA 12 | if: "github.event_name != 'push' || !contains(github.event.head_commit.message, '[skip ci]')" 13 | runs-on: ubuntu-22.04 14 | 15 | steps: 16 | - uses: actions/checkout@v4 17 | 18 | - uses: actions/checkout@v4 19 | with: 20 | path: generated 21 | ssh-key: ${{ secrets.DEPLOY_KEY }} 22 | repository: NeoCloud/NeoNetwork-ROA 23 | 24 | - uses: actions/setup-python@v5 25 | with: 26 | python-version: 3.x 27 | architecture: x64 28 | 29 | - run: pip install -r scripts/requirements.txt 30 | 31 | - run: scripts/generate-roa.sh 32 | 33 | - run: git -C generated diff README.md 34 | 35 | - run: scripts/push-to-roa.sh 36 | 37 | - uses: actions/upload-artifact@v4 38 | with: 39 | name: generated 40 | path: generated 41 | -------------------------------------------------------------------------------- /.github/workflows/test-your-pr.yml: -------------------------------------------------------------------------------- 1 | name: Test Your PR 2 | 3 | on: 4 | pull_request_target: 5 | branches: [master] 6 | 7 | jobs: 8 | build: 9 | name: Generate ROA 10 | runs-on: ubuntu-22.04 11 | 12 | outputs: 13 | generate_roa: ${{ steps.generate_roa.outputs.base64 }} 14 | 15 | steps: 16 | - uses: actions/checkout@v4 17 | with: 18 | ref: ${{ github.event.pull_request.head.sha }} 19 | fetch-depth: 0 20 | 21 | - uses: actions/checkout@v4 22 | with: 23 | ref: master 24 | path: trusted_master_head 25 | fetch-depth: 0 26 | 27 | - run: | 28 | git remote add trusted trusted_master_head 29 | git fetch trusted 30 | # you shall not change this 31 | git diff --exit-code --name-status trusted/master ${{github.event.pull_request.head.sha}} ./scripts 32 | # just in case 33 | rm -rf scripts && cp -a trusted_master_head/scripts ./ 34 | shell: bash 35 | 36 | - uses: actions/checkout@v4 37 | with: 38 | repository: NeoCloud/NeoNetwork-ROA 39 | path: generated 40 | 41 | - uses: actions/setup-python@v5 42 | with: 43 | python-version: 3.x 44 | architecture: x64 45 | 46 | - run: pip install -r scripts/requirements.txt 47 | 48 | - run: | 49 | success=true 50 | 51 | scripts/generate-roa.sh 2> >(tee ~/buildjob.log >&2) || success=false 52 | 53 | echo -n "base64=" >> $GITHUB_OUTPUT 54 | base64 -w0 ~/buildjob.log >> $GITHUB_OUTPUT 55 | ${success} 56 | shell: bash 57 | id: generate_roa 58 | 59 | - run: git -C generated diff README.md 60 | 61 | - uses: actions/upload-artifact@v4 62 | with: 63 | name: generated 64 | path: generated 65 | 66 | comment_success: 67 | needs: [build] 68 | runs-on: ubuntu-22.04 69 | if: ${{ always() && contains(needs.build.result, 'success') }} 70 | steps: 71 | - uses: actions/github-script@v7 72 | with: 73 | github-token: ${{secrets.COMMENT_GITHUB_TOKEN}} 74 | script: | 75 | github.rest.issues.createComment({ 76 | issue_number: context.issue.number, 77 | owner: context.repo.owner, 78 | repo: context.repo.repo, 79 | body: 'Congratulations! Your pull request passed the check.' 80 | }) 81 | 82 | comment_failure: 83 | needs: [build] 84 | runs-on: ubuntu-22.04 85 | if: ${{ always() && contains(needs.build.result, 'failure') }} 86 | steps: 87 | - shell: bash 88 | run: | 89 | echo ${{needs.build.outputs.generate_roa}} | base64 -d | tail > /tmp/buildjob_tail.log || echo 'internal error' >> /tmp/buildjob_tail.log 90 | 91 | - uses: actions/github-script@v7 92 | with: 93 | github-token: ${{secrets.COMMENT_GITHUB_TOKEN}} 94 | script: | 95 | const fs = require('fs') 96 | let l = fs.readFileSync('/tmp/buildjob_tail.log', { encoding: 'utf8', flag: 'r' }).replaceAll("```", "'''") 97 | github.rest.issues.createComment({ 98 | issue_number: context.issue.number, 99 | owner: context.repo.owner, 100 | repo: context.repo.repo, 101 | body: `Your pull request failed the check:\n\`\`\`\n${l.trimEnd()}\n\`\`\`` 102 | }) 103 | 104 | - run: false 105 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .venv 2 | *.pyc 3 | -------------------------------------------------------------------------------- /.vscode/extensions.json: -------------------------------------------------------------------------------- 1 | { 2 | "recommendations": ["bungcip.better-toml", "bodil.prettier-toml"] 3 | } 4 | -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "editor.formatOnSave": true, 3 | "editor.codeActionsOnSave": { 4 | "source.fixAll": true 5 | }, 6 | "python.formatting.provider": "black" 7 | } 8 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | This is free and unencumbered software released into the public domain. 2 | 3 | Anyone is free to copy, modify, publish, use, compile, sell, or 4 | distribute this software, either in source code form or as a compiled 5 | binary, for any purpose, commercial or non-commercial, and by any 6 | means. 7 | 8 | In jurisdictions that recognize copyright laws, the author or authors 9 | of this software dedicate any and all copyright interest in the 10 | software to the public domain. We make this dedication for the benefit 11 | of the public at large and to the detriment of our heirs and 12 | successors. We intend this dedication to be an overt act of 13 | relinquishment in perpetuity of all present and future rights to this 14 | software under copyright law. 15 | 16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 17 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 18 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 19 | IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR 20 | OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, 21 | ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 22 | OTHER DEALINGS IN THE SOFTWARE. 23 | 24 | For more information, please refer to 25 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # NeoNetwork 2 | Yet another VPN network ready for peering! 3 | This network is connected with [DN42](https://dn42.net) 4 | Git Repo. [here](https://github.com/NeoCloud/NeoNetwork) 5 | Pull requests are welcomed! 6 | Working language: `zh_* / en_*` 7 | 8 | ## ROA 9 | 10 | 11 | 12 | ## IXs 13 | 14 | neovax.neocloud.tw (10.127.110.1, ASN 4201270000) 15 | fsnvax.neocloud.tw (10.127.16.240, ASN 4201270000) 16 | jpn.neo.jerryxiao.cc (10.127.8.193, ASN 4201270006) 17 | s.aureus.icu (10.127.8.185, ASN 4201270007) 18 | 19 | ## Address Allocation 20 | 21 | All IPv4 addresses are under the range 10.127.0.0/16 22 | All IPv6 addresses are under the range fd10:127::/32 23 | see [route](https://github.com/NeoCloud/NeoNetwork/tree/master/route) 24 | and [route6](https://github.com/NeoCloud/NeoNetwork/tree/master/route6) for allocated subnet. 25 | 26 | ## DNS 27 | 28 | DNS Anycast is currently on `10.127.255.54` for IPv4 and `fd10:127:53:53::` for IPv6. All domain names are under ".neo". 29 | 30 | ## Certificate Authority 31 | 32 | Root certificate can be downloaded from [here](https://github.com/NeoCloud/NeoNetwork/blob/master/ca/neonetwork.crt). An acmev2-api is available at `https://acme.neo/acme/acme/directory`. 33 | 34 | ## Files and Directories 35 | 36 | nodes.dot Connection graph 37 | asn/ BGP AS Number allocation 38 | entity/ Entitys 39 | route/ Network subnet allocation 40 | vpn/ VPN configuration examples (Tinc & WireGuard) 41 | dns/ Bind9 DNS zone files and example configuration 42 | -------------------------------------------------------------------------------- /asn/AS134098.toml: -------------------------------------------------------------------------------- 1 | name = "Licson Internal Network" 2 | owner = "licson" 3 | source = "Internet" 4 | valid = true 5 | -------------------------------------------------------------------------------- /asn/AS140913.toml: -------------------------------------------------------------------------------- 1 | name = "Koishi Network(aka Hentai Network)" 2 | owner = "magicneko" 3 | description = "MagicNeko VPN business branch" 4 | source = "Internet" 5 | valid = true 6 | -------------------------------------------------------------------------------- /asn/AS141706.toml: -------------------------------------------------------------------------------- 1 | name = "Koishi Network(=4201270005)" 2 | owner = "magicneko" 3 | description = "MagicNeko CN(Optical Cable Project in Northeast China)" 4 | source = "Internet" 5 | valid = true 6 | -------------------------------------------------------------------------------- /asn/AS141776.toml: -------------------------------------------------------------------------------- 1 | name = "BAOSHUO-AS-AP" 2 | owner = "Ren Baoshuo" 3 | description = "Baoshuo Network" 4 | source = "Internet" -------------------------------------------------------------------------------- /asn/AS142280.toml: -------------------------------------------------------------------------------- 1 | name = "NTEREN-BACKBONE" 2 | owner = "Yitong-Dang" 3 | source = "Internet" 4 | description = "NaiveTomcat Education and Research Network" 5 | valid = true 6 | -------------------------------------------------------------------------------- /asn/AS17830.toml: -------------------------------------------------------------------------------- 1 | name = "POTATO-AS-AP" 2 | owner = "David Liu" 3 | description = "David Liu aka PotatoNet" 4 | source = "Internet" 5 | -------------------------------------------------------------------------------- /asn/AS207268.toml: -------------------------------------------------------------------------------- 1 | name = "Strategic Explorations (IX)" 2 | owner = "Yukari" 3 | description = "Internet eXchange in DN42 / NeoNetwork / clearnet" 4 | source = "Internet" 5 | valid = true 6 | -------------------------------------------------------------------------------- /asn/AS209557.toml: -------------------------------------------------------------------------------- 1 | name = "Yi-Network" 2 | owner = "SteveYi" 3 | source = "Internet" 4 | -------------------------------------------------------------------------------- /asn/AS211390.toml: -------------------------------------------------------------------------------- 1 | name = "YUZHEN-NETWORK" 2 | owner = "YuzhenQin" 3 | description = "Yuzhen Network" 4 | source = "Internet" 5 | valid = true 6 | -------------------------------------------------------------------------------- /asn/AS211876.toml: -------------------------------------------------------------------------------- 1 | name = "FIXMIX-GEN" 2 | owner = "David Liu" 3 | description = "fixmix Technologies" 4 | source = "Internet" 5 | -------------------------------------------------------------------------------- /asn/AS213262.toml: -------------------------------------------------------------------------------- 1 | name = "Moe" 2 | description = "Moe Overflow Electric" 3 | owner = "Moe" 4 | source = "Internet" 5 | valid = true 6 | -------------------------------------------------------------------------------- /asn/AS4201270000.toml: -------------------------------------------------------------------------------- 1 | name = "NeoNetwork Origin" 2 | owner = "Neo_Chen" 3 | -------------------------------------------------------------------------------- /asn/AS4201270001.toml: -------------------------------------------------------------------------------- 1 | name = "NiceLabs Exchange" 2 | owner = "septs" 3 | -------------------------------------------------------------------------------- /asn/AS4201270002.toml: -------------------------------------------------------------------------------- 1 | name = "[transferable]" 2 | owner = "septs" 3 | -------------------------------------------------------------------------------- /asn/AS4201270003.toml: -------------------------------------------------------------------------------- 1 | name = "Stone Network" 2 | 3 | owner = "stone" 4 | -------------------------------------------------------------------------------- /asn/AS4201270004.toml: -------------------------------------------------------------------------------- 1 | name = "frank" 2 | owner = "frank" 3 | -------------------------------------------------------------------------------- /asn/AS4201270005.toml: -------------------------------------------------------------------------------- 1 | name = "MagicNeko CN(Optical Cable Project in Northeast China)(=141706)" 2 | owner = "magicneko" 3 | description = "MagicNeko CN(Optical Cable Project in Northeast China)" 4 | 5 | -------------------------------------------------------------------------------- /asn/AS4201270006.toml: -------------------------------------------------------------------------------- 1 | name = "Jerry Network" 2 | owner = "JerryXiao" 3 | -------------------------------------------------------------------------------- /asn/AS4201270007.toml: -------------------------------------------------------------------------------- 1 | name = "Staph" 2 | owner = "Staph" 3 | -------------------------------------------------------------------------------- /asn/AS4201270008.toml: -------------------------------------------------------------------------------- 1 | name = "MagicNeko ASIA (=140913)" 2 | owner = "magicneko" 3 | description = "MagicNeko ASIA (Old project ASN)" 4 | 5 | -------------------------------------------------------------------------------- /asn/AS4201270010.toml: -------------------------------------------------------------------------------- 1 | name = "Lan Tian" 2 | owner = "Lan Tian" 3 | -------------------------------------------------------------------------------- /asn/AS4201270011.toml: -------------------------------------------------------------------------------- 1 | name = "LINE-NZ" 2 | owner = "LINE-NZ" 3 | -------------------------------------------------------------------------------- /asn/AS4201270012.toml: -------------------------------------------------------------------------------- 1 | name = "Yhi Interconnection" 2 | owner = "Junde Yhi" 3 | -------------------------------------------------------------------------------- /asn/AS4201270013.toml: -------------------------------------------------------------------------------- 1 | name = "NDOSKRNL" 2 | owner = "Ndoskrnl" 3 | description = "Ndoskrnl's Network" 4 | -------------------------------------------------------------------------------- /asn/AS4201270014.toml: -------------------------------------------------------------------------------- 1 | name = "leedagee" 2 | owner = "leedagee" 3 | -------------------------------------------------------------------------------- /asn/AS4201270015.toml: -------------------------------------------------------------------------------- 1 | name = "James58899" 2 | owner = "James58899" 3 | -------------------------------------------------------------------------------- /asn/AS4201270016.toml: -------------------------------------------------------------------------------- 1 | name = "Moecast Network" 2 | owner = "liangjw" 3 | description = "Moecast Network NeoNetwork Service" 4 | -------------------------------------------------------------------------------- /asn/AS4201270017.toml: -------------------------------------------------------------------------------- 1 | name = "BAOSHUO-AS-NEO" 2 | owner = "Ren Baoshuo" 3 | description = "Baoshuo Neo Network" 4 | -------------------------------------------------------------------------------- /asn/AS4201270018.toml: -------------------------------------------------------------------------------- 1 | name = "caxap Network" 2 | owner = "caxap" 3 | -------------------------------------------------------------------------------- /asn/AS4201270019.toml: -------------------------------------------------------------------------------- 1 | name = "Cupkappu" 2 | owner = "Cupkappu" 3 | desc = "Cup neonetwork" 4 | -------------------------------------------------------------------------------- /asn/AS4201270020.toml: -------------------------------------------------------------------------------- 1 | name = "Edward_P" 2 | owner = "Edward_P" 3 | desc = "Edward_P's network" 4 | -------------------------------------------------------------------------------- /asn/AS4201270021.toml: -------------------------------------------------------------------------------- 1 | name = "POTATO-NEO" 2 | owner = "David Liu" 3 | description = "PotatoNet @ NeoNetwork" 4 | -------------------------------------------------------------------------------- /asn/AS4201270022.toml: -------------------------------------------------------------------------------- 1 | name = "lilydjwg" 2 | owner = "lilydjwg" 3 | desc = "lilydjwg's network" 4 | -------------------------------------------------------------------------------- /asn/AS4201270030.toml: -------------------------------------------------------------------------------- 1 | name = "IWARP-NEO" 2 | owner = "Yux" 3 | desc = "IWARP Global Experimental NeoNetwork" 4 | 5 | -------------------------------------------------------------------------------- /asn/AS4201270036.toml: -------------------------------------------------------------------------------- 1 | name = "AS-NEO-TSINGYAO-IX36" 2 | owner = "TsingYao" 3 | description = "Internet eXchange 36 For TsingYao Neo Network" 4 | -------------------------------------------------------------------------------- /asn/AS4201270037.toml: -------------------------------------------------------------------------------- 1 | name = "FUNNYSYC-AS" 2 | owner = "funnysyc" 3 | source = "NeoNetwork" 4 | description = "FunnySYC Network" 5 | -------------------------------------------------------------------------------- /asn/AS4201270039.toml: -------------------------------------------------------------------------------- 1 | name = "SARU-AS-NEO" 2 | owner = "DannyAAM" 3 | description = "Saru Network @ NeoNetwork" 4 | -------------------------------------------------------------------------------- /asn/AS4201270080.toml: -------------------------------------------------------------------------------- 1 | name = "HANAKO-NETWORK" 2 | owner = "Hanako" 3 | desc = "Hanako's NeoNetwork" -------------------------------------------------------------------------------- /asn/AS4201270099.toml: -------------------------------------------------------------------------------- 1 | name = "AS-NEO-TSINGYAO" 2 | owner = "TsingYao" 3 | description = "TsingYao Neo Network" 4 | -------------------------------------------------------------------------------- /asn/AS4201270100.toml: -------------------------------------------------------------------------------- 1 | name = "chanceyan" 2 | owner = "chanceyan" -------------------------------------------------------------------------------- /asn/AS4201270101.toml: -------------------------------------------------------------------------------- 1 | name = "AndyZhou Network" 2 | owner = "AndyZhou" 3 | -------------------------------------------------------------------------------- /asn/AS4201270186.toml: -------------------------------------------------------------------------------- 1 | name = "186526 Network" 2 | owner = "186526" 3 | source = "NeoNetwork" 4 | description = "Yet Another Global Network" 5 | -------------------------------------------------------------------------------- /asn/AS4201270233.toml: -------------------------------------------------------------------------------- 1 | name = "Rosmontis-Network" 2 | owner = "Rosmontic" 3 | source = "NeoNetwork" 4 | description = "Meow~" 5 | -------------------------------------------------------------------------------- /asn/AS4201270456.toml: -------------------------------------------------------------------------------- 1 | name = "HJTMESH-AS" 2 | owner = "huajitech" 3 | source = "NeoNetwork" 4 | description = "HUAJITECH Mesh Network" 5 | -------------------------------------------------------------------------------- /asn/AS4201270566.toml: -------------------------------------------------------------------------------- 1 | name = "AS-CDUBS-NEO" 2 | owner = "CDUBS" 3 | source = "NEO" 4 | -------------------------------------------------------------------------------- /asn/AS4201271111.toml: -------------------------------------------------------------------------------- 1 | name = "KSKB-NEO" 2 | owner = "KusakabeSi" 3 | desc = "Kusakabe's NeoNetwork" 4 | -------------------------------------------------------------------------------- /asn/AS4201271234.toml: -------------------------------------------------------------------------------- 1 | name = "WTM-ZONE-N" 2 | owner = "A1ca7raz" 3 | -------------------------------------------------------------------------------- /asn/AS4201271480.toml: -------------------------------------------------------------------------------- 1 | name = "NEKOID" 2 | owner = "nekoid" 3 | -------------------------------------------------------------------------------- /asn/AS4201271488.toml: -------------------------------------------------------------------------------- 1 | name = "Polar Bear" 2 | owner = "SyllaBear" 3 | -------------------------------------------------------------------------------- /asn/AS4201271877.toml: -------------------------------------------------------------------------------- 1 | name = "Lily_Network" 2 | owner = "Lily" 3 | description = "Lily Network" -------------------------------------------------------------------------------- /asn/AS4201272032.toml: -------------------------------------------------------------------------------- 1 | name = "LapisNetwork-NEO" 2 | owner = "Razuritta" 3 | -------------------------------------------------------------------------------- /asn/AS4201272923.toml: -------------------------------------------------------------------------------- 1 | name = "AS-BANDURA-NEO" 2 | owner = "mark22k" 3 | source = "NEO" 4 | -------------------------------------------------------------------------------- /asn/AS4201273722.toml: -------------------------------------------------------------------------------- 1 | name = "Iu-yang1-NeoNetwork" 2 | owner = "Iu-yang1" 3 | source = "NeoNetwork" 4 | description = "Iu-yang1-ASN" -------------------------------------------------------------------------------- /asn/AS4201273947.toml: -------------------------------------------------------------------------------- 1 | name = "HAWKINS-NEO-AS" 2 | owner = "HawkinsSherpherd" 3 | description = "Site network for Hawkins" 4 | -------------------------------------------------------------------------------- /asn/AS4201279999.toml: -------------------------------------------------------------------------------- 1 | name = "Hydro-Neo-Network" 2 | owner = "undefined-moe" 3 | -------------------------------------------------------------------------------- /asn/AS4242420140.toml: -------------------------------------------------------------------------------- 1 | name = "Yangfl Network" 2 | owner = "Yangfl" 3 | -------------------------------------------------------------------------------- /asn/AS4242420247.toml: -------------------------------------------------------------------------------- 1 | name = "BAOSHUO-AS-DN42" 2 | owner = "Ren Baoshuo" 3 | description = "Baoshuo DN42 Network" -------------------------------------------------------------------------------- /asn/AS4242420275.toml: -------------------------------------------------------------------------------- 1 | name = "AS-STARSTORM42-DN42" 2 | owner = "starstorm42" 3 | source = "DN42" 4 | -------------------------------------------------------------------------------- /asn/AS4242420288.toml: -------------------------------------------------------------------------------- 1 | name = "IWARP-DN42" 2 | owner = "Yux" 3 | desc = "IWARP DN42 Network" 4 | -------------------------------------------------------------------------------- /asn/AS4242420308.toml: -------------------------------------------------------------------------------- 1 | name = "VILLISEK" 2 | owner = "VILLISEK" 3 | desc = "VILLISEK network" 4 | source = "DN42" 5 | -------------------------------------------------------------------------------- /asn/AS4242420458.toml: -------------------------------------------------------------------------------- 1 | name = "HUAJINET" 2 | owner = "huajitech" 3 | source = "DN42" 4 | -------------------------------------------------------------------------------- /asn/AS4242420624.toml: -------------------------------------------------------------------------------- 1 | name = "FTHASDD" 2 | owner = "fthasdd" 3 | desc = "Research Network of Alan Feng" 4 | source = "DN42" 5 | -------------------------------------------------------------------------------- /asn/AS4242420803.toml: -------------------------------------------------------------------------------- 1 | name = "BILL-0803-ASN" 2 | owner = "Yukari" 3 | description = "Billchen's Network" 4 | -------------------------------------------------------------------------------- /asn/AS4242420916.toml: -------------------------------------------------------------------------------- 1 | name = "alanyhq" 2 | owner = "alanyhq" 3 | description = "alanyhq main" 4 | -------------------------------------------------------------------------------- /asn/AS4242421025.toml: -------------------------------------------------------------------------------- 1 | name = "NextMoe Neo-Network Intermediate Access Project" 2 | owner = "icecat" 3 | description = "NextMoe Neo-Network Intermediate Access Project" 4 | -------------------------------------------------------------------------------- /asn/AS4242421037.toml: -------------------------------------------------------------------------------- 1 | name = "LibreHouse" 2 | owner = "LibreHouse" 3 | -------------------------------------------------------------------------------- /asn/AS4242421181.toml: -------------------------------------------------------------------------------- 1 | name = "AS-NEVLEZAY-DN42" 2 | owner = "nevlezay80" 3 | source = "DN42" 4 | -------------------------------------------------------------------------------- /asn/AS4242421214.toml: -------------------------------------------------------------------------------- 1 | name = "Yi-Network" 2 | owner = "SteveYi" 3 | -------------------------------------------------------------------------------- /asn/AS4242421331.toml: -------------------------------------------------------------------------------- 1 | name = "Niantic Network" 2 | owner = "Yukari" 3 | description = "Niantic Network Backbone" 4 | -------------------------------------------------------------------------------- /asn/AS4242421332.toml: -------------------------------------------------------------------------------- 1 | name = "Niantic Network CN" 2 | owner = "Yukari" 3 | description = "Niantic Network China" 4 | -------------------------------------------------------------------------------- /asn/AS4242421876.toml: -------------------------------------------------------------------------------- 1 | name = "POTATO-42" 2 | owner = "David Liu" 3 | description = "PotatoNet @ DN42" 4 | -------------------------------------------------------------------------------- /asn/AS4242422189.toml: -------------------------------------------------------------------------------- 1 | name = "IEDON-NET-AS" 2 | owner = "iEdon" 3 | description = "iEdon Networks" 4 | -------------------------------------------------------------------------------- /asn/AS4242422439.toml: -------------------------------------------------------------------------------- 1 | name = "SARU-AS-DN42" 2 | owner = "DannyAAM" 3 | source = "DN42" 4 | description = "Saru Network @ DN42 @ NeoNetwork" 5 | -------------------------------------------------------------------------------- /asn/AS4242422458.toml: -------------------------------------------------------------------------------- 1 | name = "PIGEONHOLE-AS" 2 | owner = "huajitech" 3 | source = "DN42" 4 | -------------------------------------------------------------------------------- /asn/AS4242422464.toml: -------------------------------------------------------------------------------- 1 | name = "Yura Network" 2 | owner = "Yura" 3 | description = "Yura NeoNetwork Backbone" 4 | -------------------------------------------------------------------------------- /asn/AS4242422923.toml: -------------------------------------------------------------------------------- 1 | name = "AS-BANDURA-DN42" 2 | owner = "mark22k" 3 | source = "DN42" 4 | -------------------------------------------------------------------------------- /asn/AS4242423618.toml: -------------------------------------------------------------------------------- 1 | name = "Jerry AS" 2 | owner = "JerryXiao" 3 | -------------------------------------------------------------------------------- /asn/AS4242423699.toml: -------------------------------------------------------------------------------- 1 | name = "AS-NEO-TSINGYAO" 2 | owner = "TsingYao" 3 | description = "TsingYao Neo Network" 4 | -------------------------------------------------------------------------------- /asn/AS4242423947.toml: -------------------------------------------------------------------------------- 1 | name = "SERNET-DN42" 2 | owner = "HawkinsSherpherd" 3 | -------------------------------------------------------------------------------- /ca/neonetwork.crt: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICejCCAiCgAwIBAgIUBVC5zV2t9cMtO1cyoaEx5V329NowCgYIKoZIzj0EAwIw 3 | ZzETMBEGA1UECgwKTmVvTmV0d29yazEpMCcGA1UECwwgTmVvTmV0d29yayBDZXJ0 4 | aWZpY2F0ZSBBdXRob3JpdHkxJTAjBgNVBAMMHE5lb05ldHdvcmsgUm9vdCBBdXRo 5 | b3JpdHkgQ0EwHhcNMjEwNTI2MDE0MDQzWhcNNDEwNTIxMDE0MDQzWjBnMRMwEQYD 6 | VQQKDApOZW9OZXR3b3JrMSkwJwYDVQQLDCBOZW9OZXR3b3JrIENlcnRpZmljYXRl 7 | IEF1dGhvcml0eTElMCMGA1UEAwwcTmVvTmV0d29yayBSb290IEF1dGhvcml0eSBD 8 | QTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABFEpUHGEnSI1D2ykLEK0r1+y6d69 9 | ppxWUQllLtMMzhGjtwSUs5ZkTrXZD+x1sy33VbBEydBG11lj7TQ1V69eiVujgakw 10 | gaYwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFMSp 11 | 92xUVvXDo9wyAOxEIJli2ZdfMB8GA1UdIwQYMBaAFMSp92xUVvXDo9wyAOxEIJli 12 | 2ZdfMEMGA1UdHgQ8MDqgODAGggQubmVvMAqHCAp/AAD//wAAMCKHIP0QAScAAAAA 13 | AAAAAAAAAAD/////AAAAAAAAAAAAAAAAMAoGCCqGSM49BAMCA0gAMEUCIGWU9XP0 14 | oYRMlkE6dHwlTa6TiBoVJITff8H+ztpNFSMFAiEA51SikWvvZZF/hljwk+ODPAzS 15 | ohp/zVKHPitEizwX3g8= 16 | -----END CERTIFICATE----- 17 | -------------------------------------------------------------------------------- /dns/db.10.127: -------------------------------------------------------------------------------- 1 | ; NeoNetwork DNS Record 2 | $TTL 3600 3 | @ IN SOA root-dns.neo. root.neo. ( 4 | 4096 ; Serial 5 | 900 ; Refresh 6 | 900 ; Retry 7 | 86400 ; Expire 8 | 900 ) ; Negative Cache TTL 9 | ; 10 | @ IN NS root-dns.neo. 11 | 12 | ; NeoNetwork Origin (AS4201270000) 13 | 22.2 IN PTR NeoVAX.neo. 14 | 63.110 IN PTR NeoVAX.neo. 15 | 160.16 IN PTR NeoVAX.neo. 16 | 1.2 IN PTR NeoSystem.neo. 17 | 80.16 IN PTR NeoSystem.neo. 18 | 127.2 IN PTR NeoRouter.neo. 19 | 1.110 IN PTR NeoRouter.neo. 20 | 16.16 IN PTR NeoRouter.neo. 21 | 1.1 IN PTR NeoWRT.neo. 22 | 9.16 IN PTR NeoWRT.neo. 23 | 16.1 IN PTR NeoWorkstation.neo. 24 | 8.16 IN PTR NeoWorkstation.neo. 25 | 76.16 IN PTR NeoKSKB.neo. 26 | 4.255 IN PTR fsnvax.neo. 27 | 240.16 IN PTR fsnvax.neo. 28 | 64.110 IN PTR NeoPi.neo. 29 | 24.16 IN PTR NeoPi.neo. 30 | 31.16 IN PTR NeoRTK.neo. 31 | 32.16 IN PTR NeoServer.neo. 32 | 86.2 IN PTR NeoServer.neo. 33 | 65.2 IN PTR PTYRouter.neo. 34 | ; End of AS4201270000 35 | 36 | 1.233 IN PTR liqingge.user-icecat.eth-ether5.cn.magicneko.neo. 37 | 1.234 IN PTR liqingge.user-icecat.eth-ether5.cn.magicneko.neo. 38 | 8.4 IN PTR koishi-v4.up-core.vtap-hentai-bb.hk.magicneko.neo. 39 | 10.4 IN PTR luotianyi-v4.up.vtap-hentai-bb.hk.magicneko.neo. 40 | 15.4 IN PTR yuezhengling-v4.up.vtap-hentai-bb.jp.magicneko.neo. 41 | 42 | 1.14 IN PTR gr-0-1-0-0.cr2.hkg1.licson.neo. 43 | 2.14 IN PTR moecast.gr-0-1-0-0.cr2.hkg1.licson.neo. 44 | 5.14 IN PTR gr-0-1-0-1.cr2.hkg1.licson.neo. 45 | 6.14 IN PTR yura.gr-0-1-0-1.cr2.hkg1.licson.neo. 46 | 9.14 IN PTR gr-0-1-0-2.cr2.hkg1.licson.neo. 47 | 10.14 IN PTR neochen.gr-0-1-0-2.cr2.hkg1.licson.neo. 48 | 13.14 IN PTR gr-0-1-0-3.cr2.hkg1.licson.neo. 49 | 14.14 IN PTR jerry.gr-0-1-0-3.cr2.hkg1.licson.neo. 50 | 17.14 IN PTR gr-0-1-0-4.cr2.hkg1.licson.neo. 51 | 18.14 IN PTR yuetan.gr-0-1-0-4.cr2.hkg1.licson.neo. 52 | 21.14 IN PTR gr-0-1-0-5.cr2.hkg1.licson.neo. 53 | 22.14 IN PTR moecast.gr-0-1-0-5.cr2.hkg1.licson.neo. 54 | 1.15 IN PTR ae-0-1.cr2.hkg1.licson.neo. 55 | 58.15 IN PTR live.licson.neo. 56 | 57 | 3.8 IN PTR librehs.neo. 58 | 2.8 IN PTR blog.librehs.neo. 59 | 60 | 1.26 IN PTR home.edwardp.neo. 61 | 34.18 IN PTR hkg.edwardp.neo. 62 | 63 | 137.8 IN PTR lily.neo. 64 | 65 | ; Loopback Addresses 66 | 67 | 1.255 IN PTR NeoPDP-11.neo. 68 | 4.255 IN PTR fsnvax.neo. 69 | 18.255 IN PTR icecat-video.neo. 70 | 39.255 IN PTR any.ns.saru.neo. 71 | 53.255 IN PTR root-dns.neo. 72 | 54.255 IN PTR dns.neo. 73 | 56.255 IN PTR frank-hsinchu-1.neo. 74 | 80.255 IN PTR NeoSystem.neo. 75 | 117.255 IN PTR magicneko-tw.neo. 76 | 77 | ; DELEGATED ZONES 78 | 79 | 7 IN NS ns1.staph.neo. 80 | 81 | 9 IN NS ns1.jerry.neo. 82 | 9 IN NS ns2.jerry.neo. 83 | 9 IN NS ns3.jerry.neo. 84 | 9 IN DS 35017 13 2 31AA09841AF1F44753F0733ECD32A19E45368AAD4136B6AC75A3DCD257EFAA5C 85 | 86 | 10 IN NS ns-anycast.lantian.neo. 87 | 10 IN NS ns1.lantian.neo. 88 | 10 IN NS ns2.lantian.neo. 89 | 10 IN NS ns3.lantian.neo. 90 | 10 IN NS ns4.lantian.neo. 91 | 10 IN NS ns5.lantian.neo. 92 | 10 IN DS 53292 13 1 13DCA067F09A9937FC8F5B649DF3A84EDEF70294 93 | 10 IN DS 53292 13 2 7AC5C59806459C390DE0A078DE05F726C882D362E307F747AE358C1A3610228B 94 | 10 IN DS 53292 13 4 17C4FC53AE45A90840779DF75A5640E20126F732F69BFA848C878AC008484368A9B6325B31ED70F5FD77D9676545667C 95 | 96 | 12 IN NS ns1.yangfl.dn42. 97 | 12 IN NS ns2.yangfl.dn42. 98 | 99 | 20 IN NS ns1.an.dn42. 100 | 101 | 21 IN NS ns.iedon.neo. 102 | 103 | 30 IN NS ns1.iwarp.neo. 104 | 105 | 127 IN NS ns1.yura.dn42. 106 | 127 IN NS ns2.yura.dn42. 107 | 108 | 66 IN NS ns1.potato.neo. 109 | 66 IN NS ns2.potato.neo. 110 | 66 IN NS ns3.potato.neo. 111 | 66 IN DS 2356 7 2 46A410B6D465D60D2AEBE80135E7F7374CDA51F70AFEEA43445203509B118E66 112 | 113 | 99 IN NS ns1.tsingyao.neo. 114 | 99 IN NS ns2.tsingyao.neo. 115 | 116 | 111 IN NS ns.kskb.neo. 117 | 118 | 45 IN NS ns0.hmn.neo. 119 | 120 | 186 IN NS ns1.186526.dn42. 121 | 186 IN NS ns2.186526.dn42. 122 | 123 | 80 IN NS ns.hanako.neo. 124 | 125 | 39 IN NS lb.ns.saru.neo. 126 | 39 IN DS 34424 13 2 5028EE969AD85AA072A725C371F116B3617DFB8AEF1DAF62CAC041B7AE379B74 127 | 128 | 180 IN NS anycast.luna.neo. 129 | 180 IN NS anycast.lily.dn42. 130 | 131 | 149 IN NS ns1.bandura.neo. 132 | 149 IN DS 20940 15 2 75AA55617D952424CD65DEDE64F500F4B40B80AE48E7BC21E0E98CEDCA040CCE 133 | 134 | 37 IN NS ns.syc.neo. 135 | 136 | 192 IN NS ns1.nevlezay.neo. 137 | 192 IN NS ns2.nevlezay.neo. 138 | 139 | 134 IN NS ns.razu.neo. 140 | 141 | 20 IN NS ns1.wtm.neo. 142 | 20 IN NS ns2.wtm.neo. 143 | 144 | 217 IN NS ns1.hawkins.neo. 145 | 217 IN NS ns2.hawkins.neo. 146 | 147 | 6 IN NS ns.andyzhou.neo. 148 | -------------------------------------------------------------------------------- /dns/db.fd10.127: -------------------------------------------------------------------------------- 1 | ; NeoNetwork DNS Record 2 | $TTL 3600 3 | @ IN SOA root-dns.neo. root.neo. ( 4 | 4096 ; Serial 5 | 900 ; Refresh 6 | 900 ; Retry 7 | 86400 ; Expire 8 | 900 ) ; Negative Cache TTL 9 | ; 10 | @ IN NS root-dns.neo. 11 | 12 | ; NeoNetwork Origin (AS4201270000) 13 | 2.2.0.0.2.0.0.0.0.0.0.0.0.0.0.0.f.d.9.5.7.3.f.5 IN PTR NeoVAX.neo. 14 | 1.0.0.0.2.0.0.0.0.0.0.0.0.0.0.0.f.d.9.5.7.3.f.5 IN PTR NeoSystem.neo. 15 | 7.2.1.0.2.0.0.0.0.0.0.0.0.0.0.0.f.d.9.5.7.3.f.5 IN PTR NeoRouter.neo. 16 | 1.0.0.0.1.0.0.0.0.0.0.0.0.0.0.0.f.d.9.5.7.3.f.5 IN PTR NeoWRT.neo. 17 | 6.1.0.0.1.0.0.0.0.0.0.0.0.0.0.0.f.d.9.5.7.3.f.5 IN PTR NeoWorkstation.neo. 18 | 6.7.0.0.6.1.0.0.0.0.0.0.0.0.0.0.f.d.9.5.7.3.f.5 IN PTR NeoKSKB.neo. 19 | 4.0.0.0.5.5.2.0.0.0.0.0.0.0.0.0.f.d.9.5.7.3.f.5 IN PTR fsnvax.neo. 20 | 4.6.0.0.0.1.1.0.0.0.0.0.0.0.0.0.f.d.9.5.7.3.f.5 IN PTR NeoPi.neo. 21 | 1.3.0.0.6.1.0.0.0.0.0.0.0.0.0.0.f.d.9.5.7.3.f.5 IN PTR NeoRTK.neo. 22 | 6.8.0.0.2.0.0.0.0.0.0.0.0.0.0.0.f.d.9.5.7.3.f.5 IN PTR NeoServer.neo. 23 | 5.6.0.0.2.0.0.0.0.0.0.0.0.0.0.0.f.d.9.5.7.3.f.5 IN PTR PTYRouter.neo. 24 | ; End of AS4201270000 25 | 26 | 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.c.3.c.1.3.3.2.0 IN PTR liqingge.router.br-koishi.lo.she.as141706.koishi.moe. 27 | 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.f.2.f.2 IN PTR home.edwardp.neo. 28 | 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.3.3.3.2.f.2.f.2 IN PTR home.edwardp.neo. 29 | 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.4.3.3.2.f.2.f.2 IN PTR hkg.edwardp.neo. 30 | 31 | 7.3.1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.e.7.a.b IN PTR lily.neo. 32 | 33 | ; Loopback Addresses 34 | 35 | 0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.3.5.0.0.f.f.f.f IN PTR root-dns.neo. 36 | 37 | ; DELEGATED ZONES 38 | 3.5.0.0 IN NS ns1.jerry.neo. 39 | 3.5.0.0 IN NS ns2.jerry.neo. 40 | 3.5.0.0 IN NS ns3.jerry.neo. 41 | 3.5.0.0 IN DS 53626 13 2 F7F6AFCCA1CEC26E2A6EE9FAC9E11975260F00B8DC287D0B0FF428F775C62C5D 42 | 43 | 0.1.0.0 IN NS ns-anycast.lantian.neo. 44 | 0.1.0.0 IN NS ns1.lantian.neo. 45 | 0.1.0.0 IN NS ns2.lantian.neo. 46 | 0.1.0.0 IN NS ns3.lantian.neo. 47 | 0.1.0.0 IN NS ns4.lantian.neo. 48 | 0.1.0.0 IN NS ns5.lantian.neo. 49 | 0.1.0.0 IN DS 11807 13 1 6B42025140C9BBDDA0460429B5641651B1553D78 50 | 0.1.0.0 IN DS 11807 13 2 BBADC27B4EBFC90CBA79F4E69E4F167B9FFAF664B071F4CC46196902054B0910 51 | 0.1.0.0 IN DS 11807 13 4 CB48D8BABA0E44B9D363D3142463014EBDE6D28E15997EA8FB5FDBD42FDCF1CF3846E63925A5910DDD6A192571AEBD93 52 | 53 | 0.3.0.0 IN NS ns1.iwarp.neo. 54 | 55 | 7.0.0.0 IN NS ns1.staph.neo. 56 | 57 | 7.2.1.0 IN NS ns1.yura.dn42. 58 | 7.2.1.0 IN NS ns2.yura.dn42. 59 | 60 | 6.6.a.a IN NS ns1.potato.neo. 61 | 6.6.a.a IN NS ns2.potato.neo. 62 | 6.6.a.a IN NS ns3.potato.neo. 63 | 6.6.a.a IN DS 31105 7 2 CA2C41EA47978F1728FE49778CDC2882AD2725E23081AE72F7D2ECE5FF95E20D 64 | 65 | 8.8.4.1 IN NS ns1.bear.neo. 66 | 67 | c.c.0.0 IN NS ns1.an.dn42. 68 | 69 | 9.9.0.0 IN NS ns1.tsingyao.neo. 70 | 9.9.0.0 IN NS ns2.tsingyao.neo. 71 | 72 | 3.2.0.0 IN NS ns.leedagee.neo. 73 | 74 | f.0.0.e IN NS ns.kskb.neo. 75 | 76 | 5.4.0.0 IN NS ns0.hmn.neo. 77 | 2.0.0.7.2.0.0 IN NS ns0.hmn.neo. 78 | 79 | 6.8.1.0 IN NS ns1.186526.dn42. 80 | 6.8.1.0 IN NS ns2.186526.dn42. 81 | 82 | 0.8.0.0 IN NS ns.hanako.neo. 83 | 84 | 9.3.0.0 IN NS lb.ns.saru.neo. 85 | 9.3.0.0 IN DS 57464 13 2 B9FA37834CD039D84856C12BAA2E1BDF6968D5AB40D60510AEB64ACC5E6B051E 86 | 87 | 7.7.8.1 IN NS anycast.luna.neo. 88 | 7.7.8.1 IN NS anycast.lily.dn42. 89 | 90 | 1.3.c.f IN NS ns1.bandura.neo. 91 | 1.3.c.f IN DS 23486 15 2 AD11FF63F805D6E85CE4D85965C73339D9CC0619676B481A8647D9724BBC6182 92 | 93 | 7.3.0.0 IN NS ns.syc.neo. 94 | 95 | 2.3.0.2 IN NS ns.razu.neo. 96 | 97 | 6.6.0.0 IN NS ns1.wtm.neo. 98 | 6.6.0.0 IN NS ns2.wtm.neo. 99 | 100 | 7.1.2.0 IN NS ns1.hawkins.neo. 101 | 7.1.2.0 IN NS ns2.hawkins.neo. 102 | 103 | 6.0.0.0 IN NS ns.andyzhou.neo. 104 | -------------------------------------------------------------------------------- /dns/dnssec/10.127.keys: -------------------------------------------------------------------------------- 1 | ; KSK owner entity/JerryXiao 2 | 127.10.in-addr.arpa. 3600 IN DNSKEY 257 3 13 QVgt1c+OlL9X9jrnD39njabYFCi2eEYjLI5AvpXT6HWAF1BbAOfNm/56 4OeU03oDcCgQ6zNQMV0FNPvrk53K0w== 3 | ; ZSK owner entity/JerryXiao 4 | 127.10.in-addr.arpa. 3600 IN DNSKEY 256 3 13 tmr6/kCoMAtGpwQkLg3ONtQlm5FysG2l4mJcxVrqpb7BClNXVzdfvcJK 3NIu2/N/zUQrlMrW2CeJO4STSgvt+A== 5 | 6 | ; KSK owner entity/mark22k 7 | 127.10.in-addr.arpa. 3600 IN DNSKEY 257 3 15 PWTkwcNA5jJqNYSsyeHt0xnxh1wZQ5//UmMuMPi5DlU= 8 | ; ZSK owner entity/mark22k 9 | 127.10.in-addr.arpa. 3600 IN DNSKEY 256 3 15 Dex1JgKqrqb/3zIOQfTeoLJzQqWiy2SFV12u0eRjHqA= 10 | -------------------------------------------------------------------------------- /dns/dnssec/fd10.127.keys: -------------------------------------------------------------------------------- 1 | ; KSK owner entity/JerryXiao 2 | 7.2.1.0.0.1.d.f.ip6.arpa. 3600 IN DNSKEY 257 3 13 sI90N0KcwXtpqNDmsagKH/761EzsjSlGyYxx338qRrDlzRwXQPG6bO1m HoTdnKrWBcd1JqYM0/tgDXKep7dJgA== 3 | ; ZSK owner entity/JerryXiao 4 | 7.2.1.0.0.1.d.f.ip6.arpa. 3600 IN DNSKEY 256 3 13 fu+4con6sb7biVu866tpzq0w6IeFZWTlXSikshue3G26ftLMU0jz5tVV dqOMHP+CpXz9y0kQ6lOHmIlCzi4pAA== 5 | 6 | ; KSK owner entity/mark22k 7 | 7.2.1.0.0.1.d.f.ip6.arpa. 3600 IN DNSKEY 257 3 15 aneEeuuJL47gPJJzT6ZbOgB9HlKpQmkkPNJNvK2z1pI= 8 | ; ZSK owner entity/mark22k 9 | 7.2.1.0.0.1.d.f.ip6.arpa. 3600 IN DNSKEY 256 3 15 kWjvF2OneQhWQtosxqnqAuBNyDAXG8qDQ2gi6ziPyIo= 10 | -------------------------------------------------------------------------------- /dns/dnssec/neo.keys: -------------------------------------------------------------------------------- 1 | ; KSK owner entity/JerryXiao 2 | neo. 3600 IN DNSKEY 257 3 13 jDd4k21xTgqOFqtvQkeqdQs/RH5+SU+vFchqnOHk5yaEL6EQDOKNuYJ2 C4ld+tVHf007GgbKX6BC68uMU8iGIg== 3 | ; ZSK owner entity/JerryXiao 4 | neo. 3600 IN DNSKEY 256 3 13 oUcsKJykGOVwz58smxaygPFhm4PZEPKIukPO+HKbEBwGFnIbcamMsXFJ Gp2Wi7T5a0Z61IT/VxWLV4D7UhcAvg== 5 | 6 | ; KSK owner entity/mark22k 7 | neo. 3600 IN DNSKEY 257 3 15 eE/0MWGb7wYP4U/kf5mXCbE8tGIwo1U++dp22Fumo+g= 8 | ; ZSK owner entity/mark22k 9 | neo. 3600 IN DNSKEY 256 3 15 oAzPHJyXlawMglhQ6ymkj6Xx3zX5Awon0nyP9V3+DTc= 10 | -------------------------------------------------------------------------------- /dns/neonetwork: -------------------------------------------------------------------------------- 1 | ; NeoNetwork DNS Record 2 | $TTL 3600 3 | @ IN SOA root-dns.neo. root.neo. ( 4 | 4096 ; Serial 5 | 900 ; Refresh 6 | 900 ; Retry 7 | 86400 ; Expire 8 | 900 ) ; Negative Cache TTL 9 | ; 10 | 11 | ; Important Records 12 | @ IN NS root-dns.neo. 13 | @ IN TXT "Full-Table BGP on the way (tm)" 14 | root IN CNAME neo. 15 | neko IN TXT "helloworld" 16 | telegram IN TXT "https://t.me/NeoNetworkVPN" 17 | root-dns IN A 10.127.255.53 18 | root-dns IN AAAA fd10:127:ffff:53:: 19 | dns IN A 10.127.255.54 20 | dns IN AAAA fd10:127:53:53:: 21 | acme IN A 10.127.18.30 22 | acme IN AAAA fd10:127:53:223::1 23 | 24 | NeoVAX IN A 10.127.2.22 25 | NeoVAX IN AAAA fd10:127:5f37:59df::2:22 26 | NeoSystem IN A 10.127.2.1 27 | NeoSystem IN AAAA fd10:127:5f37:59df::2:1 28 | NeoRouter IN A 10.127.2.127 29 | NeoRouter IN AAAA fd10:127:5f37:59df::2:127 30 | NeoWRT IN A 10.127.1.1 31 | NeoWRT IN AAAA fd10:127:5f37:59df::1:1 32 | NeoWorkstation IN A 10.127.1.16 33 | NeoWorkstation IN AAAA fd10:127:5f37:59df::1:16 34 | NeoKSKB IN A 10.127.16.76 35 | NeoKSKB IN AAAA fd10:127:5f37:59df::16:76 36 | fsnvax IN A 10.127.255.4 37 | fsnvax IN AAAA fd10:127:5f37:59df::255:4 38 | NeoPi IN A 10.127.110.64 39 | NeoPi IN AAAA fd10:127:5f37:59df::110:64 40 | NeoRTK IN A 10.127.16.31 41 | NeoRTK IN AAAA fd10:127:5f37:59df::16:31 42 | NeoServer IN A 10.127.2.86 43 | NeoServer IN AAAA fd10:127:5f37:59df::2:86 44 | PTYRouter IN A 10.127.2.65 45 | PTYRouter IN AAAA fd10:127:5f37:59df::2:65 46 | 47 | home.edwardp IN A 10.127.26.1 48 | home.edwardp IN AAAA fd10:127:2f2f:2333::1 49 | hkg.edwardp IN A 10.127.18.34 50 | hkg.edwardp IN AAAA fd10:127:2f2f:2334::1 51 | edwardp IN CNAME home.edwardp 52 | mc.edwardp IN CNAME home.edwardp 53 | live.edwardp IN CNAME home.edwardp 54 | dynmap.edwardp IN CNAME home.edwardp 55 | schem.edwardp IN CNAME home.edwardp 56 | 57 | tv IN A 10.127.15.58 58 | 59 | lily IN A 10.127.8.137 60 | lily IN AAAA fd10:127:ba7e::137 61 | 62 | undefiend.moe IN A 10.127.88.1 63 | *.undefined.moe IN A 10.127.88.1 64 | undefiend.moe IN AAAA fd10:127:88::1 65 | *.undefined.moe IN AAAA fd10:127:88::1 66 | 67 | ; DELEGATED ZONES 68 | jerry IN NS ns1.jerry 69 | jerry IN NS ns2.jerry 70 | jerry IN NS ns3.jerry 71 | jerry IN DS 18792 13 2 2F335456EEE70FC4833886E5EEDC28E7195E90E2A337860B3E805D5EB9F3A804 72 | ns1.jerry IN A 10.127.8.193 73 | ns1.jerry IN AAAA fd10:127:53::1 74 | ns2.jerry IN A 10.127.8.216 75 | ns2.jerry IN AAAA fd10:127:53:100::1 76 | ns3.jerry IN A 10.127.8.208 77 | ns3.jerry IN AAAA fd10:127:53:200::1 78 | 79 | lantian IN NS ns-anycast.lantian 80 | lantian IN NS ns1.lantian 81 | lantian IN NS ns2.lantian 82 | lantian IN NS ns3.lantian 83 | lantian IN NS ns4.lantian 84 | lantian IN NS ns5.lantian 85 | lantian IN DS 47346 13 1 BF0E344C96838564CF9DBA3889AAE6E3DA5F6835 86 | lantian IN DS 47346 13 2 1023D2C40803BA13F2148BC67A09E50A3157EE3E7B1DC2C22041D3B981E976E3 87 | lantian IN DS 47346 13 4 1DBFA42E78F699241042E18061218CC2DEA7A69884E634165CE99AA5C65ECF4DF7DA16B382494A5AE7D781AB9A3BB1C5 88 | ns-anycast.lantian IN A 10.127.10.254 89 | ns-anycast.lantian IN AAAA fd10:127:10:2547::54 90 | ns1.lantian IN A 10.127.10.1 91 | ns1.lantian IN AAAA fd10:127:10:1::1 92 | ns2.lantian IN A 10.127.10.3 93 | ns2.lantian IN AAAA fd10:127:10:3::1 94 | ns3.lantian IN A 10.127.10.8 95 | ns3.lantian IN AAAA fd10:127:10:8::1 96 | ns4.lantian IN A 10.127.10.2 97 | ns4.lantian IN AAAA fd10:127:10:2::1 98 | ns5.lantian IN A 10.127.10.9 99 | ns5.lantian IN AAAA fd10:127:10:9::1 100 | 101 | iedon IN NS ns.iedon 102 | ns.iedon IN A 10.127.21.1 103 | 104 | staph IN NS ns1.staph 105 | staph IN NS ns2.staph 106 | staph IN DS 64592 13 2 1AF24492D8FAE84D99E05C9B9088DDB8A82003F3301A53F35EFEC1627BEADDBA 107 | ns1.staph IN A 10.127.8.185 108 | ns1.staph IN AAAA fd10:127:7::1 109 | ns2.staph IN A 10.127.8.190 110 | ns2.staph IN AAAA fd10:127:7::6 111 | aoscnet IN NS ns1.aoscnet 112 | aoscnet IN NS ns2.aoscnet 113 | aoscnet IN DS 27134 13 2 57145BCB903E0F0060BF94AA4EE5894DCA19D64E6B455A1C1864DA0FD4BA64E2 114 | ns1.aoscnet IN A 10.127.7.251 115 | ns1.aoscnet IN AAAA fd10:127:7:2672::1:1 116 | ns2.aoscnet IN A 10.127.7.252 117 | ns2.aoscnet IN AAAA fd10:127:7:2672::1:3 118 | 119 | yura IN NS ns.yura 120 | yura IN NS ns1.yura 121 | yura IN NS ns2.yura 122 | yura IN DS 63132 15 1 0E03FCE3B54D9FC84A12CC6CF36A71158AA88933 123 | yura IN DS 63132 15 2 75C0A884399D5ECA686EC35287CDAC2A756D94C30815A0055B88B068F3C947A7 124 | yura IN DS 63132 15 4 C4BB952FC40FA0185499A4E613864A29FC06FC8014299F2F3702A6E6420D3C054545A11566B95211C2C678F1F6F255F3 125 | ns.yura IN A 10.127.127.125 126 | ns.yura IN AAAA fd10:127:127:53:: 127 | ns1.yura IN AAAA fd10:127:127:53a::1 128 | ns2.yura IN AAAA fd10:127:127:53b::1 129 | 130 | potato IN NS ns1.potato 131 | potato IN NS ns2.potato 132 | potato IN NS ns3.potato 133 | potato IN DS 6841 7 2 B02CE6960F3FFC54AAAEA4FA26F050D911A7049158B0B35350E74CC78F04E183 134 | fixmix IN NS ns1.potato 135 | fixmix IN NS ns2.potato 136 | fixmix IN NS ns3.potato 137 | fixmix IN DS 5223 7 2 BF26524942A4FAFA08C0DDF71C2E56EDC3BC82EDBA8F86B0DF6070B378919840 138 | david IN NS ns1.potato 139 | david IN NS ns2.potato 140 | david IN NS ns3.potato 141 | david IN DS 14533 7 2 914D786DACF1C5D2C953515A425FB4BA4D644D7DECA7B6B60BBC487323479039 142 | ns1.potato IN A 10.127.66.59 143 | ns2.potato IN A 10.127.66.54 144 | ns3.potato IN A 10.127.66.52 145 | ns1.potato IN AAAA fd10:127:aa66:1010::1 146 | ns2.potato IN AAAA fd10:127:aa66:2010::1 147 | ns3.potato IN AAAA fd10:127:aa66:3010::1 148 | 149 | bear IN NS ns1.bear 150 | koala IN NS ns1.bear 151 | ns1.bear IN AAAA fd42:e621::53 152 | 153 | iwarp IN NS ns1.iwarp 154 | iwarp IN NS ns2.iwarp 155 | go IN NS ns1.iwarp 156 | go IN NS ns2.iwarp 157 | yux IN NS ns1.iwarp 158 | yux IN NS ns2.iwarp 159 | ns1.iwarp IN A 10.127.30.53 160 | ns1.iwarp IN AAAA fd10:127:30:ac53::1 161 | ns2.iwarp IN A 10.127.30.54 162 | ns2.iwarp IN AAAA fd10:127:30:ac54::1 163 | 164 | an IN NS ns1.an.dn42. 165 | 166 | dnswol IN NS ns1.dnswol 167 | dnswol IN NS ns2.dnswol 168 | dnswol IN DS 53285 14 1 88971c954d18aa1224a1b01e54c81dc6cd71a86e 169 | dnswol IN DS 53285 14 2 d782d7d9afec4e20082913fe2f23fd9e2c0e0ad7206fa389cadc4050d11b7e80 170 | dnswol IN DS 53285 14 4 1c0fcf050b4000de0648a8e25a8e809e35b7501c846ad785f07e2c4296610c305d217cb5113c34f937f62780e82b5e98 171 | ns1.dnswol IN A 10.127.99.50 172 | ns1.dnswol IN AAAA fd10:127:99::32:1 173 | ns2.dnswol IN A 10.127.99.51 174 | ns2.dnswol IN AAAA fd10:127:99::33:1 175 | 176 | tsingyao IN NS ns1.dnswol 177 | tsingyao IN NS ns2.dnswol 178 | 179 | leedagee IN NS ns.leedagee 180 | ns.leedagee IN A 10.127.8.129 181 | ns.leedagee IN AAAA fd10:127:23::1 182 | 183 | kskb IN NS ns.kskb 184 | ns.kskb IN A 10.127.111.15 185 | ns.kskb IN AAAA fd10:127:e00f:f::1 186 | 187 | hmn IN NS ns0.hmn 188 | ns0.hmn IN A 10.127.45.233 189 | ns0.hmn IN AAAA fd10:127:45:233::1 190 | 191 | hjt IN NS ns0.hmn 192 | 193 | hanako IN NS ns.hanako 194 | ns.hanako IN A 10.127.80.80 195 | ns.hanako IN AAAA fd10:127:80:aa00::1 196 | 197 | saru IN NS lb.ns.saru 198 | saru IN DS 42159 13 2 D8AF3E06E8D4E21C1FFA85CBE3DEC6E7DA06095283109D4289C4BBDF23283E1B 199 | lb.ns.saru IN A 10.127.39.193 200 | lb.ns.saru IN AAAA fd10:127:39:a000::3901 201 | lb.ns.saru IN AAAA fd10:127:39:a001::3901 202 | lb.ns.saru IN AAAA fd10:127:39:b000::3901 203 | lb.ns.saru IN AAAA fd10:127:39:c000::3901 204 | 205 | luna IN NS anycast.luna 206 | anycast.luna IN A 172.23.180.1 207 | anycast.luna IN AAAA fd42:1877:222c::1 208 | 209 | bandura IN NS ns1.bandura 210 | ns1.bandura IN A 10.127.149.242 211 | ns1.bandura IN AAAA fd10:127:fc31::42 212 | bandura IN DS 30344 15 2 92716A3A5226CDE664828B1346D3F621610E840D39070EB584A992552884B110 213 | 214 | syc IN NS ns.syc 215 | ns.syc IN A 10.127.37.1 216 | ns.syc IN AAAA fd10:127:37::1 217 | 218 | nevlezay IN NS ns1.nevlezay 219 | nevlezay IN NS ns2.nevlezay 220 | ns1.nevlezay IN A 10.127.192.0 221 | ns2.nevlezay IN A 10.127.192.1 222 | 223 | razu IN NS ns.razu 224 | ns.razu IN A 10.127.134.53 225 | ns.razu IN AAAA fd10:127:2032::53 226 | 227 | wtm IN NS ns1.wtm 228 | wtm IN NS ns2.wtm 229 | windtalker IN NS ns1.wtm 230 | windtalker IN NS ns2.wtm 231 | ns1.wtm IN A 10.127.20.222 232 | ns1.wtm IN AAAA fd10:127:66::222 233 | ns2.wtm IN A 10.127.20.223 234 | ns2.wtm IN AAAA fd10:127:66::223 235 | 236 | ns1.hawkins IN A 10.127.217.14 237 | ns1.hawkins IN AAAA fd10:127:217:53::1 238 | ns2.hawkins IN A 10.127.217.15 239 | ns2.hawkins IN AAAA fd10:127:217:53::2 240 | hawkins IN NS ns1.hawkins 241 | hawkins IN NS ns2.hawkins 242 | 243 | andyzhou IN NS ns.andyzhou 244 | ns.andyzhou IN A 10.127.6.1 245 | ns.andyzhou IN AAAA fd10:127:6::1 246 | -------------------------------------------------------------------------------- /dns/rfc2317.toml: -------------------------------------------------------------------------------- 1 | ["10.127.8.64/26"] 2 | NS = ["ns1.jerry.neo.", "ns2.jerry.neo.", "ns3.jerry.neo."] 3 | DS = ["12536 13 2 A2AEEFCDB5F0BB6C4AC075EF1034C5635AEFE5A2DA9E7FF7D8BBE53B5E61E8E3"] 4 | TTL = -1 5 | 6 | ["10.127.8.192/26"] 7 | NS = ["ns1.jerry.neo.", "ns2.jerry.neo.", "ns3.jerry.neo."] 8 | DS = ["24982 13 2 463EAE9D8248179806321A2ED3F05377234FD13DF0C2F20428C3B148F9C31B3D"] 9 | 10 | ["10.127.18.0/27"] 11 | NS = ["ns1.jerry.neo.", "ns2.jerry.neo.", "ns3.jerry.neo."] 12 | DS = ["18817 13 2 4E7B00D8C4EEB8969CC8DD2938B0172FEF136C106D5549CB0A3B5221912DB0AC"] 13 | 14 | ["10.127.8.160/27"] 15 | NS = ["ns1.staph.neo."] 16 | 17 | ["10.127.8.128/29"] 18 | NS = ["ns.leedagee.neo."] 19 | 20 | ["10.127.27.24/29"] 21 | NS = ["ns0.hmn.neo."] 22 | -------------------------------------------------------------------------------- /docs/CNAME: -------------------------------------------------------------------------------- 1 | neocloud.tw -------------------------------------------------------------------------------- /docs/footer.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /docs/header.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | NeoNetwork 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /docs/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NeoCloud/NeoNetwork/113c8373c4199bdb665f721d809e1c64835cf8dd/docs/icon.png -------------------------------------------------------------------------------- /docs/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | NeoNetwork 7 | 8 | 9 | 10 | 11 |

NeoNetwork

12 | 13 |

Yet another VPN network ready for peering!
14 | This network is connected with DN42
15 | Git Repo. here
16 | Pull requests are welcomed!
17 | Working language: zh_* / en_*

18 | 19 |

ROA

20 | 21 |

https://roa.neocloud.tw

22 | 23 |

IXs

24 | 25 |
neovax.neocloud.tw      (10.127.110.1,  ASN 4201270000)
26 | fsnvax.neocloud.tw      (10.127.16.240, ASN 4201270000)
27 | jpn.neo.jerryxiao.cc        (10.127.8.193,  ASN 4201270006)
28 | s.aureus.ga         (10.127.8.185,  ASN 4201270007)
29 | 
30 | 31 |

Address Allocation

32 | 33 |

All IPv4 addresses are under the range 10.127.0.0/16
34 | All IPv6 addresses are under the range fd10:127::/32
35 | see route 36 | and route6 for allocated subnet.

37 | 38 |

DNS

39 | 40 |

DNS Anycast is currently on 10.127.255.54 for IPv4 and fd10:127:53:53:: for IPv6. All domain names are under “.neo”.

41 | 42 |

Certificate Authority

43 | 44 |

Root certificate can be downloaded from here. An acmev2-api is available at https://acme.neo/acme/acme/directory.

45 | 46 |

Files and Directories

47 | 48 |
nodes.dot   Connection graph
49 | asn/        BGP AS Number allocation
50 | entity/     Entitys
51 | route/      Network subnet allocation
52 | vpn/        VPN configuration examples (Tinc & WireGuard)
53 | dns/        Bind9 DNS zone files and example configuration
54 | 
55 | 56 | 57 | -------------------------------------------------------------------------------- /docs/neostyle.css: -------------------------------------------------------------------------------- 1 | /* Neo_Chen's CSS stylesheet 2 | * 3 | * Released to public domain 4 | */ 5 | html { 6 | border-width: 4pt; 7 | border-style: solid; 8 | background-color:#c0c0c0; 9 | } 10 | 11 | h1 { 12 | font-family: Times, serif; 13 | font-size:36pt; 14 | text-align: center; 15 | color:#000000; 16 | border-style: solid; 17 | border-width: 1pt; 18 | background-color:#008; 19 | color:#fff 20 | } 21 | 22 | h2 { 23 | font-family: Times, serif; 24 | font-size:20pt; 25 | text-align: left; 26 | color:#000000; 27 | border-style: solid; 28 | border-width: 1pt; 29 | background-color:#808080; 30 | color:#fff 31 | } 32 | 33 | .mono, code { 34 | font-family: monospace; 35 | font-size:12pt; 36 | } 37 | 38 | .msrf { 39 | font-family: Courier,mono; 40 | font-size:9pt; 41 | } 42 | 43 | 44 | .srf, p { 45 | font-family: serif; 46 | font-size:12pt; 47 | } 48 | 49 | .srfb { 50 | font-family: Times,serif; 51 | font-size:18pt; 52 | } 53 | 54 | .srfb { 55 | font-family: Times,serif; 56 | font-size:18pt; 57 | } 58 | 59 | a:link { 60 | color: #008; 61 | } 62 | 63 | a:visited { 64 | color: #808; 65 | } 66 | 67 | a:hover { 68 | color: #000; 69 | background-color: #fff; 70 | } 71 | 72 | a:active { 73 | color: #088; 74 | } 75 | 76 | table, th, td { 77 | border: 2px solid black; 78 | border-collapse: collapse; 79 | font-family: monospace; 80 | font-size:12pt; 81 | } 82 | 83 | img { 84 | max-width: 100vw; 85 | width: 100%; 86 | } 87 | 88 | .whitebg, pre{ 89 | background-color: #fff; 90 | } 91 | -------------------------------------------------------------------------------- /document/asn.toml: -------------------------------------------------------------------------------- 1 | # Template file for the AS registry (asn/) 2 | # Before submission, please: 3 | # - Rename the file to "AS.toml", without the quotes. 4 | # - Remove any blank lines, comments, and unneeded options. 5 | 6 | # AS name (mandatory). Can be an arbitrary string. 7 | name = "" 8 | 9 | # AS owner (mandatory). This should match the ID (file name) of a registered 10 | # entity in entity/ . 11 | owner = "" 12 | 13 | # AS source (optional). Possible values are: 14 | # - NeoNetwork 15 | # - DN42 16 | # - Internet 17 | # Often you don't need to include this option: if the AS number falls into the 18 | # range of NeoNetwork or DN42, then our script can automatically find it out. 19 | #source = "" 20 | 21 | # AS description (optional). Can be an arbitrary string. 22 | description = "" 23 | 24 | # AS ownership validation status for NeoNetwork (optional). If the AS is 25 | # registered in other NICs, and members of NeoNetwork have validated the 26 | # ownership status, then this can be set to true. Otherwise, remove this option. 27 | #valid = false 28 | -------------------------------------------------------------------------------- /document/entity.toml: -------------------------------------------------------------------------------- 1 | # Template file for the entity registry (entity/) 2 | # Before submission, please: 3 | # - Rename the file to ".toml", without the quotes. 4 | # - Remove any blank lines, comments, and unneeded options. 5 | 6 | # Entity name (optional). Can be an arbitrary string. 7 | name = "" 8 | 9 | # Babel (optional) to describe the working language of this entity. See 10 | # https://en.wikipedia.org/wiki/Wikipedia:Babel for how to fill this list. 11 | babel = [] 12 | 13 | # Entity contacts (optional). The listed options are all optional. 14 | [contact] 15 | email = "" 16 | irc = "" 17 | telegram = "" 18 | mastodon = "" 19 | github = "" 20 | 21 | # Details on identifying the entity online (optional). Usually, a PGP key 22 | # fingerprint can be put here to help others communicate with the entity more 23 | # securely. 24 | [persona] 25 | pgp = "" 26 | -------------------------------------------------------------------------------- /document/recommended_setup.md: -------------------------------------------------------------------------------- 1 | # NeoNetwork Recommended Setup: 2 | 3 | ### Part 0: Routing Protocols 4 | 5 | * BGP for EGP, the use of MP-BGP is encouraged 6 | * OSPF for IGP, there's not much reason to use anything else these days, especially with pure software-based solution 7 | 8 | ### Part 1: Intra-AS (within your own AS) WireGuard configs 9 | 10 | * Use IPv4 Link-Local addresses in point-to-point tunnels (such that all internal routing is determined by your IGP of choice) 11 | * Only IPv6 loopback address is required to run OSPFv3 12 | * Actual IPv4/IPv6 address for a node should be on a loopback interface 13 | * Remember to set src addr to node addresses 14 | 15 | ### Part 2: Inter-AS (tunnels interfacing with other AS) WireGuard configs 16 | 17 | * Use Link-Local or Point-to-Point addresses, depending on your (or your peer's) taste 18 | * Older versions (before 8.5.1) of FRRouting have problems interfacing with BIRD when using Link-Local addresses, choose Point-to-Point in this case 19 | * Point-to-Point setup requires less config in FRRouting 20 | 21 | ### Part -1: (Un)Common Pitfalls 22 | 23 | * DO NOT RUN IGP ON AN INTERFACE THAT MIGHT CONTAIN PUBLIC IP (This kickstarts route flapping, use MACVLAN to avoid it) 24 | -------------------------------------------------------------------------------- /document/route.toml: -------------------------------------------------------------------------------- 1 | # Template file for the route registry (route/) 2 | # Before submission, please: 3 | # - Rename the file to "AS.toml", without the quotes. 4 | # - Remove any blank lines, comments, and unneeded options. 5 | 6 | # Multiple IP prefixes can be announced in one file: start every prefix with its 7 | # CIDR notation as the table name. 8 | ["10.127.0.0/32"] 9 | 10 | # IP network usage (mandatory). Possible values: 11 | # - subnet: this is a subnetwork announced by this AS. 12 | # - loopback: this is a loopback IP (mainly used in anycast). The IP prefix should be a /32 (ipv4) or /64 (ipv6) one. Overlap check is skipped. 13 | # If you have no idea what this is, please fill in "subnet". 14 | # Any other value is considered invalid and will result in this CIDR being skipped entirely. 15 | type = "" 16 | 17 | # IP network name (mandatory). 18 | name = "" 19 | 20 | # IP network description (optional). 21 | description = "" 22 | 23 | # Max length (optional). Default values: 29 for ipv4, 64 for ipv6 24 | max-len = 29 25 | 26 | # The supernet of this IP network (optional). Overlapping IP prefixes are 27 | # regarded as an error, so if this IP network is a subnet of another one, write 28 | # their IP prefix here. 29 | supernet = "" 30 | -------------------------------------------------------------------------------- /entity/186526.toml: -------------------------------------------------------------------------------- 1 | name = "186526" 2 | babel = ["zh", "en-3"] 3 | 4 | [contact] 5 | email = "i@186526.xyz" 6 | telegram = "real186526" 7 | github = "186526" 8 | 9 | [persona] 10 | pgp = "11aac9b085c85ee85e796251c7eb1e6b8cc5e51d" 11 | -------------------------------------------------------------------------------- /entity/A1ca7raz.toml: -------------------------------------------------------------------------------- 1 | name = "A1ca7raz" 2 | babel = [ "zh", "en-4" ] 3 | 4 | [contact] 5 | email = "aya@wtm.moe" 6 | github = "A1ca7raz" -------------------------------------------------------------------------------- /entity/AndyZhou.toml: -------------------------------------------------------------------------------- 1 | name = "AndyZhou" 2 | 3 | [contact] 4 | email = "andyzhou058@gmail.com" 5 | github = "andyzhou058" 6 | telegram = "@andyzhou058" 7 | 8 | [persona] 9 | pgp = "35C353B7B1EB3F1DB9A5B1029A0BD29FB24E03BC" 10 | -------------------------------------------------------------------------------- /entity/CDUBS.toml: -------------------------------------------------------------------------------- 1 | name = "CDUBS" 2 | babel = ["en"] 3 | 4 | [contact] 5 | email = "noc@cdubs.tech" 6 | 7 | [persona] 8 | pgp = "80095CB4A8D365B114DD35CEB26D9F20836A8936" 9 | -------------------------------------------------------------------------------- /entity/Cupkappu.toml: -------------------------------------------------------------------------------- 1 | name = "Cupkappu" 2 | babel = [ 3 | "jp-1", 4 | "zh-0" 5 | ] 6 | 7 | [contact] 8 | telegram = "kifuc" 9 | email = "cup@kust.ga" 10 | github = "cupkappu" 11 | 12 | -------------------------------------------------------------------------------- /entity/DannyAAM.toml: -------------------------------------------------------------------------------- 1 | name = "DannyAAM" 2 | babel = ["zh-N", "en-2"] 3 | 4 | [contact] 5 | email = "danny@saru.moe" 6 | telegram = "danny8376" 7 | irc = "dannyAAM" 8 | github = "danny8376" 9 | 10 | [persona] 11 | pgp = "AF3165DE7ABAD04F9250756E9147806CAF74BA71" 12 | -------------------------------------------------------------------------------- /entity/David Liu.toml: -------------------------------------------------------------------------------- 1 | name = "David Liu" 2 | babel = ["zh-N", "en-3"] 3 | 4 | [contact] 5 | email = "david@fixmix.tech" 6 | telegram = "p0tat05" 7 | irc = "p0tat05" 8 | mastodon = "@p0tat05@mas.to" 9 | github = "p0tat05" 10 | 11 | [persona] 12 | pgp = "F69228A3DADECB2BFCEE6EB38EC04651740E765D" 13 | -------------------------------------------------------------------------------- /entity/Edward_P.toml: -------------------------------------------------------------------------------- 1 | name = "Edward_P" 2 | 3 | [contact] 4 | email = "edward@edward-p.xyz" 5 | github = "edward-p" 6 | telegram = "@Edward_P" 7 | 8 | [persona] 9 | pgp = "A0B55B12351C08FED81DAAF4840A50A14EEF0D58" 10 | -------------------------------------------------------------------------------- /entity/Hanako.toml: -------------------------------------------------------------------------------- 1 | name = "Hanako" 2 | 3 | [contact] 4 | email = "hanako_ko@outlook.jp" 5 | telegram = "koizumi_k" 6 | github = "hanakokoizumi" 7 | 8 | [persona] 9 | pgp = "01852E0786EA31525651925075AEC845FF3BD945" 10 | -------------------------------------------------------------------------------- /entity/HawkinsSherpherd.toml: -------------------------------------------------------------------------------- 1 | name = "Hawkins Sherpherd" 2 | 3 | [contact] 4 | email = "haksrpd@outlook.com" 5 | telegram = "haksrpd" 6 | 7 | [persona] 8 | pgp = "29E507919AAA2EBAC209658EA79D5869700BC8BE" 9 | -------------------------------------------------------------------------------- /entity/Iu-yang1.toml: -------------------------------------------------------------------------------- 1 | name = "iu_yang1" 2 | babel = ["zh-hans-N", "en-3"] 3 | 4 | [contact] 5 | email = "iu_yang1@foxmail.com" 6 | github = "Iu-yang1" 7 | telegram = "iu_yang1" 8 | 9 | [persona] 10 | 11 | pgp = "D06D16F965E1FD87557BC61AC7F5891A70B5E484" -------------------------------------------------------------------------------- /entity/James58899.toml: -------------------------------------------------------------------------------- 1 | name = "James58899" 2 | -------------------------------------------------------------------------------- /entity/JerryXiao.toml: -------------------------------------------------------------------------------- 1 | name = "JerryXiao" 2 | babel = ["zh-N", "en-3"] 3 | 4 | [contact] 5 | email = "neonet@mail.jerryxiao.cc" 6 | telegram = "JerryXiao" 7 | irc = "JerryXiao@hackint" 8 | github = "isjerryxiao" 9 | 10 | [persona] 11 | pgp = "5FC9AD5B960AD6F626E218DD22618F758B5BE2E5" 12 | -------------------------------------------------------------------------------- /entity/Junde Yhi.toml: -------------------------------------------------------------------------------- 1 | name = "Junde Yhi" 2 | babel = [ 3 | "zh-N", 4 | "zh-hans-N", 5 | "zh-hant-2", 6 | "en-3", 7 | "de-0", 8 | "ru-0", 9 | "jp-0", 10 | "fi-0", 11 | ] 12 | 13 | [contact] 14 | email = "neonetwork@yhi.moe" 15 | telegram = "lmy441900" 16 | mastodon = "@lmy441900@sn.angry.im" 17 | github = "lmy441900" 18 | 19 | [persona] 20 | pgp = "E6C74782A1FBEE741D09885FD274286F672C800A" 21 | -------------------------------------------------------------------------------- /entity/KusakabeSi.toml: -------------------------------------------------------------------------------- 1 | name = "KusakabeSi" 2 | babel = [ 3 | "zh", 4 | "en-3", 5 | ] 6 | 7 | [contact] 8 | email = "dn42@kskb.eu.org" 9 | irc = "kskb" 10 | telegram = "KusakabeSi" 11 | mastodon = "" 12 | github = "KusakabeSi" 13 | 14 | # Details on identifying the entity online (optional). Usually, a PGP key 15 | # fingerprint can be put here to help others communicate with the entity more 16 | # securely. 17 | [persona] 18 | pgp = "716846E71E56F088BDF42E695A6761FECF4CAA65" 19 | 20 | -------------------------------------------------------------------------------- /entity/LINE-NZ.toml: -------------------------------------------------------------------------------- 1 | name = "LINE-NZ" 2 | babel = ["en"] 3 | 4 | [contact] 5 | email = "dn42@line.co.nz" 6 | github = "line-nz" 7 | -------------------------------------------------------------------------------- /entity/Lan Tian.toml: -------------------------------------------------------------------------------- 1 | name = "Lan Tian" 2 | -------------------------------------------------------------------------------- /entity/LibreHouse.toml: -------------------------------------------------------------------------------- 1 | name = "LibreHouse" 2 | babel = ["zh-N", "en-2"] 3 | 4 | [contact] 5 | email = "i+noc@outv.im" 6 | telegram = "outvi" 7 | mastodon = "@ov@social.outv.im" 8 | github = "outloudvi" 9 | 10 | [persona] 11 | pgp = "7A9543829E475D7D3826B08DA725CB57CA65CAFE" 12 | -------------------------------------------------------------------------------- /entity/Lily.toml: -------------------------------------------------------------------------------- 1 | name = "Lilybouquet" 2 | babel = [ 3 | "zh", 4 | "en-3", 5 | ] 6 | 7 | [contact] 8 | email = "lilybouquet@lilynet.work" 9 | telegram = "Lilybouquet" 10 | 11 | [persona] 12 | pgp = "B11F5BE9989BEE9A6A1E81F730291293322B1B8E" -------------------------------------------------------------------------------- /entity/Moe.toml: -------------------------------------------------------------------------------- 1 | name = "Moe" 2 | description = "Moe Overflow Electric NOC" 3 | 4 | [contact] 5 | email = "noc@moeternet.com" 6 | telegram = "@moeternet" 7 | -------------------------------------------------------------------------------- /entity/Ndoskrnl.toml: -------------------------------------------------------------------------------- 1 | name = "Ndoskrnl" 2 | description = "We can start chat happily with Google Translate :)" 3 | babel = ["en-1", "zh-1"] 4 | 5 | [contact] 6 | email = "lollipop.studio.cn@gmail.com" 7 | github = "magic0whi" 8 | -------------------------------------------------------------------------------- /entity/Neo_Chen.toml: -------------------------------------------------------------------------------- 1 | name = "Neo_Chen" 2 | babel = ["zh-N", "en-2"] 3 | 4 | [contact] 5 | email = "chenkolei@gmail.com" 6 | telegram = "Neo_Chen" 7 | irc = "Neo_Chen" 8 | mastodon = "@Neo_Chen@mastodon.xyz" 9 | github = "NeoChen1024" 10 | 11 | [persona] 12 | pgp = "D306BB628837043150CD1E42CA0957540FD996CD" 13 | -------------------------------------------------------------------------------- /entity/Razuritta.toml: -------------------------------------------------------------------------------- 1 | name = "Razuritta" 2 | babel = ["en", "zh"] 3 | 4 | [contact] 5 | email = "i@razuritta.me" 6 | matrix = "@salty_0x1c:bartz.foo" 7 | 8 | [persona] 9 | pgp = "ae902ca260080ba005e3a5e92e466ddd3794c4eb" 10 | -------------------------------------------------------------------------------- /entity/Ren Baoshuo.toml: -------------------------------------------------------------------------------- 1 | name = "Ren Baoshuo" 2 | babel = ["zh-N", "en-3"] 3 | 4 | [contact] 5 | email = "i@baoshuo.ren" 6 | telegram = "baoshuo" 7 | github = "renbaoshuo" 8 | 9 | [persona] 10 | pgp = "60E46C33C022FA15DBB326837C7AE7B1CE4FF525" 11 | -------------------------------------------------------------------------------- /entity/Rosmontic.toml: -------------------------------------------------------------------------------- 1 | name = "Rosmontic" 2 | babel = ["zh", "en-2"] 3 | 4 | [contact] 5 | email = "Rosmontis233@hotmail.com" 6 | telegram = "Rosmontis233" 7 | twitter = "Rosmontis233" 8 | github = "Rosmontis2333" 9 | 10 | [persona] 11 | pgp = "3CFEFAB3CAC1CC735D67DF41BFFB77088E6643DC" 12 | -------------------------------------------------------------------------------- /entity/SUNNET.toml: -------------------------------------------------------------------------------- 1 | name = "SUNNET" 2 | -------------------------------------------------------------------------------- /entity/Staph.toml: -------------------------------------------------------------------------------- 1 | name = "Staph" 2 | description = "A programming prokaryotic organism" 3 | babel = ["zh-N", "en-4", "ja-3", "es-1", "fr-1"] 4 | 5 | [contact] 6 | email = "staph@aosc.io" 7 | telegram = "Staph" 8 | irc = "Staph_aureus" 9 | github = "StephDC" 10 | -------------------------------------------------------------------------------- /entity/SteveYi.toml: -------------------------------------------------------------------------------- 1 | name = "SteveYi" 2 | 3 | [contact] 4 | telegram = "steveyiyo" 5 | github = "steveyiyo" 6 | email = "info@steveyi.net" 7 | -------------------------------------------------------------------------------- /entity/SyllaBear.toml: -------------------------------------------------------------------------------- 1 | name = "SyllaBear" 2 | 3 | [contact] 4 | email = "bear@koala.gq" 5 | github = "bearsylla" 6 | 7 | [persona] 8 | pgp = "F5EC83B433A35C8CDF5B66568FBCE429B9AB90F4" 9 | -------------------------------------------------------------------------------- /entity/TsingYao.toml: -------------------------------------------------------------------------------- 1 | name = "TsingYao" 2 | babel = ["zh-N", "en"] 3 | 4 | [contact] 5 | email = "yujintong@126.com" 6 | telegram = "yujintong" 7 | github = "yujintong" 8 | 9 | [persona] 10 | pgp = "DD515D58188FBD2F9AF484F8AD04D02E24AC52C9" 11 | -------------------------------------------------------------------------------- /entity/VILLISEK.toml: -------------------------------------------------------------------------------- 1 | name = "Clement VILLISEK" 2 | babel = [ 3 | "fr", 4 | "en-5", 5 | "es-2", 6 | "jp-1", 7 | "zh-0", 8 | "ru-0" 9 | ] 10 | 11 | [contact] 12 | email = "clement@villisek.fr" 13 | twitter = "cvillisek89" 14 | github = "villisek" 15 | -------------------------------------------------------------------------------- /entity/Yangfl.toml: -------------------------------------------------------------------------------- 1 | name = "Yangfl Network" 2 | -------------------------------------------------------------------------------- /entity/Yitong-Dang.toml: -------------------------------------------------------------------------------- 1 | name = "Yitong Dang" 2 | babel = ["zh", "en-4"] 3 | 4 | [contact] 5 | email = "tomdang@naivetomcat.cn" 6 | telegram = "@naivetomcat" 7 | github = "NaiveTomcat" 8 | 9 | [persona] 10 | pgp = "B5EB6EA969688B74853918EDEBA7269DA2D7E015" 11 | -------------------------------------------------------------------------------- /entity/Yukari.toml: -------------------------------------------------------------------------------- 1 | name = "Yukari" 2 | 3 | [contact] 4 | telegram = "YukariChiba" 5 | github = "YukariChiba" 6 | email = "i@0x7f.cc" 7 | 8 | [persona] 9 | pgp = "9DC663829861B7FDFB5DA8B39277CB21961D6DD5" 10 | -------------------------------------------------------------------------------- /entity/Yura.toml: -------------------------------------------------------------------------------- 1 | name = "Yura" 2 | babel = [] 3 | 4 | [contact] 5 | email = "yurachan@etlgr.com" 6 | telegram = "@noc2464" 7 | 8 | [persona] 9 | pgp = "9E525A59D24A4041CA3C32BBF75C0CDC951918BE" 10 | -------------------------------------------------------------------------------- /entity/Yux.toml: -------------------------------------------------------------------------------- 1 | name = "Yux Zhu" 2 | 3 | [contact] 4 | email = "me@yux.im" 5 | github = "vfreex" 6 | irc = "yux@hackint" 7 | 8 | [persona] 9 | pgp = "02C92615048A11F9D278CCA51E74676AA04A03A1" 10 | 11 | -------------------------------------------------------------------------------- /entity/YuzhenQin.toml: -------------------------------------------------------------------------------- 1 | name = "Qin Yuzhen" 2 | babel = ["zh-N", "en-3"] 3 | 4 | [contact] 5 | email = "1@jin-dan.site" 6 | github = "yuzhenqin" 7 | 8 | [persona] 9 | pgp = "E370A15E3372180A5854E9052B722BAAAAAAAAAA" 10 | -------------------------------------------------------------------------------- /entity/alanyhq.toml: -------------------------------------------------------------------------------- 1 | name = "alanyhq" 2 | babel = ["zh-N", "en-2"] 3 | 4 | [contact] 5 | telegram = "alanyhq" 6 | irc = "alanyhq" 7 | -------------------------------------------------------------------------------- /entity/caxap.toml: -------------------------------------------------------------------------------- 1 | name = "caxap" 2 | 3 | [contact] 4 | email = "yrdw@protonmail.com" 5 | -------------------------------------------------------------------------------- /entity/chanceyan.toml: -------------------------------------------------------------------------------- 1 | name = "chanceyan" 2 | 3 | [contact] 4 | email = "edwardchanceyan@gmail.com" 5 | github = "chanceyans" 6 | telegram = "@Edwardchanceyan" 7 | 8 | [persona] 9 | pgp = "F3E1B2BBC9358C98F73ECB1C6D380004BE763B8F" -------------------------------------------------------------------------------- /entity/frank.toml: -------------------------------------------------------------------------------- 1 | name = "frank" 2 | -------------------------------------------------------------------------------- /entity/fthasdd.toml: -------------------------------------------------------------------------------- 1 | name = "fthasdd" 2 | 3 | [contact] 4 | email = "fthasdd@largerworld.cc" 5 | 6 | [persona] 7 | ssh = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIL6nUpUc/erbzkckaKlzeQWPsHuBMCAJ9VSEBEhzuPmt" 8 | -------------------------------------------------------------------------------- /entity/funnysyc.toml: -------------------------------------------------------------------------------- 1 | name = "funnysyc" 2 | babel = ["zh-N", "en-2"] 3 | 4 | [contact] 5 | email = "yc.s@outlook.com" 6 | irc = "funnysyc" 7 | telegram = "funnysyc" 8 | github = "funnysyc" 9 | 10 | [persona] 11 | pgp = "0ECA668E2E3C5A8DE9F4EDBFA614F414584C9E12" 12 | -------------------------------------------------------------------------------- /entity/huajitech.toml: -------------------------------------------------------------------------------- 1 | name = "HuajiTech" 2 | babel = ["zh-N", "en-2"] 3 | 4 | [contact] 5 | email = "noc@huajitech.net" 6 | telegram = "huajitech" 7 | github = "huajitech" 8 | 9 | # See also: 10 | # entity/funnysyc.toml 11 | # entity/ricky8955555.toml 12 | -------------------------------------------------------------------------------- /entity/iEdon.toml: -------------------------------------------------------------------------------- 1 | name = "iEdon" 2 | 3 | [contact] 4 | irc = "iedon" 5 | -------------------------------------------------------------------------------- /entity/icecat.toml: -------------------------------------------------------------------------------- 1 | name = "Icecat" 2 | 3 | [contact] 4 | telegram = "fakeicecat" 5 | github = "Myer921" 6 | email = "icecat@catio.network" 7 | -------------------------------------------------------------------------------- /entity/leedagee.toml: -------------------------------------------------------------------------------- 1 | name = "leedagee" 2 | babel = ["zh-N", "zh-hans-N", "zh-hant-3", "en-2", "ja-0"] 3 | 4 | [contact] 5 | email = "leedageea@gmail.com" 6 | telegram = "leedagee" 7 | irc = "lizr" 8 | github = "leedagee" 9 | -------------------------------------------------------------------------------- /entity/liangjw.toml: -------------------------------------------------------------------------------- 1 | name = "liangjw" 2 | babel = [ 3 | "zh-N", 4 | "zh-hans-N", 5 | "zh-hant-2", 6 | "zh-yue-2", 7 | "en-2", 8 | "ja-1", 9 | ] 10 | 11 | [contact] 12 | email = "dn42@cas7.moe" 13 | telegram = "liangjw" 14 | 15 | [persona] 16 | pgp = "A04C56688622E1D51DB4ED5D263BDBB7ECAB32E4" 17 | -------------------------------------------------------------------------------- /entity/licson.toml: -------------------------------------------------------------------------------- 1 | name = "licson" 2 | 3 | [contact] 4 | email = "admin@licson.net" 5 | telegram = "licson" 6 | github = "licson" 7 | -------------------------------------------------------------------------------- /entity/lilydjwg.toml: -------------------------------------------------------------------------------- 1 | name = "lilydjwg" 2 | 3 | [contact] 4 | email = "lilydjwg@gmail.com" 5 | github = "lilydjwg" 6 | telegram = "@lilydjwg" 7 | -------------------------------------------------------------------------------- /entity/magicneko.toml: -------------------------------------------------------------------------------- 1 | name = "MagicNeko" 2 | 3 | [contact] 4 | telegram = "Mirs322" 5 | github = "Myer921" 6 | email = "noc@koishi.moe" 7 | -------------------------------------------------------------------------------- /entity/mark22k.toml: -------------------------------------------------------------------------------- 1 | name = "mark22k" 2 | babel = ["de", "en-1"] 3 | 4 | [contact] 5 | email = "neo@mk16.de" 6 | 7 | [persona] 8 | pgp = "9AA28159FCEB3CD83BC212017E869146699108C7" 9 | -------------------------------------------------------------------------------- /entity/nekoid.toml: -------------------------------------------------------------------------------- 1 | name = "nekoid" 2 | babel = ["zh", "en-4", "jp-1"] 3 | 4 | [contact] 5 | email = "info@nekoid.cc" 6 | telegram = "nekonull_ptr" 7 | 8 | [persona] 9 | pgp = "77857DC6BBB6429C8BE209F5D68E0BFE4115B78C" 10 | -------------------------------------------------------------------------------- /entity/nevlezay80.toml: -------------------------------------------------------------------------------- 1 | name = "Alexey Boldyrev" 2 | babel = ["ru"] 3 | 4 | [contact] 5 | email = "ne-vlezay80@yandex.ru" 6 | github = "ne-vlezay80" 7 | -------------------------------------------------------------------------------- /entity/ricky8955555.toml: -------------------------------------------------------------------------------- 1 | name = "Ricky8955555" 2 | babel = ["zh-N", "en-2"] 3 | 4 | [contact] 5 | email = "397050061@qq.com" 6 | telegram = "ricky8955555" 7 | github = "ricky8955555" 8 | -------------------------------------------------------------------------------- /entity/septs.toml: -------------------------------------------------------------------------------- 1 | name = "septs" 2 | 3 | [contact] 4 | email = "bgp@septs.email" 5 | telegram = "septs" 6 | github = "NiceLabs" 7 | -------------------------------------------------------------------------------- /entity/starstorm42.toml: -------------------------------------------------------------------------------- 1 | name = "starstorm42" 2 | babel = ["en"] 3 | 4 | [contact] 5 | email = "startstorm@disroot.org" 6 | github = "BigFunnyGiant" 7 | 8 | [persona] 9 | pgp = "E38751374DD58D716A73831B3D5B23A378C7F8AF" 10 | -------------------------------------------------------------------------------- /entity/stone.toml: -------------------------------------------------------------------------------- 1 | name = "Stone Fox" 2 | 3 | [contact] 4 | email = "stone@unix.dog" 5 | 6 | [persona] 7 | ssh = "ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBHJZ9eLR5cJ++1HJ9sMjrnM35Q4yrfJXKbgQMHmOrgOnfEXc9TEgZN2bWogcKRoLDbIF3hA8iiT/7QffKhCRBsw=" 8 | -------------------------------------------------------------------------------- /entity/undefined-moe.toml: -------------------------------------------------------------------------------- 1 | name = "undefined-moe" 2 | babel = ["zh", "en-3"] 3 | 4 | [contact] 5 | email = "i@undefined.moe" 6 | telegram = "webpack_exports_undefined" 7 | github = "undefined-moe" 8 | -------------------------------------------------------------------------------- /logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NeoCloud/NeoNetwork/113c8373c4199bdb665f721d809e1c64835cf8dd/logo.png -------------------------------------------------------------------------------- /pyproject.toml: -------------------------------------------------------------------------------- 1 | [tool.black] 2 | line-length = 88 3 | -------------------------------------------------------------------------------- /route/AS134098.toml: -------------------------------------------------------------------------------- 1 | ["10.127.14.0/23"] 2 | type = "subnet" 3 | name = "LICSON-NET-SUBALLOC-1" 4 | -------------------------------------------------------------------------------- /route/AS140913.toml: -------------------------------------------------------------------------------- 1 | ["10.127.4.0/24"] 2 | type = "subnet" 3 | name = "MagicNeko-Asia Backbone node" 4 | description = "MagicNeko-Asia Backbone node" 5 | 6 | ["fd10:127:0233::/48"] 7 | type = "subnet" 8 | name = "Magicneko Asia address occupied" 9 | description = "Magicneko Asia address occupied" 10 | 11 | ["fd10:127:0234::/48"] 12 | type = "subnet" 13 | name = "Magicneko Asia address occupied" 14 | description = "Magicneko Asia address occupied" 15 | 16 | ["fd10:127:0235::/48"] 17 | type = "subnet" 18 | name = "Magicneko Asia address occupied" 19 | description = "Magicneko Asia address occupied" 20 | 21 | ["fd10:127:0236::/48"] 22 | type = "subnet" 23 | name = "Magicneko Asia address occupied" 24 | description = "Magicneko Asia address occupied" 25 | 26 | ["fd10:127:0237::/48"] 27 | type = "subnet" 28 | name = "Magicneko Asia address occupied" 29 | description = "Magicneko Asia address occupied" 30 | 31 | -------------------------------------------------------------------------------- /route/AS141706.toml: -------------------------------------------------------------------------------- 1 | ["10.127.232.0/22"] 2 | type = "subnet" 3 | name = "MagicNeko-CN office node" 4 | description = "MagicNeko CN office node (office network in Northeast China)" 5 | 6 | ["fd10:127:0238::/48"] 7 | type = "subnet" 8 | name = "Home-magicneko" 9 | description = "Magicneko Home(TEST)" 10 | 11 | ["fd10:127:0239::/48"] 12 | type = "subnet" 13 | name = "Home-icecat" 14 | description = "Icecat Home(TEST)" 15 | 16 | ["fd10:127:023a::/48"] 17 | type = "subnet" 18 | name = "Catstar-VPN" 19 | description = "MagicNeko VPN(CN)" 20 | 21 | ["fd10:127:023b::/48"] 22 | type = "subnet" 23 | name = "Catstar-IX" 24 | description = "MagicNeko IX" 25 | -------------------------------------------------------------------------------- /route/AS141776.toml: -------------------------------------------------------------------------------- 1 | ["10.127.17.0/24"] 2 | type = "subnet" 3 | name = "BAOSHUO-NEO-V4-1" 4 | description = "Baoshuo Neo Network" 5 | 6 | ["fd10:127:17::/48"] 7 | type = "subnet" 8 | name = "BAOSHUO-NEO-V6-1" 9 | description = "Baoshuo Neo Network" 10 | -------------------------------------------------------------------------------- /route/AS142280.toml: -------------------------------------------------------------------------------- 1 | ["10.127.128.0/24"] 2 | type = "subnet" 3 | name = "nteren-backbone" 4 | -------------------------------------------------------------------------------- /route/AS17830.toml: -------------------------------------------------------------------------------- 1 | ["10.127.66.0/24"] 2 | type = "subnet" 3 | name = "POTATO-NEO-NET4-A" 4 | description = "PotatoNet @ NeoNetwork" 5 | 6 | ["fd10:127:aa66::/48"] 7 | type = "subnet" 8 | name = "POTATO-NEO-NET6-A" 9 | description = "PotatoNet @ NeoNetwork" 10 | -------------------------------------------------------------------------------- /route/AS211390.conf: -------------------------------------------------------------------------------- 1 | ["10.127.239.0/24"] 2 | type = "subnet" 3 | name = "YUZHEN-NEO-IPV4" 4 | description = "Yuzhen Network NeoNetwork IPv4" 5 | -------------------------------------------------------------------------------- /route/AS211876.toml: -------------------------------------------------------------------------------- 1 | ["10.127.66.0/24"] 2 | type = "subnet" 3 | name = "POTATO-NEO-NET4-A" 4 | description = "PotatoNet @ NeoNetwork" 5 | 6 | ["fd10:127:aa66::/48"] 7 | type = "subnet" 8 | name = "POTATO-NEO-NET6-A" 9 | description = "PotatoNet @ NeoNetwork" 10 | -------------------------------------------------------------------------------- /route/AS213262.toml: -------------------------------------------------------------------------------- 1 | ["fd10:127:3262::/64"] 2 | type = "subnet" 3 | name = "Moe" 4 | description = "Moe Research Experimental Network" 5 | -------------------------------------------------------------------------------- /route/AS4201270000.toml: -------------------------------------------------------------------------------- 1 | ["10.127.0.0/24"] 2 | type = "subnet" 3 | name = "RESERVED" 4 | description = "Reserved" 5 | 6 | ["10.127.1.0/24"] 7 | type = "subnet" 8 | name = "MAIN" 9 | description = "LAN 1" 10 | 11 | ["10.127.2.0/24"] 12 | type = "subnet" 13 | name = "Messed-up Network" 14 | 15 | ["10.127.16.0/24"] 16 | type = "subnet" 17 | name = "Neo_Chen ZeroTier-One Hub" 18 | description = "" 19 | 20 | ["10.127.110.0/24"] 21 | type = "subnet" 22 | name = "Home Network" 23 | description = "Home LAN (Taichung)" 24 | 25 | ["10.127.255.4/32"] 26 | type = "loopback" 27 | name = "fsnvax" 28 | description = "Debian/frr" 29 | 30 | ["fd10:127:0000::/48"] 31 | type = "subnet" 32 | name = "NeoNetwork Origin 1" 33 | description = "Neo_Chen's Network" 34 | 35 | ["fd10:127:5f37:59df::/64"] 36 | type = "subnet" 37 | name = "NeoNetwork Origin 2" 38 | description = "Neo_Chen's Network" 39 | -------------------------------------------------------------------------------- /route/AS4201270001.toml: -------------------------------------------------------------------------------- 1 | ["10.127.41.0/24"] 2 | type = "subnet" 3 | name = "NiceLabs IX IPv4 Pool" 4 | 5 | ["fd10:127:41::/48"] 6 | type = "subnet" 7 | name = "NiceLabs IX IPv6 Pool" 8 | -------------------------------------------------------------------------------- /route/AS4201270003.toml: -------------------------------------------------------------------------------- 1 | ["10.127.18.128/25"] 2 | type = "subnet" 3 | 4 | name = "Stone IPv4 Block" 5 | 6 | ["fd10:127:6194:24e0::/64"] 7 | type = "subnet" 8 | 9 | name = "Stone IPv6 Block" 10 | -------------------------------------------------------------------------------- /route/AS4201270004.toml: -------------------------------------------------------------------------------- 1 | ["10.127.56.0/24"] 2 | type = "subnet" 3 | name = "frank-hsinchu" 4 | description = "For home" 5 | 6 | ["10.127.255.56/32"] 7 | type = "loopback" 8 | name = "frank-hsinchu-1" 9 | description = "Ubuntu/bird" 10 | -------------------------------------------------------------------------------- /route/AS4201270005.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NeoCloud/NeoNetwork/113c8373c4199bdb665f721d809e1c64835cf8dd/route/AS4201270005.toml -------------------------------------------------------------------------------- /route/AS4201270006.toml: -------------------------------------------------------------------------------- 1 | ["10.127.8.192/26"] 2 | type = "subnet" 3 | name = "JerryXiao-Infrastructure" 4 | description = "For cloud instances" 5 | 6 | ["10.127.9.0/24"] 7 | type = "subnet" 8 | name = "JerryXiao-Home" 9 | description = "For home" 10 | 11 | ["10.127.8.64/26"] 12 | type = "subnet" 13 | name = "JerryXiao-School" 14 | description = "For school" 15 | 16 | ["fd10:127:53::/48"] 17 | type = "subnet" 18 | name = "JerryXiao6" 19 | description = "JerryNet6" 20 | 21 | ["10.127.255.53/32"] 22 | type = "loopback" 23 | name = "anycast-auth-4" 24 | description = "Anycast authoritative DNS" 25 | 26 | ["10.127.255.54/32"] 27 | type = "loopback" 28 | name = "anycast-recur-4" 29 | description = "Anycast recursive DNS" 30 | 31 | ["10.127.18.0/27"] 32 | type = "subnet" 33 | name = "JerryXiao-Service" 34 | description = "NeoNetwork services" 35 | 36 | ["fd10:127:ffff:53::/64"] 37 | type = "loopback" 38 | name = "anycast-auth-6" 39 | description = "Anycast authoritative DNS" 40 | 41 | ["fd10:127:53:53::/64"] 42 | type = "loopback" 43 | name = "anycast-recur-6" 44 | description = "Anycast recursive DNS" 45 | supernet = "fd10:127:53::/48" 46 | -------------------------------------------------------------------------------- /route/AS4201270007.toml: -------------------------------------------------------------------------------- 1 | ["10.127.8.160/27"] 2 | type = "subnet" 3 | name = "StaphNet" 4 | description = "For Staph-infected equipments around the world" 5 | 6 | ["10.127.7.0/24"] 7 | type = "subnet" 8 | name = "AOSCNet" 9 | description = "AOSC BuildBot Interconnection" 10 | 11 | ["10.127.255.53/32"] 12 | type = "loopback?" 13 | name = "staphdns" 14 | description = "Bind9 DNS" 15 | 16 | ["fd10:127:7::/48"] 17 | type = "subnet" 18 | name = "Staph_v6" 19 | description = "Staph-infected IPv6 subnet - please do not disinfect" 20 | 21 | ["fd10:127:ffff:53::/64"] 22 | type = "loopback?" 23 | name = "staphdns" 24 | description = "Bind9 DNS" 25 | -------------------------------------------------------------------------------- /route/AS4201270008.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NeoCloud/NeoNetwork/113c8373c4199bdb665f721d809e1c64835cf8dd/route/AS4201270008.toml -------------------------------------------------------------------------------- /route/AS4201270010.toml: -------------------------------------------------------------------------------- 1 | ["10.127.10.0/24"] 2 | type = "subnet" 3 | name = "Lan Tian LAN" 4 | description = "For LAN" 5 | 6 | ["fd10:127:10::/48"] 7 | type = "subnet" 8 | name = "Lan Tian LAN6" 9 | description = "For LAN IPv6" 10 | -------------------------------------------------------------------------------- /route/AS4201270011.toml: -------------------------------------------------------------------------------- 1 | ["10.127.22.0/29"] 2 | type = "subnet" 3 | name = "LINE-NZ" 4 | description = "For home" 5 | 6 | ["10.127.22.8/29"] 7 | type = "subnet" 8 | name = "LINE-NZ" 9 | description = "For cloud" 10 | -------------------------------------------------------------------------------- /route/AS4201270012.toml: -------------------------------------------------------------------------------- 1 | ["10.127.5.0/28"] 2 | type = "subnet" 3 | name = "yhi-h" 4 | description = "Yhi Interconnection Region H" 5 | 6 | ["10.127.5.16/28"] 7 | type = "subnet" 8 | name = "yhi-s" 9 | description = "Yhi Interconnection Region S" 10 | -------------------------------------------------------------------------------- /route/AS4201270013.toml: -------------------------------------------------------------------------------- 1 | ["10.127.13.0/24"] 2 | type = "subnet" 3 | name = "Ndoskrnls LAN" 4 | description = "For devices which being connected locally to Ndoskrnls Master Router" 5 | 6 | ["fd10:127:13::/48"] 7 | type = "subnet" 8 | name = "Ndoskrnls LAN (IPv6)" 9 | description = "For devices which being connected locally to Ndoskrnls Master Router" 10 | -------------------------------------------------------------------------------- /route/AS4201270014.toml: -------------------------------------------------------------------------------- 1 | ["10.127.8.128/29"] 2 | type = "subnet" 3 | name = "leedagee-local" 4 | 5 | ["fd10:127:0023::/48"] 6 | type = "subnet" 7 | name = "leedagee" 8 | -------------------------------------------------------------------------------- /route/AS4201270016.toml: -------------------------------------------------------------------------------- 1 | ["10.127.64.0/24"] 2 | type = "subnet" 3 | name = "MOECAST-EXP-NET" 4 | description = "Moecast Network Experimental Network" 5 | 6 | ["fd10:127:64::/48"] 7 | type = "subnet" 8 | name = "MOECAST-EXP-NET-NG" 9 | description = "Moecast Network Experimental Network NextGen" 10 | -------------------------------------------------------------------------------- /route/AS4201270017.toml: -------------------------------------------------------------------------------- 1 | ["10.127.17.0/24"] 2 | type = "subnet" 3 | name = "BAOSHUO-NEO-V4-1" 4 | description = "Baoshuo Neo Network" 5 | 6 | ["fd10:127:17::/48"] 7 | type = "subnet" 8 | name = "BAOSHUO-NEO-V6-1" 9 | description = "Baoshuo Neo Network" 10 | -------------------------------------------------------------------------------- /route/AS4201270018.toml: -------------------------------------------------------------------------------- 1 | ["10.127.100.0/24"] 2 | type = "subnet" 3 | name = "caxap-minecraft-net" 4 | description = "For minecraft servers" 5 | 6 | ["fd10:127:6324::/48"] 7 | type = "subnet" 8 | name = "caxap6" 9 | description = "caxaoNet6" 10 | -------------------------------------------------------------------------------- /route/AS4201270019.toml: -------------------------------------------------------------------------------- 1 | ["10.127.19.0/24"] 2 | type = "subnet" 3 | name = "cupkappu" 4 | description = "Cup's neonetwork" 5 | -------------------------------------------------------------------------------- /route/AS4201270020.toml: -------------------------------------------------------------------------------- 1 | ["10.127.18.32/27"] 2 | type = "subnet" 3 | name = "Edward_P-Tunnel" 4 | 5 | ["10.127.26.0/24"] 6 | type = "subnet" 7 | name = "Edward_P-Home" 8 | 9 | ["fd10:127:2f2f::/48"] 10 | type = "subnet" 11 | name = "Edward_P-V6" 12 | -------------------------------------------------------------------------------- /route/AS4201270021.toml: -------------------------------------------------------------------------------- 1 | ["10.127.66.0/24"] 2 | type = "subnet" 3 | name = "POTATO-NEO-NET4-A" 4 | description = "PotatoNet @ NeoNetwork" 5 | 6 | ["fd10:127:aa66::/48"] 7 | type = "subnet" 8 | name = "POTATO-NEO-NET6-A" 9 | description = "PotatoNet @ NeoNetwork" 10 | -------------------------------------------------------------------------------- /route/AS4201270022.toml: -------------------------------------------------------------------------------- 1 | ["10.127.8.136/29"] 2 | type = "subnet" 3 | name = "lilydjwg" 4 | description = "lilydjwg" 5 | 6 | ["fd10:127:ba7e::/48"] 7 | type = "subnet" 8 | name = "lilydjwg" 9 | description = "lilydjwg" 10 | -------------------------------------------------------------------------------- /route/AS4201270030.toml: -------------------------------------------------------------------------------- 1 | ["10.127.30.0/24"] 2 | type = "subnet" 3 | name = "IWARP-NEO-IP4-NETWORK" 4 | description = "IWarp Global Experimental NeoNetwork - IPv4" 5 | 6 | ["fd10:127:30::/48"] 7 | type = "subnet" 8 | name = "IWARP-NEO-IP6-NETWORK" 9 | description = "IWarp Global Experimental NeoNetwork - IPv6" 10 | 11 | -------------------------------------------------------------------------------- /route/AS4201270036.toml: -------------------------------------------------------------------------------- 1 | ["10.127.36.0/24"] 2 | type = "subnet" 3 | name = "TSINTYAO-NEO-NET4-IX36" 4 | description = "Internet eXchange 36 IPv4 Block For TsingYao Neo Network" 5 | 6 | ["fd10:127:36::/48"] 7 | type = "subnet" 8 | name = "TSINGYAO-NEO-NET6-IX36" 9 | description = "Internet eXchange 36 IPv6 Block For TsingYao Neo Network" 10 | -------------------------------------------------------------------------------- /route/AS4201270037.toml: -------------------------------------------------------------------------------- 1 | ["10.127.37.0/24"] 2 | type = "subnet" 3 | name = "FUNNYSYC-NET" 4 | 5 | ["fd10:127:37::/48"] 6 | type = "subnet" 7 | name = "FUNNYSYC-NET" 8 | -------------------------------------------------------------------------------- /route/AS4201270039.toml: -------------------------------------------------------------------------------- 1 | ["10.127.39.0/24"] 2 | type = "subnet" 3 | name = "Saru-Neo-IP4" 4 | description = "Saru Network NeoNetwork IPv4" 5 | 6 | ["10.127.255.39/32"] 7 | type = "loopback" 8 | name = "Saru-Neo-AnyNS-IP4" 9 | description = "Anycast authoritative IPv4 DNS of Saru Network @ NeoNetwork" 10 | 11 | ["fd10:127:39::/48"] 12 | type = "subnet" 13 | name = "Saru-Neo-IP6" 14 | description = "Saru Network NeoNetwork IPv6" 15 | -------------------------------------------------------------------------------- /route/AS4201270080.toml: -------------------------------------------------------------------------------- 1 | ["10.127.80.0/24"] 2 | type = "subnet" 3 | name = "Hanako-Network-Neo-1-v4" 4 | 5 | ["fd10:127:80::/48"] 6 | type = "subnet" 7 | name = "Hanako-Network-Neo-1-v6" 8 | -------------------------------------------------------------------------------- /route/AS4201270099.toml: -------------------------------------------------------------------------------- 1 | ["10.127.99.0/24"] 2 | type = "subnet" 3 | name = "TSINTYAO-NEO-NET4" 4 | description = "TsingYao Neo Network IPv4 Block" 5 | 6 | ["fd10:127:99::/48"] 7 | type = "subnet" 8 | name = "TSINGYAO-NEO-NET6" 9 | description = "TsingYao Neo Network IPv6 Block" 10 | -------------------------------------------------------------------------------- /route/AS4201270100.toml: -------------------------------------------------------------------------------- 1 | ["10.127.27.232/29"] 2 | type = "subnet" 3 | name = "chanceyan-NEO-IP4" 4 | 5 | ["fd10:127:1100::/48"] 6 | type = "subnet" 7 | name = "chanceyan-NEO-IP4" -------------------------------------------------------------------------------- /route/AS4201270101.toml: -------------------------------------------------------------------------------- 1 | ["10.127.6.0/24"] 2 | type = "subnet" 3 | name = "AndyZhou-NEO-NET4" 4 | description = "AndyZhou Neo Network v4" 5 | 6 | ["fd10:127:6::/48"] 7 | type = "subnet" 8 | name = "AndyZhou-NEO-NET6" 9 | description = "AndyZhou Neo Network v6" 10 | -------------------------------------------------------------------------------- /route/AS4201270186.toml: -------------------------------------------------------------------------------- 1 | ["10.127.186.0/24"] 2 | type = "subnet" 3 | name = "186526-block-v4" 4 | description = "186526 Network IPv4 Block" 5 | 6 | ["fd10:127:186::/48"] 7 | type = "subnet" 8 | name = "186526-block-v6" 9 | description = "186526 Network IPv6 Block" 10 | -------------------------------------------------------------------------------- /route/AS4201270233.toml: -------------------------------------------------------------------------------- 1 | ["10.127.33.0/24"] 2 | type = "subnet" 3 | name = "Rosmontis-Network v4" 4 | description = "Meow~meow~nya~" 5 | ["fd10:127:2333::/48"] 6 | type = "subnet" 7 | name = "Rosmontis-Network v6" 8 | description = "Meow~meow~nya~" 9 | -------------------------------------------------------------------------------- /route/AS4201270456.toml: -------------------------------------------------------------------------------- 1 | ["10.127.45.0/24"] 2 | type = "subnet" 3 | name = "HJTMESH-NET" 4 | 5 | ["fd10:127:45::/48"] 6 | type = "subnet" 7 | name = "HJTMESH-NET" 8 | 9 | ["10.127.27.24/29"] 10 | type = "subnet" 11 | name = "HUAJITECH-ANYCAST" 12 | 13 | ["fd10:127:27:20::/60"] 14 | type = "subnet" 15 | name = "HUAJITECH-ANYCAST" 16 | -------------------------------------------------------------------------------- /route/AS4201270566.toml: -------------------------------------------------------------------------------- 1 | ["10.127.69.0/24"] 2 | type = "subnet" 3 | name = "CDUBS Network" 4 | description = "CDUBS Neo Network v4" 5 | 6 | ["fd10:127:69::/48"] 7 | type = "subnet" 8 | name = "CDUBS Network" 9 | description = "CDUBS Neo Network v6" 10 | -------------------------------------------------------------------------------- /route/AS4201271111.toml: -------------------------------------------------------------------------------- 1 | ["10.127.111.0/24"] 2 | type = "subnet" 3 | name = "KSKB-NEO-IP4" 4 | description = "Kusakabe's Neo Network v4" 5 | 6 | ["fd10:127:e00f::/48"] 7 | type = "subnet" 8 | name = "KSKB-NEO-IP6" 9 | description = "Kusakabe's Neo Network v6" 10 | -------------------------------------------------------------------------------- /route/AS4201271234.toml: -------------------------------------------------------------------------------- 1 | ["10.127.20.0/24"] 2 | type = "subnet" 3 | name = "WTM-ZONE-N-IPV4" 4 | 5 | ["fd10:127:66::/48"] 6 | type = "subnet" 7 | name = "WTM-ZONE-N-IPV6" -------------------------------------------------------------------------------- /route/AS4201271480.toml: -------------------------------------------------------------------------------- 1 | ["10.127.24.0/24"] 2 | type = "subnet" 3 | name = "NEKOID-INET" 4 | description = "NEKOID IPv4 Network" 5 | 6 | ["fd10:127:24::/48"] 7 | type = "subnet" 8 | name = "NEKOID-INET6" 9 | description = "NEKOID IPv6 Network" 10 | -------------------------------------------------------------------------------- /route/AS4201271488.toml: -------------------------------------------------------------------------------- 1 | ["fd10:127:1488::/48"] 2 | type = "subnet" 3 | name = "Bear" 4 | description = "Bear Neo Network" 5 | -------------------------------------------------------------------------------- /route/AS4201271877.toml: -------------------------------------------------------------------------------- 1 | ["10.127.180.0/24"] 2 | type = "subnet" 3 | name = "LilyNetwork-Neo-IP4" 4 | description = "LilyNetwork Neo Network v4" 5 | 6 | ["fd10:127:1877::/48"] 7 | type = "subnet" 8 | name = "LilyNetwork-Neo-IP6" 9 | description = "LilyNetwork Neo Network v6" -------------------------------------------------------------------------------- /route/AS4201272032.toml: -------------------------------------------------------------------------------- 1 | ["10.127.134.0/24"] 2 | type = "subnet" 3 | name = "LAPISNET4-NEO" 4 | description = "Razuritta's Net4" 5 | 6 | ["fd10:127:2032::/48"] 7 | type = "subnet" 8 | name = "LAPISNET6-NEO" 9 | description = "Razuritta's Net6" 10 | -------------------------------------------------------------------------------- /route/AS4201272923.toml: -------------------------------------------------------------------------------- 1 | ["10.127.149.224/27"] 2 | type = "subnet" 3 | name = "AS-BANDURA-NEO" 4 | max-len = 27 5 | 6 | ["fd10:127:fc31::/48"] 7 | type = "subnet" 8 | name = "AS-BANDURA-NEO" 9 | max-len = 48 10 | 11 | ["10.127.255.53/32"] 12 | type = "loopback" 13 | name = "anycast-auth-4" 14 | max-len = 32 15 | 16 | ["fd10:127:ffff:53::/64"] 17 | type = "loopback" 18 | name = "anycast-auth-6" 19 | max-len = 64 20 | 21 | ["10.127.255.54/32"] 22 | type = "loopback" 23 | name = "anycast-recur-4" 24 | max-len = 32 25 | 26 | ["fd10:127:53:53::/64"] 27 | type = "loopback" 28 | name = "anycast-recur-6" 29 | max-len = 64 30 | supernet = "fd10:127:53::/48" 31 | -------------------------------------------------------------------------------- /route/AS4201273722.toml: -------------------------------------------------------------------------------- 1 | ["10.127.204.48/28"] 2 | type = "subnet" 3 | name = "YANGIU-NEO4" 4 | description = "Iuyang1 NEOIPv4 Network" 5 | 6 | ["fd10:127:face::/48"] 7 | type = "subnet" 8 | name = "YANGIU-NEO6" 9 | description = "Iuyang1 NEOIPv6 Network" 10 | -------------------------------------------------------------------------------- /route/AS4201273947.toml: -------------------------------------------------------------------------------- 1 | ["10.127.217.0/24"] 2 | type = "subnet" 3 | name = "HAWKINS-NEO-NET4" 4 | description = "Shared prefix for HAWKINS-NEO-AS and SERNET-DN42" 5 | supernet = "10.127.217.0/24" 6 | 7 | ["fd10:127:217::/48"] 8 | type = "subnet" 9 | name = "HAWKINS-NEO-NET6" 10 | -------------------------------------------------------------------------------- /route/AS4201279999.toml: -------------------------------------------------------------------------------- 1 | ["10.127.88.0/24"] 2 | type = "subnet" 3 | name = "Hydro-Neo-Network-4" 4 | 5 | ["fd10:127:88::/48"] 6 | type = "subnet" 7 | name = "Hydro-Neo-Network-6" 8 | 9 | -------------------------------------------------------------------------------- /route/AS4242420140.toml: -------------------------------------------------------------------------------- 1 | ["10.127.12.0/24"] 2 | type = "subnet" 3 | name = "dfceaef NET" 4 | description = "For Yangfl Network" 5 | -------------------------------------------------------------------------------- /route/AS4242420247.toml: -------------------------------------------------------------------------------- 1 | ["10.127.17.0/24"] 2 | type = "subnet" 3 | name = "BAOSHUO-NEO-V4-1" 4 | description = "Baoshuo Neo Network" 5 | 6 | ["fd10:127:17::/48"] 7 | type = "subnet" 8 | name = "BAOSHUO-NEO-V6-1" 9 | description = "Baoshuo Neo Network" 10 | -------------------------------------------------------------------------------- /route/AS4242420275.toml: -------------------------------------------------------------------------------- 1 | ["10.127.242.0/24"] 2 | type = "subnet" 3 | name = "S242storm42-IPv4" 4 | description = "Starstorm42 access. (IPv4)" 5 | 6 | ["fd10:127:42ff::/48"] 7 | type = "subnet" 8 | name = "Starstorm42IPv6" 9 | description = "Starstorm42 access. (IPv6)" 10 | -------------------------------------------------------------------------------- /route/AS4242420288.toml: -------------------------------------------------------------------------------- 1 | ["10.127.30.0/24"] 2 | type = "subnet" 3 | name = "IWARP-NEO-IP4-NETWORK" 4 | description = "IWarp Global Experimental NeoNetwork - IPv4" 5 | 6 | ["fd10:127:30::/48"] 7 | type = "subnet" 8 | name = "IWARP-NEO-IP6-NETWORK" 9 | description = "IWarp Global Experimental NeoNetwork - IPv6" 10 | -------------------------------------------------------------------------------- /route/AS4242420308.toml: -------------------------------------------------------------------------------- 1 | ["10.127.38.32/27"] 2 | type = "subnet" 3 | name = "VILLISEK-NEO" 4 | description = "VILLISEK NeoNetwork experiments" 5 | 6 | ["fd10:127:0308::/48"] 7 | type = "subnet" 8 | name = "VILLISEK-NEO-V6" 9 | description = "VILLISEK NeoNetwork experiments in IPv6" 10 | -------------------------------------------------------------------------------- /route/AS4242420458.toml: -------------------------------------------------------------------------------- 1 | ["10.127.27.24/29"] 2 | type = "subnet" 3 | name = "HUAJITECH-ANYCAST" 4 | 5 | ["fd10:127:27:20::/60"] 6 | type = "subnet" 7 | name = "HUAJITECH-ANYCAST" 8 | -------------------------------------------------------------------------------- /route/AS4242420624.toml: -------------------------------------------------------------------------------- 1 | ["10.127.90.0/24"] 2 | type = "subnet" 3 | name = "FTHASDD-NEO" 4 | description = "Research Network of Alan Feng (NeoNetwork)" 5 | -------------------------------------------------------------------------------- /route/AS4242420803.toml: -------------------------------------------------------------------------------- 1 | ["10.127.131.0/24"] 2 | type = "subnet" 3 | name = "Gensokyo" 4 | description = "For Gensokyo home network" 5 | 6 | -------------------------------------------------------------------------------- /route/AS4242421025.toml: -------------------------------------------------------------------------------- 1 | ["fd10:127:0233:1000::/64"] 2 | type = "subnet" 3 | name = "icecat" 4 | description = "Used to distribute IPv6 upstream of DN42, only used for ASN identification when tracking routes" 5 | supernet = "fd10:127:0233::/48" 6 | -------------------------------------------------------------------------------- /route/AS4242421037.toml: -------------------------------------------------------------------------------- 1 | ["10.127.8.0/26"] 2 | type = "subnet" 3 | name = "LibreHouse" 4 | description = "For infrastratures in our network" 5 | -------------------------------------------------------------------------------- /route/AS4242421181.toml: -------------------------------------------------------------------------------- 1 | ["10.127.192.0/24"] 2 | type = "subnet" 3 | name = "AS-NEVLEZAY-DN42" 4 | max-len = 27 5 | -------------------------------------------------------------------------------- /route/AS4242421214.toml: -------------------------------------------------------------------------------- 1 | ["10.127.124.0/29"] 2 | type = "subnet" 3 | name = "Yi Global VPN" 4 | description = "SteveYi's VPS IP, for JP,TW,US...and more country's vps" 5 | -------------------------------------------------------------------------------- /route/AS4242421332.toml: -------------------------------------------------------------------------------- 1 | ["10.127.132.0/24"] 2 | type = "subnet" 3 | name = "NetUnion-IPv4" 4 | description = "NetUnion access. (IPv4)" 5 | 6 | ["fd10:127:1332::/48"] 7 | type = "subnet" 8 | name = "NetUnion-IPv6" 9 | description = "NetUnion access. (IPv6)" 10 | -------------------------------------------------------------------------------- /route/AS4242421876.toml: -------------------------------------------------------------------------------- 1 | ["10.127.66.0/24"] 2 | type = "subnet" 3 | name = "POTATO-NEO-NET4-A" 4 | description = "PotatoNet @ NeoNetwork" 5 | 6 | ["fd10:127:aa66::/48"] 7 | type = "subnet" 8 | name = "POTATO-NEO-NET6-A" 9 | description = "PotatoNet @ NeoNetwork" 10 | -------------------------------------------------------------------------------- /route/AS4242422189.toml: -------------------------------------------------------------------------------- 1 | ["10.127.21.0/24"] 2 | type = "subnet" 3 | name = "IEDON-NET" 4 | description = "iEdon Networks - Backbone and branches" 5 | 6 | ["10.127.25.0/24"] 7 | type = "subnet" 8 | name = "IEDON-NET" 9 | description = "iEdon Networks - Backbone and branches" 10 | -------------------------------------------------------------------------------- /route/AS4242422439.toml: -------------------------------------------------------------------------------- 1 | ["10.127.39.0/24"] 2 | type = "subnet" 3 | name = "Saru-Neo-IP4" 4 | description = "Saru Network NeoNetwork IPv4" 5 | 6 | ["10.127.255.39/32"] 7 | type = "loopback" 8 | name = "Saru-Neo-AnyNS-IP4" 9 | description = "Anycast authoritative IPv4 DNS of Saru Network @ NeoNetwork" 10 | 11 | ["fd10:127:39::/48"] 12 | type = "subnet" 13 | name = "Saru-Neo-IP6" 14 | description = "Saru Network NeoNetwork IPv6" 15 | -------------------------------------------------------------------------------- /route/AS4242422458.toml: -------------------------------------------------------------------------------- 1 | ["10.127.27.24/29"] 2 | type = "subnet" 3 | name = "HUAJITECH-ANYCAST" 4 | 5 | ["fd10:127:27:20::/60"] 6 | type = "subnet" 7 | name = "HUAJITECH-ANYCAST" 8 | -------------------------------------------------------------------------------- /route/AS4242422464.toml: -------------------------------------------------------------------------------- 1 | ["10.127.127.0/24"] 2 | type = "subnet" 3 | name = "Yura Moe NET" 4 | description = "Yura Neo Network" 5 | 6 | ["fd10:127:127::/48"] 7 | type = "subnet" 8 | name = "Yura Neo2" 9 | description = "Yura Neo Network2" 10 | 11 | ["10.127.127.127/32"] 12 | type = "loopback" 13 | name = "Yura Neo Anycast" 14 | description = "Yura Anycast4 Services" 15 | supernet = "10.127.127.0/24" 16 | 17 | ["fd10:127:127:53::/64"] 18 | type = "loopback" 19 | name = "Yura Neo2 Anycast" 20 | description = "Yura Anycast6 Services" 21 | supernet = "fd10:127:127::/48" 22 | 23 | ["10.127.127.125/32"] 24 | type = "loopback" 25 | name = "Yura Neo Anycast" 26 | description = "Yura Anycast4 Authoritative DNS" 27 | supernet = "10.127.127.0/24" 28 | 29 | ["10.127.255.54/32"] 30 | type = "loopback" 31 | name = "anycast-recur-4" 32 | description = "Anycast recursive DNS" 33 | 34 | ["fd10:127:53:53::/64"] 35 | type = "loopback" 36 | name = "anycast-recur-6" 37 | description = "Anycast recursive DNS" 38 | supernet = "fd10:127:53::/48" 39 | -------------------------------------------------------------------------------- /route/AS4242422923.toml: -------------------------------------------------------------------------------- 1 | ["10.127.149.224/27"] 2 | type = "subnet" 3 | name = "AS-BANDURA-DN42" 4 | max-len = 27 5 | 6 | ["fd10:127:fc31::/48"] 7 | type = "subnet" 8 | name = "AS-BANDURA-DN42" 9 | max-len = 48 10 | 11 | ["10.127.255.53/32"] 12 | type = "loopback" 13 | name = "anycast-auth-4" 14 | max-len = 32 15 | 16 | ["fd10:127:ffff:53::/64"] 17 | type = "loopback" 18 | name = "anycast-auth-6" 19 | max-len = 64 20 | 21 | ["10.127.255.54/32"] 22 | type = "loopback" 23 | name = "anycast-recur-4" 24 | max-len = 32 25 | 26 | ["fd10:127:53:53::/64"] 27 | type = "loopback" 28 | name = "anycast-recur-6" 29 | max-len = 64 30 | supernet = "fd10:127:53::/48" 31 | -------------------------------------------------------------------------------- /route/AS4242423618.toml: -------------------------------------------------------------------------------- 1 | ["10.127.255.53/32"] 2 | type = "loopback" 3 | name = "anycast-auth-4" 4 | description = "Anycast authoritative DNS" 5 | 6 | ["10.127.255.54/32"] 7 | type = "loopback" 8 | name = "anycast-recur-4" 9 | description = "Anycast recursive DNS" 10 | 11 | ["fd10:127:ffff:53::/64"] 12 | type = "loopback" 13 | name = "anycast-auth-6" 14 | description = "Anycast authoritative DNS" 15 | 16 | ["fd10:127:53:53::/64"] 17 | type = "loopback" 18 | name = "anycast-recur-6" 19 | description = "Anycast recursive DNS" 20 | supernet = "fd10:127:53::/48" 21 | -------------------------------------------------------------------------------- /route/AS4242423699.toml: -------------------------------------------------------------------------------- 1 | ["10.127.99.0/24"] 2 | type = "subnet" 3 | name = "TSINTYAO-NEO-NET4" 4 | description = "TsingYao Neo Network IPv4 Block" 5 | 6 | ["fd10:127:99::/48"] 7 | type = "subnet" 8 | name = "TSINGYAO-NEO-NET6" 9 | description = "TsingYao Neo Network IPv6 Block" 10 | -------------------------------------------------------------------------------- /route/AS4242423947.toml: -------------------------------------------------------------------------------- 1 | ["10.127.217.0/24"] 2 | type = "subnet" 3 | name = "HAWKINS-NEO-NET4" 4 | description = "Shared prefix for HAWKINS-NEO-AS and SERNET-DN42" 5 | supernet = "10.127.217.0/24" 6 | -------------------------------------------------------------------------------- /scripts/check-named-zones.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | # shellcheck disable=SC1091 3 | set -xeo pipefail 4 | 5 | [ -n "$CI" ] 6 | 7 | install() { 8 | sudo DEBIAN_FRONTEND=noninteractive apt \ 9 | -o Dpkg::Options::=--force-confold \ 10 | install -y --no-install-recommends \ 11 | bind9-utils 12 | } 13 | install || { sudo apt update -qq; install; } 14 | 15 | check() { 16 | PATH=/sbin:/usr/sbin:$PATH named-checkzone -i local -l 86400 $@ 17 | } 18 | 19 | pushd generated/dns 20 | 21 | check 'neo' neonetwork 22 | check '127.10.in-addr.arpa' db.10.127 23 | check '7.2.1.0.0.1.d.f.ip6.arpa' db.fd10.127 24 | 25 | popd 26 | -------------------------------------------------------------------------------- /scripts/dns-generator.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | import sys 3 | from pathlib import Path 4 | 5 | import toml 6 | 7 | from rfc2317 import gen_reverse_pointers, ZONE as RFC2317_ZONE 8 | from roa import export_dnssec_dnskey 9 | 10 | ZONE_FILE_MAP = { 11 | 'neo.': Path("dns", "neonetwork"), 12 | '127.10.in-addr.arpa.': Path("dns", "db.10.127"), 13 | '7.2.1.0.0.1.d.f.ip6.arpa.': Path("dns", "db.fd10.127") 14 | } 15 | RFC2317_FILE = Path("dns", "rfc2317.toml") 16 | NAMED_TURST_ANCHORS_FILE = Path("dns", "named_trust_anchors.conf") 17 | 18 | 19 | def iter_rfc2317_entry(): 20 | entries = toml.loads(RFC2317_FILE.read_text()) 21 | for (route, attributes) in entries.items(): 22 | ns = attributes.get("NS") 23 | ds = attributes.get("DS", list()) 24 | ttl = attributes.get("TTL", -1) 25 | yield (route, ns, ds, ttl) 26 | 27 | def write_named_trust_anchors(): 28 | header = 'trust-anchors {\n' 29 | footer = '\n}\n' 30 | contents = [] 31 | dnskeys_exported = export_dnssec_dnskey(include_zsk=False) 32 | maxzonelen = max(len(entry['zone']) for entry in dnskeys_exported) 33 | for entry in dnskeys_exported: 34 | zone, records = entry['zone'], [r['dnskey'] for r in entry['records']] 35 | for record in records: 36 | a1, a2, a3, a4 = record.split(maxsplit=3) 37 | contents.append(f" {zone:>{maxzonelen}s} static-key {a1} {a2} {a3} \"{a4}\";") 38 | NAMED_TURST_ANCHORS_FILE.write_text(header + '\n'.join(contents) + footer) 39 | 40 | def main(): 41 | DNSKEYS = {entry['zone']: entry['records'] for entry in export_dnssec_dnskey(include_zsk=True)} 42 | for zone, zone_file in ZONE_FILE_MAP.items(): 43 | orignal = zone_file.read_text() 44 | records = [orignal, "; AUTOGENERATED"] 45 | if zone.strip('.') == RFC2317_ZONE.strip('.'): 46 | records.extend(("", "; rfc2317")) 47 | for route, ns, ds, ttl in iter_rfc2317_entry(): 48 | records.extend(gen_reverse_pointers(route, ns, ds, ttl)) 49 | records.append("") 50 | records.extend(("", "; dnskey")) 51 | for dnskey in DNSKEYS[zone]: 52 | records.append(f"@ IN DNSKEY {dnskey['dnskey']}") 53 | records.append("") 54 | zone_file.write_text("\n".join(records)) 55 | 56 | 57 | if __name__ == "__main__": 58 | main() 59 | write_named_trust_anchors() 60 | -------------------------------------------------------------------------------- /scripts/generate-roa.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | # shellcheck disable=SC1091 3 | set -euo pipefail 4 | IFS=$'\n\t' 5 | 6 | set -x 7 | 8 | export MAX_LEN_4=29 9 | export MAX_LEN_6=64 10 | 11 | mkdir -p generated 12 | mkdir -p generated/dns 13 | 14 | scripts/dns-generator.py 15 | scripts/update-zone-serial.py 16 | cp -R dns/* generated/dns 17 | scripts/check-named-zones.sh 18 | 19 | scripts/roa.py -m "$MAX_LEN_4" -M "$MAX_LEN_6" -o generated/roa46_bird2.conf 20 | scripts/roa.py -m "$MAX_LEN_4" -M "$MAX_LEN_6" -4 -o generated/roa4_bird2.conf 21 | scripts/roa.py -m "$MAX_LEN_4" -M "$MAX_LEN_6" -6 -o generated/roa6_bird2.conf 22 | scripts/roa.py -m "$MAX_LEN_4" -M "$MAX_LEN_6" -j -o generated/roa46.json 23 | scripts/roa.py -m "$MAX_LEN_4" -M "$MAX_LEN_6" -e -o generated/neonetwork.json 24 | scripts/roa.py -m "$MAX_LEN_4" -M "$MAX_LEN_6" -r -o generated/rfc8416.json 25 | scripts/roa.py --summary --output generated/README.md 26 | -------------------------------------------------------------------------------- /scripts/homepage-update.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | set -xeu 3 | 4 | if ! which markdown 2>&1 >/dev/null; then 5 | echo "need markdown" 6 | exit 7 | fi 8 | 9 | ( 10 | cat docs/header.html 11 | markdown README.md 12 | cat docs/footer.html 13 | ) >docs/index.html 14 | -------------------------------------------------------------------------------- /scripts/named-formatzone.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | 3 | # highly explosive 4 | 5 | import argparse 6 | from pathlib import Path 7 | 8 | if __name__ == "__main__": 9 | parser = argparse.ArgumentParser("named-formatzone") 10 | parser.add_argument("file") 11 | args = parser.parse_args() 12 | zonefile = Path(args.file) 13 | zonelines = zonefile.read_text().split("\n") 14 | formatted = list() 15 | max_length = [0, 0, 0, 0, 0] 16 | in_soa = False 17 | 18 | def iter_lines(scan_only=True): 19 | soafound = None 20 | for rline in zonelines: 21 | line, *comments = rline.split(";") 22 | comments = ";".join(comments) 23 | line = line.strip() 24 | if "SOA" in line and soafound is None: 25 | soafound = True 26 | else: 27 | if "IN" in line and soafound is True: 28 | soafound = False 29 | if soafound is False and line: 30 | cols = line.split() 31 | if len(cols) != 5: 32 | cols.insert(1, "") 33 | print(cols) 34 | name, ttl, _in, rrtype, *record = cols 35 | record = " ".join(record) 36 | cols = (name, ttl, _in, rrtype, record) 37 | assert _in == "IN" 38 | if scan_only: 39 | for i, entry in enumerate(cols): 40 | max_length[i] = max(max_length[i], len(entry)) 41 | else: 42 | fmtlline = list() 43 | for i, entry in enumerate(cols): 44 | entry += " " * (max_length[i] - len(entry) + 3) 45 | if entry: 46 | fmtlline.append(entry) 47 | fmtline = " ".join(fmtlline) 48 | formatted.append(f"{fmtline} ;{comments}" if comments else fmtline) 49 | formatted[-1] = formatted[-1].strip() 50 | else: 51 | if not scan_only: 52 | formatted.append(rline) 53 | 54 | iter_lines() 55 | iter_lines(False) 56 | 57 | zonefile.write_text("\n".join(formatted)) 58 | -------------------------------------------------------------------------------- /scripts/push-to-roa.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | set -euo pipefail 3 | IFS=$'\n\t' 4 | 5 | set -x 6 | 7 | cd generated || exit 1 8 | 9 | git config user.name "NeoCloud ROA bot" 10 | git config user.email "support@neocloud.tw" 11 | git add . 12 | git commit -m "Generated at $(date -u +"%Y-%m-%dT%H:%M:%SZ")" 13 | git push 14 | -------------------------------------------------------------------------------- /scripts/requirements.txt: -------------------------------------------------------------------------------- 1 | netaddr==0.8.0 2 | tabulate==0.8.9 3 | toml==0.10.1 4 | dnspython==2.1.0 5 | -------------------------------------------------------------------------------- /scripts/rfc2317.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | 3 | import ipaddress 4 | 5 | ZONE = ".127.10.in-addr.arpa" 6 | 7 | 8 | def truncate(rev: str) -> str: 9 | assert rev.endswith(ZONE) 10 | rev = rev[: -len(ZONE)] 11 | return rev 12 | 13 | 14 | def gen_reverse_pointers(network: str, ns: list, ds: list = [], ttl: int = -1) -> list: 15 | ttl = f"{ttl} " if 900 <= ttl <= 86400 else "" 16 | buf = list() 17 | net = ipaddress.IPv4Network(network, strict=True) 18 | assert net.prefixlen > 24 19 | netrev = truncate(net.reverse_pointer) 20 | for _ns in ns: 21 | buf.append(f"{netrev} {ttl}IN NS {_ns}") 22 | for _ds in ds: 23 | buf.append(f"{netrev} {ttl}IN DS {_ds}") 24 | 25 | for addr in net: 26 | cnamefr = truncate(addr.reverse_pointer) 27 | cnameto = f"{int.from_bytes(addr.packed, byteorder='big', signed=False) & 0xff}.{netrev}" 28 | buf.append(f"{cnamefr} {ttl}IN CNAME {cnameto}") 29 | return buf 30 | 31 | 32 | if __name__ == "__main__": 33 | print( 34 | "\n".join( 35 | gen_reverse_pointers( 36 | "10.127.8.64/26", 37 | ["ns1.jerry.neo."], 38 | [ 39 | "18792 13 2 2F335456EEE70FC4833886E5EEDC28E7195E90E2A337860B3E805D5EB9F3A804" 40 | ], 41 | ttl=1500, 42 | ) 43 | ) 44 | ) 45 | -------------------------------------------------------------------------------- /scripts/roa.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | import argparse 3 | import json 4 | import re 5 | import time 6 | 7 | # dnssec 8 | from base64 import b64decode 9 | from collections import defaultdict 10 | from contextlib import redirect_stdout 11 | from functools import wraps 12 | from io import StringIO 13 | from ipaddress import IPv4Network, IPv6Network, ip_network 14 | from itertools import combinations 15 | from pathlib import Path 16 | 17 | import netaddr 18 | import toml 19 | from dns.dnssec import make_ds 20 | from dns.rdtypes.ANY.DNSKEY import DNSKEY 21 | from tabulate import tabulate 22 | 23 | NEO_NETWORK_POOL = [ip_network("10.127.0.0/16"), ip_network("fd10:127::/32")] 24 | 25 | 26 | def pick(entity: dict, fields: [str], **kwargs: dict): 27 | new_entity = {} 28 | for field in fields: 29 | new_entity[field] = entity.get(field) 30 | for old_field, new_field in kwargs.items(): 31 | new_entity[new_field] = entity.get(old_field) 32 | return new_entity 33 | 34 | 35 | def is_neo_network(address): 36 | return any( 37 | address.version == neo.version and address.subnet_of(neo) 38 | for neo in NEO_NETWORK_POOL 39 | ) 40 | 41 | 42 | def is_neo_network_asn(asn: int): 43 | return 4201270000 <= asn <= 4201279999 44 | 45 | 46 | def is_dn42_asn(asn: int): 47 | return 4242420000 <= asn <= 4242429999 48 | 49 | 50 | def name_to_nic_hdl(name): 51 | r, num = re.subn(r"[^0-9A-Z]", "-", name.upper()) 52 | _r = len(r.replace("-", "")) 53 | assert _r >= 3 # has at least 3 effective chars 54 | assert r[0] != "-" # starts with [0-9A-Z] 55 | assert num < _r # not too many subs 56 | return r 57 | 58 | 59 | def iter_toml_file(path: str): 60 | for item in Path(path).iterdir(): 61 | if not item.is_file() or item.suffix != ".toml": 62 | continue 63 | yield item, toml.loads(item.read_text()) 64 | 65 | 66 | def _sort_as_iterator(func): 67 | @wraps(func) 68 | def wrapped(*args, **kwargs): 69 | for item in sorted( 70 | list(func(*args, **kwargs)), key=lambda x: x[0], reverse=False 71 | ): 72 | yield item 73 | 74 | return wrapped 75 | 76 | 77 | @_sort_as_iterator 78 | def load_entities(): 79 | for item, entity in iter_toml_file("entity"): 80 | yield item.stem, entity 81 | 82 | 83 | @_sort_as_iterator 84 | def load_asn(entities: dict): 85 | for item, entity in iter_toml_file("asn"): 86 | asn = int(item.stem.lstrip("AS")) 87 | entity["source"] = ( 88 | is_neo_network_asn(asn) 89 | and "NeoNetwork" 90 | or is_dn42_asn(asn) 91 | and "DN42" 92 | or entity.get("source") 93 | ) 94 | assert entity["owner"] in entities 95 | assert entity["source"] in ["NeoNetwork", "DN42", "Internet"] 96 | yield asn, entity 97 | 98 | def route_to_roa(asn_table: dict): 99 | def make_route(): 100 | for item, entity in iter_toml_file("route"): 101 | asn = int(item.stem.lstrip("AS")) 102 | for prefix, fields in entity.items(): 103 | if fields["type"] not in ("loopback", "subnet"): 104 | continue 105 | fields["asn"] = asn 106 | fields["prefix"] = ip_network(prefix, strict=True) 107 | fields["maxLength"] = fields.get("max-len", fields["prefix"].max_prefixlen) 108 | assert fields["prefix"].prefixlen <= fields["maxLength"] <= fields["prefix"].max_prefixlen 109 | supernet = fields.get("supernet") 110 | fields["supernet"] = ( 111 | ip_network(supernet, strict=True) if supernet else None 112 | ) 113 | assert fields["name"] 114 | assert is_neo_network(fields["prefix"]) 115 | assert not fields["supernet"] or ( 116 | is_neo_network(fields["supernet"]) 117 | and fields["supernet"].supernet_of(fields["prefix"]) 118 | ) 119 | yield pick(fields, ["asn", "name", "type", "prefix", "supernet", "maxLength"]) 120 | 121 | entities = sorted(make_route(), key=lambda item: item["asn"]) 122 | prefixes = [item["prefix"] for item in entities] 123 | for net1, net2 in combinations( 124 | sorted(entities, key=lambda net: net["prefix"].prefixlen), 2 125 | ): 126 | if net1["type"] == net2["type"] == "loopback": 127 | continue 128 | if not net1["prefix"].overlaps(net2["prefix"]): 129 | continue 130 | entity_from_net = lambda net: asn_table.get(net["asn"])["owner"] 131 | try: 132 | assert net1["prefix"] != net2["prefix"] 133 | except AssertionError: 134 | assert net1["asn"] != net2["asn"] and entity_from_net( 135 | net1 136 | ) == entity_from_net(net2) 137 | continue 138 | assert net1["prefix"].supernet_of(net2["prefix"]) 139 | s1net, s2net = (net1["supernet"], net2["supernet"]) 140 | assert s2net # please include supernet = in your route 141 | # if net1(the bigger net) has a supernet s1net, then s1net and net1 142 | # will be checked or must have been checked, same for net2 143 | assert not s1net or s1net in prefixes # net1.supernet is garbage 144 | assert s2net == net1["prefix"] or s2net in prefixes # net2.supernet is garbage 145 | return entities 146 | 147 | 148 | def prehandle_roa(asn_table: dict, args): 149 | roa = route_to_roa(asn_table) 150 | max_prefixlen = IPv4Network(0).max_prefixlen 151 | roa4 = filter(lambda item: isinstance(item["prefix"], IPv4Network), roa) 152 | roa6 = filter(lambda item: isinstance(item["prefix"], IPv6Network), roa) 153 | if args.ipv4: 154 | roa6 = [] 155 | elif args.ipv6: 156 | roa4 = [] 157 | roa4 = [ 158 | r 159 | for r in roa4 160 | if r["prefix"].prefixlen <= args.max or r["prefix"].prefixlen == max_prefixlen 161 | ] 162 | roa6 = [r for r in roa6 if r["prefix"].prefixlen <= args.max6] 163 | for r in roa4: 164 | if r["prefix"].prefixlen == max_prefixlen: 165 | r["maxLength"] = max_prefixlen 166 | else: 167 | r["maxLength"] = r["maxLength"] if r["maxLength"] <= args.max else args.max 168 | for r in roa6: 169 | r["maxLength"] = r["maxLength"] if r["maxLength"] <= args.max6 else args.max6 170 | for r in (*roa4, *roa6): 171 | r["prefix"] = r["prefix"].with_prefixlen 172 | return roa4, roa6 173 | 174 | 175 | def export_dnssec_dnskey(include_zsk=False): 176 | def ds_from_dnskey(zone, flags, protocol, algorithm, *key): 177 | dnspy_dnskey = DNSKEY( 178 | "IN", 179 | "DNSKEY", 180 | int(flags), 181 | int(protocol), 182 | int(algorithm), 183 | b64decode(" ".join(key)), 184 | ) 185 | return make_ds(zone, dnspy_dnskey, "SHA256").to_text() 186 | 187 | dnskey_path = Path("dns") / "dnssec" 188 | dnskeys = list() 189 | for f in dnskey_path.iterdir(): 190 | if f.name.endswith(".keys"): 191 | zonekey = {"zone": "", "records": list()} 192 | records = f.read_text().split("\n") 193 | records = [r.split() for r in records if r and not r.startswith(';')] 194 | for zone, _ttl, _in, _dnskey, *dnskey in records: 195 | int(_ttl) 196 | assert _in == "IN" and _dnskey == "DNSKEY" 197 | if not zonekey["zone"]: 198 | zonekey["zone"] = zone 199 | else: 200 | assert zonekey["zone"] == zone 201 | assert dnskey[0] in ['256', '257'] 202 | if dnskey[0] == '257' or include_zsk: 203 | zonekey["records"].append( 204 | { 205 | "dnskey": " ".join(dnskey), 206 | "ds": ds_from_dnskey(zone, *dnskey), 207 | } 208 | ) 209 | if zonekey["zone"]: 210 | dnskeys.append(zonekey) 211 | return dnskeys 212 | 213 | 214 | def make_export(roa4, roa6): 215 | def modify_entity(entity): 216 | entity["nic_hdl"] = name_to_nic_hdl(entity["name"]) 217 | return entity 218 | 219 | def filter_route(records, asn): 220 | return [ 221 | pick(roa, ["prefix", "maxLength"], name="netname") 222 | for roa in records 223 | if roa["asn"] == asn 224 | ] 225 | 226 | entities = dict(load_entities()) 227 | asn_list = [ 228 | { 229 | "asn": asn, 230 | "owner": asn_info["owner"], 231 | "name": asn_info["name"], 232 | "source": asn_info["source"], 233 | "description": asn_info.get("description"), 234 | "routes": { 235 | "ipv4": filter_route(roa4, asn), 236 | "ipv6": filter_route(roa6, asn), 237 | }, 238 | } 239 | for asn, asn_info in load_asn(entities) 240 | ] 241 | 242 | current = int(time.time()) 243 | output = { 244 | "metadata": {"generated": current, "valid": current + 14 * 86400}, 245 | "people": { 246 | owner: { 247 | "info": modify_entity(entity), 248 | "asns": list(filter(lambda item: item["owner"] == owner, asn_list)), 249 | } 250 | for owner, entity in entities.items() 251 | }, 252 | "dnssec": export_dnssec_dnskey(), 253 | } 254 | return json.dumps(output, indent=2) 255 | 256 | 257 | def make_json(roa4, roa6): 258 | current = int(time.time()) 259 | output = { 260 | "metadata": { 261 | "counts": len(roa4) + len(roa6), 262 | "generated": current, 263 | "valid": current + 14 * 86400, 264 | }, 265 | "roas": [ 266 | {"asn": "AS%d" % roa["asn"], **pick(roa, ["prefix", "maxLength"])} 267 | for roa in (*roa4, *roa6) 268 | ], 269 | } 270 | return json.dumps(output, indent=2) 271 | 272 | 273 | def make_rfc8416(roa4, roa6): 274 | output = { 275 | "slurmVersion": 1, 276 | "validationOutputFilters": {"prefixFilters": [], "bgpsecFilters": []}, 277 | "locallyAddedAssertions": { 278 | "bgpsecAssertions": [], 279 | "prefixAssertions": [ 280 | pick( 281 | roa, 282 | ["asn", "prefix"], 283 | maxLength="maxPrefixLength", 284 | name="comment", 285 | ) 286 | for roa in (*roa4, *roa6) 287 | ], 288 | }, 289 | } 290 | return json.dumps(output, indent=2) 291 | 292 | 293 | def make_roa_records(roa4, roa6): 294 | records = [ 295 | "route {prefix} max {maxLength} as {asn};".format_map(roa) 296 | for roa in (*roa4, *roa6) 297 | ] 298 | return "\n".join(["# NeoNetwork ROA tool", "", *records]) 299 | 300 | 301 | def make_summary(): 302 | entities = dict(load_entities()) 303 | asn_table = dict(load_asn(entities)) 304 | stream = StringIO() 305 | with redirect_stdout(stream): 306 | print("# NeoNetwork Summary") 307 | print() 308 | print("## Entity table") 309 | print() 310 | entity_table = tabulate( 311 | ( 312 | ( 313 | entity["name"], 314 | entity.get("contact", {}).get("email"), 315 | entity.get("contact", {}).get("telegram"), 316 | ) 317 | for entity in entities.values() 318 | ), 319 | headers=["Name", "Email", "Telegram"], 320 | tablefmt="github", 321 | ) 322 | print(entity_table) 323 | print() 324 | print("## AS table") 325 | print() 326 | as_table = tabulate( 327 | ( 328 | (entity["source"], "AS{}".format(asn), entity["owner"], entity["name"]) 329 | for asn, entity in sorted(asn_table.items(), key=lambda item: item[0]) 330 | ), 331 | headers=["Source", "ASN", "Owner", "Name"], 332 | tablefmt="github", 333 | ) 334 | print(as_table) 335 | print() 336 | print("## Route table") 337 | print() 338 | route_table = tabulate( 339 | ( 340 | ( 341 | "AS{asn}".format_map(entity), 342 | entity["name"], 343 | entity["type"], 344 | entity["prefix"] or "", 345 | entity["supernet"] or "", 346 | ) 347 | for entity in route_to_roa(asn_table) 348 | ), 349 | headers=["ASN", "Name", "Type", "Prefix", "Supernet"], 350 | tablefmt="github", 351 | ) 352 | print(route_table) 353 | print() 354 | print("## Used CIDR Range") 355 | print("
\nClick to expand") 356 | print() 357 | prefixes = netaddr.cidr_merge( 358 | netaddr.IPNetwork(str(entity["prefix"])) 359 | for entity in route_to_roa(asn_table) 360 | ) 361 | print("```") 362 | for prefix in prefixes: 363 | print(prefix) 364 | print("```") 365 | print("
") 366 | free_netset = netaddr.IPSet([str(n) for n in NEO_NETWORK_POOL]) - netaddr.IPSet(prefixes) 367 | print() 368 | print("## Free CIDR Range") 369 | print("
\nClick to expand") 370 | print() 371 | print("```") 372 | for prefix in free_netset.iter_cidrs(): 373 | print(prefix) 374 | print("```") 375 | print("
") 376 | IP_VRSIONS = {4, 6} 377 | total_ip_count = { 378 | ver: sum( 379 | [ 380 | prefix.num_addresses 381 | for prefix in NEO_NETWORK_POOL 382 | if prefix.version == ver 383 | ] 384 | ) 385 | for ver in IP_VRSIONS 386 | } 387 | used_ip_count = { 388 | ver: sum( 389 | [ 390 | ip_network(str(prefix)).num_addresses 391 | for prefix in prefixes 392 | if prefix.version == ver 393 | ] 394 | ) 395 | for ver in IP_VRSIONS 396 | } 397 | print() 398 | print("## Address Space Usage") 399 | print() 400 | address_space_usage_table = tabulate( 401 | ( 402 | ( 403 | f"IPv{ver}", 404 | f"{(t:=total_ip_count.get(ver)):.5g}", 405 | f"{(u:=used_ip_count.get(ver)):.5g}", 406 | f"{t-u:.5g}", 407 | f"{u/t*100:.2f}%", 408 | f"{(t-u)/t*100:.2f}%", 409 | ) 410 | for ver in IP_VRSIONS 411 | ), 412 | headers=[ 413 | "IP Version", 414 | "Total", 415 | "Used", 416 | "Free", 417 | "Percent Used", 418 | "Percent Free", 419 | ], 420 | tablefmt="github", 421 | disable_numparse=True, 422 | ) 423 | print(address_space_usage_table) 424 | return stream.getvalue() 425 | 426 | 427 | def main(args): 428 | entities = dict(load_entities()) 429 | asn_table = dict(load_asn(entities)) 430 | roa4, roa6 = prehandle_roa(asn_table, args) 431 | if args.export: 432 | return make_export(roa4, roa6) 433 | elif args.json: 434 | return make_json(roa4, roa6) 435 | elif args.rfc8416: 436 | return make_rfc8416(roa4, roa6) 437 | elif args.summary: 438 | return make_summary() 439 | else: 440 | return make_roa_records(roa4, roa6) 441 | 442 | 443 | if __name__ == "__main__": 444 | parser = argparse.ArgumentParser(description="NeoNetwork ROA tool") 445 | parser.add_argument( 446 | "-m", "--max", type=int, default=29, help="set ipv4 max prefix length" 447 | ) 448 | parser.add_argument( 449 | "-M", "--max6", type=int, default=64, help="set ipv6 max prefix length" 450 | ) 451 | parser.add_argument("-j", "--json", action="store_true", help="output json") 452 | parser.add_argument("-r", "--rfc8416", action="store_true", help="output rfc8416") 453 | parser.add_argument("-s", "--summary", action="store_true", help="output summary") 454 | parser.add_argument("-o", "--output", default="", help="write output to file") 455 | parser.add_argument("-4", "--ipv4", action="store_true", help="print ipv4 only") 456 | parser.add_argument("-6", "--ipv6", action="store_true", help="print ipv6 only") 457 | parser.add_argument( 458 | "-e", "--export", action="store_true", help="export registry to json" 459 | ) 460 | args = parser.parse_args() 461 | if ( 462 | args.max < 0 463 | or args.max6 < 0 464 | or args.max > IPv4Network(0).max_prefixlen 465 | or args.max6 > IPv6Network(0).max_prefixlen 466 | ): 467 | parser.error("check your max prefix length") 468 | output = main(args) 469 | if not args.output or args.output == "-": 470 | print(output) 471 | elif output: 472 | Path(args.output).write_text(output) 473 | print("written to", args.output) 474 | -------------------------------------------------------------------------------- /scripts/update-zone-serial.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | import subprocess 3 | from os import chdir 4 | from pathlib import Path 5 | from re import match 6 | from time import time 7 | 8 | zone_files = [ 9 | "neonetwork", 10 | "db.10.127", 11 | "db.fd10.127", 12 | ] 13 | 14 | serial_base = 1586876035 15 | new_serial = int(time()) - serial_base 16 | 17 | 18 | def update_serial_to(zone: Path, serial: int = 0) -> int: 19 | lines = zone.read_text().split("\n") 20 | processed = list() 21 | assert 0 <= serial <= 2 ** 32 22 | found = False 23 | old_serial = None 24 | for line in lines: 25 | if not found and (m := match(r"^(\s+)([0-9]+)(\s*;\s*Serial\s*)$", line)): 26 | prefix, old_serial, suffix = m.groups() 27 | old_serial = int(old_serial) 28 | print(f"{old_serial=} {serial=}") 29 | plen = max(len(prefix) - len(str(serial)) + len(str(old_serial)), 0) 30 | processed.append(f"{' '*plen}{serial}{suffix}") 31 | found = True 32 | else: 33 | processed.append(line) 34 | if serial: 35 | zone.write_text("\n".join(processed)) 36 | return old_serial 37 | 38 | 39 | for zone in zone_files: 40 | gen_zone = Path("generated") / "dns" / zone 41 | repo_zone = Path("dns") / zone 42 | assert gen_zone.exists() 43 | assert repo_zone.exists() 44 | old_serial = update_serial_to(gen_zone) 45 | update_serial_to(repo_zone, old_serial) 46 | gen_zone.write_text(repo_zone.read_text()) 47 | p = subprocess.run( 48 | ["git", "diff", "--exit-code", gen_zone.name], cwd=gen_zone.parent 49 | ) 50 | if p.returncode == 0: 51 | print(f"skip {repo_zone.name}") 52 | else: 53 | print(f"update serial {repo_zone.name}") 54 | update_serial_to(repo_zone, new_serial) 55 | -------------------------------------------------------------------------------- /vpn/tinc/tinc-down: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | case `uname` in 4 | Linux) 5 | ip link set $INTERFACE down 6 | ;; 7 | *BSD) 8 | ifconfig $INTERFACE down 9 | ;; 10 | esac 11 | -------------------------------------------------------------------------------- /vpn/tinc/tinc-up: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | IP="" 4 | PEER="" 5 | 6 | case "`uname`" in 7 | Linux) 8 | ip link set "$INTERFACE" up 9 | ip addr add "$IP" peer "$PEER" dev "$INTERFACE" 10 | ;; 11 | *BSD) 12 | ifconfig "$INTERFACE" "$IP" "$PEER" 13 | ;; 14 | esac 15 | -------------------------------------------------------------------------------- /vpn/tinc/tinc.conf: -------------------------------------------------------------------------------- 1 | Name= 2 | Mode=switch 3 | ConnectTo= 4 | -------------------------------------------------------------------------------- /vpn/wg-postup.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | IF="$1" 4 | LOCAL_IP="$2" 5 | PEER_IP="$3" 6 | LOCAL_IPV6="$4" 7 | PEER_IPV6="$5" 8 | 9 | ip addr add "$LOCAL_IP" peer "$PEER_IP" dev "$IF" 10 | 11 | if [ "$#" -ge 5 ]; then 12 | ip addr add "$LOCAL_IPV6" peer "$PEER_IPV6" dev "$IF" 13 | fi 14 | -------------------------------------------------------------------------------- /vpn/wireguard.conf: -------------------------------------------------------------------------------- 1 | [Interface] 2 | Address = fe80::XXXX/64 3 | PostUp = /path/to/wg-postup.sh %i 4 | # Set MTU to 1412 if using PPP 5 | #MTU = 1412 6 | Table = off 7 | ListenPort = 8 | PrivateKey = 9 | 10 | [Peer] 11 | AllowedIPs = 0.0.0.0/0, ::0/0 12 | PersistentKeepalive = 25 13 | PublicKey = 14 | Endpoint = 15 | --------------------------------------------------------------------------------