<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Linux on Layered Simplicity</title>
    <link>https://www.lessismore.asia/tags/linux/</link>
    <description>Recent content in Linux on Layered Simplicity</description>
    <generator>Hugo</generator>
    <language>en</language>
    <copyright>&lt;a href=&#34;https://creativecommons.org/licenses/by-nc/4.0/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;CC BY-NC 4.0&lt;/a&gt;</copyright>
    <lastBuildDate>Sat, 04 Apr 2026 01:00:00 +0900</lastBuildDate>
    <atom:link href="https://www.lessismore.asia/tags/linux/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Modern BGP Operations: Dual-Stack &amp; RPKI Implementation via GoBGP</title>
      <link>https://www.lessismore.asia/posts/2026/04/modern-bgp-operations-dual-stack-rpki-implementation-via-gobgp/</link>
      <pubDate>Sat, 04 Apr 2026 01:00:00 +0900</pubDate>
      <guid>https://www.lessismore.asia/posts/2026/04/modern-bgp-operations-dual-stack-rpki-implementation-via-gobgp/</guid>
      <description>&lt;p&gt;GoBGPを利用して、自身のAS（AS154486）からIPv4/IPv6両方の経路を広報し、さらにRPKIによる経路検証を導入する手順をまとめます。GoBGPは設定がTOML形式で扱いやすく、systemdとの組み合わせで運用を自動化しやすいのが利点です。&lt;/p&gt;&#xA;&lt;h2 id=&#34;1-環境情報パラメーター&#34;&gt;1. 環境情報（パラメーター）&lt;/h2&gt;&#xA;&lt;p&gt;構築にあたり、使用する変数および固定値を以下に定義します。実際の運用環境に合わせて適宜書き換えてください。&#xA;※本記事内のIPアドレスやパスワードはドキュメント用のダミー値に置き換えています。&lt;/p&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;項目&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;設定値（サンプル）&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;備考&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;&lt;strong&gt;自組織AS番号&lt;/strong&gt;&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;154486&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;自身のAS番号&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;&lt;strong&gt;Router ID&lt;/strong&gt;&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;192.168.100.1&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;自身の識別子（IPv4形式）&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;&lt;strong&gt;Neighbor IPv4&lt;/strong&gt;&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;10.0.0.1&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;接続先（Peer）のIPv4アドレス&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;&lt;strong&gt;Neighbor IPv6&lt;/strong&gt;&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;2001:db8::1&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;接続先（Peer）のIPv6アドレス&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;&lt;strong&gt;Peer AS&lt;/strong&gt;&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;64515&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;接続先のAS番号&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;&lt;strong&gt;MD5 Password&lt;/strong&gt;&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;DUMMY_PASSWORD&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;BGPセッション認証用パスワード&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;&lt;strong&gt;広報IPv4セグメント&lt;/strong&gt;&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;192.168.1.0/24&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;外部へ広告する自社IPv4経路&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;&lt;strong&gt;広報IPv6セグメント&lt;/strong&gt;&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;2001:db8:1234::/48&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;外部へ広告する自社IPv6経路&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;2-gobgpのインストール&#34;&gt;2. GoBGPのインストール&lt;/h2&gt;&#xA;&lt;p&gt;GoBGPはシングルバイナリで動作するため、GitHubのリリースから取得して配置するだけで完了します。&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;バイナリのダウンロード（環境に合わせてアーキテクチャを選択）&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;wget [https://github.com/osrg/gobgp/releases/download/v3.30.0/gobgp_3.30.0_linux_amd64.tar.gz](https://github.com/osrg/gobgp/releases/download/v3.30.0/gobgp_3.30.0_linux_amd64.tar.gz)&#xA;tar -zxvf gobgp_3.30.0_linux_amd64.tar.gz&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;ul&gt;&#xA;&lt;li&gt;パスの通った場所へ移動&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sudo mv gobgp gobgpd /usr/bin/&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;h2 id=&#34;3-設定ファイルの作成-etcgobgpgobgpconf&#34;&gt;3. 設定ファイルの作成 (/etc/gobgp/gobgp.conf)&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;RPKIサーバー（Cloudflare）との連携、Neighbors設定、および意図しない経路広報（Route Leak）を防ぐためのポリシー定義を記述します。&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;[global.config]&#xA;  as = 154486&#xA;  router-id = &amp;#34;192.168.100.1&amp;#34;&#xA;&#xA;# --- RPKIサーバー設定 (Cloudflare) ---&#xA;[[rpki-servers]]&#xA;  [rpki-servers.config]&#xA;    address = &amp;#34;rtr.rpki.cloudflare.com&amp;#34;&#xA;    port = 8282&#xA;&#xA;[zebra.config]&#xA;  enabled = false&#xA;&#xA;# --- Neighbors (IPv4) ---&#xA;[[neighbors]]&#xA;  [neighbors.config]&#xA;    neighbor-address = &amp;#34;10.0.0.1&amp;#34;&#xA;    peer-as = 64515&#xA;    auth-password = &amp;#34;DUMMY_PASSWORD&amp;#34;&#xA;  [[neighbors.afi-safis]]&#xA;    [neighbors.afi-safis.config]&#xA;      afi-safi-name = &amp;#34;ipv4-unicast&amp;#34;&#xA;  [neighbors.apply-policy.config]&#xA;    import-policy-list = [&amp;#34;policy-in&amp;#34;]&#xA;    export-policy-list = [&amp;#34;policy-out&amp;#34;]&#xA;&#xA;# --- Neighbors (IPv6) ---&#xA;[[neighbors]]&#xA;  [neighbors.config]&#xA;    neighbor-address = &amp;#34;2001:db8::1&amp;#34;&#xA;    peer-as = 64515&#xA;    auth-password = &amp;#34;DUMMY_PASSWORD&amp;#34;&#xA;  [[neighbors.afi-safis]]&#xA;    [neighbors.afi-safis.config]&#xA;      afi-safi-name = &amp;#34;ipv6-unicast&amp;#34;&#xA;  [neighbors.apply-policy.config]&#xA;    import-policy-list = [&amp;#34;policy-in&amp;#34;]&#xA;    export-policy-list = [&amp;#34;policy-out&amp;#34;]&#xA;&#xA;# --- ポリシー定義 ---&#xA;# 全ての受信経路を許可&#xA;[[policy-definitions]]&#xA;  name = &amp;#34;policy-in&amp;#34;&#xA;  [[policy-definitions.statements]]&#xA;    [policy-definitions.statements.actions]&#xA;      route-disposition = &amp;#34;accept-route&amp;#34;&#xA;&#xA;# 自社ネットワークのみを広報し、それ以外を拒否&#xA;[[policy-definitions]]&#xA;  name = &amp;#34;policy-out&amp;#34;&#xA;  [[policy-definitions.statements]]&#xA;    [policy-definitions.statements.conditions.match-prefix-set]&#xA;      prefix-set = &amp;#34;my-networks&amp;#34;&#xA;    [policy-definitions.statements.actions]&#xA;      route-disposition = &amp;#34;accept-route&amp;#34;&#xA;  [[policy-definitions.statements]]&#xA;    [policy-definitions.statements.actions]&#xA;      route-disposition = &amp;#34;reject-route&amp;#34;&#xA;&#xA;[defined-sets]&#xA;  [[defined-sets.prefix-sets]]&#xA;    prefix-set-name = &amp;#34;my-networks&amp;#34;&#xA;    [[defined-sets.prefix-sets.prefix-list]]&#xA;      ip-prefix = &amp;#34;192.168.1.0/24&amp;#34;&#xA;    [[defined-sets.prefix-sets.prefix-list]]&#xA;      ip-prefix = &amp;#34;2001:db8:1234::/48&amp;#34;&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;4-systemdサービスの設定-etcsystemdsystemgobgpdservice&#34;&gt;4. systemdサービスの設定 (/etc/systemd/system/gobgpd.service)&lt;/h3&gt;&#xA;&lt;p&gt;OS起動時に自動でデーモンを立ち上げ、自身の経路（RIB）を注入するように設定します。ExecStartPost を使い、注入時に origin igp 属性を明示的に付与するのがポイントです。&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
