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と仮定しています。
- ネットワーク構成の例
[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)- 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例)- 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設定のよくある間違い例 と、確認方法、修正方法を具体的にまとめます。順を追って説明します。
- 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内複数ホストが同時に外部アクセスできない。- 確かめる方法(デバッグとテスト)
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設定ミス- 修正方法
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