MediaWiki API の結果

This is the HTML representation of the JSON format. HTML is good for debugging, but is unsuitable for application use.

Specify the format parameter to change the output format. To see the non-HTML representation of the JSON format, set format=json.

See the complete documentation, or the API help for more information.

{
    "batchcomplete": "",
    "continue": {
        "gapcontinue": "\u30a4\u30fc\u30b5\u30cd\u30c3\u30c8_\u30c8\u30e9\u30f3\u30b7\u30fc\u30d0_TIPS",
        "continue": "gapcontinue||"
    },
    "warnings": {
        "main": {
            "*": "Subscribe to the mediawiki-api-announce mailing list at <https://lists.wikimedia.org/mailman/listinfo/mediawiki-api-announce> for notice of API deprecations and breaking changes."
        },
        "revisions": {
            "*": "Because \"rvslots\" was not specified, a legacy format has been used for the output. This format is deprecated, and in the future the new format will always be used."
        }
    },
    "query": {
        "pages": {
            "210": {
                "pageid": 210,
                "ns": 0,
                "title": "VyOS \u3068 Tailscale \u3067\u9ad8\u901f\u30fb\u5197\u9577\u5316\u3055\u308c\u305f VPN \u3092\u4f5c\u308b\u65b9\u6cd5",
                "revisions": [
                    {
                        "contentformat": "text/x-wiki",
                        "contentmodel": "wikitext",
                        "*": "== \u76ee\u7684\u30fb\u30e1\u30ea\u30c3\u30c8 ==\nIPsec VPN \u3092\u8d85\u3048\u308b\u901f\u5ea6\u3067\u3001\u62e0\u70b9\u9593\u901a\u4fe1\u3092\u6697\u53f7\u5316\u3067\u304d\u308b\n\n* Tailscale  : \u30d5\u30ec\u30c3\u30c4 IPoE <-> Nuro \u3067 125Mbps \u3092\u78ba\u8a8d\n* IPsec : \u30d5\u30ec\u30c3\u30c4 PPPoE <-> Nuro \u3067\u306f 50Mbps \u7a0b\u5ea6\n\n\u30c0\u30a4\u30ca\u30df\u30c3\u30af \u30eb\u30fc\u30c6\u30a3\u30f3\u30b0\u3067\u3001\u62e0\u70b9\u9593\u901a\u4fe1\u3092\u5197\u9577\u5316\u3067\u304d\u308b\n\n\u56fa\u5b9a\u30fb\u52d5\u7684\u30b0\u30ed\u30fc\u30d0\u30eb IP \u304c\u5fc5\u8981\u306a\u3044\n\n* IPsec \u306f\u3001\u5c11\u306a\u304f\u3068\u3082\u7247\u65b9\u306b\u30b0\u30ed\u30fc\u30d0\u30eb IP \u304c\u5fc5\u8981\n\n* Tailscale \u306f\u4e21\u62e0\u70b9\u3068\u3082 NAT \u914d\u4e0b\u3067 OK\n\n\u30ea\u30e2\u30fc\u30c8\u30a2\u30af\u30bb\u30b9 VPN \u3082\u540c\u6642\u306b\u69cb\u7bc9\u53ef\u80fd\n\n== \u5fc5\u8981\u306a\u3082\u306e ==\nx86 \u30b5\u30fc\u30d0 x2\n\n\u30bf\u30b0 Vlan \u5bfe\u5fdc L2 \u30b9\u30a4\u30c3\u30c1\n\n== \u3042\u308b\u3068\u826f\u3044\u3082\u306e ==\nx86 \u30b5\u30fc\u30d0 x4\n\n* 2 \u62e0\u70b9\u306b 2 \u53f0\u305a\u3064\u8a2d\u7f6e\u3057\u3066\u3001\u7269\u7406\u7684\u306b\u3082\u5197\u9577\u5316\u3055\u305b\u308b\n\n\u30bf\u30b0 Vlan \u5bfe\u5fdc L3 \u30b9\u30a4\u30c3\u30c1\n\n== \u8ad6\u7406\u69cb\u6210\u4f8b ==\n[[\u30d5\u30a1\u30a4\u30eb:Tailscale VyOS 01.png|\u30d5\u30ec\u30fc\u30e0\u306a\u3057|800x800\u30d4\u30af\u30bb\u30eb]]\n\n=== \u8a66\u9a13\u74b0\u5883 ===\nWest01,02 , East01,02 : '''VyOS 1.4'''\n\nWest_vSwitch , East_vSwitch : '''ESXi vSwitch'''\n\nWest_PC01 , East_PC01 : '''LAN \u30db\u30b9\u30c8'''\n\n=== \u30dd\u30a4\u30f3\u30c8 ===\nBGP \u306f Tailscale \u306e 100.64.x.x/32 \u3067\u30d4\u30a2\u3092\u5f35\u3089\u305a\u3001\u5e83\u5831\u3059\u308b\u96c6\u7d04\u30eb\u30fc\u30c8\u304b\u3089\u5207\u308a\u51fa\u3057\u305f\u30b5\u30d6\u30cd\u30c3\u30c8\u3092\u4f7f\u7528\u3057\u3001Loopback (\u4ee5\u4e0b Lo) \u30a4\u30f3\u30bf\u30fc\u30d5\u30a7\u30fc\u30b9\u3067 BGP \u30bb\u30c3\u30b7\u30e7\u30f3\u3092\u5f35\u308b\n\n* tailscale \u306e\u30a4\u30f3\u30bf\u30fc\u30d5\u30a7\u30fc\u30b9\u3067\u3042\u308b 100.64.x.x/32 \u3067\u5f35\u308b\u3068\u3001\u5e83\u5831\u3059\u308b\u5185\u90e8\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u304c\u901a\u4fe1\u3067\u304d\u306a\u3044\u5834\u5408\u306b\u3082 BGP \u30d4\u30a2\u3092\u5f35\u308a\u7d9a\u3051\u3066\u3057\u307e\u3046\n** \u4f8b) Tailscale \u306e 1 \u30a2\u30ab\u30a6\u30f3\u30c8\u5185\u3067\u540c\u4e00\u30b5\u30d6\u30cd\u30c3\u30c8\u3092 2 \u3064\u306e\u30ce\u30fc\u30c9\u3067 advertise-routes \u3057\u305f\u3068\u304d\u3001\u7247\u65b9\u306e\u30ce\u30fc\u30c9\u3067\u30eb\u30fc\u30c8\u304c\u5e83\u5831\u3067\u304d\u305a\u3001\u901a\u4fe1\u4e0d\u53ef\u306b\u306a\u308b\n** Lo \u3092 BGP \u30d4\u30a2\u306b\u4f7f\u7528\u3059\u308b\u3053\u3068\u3067\u3001\u96c6\u7d04\u30eb\u30fc\u30c8\u306e\u901a\u4fe1\u4e0d\u53ef\u3092\u691c\u51fa\u3057\u3001\u5207\u308a\u66ff\u3048\u308b\u3053\u3068\u304c\u53ef\u80fd\n* BGP \u30d4\u30a2\u306e\u5b9b\u5148 Lo \u5b9b Static Route \u3092 interface Tailscale 0 \u306b\u5411\u3051\u308b + ebgp-multihop 2 \u3092\u8a2d\u5b9a\n** eBGP \u306e\u30c7\u30d5\u30a9\u30eb\u30c8\u306f Keepalive \u306e IP \u30d8\u30c3\u30c0\u304c TTL=1 \u306e\u305f\u3081\u3001tailscale \u30a4\u30f3\u30bf\u30fc\u30d5\u30a7\u30fc\u30b9\u3092\u7d4c\u7531\u3057\u305f\u6642\u70b9\u3067 TTL=0 \u3067 Drop \u3057\u3066\u3057\u307e\u3044\u3001Lo \u3068\u30d4\u30a2\u3067\u304d\u306a\u3044\nTailscale \u4e0a\u3067 Lo \u306e\u30eb\u30fc\u30c8\u4ea4\u63db\u306b OSPF \u3092\u8a66\u3057\u3066\u307f\u305f\u304c\u3001\u52d5\u4f5c\u3057\u306a\u304b\u3063\u305f\n\n* Tailscale \u3067 OSPF Hello \u306e\u30de\u30eb\u30c1\u30ad\u30e3\u30b9\u30c8 or OSPF IP protocol number \u304c\u30d5\u30a3\u30eb\u30bf\u30ea\u30f3\u30b0\u3055\u308c\u3066\u3044\u308b\n** neighbor \u6307\u5b9a\u3067\u3082 Up \u3057\u306a\u3044\u305f\u3081\u3001\u304a\u305d\u3089\u304f protocol number \u306b\u3088\u308b\n\n== \u69cb\u7bc9\u624b\u9806\u6982\u8981 ==\n\n=== Tailscale ===\n\u30a2\u30ab\u30a6\u30f3\u30c8\u3092\u4f5c\u6210\u3059\u308b\n\n* \u5197\u9577\u5316\u306a\u3057 : 1 \u3064\n* \u5197\u9577\u5316\u3042\u308a : 2 \u3064\n** \u30a2\u30ab\u30a6\u30f3\u30c8\u304c 1 \u3064 + Free \u30d7\u30e9\u30f3\u306e\u5834\u5408\u3001Tailscale subnet router \u306f\u540c\u3058\u30d7\u30ec\u30d5\u30a3\u30c3\u30af\u30b9\u3092 1 \u53f0\u3057\u304b\u5e83\u5831\u3067\u304d\u306a\u3044\n** \u30a2\u30ab\u30a6\u30f3\u30c8\u3092 2 \u3064\u53d6\u5f97\u3057\u30011 \u30a2\u30ab\u30a6\u30f3\u30c8\u3092 2 \u30eb\u30fc\u30bf\u3092\u5225\u62e0\u70b9\u306b\u914d\u7f6e\u3059\u308b\n\n=== VyOS ===\n\u30cf\u30a4\u30d1\u30fc\u30d0\u30a4\u30b6\u306b\u30c7\u30d7\u30ed\u30a4\u3059\u308b\n\n* WAN \u5074\u30dd\u30fc\u30c8\u30b0\u30eb\u30fc\u30d7\u306b DHCP \u3084 PPPoE \u306a\u3069\u306e Vlan \u3092\u5272\u308a\u5f53\u3066\u3001eth4 \u306b\u30a2\u30b5\u30a4\u30f3\n* LAN \u5074\u30dd\u30fc\u30c8\u30b0\u30eb\u30fc\u30d7\u306b\u30db\u30b9\u30c8\u3084 L3SW \u306e Vlan \u3092\u5272\u308a\u5f53\u3066\u3001eth0 \u306b\u30a2\u30b5\u30a4\u30f3\n\n* VyOS \u306e CD-ROM \u3092\u30de\u30a6\u30f3\u30c8\u3057\u3066\u8d77\u52d5\u3001install image \u3067 VM \u306e HDD \u3078\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\n\n\u30a4\u30f3\u30bf\u30fc\u30cd\u30c3\u30c8\u306b\u63a5\u7d9a\u3059\u308b\u8a2d\u5b9a\u3092\u884c\u3046\n\nTailscale \u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3059\u308b\n\n* VyOS 1.4 \u306e\u5834\u5408\u3001\u30d9\u30fc\u30b9\u3068\u306a\u308b Linux<ref>2021-06-25\n\nT3641 (feature): Upgrade base system from Debian Buster -> Debian Bullseye</ref> [https://tailscale.com/download/linux/debian-bullseye Debian 11 Bullseye \u306e\u624b\u9806]\u3092\u4f7f\u7528\u3059\u308b\n* VyOS \u306e CLI \u304b\u3089\u3001\u76f4\u63a5 bash shell \u306e\u30b3\u30de\u30f3\u30c9\u3092\u6295\u5165\u53ef\u80fd\n* \u3053\u308c\u306f VyOS \u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u76f4\u5f8c\u306b\u884c\u3063\u305f\u307b\u3046\u304c\u826f\u3044\n** VyOS \u8a2d\u5b9a\u5f8c\u306b Tailscale \u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3059\u308b\u3068\u3001VyOS \u304c\u6b63\u5e38\u306b\u52d5\u4f5c\u3057\u306a\u304f\u306a\u308b\u5834\u5408\u304c\u3042\u3063\u305f\n\n\u518d\u8d77\u52d5\n\nWAN \u5074\u30eb\u30fc\u30c6\u30a3\u30f3\u30b0\u3092\u8a2d\u5b9a\u3059\u308b\n\n* PPPoE \u3084 DHCP \u306a\u3069\u3067\u30a4\u30f3\u30bf\u30fc\u30cd\u30c3\u30c8\u306b\u63a5\u7d9a\u3057\u3001Tailscale \u3092\u52d5\u4f5c\u53ef\u80fd\u306b\u3059\u308b\n\nTailscale \u3092\u8d77\u52d5\u3059\u308b\n\nWAN \u5074 \u306b\u30eb\u30fc\u30c6\u30a3\u30f3\u30b0\u3092\u8a2d\u5b9a\u3059\u308b\n\n* \u5197\u9577\u5316\u3057\u306a\u3044\u5834\u5408\u306f\u3001\u30b9\u30bf\u30c6\u30a3\u30c3\u30af\u30eb\u30fc\u30c6\u30a3\u30f3\u30b0\u3067 OK\n* \u5197\u9577\u5316\u3059\u308b\u5834\u5408\u306f\u3001BGP \u3067\u30c0\u30a4\u30ca\u30df\u30c3\u30af \u30eb\u30fc\u30c6\u30a3\u30f3\u30b0\u3055\u305b\u308b\nLAN \u5074\u306b\u30eb\u30fc\u30c6\u30a3\u30f3\u30b0\u3092\u8a2d\u5b9a\u3059\u308b\n\n* \u30db\u30b9\u30c8\u3092\u76f4\u63a5\u53ce\u5bb9\u3059\u308b\u5834\u5408 : VRRP \u3067\u5197\u9577\u5316\u3059\u308b\n* LAN \u5074\u306b L3 \u30b9\u30a4\u30c3\u30c1\u304c\u3042\u308b\u5834\u5408 : OSPF / BGP \u3067\u5197\u9577\u5316\u3059\u308b\n\n== VyOS \u306b Tailscale \u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3059\u308b ==\n\n=== VyOS \u3092\u30a4\u30f3\u30bf\u30fc\u30cd\u30c3\u30c8\u306b\u63a5\u7d9a\u3059\u308b ===\n<syntaxhighlight lang=\"diff\">\nvyos@West01# set interfaces ethernet eth3 address 'dhcp'\nvyos@West01# set protocols static route 0.0.0.0/0 next-hop x.x.x.x \nvyos@West01# set system name-server '8.8.8.8'\n</syntaxhighlight>\nx.x.x.x \u306b\u306f\u30a4\u30f3\u30bf\u30fc\u30cd\u30c3\u30c8\u3078\u629c\u3051\u3089\u308c\u308b IP \u3092\u6307\u5b9a\u3059\u308b\n\n=== VyOS \u306b Tailscale \u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3059\u308b ===\nTailscale \u306e GPG \u30ad\u30fc\u3068\u30ea\u30dd\u30b8\u30c8\u30ea\u3092\u767b\u9332<syntaxhighlight lang=\"diff\">\nvyos@West01# curl -fsSL https://pkgs.tailscale.com/stable/debian/bullseye.noarmor.gpg | sudo tee /usr/share/keyrings/tailscale-archive-keyring.gpg >/dev/null\nvyos@West01# curl -fsSL https://pkgs.tailscale.com/stable/debian/bullseye.tailscale-keyring.list | sudo tee /etc/apt/sources.list.d/tailscale.list\n</syntaxhighlight>\n\n=== Tailscale \u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb ===\n<syntaxhighlight lang=\"diff\">\nvyos@West01# sudo apt-get update\nGet:1 https://pkgs.tailscale.com/stable/debian bullseye InRelease\nGet:2 https://pkgs.tailscale.com/stable/debian bullseye/main amd64 Packages [5,389 B]\nFetched 10.9 kB in 1s (11.5 kB/s)\nReading package lists... Done\n[edit]\n</syntaxhighlight><syntaxhighlight lang=\"diff\">\nvyos@West01# sudo apt-get install tailscale\nReading package lists... Done\nBuilding dependency tree... Done\nReading state information... Done\nThe following NEW packages will be installed:\n  tailscale\n0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.\nNeed to get 19.2 MB of archives.\nAfter this operation, 35.6 MB of additional disk space will be used.\nGet:1 https://pkgs.tailscale.com/stable/debian bullseye/main amd64 tailscale amd64 1.24.0 [19.2 MB]\nFetched 19.2 MB in 3s (6,108 kB/s)\nSelecting previously unselected package tailscale.\n(Reading database ... 67158 files and directories currently installed.)\nPreparing to unpack .../tailscale_1.24.0_amd64.deb ...\nUnpacking tailscale (1.24.0) ...\nSetting up tailscale (1.24.0) ...\nCreated symlink /etc/systemd/system/multi-user.target.wants/tailscaled.service \u2192 /lib/systemd/system/tailscaled.service.\nlocalepurge: Disk space freed:      0 KiB in /usr/share/locale\nlocalepurge: Disk space freed:      0 KiB in /usr/share/man\nlocalepurge: Disk space freed:      0 KiB in /usr/share/aptitude\n\nTotal disk space freed by localepurge: 0 KiB\n\n[edit]\nvyos@West01#\n</syntaxhighlight>\n\n==== Tailscale \u3092\u8d77\u52d5\u3001\u30a2\u30ab\u30a6\u30f3\u30c8\u306b\u6a5f\u5668\u3092\u7d10\u3065\u3051\u308b ====\n<syntaxhighlight lang=\"diff\">\nvyos@West01# sudo tailscale up --advertise-routes 172.16.0.0/16 --accept-routes=true\n\nTo authenticate, visit:\n\n        https://login.tailscale.com/x/abcdef\n\nSuccess.\n</syntaxhighlight>\nWest01 \u306e\u5e83\u5831\u3059\u308b\u30eb\u30fc\u30c8\u306b 172.16.0.0/16 \u3092\u6307\u5b9a\u3057\u3001\u5225\u6a5f\u5668\u304b\u3089\u5e83\u5831\u3055\u308c\u305f\u30eb\u30fc\u30c8\u3092\u53d7\u3051\u5165\u308c\u308b\u30aa\u30d7\u30b7\u30e7\u30f3\u3092\u6307\u5b9a\u3059\u308b\n\n\u51fa\u3066\u304d\u305f URL \u3092\u30d6\u30e9\u30a6\u30b6\u306b\u8cbc\u308a\u4ed8\u3051\u3066\u3001\u30ed\u30b0\u30a4\u30f3\u3059\u308c\u3070 OK\n\n\u3042\u3068\u306f\u5225\u62e0\u70b9\u5074\u306e East01 \u5074\u3082\u8a2d\u5b9a\u3059\u308b\n\n=== \u30a2\u30ab\u30a6\u30f3\u30c8\u306e\u7d10\u3065\u3051 ===\n\n* \u30a2\u30ab\u30a6\u30f3\u30c8 1 : West01 , East01\n* \u30a2\u30ab\u30a6\u30f3\u30c8 2 : West02 , East02\n\u540c\u4e00\u30a2\u30ab\u30a6\u30f3\u30c8\u5185\u306e\u30db\u30b9\u30c8\u9593\u3067\u3001VPN \u901a\u4fe1\u304c\u53ef\u80fd\n\n= Loopback \u9593 \u758e\u901a\u78ba\u8a8d =\n\n=== West01 : \u4e8b\u524d\u758e\u901a\u4e0d\u53ef\u78ba\u8a8d ===\n<syntaxhighlight lang=\"diff\">\nvyos@West01# run ping 172.31.255.1\nPING 172.31.255.1 (172.31.255.1) 56(84) bytes of data.\n\n</syntaxhighlight>West01 -> East01 \u306e Loopback \u3078 ping \u3092\u6253\u3061\u306a\u304c\u3089\u8a2d\u5b9a\u5909\u66f4\u3059\u308b\u3002\n\n=== West01 : Tailscale \u306b\u30ed\u30b0\u30a4\u30f3\u3057\u3066\u3001\u5e83\u5831\u3059\u308b\u30eb\u30fc\u30c8\u3092\u78ba\u5b9a ===\n\u5bfe\u5411\u5074\u3067\u96c6\u7d04\u30eb\u30fc\u30c8\u3092\u5e83\u5831\u3055\u305b\u308b\u3002\n\nSubnets \u306b \"!\" \u304c\u3064\u3044\u3066\u3044\u308b\u5834\u5408\u3001\u5e83\u5831\u3055\u308c\u3066\u3044\u306a\u3044\u30eb\u30fc\u30c8\u304c\u5b58\u5728\u3059\u308b\u3002\n\n=== West01 : \u758e\u901a\u53ef\u80fd\u3092\u78ba\u8a8d ===\n<syntaxhighlight lang=\"diff\">\nvyos@West01# run show ip route 172.31.255.1\nRouting entry for 0.0.0.0/0\n  Known via \"static\", distance 1, metric 0, best\n  Last update 00:31:07 ago\n  * 10.10.60.1, via eth3, weight 1\n  \nvyos@West01# run pin 172.31.255.1\nPING 172.31.255.1 (172.31.255.1) 56(84) bytes of data.\n64 bytes from 172.31.255.1: icmp_seq=1 ttl=64 time=17.7 ms\n64 bytes from 172.31.255.1: icmp_seq=2 ttl=64 time=11.6 ms\n^C\n--- 172.31.255.1 ping statistics ---\n2 packets transmitted, 2 received, 0% packet loss, time 1002ms\nrtt min/avg/max/mdev = 11.632/14.681/17.730/3.049 ms\n\nvyos@West01# run traceroute 172.31.255.1\ntraceroute to 172.31.255.1 (172.31.255.1), 30 hops max, 60 byte packets\n 1  172.31.255.1 (172.31.255.1)  11.104 ms  13.310 ms  12.934 ms\n</syntaxhighlight>\u5bfe\u5411\u5074 East01 Loopback \u5b9b\u30eb\u30fc\u30c8\u304c\u5b58\u5728\u305b\u305a\u3001\u30c7\u30d5\u30a9\u30eb\u30c8\u30eb\u30fc\u30c8\u306b\u5411\u3044\u3066\u3057\u307e\u3063\u3066\u304a\u308a\u3001\n\nVyOS \u4e0a\u3067\u30eb\u30fc\u30c8\u304c\u898b\u3048\u306a\u3044\u306e\u306f\u597d\u307e\u3057\u304f\u306a\u3044\u3002\n\n=== West01 : \u5bfe\u5411\u62e0\u70b9 Loopback \u5b9b\u30b9\u30bf\u30c6\u30a3\u30c3\u30af\u30eb\u30fc\u30c8\u3092\u8a2d\u5b9a ===\n<syntaxhighlight lang=\"diff\">\nvyos@West01# set protocols static route 172.31.255.1/32 interface tailscale0\n[edit]\nvyos@West01# compare\n[edit protocols static]\n+route 172.31.255.1/32 {\n+    interface tailscale0 {\n+    }\n+}\n[edit]\nvyos@West01# compare commands\nset protocols static route 172.31.255.1/32 interface 'tailscale0'\n[edit]\nvyos@West01# commit\n[edit]\nvyos@West01# run show ip route 172.31.255.1/32\nRouting entry for 172.31.255.1/32\n  Known via \"static\", distance 1, metric 0, best\n  Last update 00:00:36 ago\n  * directly connected, tailscale0, weight 1\n</syntaxhighlight>VyOS \u4e0a\u3067\u30b9\u30bf\u30c6\u30a3\u30c3\u30af\u30eb\u30fc\u30c8\u304c\u6b63\u5e38\u306b\u898b\u3048\u308b\u3088\u3046\u306b\u306a\u3063\u305f\u3002\n\n=== West01 : \u758e\u901a\u78ba\u8a8d\u3092\u5b9f\u65bd ===\n<syntaxhighlight lang=\"diff\">\nvyos@West01# run ping 172.31.255.1\nPING 172.31.255.1 (172.31.255.1) 56(84) bytes of data.\n64 bytes from 172.31.255.1: icmp_seq=1 ttl=64 time=30.2 ms\n^C\n--- 172.31.255.1 ping statistics ---\n1 packets transmitted, 1 received, 0% packet loss, time 0ms\nrtt min/avg/max/mdev = 30.244/30.244/30.244/0.000 ms\n[edit]\nvyos@West01#\n[edit]\nvyos@West01# run ping 172.31.255.1 source-address 172.16.255.1\nPING 172.31.255.1 (172.31.255.1) from 172.16.255.1 : 56(84) bytes of data.\n^C\n--- 172.31.255.1 ping statistics ---\n3 packets transmitted, 0 received, 100% packet loss, time 2055ms\n\n[edit]\nvyos@West01#\n</syntaxhighlight>West01 Tailscale \u306e 100.64.x.x \u304b\u3089\u5bfe\u5411\u5074 East01 Loopback \u306b\u306f\u758e\u901a\u53ef\u80fd\u3060\u304c\u3001\n\nLoopback -> Loopback \u306b\u306f\u758e\u901a\u4e0d\u53ef\u306e\u305f\u3081\u3001\n\n\u3053\u306e\u307e\u307e\u3067\u306f eBGP \u30d4\u30a2\u304c\u5f35\u308c\u306a\u3044\u3002\n\n\nEast01 \u3067\u3082\u30b9\u30bf\u30c6\u30a3\u30c3\u30af\u30eb\u30fc\u30c8\u3092\u8a2d\u5b9a\u3059\u308b\u3002<syntaxhighlight lang=\"diff\">\nvyos@East01# set protocols static route 172.16.255.1/32 interface tailscale0\n[edit]\nvyos@East01# compare\n[edit protocols static route 172.16.255.1/32]\n+interface tailscale0 {\n+}\n[edit]\nvyos@East01# commit\n[edit]\nvyos@East01# run show ip route 172.16.255.1/32\nRouting entry for 172.16.255.1/32\n  Known via \"static\", distance 1, metric 0, best\n  Last update 00:00:05 ago\n  * directly connected, tailscale0, weight 1\n\n[edit]\nvyos@East01#\n</syntaxhighlight>\n\n=== Loopback -> Loopback \u9593\u306e\u758e\u901a\u53ef\u80fd\u3092\u78ba\u8a8d ===\n<syntaxhighlight lang=\"diff\">\nvyos@West01# run ping 172.31.255.1 source-address 172.16.255.1\nPING 172.31.255.1 (172.31.255.1) from 172.16.255.1 : 56(84) bytes of data.\n64 bytes from 172.31.255.1: icmp_seq=1 ttl=64 time=10.2 ms\n64 bytes from 172.31.255.1: icmp_seq=2 ttl=64 time=11.3 ms\n^C\n--- 172.31.255.1 ping statistics ---\n2 packets transmitted, 2 received, 0% packet loss, time 1001ms\nrtt min/avg/max/mdev = 10.224/10.778/11.333/0.554 ms\n</syntaxhighlight>BGP \u30d4\u30a2\u306e\u524d\u63d0\u6761\u4ef6\u3068\u306a\u308b\u3001Loopback \u9593\u3067\u758e\u901a\u53ef\u80fd\u3068\u306a\u3063\u305f\u3002\n\n= \u5404\u30d7\u30ed\u30c8\u30b3\u30eb\u306e\u8a2d\u5b9a\u4f8b =\n\n=== West01 : BGP ===\n<syntaxhighlight lang=\"diff\">\nvyos@West01:~$ show configuration commands | match \"bgp|route-map|prefix-list\"\nset policy prefix-list PL_out rule 10 action 'permit'\nset policy prefix-list PL_out rule 10 prefix '172.16.0.0/16'\nset policy route-map RMAP_out rule 10 action 'permit'\nset policy route-map RMAP_out rule 10 match ip address prefix-list 'PL_out'\nset protocols bgp address-family ipv4-unicast aggregate-address 172.16.0.0/16 summary-only\nset protocols bgp address-family ipv4-unicast redistribute connected\nset protocols bgp local-as '64512'\nset protocols bgp neighbor 172.16.255.2 address-family ipv4-unicast nexthop-self\nset protocols bgp neighbor 172.16.255.2 address-family ipv4-unicast soft-reconfiguration inbound\nset protocols bgp neighbor 172.16.255.2 remote-as '64512'\nset protocols bgp neighbor 172.16.255.2 update-source 'lo'\nset protocols bgp neighbor 172.31.255.1 address-family ipv4-unicast route-map export 'RMAP_out'\nset protocols bgp neighbor 172.31.255.1 address-family ipv4-unicast soft-reconfiguration inbound\nset protocols bgp neighbor 172.31.255.1 ebgp-multihop '2'\nset protocols bgp neighbor 172.31.255.1 remote-as '65552'\nset protocols bgp neighbor 172.31.255.1 update-source 'lo'\nset protocols bgp parameters router-id '172.16.255.1'\nset protocols bgp timers holdtime '30'\nset protocols bgp timers keepalive '10'\n</syntaxhighlight>\n\n=== East01 \u306e BGP \u8a2d\u5b9a\u4f8b ===\n<syntaxhighlight lang=\"diff\">\nvyos@East01:~$ show configuration commands | match \"bgp|route-map|prefix-list\"\nset policy prefix-list PL_out rule 10 action 'permit'\nset policy prefix-list PL_out rule 10 prefix '172.31.0.0/16'\nset policy route-map RMAP_out rule 10 action 'permit'\nset policy route-map RMAP_out rule 10 match ip address prefix-list 'PL_out'\nset protocols bgp address-family ipv4-unicast aggregate-address 172.31.0.0/16 summary-only\nset protocols bgp address-family ipv4-unicast redistribute connected\nset protocols bgp local-as '65552'\nset protocols bgp neighbor 172.16.255.1 address-family ipv4-unicast route-map export 'RMAP_out'\nset protocols bgp neighbor 172.16.255.1 address-family ipv4-unicast soft-reconfiguration inbound\nset protocols bgp neighbor 172.16.255.1 ebgp-multihop '2'\nset protocols bgp neighbor 172.16.255.1 remote-as '64512'\nset protocols bgp neighbor 172.16.255.1 update-source 'lo'\nset protocols bgp neighbor 172.31.255.2 address-family ipv4-unicast soft-reconfiguration inbound\nset protocols bgp neighbor 172.31.255.2 remote-as '65552'\nset protocols bgp neighbor 172.31.255.2 update-source 'lo'\nset protocols bgp parameters router-id '172.31.255.1'\nset protocols bgp timers holdtime '30'\nset protocols bgp timers keepalive '10'\n</syntaxhighlight>\n\n== \u304a\u307e\u3051 : \u5197\u9577\u5207\u66ff\u306e\u30d2\u30f3\u30c8 ==\n\u4e0b\u4f4d\u5074\u3092 connected + VRRP \u3068\u3057\u305f\u5834\u5408\u3001HyperVisor \u914d\u4e0b\u3067 connected \u306e\u969c\u5bb3\u3092\u691c\u51fa\u3059\u308b\u3053\u3068\u304c\u96e3\u3057\u3044\u3002\n\nVRRP \u306e\u5207\u308a\u66ff\u3048\u306f\u53ef\u80fd\u3060\u304c\u3001BGP \u306e\u5e83\u5831\u3092\u6b62\u3081\u3089\u308c\u306a\u3044\u305f\u3081\u3001\u4e0b\u308a\u30c8\u30e9\u30d5\u30a3\u30c3\u30af\u304c\u6d41\u308c\u8fbc\u3093\u3067\u3057\u307e\u3046\u3002\n\n* bash script \u3067 peer shutdown \u3068\u3044\u3046\u624b\u3082\u3042\u308b\u304c\u30fb\u30fb\u30fb\n\n\u4ee5\u4e0b\u306b\u4e0b\u4f4d\u5074\u3092 L3SW \u3068 OSPF \u3067\u30c0\u30a4\u30ca\u30df\u30c3\u30af\u30eb\u30fc\u30c6\u30a3\u30f3\u30b0\u3068\u3057\u305f\u5834\u5408\u306b\u3064\u3044\u3066\u8a18\u8f09\u3059\u308b\u3002\n\n=== \u4e0a\u4f4d eBGP \u30d4\u30a2 Down \u6642 ===\n\u308f\u305f\u308a eth2 \u306e OSPF + iBGP \u3067\u8fc2\u56de\u3059\u308b\u304b\u3001\u4e0b\u4f4d OSPF \u306b\u5bfe\u5411\u62e0\u70b9\u5b9b\u306e\u30eb\u30fc\u30c8\u5e83\u5831\u3092\u3084\u3081\u3066\u3001\u4e0b\u4f4d\u5074\u3067\u8fc2\u56de\u3055\u305b\u308b\n\nBGP \u3067\u53d7\u4fe1\u3059\u308b\u30eb\u30fc\u30c8\u3092\u6b7b\u6d3b\u76e3\u8996 + tracking \u3057\u3066\u3001Down \u6642\u306b VRRP \u306e\u512a\u5148\u5ea6\u3092\u4e0b\u3052\u308b\n\n=== \u308f\u305f\u308a\u30ec\u30b9\u69cb\u6210\u3067\u4e0b\u4f4d OSPF Down \u6642 ===\n\u4e0b\u4f4d OSPF Down \u6642\u306b\u3001BGP \u3067\u96c6\u7d04\u30eb\u30fc\u30c8\u306e\u5e83\u5831\u3092\u3084\u3081\u308b\u3088\u3046\u306b\u8a2d\u8a08\u3059\u308b\n\n* BGP \u3067 aggregate-address + redistribute ospf \u3059\u308b\n** OSPF Down \u3067\u518d\u914d\u5e03\u304c\u505c\u6b62\u3055\u308c\u308b\n* OSPF \u3067\u30b5\u30d6\u30cd\u30c3\u30c8\u30eb\u30fc\u30c8\u304c 1 \u3064\u3067\u3082\u3042\u308b\u3068 BGP \u3067 aggregate-address \u304c\u5e83\u5831\u3055\u308c\u308b\u305f\u3081\u3001route-map \u3067 Lo \u3092\u518d\u914d\u5e03\u306e\u5bfe\u8c61\u304b\u3089\u9664\u5916\u3059\u308b\u306a\u3069\u306e\u5de5\u592b\u304c\u5fc5\u8981\n\n== Tailscale \u306e TIPS ==\nTailscale \u306e subnet router \u306f\u3001\u6709\u52b9\u5316\u6642\u306b VyOS \u306e\u52d5\u4f5c\u306b\u5f71\u97ff\u304c\u3042\u308b\n\n* Free \u30d7\u30e9\u30f3\u306e 1 \u30a2\u30ab\u30a6\u30f3\u30c8\u5185\u306b 2 \u53f0\u306e\u30eb\u30fc\u30bf\u3067\u3001\u540c\u3058\u30d7\u30ec\u30d5\u30a3\u30c3\u30af\u30b9\u3092 advetise-routes \u3059\u308b\u3068\u3001\u7247\u65b9\u306f\u901a\u4fe1\u3067\u304d\u306a\u3044\n** subnet router \u5197\u9577\u5316\u306f\u6709\u6599\u30d7\u30e9\u30f3\u306e\u305f\u3081\u3001Free \u30d7\u30e9\u30f3\u3060\u3068\u3053\u306e\u52d5\u4f5c\u3068\u306a\u308b\u6a21\u69d8\n** \u526f\u4f5c\u7528\u3067 LAN \u5074\u306e OSPF \u3082\u6b62\u307e\u308b\n\n\n== \u30ea\u30d5\u30a1\u30ec\u30f3\u30b9 ==\n[https://internet.watch.impress.co.jp/docs/column/shimizu/1303751.html 100\u53f0\u307e\u3067\u7121\u6599\u306eVPN\u30b5\u30fc\u30d3\u30b9\u300cTailscale \u300d\u3001\u30ea\u30f3\u30af\u3060\u3051\u3067\u30de\u30b7\u30f3\u306e\u30b7\u30a7\u30a2\u3082\u53ef\u80fd!?]\n\n== \u5f15\u7528 ==\n<references />\n[[\u30ab\u30c6\u30b4\u30ea:VyOS]]\n[[\u30ab\u30c6\u30b4\u30ea:Tailscale]]"
                    }
                ]
            },
            "208": {
                "pageid": 208,
                "ns": 0,
                "title": "\u30a4\u30f3\u30d5\u30e9\u81ea\u52d5\u5316",
                "revisions": [
                    {
                        "contentformat": "text/x-wiki",
                        "contentmodel": "wikitext",
                        "*": "\u5206\u91ce\u3054\u3068\u306e\u81ea\u52d5\u5316\u30bd\u30d5\u30c8\u30fb\u88fd\u54c1\u3092\u307e\u3068\u3081\u3066\u304a\u304f\u30da\u30fc\u30b8\u3002\n\n== \u6c4e\u7528 ==\n\n* Ansible\n\n== \u691c\u8a3c ==\n\n=== \u5546\u7528 ===\n\n* iTest\n\n=== OSS ===\n\n* RENAT\n* pyATS\n\n== \u30b3\u30f3\u30d5\u30a3\u30b0\u4f5c\u6210 ==\n\n* Python + Jinja2 \u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\n\n\u53c2\u8003 : [https://qiita.com/kitara/items/b6ffd9790483b08b568b \u30dd\u30fc\u30c8\u7ba1\u7406\u8868+\u30d1\u30e9\u30e1\u30fc\u30bf\u8868+Jinja2\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u304b\u3089\u3001L2SW\u306eConfig\u3092\u81ea\u52d5\u751f\u6210\u3057\u3066\u307f\u305f]\n\n== \u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u6a5f\u5668 \u30b3\u30f3\u30d5\u30a3\u30b0\u7ba1\u7406 ==\n\n=== \u5546\u7528 ===\n\n* Net LineDancer\n\n=== OSS ===\n\n* RANCID + ViewVC / gitweb\n* Oxidized\n\n\n== PXE \u30a4\u30f3\u30b9\u30c8\u30fc\u30eb ==\n\n* Cobbler\n\n\n== \u30d5\u30a1\u30a4\u30a2\u30a6\u30a9\u30fc\u30eb ==\n\n=== \u5546\u7528 ===\n\n* NEEDLEWORK\n\n* Firewall Tester\n\n=== OSS ===\n\n* Infrataster\n\n== \u30b5\u30fc\u30d0 ==\n\n* Serverspec\n\n\n== \u7269\u7406\u914d\u7dda\u5909\u66f4 ==\n\n* ROME\n* MRV Media Cross Connect\n[[\u30ab\u30c6\u30b4\u30ea:\u305d\u306e\u4ed6]]"
                    }
                ]
            }
        }
    }
}