1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

CISCOルータ、Linuxネットワーク設定では、思わぬエラーに足をすくわれることがあります。
Linuxでは古いコマンドを知っているが、新しいコマンドを知らないというのが落とし穴です。(自社比)

ChatGPTに聞いてみました。

ChatGPT

CISCOのルータを使って、Ubuntuのdocker上で設定したDNSとWebを利用する場合の、CISCOの設定とHost OSとしてのLinux、GuestOSとしてのUbuntuの3つの設定例をお教えください。

ChatGPT:

わかりました。ここでは、CISCOルータ + Linuxホスト + Ubuntu Dockerコンテナで、コンテナがCISCOルータ経由でインターネット(DNS/Web)にアクセスできるようにする設定例を具体的に示します。環境は一般的な家庭/企業LANと仮定しています。

  1. ネットワーク構成の例
    [CISCO Router] --- [Linux Host] --- [Docker Ubuntu Container]
    CISCO Router: インターネット接続、LAN IP 192.168.1.1/24
    Linux Host: 物理マシン、IP 192.168.1.10/24
    Docker Ubuntu Container: NAT経由でネットワークアクセス、IP 172.17.0.2 (Docker default bridge)
  2. CISCOルータ設定例
    基本的にはLANに対してIPアドレスを割り当て、NATとDNSフォワーディングを設定します。
    ! LAN interface設定
    interface GigabitEthernet0/0
    ip address 192.168.1.1 255.255.255.0
    no shutdown
    ! デフォルトルート(ISP側)
    ip route 0.0.0.0 0.0.0.0
    ! NAT設定(内部LAN向け)
    access-list 1 permit 192.168.1.0 0.0.0.255
    ip nat inside source list 1 interface GigabitEthernet0/1 overload
    ! LAN/NATのinterfaceを指定
    interface GigabitEthernet0/0
    ip nat inside
    interface GigabitEthernet0/1
    ip nat outside
    ! DNSフォワーディング(任意)
    ip dns server
    ip name-server 8.8.8.8
    ip name-server 8.8.4.4
    ✅ ポイント:
    ip nat inside/outside をLAN/ISP側に正しく設定
    DNSサーバは外部にフォワードする(Google DNS例)
  3. Linuxホスト設定(Host OS)
    a. ネットワーク設定

IP設定

sudo ip addr add 192.168.1.10/24 dev enp0s3
sudo ip link set enp0s3 up

デフォルトゲートウェイをCISCOルータに設定

sudo ip route add default via 192.168.1.1

DNS設定 (resolv.conf)

echo "nameserver 192.168.1.1" | sudo tee /etc/resolv.conf
b. Docker Bridge設定
Dockerデフォルトは bridge ネットワーク(172.17.0.0/16)で NAT を使用して外部アクセス可能です。
追加で固定IPやカスタムネットワークを使う場合は:
docker network create
--subnet=172.18.0.0/16
mynet123
4. Docker Ubuntuコンテナ設定(Guest OS)
a. コンテナ起動例
docker run -it --name ubuntu_test --network mynet123 ubuntu:24.04 /bin/bash
b. ネットワーク確認
ip addr
ping 192.168.1.1 # CISCOルータ確認
ping 8.8.8.8 # インターネット確認
ping google.com # DNS確認
c. DNS設定 inside container
Dockerはホストの /etc/resolv.conf をマウントするので通常不要ですが、明示的に設定する場合:
echo "nameserver 192.168.1.1" > /etc/resolv.conf
✅ ポイント:
Dockerコンテナは NAT を介してホスト経由で外部アクセスする
DNSもホスト経由でCISCOルータへフォワードされる
5. まとめ:3層での設定ポイント
層 役割 設定ポイント
CISCO Router LAN・NAT・DNSフォワード LAN IP, NAT, DNS server, デフォルトルート
Linux Host Dockerホスト、ゲートウェイ IPアドレス, デフォルトゲートウェイ, DNS設定
Docker Ubuntu コンテナアプリ ネットワーク接続確認, 必要に応じて DNS 設定
💡 補足
Dockerの --network host を使うとコンテナがホストのネットワークをそのまま使えるため、DNS/Webアクセスが簡単になります。
NAT設定を間違えると外部アクセスできなくなるので、ホストからの ping → インターネット確認 → コンテナ確認 の順で段階的にテストするのが安全です。
もし希望であれば、CISCOルータを経由せずに、Dockerコンテナから直接外部DNS/Webにアクセスする方法も含めた図解入り例を作ることもできます。
作りますか?

NAT設定の間違え例と、それを確かめる方法と、修正方法をお知らせください。

ChatGPT:

了解です。ここでは、CISCOルータでの NAT設定のよくある間違い例 と、確認方法、修正方法を具体的にまとめます。順を追って説明します。

  1. NAT設定の間違い例
    a. NAT inside/outsideを逆に設定
    interface GigabitEthernet0/0
    ip address 192.168.1.1 255.255.255.0
    ip nat outside ! <- 間違い(LANは inside)
    interface GigabitEthernet0/1
    ip address
    ip nat inside ! <- 間違い(外部は outside)
    結果: LAN側からのインターネット接続ができない。
    b. NAT対象ネットワークのACL指定ミス
    access-list 1 permit 192.168.2.0 0.0.0.255 ! <- LANは192.168.1.0/24のはず
    ip nat inside source list 1 interface GigabitEthernet0/1 overload
    結果: 192.168.1.0/24 のホストは NAT されずインターネットに出られない。
    c. NAT overload(PAT)を忘れる
    access-list 1 permit 192.168.1.0 0.0.0.255
    ip nat inside source list 1 interface GigabitEthernet0/1 ! <- overload指定なし
    結果: LAN内複数ホストが同時に外部アクセスできない。
  2. 確かめる方法(デバッグとテスト)
    a. NATテーブル確認
    show ip nat translations
    LANからアクセスがある場合、変換テーブルにエントリが表示される。
    何も出ない → NAT設定ミスの可能性。
    b. NAT統計確認
    show ip nat statistics
    「hits」が増えていなければNATが機能していない。
    c. 外部Ping確認
    LANホストからルータをPing
    ping 192.168.1.1
    → OKなら物理接続は問題なし
    LANホストからインターネットPing
    ping 8.8.8.8
    → ダメならNATかルーティングに問題あり
    DNS確認
    ping google.com
    → IPは通るが名前解決できない場合はDNS設定ミス
  3. 修正方法
    a. inside/outsideの修正
    interface GigabitEthernet0/0
    ip nat inside
    interface GigabitEthernet0/1
    ip nat outside
    b. ACLの修正
    access-list 1 permit 192.168.1.0 0.0.0.255
    ip nat inside source list 1 interface GigabitEthernet0/1 overload
    ACLはLANネットワークを正しく指定
    overloadを忘れずに設定することで複数ホストが同時に外部アクセス可能
    c. NAT設定後の確認

NATテーブル確認

show ip nat translations

NAT統計確認

show ip nat statistics
LANホストからPingやWebアクセスで動作確認
💡 補足ポイント
NATのトラブルで最も多いのは inside/outsideの逆設定 と ACL範囲間違い
PingでIP直打ちは通るが名前解決ができない場合は DNS の問題
設定変更後は必ず write memory または copy running-config startup-config で保存
希望であれば、図解付きでLAN→ルータ→インターネットのNATフロー を示し、どこで変換が行われるか可視化することもできます。
作りますか?
ChatGPT の回答は必ずしも正しいとは限りません。重要な情報は確認するようにしてください。

参照

ChatGPT利用の技4つ with ChatGPT
https://qiita.com/kaizen_nagoya/items/4a178bd6a09a4a471a7f

ChatGPTによるQiita記事の改良と補足
https://qiita.com/kaizen_nagoya/items/20604d6dd0702ab95c2f

ChatGPTによるQiita記事の改良と補足(2)
https://qiita.com/kaizen_nagoya/items/996275307ffc8c1243f8

本から始める 面倒なことはChatGPTにやらせよう by からあげ
https://qiita.com/kaizen_nagoya/items/f5ce2a18db54b5610e4b

MCP入門 〜面倒なことはAIエージェントにやらせよう〜 by からあげ を聞きながら
https://qiita.com/kaizen_nagoya/items/54b648c838fae8d57e38

【松尾研LLMコミュニティ】面倒なことはLLMにやらせよう "Beginning LLM"2024年10月17日 AI(9)
https://qiita.com/kaizen_nagoya/items/efdc23fbe67cdae2126e

設計:ChatGPTで特異解か一般解を求める AI(1)
https://qiita.com/kaizen_nagoya/items/4dec580e16a7c84b0ec4

みんなの使い方から学ぶ
https://qiita.com/kaizen_nagoya/items/8e7de492d896df94a36e

AI・機械学習 昨日、今日、明日
https://qiita.com/kaizen_nagoya/items/adb184c8fc7a65ac9756

DNA LLM and genome for survey 2200 papers by name.
https://qiita.com/kaizen_nagoya/items/ce8a28d6072f340a9d59

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?