網站伺服器建置與管理上課補充教材


Chapter 03:區域網路設定
  1. 暫時的設定 (不改變設定檔,重新開機還是恢復原本參數的指令設定行為,通常用在測試環境中)
    1. 取得目前有多少網路卡以及網路卡的名稱:
      ifconfig -a
      ip link show
      請注意, lo 是內部網域 (local),vir 或 br 開頭的應該是虛擬化設備 (假的!不理他!),其他的才是目前實體網卡
    2. 改變 IP/netmask:
      ifconfig [NIC name] IP netmask NETMASK
      ifconfig eth0 192.168.5.* netmask 255.255.255.0
      上述的 * 請用自己的學號尾數去帶,不可以有重複的 IP 設定!
    3. 改變 gateway 的方法
      route add default gw GWIP
      route add default gw 192.168.5.254
    4. 改變 DNS server IP 的方法
      vim /etc/resolv.conf
      nameserver 168.95.1.1
    5. 查詢設定是否正確的流程:
      ifconfig eth0 (查看 IP 與 netmask 是否正常,若不正常,則回 ifconfig [NIC name]... 重新設定)
      route -n (查看 0.0.0.0 開頭的那行,是否有正確的 gateway,若不對,回 route add default 修改)
      ping 192.168.5.254 (看是否有回應封包,若沒有,應該是 IP 分享器的問題,詢問 ISP 管理員)
      ping 168.95.1.1 (連線到中華電信提供的公開 DNS server,若有問題也只能問 ISP)
      dig www.google.com (查看有沒有找到正確的 google IP?若沒有,請回去查看 nameserver 的設定)
      上面幾個步驟請依序處理,因為是有相依性的喔!
  2. 永久的設定 (直接用指令修改設定檔了!)
    1. 查看目前的網路連線界面有哪些
      nmcli connection show
      通常會得到連線名稱『NAME』以及網卡裝置名稱『DEVICE』,這兩個名稱通常也相同!
    2. 查看目前網卡所在網路的設定值:
      nmcli connection show eth0
      connection.id:                          eth0
      connection.uuid:                        ff0b88ed-7cc6-4803-be7d-e77c74fea95b
      connection.interface-name:              eth0
      connection.type:                        802-3-ethernet
      connection.autoconnect:                 yes
      connection.autoconnect-priority:        0
      connection.timestamp:                   1475170677
      connection.read-only:                   no
      connection.permissions:
      connection.zone:                        --
      connection.master:                      --
      connection.slave-type:                  --
      connection.autoconnect-slaves:          -1 (default)
      connection.secondaries:
      connection.gateway-ping-timeout:        0
      connection.metered:                     不明
      802-3-ethernet.port:                    --
      802-3-ethernet.speed:                   0
      802-3-ethernet.duplex:                  --
      802-3-ethernet.auto-negotiate:          yes
      802-3-ethernet.mac-address:             --
      802-3-ethernet.cloned-mac-address:      --
      802-3-ethernet.mac-address-blacklist:
      802-3-ethernet.mtu:                     auto
      802-3-ethernet.s390-subchannels:
      802-3-ethernet.s390-nettype:            --
      802-3-ethernet.s390-options:
      802-3-ethernet.wake-on-lan:             1 (default)
      802-3-ethernet.wake-on-lan-password:    --
      ipv4.method:                            manual
      ipv4.dns:                               120.114.100.1,120.114.150.1
      ipv4.dns-search:
      ipv4.addresses:                         192.168.254.100/24, 10.255.100.254/24
      ipv4.gateway:                           192.168.254.254
      ipv4.routes:
      ipv4.route-metric:                      -1
      ipv4.ignore-auto-routes:                no
      ipv4.ignore-auto-dns:                   no
      ipv4.dhcp-client-id:                    --
      ipv4.dhcp-send-hostname:                yes
      ipv4.dhcp-hostname:                     --
      ipv4.never-default:                     no
      ipv4.may-fail:                          yes
      ipv6.method:                            auto
      ipv6.dns:
      ipv6.dns-search:
      ipv6.addresses:
      ipv6.gateway:                           --
      ipv6.routes:
      ipv6.route-metric:                      -1
      ipv6.ignore-auto-routes:                no
      ipv6.ignore-auto-dns:                   no
      ipv6.never-default:                     no
      ipv6.may-fail:                          yes
      ipv6.ip6-privacy:                       -1(不明)
      ipv6.dhcp-send-hostname:                yes
      ipv6.dhcp-hostname:                     --
      GENERAL.NAME:                           eth0
      GENERAL.UUID:                           ff0b88ed-7cc6-4803-be7d-e77c74fea95b
      GENERAL.DEVICES:                        eth0
      GENERAL.STATE:                          已啟用
      GENERAL.DEFAULT:                        是
      GENERAL.DEFAULT6:                       否
      GENERAL.VPN:                            否
      GENERAL.ZONE:                           --
      GENERAL.DBUS-PATH:                      /org/freedesktop/NetworkManager/ActiveConnection/0
      GENERAL.CON-PATH:                       /org/freedesktop/NetworkManager/Settings/0
      GENERAL.SPEC-OBJECT:                    /
      GENERAL.MASTER-PATH:                    --
      IP4.ADDRESS[1]:                         192.168.254.100/24
      IP4.ADDRESS[2]:                         10.255.100.254/24
      IP4.GATEWAY:                            192.168.254.254
      IP4.DNS[1]:                             120.114.100.1
      IP4.DNS[2]:                             120.114.150.1
      IP6.ADDRESS[1]:                         fe80::5054:ff:fe5f:2182/64
      IP6.GATEWAY:
      
      你需要知道的是上面幾個粗體字的項目!小寫字元的是屬於設定檔的部份,大寫字元的是屬於目前正在運作中的實際網路參數狀況~這兩者需要搭配才行。 設定方面的參數主要有:
      • connection.autoconnect [yes|no]:是否需要啟動這個網路界面
      • ipv4.method [auto|manual]:取得的方式為自動或手動
      • ipv4.addresses [IP/Netmask]:直接設定 IP 位址與子網路遮罩
      • ipv4.gateway [GWIP]:設定 Gateway 的 IP 位址
      • ipv4.dns [DNSIP]:設定 DNS server 的 IP 位址
    3. 請依據底下的設定來設定好你的網路參數:
      nmcli connection modify eth0 ....
      • IP/Netmask: 192.168.254.*/24
      • GW IP: 192.168.254.254
      • DNS 1: 120.114.100.1
      • DNs 2: 120.114.150.1
      務必記得當完成上述的設定後 (modify),一定要使用底下的方式來啟動設定值:
      nmcli connection up eth0
    4. 雲端機器僅有一片網卡,不過我們未來需要有兩個區域網路,每個人的區域網路是獨立的!老師上課的區域網路位址為 10.255.XX.0/24,其中 XX 為學號尾數。伺服器使用的 IP 為 10.255.XX.254/24 喔!未來用戶端使用 10.255.XX.1/24 喔! (記得使用逗號或者是雙引號/單引號來處理『一個』設定參數!)
    5. 事實上,這些設定值都紀錄在底下這個檔案中!
      /etc/sysconfig/network-scripts/ifcfg-eth0
      TYPE=Ethernet
      BOOTPROTO=none
      DEFROUTE=yes
      IPV4_FAILURE_FATAL=no
      IPV6INIT=yes
      IPV6_AUTOCONF=yes
      IPV6_DEFROUTE=yes
      IPV6_FAILURE_FATAL=no
      NAME=eth0
      UUID=ff0b88ed-7cc6-4803-be7d-e77c74fea95b
      DEVICE=eth0
      ONBOOT=yes
      DNS1=120.114.100.1
      DNS2=120.114.150.1
      IPADDR=192.168.254.100
      PREFIX=24
      IPADDR1=10.255.100.254
      PREFIX1=24
      GATEWAY=192.168.254.254
      IPV6_PEERDNS=yes
      IPV6_PEERROUTES=yes
      
      你當然也能手動編輯這個檔案的內容,不過如果手動編輯過後,得要重新裝置 nmcli 才行!『 nmcli connection reload 』!
  3. 主機名稱的設定方式
    1. 一般我們建議每部要連網的主機都要有自己的主機名稱。若沒有網路或者是尚未規範好主機名稱的系統,通常我們會分配一個名為 localhost 的本機主機名稱。 這是因為系統有個 localhost 對應到 127.0.0.1 這個固定 IP 的設定的原因。
    2. 你可以觀察 /etc/hosts 這個檔案的內容,一般來說,這個檔案內容的格式為:
      thereis.your.ip.address  your.host.name         your.host.alias
      127.0.0.1                localhost.localdomain  localhost
      
      所以你可以將你的主機名稱與對應的 IP 寫入到這個檔案中,無須重新啟動任何資料,他會自動設定好對應。
    3. 至於主機名稱的實際設定,可以使用 hostnamectl 來處理即可!請自行使用 man hostnamectl 查詢相關的應用。
    4. 練習:請將你的主機名稱設定為 pcXX.dic.ksu ,並將這個主機名稱與 IP 的對應寫入 /etc/hosts 中,最終可以透過 ping your.host.name 找到正確的 IP 即可。
  4. 系統網路 debug 流程 (每個流程都有相依性喔!一步一步處理才行)
    1. 先查看 IP 與 netmask 的設定是否正確:
      • ifconfig eth0
      • ip addr show
      • nmcli connection show eth0 (看最後面大寫字元的部份是否正確)
      若不正確,請再使用 nmcli connection modify eth0 ... 的方式重新設定 ipv4.addresses 那個項目,然後 nmcli connection up eth0 重新啟用!
    2. 再查閱 router/gateway 的設定是否正確?:
      • route -n (看 0.0.0.0 開頭的那一行)
      • ip route show (看 default 開頭的那一行
      • nmcli connection show eth0 (看大寫字元的部份)
      若不正確,也是要使用nmcli connection modify eth0 ... 的方式重新設定 ipv4.gateway 那一個項目!
    3. 檢查你的機器與 gateway 之間的連線是否正常?
      • ping GW_IP (停止用 [ctrl]+c )
      若沒有正確的回應,可能就是 gateway 設定錯誤,或者是 gateway 本身有問題,或者是網路線有問題等等, 反正理論上就是你的系統與 gateway 之間的過程有問題就是了。這時若不是自己檢查硬體問題,應該就是回報 ISP 了!
    4. 檢查你的 DNS server IP 設定
      • dig www.google.com
      這個步驟的結果理論上應該會出現
      
      ; <<>> DiG 9.9.4-RedHat-9.9.4-29.el7 <<>> www.google.com
      ;; global options: +cmd
      ;; Got answer:
      ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 46866
      ;; flags: qr rd ra; QUERY: 1, ANSWER: 12, AUTHORITY: 4, ADDITIONAL: 5
      
      ;; OPT PSEUDOSECTION:
      ; EDNS: version: 0, flags:; udp: 4096
      ;; QUESTION SECTION:
      ;www.google.com.                        IN      A
      
      ;; ANSWER SECTION:
      www.google.com.         188     IN      A       202.169.175.96
      www.google.com.         188     IN      A       202.169.175.102
      www.google.com.         188     IN      A       202.169.175.103
      www.google.com.         188     IN      A       202.169.175.109
      www.google.com.         188     IN      A       202.169.175.110
      www.google.com.         188     IN      A       202.169.175.116
      www.google.com.         188     IN      A       202.169.175.117
      www.google.com.         188     IN      A       202.169.175.123
      www.google.com.         188     IN      A       202.169.175.82
      www.google.com.         188     IN      A       202.169.175.88
      www.google.com.         188     IN      A       202.169.175.89
      www.google.com.         188     IN      A       202.169.175.95
      
      ;; AUTHORITY SECTION:
      google.com.             164038  IN      NS      ns3.google.com.
      google.com.             164038  IN      NS      ns2.google.com.
      google.com.             164038  IN      NS      ns1.google.com.
      google.com.             164038  IN      NS      ns4.google.com.
      
      ;; ADDITIONAL SECTION:
      ns1.google.com.         12624   IN      A       216.239.32.10
      ns2.google.com.         19127   IN      A       216.239.34.10
      ns3.google.com.         19127   IN      A       216.239.36.10
      ns4.google.com.         19127   IN      A       216.239.38.10
      
      ;; Query time: 2 msec
      ;; SERVER: 120.114.100.1#53(120.114.100.1)
      ;; WHEN: 五  9月 30 22:33:19 CST 2016
      ;; MSG SIZE  rcvd: 371
      
      這部份要看的大概是問題 (QUESTION) 的部份,是否主機名稱填寫正確,以及回應 (ANSWER) 是否真的有找到 IP , 最後再看伺服器 (SERVER) 是否是你設定的那一個項目?若不是,得要回去 nmcli 重新克服!
    5. 最後,若不放心,再使用『 ping 168.95.1.1 』確認與中華電信 DNS 伺服器的連線是否 OK!
Top
HOME